Merge "Converted User object cache to the WAN cache"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 18 May 2015 06:38:06 +0000 (06:38 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 18 May 2015 06:38:06 +0000 (06:38 +0000)
662 files changed:
.gitignore
RELEASE-NOTES-1.25
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
img_auth.php
includes/Block.php
includes/CategoryFinder.php
includes/DefaultSettings.php
includes/GlobalFunctions.php
includes/Linker.php
includes/MediaWiki.php
includes/MovePage.php
includes/OutputPage.php
includes/Preferences.php
includes/Setup.php
includes/Status.php
includes/Title.php
includes/User.php
includes/WatchedItem.php
includes/WebRequest.php
includes/actions/Action.php
includes/actions/DeleteAction.php
includes/actions/HistoryAction.php
includes/actions/InfoAction.php
includes/api/ApiBase.php
includes/api/ApiFeedRecentChanges.php
includes/api/ApiFormatXml.php
includes/api/ApiHelp.php
includes/api/ApiImageRotate.php
includes/api/ApiMain.php
includes/api/ApiOpenSearch.php
includes/api/ApiOptions.php
includes/api/ApiPageSet.php
includes/api/ApiParse.php
includes/api/ApiQuery.php
includes/api/ApiQueryAllMessages.php
includes/api/ApiQueryAllUsers.php
includes/api/ApiQueryBacklinksprop.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQueryCategories.php
includes/api/ApiQueryCategoryInfo.php
includes/api/ApiQueryContributors.php
includes/api/ApiQueryDeletedRevisions.php
includes/api/ApiQueryDeletedrevs.php
includes/api/ApiQueryDuplicateFiles.php
includes/api/ApiQueryExternalLinks.php
includes/api/ApiQueryFileRepoInfo.php
includes/api/ApiQueryFilearchive.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQueryImages.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryLangLinks.php
includes/api/ApiQueryLinks.php
includes/api/ApiQueryPageProps.php
includes/api/ApiQueryProtectedTitles.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQuerySearch.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryStashImageInfo.php
includes/api/ApiQueryTokens.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiQueryUserInfo.php
includes/api/ApiQueryUsers.php
includes/api/ApiQueryWatchlist.php
includes/api/ApiResult.php
includes/api/ApiSetNotificationTimestamp.php
includes/api/i18n/cs.json
includes/api/i18n/de.json
includes/api/i18n/el.json
includes/api/i18n/en.json
includes/api/i18n/es.json
includes/api/i18n/fo.json [new file with mode: 0644]
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/api/i18n/it.json
includes/api/i18n/ja.json
includes/api/i18n/ko.json
includes/api/i18n/ksh.json
includes/api/i18n/lb.json
includes/api/i18n/mk.json
includes/api/i18n/nb.json
includes/api/i18n/nl.json
includes/api/i18n/pl.json
includes/api/i18n/qqq.json
includes/api/i18n/si.json
includes/api/i18n/tr.json
includes/api/i18n/zh-hans.json
includes/api/i18n/zh-hant.json
includes/cache/MessageCache.php
includes/changetags/ChangeTags.php
includes/config/ConfigFactory.php
includes/content/ContentHandler.php
includes/db/Database.php
includes/db/DatabaseMysqli.php
includes/db/DatabaseSqlite.php
includes/debug/logger/LegacyLogger.php
includes/diff/TableDiffFormatter.php
includes/exception/BadTitleError.php
includes/filebackend/SwiftFileBackend.php
includes/filebackend/TempFSFile.php
includes/filerepo/LocalRepo.php
includes/filerepo/file/ArchivedFile.php
includes/filerepo/file/ForeignAPIFile.php
includes/filerepo/file/LocalFile.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLFormField.php
includes/htmlform/HTMLTextField.php
includes/htmlform/VFormHTMLForm.php
includes/installer/WebInstallerOutput.php
includes/installer/i18n/ast.json
includes/installer/i18n/bg.json
includes/installer/i18n/ce.json
includes/installer/i18n/cs.json
includes/installer/i18n/en-gb.json
includes/installer/i18n/eo.json
includes/installer/i18n/es.json
includes/installer/i18n/fr.json
includes/installer/i18n/fy.json
includes/installer/i18n/id.json
includes/installer/i18n/nb.json
includes/installer/i18n/nl.json
includes/installer/i18n/ps.json
includes/installer/i18n/tr.json
includes/installer/i18n/vi.json
includes/interwiki/Interwiki.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/aggregator/JobQueueAggregatorRedis.php
includes/jobqueue/jobs/ActivityUpdateJob.php [new file with mode: 0644]
includes/jobqueue/jobs/EnqueueJob.php
includes/jobqueue/jobs/RefreshLinksJob.php
includes/libs/MapCacheLRU.php
includes/libs/MultiHttpClient.php
includes/libs/ProcessCacheLRU.php
includes/libs/objectcache/BagOStuff.php
includes/libs/objectcache/ReplicatedBagOStuff.php [new file with mode: 0644]
includes/libs/objectcache/WANObjectCache.php
includes/libs/virtualrest/VirtualRESTServiceClient.php
includes/logging/LogEventsList.php
includes/logging/LogFormatter.php
includes/logging/LogPager.php
includes/media/DjVu.php
includes/media/FormatMetadata.php
includes/media/SVG.php
includes/objectcache/RedisBagOStuff.php
includes/objectcache/ReplicatedBagOStuff.php [deleted file]
includes/page/Article.php
includes/page/CategoryPage.php
includes/page/WikiPage.php
includes/pager/ReverseChronologicalPager.php
includes/parser/Parser.php
includes/parser/ParserCache.php
includes/parser/ParserOutput.php
includes/parser/StripState.php
includes/profiler/ProfileSection.php
includes/profiler/TransactionProfiler.php
includes/profiler/output/ProfilerOutputStats.php
includes/registration/ExtensionProcessor.php
includes/registration/ExtensionRegistry.php
includes/registration/Processor.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderImageModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/resourceloader/ResourceLoaderRawFileModule.php [new file with mode: 0644]
includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php
includes/search/SearchEngine.php
includes/search/SearchHighlighter.php
includes/site/SiteExporter.php
includes/skins/Skin.php
includes/skins/SkinTemplate.php
includes/specialpage/QueryPage.php
includes/specialpage/SpecialPage.php
includes/specials/SpecialAllMessages.php
includes/specials/SpecialBlock.php
includes/specials/SpecialContributions.php
includes/specials/SpecialDeletedContributions.php
includes/specials/SpecialDiff.php
includes/specials/SpecialEditTags.php
includes/specials/SpecialLinkSearch.php
includes/specials/SpecialLog.php
includes/specials/SpecialMergeHistory.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialNewimages.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPreferences.php
includes/specials/SpecialRandomInCategory.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialSearch.php
includes/specials/SpecialSpecialpages.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/title/MalformedTitleException.php
includes/title/MediaWikiTitleCodec.php
includes/title/TitleValue.php
includes/utils/UIDGenerator.php
languages/Names.php
languages/i18n/am.json
languages/i18n/an.json
languages/i18n/ang.json
languages/i18n/ar.json
languages/i18n/arc.json
languages/i18n/ary.json
languages/i18n/arz.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/avk.json
languages/i18n/awa.json
languages/i18n/azb.json
languages/i18n/ba.json
languages/i18n/bcc.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bgn.json
languages/i18n/bjn.json
languages/i18n/bn.json
languages/i18n/bpy.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/cy.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dsb.json
languages/i18n/egl.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/ext.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/frp.json
languages/i18n/frr.json
languages/i18n/fur.json
languages/i18n/fy.json
languages/i18n/ga.json
languages/i18n/gan-hans.json
languages/i18n/gan-hant.json
languages/i18n/gl.json
languages/i18n/grc.json
languages/i18n/gsw.json
languages/i18n/gu.json
languages/i18n/gv.json
languages/i18n/he.json
languages/i18n/hif-latn.json
languages/i18n/hr.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/id.json
languages/i18n/ig.json
languages/i18n/inh.json
languages/i18n/io.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jv.json
languages/i18n/ka.json
languages/i18n/kab.json
languages/i18n/kk-arab.json
languages/i18n/kk-latn.json
languages/i18n/km.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/krc.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/kw.json
languages/i18n/ky.json
languages/i18n/la.json
languages/i18n/lb.json
languages/i18n/lez.json
languages/i18n/li.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/lv.json
languages/i18n/lzh.json
languages/i18n/mai.json
languages/i18n/map-bms.json
languages/i18n/mdf.json
languages/i18n/min.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mn.json
languages/i18n/mr.json
languages/i18n/ms.json
languages/i18n/mt.json
languages/i18n/myv.json
languages/i18n/mzn.json
languages/i18n/nah.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/nds.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/or.json
languages/i18n/os.json
languages/i18n/pa.json
languages/i18n/pam.json
languages/i18n/pdc.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pnb.json
languages/i18n/prg.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/rm.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/rue.json
languages/i18n/sa.json
languages/i18n/sc.json
languages/i18n/scn.json
languages/i18n/sh.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/stq.json
languages/i18n/sv.json
languages/i18n/sw.json
languages/i18n/szl.json
languages/i18n/ta.json
languages/i18n/te.json
languages/i18n/tg-latn.json
languages/i18n/th.json
languages/i18n/tk.json
languages/i18n/tl.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/tt-latn.json
languages/i18n/tyv.json
languages/i18n/ug-arab.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/vec.json
languages/i18n/vep.json
languages/i18n/vi.json
languages/i18n/vo.json
languages/i18n/vro.json
languages/i18n/war.json
languages/i18n/xmf.json
languages/i18n/yo.json
languages/i18n/yue.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesBh.php [deleted file]
languages/messages/MessagesIt.php
languages/messages/MessagesSq.php
maintenance/Maintenance.php
maintenance/benchmarks/benchmarkHooks.php
maintenance/cleanupRemovedModules.php
maintenance/cleanupTable.inc
maintenance/convertExtensionToRegistration.php
maintenance/deleteImageMemcached.php [deleted file]
maintenance/eraseArchivedFile.php
maintenance/generateJsonI18n.php
maintenance/language/checkLanguage.inc
maintenance/language/languages.inc
maintenance/populateCategory.php
maintenance/purgeChangedFiles.php
maintenance/rebuildImages.php
maintenance/refreshLinks.php
maintenance/resources/update-oojs-ui.sh
maintenance/resources/update-oojs.sh
maintenance/update.php
maintenance/updateCollation.php
maintenance/waitForSlave.php
opensearch_desc.php
package.json
resources/Resources.php
resources/lib/jquery/jquery.js
resources/lib/oojs-ui/i18n/ku-latn.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/ps.json
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css
resources/lib/oojs-ui/oojs-ui-mediawiki.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-content.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-editing-core.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-editing-list.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-editing-styling.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-layout.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-location.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-media.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-moderation.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-movement.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-user.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-wikimedia.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons.json [new file with mode: 0644]
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/block-destructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/block-destructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/clear.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/clear.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.svg [new file with mode: 0644]
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/link-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-destructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-destructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-destructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-destructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.svg [deleted file]
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/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/search-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/search.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.svg [new file with mode: 0644]
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-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/trash-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-destructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-destructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-destructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-destructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator-invert.svg [new file with mode: 0644]
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/search-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/indicators.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/textures.json [new file with mode: 0644]
resources/lib/oojs/oojs.jquery.js
resources/src/jquery/jquery.tablesorter.js
resources/src/mediawiki.action/mediawiki.action.edit.editWarning.js
resources/src/mediawiki.action/mediawiki.action.edit.preview.js
resources/src/mediawiki.api/mediawiki.api.js
resources/src/mediawiki.less/mediawiki.mixins.less
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.css
resources/src/mediawiki.special/mediawiki.special.preferences.js
resources/src/mediawiki.special/mediawiki.special.upload.js
resources/src/mediawiki.ui/components/icons.less
resources/src/mediawiki/mediawiki.confirmCloseWindow.js
resources/src/mediawiki/mediawiki.cookie.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.toc.js
resources/src/mediawiki/mediawiki.user.js
resources/src/oojs-ui-local.css [new file with mode: 0644]
resources/src/startup.js
tests/TestsAutoLoader.php
tests/phpunit/includes/FauxRequestTest.php
tests/phpunit/includes/TitleTest.php
tests/phpunit/includes/api/ApiResultTest.php
tests/phpunit/includes/api/format/ApiFormatXmlTest.php
tests/phpunit/includes/changes/RecentChangeTest.php
tests/phpunit/includes/db/DatabaseSqliteTest.php
tests/phpunit/includes/libs/ArrayUtilsTest.php
tests/phpunit/includes/libs/ProcessCacheLRUTest.php
tests/phpunit/includes/logging/BlockLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/logging/DeleteLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/logging/LogFormatterTestCase.php [new file with mode: 0644]
tests/phpunit/includes/logging/MergeLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/logging/MoveLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/logging/NewUsersLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/logging/PageLangLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/logging/PatrolLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/logging/RightsLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/logging/UploadLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/registration/ExtensionProcessorTest.php
tests/phpunit/includes/site/CachingSiteStoreTest.php
tests/phpunit/includes/site/SiteImporterTest.php
tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.toc.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.track.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 9d8487c..f5cec54 100644 (file)
@@ -47,6 +47,8 @@ production.
   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
@@ -84,7 +86,7 @@ production.
   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.2.
+* 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
@@ -255,7 +257,8 @@ production.
   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.
+* 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.
@@ -320,9 +323,10 @@ production.
 * (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.
+  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
@@ -376,12 +380,21 @@ 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.
@@ -482,10 +495,11 @@ changes to languages because of Bugzilla reports.
 * $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:
+* 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 /
index 57166ef..61e04b8 100644 (file)
@@ -13,10 +13,13 @@ production.
 === 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.
 
 ==== External libraries ====
 
 === Bug fixes in 1.26 ===
+* (bug 51283) load.php sometimes sends 304 response without full headers
 
 === Action API changes in 1.26 ===
 * API action=query&list=tags: The displayname can now be boolean false if the
@@ -34,6 +37,9 @@ 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
@@ -46,6 +52,10 @@ 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().
+* Removed maintenance script deleteImageMemcached.php.
 
 == Compatibility ==
 
diff --git a/api.php b/api.php
index ea2f60a..7775158 100644 (file)
--- a/api.php
+++ b/api.php
@@ -75,7 +75,7 @@ try {
        $processor = new ApiMain( RequestContext::getMain(), $wgEnableWriteAPI );
 
        // Last chance hook before executing the API
-       wfRunHooks( 'ApiBeforeMain', array( &$processor ) );
+       Hooks::run( 'ApiBeforeMain', array( &$processor ) );
        if ( !$processor instanceof ApiMain ) {
                throw new MWException( 'ApiBeforeMain hook set $processor to a non-ApiMain class' );
        }
index 81ee8b1..bdc0d93 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',
@@ -316,7 +318,6 @@ $wgAutoloadLocalClasses = array(
        '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',
@@ -993,7 +994,7 @@ $wgAutoloadLocalClasses = array(
        'RenderAction' => __DIR__ . '/includes/actions/RenderAction.php',
        'ReplacementArray' => __DIR__ . '/includes/libs/ReplacementArray.php',
        'Replacer' => __DIR__ . '/includes/libs/replacers/Replacer.php',
-       'ReplicatedBagOStuff' => __DIR__ . '/includes/objectcache/ReplicatedBagOStuff.php',
+       'ReplicatedBagOStuff' => __DIR__ . '/includes/libs/objectcache/ReplicatedBagOStuff.php',
        'RepoGroup' => __DIR__ . '/includes/filerepo/RepoGroup.php',
        'RequestContext' => __DIR__ . '/includes/context/RequestContext.php',
        'ResetUserTokens' => __DIR__ . '/maintenance/resetUserTokens.php',
@@ -1008,6 +1009,7 @@ $wgAutoloadLocalClasses = array(
        'ResourceLoaderLanguageDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLanguageDataModule.php',
        'ResourceLoaderLanguageNamesModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLanguageNamesModule.php',
        'ResourceLoaderModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderModule.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',
index c8f16ba..0789eee 100644 (file)
                "ext-iconv": "*",
                "leafo/lessphp": "0.5.0",
                "liuggio/statsd-php-client": "1.0.12",
-               "oojs/oojs-ui": "0.10.1",
+               "oojs/oojs-ui": "0.11.3",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/cdb": "1.0.1",
+               "wikimedia/assert": "0.2.2",
                "wikimedia/composer-merge-plugin": "1.0.0",
                "wikimedia/utfnormal": "1.0.2",
                "zordius/lightncandy": "0.18"
index d1b982c..8e8b23b 100644 (file)
                        "type": "object",
                        "description": "Flags (letter symbols) shown on RecentChanges pages"
                },
+               "MediaHandlers": {
+                       "type": "object",
+                       "description": "Plugins for media file type handling. Each entry in the array maps a MIME type to a PHP class name."
+               },
                "ExtensionFunctions": {
                        "type": [
                                "array",
                "config": {
                        "type": "object",
                        "description": "Configuration options for this extension"
+               },
+               "ParserTestFiles": {
+                       "type": "array",
+                       "description": "Parser test suite files to be run by parserTests.php when no specific filename is passed to it"
                }
        }
 }
index 6f59b2d..f03e38d 100644 (file)
@@ -420,6 +420,8 @@ $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.
@@ -2125,6 +2127,12 @@ the key.
 &$confstr: reference to a hash key string which can be modified
 $user: User (object) requesting the page
 
+'PageViewUpdate': Allow database (or other) changes to be made after a
+page view is seen by MediaWiki.  Note this does not capture views made
+via external caches such as Squid.
+$wikipage: WikiPage (object) for the page being viewed.
+$user: User (object) for the user who is viewing.
+
 'ParserAfterParse': Called from Parser::parse() just after the call to
 Parser::internalParse() returns.
 $parser: parser object
@@ -2141,6 +2149,10 @@ $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
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 f44cac0..22fd401 100644 (file)
@@ -151,7 +151,7 @@ function wfImageAuthMain() {
                // Run hook for extension authorization plugins
                /** @var $result array */
                $result = null;
-               if ( !wfRunHooks( 'ImgAuthBeforeStream', array( &$title, &$path, &$name, &$result ) ) ) {
+               if ( !Hooks::run( 'ImgAuthBeforeStream', array( &$title, &$path, &$name, &$result ) ) ) {
                        wfForbidden( $result[0], $result[1], array_slice( $result, 2 ) );
                        return;
                }
index 7666751..d582201 100644 (file)
@@ -371,7 +371,7 @@ class Block {
                $this->mTimestamp = wfTimestamp( TS_MW, $row->ipb_timestamp );
                $this->mAuto = $row->ipb_auto;
                $this->mHideName = $row->ipb_deleted;
-               $this->mId = $row->ipb_id;
+               $this->mId = (int)$row->ipb_id;
                $this->mParentBlockId = $row->ipb_parent_block_id;
 
                // I wish I didn't have to do this
index 33de740..77c43bf 100644 (file)
@@ -27,7 +27,7 @@
  * articles are in one or all of a given subset of categories.
  *
  * Example use :
- * <code>
+ * @code
  *     # Determines whether the article with the page_id 12345 is in both
  *     # "Category 1" and "Category 2" or their subcategories, respectively
  *
@@ -39,7 +39,7 @@
  *     );
  *     $a = $cf->run();
  *     print implode( ',' , $a );
- * </code>
+ * @endcode
  *
  */
 class CategoryFinder {
index 5b7e94a..857d69e 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,
@@ -1587,6 +1597,15 @@ $wgEnotifMaxRecips = 500;
  */
 $wgEnotifUseJobQ = false;
 
+/**
+ * Use the job queue for user activity updates like updating "last visited"
+ * fields for email notifications of page changes. This should only be enabled
+ * if the jobs have a dedicated runner to avoid update lag.
+ *
+ * @since 1.26
+ */
+$wgActivityUpdatesUseJobQueue = false;
+
 /**
  * Use real name instead of username in e-mail "from" field.
  */
@@ -1844,11 +1863,11 @@ $wgDBerrorLog = false;
  *
  * @par Examples:
  * @code
- * $wgLocaltimezone = 'UTC';
- * $wgLocaltimezone = 'GMT';
- * $wgLocaltimezone = 'PST8PDT';
- * $wgLocaltimezone = 'Europe/Sweden';
- * $wgLocaltimezone = 'CET';
+ * $wgDBerrorLogTZ = 'UTC';
+ * $wgDBerrorLogTZ = 'GMT';
+ * $wgDBerrorLogTZ = 'PST8PDT';
+ * $wgDBerrorLogTZ = 'Europe/Sweden';
+ * $wgDBerrorLogTZ = 'CET';
  * @endcode
  *
  * @since 1.20
@@ -4419,7 +4438,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
@@ -5297,6 +5316,36 @@ $wgDebugDumpSql = false;
  */
 $wgDebugDumpSqlLength = 500;
 
+/**
+ * Performance expectations for DB usage
+ *
+ * @since 1.26
+ */
+$wgTrxProfilerLimits = array(
+       // Basic GET and POST requests
+       'GET' => array(
+               'masterConns' => 0,
+               'writes' => 0,
+               'readQueryTime' => 5
+       ),
+       'POST' => array(
+               'readQueryTime' => 5,
+               'writeQueryTime' => 1,
+               'maxAffected' => 500
+       ),
+       // Background job runner
+       'JobRunner' => array(
+               'readQueryTime' => 30,
+               'writeQueryTime' => 5,
+               'maxAffected' => 500
+       ),
+       // Command-line scripts
+       'Maintenance' => array(
+               'writeQueryTime' => 5,
+               'maxAffected' => 1000
+       )
+);
+
 /**
  * Map of string log group names to log destinations.
  *
@@ -6469,6 +6518,7 @@ $wgJobClasses = array(
        'ThumbnailRender' => 'ThumbnailRenderJob',
        'recentChangesUpdate' => 'RecentChangesUpdateJob',
        'refreshLinksPrioritized' => 'RefreshLinksJob', // for cascading protection
+       'activityUpdateJob' => 'ActivityUpdateJob',
        'enqueue' => 'EnqueueJob', // local queue for multi-DC setups
        'null' => 'NullJob'
 );
index cefa375..8b3b959 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" );
        }
 }
 
@@ -3353,7 +3353,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 ) {
@@ -3755,6 +3755,7 @@ function wfWaitForSlaves(
        }
 
        // Figure out which clusters need to be checked
+       /** @var LoadBalancer[] $lbs */
        $lbs = array();
        if ( $cluster === '*' ) {
                wfGetLBFactory()->forEachLB( function ( LoadBalancer $lb ) use ( &$lbs ) {
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 ec2f40f..b1d0738 100644 (file)
@@ -51,6 +51,7 @@ class MediaWiki {
        /**
         * Parse the request to get the Title object
         *
+        * @throws MalformedTitleException If a title has been provided by the user, but is invalid.
         * @return Title Title object to be $wgTitle
         */
        private function parseTitle() {
@@ -110,7 +111,10 @@ class MediaWiki {
                }
 
                if ( $ret === null || ( $ret->getDBkey() == '' && !$ret->isExternal() ) ) {
-                       $ret = SpecialPage::getTitleFor( 'Badtitle' );
+                       // 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 );
                }
 
                return $ret;
@@ -122,7 +126,11 @@ class MediaWiki {
         */
        public function getTitle() {
                if ( !$this->context->hasTitle() ) {
-                       $this->context->setTitle( $this->parseTitle() );
+                       try {
+                               $this->context->setTitle( $this->parseTitle() );
+                       } catch ( MalformedTitleException $ex ) {
+                               $this->context->setTitle( SpecialPage::getTitleFor( 'Badtitle' ) );
+                       }
                }
                return $this->context->getTitle();
        }
@@ -174,6 +182,11 @@ class MediaWiki {
                        || $title->isSpecial( 'Badtitle' )
                ) {
                        $this->context->setTitle( SpecialPage::getTitleFor( 'Badtitle' ) );
+                       try {
+                               $this->parseTitle();
+                       } catch ( MalformedTitleException $ex ) {
+                               throw new BadTitleError( $ex );
+                       }
                        throw new BadTitleError();
                }
 
@@ -219,6 +232,11 @@ class MediaWiki {
                                $output->redirect( $url, 301 );
                        } else {
                                $this->context->setTitle( SpecialPage::getTitleFor( 'Badtitle' ) );
+                               try {
+                                       $this->parseTitle();
+                               } catch ( MalformedTitleException $ex ) {
+                                       throw new BadTitleError( $ex );
+                               }
                                throw new BadTitleError();
                        }
                // Redirect loops, no title in URL, $wgUsePathInfo URLs, and URLs with a variant
@@ -457,7 +475,7 @@ class MediaWiki {
        }
 
        private function main() {
-               global $wgTitle;
+               global $wgTitle, $wgTrxProfilerLimits;
 
                $request = $this->context->getRequest();
 
@@ -489,10 +507,9 @@ class MediaWiki {
                if ( !$request->wasPosted()
                        && in_array( $action, array( 'view', 'edit', 'history' ) )
                ) {
-                       $trxProfiler->setExpectation( 'masterConns', 0, __METHOD__ );
-                       $trxProfiler->setExpectation( 'writes', 0, __METHOD__ );
+                       $trxProfiler->setExpectations( $wgTrxProfilerLimits['GET'], __METHOD__ );
                } else {
-                       $trxProfiler->setExpectation( 'maxAffected', 500, __METHOD__ );
+                       $trxProfiler->setExpectations( $wgTrxProfilerLimits['POST'], __METHOD__ );
                }
 
                // If the user has forceHTTPS set to true, or if the user
index de7da3f..9891106 100644 (file)
@@ -64,21 +64,9 @@ class MovePage {
                        $status->fatal( 'spamprotectiontext' );
                }
 
-               # The move is allowed only if (1) the target doesn't exist, or
-               # (2) the target is a redirect to the source, and has no history
-               # (so we can undo bad moves right after they're done).
-
-               if ( $this->newTitle->getArticleID() ) { # Target exists; check for validity
-                       if ( !$this->isValidMoveTarget() ) {
-                               $status->fatal( 'articleexists' );
-                       }
-               } else {
-                       $tp = $this->newTitle->getTitleProtection();
-                       if ( $tp !== false ) {
-                               if ( !$user->isAllowed( $tp['permission'] ) ) {
-                                       $status->fatal( 'cantmove-titleprotected' );
-                               }
-                       }
+               $tp = $this->newTitle->getTitleProtection();
+               if ( $tp !== false && !$user->isAllowed( $tp['permission'] ) ) {
+                               $status->fatal( 'cantmove-titleprotected' );
                }
 
                Hooks::run( 'MovePageCheckPermissions',
@@ -125,6 +113,13 @@ class MovePage {
                        $status->fatal( 'badarticleerror' );
                }
 
+               # The move is allowed only if (1) the target doesn't exist, or
+               # (2) the target is a redirect to the source, and has no history
+               # (so we can undo bad moves right after they're done).
+               if ( $this->newTitle->getArticleID() && !$this->isValidMoveTarget() ) {
+                       $status->fatal( 'articleexists' );
+               }
+
                // Content model checks
                if ( !$wgContentHandlerUseDB &&
                        $this->oldTitle->getContentModel() !== $this->newTitle->getContentModel() ) {
index 28d55e4..db22166 100644 (file)
@@ -162,9 +162,6 @@ class OutputPage extends ContextSource {
        /** @var array */
        protected $mModuleStyles = array();
 
-       /** @var array */
-       protected $mModuleMessages = array();
-
        /** @var ResourceLoader */
        protected $mResourceLoader;
 
@@ -613,24 +610,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' );
        }
 
        /**
@@ -1401,8 +1398,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 +1414,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 +1758,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 +1804,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() );
        }
@@ -2980,11 +2978,6 @@ class OutputPage extends ContextSource {
                $links[] = $this->makeResourceLoaderLink( $embedScripts, 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,14 +3011,9 @@ 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
@@ -3909,6 +3897,11 @@ class OutputPage extends ContextSource {
        public function enableOOUI() {
                OOUI\Theme::setSingleton( new OOUI\MediaWikiTheme() );
                OOUI\Element::setDefaultDir( $this->getLanguage()->getDir() );
-               $this->addModuleStyles( 'oojs-ui.styles' );
+               $this->addModuleStyles( array(
+                       'oojs-ui.styles',
+                       'oojs-ui.styles.icons',
+                       'oojs-ui.styles.indicators',
+                       'oojs-ui.styles.textures',
+               ) );
        }
 }
index 74a917d..9b0ada8 100644 (file)
@@ -1098,7 +1098,7 @@ class Preferences {
                        $linkTools = array();
 
                        # Mark the default skin
-                       if ( $skinkey == $defaultSkin ) {
+                       if ( strcasecmp( $skinkey, $defaultSkin ) === 0 ) {
                                $linkTools[] = $context->msg( 'default' )->escaped();
                                $foundDefault = true;
                        }
index b8139d9..1324ed8 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";
 }
@@ -488,8 +485,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 ) {
@@ -565,6 +562,10 @@ if ( is_null( $wgLocalTZoffset ) ) {
        $wgLocalTZoffset = date( 'Z' ) / 60;
 }
 
+if ( !$wgDBerrorLogTZ ) {
+       $wgDBerrorLogTZ = $wgLocaltimezone;
+}
+
 // Useful debug output
 if ( $wgCommandLineMode ) {
        $wgRequest = new FauxRequest( array() );
index cd10258..fbb5daa 100644 (file)
@@ -69,9 +69,9 @@ class Status {
         * Succinct helper method to wrap a StatusValue
         *
         * This is is useful when formatting StatusValue objects:
-        * <code>
+        * @code
         *     $this->getOutput()->addHtml( Status::wrap( $sv )->getHTML() );
-        * </code>
+        * @endcode
         *
         * @param StatusValue|Status $sv
         * @return Status
index 7e2b39e..601211d 100644 (file)
@@ -225,9 +225,11 @@ class Title {
        public static function newFromDBkey( $key ) {
                $t = new Title();
                $t->mDbkeyform = $key;
-               if ( $t->secureAndSplit() ) {
+
+               try {
+                       $t->secureAndSplit();
                        return $t;
-               } else {
+               } catch ( MalformedTitleException $ex ) {
                        return null;
                }
        }
@@ -263,9 +265,36 @@ 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 );
                }
 
+               try {
+                       return Title::newFromTextThrow( $text, $defaultNamespace );
+               } catch ( MalformedTitleException $ex ) {
+                       return null;
+               }
+       }
+
+       /**
+        * Like Title::newFromText(), but throws MalformedTitleException when the title is invalid,
+        * rather than returning null.
+        *
+        * The exception subclasses encode detailed information about why the title is invalid.
+        *
+        * @see Title::newFromText
+        *
+        * @since 1.25
+        * @param string $text Title text to check
+        * @param int $defaultNamespace
+        * @throws MalformedTitleException If the title is invalid
+        * @return Title
+        */
+       public static function newFromTextThrow( $text, $defaultNamespace = NS_MAIN ) {
+               if ( is_object( $text ) ) {
+                       throw new MWException( 'Title::newFromTextThrow given an object' );
+               }
+
                $cache = self::getTitleCache();
 
                /**
@@ -287,14 +316,11 @@ class Title {
                $t->mDbkeyform = str_replace( ' ', '_', $filteredText );
                $t->mDefaultNamespace = intval( $defaultNamespace );
 
-               if ( $t->secureAndSplit() ) {
-                       if ( $defaultNamespace == NS_MAIN ) {
-                               $cache->set( $text, $t );
-                       }
-                       return $t;
-               } else {
-                       return null;
+               $t->secureAndSplit();
+               if ( $defaultNamespace == NS_MAIN ) {
+                       $cache->set( $text, $t );
                }
+               return $t;
        }
 
        /**
@@ -323,9 +349,11 @@ class Title {
                }
 
                $t->mDbkeyform = str_replace( ' ', '_', $url );
-               if ( $t->secureAndSplit() ) {
+
+               try {
+                       $t->secureAndSplit();
                        return $t;
-               } else {
+               } catch ( MalformedTitleException $ex ) {
                        return null;
                }
        }
@@ -507,9 +535,11 @@ class Title {
 
                $t = new Title();
                $t->mDbkeyform = Title::makeName( $ns, $title, $fragment, $interwiki, true );
-               if ( $t->secureAndSplit() ) {
+
+               try {
+                       $t->secureAndSplit();
                        return $t;
-               } else {
+               } catch ( MalformedTitleException $ex ) {
                        return null;
                }
        }
@@ -3305,6 +3335,7 @@ class Title {
         * namespace prefixes, sets the other forms, and canonicalizes
         * everything.
         *
+        * @throws MalformedTitleException On invalid titles
         * @return bool True on success
         */
        private function secureAndSplit() {
@@ -3315,15 +3346,12 @@ class Title {
 
                $dbkey = $this->mDbkeyform;
 
-               try {
-                       // @note: splitTitleString() is a temporary hack to allow MediaWikiTitleCodec to share
-                       //        the parsing code with Title, while avoiding massive refactoring.
-                       // @todo: get rid of secureAndSplit, refactor parsing code.
-                       $titleParser = self::getTitleParser();
-                       $parts = $titleParser->splitTitleString( $dbkey, $this->getDefaultNamespace() );
-               } catch ( MalformedTitleException $ex ) {
-                       return false;
-               }
+               // @note: splitTitleString() is a temporary hack to allow MediaWikiTitleCodec to share
+               //        the parsing code with Title, while avoiding massive refactoring.
+               // @todo: get rid of secureAndSplit, refactor parsing code.
+               $titleParser = self::getTitleParser();
+               // MalformedTitleException can be thrown here
+               $parts = $titleParser->splitTitleString( $dbkey, $this->getDefaultNamespace() );
 
                # Fill fields
                $this->setFragment( '#' . $parts['fragment'] );
@@ -4208,10 +4236,12 @@ class Title {
         * If you want to know if a title can be meaningfully viewed, you should
         * probably call the isKnown() method instead.
         *
+        * @param int $flags An optional bit field; may be Title::GAID_FOR_UPDATE to check
+        *   from master/for update
         * @return bool
         */
-       public function exists() {
-               $exists = $this->getArticleID() != 0;
+       public function exists( $flags = 0 ) {
+               $exists = $this->getArticleID( $flags ) != 0;
                Hooks::run( 'TitleExists', array( $this, &$exists ) );
                return $exists;
        }
index 1936efd..7902119 100644 (file)
@@ -2251,8 +2251,6 @@ class User implements IDBAccessObject {
         *   page. Ignored if null or !$val.
         */
        public function setNewtalk( $val, $curRev = null ) {
-               global $wgMemc;
-
                if ( wfReadOnly() ) {
                        return;
                }
@@ -2274,12 +2272,6 @@ class User implements IDBAccessObject {
                        $changed = $this->deleteNewtalk( $field, $id );
                }
 
-               if ( $this->isAnon() ) {
-                       // Anons have a separate memcached space, since
-                       // user records aren't kept for them.
-                       $key = wfMemcKey( 'newtalk', 'ip', $id );
-                       $wgMemc->set( $key, $val ? 1 : 0, 1800 );
-               }
                if ( $changed ) {
                        $this->invalidateCache();
                }
@@ -2340,15 +2332,14 @@ class User implements IDBAccessObject {
         * @since 1.25
         */
        public function touch() {
-               global $wgMemc;
-
                $this->load();
 
                if ( $this->mId ) {
+                       $this->mQuickTouched = $this->newTouchedTimestamp();
+
+                       $cache = ObjectCache::getMainWANInstance();
                        $key = wfMemcKey( 'user-quicktouched', 'id', $this->mId );
-                       $timestamp = $this->newTouchedTimestamp();
-                       $wgMemc->set( $key, $timestamp );
-                       $this->mQuickTouched = $timestamp;
+                       $cache->touchCheckKey( $key );
                }
        }
 
@@ -2366,16 +2357,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, $timestamp );
                                } else {
                                        # Set the timestamp to get HTTP 304 cache hits
                                        $this->touch();
@@ -3454,7 +3445,9 @@ class User implements IDBAccessObject {
                        $force = 'force';
                }
 
-               $this->getWatchedItem( $title )->resetNotificationTimestamp( $force, $oldid );
+               $this->getWatchedItem( $title )->resetNotificationTimestamp(
+                       $force, $oldid, WatchedItem::DEFERRED
+               );
        }
 
        /**
index 524e701..73b0b93 100644 (file)
  * @ingroup Watchlist
  */
 class WatchedItem {
-       /**
-        * Constant to specify that user rights 'editmywatchlist' and
-        * 'viewmywatchlist' should not be checked.
-        * @since 1.22
-        */
-       const IGNORE_USER_RIGHTS = 0;
-
-       /**
-        * Constant to specify that user rights 'editmywatchlist' and
-        * 'viewmywatchlist' should be checked.
-        * @since 1.22
-        */
-       const CHECK_USER_RIGHTS = 1;
-
        /** @var Title */
        public $mTitle;
 
@@ -59,6 +45,31 @@ class WatchedItem {
        /** @var string */
        private $timestamp;
 
+       /**
+        * Constant to specify that user rights 'editmywatchlist' and
+        * 'viewmywatchlist' should not be checked.
+        * @since 1.22
+        */
+       const IGNORE_USER_RIGHTS = 0;
+
+       /**
+        * Constant to specify that user rights 'editmywatchlist' and
+        * 'viewmywatchlist' should be checked.
+        * @since 1.22
+        */
+       const CHECK_USER_RIGHTS = 1;
+
+       /**
+        * Do DB master updates right now
+        * @since 1.26
+        */
+       const IMMEDIATE = 0;
+       /**
+        * Do DB master updates via the job queue
+        * @since 1.26
+        */
+       const DEFERRED = 1;
+
        /**
         * Create a WatchedItem object with the given user and title
         * @since 1.22 $checkRights parameter added
@@ -208,8 +219,13 @@ class WatchedItem {
         * @param bool $force Whether to force the write query to be executed even if the
         *    page is not watched or the notification timestamp is already NULL.
         * @param int $oldid The revision id being viewed. If not given or 0, latest revision is assumed.
+        * @mode int $mode WatchedItem::DEFERRED/IMMEDIATE
         */
-       public function resetNotificationTimestamp( $force = '', $oldid = 0 ) {
+       public function resetNotificationTimestamp(
+               $force = '', $oldid = 0, $mode = self::IMMEDIATE
+       ) {
+               global $wgActivityUpdatesUseJobQueue;
+
                // Only loggedin user can have a watchlist
                if ( wfReadOnly() || $this->mUser->isAnon() || !$this->isAllowed( 'editmywatchlist' ) ) {
                        return;
@@ -258,11 +274,30 @@ class WatchedItem {
                        }
                }
 
-               // If the page is watched by the user (or may be watched), update the timestamp on any
-               // any matching rows
-               $dbw = wfGetDB( DB_MASTER );
-               $dbw->update( 'watchlist', array( 'wl_notificationtimestamp' => $notificationTimestamp ),
-                       $this->dbCond(), __METHOD__ );
+               // If the page is watched by the user (or may be watched), update the timestamp
+               if ( $mode === self::DEFERRED && $wgActivityUpdatesUseJobQueue ) {
+                       JobQueueGroup::singleton()->push(
+                               EnqueueJob::newFromLocalJobs( new JobSpecification(
+                                       'activityUpdateJob',
+                                       array(
+                                               'type'      => 'updateWatchlistNotification',
+                                               'userid'    => $this->getUserId(),
+                                               'notifTime' => $notificationTimestamp,
+                                               'curTime'   => time()
+                                       ),
+                                       array( 'removeDuplicates' => true ),
+                                       $title
+                               ) )
+                       );
+               } else {
+                       $dbw = wfGetDB( DB_MASTER );
+                       $dbw->update( 'watchlist',
+                               array( 'wl_notificationtimestamp' => $notificationTimestamp ),
+                               $this->dbCond(),
+                               __METHOD__
+                       );
+               }
+
                $this->timestamp = null;
        }
 
index 054eceb..a5fd9d8 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
@@ -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 aca4363..79e859a 100644 (file)
@@ -376,6 +376,26 @@ 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( $this->getActionName() ) . '-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 83185e4..f4f2a2a 100644 (file)
@@ -504,7 +504,7 @@ class HistoryPager extends ReverseChronologicalPager {
                if ( $user->isAllowed( 'deleterevision' ) ) {
                        $actionButtons .= $this->getRevisionButton( 'revisiondelete', 'showhideselectedversions' );
                }
-               if ( $user->isAllowed( 'changetags' ) ) {
+               if ( ChangeTags::showTagEditingUI( $user ) ) {
                        $actionButtons .= $this->getRevisionButton( 'editchangetags', 'history-edit-tags' );
                }
                if ( $actionButtons ) {
@@ -631,14 +631,14 @@ class HistoryPager extends ReverseChronologicalPager {
                $del = '';
                $user = $this->getUser();
                $canRevDelete = $user->isAllowed( 'deleterevision' );
-               $canModifyTags = $user->isAllowed( 'changetags' );
+               $showTagEditUI = ChangeTags::showTagEditingUI( $user );
                // Show checkboxes for each revision, to allow for revision deletion and
                // change tags
-               if ( $canRevDelete || $canModifyTags ) {
+               if ( $canRevDelete || $showTagEditUI ) {
                        $this->preventClickjacking();
                        // If revision was hidden from sysops and we don't need the checkbox
                        // for anything else, disable it
-                       if ( !$canModifyTags && !$rev->userCan( Revision::DELETED_RESTRICTED, $user ) ) {
+                       if ( !$showTagEditUI && !$rev->userCan( Revision::DELETED_RESTRICTED, $user ) ) {
                                $del = Xml::check( 'deleterevisions', false, array( 'disabled' => 'disabled' ) );
                        // Otherwise, enable the checkbox...
                        } else {
index de4f977..203c687 100644 (file)
@@ -64,12 +64,12 @@ class InfoAction extends FormlessAction {
         * @param Title $title Title to clear cache for
         */
        public static function invalidateCache( Title $title ) {
-               global $wgMemc;
+               $cache = ObjectCache::getMainWANInstance();
 
                $revision = Revision::newFromTitle( $title, 0, Revision::READ_LATEST );
                if ( $revision !== null ) {
                        $key = wfMemcKey( 'infoaction', sha1( $title->getPrefixedText() ), $revision->getId() );
-                       $wgMemc->delete( $key );
+                       $cache->delete( $key );
                }
        }
 
@@ -193,7 +193,7 @@ class InfoAction extends FormlessAction {
         * @return array
         */
        protected function pageInfo() {
-               global $wgContLang, $wgMemc;
+               global $wgContLang;
 
                $user = $this->getUser();
                $lang = $this->getLanguage();
@@ -201,16 +201,17 @@ class InfoAction extends FormlessAction {
                $id = $title->getArticleID();
                $config = $this->context->getConfig();
 
+               $cache = ObjectCache::getMainWANInstance();
                $memcKey = wfMemcKey( 'infoaction',
                        sha1( $title->getPrefixedText() ), $this->page->getLatest() );
-               $pageCounts = $wgMemc->get( $memcKey );
+               $pageCounts = $cache->get( $memcKey );
                $version = isset( $pageCounts['cacheversion'] ) ? $pageCounts['cacheversion'] : false;
                if ( $pageCounts === false || $version !== self::CACHE_VERSION ) {
                        // Get page information that would be too "expensive" to retrieve by normal means
                        $pageCounts = $this->pageCounts( $title );
                        $pageCounts['cacheversion'] = self::CACHE_VERSION;
 
-                       $wgMemc->set( $memcKey, $pageCounts );
+                       $cache->set( $memcKey, $pageCounts );
                }
 
                // Get page properties
index 2a449df..4870167 100644 (file)
@@ -2302,8 +2302,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 ) {
        }
 
        /**@}*/
index d452bbd..d24112c 100644 (file)
@@ -66,9 +66,17 @@ class ApiFeedRecentChanges extends ApiBase {
 
                $formatter = $this->getFeedObject( $feedFormat, $specialClass );
 
-               // Everything is passed implicitly via $wgRequest… :(
-               // The row-getting functionality should maybe be factored out of ChangesListSpecialPage too…
+               // Parameters are passed via the request in the context… :(
+               $context = new DerivativeContext( $this );
+               $context->setRequest( new DerivativeRequest(
+                       $this->getRequest(),
+                       $this->params,
+                       $this->getRequest()->wasPosted()
+               ) );
+
+               // The row-getting functionality should be factored out of ChangesListSpecialPage too…
                $rc = new $specialClass();
+               $rc->setContext( $context );
                $rows = $rc->getRows();
 
                $feedItems = $rows ? ChangesFeed::buildItems( $rows ) : array();
index dbd5645..fa0bac3 100644 (file)
@@ -130,7 +130,7 @@ class ApiFormatXml extends ApiFormatBase {
                                ? $value[ApiResult::META_PRESERVE_KEYS]
                                : array();
                        $indexedTagName = isset( $value[ApiResult::META_INDEXED_TAG_NAME] )
-                               ? $value[ApiResult::META_INDEXED_TAG_NAME]
+                               ? self::mangleName( $value[ApiResult::META_INDEXED_TAG_NAME], $preserveKeys )
                                : '_v';
                        $bcBools = isset( $value[ApiResult::META_BC_BOOLS] )
                                ? $value[ApiResult::META_BC_BOOLS]
index 1e30616..27fc378 100644 (file)
@@ -82,6 +82,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 +98,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 +111,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 +138,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 +159,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 +221,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 +242,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 +260,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();
@@ -641,6 +672,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 +691,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 2ec3aa8..2b7937e 100644 (file)
@@ -1307,7 +1307,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 +1353,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 8c03dce..a93b7cc 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 );
@@ -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,26 @@ 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' ) ) {
+                       $warnings = $this->getResult()->removeValue( 'warnings', null );
+                       if ( $this->warningsAsError && $warnings ) {
+                               $this->dieUsage(
+                                       'Warnings cannot be represented in OpenSearch JSON format', 'warnings', 0,
+                                       array( 'warnings' => $warnings )
+                               );
+                       }
+               }
+
+               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..5efe788 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() ) {
index fc004cf..cc8ca97 100644 (file)
@@ -138,6 +138,7 @@ class ApiParse extends ApiBase {
                                        $main = new ApiMain( $req );
                                        $pageSet = new ApiPageSet( $main );
                                        $pageSet->execute();
+                                       $redirValues = $pageSet->getRedirectTitlesAsResult( $this->getResult() );
 
                                        $to = $page;
                                        foreach ( $pageSet->getRedirectTitles() as $title ) {
@@ -349,7 +350,20 @@ 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'] = $this->formatJsConfigVars( $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['indicators'] ) ) {
@@ -667,6 +681,53 @@ class ApiParse extends ApiBase {
                return $result;
        }
 
+       private function formatJsConfigVars( $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] = $this->formatJsConfigVars( (array)$v, false );
+                       } 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;
+               }
+
+               // 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
+               ) );
+
+               // Set metadata appropriately
+               if ( $hash ) {
+                       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;
+               }
+       }
+
        private function setIndexedTagNames( &$array, $mapping ) {
                foreach ( $mapping as $key => $name ) {
                        if ( isset( $array[$key] ) ) {
@@ -707,13 +768,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 44af83d..cc884ec 100644 (file)
@@ -245,6 +245,6 @@ class ApiQueryAllMessages extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Meta#allmessages_.2F_am';
+               return 'https://www.mediawiki.org/wiki/API:Allmessages';
        }
 }
index 5168859..05daa7a 100644 (file)
@@ -235,14 +235,14 @@ class ApiQueryAllUsers extends ApiQueryBase {
                        }
 
                        $data = array(
-                               'userid' => $row->user_id,
+                               'userid' => (int)$row->user_id,
                                'name' => $row->user_name,
                        );
 
                        if ( $fld_blockinfo && !is_null( $row->ipb_by_text ) ) {
-                               $data['blockid'] = $row->ipb_id;
+                               $data['blockid'] = (int)$row->ipb_id;
                                $data['blockedby'] = $row->ipb_by_text;
-                               $data['blockedbyid'] = $row->ipb_by;
+                               $data['blockedbyid'] = (int)$row->ipb_by;
                                $data['blockedtimestamp'] = wfTimestamp( TS_ISO_8601, $row->ipb_timestamp );
                                $data['blockreason'] = $row->ipb_reason;
                                $data['blockexpiry'] = $row->ipb_expiry;
@@ -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 8e271e7..dbed36c 100644 (file)
@@ -277,7 +277,7 @@ class ApiQueryBacklinksprop extends ApiQueryGeneratorBase {
 
                                $vals = array();
                                if ( $fld_pageid ) {
-                                       $vals['pageid'] = $row->page_id;
+                                       $vals['pageid'] = (int)$row->page_id;
                                }
                                if ( $fld_title ) {
                                        ApiQueryBase::addTitleInfo( $vals,
@@ -405,8 +405,7 @@ class ApiQueryBacklinksprop extends ApiQueryGeneratorBase {
        }
 
        public function getHelpUrls() {
-               $name = $this->getModuleName();
-               $prefix = $this->getModulePrefix();
-               return "https://www.mediawiki.org/wiki/API:Properties#{$name}_.2F_{$prefix}";
+               $name = ucfirst( $this->getModuleName() );
+               return "https://www.mediawiki.org/wiki/API:{$name}";
        }
 }
index 4a7023b..25f0bf7 100644 (file)
@@ -191,19 +191,19 @@ class ApiQueryBlocks extends ApiQueryBase {
                                ApiResult::META_TYPE => 'assoc',
                        );
                        if ( $fld_id ) {
-                               $block['id'] = $row->ipb_id;
+                               $block['id'] = (int)$row->ipb_id;
                        }
                        if ( $fld_user && !$row->ipb_auto ) {
                                $block['user'] = $row->ipb_address;
                        }
                        if ( $fld_userid && !$row->ipb_auto ) {
-                               $block['userid'] = $row->ipb_user;
+                               $block['userid'] = (int)$row->ipb_user;
                        }
                        if ( $fld_by ) {
                                $block['by'] = $row->ipb_by_text;
                        }
                        if ( $fld_byid ) {
-                               $block['byid'] = $row->ipb_by;
+                               $block['byid'] = (int)$row->ipb_by;
                        }
                        if ( $fld_timestamp ) {
                                $block['timestamp'] = wfTimestamp( TS_ISO_8601, $row->ipb_timestamp );
index 35fa56e..7b3e6e3 100644 (file)
@@ -226,6 +226,6 @@ class ApiQueryCategories extends ApiQueryGeneratorBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#categories_.2F_cl';
+               return 'https://www.mediawiki.org/wiki/API:Categories';
        }
 }
index 9f6c604..9266442 100644 (file)
@@ -115,6 +115,6 @@ class ApiQueryCategoryInfo extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#categoryinfo_.2F_ci';
+               return 'https://www.mediawiki.org/wiki/API:Categoryinfo';
        }
 }
index 7e76db2..524bffd 100644 (file)
@@ -89,7 +89,7 @@ class ApiQueryContributors extends ApiQueryBase {
                $res = $this->select( __METHOD__ );
                foreach ( $res as $row ) {
                        $fit = $result->addValue( array( 'query', 'pages', $row->page ),
-                               'anoncontributors', $row->anons
+                               'anoncontributors', (int)$row->anons
                        );
                        if ( !$fit ) {
                                // This not fitting isn't reasonable, so it probably means that
@@ -189,7 +189,7 @@ class ApiQueryContributors extends ApiQueryBase {
                        }
 
                        $fit = $this->addPageSubItem( $row->page,
-                               array( 'userid' => $row->user, 'name' => $row->username ),
+                               array( 'userid' => (int)$row->user, 'name' => $row->username ),
                                'user'
                        );
                        if ( !$fit ) {
@@ -250,6 +250,6 @@ class ApiQueryContributors extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#contributors_.2F_pc';
+               return 'https://www.mediawiki.org/wiki/API:Contributors';
        }
 }
index 26ae266..3a98478 100644 (file)
@@ -299,6 +299,6 @@ class ApiQueryDeletedRevisions extends ApiQueryRevisionsBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#deletedrevisions_.2F_drv';
+               return 'https://www.mediawiki.org/wiki/API:Deletedrevisions';
        }
 }
index 72a331f..76f594e 100644 (file)
@@ -328,7 +328,7 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                                                $rev['user'] = $row->ar_user_text;
                                        }
                                        if ( $fld_userid ) {
-                                               $rev['userid'] = $row->ar_user;
+                                               $rev['userid'] = (int)$row->ar_user;
                                        }
                                }
                        }
index 4d0bcfe..3282c71 100644 (file)
@@ -189,6 +189,6 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#duplicatefiles_.2F_df';
+               return 'https://www.mediawiki.org/wiki/API:Duplicatefiles';
        }
 }
index ec3d9d2..725ac88 100644 (file)
@@ -134,6 +134,6 @@ class ApiQueryExternalLinks extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#extlinks_.2F_el';
+               return 'https://www.mediawiki.org/wiki/API:Extlinks';
        }
 }
index 9ad7e27..057b011 100644 (file)
@@ -97,4 +97,8 @@ class ApiQueryFileRepoInfo extends ApiQueryBase {
                                => 'apihelp-query+filerepoinfo-example-simple',
                );
        }
+
+       public function getHelpUrls() {
+               return 'https://www.mediawiki.org/wiki/API:Filerepoinfo';
+       }
 }
index 4d357a7..5488984 100644 (file)
@@ -162,7 +162,7 @@ class ApiQueryFilearchive extends ApiQueryBase {
                        }
 
                        $file = array();
-                       $file['id'] = $row->fa_id;
+                       $file['id'] = (int)$row->fa_id;
                        $file['name'] = $row->fa_name;
                        $title = Title::makeTitle( NS_FILE, $row->fa_name );
                        self::addTitleInfo( $file, $title );
@@ -179,7 +179,7 @@ class ApiQueryFilearchive extends ApiQueryBase {
                        if ( $fld_user &&
                                Revision::userCanBitfield( $row->fa_deleted, File::DELETED_USER, $user )
                        ) {
-                               $file['userid'] = $row->fa_user;
+                               $file['userid'] = (int)$row->fa_user;
                                $file['user'] = $row->fa_user_text;
                        }
                        if ( $fld_sha1 ) {
index 94b4bbd..02846dc 100644 (file)
@@ -795,6 +795,6 @@ class ApiQueryImageInfo extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#imageinfo_.2F_ii';
+               return 'https://www.mediawiki.org/wiki/API:Imageinfo';
        }
 }
index 029d945..1b39d28 100644 (file)
@@ -172,6 +172,6 @@ class ApiQueryImages extends ApiQueryGeneratorBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#images_.2F_im';
+               return 'https://www.mediawiki.org/wiki/API:Images';
        }
 }
index 66178d4..eee5dae 100644 (file)
@@ -868,6 +868,6 @@ class ApiQueryInfo extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#info_.2F_in';
+               return 'https://www.mediawiki.org/wiki/API:Info';
        }
 }
index 5919ee9..8f8a17d 100644 (file)
@@ -183,6 +183,6 @@ class ApiQueryLangLinks extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#langlinks_.2F_ll';
+               return 'https://www.mediawiki.org/wiki/API:Langlinks';
        }
 }
index 3bd3714..d7b85c9 100644 (file)
@@ -42,13 +42,13 @@ class ApiQueryLinks extends ApiQueryGeneratorBase {
                                $this->table = 'pagelinks';
                                $this->prefix = 'pl';
                                $this->titlesParam = 'titles';
-                               $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Properties#links_.2F_pl';
+                               $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Links';
                                break;
                        case self::TEMPLATES:
                                $this->table = 'templatelinks';
                                $this->prefix = 'tl';
                                $this->titlesParam = 'templates';
-                               $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Properties#templates_.2F_tl';
+                               $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Templates';
                                break;
                        default:
                                ApiBase::dieDebug( __METHOD__, 'Unknown module name' );
index 87f90c5..1f992f8 100644 (file)
@@ -143,6 +143,6 @@ class ApiQueryPageProps extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#pageprops_.2F_pp';
+               return 'https://www.mediawiki.org/wiki/API:Pageprops';
        }
 }
index fb65e5e..033310d 100644 (file)
@@ -123,7 +123,7 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                                }
 
                                if ( isset( $prop['userid'] ) || /*B/C*/isset( $prop['user'] ) ) {
-                                       $vals['userid'] = $row->pt_user;
+                                       $vals['userid'] = (int)$row->pt_user;
                                }
 
                                if ( isset( $prop['comment'] ) ) {
index f6a6478..74bccc2 100644 (file)
@@ -458,7 +458,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                }
 
                                if ( $this->fld_userid ) {
-                                       $vals['userid'] = $row->rc_user;
+                                       $vals['userid'] = (int)$row->rc_user;
                                }
 
                                if ( !$row->rc_user ) {
index 1a65fe3..9e02551 100644 (file)
@@ -468,6 +468,6 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#revisions_.2F_rv';
+               return 'https://www.mediawiki.org/wiki/API:Revisions';
        }
 }
index e29ef8d..90af15a 100644 (file)
@@ -92,7 +92,9 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                } elseif ( $what == 'title' ) {
                        $matches = $search->searchTitle( $query );
                } elseif ( $what == 'nearmatch' ) {
-                       $matches = SearchEngine::getNearMatchResultSet( $query );
+                       // near matches must receive the user input as provided, otherwise
+                       // the near matches within namespaces are lost.
+                       $matches = SearchEngine::getNearMatchResultSet( $params['search'] );
                } else {
                        // We default to title searches; this is a terrible legacy
                        // of the way we initially set up the MySQL fulltext-based
@@ -129,6 +131,8 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                        if ( isset( $searchInfo['suggestion'] ) && $matches->hasSuggestion() ) {
                                $apiResult->addValue( array( 'query', 'searchinfo' ),
                                        'suggestion', $matches->getSuggestionQuery() );
+                               $apiResult->addValue( array( 'query', 'searchinfo' ),
+                                       'suggestionsnippet', $matches->getSuggestionSnippet() );
                        }
                }
 
@@ -172,6 +176,9 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                if ( isset( $prop['titlesnippet'] ) ) {
                                        $vals['titlesnippet'] = $result->getTitleSnippet();
                                }
+                               if ( isset( $prop['categorysnippet'] ) ) {
+                                       $vals['categorysnippet'] = $result->getCategorySnippet();
+                               }
                                if ( !is_null( $result->getRedirectTitle() ) ) {
                                        if ( isset( $prop['redirecttitle'] ) ) {
                                                $vals['redirecttitle'] = $result->getRedirectTitle()->getPrefixedText();
@@ -188,6 +195,9 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                                $vals['sectionsnippet'] = $result->getSectionSnippet();
                                        }
                                }
+                               if ( isset( $prop['isfilematch'] ) ) {
+                                       $vals['isfilematch'] = $result->isFileMatch();
+                               }
 
                                // Add item to results and see whether it fits
                                $fit = $apiResult->addValue( array( 'query', $this->getModuleName() ),
@@ -314,6 +324,8 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                        'sectiontitle',
                                        'sectionsnippet',
                                        'hasrelated',
+                                       'isfilematch',
+                                       'categorysnippet',
                                ),
                                ApiBase::PARAM_ISMULTI => true,
                        ),
index b81e993..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 );
@@ -867,6 +868,6 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Meta#siteinfo_.2F_si';
+               return 'https://www.mediawiki.org/wiki/API:Siteinfo';
        }
 }
index 1126842..3de72bf 100644 (file)
@@ -122,4 +122,8 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo {
                                => 'apihelp-query+stashimageinfo-example-params',
                );
        }
+
+       public function getHelpUrls() {
+               return 'https://www.mediawiki.org/wiki/API:Stashimageinfo';
+       }
 }
index 65a08a3..f887664 100644 (file)
@@ -93,4 +93,8 @@ class ApiQueryTokens extends ApiQueryBase {
        public function getCacheMode( $params ) {
                return 'private';
        }
+
+       public function getHelpUrls() {
+               return 'https://www.mediawiki.org/wiki/API:Tokens';
+       }
 }
index e5ec67d..480a1ab 100644 (file)
@@ -340,7 +340,7 @@ class ApiQueryContributions extends ApiQueryBase {
                }
 
                // Any rows where we can't view the user were filtered out in the query.
-               $vals['userid'] = $row->rev_user;
+               $vals['userid'] = (int)$row->rev_user;
                $vals['user'] = $row->rev_user_text;
                if ( $row->rev_deleted & Revision::DELETED_USER ) {
                        $vals['userhidden'] = true;
index 3d3590c..4302ef3 100644 (file)
@@ -274,6 +274,6 @@ class ApiQueryUserInfo extends ApiQueryBase {
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Meta#userinfo_.2F_ui';
+               return 'https://www.mediawiki.org/wiki/API:Userinfo';
        }
 }
index f22c213..8b1a075 100644 (file)
@@ -193,9 +193,9 @@ class ApiQueryUsers extends ApiQueryBase {
                                        $data[$name]['hidden'] = true;
                                }
                                if ( isset( $this->prop['blockinfo'] ) && !is_null( $row->ipb_by_text ) ) {
-                                       $data[$name]['blockid'] = $row->ipb_id;
+                                       $data[$name]['blockid'] = (int)$row->ipb_id;
                                        $data[$name]['blockedby'] = $row->ipb_by_text;
-                                       $data[$name]['blockedbyid'] = $row->ipb_by;
+                                       $data[$name]['blockedbyid'] = (int)$row->ipb_by;
                                        $data[$name]['blockedtimestamp'] = wfTimestamp( TS_ISO_8601, $row->ipb_timestamp );
                                        $data[$name]['blockreason'] = $row->ipb_reason;
                                        $data[$name]['blockexpiry'] = $row->ipb_expiry;
index 9f7387c..3eb57fd 100644 (file)
@@ -332,9 +332,9 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                        }
                        if ( Revision::userCanBitfield( $row->rc_deleted, Revision::DELETED_USER, $user ) ) {
                                if ( $this->fld_userid ) {
-                                       $vals['userid'] = $row->rc_user;
+                                       $vals['userid'] = (int)$row->rc_user;
                                        // for backwards compatibility
-                                       $vals['user'] = $row->rc_user;
+                                       $vals['user'] = (int)$row->rc_user;
                                }
 
                                if ( $this->fld_user ) {
index 345cf43..044b6e0 100644 (file)
@@ -276,6 +276,10 @@ class ApiResult implements ApiSerializable {
         * @param int $flags Zero or more OR-ed flags like OVERRIDE | ADD_ON_TOP.
         */
        public static function setValue( array &$arr, $name, $value, $flags = 0 ) {
+               if ( !( $flags & ApiResult::NO_VALIDATE ) ) {
+                       $value = self::validateValue( $value );
+               }
+
                if ( $name === null ) {
                        if ( $flags & ApiResult::ADD_ON_TOP ) {
                                array_unshift( $arr, $value );
@@ -285,10 +289,6 @@ class ApiResult implements ApiSerializable {
                        return;
                }
 
-               if ( !( $flags & ApiResult::NO_VALIDATE ) ) {
-                       $value = self::validateValue( $value );
-               }
-
                $exists = isset( $arr[$name] );
                if ( !$exists || ( $flags & ApiResult::OVERRIDE ) ) {
                        if ( !$exists && ( $flags & ApiResult::ADD_ON_TOP ) ) {
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 4e80b9b..8ba597a 100644 (file)
        "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-rootpage": "Importovat jako podstránku k této stránce.",
+       "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-login-param-name": "Uživatelské jméno.",
        "apihelp-login-param-password": "Heslo.",
        "apihelp-login-param-domain": "Doména (volitelná)",
index 1e2bb0b..0ddbd2b 100644 (file)
@@ -10,7 +10,8 @@
                        "Macofe",
                        "Se4598",
                        "Purodha",
-                       "Andreasburmeister"
+                       "Andreasburmeister",
+                       "Anomie"
                ]
        },
        "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-yaml-description": "Daten im YAML-Format ausgeben.",
        "apihelp-yamlfm-description": "Daten im YAML-Format ausgeben (schöngedruckt in HTML).",
        "api-format-title": "MediaWiki-API-Ergebnis",
-       "api-format-prettyprint-header": "Dies ist die HTML-Repräsentation des $1-Formats. HTML ist zur Fehlerbehebung gut, aber unpassend für den Anwendungsgebrauch.\n\nGib den Parameter <var>Format</var> an, um das Ausgabeformat zu ändern. Um die Nicht-HTML-Repräsentation des $1-Formats anzusehen, lege <kbd>format=$2</kbd> fest.\n\nSiehe die [[mw:API|vollständige Dokumentation]] oder die [[Special:ApiHelp/main|API-Hilfe]] für weitere Informationen.",
+       "api-format-prettyprint-header": "Dies ist die HTML-Repräsentation des $1-Formats. HTML ist zur Fehlerbehebung gut, aber unpassend für den Anwendungsgebrauch.\n\nGib den Parameter <var>format</var> an, um das Ausgabeformat zu ändern. Um die Nicht-HTML-Repräsentation des $1-Formats anzusehen, lege <kbd>format=$2</kbd> fest.\n\nSiehe die [[mw:API|vollständige Dokumentation]] oder die [[Special:ApiHelp/main|API-Hilfe]] für weitere Informationen.",
        "api-orm-param-props": "Felder an die Anfrage.",
        "api-orm-param-limit": "Maximale Anzahl zurückgegebender Zeilen.",
        "api-pageset-param-titles": "Eine Liste der Titel, an denen gearbeitet werden soll.",
index d4d239f..2663ab7 100644 (file)
@@ -1,12 +1,22 @@
 {
        "@metadata": {
                "authors": [
-                       "Glavkos"
+                       "Glavkos",
+                       "Protnet"
                ]
        },
        "apihelp-block-description": "Φραγή χρήστη",
        "apihelp-block-param-user": "Όνομα χρήστη, διεύθυνση IP ή εύρος διευθύνσεων IP που θέλετε να επιβάλετε φραγή.",
        "apihelp-block-param-reason": "Λόγος φραγής.",
        "apihelp-createaccount-param-name": "Όνομα χρήστη.",
-       "apihelp-delete-description": "Διαγραφή σελίδας."
+       "apihelp-delete-description": "Διαγραφή σελίδας.",
+       "apihelp-emailuser-param-text": "Σώμα μηνύματος.",
+       "apihelp-emailuser-param-ccme": "Αποστολή αντιγράφου αυτού του μηνύματος σε εμένα.",
+       "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": "Εμφάνιση της διαφοράς μεγέθους μεταξύ αναθεωρήσεων."
 }
index 5b3c076..e10c660 100644 (file)
        "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.",
+       "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+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-prop": "Which properties to return:\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;score:<span class=\"apihelp-deprecated\">Deprecated and ignored.</span>\n;hasrelated:<span class=\"apihelp-deprecated\">Deprecated and ignored.</span>",
+       "apihelp-query+search-param-prop": "Which properties to return:\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": "How many total pages to return.",
        "apihelp-query+search-param-interwiki": "Include interwiki results in the search, if available.",
        "apihelp-query+search-param-backend": "Which search backend to use, if not the default.",
        "apihelp-undelete-example-page": "Undelete page <kbd>Main Page</kbd>.",
        "apihelp-undelete-example-revisions": "Undelete two revisions of page <kbd>Main Page</kbd>.",
 
-       "apihelp-upload-description": "Upload a file, or get the status of pending uploads.\n\nSeveral methods are available:\n* Upload file contents directly, using the <var>$1file</var> parameter.\n* Upload the file in pieces, using the <var>$1filesize</var>, <var>$1chunk</var>, and <var>$1offset</var> parameters.* Have the MediaWiki server fetch a file from a URL, using the <var>$1url</var> parameter.\n* Complete an earlier upload that failed due to warnings, using the <var>$1filekey</var> parameter.\nNote that the HTTP POST must be done as a file upload (i.e. using <code>multipart/form-data</code>) when sending the <var>$1file</var>.",
+       "apihelp-upload-description": "Upload a file, or get the status of pending uploads.\n\nSeveral methods are available:\n* Upload file contents directly, using the <var>$1file</var> parameter.\n* Upload the file in pieces, using the <var>$1filesize</var>, <var>$1chunk</var>, and <var>$1offset</var> parameters.\n* Have the MediaWiki server fetch a file from a URL, using the <var>$1url</var> parameter.\n* Complete an earlier upload that failed due to warnings, using the <var>$1filekey</var> parameter.\nNote that the HTTP POST must be done as a file upload (i.e. using <code>multipart/form-data</code>) when sending the <var>$1file</var>.",
        "apihelp-upload-param-filename": "Target filename.",
        "apihelp-upload-param-comment": "Upload comment. Also used as the initial page text for new files if <var>$1text</var> is not specified.",
        "apihelp-upload-param-text": "Initial page text for new files.",
        "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",
        "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]])",
index d514f60..1742495 100644 (file)
@@ -7,37 +7,67 @@
                        "Fitoschido",
                        "JasterTDC",
                        "Edslov",
-                       "Carlos Cristia"
+                       "Carlos Cristia",
+                       "Ryo567"
                ]
        },
        "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-example-simple": "Probar la validez de una ficha <kbd>csrf</kbd>.",
        "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-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-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-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-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",
@@ -53,6 +88,8 @@
        "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-feedcontributions-description": "Devuelve el canal de contribuciones de un usuario.",
        "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.",
+       "apihelp-import-param-rootpage": "Importar como subpágina de esta página. Se ignora si se proporciona el parámetro <kbd>$1namespace</kbd>.",
        "apihelp-login-param-name": "Nombre de usuario.",
        "apihelp-login-param-password": "Contraseña.",
        "apihelp-login-param-domain": "Dominio (opcional).",
        "apihelp-options-example-reset": "Restablecer todas las preferencias",
        "apihelp-paraminfo-description": "Obtener información acerca de los módulos de la API.",
        "apihelp-paraminfo-param-helpformat": "Formato de las cadenas de ayuda.",
+       "apihelp-parse-paramvalue-prop-modules": "Da los módulos ResourceLoader utilizados en la página.",
        "apihelp-patrol-example-rcid": "Patrullar un cambio reciente",
        "apihelp-patrol-example-revid": "Patrullar una revisión",
        "apihelp-protect-param-reason": "Motivo de la (des)protección.",
diff --git a/includes/api/i18n/fo.json b/includes/api/i18n/fo.json
new file mode 100644 (file)
index 0000000..5522904
--- /dev/null
@@ -0,0 +1,39 @@
+{
+       "@metadata": {
+               "authors": [
+                       "EileenSanda"
+               ]
+       },
+       "apihelp-block-description": "Sperra ein brúkara.",
+       "apihelp-block-param-user": "Brúkaranavn, IP adressa ella IP interval ið tú ynskir at sperra.",
+       "apihelp-block-param-expiry": "Lokadagur. Kann vera relativt (t.d. <kbd>5 months</kbd> ella <kbd>2 weeks</kbd>) ella absolutt (t.d. <kbd>2014-09-18T12:34:56Z</kbd>). Um ásett til <kbd>infinite</kbd>, <kbd>indefinite</kbd>, ella <kbd>never</kbd>, so gongur sperringin aldri út.",
+       "apihelp-block-param-reason": "Orsøk til sperring.",
+       "apihelp-block-param-anononly": "Sperra bara dulnevndir brúkarar (t.d. ger rættingar frá dulnendum óvirknar fyri hesa IP adressuna).",
+       "apihelp-block-param-nocreate": "Forða fyri upprættan av konto.",
+       "apihelp-block-param-autoblock": "Sperrað sjálvvirkandi tað seinastu IP adressuna og allar fylgjandi IP adressur, sum viðkomandi roynir at rætta/skriva frá.",
+       "apihelp-block-param-noemail": "Forða brúkaranum í at senda teldupost gjøgnum wikiina. (Krevur <code>blockemail</code> rættindini).",
+       "apihelp-block-param-hidename": "Fjal brúkaranavnið frá sperringarlogginum. (Krevur <code>hideuser</code> rættindi).",
+       "apihelp-block-param-allowusertalk": "Loyv brúkaranum at skriva á sína egnu síðu (avhongur av <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
+       "apihelp-block-param-reblock": "Um brúkarin longu er sperraður, yvirskriva so tað verandi sperringina.",
+       "apihelp-block-example-ip-simple": "Sperra IP adressuna <kbd>192.0.2.5</kbd> í tríggjar dagar við orsøkini <kbd>First strike</kbd>.",
+       "apihelp-block-example-user-complex": "Sperra brúkara <kbd>Vandal</kbd> í óvissa tíð við orsøkini  <kbd>Vandalism</kbd>, og forða fyri upprættan av nýggjum kontum og at senda teldupost.",
+       "apihelp-createaccount-description": "Upprætta eina nýggja brúkarakonto.",
+       "apihelp-createaccount-param-name": "Brúkaranavn.",
+       "apihelp-createaccount-param-password": "Loyniorð (síggj burtur frá <var>$1mailpassword</var> um er upplýst).",
+       "apihelp-createaccount-param-email": "Teldupostadressan hjá brúkaranum (valfrítt).",
+       "apihelp-createaccount-param-realname": "Veruliga navnið hjá brúkaranum (valfrítt).",
+       "apihelp-createaccount-example-pass": "Upprætta brúkara <kbd>testuser</kbd> við loyniorðinum <kbd>test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Upprætta brúkaran <kbd>testmailuser</kbd> og send eitt tilvildarliga stovnað loyniorð við telduposti.",
+       "apihelp-delete-description": "Strika eina síðu.",
+       "apihelp-edit-example-edit": "Rætta eina síðu.",
+       "apihelp-emailuser-description": "Send t-post til ein brúkara.",
+       "apihelp-emailuser-param-subject": "Evni teigur.",
+       "apihelp-emailuser-param-text": "Innihaldið í teldubrævinum.",
+       "apihelp-emailuser-param-ccme": "Send mær eitt avrit av hesum telduposti.",
+       "apihelp-emailuser-example-email": "Send ein teldupost til brúkaran <kbd>WikiSysop</kbd> við tekstinum <kbd>Content</kbd>.",
+       "apihelp-expandtemplates-description": "Víðkar allar fyrimyndir í wikitekstinum.",
+       "apihelp-expandtemplates-param-title": "Heiti á síðuni.",
+       "apihelp-login-param-name": "Brúkaranavn.",
+       "apihelp-login-param-password": "Loyniorð.",
+       "apihelp-move-description": "Flyt eina síðu."
+}
index 64c7146..d7db955 100644 (file)
@@ -12,7 +12,9 @@
                        "Raulel",
                        "Arkanosis",
                        "Ltrlg",
-                       "Crochet.david"
+                       "Crochet.david",
+                       "0x010C",
+                       "Lucky"
                ]
        },
        "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]].",
@@ -86,6 +88,7 @@
        "apihelp-edit-param-sectiontitle": "Le titre pour une nouvelle section.",
        "apihelp-edit-param-text": "Contenu de la page.",
        "apihelp-edit-param-summary": "Modifier le résumé. Également le titre de la section quand $1section=new et $1sectiontitle n’est pas défini.",
+       "apihelp-edit-param-tags": "Modifier les balises à appliquer à la révision.",
        "apihelp-edit-param-minor": "Modification mineure.",
        "apihelp-edit-param-notminor": "Modification non mineure.",
        "apihelp-edit-param-bot": "Marquer cette modification comme robot.",
        "apihelp-import-param-interwikipage": "Pour les importations interwiki : page à importer.",
        "apihelp-import-param-fullhistory": "Pour les importations interwiki : importer tout l’historique, et pas seulement la version courante.",
        "apihelp-import-param-templates": "Pour les importations interwiki : importer aussi tous les modèles inclus.",
-       "apihelp-import-param-namespace": "Pour les importations interwiki : importer vers cet espace de noms.",
-       "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page.",
+       "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-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-query+allfileusages-param-to": "Le titre du fichier auquel arrêter l’énumération.",
        "apihelp-query+allfileusages-param-prefix": "Rechercher tous les fichiers dont le titre commence par cette valeur.",
        "apihelp-query+allfileusages-param-unique": "Afficher uniquement les titres de fichier distincts. Impossible à utiliser avec $1prop=ids.\nQuand utilisé comme générateur, produit les pages cibles au lieu des sources.",
-       "apihelp-query+allfileusages-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page utilisatrice (impossible à utiliser avec $1unique).\n;title:Ajoute le titre du fichier.",
+       "apihelp-query+allfileusages-param-prop": "Quelles informations inclure :\n;ids:Ajoute les IDs des pages utilisatrices (impossible à utiliser avec $1unique).\n;title:Ajoute le titre du fichier.",
        "apihelp-query+allfileusages-param-limit": "Combien d’éléments renvoyer au total.",
        "apihelp-query+allfileusages-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+allfileusages-example-B": "Lister les titres de fichier, y compris les manquants, avec les IDs de page d’où ils proviennent, en commençant à <kbd>B</kbd>.",
        "apihelp-query+pagepropnames-example-simple": "Obtenir les 10 premiers noms de propriété.",
        "apihelp-query+pageprops-description": "Obtenir diverses propriétés définies dans le contenu de la page.",
        "apihelp-query+pageprops-param-prop": "Lister uniquement ces propriétés. Utile pour vérifier si une certaine page utilise une certaine propriété de page.",
-       "apihelp-query+pageprops-example-simple": "Obtenir les propriétés de <kbd>Category:Foo</kbd>.",
+       "apihelp-query+pageprops-example-simple": "Obtenir les propriétés des pages <kbd>Accueil</kbd> et <kbd>MédiaWiki</kbd>.",
        "apihelp-query+pageswithprop-description": "Lister toutes les pages utilisant une propriété de page donnée.",
        "apihelp-query+pageswithprop-param-propname": "Propriété de page pour laquelle énumérer les pages.",
        "apihelp-query+pageswithprop-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page.\n;title:Ajoute le titre et l’ID de l’espace de noms de la page.\n;value:Ajoute la valeur de la propriété de page.",
        "apihelp-setnotificationtimestamp-example-page": "Réinitialiser l’état de notification pour la <kbd>Page principale<kbd>.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixer l’horodatage de notification pour <kbd>Page principale</kbd> afin que toutes les modifications depuis le 1 janvier 2012 soient non vues",
        "apihelp-setnotificationtimestamp-example-allpages": "Réinitialiser l’état de notification sur les pages dans l’espace de noms <kbd>{{ns:user}}</kbd>.",
+       "apihelp-tag-description": "Ajouter ou enlever des balises de modification aux révisions ou ou aux entrées de journal individuelles.",
+       "apihelp-tag-param-add": "Balises à ajouter. Seules les balises définies manuellement peuvent être ajoutées.",
        "apihelp-tag-param-reason": "Motif de la modification.",
        "apihelp-tokens-description": "Obtenir les jetons pour les actions modifiant les données.\n\nCe module est obsolète, remplacé par [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-tokens-param-type": "Types de jeton à demander.",
        "apihelp-undelete-param-watchlist": "Ajouter ou supprimer la page de la liste de suivi de l’utilisateur actuel sans condition, utiliser les préférences ou ne pas modifier le suivi.",
        "apihelp-undelete-example-page": "Annuler la suppression de la page <kbd>Main Page</kbd>.",
        "apihelp-undelete-example-revisions": "Annuler la suppression de deux révisions de la page <kbd>Main Page</kbd>.",
-       "apihelp-upload-description": "Télécharger un fichier, ou obtenir l’état des téléchargements en cours.\n\nPlusieurs méthodes sont disponibles :\n* Télécharger directement le contenu du fichier, en utilisant le paramètre <var>$1file</var>.\n* Télécharger le fichier par morceaux, en utilsiant les paramètres <var>$1filesize</var>, <var>$1chunk</var>, and <var>$1offset</var>.* Pour que le serveur MédiaWiki cherche un fichier depuis une URL, utiliser le paramètre <var>$1url</var>.\n* Terminer un téléchargement précédent qui a échoué à cause d’avertissements, en utilisant le paramètre <var>$1filekey</var>.\nNoter que le POST HTTP doit être fait comme un téléchargement de fichier (par ex. en utilisant <code>multipart/form-data</code>) en envoyant le <code>multipart/form-data</code>.",
+       "apihelp-upload-description": "Télécharger un fichier, ou obtenir l’état des téléchargements en cours.\n\nPlusieurs méthodes sont disponibles :\n* Télécharger directement le contenu du fichier, en utilisant le paramètre <var>$1file</var>.\n* Télécharger le fichier par morceaux, en utilsiant les paramètres <var>$1filesize</var>, <var>$1chunk</var>, and <var>$1offset</var>.\n* Pour que le serveur MédiaWiki cherche un fichier depuis une URL, utiliser le paramètre <var>$1url</var>.\n* Terminer un téléchargement précédent qui a échoué à cause d’avertissements, en utilisant le paramètre <var>$1filekey</var>.\nNoter que le POST HTTP doit être fait comme un téléchargement de fichier (par ex. en utilisant <code>multipart/form-data</code>) en envoyant le <code>multipart/form-data</code>.",
        "apihelp-upload-param-filename": "Nom de fichier cible.",
        "apihelp-upload-param-comment": "Télécharger le commentaire. Utilisé aussi comme texte de la page initiale pour les nouveaux fichiers si <var>$1text</var> n’est pas spécifié.",
        "apihelp-upload-param-text": "Texte de page initiale pour les nouveaux fichiers.",
        "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 9bb8245..df3d954 100644 (file)
        "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.",
+       "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+filearchive-param-dir": "Dirección na cal listar.",
        "apihelp-query+filearchive-param-sha1": "Función hash SHA1 da imaxe. Invalida $1sha1base36.",
        "apihelp-query+filearchive-param-sha1base36": "Función hash SHA1 da imaxe en base 36 (usado en MediaWiki).",
+       "apihelp-query+filearchive-param-prop": "Que información de imaxe devolver:\n;sha1:Engade a función hash SHA-1 da imaxe.\n;timestamp:Engade o selo de tempo da versión subida.\n;user:Engade o usuario que subiu a versión da imaxe.\n;size:Engade o tamaño da imaxe en bytes e a altura, anchura e contador de páxina (se é aplicable).\n;dimensions:Alias para o tamaño.\n;description:Engade a descrición da versión da imaxe.\n;parseddescription:Analiza a descrición na versión.\n;mime:Engade o tipo MIME da imaxe.\n;mediatype:Engade o tipo multimedia da imaxe.\n;metadata:Lista os metadatos Exif da versión da imaxe.\n;bitdepth:Engade a profundidade de bit da versión.\n;archivename:Engade o nome do ficheiro da versión do ficheiro para as versións que non son a última.",
        "apihelp-query+filearchive-example-simple": "Mostrar unha lista de tódolos fichieiros eliminados.",
        "apihelp-query+filerepoinfo-description": "Devolver a meta información sobre os repositorios de imaxes configurados na wiki.",
        "apihelp-query+filerepoinfo-param-prop": "Que propiedades do repositorio mostrar (pode haber máis dispoñible nalgunhas wikis):\n;apiurl:URL ó API do repositorio - útil para obter información das imaxes no host.\n;name:A clave do repositorio - usada p. ex. nas variables de retorno de <var>[[mw:Manual:$wgForeignFileRepos|$wgForeignFileRepos]]</var> e [[Special:ApiHelp/query+imageinfo|imageinfo]]\n;displayname:O nome lexible do wiki repositorio.\n;rooturl:URL raíz dos camiños de imaxe.\n;local:Se o repositorio é o repositorio local ou non.",
        "apihelp-query+linkshere-example-simple": "Obter unha lista que ligan á [[Main Page]]",
        "apihelp-query+linkshere-example-generator": "Obter a información das páxinas que ligan á [[Main Page]].",
        "apihelp-query+logevents-description": "Obter os eventos dos rexistros.",
+       "apihelp-query+logevents-param-prop": "Que propiedades obter:\n;ids:Engade o identificador do evento.\n;title:Engade o título da páxina para o evento.\n;type:Engade o tipo de evento.\n;user:Engade o usuario responsable do evento.\n;userid:Engade o identificador do usuario responsable do evento.\n;timestamp:Engade o selo de tempo do evento.\n;comment:Engade o comentario do evento.\n;parsedcomment:Engade o comentario analizado do evento.\n;details:Lista detalles adicionais do evento.\n;tags:Lista as etiquetas do evento.",
        "apihelp-query+logevents-param-type": "Filtrar as entradas do rexistro para mostrar só as deste tipo.",
        "apihelp-query+logevents-param-action": "Filtrar accións no rexistro para mostrar só esta acción. Ignora <var>$1type</var>. Accións comodín como  <kbd>action/*</kbd> permiten especificar calquera cadea para o asterisco.",
        "apihelp-query+logevents-param-start": "Selo de tempo no que comezar a enumeración.",
        "apihelp-query+querypage-param-page": "Nome da páxina especial. Teña en conta que diferencia entre maiúsculas e minúsculas.",
        "apihelp-query+querypage-param-limit": "Número de resultados a visualizar.",
        "apihelp-query+querypage-example-ancientpages": "Resultados devoltos de [[Special:Ancientpages]].",
+       "apihelp-query+random-description": "Obter un conxunto de páxinas aleatorias.\n\nAs páxinas están listadas nunha secuencia fixa, só o punto de comezo é aleatorio. Isto significa que se, por exemplo, a <samp>Main Page</samp> é a primeira páxina aleatoria da lista, a <samp>Lista de monos ficticios</samp> será <em>sempre</em> a segunda, <samp>Lista de xente en selos de Vanuatu</samp> será a terceira, etc.\n\nSe o númeor de páxinas do espazo de nomes é menor que <var>$1limit</var>, devolveranse menos páxinas. Non se devolverá dúas veces a mesma páxina.",
        "apihelp-query+random-param-namespace": "Devolver páxinas só neste espazo de nomes.",
        "apihelp-query+random-param-limit": "Limitar cantas páxinas aleatorias se van devolver.",
        "apihelp-query+random-param-redirect": "Cargar unha redirección aleatoria no canto dunha páxina aleatoria.",
        "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-example-first5-after": "Mostrar as cinco primeiras revisións da <kbd>Páxina Principal</kbd> feitas despois de 2006-05-01.",
        "apihelp-query+revisions-example-first5-not-localhost": "Mostrar as cinco primeiras revisións da <kbd>Páxina Principal</kbd> que non foron feitas polo usuario anónimo <kbd>127.0.0.1</kbd>.",
        "apihelp-query+revisions-example-first5-user": "Mostrar as cinco primeiras revisión da <kbd>Páxina Principal</kbd> feitas polo usuario <kbd>MediaWiki default</kbd>.",
+       "apihelp-query+revisions+base-param-prop": "Que propiedades mostrar para cada modificación:\n;ids:O identificador da modificación.\n;flags:Etiquetas de modificación(menor).\n;timestamp:Selo de tempo da modificación.\n;user:Usuario que fixo a modificación.\n;userid:Identificador de usuario que fixo a modificación.\n;size:Lonxitude (bytes) da modificación.\n;sha1:SHA-1 (base 16) da modificación.\n;contentmodel:Identificador do modelo de contido da modificación.\n;comment:Comentario do usuario que fixo a modificación.\n;parsedcomment:Comentario analizado do usuario que fixo a modificación.\n;content:Texto da modificación.\n;tags:Etiquetas da modificación.",
        "apihelp-query+revisions+base-param-limit": "Limitar cantas revisións se van devolver.",
        "apihelp-query+revisions+base-param-expandtemplates": "Expandir os modelos no contido da revisión (require $1prop=content).",
        "apihelp-query+revisions+base-param-generatexml": "Xenerar a árbore de análise XML para o contido da revisión (require $1prop=content).",
        "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+stashimageinfo-example-params": "Devolve as miniaturas de dous ficheiros almacenados.",
        "apihelp-query+tags-description": "Lista de marcas de cambios.",
        "apihelp-query+tags-param-limit": "Máximo número de etiquetas a listar.",
+       "apihelp-query+tags-param-prop": "Que propiedades recuperar:\n;name:Engade o nome da etiqueta.\n;displayname:Engade a mensaxe do sistema para a etiqueta.\n;description:Engade a descrición da etiqueta.\n;hitcount:Engade o número de modificacións e de entradas do rexistro que teñen esta etiqueta.\n;defined:Indica se a etiqueta está definida.\n;source:Obtén as fontes da etiqueta, que poden incluír <samp>extension</samp> para etiquetas definidas en extensión e <samp>manual</samp> para etiquetas que poden ser aplicadas manualmente polos usuarios.\n;active:Se a etiqueta aínda está a ser usada.",
        "apihelp-query+tags-example-simple": "Listar as marcas dispoñibles",
        "apihelp-query+templates-description": "Devolve todas as páxinas incluídas na páxina indicada.",
        "apihelp-query+templates-param-namespace": "Mostrar modelos só neste espazo de nomes.",
        "apihelp-query+usercontribs-param-user": "Usuarios para os que recuperar as contribucións.",
        "apihelp-query+usercontribs-param-userprefix": "Recuperar as contribucións de todos os usuarios cuxo nome comece por este valor. Ignora $1user.",
        "apihelp-query+usercontribs-param-namespace": "Só listar contribucións nestes espazos de nomes.",
+       "apihelp-query+usercontribs-param-prop": "Engade información adicional:\n;ids:Engade os identificadores de páxina e modificación.\n;title:Engade o título e o identificador do espazo de nomes da páxina.\n;timestamp:Engade o selo de tempo da modificación.\n;comment:Engade o comentario da modificación.\n;parsedcomment:Engade o comentario analizado da modificación.\n;size:Engade o novo tamaño da modificación.\n;sizediff:Engade o delta do tamaño da modificación comparada coa anterior.\n;flags:Engade os indicadores da modificación.\n;patrolled:Marca as modificacións vixiadas.\n;tags:Lista as etiquetas da modificación.",
        "apihelp-query+usercontribs-param-show": "Só mostrar elementos que cumpran estos criterios, p.ex. só edicións menores: <kbd>$2show=!minor</kbd>.\n\nSe está fixado <kbd>$2show=patrolled</kbd> ou <kbd>$2show=!patrolled</kbd>, as modificacións máis antigas que <var>[[mw:Manual:$wgRCMaxAge|$wgRCMaxAge]]</var> ($1 {{PLURAL:$1|segundo|segundos}}) non se mostrarán.",
        "apihelp-query+usercontribs-param-tag": "Só listar revisións marcadas con esta etiqueta.",
        "apihelp-query+usercontribs-param-toponly": "Listar só cambios que son a última revisión.",
        "apihelp-undelete-param-watchlist": "Engadir ou eliminar a páxina da lista de vixiancia do usuario actual sen condicións, use as preferencias ou non cambie a vixiancia.",
        "apihelp-undelete-example-page": "Restaurar a <kbd>Páxina Principal</kbd>.",
        "apihelp-undelete-example-revisions": "Restaurar dúas revisións de <kbd>[[Main Page]]</kbd>.",
+       "apihelp-upload-description": "Subir un ficheiro, ou obter o estado de subas pedentes.\n\nHai varios métodos dispoñibles:\n*Subir o contido do ficheiro directamente, usando o parámetro <var>$1file</var>.\n*Subir o ficheiro por partes, usando os parámetros <var>$1filesize</var>, <var>$1chunk</var>, e <var>$1offset</var>.\n*Mandar ó servidor MediaWiki que colla un ficheiro dunha URL, usando o parámetro <var>$1url</var>.\n*Completar unha suba anterior que fallou a causa dos avisos, usando o parámetro <var>$1filekey</var>. \nTeña en conta que o HTTP POST debe facerse como suba de ficheiro (p.ex. usando <code>multipart/form-data</code>)cando se envie o <var>$1file</var>.",
        "apihelp-upload-param-filename": "Nome de ficheiro obxectivo.",
        "apihelp-upload-param-comment": "Subir comentario. Tamén usado como texto da páxina inicial para ficheiros novos se non se especifica <var>$1text</var>.",
        "apihelp-upload-param-text": "Texto da páxina inicial para novos ficheiros.",
        "apihelp-json-description": "Datos de saída en formato JSON.",
        "apihelp-json-param-callback": "Se está especificado, inclúe a saída na chamada da función indicada. Para maior seguridade, todos os datos específicos do usuario serán restrinxidos.",
        "apihelp-json-param-utf8": "Se está especificado, codifica a maioría (pero non todos) dos caracteres ASCII como UTF-8 no canto de reemprazalos con secuencias de escape hexadecimais. Por defecto cando <var>formatversion</var> non é <kbd>1</kbd>.",
+       "apihelp-json-param-ascii": "Se está indicado, codifica todos os caracteres que non sexan ASCII usando secuencias de escape hexadecimais. Por defecto cando <var>formatversion</var> é <kbd>1</kbd>.",
+       "apihelp-json-param-formatversion": "Formato de saída:\n;1:Formato compatible con versións anteriores(booleanos estilo XML,claves <samp>*</samp> para nodos, etc.).\n;2:Formato moderno experimental. Os detalles poden cambiar!\n;latest:Usa o último formato (actualmente kbd>2</kbd>), pode cambiar sen aviso previo.",
        "apihelp-jsonfm-description": "Datos de saída en formato JSON(impresión en HTML).",
        "apihelp-none-description": "Ningunha saída.",
        "apihelp-php-description": "Datos de saída en formato serializado de PHP.",
+       "apihelp-php-param-formatversion": "Formato de saída:\n;1:Formato compatible con versións anteriores(booleanos estilo XML,claves <samp>*</samp> para nodos, etc.).\n;2:Formato moderno experimental. Os detalles poden cambiar!\n;latest:Usa o último formato (actualmente kbd>2</kbd>), pode cambiar sen aviso previo.",
        "apihelp-phpfm-description": "Datos de saída en formato serializado de PHP(impresión en HTML).",
        "apihelp-rawfm-description": "Datos de saída cos elementos de depuración en formato JSON(impresión en HTML).",
        "apihelp-txt-description": "Datos de saída en formato PHP <code>print_r()</code>.",
        "apihelp-yaml-description": "Datos de saída en formato YAML.",
        "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-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-permissions": "{{PLURAL:$1|Permiso|Permisos}}:",
        "api-help-permissions-granted-to": "{{PLURAL:$1|Concedida a|Concedidas a}}: $2",
        "api-help-right-apihighlimits": "Usar os valores superiores das consultas da API (consultas lentas: $1; consultas rápidas: $2). Os límites para as consultas lentas tamén se aplican ós parámetros multivaluados.",
-       "api-credits-header": "Créditos"
+       "api-credits-header": "Créditos",
+       "api-credits": "Desenvolvedores da API:\n* Roan Kattouw (desenvolvedor principal, set. 2007-2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (creador e desenvolvedor principal, set. 2006-sep. 2007)\n* Brad Jorsch (desenvolvedor principal, 2013-actualidade)\n\nEnvía comentarios, suxerencias e preguntas a mediawiki-api@lists.wikimedia.org\nou informa dun erro en https://phabricator.wikimedia.org/."
 }
index 68f4e40..a87861e 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Beta16",
                        "Nivit",
-                       "Toadino2"
+                       "Toadino2",
+                       "Gianfranco"
                ]
        },
        "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)]].",
        "apihelp-main-param-format": "Formato dell'output.",
        "apihelp-main-param-assert": "Verifica che l'utente sia loggato se si è impostato <kbd>utente</kbd>, o che abbia i permessi di bot se si è impostato <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Tutti i valori forniti saranno implementati nella risposta. Potrebbero venir utilizzati per distinguere le richieste.",
+       "apihelp-main-param-curtimestamp": "Includere il timestamp corrente nel risultato.",
        "apihelp-block-description": "Blocca  un utente.",
+       "apihelp-block-param-user": "Nome utente, indirizzo IP o range di IP da bloccare.",
        "apihelp-block-param-reason": "Motivo del blocco.",
+       "apihelp-block-param-nocreate": "Evitare la creazione di account.",
+       "apihelp-block-param-hidename": "Nascondi il nome utente dal registro dei blocchi (Richiede i permessi di <code>hideuser</code>).",
+       "apihelp-block-param-reblock": "Se l'utente è già bloccato, sovrascrivere il blocco esistente.",
+       "apihelp-block-param-watchuser": "Segui la pagina utente e le pagine di discussione utente dell'utente o dell'indirizzo IP.",
+       "apihelp-block-example-ip-simple": "Blocca l'indirizzo IP <kbd>192.0.2.5</kbd> per tre giorni con motivazione <kbd>Primo avvertimento</kbd>.",
+       "apihelp-block-example-user-complex": "Blocca l'utente <kbd>Vandalo</kbd> a tempo indeterminato con motivazione <kbd>Vandalismo</kbd>, e impediscigli la creazione di nuovi account e l'invio di e-mail.",
+       "apihelp-checktoken-description": "Verifica la validità di un token da <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
+       "apihelp-checktoken-param-type": "Tipo di token in corso di test.",
+       "apihelp-checktoken-param-token": "Token da testare.",
+       "apihelp-checktoken-param-maxtokenage": "Massima età consentita per il token, in secondi.",
+       "apihelp-checktoken-example-simple": "Verifica la validità di un token <kbd>csrf</kbd>.",
+       "apihelp-clearhasmsg-description": "Cancella il flag <code>hasmsg</code> per l'utente corrente.",
+       "apihelp-clearhasmsg-example-1": "Cancella il flag <code>hasmsg</code> per l'utente corrente.",
+       "apihelp-compare-description": "Trova la differenza tra 2 pagine.\n\nUn numero di revisione, il titolo di una pagina, o un ID di pagina deve essere indicato sia per il \"da\" che per lo \"a\".",
+       "apihelp-compare-param-fromtitle": "Primo titolo da confrontare.",
+       "apihelp-compare-param-fromid": "Primo ID di pagina da confrontare.",
+       "apihelp-compare-param-fromrev": "Prima revisione da confrontare.",
+       "apihelp-compare-param-totitle": "Primo titolo da confrontare.",
+       "apihelp-compare-param-toid": "Secondo ID di pagina da confrontare.",
+       "apihelp-compare-param-torev": "Seconda revisione da confrontare.",
+       "apihelp-compare-example-1": "Crea un diff tra revisione 1 e revisione 2.",
+       "apihelp-createaccount-description": "Crea un nuovo account utente.",
+       "apihelp-createaccount-param-name": "Nome Utente",
+       "apihelp-createaccount-param-password": "Password (verrà ignorata se è impostato <var>$1mailpassword</var>).",
+       "apihelp-createaccount-param-domain": "Dominio per l'autenticazione esterna (opzionale).",
+       "apihelp-createaccount-param-email": "Indirizzo Email dell'utente (opzionale).",
+       "apihelp-createaccount-param-realname": "Nome reale dell'utente (opzionale).",
+       "apihelp-createaccount-param-mailpassword": "Se impostato su un qualsiasi valore, una password random (casuale) verrà inviata all'utente.",
+       "apihelp-createaccount-param-reason": "Ragione, facoltativa, della creazione dell'account da inserire nei registri.",
+       "apihelp-createaccount-param-language": "Codice di lingua da impostare come predefinita per l'utente (opzionale, di default è la lingua del contenuto).",
+       "apihelp-createaccount-example-pass": "Crea l'utente <kbd>testuser</kbd> con password <kbd>test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Crea l'utente <kbd>testmailuser</kbd> e mandagli via e-mail una password generata casualmente.",
+       "apihelp-delete-description": "Cancella una pagina.",
+       "apihelp-delete-param-title": "Titolo della pagina che si desidera eliminare. Non può essere usato insieme con <var>$1pageid</var>.",
+       "apihelp-delete-param-pageid": "ID di pagina della pagina da cancellare. Non può essere usato insieme con <var>$1title</var>.",
+       "apihelp-delete-param-reason": "Motivo della cancellazione. Se non indicato, verrà usata una motivazione generata automaticamente.",
+       "apihelp-delete-param-watch": "Aggiungi la pagina agli Osservati Speciali dell'utente corrente.",
+       "apihelp-delete-param-unwatch": "Rimuovi la pagina dagli Osservati Speciali dell'utente corrente.",
+       "apihelp-delete-example-simple": "Cancella la <kbd>Pagina Principale</kbd>.",
+       "apihelp-delete-example-reason": "Cancella la <kbd>Pagina Principale</kbd> con motivazione <kbd>Preparazione allo spostamento</kbd>.",
+       "apihelp-disabled-description": "Questo modulo è stato disabilitato.",
+       "apihelp-edit-description": "Crea e modifica pagine.",
+       "apihelp-edit-param-title": "Titolo della pagina da modificare. Non può essere usato insieme con <var>$1pageid</var>.",
+       "apihelp-edit-param-sectiontitle": "Il titolo per una nuova sezione.",
+       "apihelp-edit-param-text": "Contenuto della pagina.",
+       "apihelp-edit-param-summary": "Oggetto della modifica. Anche titolo della sezione se $1sezione=new e $1sectiontitle non è impostato.",
+       "apihelp-edit-param-tags": "Cambia i tag da applicare alla revisione.",
+       "apihelp-edit-param-minor": "Modifica minore.",
+       "apihelp-edit-param-notminor": "Modifica non minore.",
+       "apihelp-edit-param-bot": "Segna questa modifica come bot.",
+       "apihelp-edit-param-createonly": "Non modificare la pagina se già esiste.",
+       "apihelp-edit-param-nocreate": "Genera un errore se la pagina non esiste.",
+       "apihelp-edit-param-watch": "Aggiungi la pagina agli Osservati Speciali dell'utente corrente.",
+       "apihelp-edit-param-unwatch": "Rimuovi la pagina dagli Osservati Speciali dell'utente corrente.",
        "apihelp-emailuser-description": "Manda un'e-mail ad un utente.",
        "apihelp-emailuser-param-ccme": "Mandami una copia di questa mail.",
        "apihelp-expandtemplates-description": "Espandi tutti i template nel wikitesto.",
index a9bcf30..fcae447 100644 (file)
        "apihelp-import-param-fullhistory": "ウィキ間の取り込みの場合: 現在の版のみではなく完全な履歴を取り込む。",
        "apihelp-import-param-templates": "ウィキ間の取り込みの場合: 読み込まれているテンプレートも取り込む。",
        "apihelp-import-param-namespace": "この名前空間に取り込む。<kbd>$1rootpage</kbd>パラメータをオーバーライドします。",
-       "apihelp-import-param-rootpage": "このページの下位ページとしてインポートする。",
+       "apihelp-import-param-rootpage": "このページの下位ページとして取り込む。<kbd>$1namespace</kbd> パラメータが入力された場合は無視されます。",
        "apihelp-import-example-import": "[[meta:Help:Parserfunctions]] をすべての履歴とともに名前空間100に取り込む。",
        "apihelp-login-param-name": "利用者名。",
        "apihelp-login-param-password": "パスワード。",
        "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とは同時に使用できません。",
index 540f64c..bf71217 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Kwj2772",
                        "Twotwo2019",
-                       "아라"
+                       "아라",
+                       "LiteHell"
                ]
        },
        "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 를 참고하십시오.",
@@ -31,6 +32,7 @@
        "apihelp-edit-param-minor": "사소한 편집.",
        "apihelp-edit-param-notminor": "사소하지 않은 편집.",
        "apihelp-edit-param-bot": "이 편집을 봇으로 표시.",
+       "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-list": "{{PLURAL:$1|1=하나의 값|2=값 (\"{{!}}\"로 구분)}}: $2",
        "api-help-param-default": "기본값: $1"
 }
index 727ac32..8a6769d 100644 (file)
        "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öcker 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.",
+       "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-pageid": "De Kännong vun dä Sigg zom Schöze udder Freijävve. Kam_mer nit zesamme met\n„<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</code>“ bruche.",
        "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-list": "Wat för en Leßte holle.",
        "apihelp-query-param-meta": "Wat för en Matta_Dahte ze holle.",
        "apihelp-query+allcategories-description": "Alle Saachjroppe opzälle.",
        "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-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+allimages-param-minsize": "Bejränz op Sigge met winneschßdens esu vill Bytes dren.",
+       "apihelp-query+allimages-param-maxsize": "Bejränz op Sigge met hüüschßdens esu vill Bytes dren.",
+       "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-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-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-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+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-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-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.",
        "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]]",
index 612625f..3917e83 100644 (file)
@@ -98,5 +98,6 @@
        "api-help-param-required": "Dëse Parameter ass obligatoresch.",
        "api-help-datatypes-header": "Datentypen",
        "api-help-param-type-user": "Typ: {{PLURAL:$1|1=Benotzernumm|2=Lëscht vu Benotzernimm}}",
-       "api-help-examples": "{{PLURAL:$1|Beispill|Beispiler}}:"
+       "api-help-examples": "{{PLURAL:$1|Beispill|Beispiler}}:",
+       "api-help-permissions": "{{PLURAL:$1|Autorisatioun|Autorisatiounen}}:"
 }
index 449031f..9315304 100644 (file)
@@ -4,35 +4,38 @@
                        "Bjankuloski06"
                ]
        },
-       "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 ЧПП]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Поштенски список]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Соопштенија за Извршникот]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Грешки и барања]\n</div>\n<strong>Статус:</strong> Сите ставки на страницава би требало да работат, но Извршникот сепак е во активна разработка, што значи дека може да се смени во секое време. Објавите за измени можете да ги дознавате ако се пријавите на [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ поштенскиот список „the mediawiki-api-announce“].\n\n<strong>Погрешни барања:</strong> Кога Извршникот ќе добие погрешни барања, ќе се испрати HTTP-заглавие со клучот „MediaWiki-API-Error“ и потоа на вредностите на заглавието и шифрата на грешката што ќе се појават ќе им биде зададена истата вредност. ПОвеќе информации ќе најдете на https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Документација]]\n*  [[mw:API:FAQ|ЧПП]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Поштенски список]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Соопштенија за Извршникот]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Грешки и барања]\n</div>\n<strong>Статус:</strong> Сите ставки на страницава би требало да работат, но Извршникот сепак е во активна разработка, што значи дека може да се смени во секое време. Објавите за измени можете да ги дознавате ако се пријавите на [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ поштенскиот список „the mediawiki-api-announce“].\n\n<strong>Погрешни барања:</strong> Кога Извршникот ќе добие погрешни барања, ќе се испрати HTTP-заглавие со клучот „MediaWiki-API-Error“ и потоа на вредностите на заглавието и шифрата на грешката што ќе се појават ќе им биде зададена истата вредност. ПОвеќе информации ќе најдете на  [[mw:API:Errors_and_warnings|Извршник: Грешки и предупредувања]].",
        "apihelp-main-param-action": "Кое дејство да се изврши.",
        "apihelp-main-param-format": "Формат на изводот.",
-       "apihelp-main-param-maxlag": "Максималниот заостаток може да се користи кога МедијаВики е воспоставен на грозд умножен од базата. За да спречите дополнителни заостатоци од дејства, овој параметар му наложува на клиентот да почека додека заостатокот не се намали под укажаната вредност. Во случај на преголем заостаток, системт ја дава грешката со код „maxlag“ со порака од обликот „Го чекам $host: има заостаток од $lag секунди“.<br />Погл. https://www.mediawiki.org/wiki/Manual:Maxlag_parameter за повеќе информации.",
+       "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-assert": "Провери дали корисникот е најавен ако е зададено „user“ или дали го има корисничкото право на бот, ако е зададено „bot“.",
+       "apihelp-main-param-assert": "Провери дали корисникот е најавен ако е зададено <kbd>user</kbd> или дали го има корисничкото право на бот, ако е зададено <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Тука внесената вредност ќе биде вклучена во извештајот. Може да се користи за разликување на барањата.",
        "apihelp-main-param-servedby": "Вклучи го домаќинското име што го услужило барањето во резултатите.",
        "apihelp-main-param-curtimestamp": "Бклучи тековно време и време и датум во резултатот.",
-       "apihelp-main-param-origin": "Кога му пристапувате на Пирлогот користејќи повеќедоменско AJAX-барање (CORS), задајте му го на ова изворниот домен. Ова мора да се вклучи во секое подготвително барање и затоа мора да биде дел од URI на барањето (не главната содржина во POST). Ова мора точно да се совпаѓа со еден од изворниците на заглавието Origin:, така што мора да е зададен на нешто како http://en.wikipedia.org or https://meta.wikimedia.org. Ако овој параметар не се совпаѓа со заглавието Origin:, ќе се појави одговор 403. Ако се совпаѓа, а изворникот е на бел список (на допуштени), тогаш ќе се зададе ззаглавието Контрола на пристап-Изворник.",
-       "apihelp-main-param-uselang": "Јазик за преведување на пораките. Список на јазични кодови ќе најдете на [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] со siprop=languages или укажете „user“ за да го користите тековно зададениот јазик корисникот, или пак укажете „content“ за да го користите јазикот на содржината на ова вики.",
+       "apihelp-main-param-origin": "Кога му пристапувате на Пирлогот користејќи повеќедоменско AJAX-барање (CORS), задајте му го на ова изворниот домен. Ова мора да се вклучи во секое подготвително барање и затоа мора да биде дел од URI на барањето (не главната содржина во POST). Ова мора точно да се совпаѓа со еден од изворниците на заглавието Origin:, така што мора да е зададен на нешто како <kbd>https://mk.wikipedia.org</kbd>  or <kbd>https://meta.wikimedia.org</kbd>. Ако овој параметар не се совпаѓа со заглавието <code>Origin</code>:, ќе се појави одговор 403. Ако се совпаѓа, а изворникот е на бел список (на допуштени), тогаш ќе се зададе заглавието <code>Access-Control-Allow-Origin</code>.",
+       "apihelp-main-param-uselang": "Јазик за преведување на пораките. Список на јазични кодови ќе најдете на <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> со <kbd>siprop=languages</kbd> или укажете <kbd>user</kbd> за да го користите тековно зададениот јазик корисникот, или пак укажете <kbd>content</kbd> за да го користите јазикот на содржината на ова вики.",
        "apihelp-block-description": "Блокирај корисник.",
        "apihelp-block-param-user": "Корисничко име, IP-адреса или IP-опсег ако сакате да блокирате.",
-       "apihelp-block-param-expiry": "Време на истек. Може да биде релативно (на пр. „5 месеци“ или „2 недели“) или пак апсолутно (на пр. „2014-09-18T12:34:56Z“). Ако го зададете „бесконечно“, „неодредено“ или „никогаш“, блокот ќе трае засекогаш.",
+       "apihelp-block-param-expiry": "Време на истек. Може да биде релативно (на пр. <kbd>5 months</kbd> или „2 недели“) или пак апсолутно (на пр. <kbd>2014-09-18T12:34:56Z</kbd>). Ако го зададете <kbd>infinite</kbd>, <kbd>indefinite</kbd> или <kbd>never</kbd>, блокот ќе трае засекогаш.",
        "apihelp-block-param-reason": "Причина за блокирање.",
        "apihelp-block-param-anononly": "Блокирај само анонимни корисници (т.е. оневозможи анонимно уредување од оваа IP-адреса).",
        "apihelp-block-param-nocreate": "Оневозможи создавање кориснички сметки.",
        "apihelp-block-param-autoblock": "Автоматски блокирај ја последно употребената IP-адреса и сите понатамошни IP-адреси од кои лицето ќе се обиде да се најави.",
-       "apihelp-block-param-noemail": "Оневозможи му на корисникот да испаќа е-пошта преку викито. (Го бара правото „блокирање е-пошта“).",
+       "apihelp-block-param-noemail": "Оневозможи му на корисникот да испаќа е-пошта преку викито. (Го бара правото code>blockemail</code>).",
        "apihelp-block-param-hidename": "Скриј го корисничкото име од дневникот на блокирања. (Го бара правото <code>hideuser</code>)",
        "apihelp-block-param-allowusertalk": "Овозможи му на корисникот да си ја уредува сопствената страница за разговор (зависи од <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Ако корисникот е веќе блокиран, наметни врз постоечкиот блок.",
        "apihelp-block-param-watchuser": "Набљудувај ја корисничката страница и страницата за разговор на овој корисник или IP-адреса",
        "apihelp-block-example-ip-simple": "Блокирај ја IP-адресата <kbd>192.0.2.5</kbd> три дена со причината <kbd>Прва опомена</kbd>.",
-       "apihelp-block-example-user-complex": "Блокирај го корисникот Вандал (Vandal) бесконечно со причината „Вандализам“ и оневозможи создавање на нови сметки и праќање е-пошта",
+       "apihelp-block-example-user-complex": "Блокирај го корисникот <kbd>Vandal</kbd> (Вандал) бесконечно со причината <kbd>Vandal</kbd> (Вандализам) и оневозможи создавање на нови сметки и праќање е-пошта.",
+       "apihelp-checktoken-description": "Проверка на полноважноста на шифрата од <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
+       "apihelp-checktoken-param-type": "Тип на шифра што се испробува.",
+       "apihelp-checktoken-param-token": "Шифра што се испробува.",
        "apihelp-clearhasmsg-description": "Ја отстранува ознаката „<code>hasmsg</code>“ од тековниот корисник.",
        "apihelp-clearhasmsg-example-1": "Отстрани ја ознаката „<code>hasmsg</code>“ од тековниот корисник",
-       "apihelp-compare-description": "Ð\94обиваÑ\9aе Ð½Ð° Ñ\80азлика Ð¿Ð¾Ð¼ÐµÑ\93Ñ\83 Ð´Ð²Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86и.\n\nÐ\9cоÑ\80а Ð´Ð° Ñ\81е Ð´Ð¾Ð±Ð¸Ðµ Ð±Ñ\80оÑ\98 Ð½Ð° Ð¿Ñ\80еÑ\80абоÑ\82каÑ\82а, Ð½Ð°Ñ\81лов Ð½Ð° Ñ\81Ñ\82Ñ\80аниваÑ\82а Ð¸Ð»Ð¸ Ð¿Ð°Ðº Ð½ÐµÑ\98зина Ð½Ð°Ð·Ð½Ð°ÐºÐ°. Ð\92ажи Ð¸ за „од“ и за „на“.",
+       "apihelp-compare-description": "Ð\94обиваÑ\9aе Ð½Ð° Ñ\80азлика Ð¿Ð¾Ð¼ÐµÑ\93Ñ\83 Ð´Ð²Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86и.\n\nÐ\9cоÑ\80а Ð´Ð° Ñ\81е Ð´Ð°Ð´Ðµ Ð±Ñ\80оÑ\98оÑ\82 Ð½Ð° Ð¿Ñ\80еÑ\80абоÑ\82каÑ\82а, Ð½Ð°Ñ\81ловоÑ\82 Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ð¸Ð»Ð¸ Ð¿Ð°Ðº Ð½ÐµÑ\98зина Ð½Ð°Ð·Ð½Ð°ÐºÐ° за „од“ и за „на“.",
        "apihelp-compare-param-fromtitle": "Прв наслов за споредба.",
        "apihelp-compare-param-fromid": "Прва назнака на страница за споредба.",
        "apihelp-compare-param-fromrev": "Прва преработка за споредба.",
        "apihelp-createaccount-param-mailpassword": "Ако му се зададе било каква вредност, тогаш на корисникот ќе му биде испратена случајна лозинка.",
        "apihelp-createaccount-param-reason": "Незадолжителна прочина за создавање на сметката која ќе стои во дневниците.",
        "apihelp-createaccount-param-language": "Јазичен код кој ќе биде стандарден за корисникот (незадолжително, по основно: јазикот на самото вики).",
-       "apihelp-createaccount-example-pass": "Создај го корисникот „testuser“ со лозинката „test123“",
-       "apihelp-createaccount-example-mail": "Создај го корисникот „testmailuser“ и испрати случајно-создадена лозинка по е-пошта",
+       "apihelp-createaccount-example-pass": "Создај го корисникот <kbd>testuser</kbd> со лозинката <kbd>test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Создај го корисникот <kbd>testmailuser</kbd> и испрати случајно-создадена лозинка по е-пошта.",
        "apihelp-delete-description": "Избриши страница.",
-       "apihelp-delete-param-title": "Наслов на страницата што сакате да ја избришете. Не може да се користи заедно со $1pageid.",
-       "apihelp-delete-param-pageid": "Назнака на страницата што сакате да ја избришете. Не може да се користи заедно со $1title.",
+       "apihelp-delete-param-title": "Наслов на страницата што сакате да ја избришете. Не може да се користи заедно со <var>$1pageid</var>.",
+       "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-param-watch": "Додај ја страницата во набљудуваните на тековниот корисник.",
+       "apihelp-delete-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните на тековниот корисник, користете ги нагодувањата или не ги менувајте набљудуваните.",
+       "apihelp-delete-param-unwatch": "Отстрани ја страницата од набљудуваните на тековниот корисник.",
        "apihelp-delete-param-oldimage": "Името на страта слика за бришење според добиеното од [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].",
-       "apihelp-delete-example-simple": "Избриши ја Главната страница",
-       "apihelp-delete-example-reason": "Избриши ја Главната страница со причината „Подготовка за преместување“",
+       "apihelp-delete-example-simple": "Избриши ја <kbd>Главна страница</kbd>.",
+       "apihelp-delete-example-reason": "Избриши ја <kbd>Главна страница</kbd> со причината <kbd>Подготовка за преместување</kbd>.",
        "apihelp-disabled-description": "Модулот е деактивиран.",
        "apihelp-edit-description": "Создај или уреди страници.",
-       "apihelp-edit-param-title": "Наслов на страницата што сакате да ја уредите. Не може да се користи заедно со $1pageid.",
-       "apihelp-edit-param-pageid": "Назнака на страницата што сакате да ја уредите. Не може да се користи заедно со $1title.",
-       "apihelp-edit-param-section": "Број на поднасловот. 0 за првиот, „new“ за нов.",
+       "apihelp-edit-param-title": "Наслов на страницата што сакате да ја уредите. Не може да се користи заедно со <var>$1pageid</var>.",
+       "apihelp-edit-param-pageid": "Назнака на страницата што сакате да ја уредите. Не може да се користи заедно со <var>$1title</var>.",
+       "apihelp-edit-param-section": "Број на поднасловот. <kbd>0</kbd> за првиот, <kbd>new</kbd> за нов.",
        "apihelp-edit-param-sectiontitle": "Назив на новиот поднаслов",
        "apihelp-edit-param-text": "Содржина на страницата.",
        "apihelp-edit-param-summary": "Опис на уредувањето. Ова е и назив на поднасловот кога не се зададени $1section=new и $1sectiontitle.",
        "apihelp-edit-param-notminor": "Неситно уредување.",
        "apihelp-edit-param-bot": "Означи го уредувањево како ботско.",
        "apihelp-edit-param-basetimestamp": "Датум и време на преработката на базата, кои се користат за утврдување на спротиставености во уредувањето. Може да се добие преку [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
-       "apihelp-edit-param-starttimestamp": "Ð\94аÑ\82Ñ\83м Ð¸ Ð²Ñ\80еме ÐºÐ¾Ð³Ð° Ñ\81Ñ\82е Ð³Ð¾ Ð¿Ð¾Ñ\87нале Ñ\83Ñ\80едÑ\83ваÑ\9aеÑ\82о, ÐºÐ¾Ð¸ Ñ\81е ÐºÐ¾Ñ\80иÑ\81Ñ\82аÑ\82 Ð·Ð° Ñ\83Ñ\82вÑ\80дÑ\83ваÑ\9aе Ð½Ð° Ñ\81пÑ\80оÑ\82иÑ\81Ñ\82авеноÑ\81Ñ\82и Ð²Ð¾ Ñ\83Ñ\80едÑ\83ваÑ\9aаÑ\82а. Ð¡Ð¾Ð¾Ð´Ð²ÐµÑ\82наÑ\82а Ð²Ñ\80едноÑ\81Ñ\82 Ñ\81е Ð´Ð¾Ð±Ð¸Ð²Ð° ÐºÐ¾Ñ\80иÑ\81Ñ\82еÑ\98Ñ\9cи [[Special:ApiHelp/main|curtimestamp]] кога ќе почнете со уредување (на пр. кога ќе се вчита содржината што ќе ја уредувате).",
-       "apihelp-edit-param-recreate": "Занемари ги грешките што се појавуваат во врска со статијата што е избришана во меѓувреме.",
+       "apihelp-edit-param-starttimestamp": "Ð\94аÑ\82Ñ\83м Ð¸ Ð²Ñ\80еме ÐºÐ¾Ð³Ð° Ñ\81Ñ\82е Ð¿Ð¾Ñ\87нало Ñ\83Ñ\80едÑ\83ваÑ\9aеÑ\82о, ÐºÐ¾Ð¸ Ñ\81е ÐºÐ¾Ñ\80иÑ\81Ñ\82аÑ\82 Ð·Ð° Ñ\83Ñ\82вÑ\80дÑ\83ваÑ\9aе Ð½Ð° Ñ\81пÑ\80оÑ\82иÑ\81Ñ\82авеноÑ\81Ñ\82и Ð²Ð¾ Ñ\83Ñ\80едÑ\83ваÑ\9aаÑ\82а. Ð¡Ð¾Ð¾Ð´Ð²ÐµÑ\82наÑ\82а Ð²Ñ\80едноÑ\81Ñ\82 Ñ\81е Ð´Ð¾Ð±Ð¸Ð²Ð° ÐºÐ¾Ñ\80иÑ\81Ñ\82еÑ\98Ñ\9cи <var>[[Special:ApiHelp/main|curtimestamp]]</var> кога ќе почнете со уредување (на пр. кога ќе се вчита содржината што ќе ја уредувате).",
+       "apihelp-edit-param-recreate": "Занемари ги грешките што се појавуваат во врска со страницата што е избришана во меѓувреме.",
        "apihelp-edit-param-createonly": "Не ја уредувај страницата ако веќе постои.",
        "apihelp-edit-param-nocreate": "Дај грешка ако страницата не постои.",
-       "apihelp-edit-param-watch": "Додај ја страницата во набљудуваните.",
-       "apihelp-edit-param-unwatch": "Отстрани ја страницата од набљудуваните.",
-       "apihelp-edit-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните, користете ги нагодувањата или не ги менувајте набљудуваните.",
+       "apihelp-edit-param-watch": "Додај ја страницата во набљудуваните на тековниот корисник.",
+       "apihelp-edit-param-unwatch": "Отстрани ја страницата од набљудуваните на тековниот корисник.",
+       "apihelp-edit-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните на тековниот корисник, користете ги нагодувањата или не ги менувајте набљудуваните.",
        "apihelp-edit-param-md5": "MD5-тарабата на параметарот $1text, или параметрите $1prependtext и $1appendtext поврзани. Ако е зададено, уредувањето нема да се изврши без тарабата да биде исправна.",
        "apihelp-edit-param-prependtext": "Ставете го текстов на почетокот од страницата. Го заменува  $1text.",
        "apihelp-edit-param-appendtext": "Ставете го текстов на крајот од страницата. Го заменува $1text.\n\nКористете $1section=new наместо овој параметар за да приложите кон новиот поднаслов.",
        "apihelp-emailuser-param-subject": "Наслов.",
        "apihelp-emailuser-param-text": "Содржина.",
        "apihelp-emailuser-param-ccme": "Прати ми примерок и мене.",
-       "apihelp-emailuser-example-email": "Испрати е-пошта на корисникот „WikiSysop“ со текстот „Содржина“",
+       "apihelp-emailuser-example-email": "Испрати е-пошта на корисникот <kbd>WikiSysop</kbd> со текстот <kbd>Содржина</kbd>.",
        "apihelp-expandtemplates-description": "Ги проширува сите шаблони во викитекст.",
        "apihelp-expandtemplates-param-title": "Наслов на страница.",
        "apihelp-expandtemplates-param-text": "Викитекст за претворање.",
        "apihelp-expandtemplates-param-revid": "Назнака на преработката, за <nowiki>{{REVISIONID}}</nowiki> и слични променливи.",
-       "apihelp-expandtemplates-param-prop": "Кои информации треба да ги добиете:\n;wikitext:The expanded wikitext.\n;categories: Категориите присутно во вносот кои не се претставени во викитекстуалниот извод.\n;volatile: Дали изводот е месно врзан и не треба да се преупотребува на други места во страницата.\n;ttl: Максималното време по кое треба да се поништи меѓускладираниот резултат.\n;parsetree: XML-дрвото на расчленување за изводот.\nИмајте на ум дека ако не изберете никаква вредност, резултатот ќе го содржи викитекстот, но изводот ќе биде во застарен формат.",
+       "apihelp-expandtemplates-param-prop": "Кои информации треба да ги добиете:\n;wikitext:The expanded wikitext.\n;categories: Категориите присутно во вносот кои не се претставени во викитекстуалниот извод.\n;properties: Својства на страницата определени од проширени волшебни зборови во викитекстот.\n;volatile: Дали изводот е месно врзан и не треба да се преупотребува на други места во страницата.\n;ttl: Максималното време по кое треба да се поништи меѓускладираниот резултат.\n;parsetree: XML-дрвото на расчленување за изводот.\nИмајте на ум дека ако не изберете никаква вредност, резултатот ќе го содржи викитекстот, но изводот ќе биде во застарен формат.",
        "apihelp-expandtemplates-param-includecomments": "Дали во изводот да се вклучени HTML-коментари.",
        "apihelp-expandtemplates-param-generatexml": "Создај XML-дрво на расчленување (заменето со $1prop=parsetree).",
-       "apihelp-expandtemplates-example-simple": "Прошири го викитекстот „<nowiki>{{Project:Sandbox}}</nowiki>“",
+       "apihelp-expandtemplates-example-simple": "Прошири го викитекстот <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
        "apihelp-feedcontributions-description": "Дава канал со придонеси на корисник.",
        "apihelp-feedcontributions-param-feedformat": "Формат на каналот.",
        "apihelp-feedcontributions-param-user": "За кои корисници да се прикажуваат придонесите.",
        "apihelp-feedcontributions-param-toponly": "Прикажувај само последни преработки.",
        "apihelp-feedcontributions-param-newonly": "Прикажувај само новосоздадени страници",
        "apihelp-feedcontributions-param-showsizediff": "Покажувај ја големинската разлика меѓу преработките.",
-       "apihelp-feedcontributions-example-simple": "Покажувај придонеси на [[Корисник:Пример]]",
+       "apihelp-feedcontributions-example-simple": "Покажувај придонеси на <kbd>Пример</kbd>.",
        "apihelp-feedrecentchanges-description": "Дава канал со скорешни промени.",
        "apihelp-feedrecentchanges-param-feedformat": "Форматот на каналот.",
        "apihelp-feedrecentchanges-param-namespace": "На кој именски простор да се ограничат резултатите.",
        "apihelp-feedrecentchanges-param-hideanons": "Скриј ги промените направени од анонимни корисници.",
        "apihelp-feedrecentchanges-param-hideliu": "Скриј ги промените направени од регистрирани корисници.",
        "apihelp-feedrecentchanges-param-hidepatrolled": "Скриј ги испатролираните промени.",
-       "apihelp-feedrecentchanges-param-hidemyself": "СкÑ\80иÑ\98 Ð³Ð¸ Ð¼Ð¾Ð¸Ñ\82е Ð¿Ñ\80омени.",
+       "apihelp-feedrecentchanges-param-hidemyself": "СкÑ\80иÑ\98 Ð³Ð¸ Ð¿Ñ\80омениÑ\82е Ð½Ð° Ñ\82ековниоÑ\82 ÐºÐ¾Ñ\80иÑ\81ник.",
        "apihelp-feedrecentchanges-param-tagfilter": "Филтрирање по ознака.",
        "apihelp-feedrecentchanges-param-target": "Прикажи само промени на страници што водат од оваа.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Наместо тоа, прикажи ги промените на страниците поврзани со избраната страница.",
        "apihelp-filerevert-param-archivename": "Архивски назив на преработката што ја повраќате.",
        "apihelp-filerevert-example-revert": "Врати ја <kbd>Wiki.png</kbd> на верзијата од <kbd>2011-03-05T15:27:40Z</kbd>",
        "apihelp-help-description": "Прикажувај помош за укажаните модули.",
-       "apihelp-help-param-modules": "Модули за приказ на помош за (вредности на параметрите action= и format=, или пак „main“). Може да се укажат подмодули со „+“.",
+       "apihelp-help-param-modules": "Модули за приказ на помош за (вредности на параметрите <var>action</var> и <var>format</var>, или пак <kbd>main</kbd>). Може да се укажат подмодули со <kbd>+</kbd>.",
        "apihelp-help-param-submodules": "Прикажувај и помош за подмодули на именуваниот модул.",
        "apihelp-help-param-recursivesubmodules": "Прикажувај и помош за подмодули рекурзивно.",
        "apihelp-help-param-helpformat": "Формат на изводот на помошта.",
        "apihelp-help-example-query": "Помош за два подмодула за барања",
        "apihelp-imagerotate-description": "Сврти една или повеќе слики.",
        "apihelp-imagerotate-param-rotation": "За колку степени да се сврти надесно.",
-       "apihelp-imagerotate-example-simple": "Сврти ја [[:Податотека:Пример.png]] за 90 степени",
-       "apihelp-imagerotate-example-generator": "Сврти ги сите слики во [[:Категорија:Некоја]] за 180 степени",
-       "apihelp-import-description": "Увези страница од друго вики или XML-податотека.\n\nИмајте на ум дека POST на HTTP мора да се изведе како подигање на податотеката (т.е. користејќи повеќеделни податоци/податоци од образец) кога ја испраќате податотеката за параметарот „xml“.",
+       "apihelp-imagerotate-example-simple": "Сврти ја <kbd>Податотека:Пример.png</kbd> за <kbd>90</kbd> степени.",
+       "apihelp-imagerotate-example-generator": "Сврти ги сите слики во <kbd>Категорија:Некоја</kbd> за <kbd>180</kbd> степени.",
+       "apihelp-import-description": "Увези страница од друго вики или XML-податотека.\n\nИмајте на ум дека POST на HTTP мора да се изведе како подигање на податотеката (т.е. користејќи повеќеделни податоци/податоци од образец) кога ја испраќате податотеката за параметарот <var>xml</var>.",
        "apihelp-import-param-summary": "Увези опис.",
        "apihelp-import-param-xml": "Подигната XML-податотека.",
        "apihelp-import-param-interwikisource": "За меѓујазични увози: од кое вики да се увезе.",
        "apihelp-import-param-interwikipage": "За меѓујазични увози: страница за увоз.",
        "apihelp-import-param-fullhistory": "За меѓујазични увози:: увези ја целата историја, а не само тековната верзија.",
        "apihelp-import-param-templates": "За меѓујазични увози: увези ги и сите вклучени шаблони.",
-       "apihelp-import-param-namespace": "Ð\97а Ð¼ÐµÑ\93Ñ\83Ñ\98азиÑ\87ни Ñ\83вози: Ñ\83вези Ð²Ð¾ Ð¾Ð²Ð¾Ñ\98 Ð¸Ð¼ÐµÐ½Ñ\81ки Ð¿Ñ\80оÑ\81Ñ\82оÑ\80.",
-       "apihelp-import-param-rootpage": "Увези како потстраница на страницава.",
+       "apihelp-import-param-namespace": "Увези Ð²Ð¾ Ð¾Ð²Ð¾Ñ\98 Ð¸Ð¼ÐµÐ½Ñ\81ки Ð¿Ñ\80оÑ\81Ñ\82оÑ\80. Ð¡Ðµ Ð½Ð°Ð¼ÐµÑ\82нÑ\83ва Ð²Ñ\80з Ð¿Ð°Ñ\80амеÑ\82аÑ\80оÑ\82 <kbd>$1rootpage</kbd>.",
+       "apihelp-import-param-rootpage": "Увези како потстраница на страницава. Се занемарува ако е укажан параметарот <kbd>$1namespace</kbd>.",
        "apihelp-import-example-import": "Увези [[meta:Help:Parserfunctions]] во именскиот простор 100 со целата историја.",
        "apihelp-login-description": "Најавете се и добијте колачиња за заверка.\n\nВо случај кога ќе се најавите успешно, потребните колачиња ќе се придодадат кон заглавијата на HTTP-одѕивот. Во случај да не успеете да се најавите, понатамошните обиди може да се ограничат за да се ограничат нападите со автоматизирано погодување на лозинката.",
        "apihelp-login-param-name": "Корисничко име.",
        "apihelp-logout-description": "Одјави се и исчисти ги податоците на седницата.",
        "apihelp-logout-example-logout": "Одјави го тековниот корисник",
        "apihelp-move-description": "Премести страница.",
-       "apihelp-move-param-from": "Ð\9dаÑ\81лов Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ñ\88Ñ\82о Ñ\81акаÑ\82е Ð´Ð° Ñ\98а Ð¿Ñ\80емеÑ\81Ñ\82иÑ\82е. Ð\9dе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ð·Ð°ÐµÐ´Ð½Ð¾ Ñ\81о $1fromid.",
-       "apihelp-move-param-fromid": "Ð\9dазнака Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ñ\88Ñ\82о Ñ\81акаÑ\82е Ð´Ð° Ñ\98а Ð¿Ñ\80емеÑ\81Ñ\82иÑ\82е. Ð\9dе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ð·Ð°ÐµÐ´Ð½Ð¾ Ñ\81о $1from.",
-       "apihelp-move-param-to": "Како сакате да гласи новиот наслов на страницата.",
-       "apihelp-move-param-reason": "Ð\9fÑ\80иÑ\87ина Ð·Ð° Ð¿Ñ\80емеÑ\81Ñ\82увањето.",
-       "apihelp-move-param-movetalk": "Ð\9fÑ\80емеÑ\81Ñ\82и ја и страницата за разговор, ако ја има.",
-       "apihelp-move-param-movesubpages": "Ð\9fÑ\80емеÑ\81Ñ\82и Ð¿Ð¾Ñ\82Ñ\81Ñ\82Ñ\80аниÑ\86и, Ð°ÐºÐ¾ Ð¸Ð¼Ð°",
+       "apihelp-move-param-from": "Ð\9dаÑ\81лов Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ñ\88Ñ\82о Ñ\82Ñ\80еба Ð´Ð° Ñ\81е Ð¿Ñ\80емеÑ\81Ñ\82и. Ð\9dе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ð·Ð°ÐµÐ´Ð½Ð¾ Ñ\81о <var>$1fromid</var>.",
+       "apihelp-move-param-fromid": "Ð\9dазнака Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86аÑ\82а Ñ\88Ñ\82о Ñ\82Ñ\80еба Ð´Ð° Ñ\81е Ð¿Ñ\80емеÑ\81Ñ\82и. Ð\9dе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ð·Ð°ÐµÐ´Ð½Ð¾ Ñ\81о <var>$1from</var>.",
+       "apihelp-move-param-to": "Како да гласи новата страница.",
+       "apihelp-move-param-reason": "Ð\9fÑ\80иÑ\87ина Ð·Ð° Ð¿Ñ\80еименувањето.",
+       "apihelp-move-param-movetalk": "Ð\9fÑ\80еименÑ\83ваÑ\98 ја и страницата за разговор, ако ја има.",
+       "apihelp-move-param-movesubpages": "Ð\9fÑ\80еименÑ\83ваÑ\98 Ð¿Ð¾Ñ\82Ñ\81Ñ\82Ñ\80аниÑ\86и, Ð°ÐºÐ¾ Ð¸Ð¼Ð°.",
        "apihelp-move-param-noredirect": "Не прави пренасочување.",
-       "apihelp-move-param-watch": "Додај ги страницата и пренасочувањето во набљудуваните.",
-       "apihelp-move-param-unwatch": "Отстрани ги страницата и пренасочувањето од набљудуваните.",
-       "apihelp-move-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните, користете ги нагодувањата или не ги менувајте набљудуваните.",
+       "apihelp-move-param-watch": "Додај ги страницата и пренасочувањето во набљудуваните на тековниот корисник.",
+       "apihelp-move-param-unwatch": "Отстрани ги страницата и пренасочувањето од набљудуваните на тековниот корисник.",
+       "apihelp-move-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните на тековниот корисник, користете ги нагодувањата или не ги менувајте набљудуваните.",
        "apihelp-move-param-ignorewarnings": "Занемари предупредувања.",
-       "apihelp-move-example-move": "Премести го „Лош наслов“ на „Добар наслов“, неоставајќи пренасочување",
+       "apihelp-move-example-move": "Премести го <kbd>Лош наслов</kbd> на <kbd>Добар наслов</kbd>, неоставајќи пренасочување",
        "apihelp-opensearch-description": "Пребарување на викито со протоколот OpenSearch.",
        "apihelp-opensearch-param-search": "Низа за пребарување.",
        "apihelp-opensearch-param-limit": "Максималниот број на резултати за прикажување.",
        "apihelp-opensearch-param-namespace": "Именски простори за пребарување.",
-       "apihelp-opensearch-param-suggest": "Не прави ништо ако [https://www.mediawiki.org/wiki/Manual:$wgEnableOpenSearchSuggest $wgEnableOpenSearchSuggest] е неточно.",
+       "apihelp-opensearch-param-suggest": "Не прави ништо ако <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> е неточно.",
        "apihelp-opensearch-param-redirects": "Како да се работи со пренасочувања:\n;return: Дај го самото пренасочување.\n;resolve: Дај ја целната страница. Може да даде помалку од $1limit резултати.\nОд историски причини, по основно е „return“ за $1format=json и „resolve“ за други формати.",
        "apihelp-opensearch-param-format": "Формат на изводот.",
-       "apihelp-opensearch-example-te": "Најди страници што почнуваат со „Те“",
+       "apihelp-opensearch-example-te": "Најди страници што почнуваат со <kbd>Те</kbd>.",
        "apihelp-options-description": "Смени ги нагодувањата на тековниот корисник.\n\nМожат да се зададат само можностите заведени во јадрото или во едно од воспоставените додатоци, или пак можности со клуч кој ја има претставката „userjs-“ (предвиден за употреба од кориснички скрипти).",
        "apihelp-options-param-reset": "Ги враќа поставките по основно.",
-       "apihelp-options-param-resetkinds": "Писок на типови можности за повраток кога е зададена можноста „$1reset“.",
+       "apihelp-options-param-resetkinds": "Писок на типови можности за повраток кога е зададена можноста <var>$1reset</var>.",
        "apihelp-options-param-change": "Список на промени во форматот name=value (на пр. skin=vector). Вредностите не треба да содржат исправени црти. Ако не зададете вредност (дури ни знак за равенство), на пр., можност|другаможност|..., ќе биде зададена вредноста на можноста по основно.",
-       "apihelp-options-param-optionname": "Назив на можноста што треба да ѝ се зададе на вредноста дадена од „$1optionvalue“.",
-       "apihelp-options-param-optionvalue": "Вредноста на можноста укажана од „$1optionnam“. Може да содржи исправени црти.",
+       "apihelp-options-param-optionname": "Назив на можноста што треба да ѝ се зададе на вредноста дадена од <var>$1optionvalue</var>.",
+       "apihelp-options-param-optionvalue": "Вредноста на можноста укажана од <var>$1optionname</var>. Може да содржи исправени црти.",
        "apihelp-options-example-reset": "Врати ги сите поставки по основно",
-       "apihelp-options-example-change": "Смени ги поставките „skinЗ“ и „hideminor“",
-       "apihelp-options-example-complex": "Врати ги сите нагодувања по основно, а потоа задај ги „skin“ и „nickname“",
+       "apihelp-options-example-change": "Смени ги поставките <kbd>skin</kbd и <kbd>hideminor</kbd>.",
+       "apihelp-options-example-complex": "Врати ги сите нагодувања по основно, а потоа задај ги <kbd>skin</kbd> и <kbd>nickname</kbd>.",
        "apihelp-paraminfo-description": "Набави информации за извршнички (API) модули.",
-       "apihelp-paraminfo-param-modules": "Список на називи на модули (вредности на параметрите action= и format=, или пак „main“). Може да се укажат подмодули со „+“.",
+       "apihelp-paraminfo-param-modules": "Список на називи на модули (вредности на параметрите <var>action</var> и <var>format</var>, или пак <kbd>main</kbd>). Може да се укажат подмодули со <kbd>+</kbd>.",
        "apihelp-paraminfo-param-helpformat": "Формат на помошните низи.",
-       "apihelp-paraminfo-param-querymodules": "Список на називи на модули за барања (вредност на параметарот prop=, meta= или list=). Користете го „$1modules=query+foo“ наместо „$1querymodules=foo“.",
-       "apihelp-paraminfo-param-mainmodule": "Добави информации и за главниот (врховен) модул. Користете го „$1modules=main“ наместо тоа.",
+       "apihelp-paraminfo-param-querymodules": "Список на називи на модули за барања (вредност на параметарот <var>prop</var>, <var>meta</var> или <var>list</var>). Користете го <kbd>$1modules=query+foo</kbd> наместо <kbd>$1querymodules=foo</kbd>.",
+       "apihelp-paraminfo-param-mainmodule": "Добави информации и за главниот (врховен) модул. Користете го <kbd>$1modules=main</kbd> наместо тоа.",
        "apihelp-paraminfo-param-pagesetmodule": "Дај ги сите информации и за модулот на збирот страници (укажувајќи titles= и сродни).",
-       "apihelp-paraminfo-param-formatmodules": "Список на називи на форматни модули (вредностза параметарот format=). Наместо тоа, користете го „$1modules“.",
+       "apihelp-paraminfo-param-formatmodules": "Список на називи на форматни модули (вредностза параметарот <var>format</var>). Наместо тоа, користете го <var>$1modules</var>.",
        "apihelp-parse-param-summary": "Опис за расчленување.",
        "apihelp-parse-param-preview": "Расчлени во прегледен режим.",
        "apihelp-parse-param-sectionpreview": "Расчлени во прегледен режим на поднасловот (го овозможува и прегледниот режим).",
        "apihelp-protect-param-reason": "Причиина за (од)заштитување",
        "apihelp-protect-example-protect": "Заштити страница",
        "apihelp-purge-param-forcelinkupdate": "Поднови ги табелите со врски.",
-       "apihelp-purge-example-simple": "Превчитај ги „Главна страница“ и „Извршник“",
+       "apihelp-purge-example-simple": "Превчитај ги <kbd>Главна страница</kbd> и <kbd>Извршник</kbd>.",
        "apihelp-query-param-list": "Кои списоци да се набават.",
        "apihelp-query-param-meta": "Кои метаподатоци да се набават.",
        "apihelp-query+allcategories-description": "Наброј ги сите категории.",
        "apihelp-query+allcategories-param-dir": "Насока на подредувањето.",
        "apihelp-query+alldeletedrevisions-param-from": "Почни го исписот од овој наслов.",
        "apihelp-query+alldeletedrevisions-param-to": "Запри го исписот на овој наслов.",
-       "apihelp-query+alldeletedrevisions-example-user": "СпиÑ\81ок Ð½Ð° Ð¿Ð¾Ñ\81ледниÑ\82е 50 Ð¸Ð·Ð±Ñ\80иÑ\88ани Ð¿Ñ\80идонеÑ\81и Ð½Ð° Ð\9aоÑ\80иÑ\81ник:Ð\9fÑ\80имеÑ\80",
-       "apihelp-query+alldeletedrevisions-example-ns-main": "Список на последните 50 избришани преработки во главниот именски простор",
-       "apihelp-query+allimages-example-B": "Прикажи список на податотеки што почнуваат со буквата „Б“",
+       "apihelp-query+alldeletedrevisions-example-user": "СпиÑ\81ок Ð½Ð° Ð¿Ð¾Ñ\81ледниÑ\82е 50 Ð¸Ð·Ð±Ñ\80иÑ\88ани Ð¿Ñ\80идонеÑ\81и Ð½Ð° ÐºÐ¾Ñ\80иÑ\81никоÑ\82 <kbd>Ð\9fÑ\80имеÑ\80<kbd>.",
+       "apihelp-query+alldeletedrevisions-example-ns-main": "Список на последните 50 избришани преработки во главниот именски простор.",
+       "apihelp-query+allimages-example-B": "Прикажи список на податотеки што почнуваат со буквата <kbd>Б</kbd>.",
        "apihelp-query+allimages-example-recent": "Прикажи список на неодамна подигнати податотеки сличен на [[Special:NewFiles]]",
-       "apihelp-query+allimages-example-generator": "Прикажи информации за околу 4 податотеки што почнуваат со буквата „Т“",
+       "apihelp-query+allimages-example-generator": "Прикажи информации за околу 4 податотеки што почнуваат со буквата <kbd>Т</kbd>.",
        "apihelp-query+alllinks-description": "Наброј ги сите врски што водат кон даден именски простор.",
        "apihelp-query+alllinks-param-from": "Наслов на врската од која ќе почне набројувањето.",
        "apihelp-query+alllinks-param-to": "Наслов на врската на која ќе запре набројувањето.",
        "apihelp-query+alllinks-param-prefix": "Пребарај ги сите сврзани наслови што почнуваат со оваа вредност.",
-       "apihelp-query+alllinks-param-unique": "Прикажувај само различни поврзани наслови. Не може да се користи со $1prop=ids.\nКога се користи како создавач, дава целни страници наместо изворни.",
+       "apihelp-query+alllinks-param-unique": "Прикажувај само различни поврзани наслови. Не може да се користи со <kbd>$1prop=ids</kbd>.\nКога се користи како создавач, дава целни страници наместо изворни.",
+       "apihelp-query+alllinks-param-prop": "Кои информации да се вклучат:\n;ids:Ја додава назнаката на страницата на која е врската (не може да се користи со <var>$1unique</var>).\n;title:Го додава насловот на врската.",
        "apihelp-query+alllinks-param-namespace": "Именскиот простор што се набројува.",
        "apihelp-query+alllinks-param-limit": "Колку вкупно ставки да се дадат.",
        "apihelp-query+alllinks-param-dir": "Насока на исписот.",
-       "apihelp-query+alllinks-example-B": "Списока на наслови со врски, вклучувајќи ги отсутните, со назнаки на нивните страници, почнувајќи од Б",
+       "apihelp-query+alllinks-example-B": "Списока на наслови со врски, вклучувајќи ги отсутните, со назнаки на нивните страници, почнувајќи од <kbd>Б</kbd>.",
        "apihelp-query+alllinks-example-unique": "Испиши единствени наслови со врски",
        "apihelp-query+alllinks-example-unique-generator": "Ги дава сите наслови со врски, означувајќи ги отсутните",
        "apihelp-query+alllinks-example-generator": "Дава страници што ги содржат врските",
        "apihelp-query+allmessages-param-to": "Дај пораки што завршуваат со оваа порака.",
        "apihelp-query+allmessages-param-title": "Назив на страницата што ќе се користи во контекст кога се расчленува порака (за можноста $1enableparser).",
        "apihelp-query+allmessages-param-prefix": "Дај пораки со оваа претставка.",
-       "apihelp-query+allmessages-example-ipb": "Прикажи ги пораките што започнуваат со „ipb-“",
-       "apihelp-query+allmessages-example-de": "Прикажи ги пораките „август“ и „главна страница“ на германски",
+       "apihelp-query+allmessages-example-ipb": "Прикажи ги пораките што започнуваат со <kbd>ipb-</kbd>.",
+       "apihelp-query+allmessages-example-de": "Прикажи ги пораките <kbd>august</kbd> and <kbd>mainpage</kbd> на германски.",
        "apihelp-query+allpages-description": "Наброј ги сите страници последователно во даден именски простор.",
        "apihelp-query+allpages-param-from": "Наслов на страницата од која ќе почне набројувањето.",
        "apihelp-query+allpages-param-to": "Наслов на страницата на која ќе запре набројувањето.",
        "apihelp-query+allpages-param-minsize": "Ограничи на страници со барем олку бајти.",
        "apihelp-query+allpages-param-maxsize": "Ограничи на страници со највеќе олку бајти.",
        "apihelp-query+allpages-param-prtype": "Ограничи на само заштитени страници.",
-       "apihelp-query+backlinks-example-simple": "Прикажи врски до [[Главна страница|Главната страница]]",
-       "apihelp-query+backlinks-example-generator": "Дава информации за страниците што водат до [[Главна страница|Главната страница]]",
+       "apihelp-query+backlinks-example-simple": "Прикажи врски до <kbd>Главна страница<kbd>.",
+       "apihelp-query+backlinks-example-generator": "Дава информации за страниците што водат до <kbd>Главна страница<kbd>.",
        "apihelp-query+blocks-description": "Список на сите блокирани корисници и IP-адреси",
        "apihelp-query+blocks-param-start": "Од кој датум и време да почне набројувањето.",
        "apihelp-query+blocks-param-end": "На кој датум и време да запре набројувањето.",
        "apihelp-query+blocks-param-ids": "Список на назнаки на блоковите за испис (незадолжително)",
        "apihelp-query+blocks-param-users": "Список на корисници што ќе се пребаруваат (незадолжително)",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Режим|Режими}}: $2",
        "apihelp-query+imageinfo-param-urlheight": "Слично на $1urlwidth.",
-       "apihelp-query+revisions-example-last5": "Дај ги последните 5 преработки на „Главна страница“",
-       "apihelp-query+revisions-example-first5": "Дај ги првите 5 преработки на „Главна страница“",
-       "apihelp-query+revisions-example-first5-after": "Дај ги првите 5 преработки на „Главна страница“ направени по 2006-05-01 (1 мај 2006 г.)",
-       "apihelp-query+revisions-example-first5-not-localhost": "Дај ги првите 5 преработки на „Главна страница“ кои не се направени од анонимниот корисник „127.0.0.1“",
-       "apihelp-query+revisions-example-first5-user": "Дај ги првите 5 преработки на „Главна страница“ кои се направени од корисникот „зададен од МедијаВики“ (MediaWiki default)",
-       "apihelp-query+search-example-simple": "Побарај „meaning“",
-       "apihelp-query+search-example-text": "Побарај го „meaning“ по текстовите",
-       "apihelp-query+search-example-generator": "Дај информации за страниците што излегуваат во резултатите од пребарувањето на „meaning“",
+       "apihelp-query+revisions-example-last5": "Дај ги последните 5 преработки на <kbd>Главна страница</kbd>.",
+       "apihelp-query+revisions-example-first5": "Дај ги првите 5 преработки на <kbd>Главна страница</kbd>.",
+       "apihelp-query+revisions-example-first5-after": "Дај ги првите 5 преработки на <kbd>Главна страница</kbd> направени по 2006-05-01 (1 мај 2006 г.)",
+       "apihelp-query+revisions-example-first5-not-localhost": "Дај ги првите 5 преработки на <kbd>Главна страница</kbd> кои не се направени од анонимниот корисник „127.0.0.1“",
+       "apihelp-query+revisions-example-first5-user": "Дај ги првите 5 преработки на <kbd>Главна страница</kbd> кои се направени од корисникот „зададен од МедијаВики“ (<kbd>MediaWiki default</kbd>)",
+       "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-description": "Дај општи информации за мрежното место.",
        "apihelp-upload-param-filename": "Целно име на податотеката.",
-       "apihelp-upload-param-comment": "Коментар при подигање. Се користи и како првичен текст на страницата за нови податотеки ако не е укажано „$1text“.",
+       "apihelp-upload-param-comment": "Коментар при подигање. Се користи и како првичен текст на страницата за нови податотеки ако не е укажано <var>$1text</var>.",
        "apihelp-upload-param-text": "Првичен текст на страницата за нови податотеки.",
        "apihelp-upload-param-watch": "Набљудувај ја страницата.",
-       "apihelp-upload-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните, користете ги нагодувањата или не ги менувајте набљудуваните.",
+       "apihelp-upload-param-watchlist": "Безусловно додај или отстрани ја страницата од набљудуваните на тековниот корисник; користете ги нагодувањата или не ги менувајте набљудуваните.",
        "apihelp-upload-param-ignorewarnings": "Занемари предупредувања.",
        "apihelp-upload-param-file": "Содржина на податотеката.",
        "apihelp-upload-param-url": "Од која URL-адреса да се преземе податотеката.",
        "apihelp-upload-param-statuskey": "Дај ја состојбата на подигнатост за овој податотечен клуч (подигање по URL-адреса).",
        "apihelp-upload-param-checkstatus": "Дај ја состојбата на подигнатост само за дадениот податотечен клуч.",
        "apihelp-upload-example-url": "Подигни од URL-адреса",
+       "apihelp-userrights-param-user": "Корисничко име.",
        "apihelp-userrights-param-userid": "Корисничка назнака.",
        "apihelp-userrights-param-add": "Стави го корисникот во следниве групи.",
        "apihelp-userrights-param-remove": "Отстрани го корисникот од следниве групи.",
        "apihelp-userrights-param-reason": "Причина за промената.",
-       "apihelp-watch-example-watch": "Набљудувај ја страницата „Главна страница“",
-       "apihelp-watch-example-unwatch": "Отстрани ја страницата „Главна страница“ од набљудуваните",
+       "apihelp-userrights-example-user": "Додај го корисникот <kbd>FooBot</kbd> во групата <kbd>bot</kbd> и отстрани го од групите <kbd>sysop</kbd> и <kbd>bureaucrat</kbd>.",
+       "apihelp-userrights-example-userid": "Додај го корисникот со назнака <kbd>123</kbd> во групата <kbd>bot</kbd> и отстрани го од групите <kbd>sysop</kbd> и <kbd>bureaucrat</kbd>.",
+       "apihelp-watch-description": "Додај или отстрани страници од набљудуваните на тековниот корисник.",
+       "apihelp-watch-param-title": "Страницата што се става во или отстранува од набљудуваните. Наместо ова, користете <var>$1titles</var>.",
+       "apihelp-watch-param-unwatch": "Ако е зададено, страницата ќе биде отстранета од наместо ставена во набљуваните.",
+       "apihelp-watch-example-watch": "Набљудувај ја страницата <kbd>Главна страница</kbd>.",
+       "apihelp-watch-example-unwatch": "Отстрани ја страницата <kbd>Главна страница</kbd> од набљудуваните.",
        "apihelp-watch-example-generator": "Набљудувај ги првите неколку страници во главниот именски простор",
        "apihelp-format-example-generic": "Форматирај го резултатот од барањето во $1-формат",
        "apihelp-dbg-description": "Давај го изводот во PHP-форматот <code>var_export()</code> .",
        "apihelp-dumpfm-description": "Давај го изводот во PHP-форматот <code>var_dump()</code> (подобрен испис во HTML).",
        "apihelp-json-description": "Давај го изводот во JSON-формат.",
        "apihelp-json-param-callback": "Ако е укажано, го обвива изводот во даден повик на функција. За безбедност, ќе се ограничат сите податоци што се однесуваат на корисниците.",
-       "apihelp-json-param-utf8": "Ако е укажано, ја ги шифрира највеќето (но не сите) не-ASCII знаци како UTF-8 наместо да ги заменува со хексадецимални изводни низи.",
+       "apihelp-json-param-utf8": "Ако е укажано, ги шифрира највеќето (но не сите) не-ASCII знаци како UTF-8 наместо да ги заменува со хексадецимални изводни низи. Ова е стандардно кога <var>formatversion</var> не е <kbd>1</kbd>.",
+       "apihelp-json-param-ascii": "Ако е укажано, ги шифрира сите не-ASCII знаци како хексадецимални изводни низи. Ова е стандардно кога <var>formatversion</var> is <kbd>1</kbd>.",
+       "apihelp-json-param-formatversion": "Форматирање на изводот:\n;1:Назадно-складен формат (булови во XML-стил, клучеви <samp>*</samp> за содржински јазли и тн.).\n;2:Пробен современ формат. Поединостите може да се изменат!\n;најнов:Користење на најновиот формат (тековно <kbd>2</kbd>), може да се смени без предупредување.",
        "apihelp-jsonfm-description": "Давај го изводот во JSON-формат (подобрен испис во HTML).",
        "apihelp-none-description": "Де давај извод.",
        "apihelp-php-description": "Давај го изводот во серијализиран PHP-формат.",
+       "apihelp-php-param-formatversion": "Форматирање на изводот:\n;1:Назадно-складен формат (булови во XML-стил, клучеви <samp>*</samp> за содржински јазли и тн.).\n;2:Пробен современ формат. Поединостите може да се изменат!\n;најнов:Користење на најновиот формат (тековно <kbd>2</kbd>), може да се смени без предупредување.",
        "apihelp-phpfm-description": "Давај го изводот во серијализиран PHP-формат (подобрен испис во HTML).",
        "apihelp-rawfm-description": "Давај го изводот со елементи за отстранување грешки во JSON-формат (подобрен испис во HTML).",
-       "apihelp-txt-description": "Давај го изводот во PHP-форматот print_r().",
-       "apihelp-txtfm-description": "Давај го изводот во PHP-форматот print_r() (подобрен испис во HTML).",
+       "apihelp-txt-description": "Давај го изводот во PHP-форматот <code>print_r()</code>.",
+       "apihelp-txtfm-description": "Давај го изводот во PHP-форматот <code>print_r()</code> (подобрен испис во HTML).",
        "apihelp-wddx-description": "Давај го изводот во WDDX-формат.",
        "apihelp-wddxfm-description": "Давај го изводот во WDDX-формат (подобрен испис во HTML).",
        "apihelp-xml-description": "Давај го изводот во XML-формат.",
-       "apihelp-xml-param-xslt": "Ако е укажано, додава &lt;xslt&gt; како стилска страница. Ова треба да е викистраница во именскиот простор МедијаВики (MediaWiki) чиј наслов завршува со „.xsl“.",
+       "apihelp-xml-param-xslt": "Ако е укажано, ја додава именуваната страница како XSL-стилска страница. Вредноста мора да биде наслов во именскиот простор „{{ns:mediawiki}}“ што ќе завршува со <code>.xsl</code>.",
        "apihelp-xml-param-includexmlnamespace": "Ако е укажано, додава именски простор XML.",
        "apihelp-xmlfm-description": "Давај го изводот во XML-формат (подобрен испис во HTML).",
        "apihelp-yaml-description": "Давај го изводот во YAML-формат.",
        "apihelp-yamlfm-description": "Давај го изводот во YAML-формат (подобрен испис во HTML).",
        "api-format-title": "Резултат од Извршникот на МедијаВики",
-       "api-format-prettyprint-header": "Ð\88а Ð³Ð»ÐµÐ´Ð°Ñ\82е HTML-пÑ\80еÑ\82Ñ\81Ñ\82аваÑ\82а Ð½Ð° Ñ\84оÑ\80маÑ\82оÑ\82 $1. HTML Ðµ Ð´Ð¾Ð±Ð°Ñ\80 Ð·Ð° Ð¾Ñ\82Ñ\81Ñ\82Ñ\80анÑ\83ваÑ\9aе Ð½Ð° Ð³Ñ\80еÑ\88ки, Ð½Ð¾ Ð½Ðµ Ðµ Ð¿Ð¾Ð³Ð¾Ð´ÐµÐ½ Ð·Ð° Ñ\83поÑ\82Ñ\80еба Ð²Ð¾ Ð¸Ð·Ð²Ñ\80Ñ\88ник.\n\nУкажеÑ\82е Ð³Ð¾ Ð¿Ð°Ñ\80амеÑ\82аÑ\80оÑ\82 Ð·Ð° Ñ\84оÑ\80маÑ\82 Ð·Ð° Ð´Ð° Ð³Ð¾ Ñ\81мениÑ\82е Ð¸Ð·Ð²Ð¾Ð´Ð½Ð¸Ð¾Ñ\82 Ñ\84оÑ\80маÑ\82. Ð\97а Ð´Ð° Ð³Ð¸ Ð²Ð¸Ð´Ð¸Ñ\82е Ð¿Ñ\80еÑ\82Ñ\81Ñ\82авиÑ\82е Ð½Ð° Ñ\84оÑ\80маÑ\82оÑ\82 $1 Ð²Ð¾Ð½ HTML, Ð·Ð°Ð´Ð°Ñ\98Ñ\82е format=$2.\n\nÐ\9fовеÑ\9cе Ð¸Ð½Ñ\84оÑ\80маÑ\86ии Ñ\9cе Ð½Ð°Ñ\98деÑ\82е Ð½Ð° [https://www.mediawiki.org/wiki/API Ñ\86елоÑ\81наÑ\82а Ð´Ð¾ÐºÑ\83менÑ\82аÑ\86иÑ\98а], или пак [[Special:ApiHelp/main|помош со извршникот]].",
+       "api-format-prettyprint-header": "Ð\9eва Ðµ HTML-пÑ\80еÑ\82Ñ\81Ñ\82ава Ð½Ð° Ñ\84оÑ\80маÑ\82оÑ\82 $1. HTML Ðµ Ð´Ð¾Ð±Ð°Ñ\80 Ð·Ð° Ð¾Ñ\82Ñ\81Ñ\82Ñ\80анÑ\83ваÑ\9aе Ð½Ð° Ð³Ñ\80еÑ\88ки, Ð½Ð¾ Ð½Ðµ Ðµ Ð¿Ð¾Ð³Ð¾Ð´ÐµÐ½ Ð·Ð° Ñ\83поÑ\82Ñ\80еба Ð²Ð¾ Ð¸Ð·Ð²Ñ\80Ñ\88ник.\n\nУкажеÑ\82е Ð³Ð¾ Ð¿Ð°Ñ\80амеÑ\82аÑ\80оÑ\82 <var>format</var> Ð·Ð° Ð´Ð° Ð³Ð¾ Ñ\81мениÑ\82е Ð¸Ð·Ð²Ð¾Ð´Ð½Ð¸Ð¾Ñ\82 Ñ\84оÑ\80маÑ\82. Ð\97а Ð´Ð° Ð³Ð¸ Ð²Ð¸Ð´Ð¸Ñ\82е Ð¿Ñ\80еÑ\82Ñ\81Ñ\82авиÑ\82е Ð½Ð° Ñ\84оÑ\80маÑ\82оÑ\82 $1 Ð²Ð¾Ð½ HTML, Ð·Ð°Ð´Ð°Ñ\98Ñ\82е <kbd>format=$2</kbd>.\n\nÐ\9fовеÑ\9cе Ð¸Ð½Ñ\84оÑ\80маÑ\86ии Ñ\9cе Ð½Ð°Ñ\98деÑ\82е Ð½Ð° [[mw:API|Ñ\86елоÑ\81наÑ\82а Ð´Ð¾ÐºÑ\83менÑ\82аÑ\86иÑ\98а]], или пак [[Special:ApiHelp/main|помош со извршникот]].",
        "api-orm-param-props": "Полиња за пребарување.",
        "api-orm-param-limit": "Макс. број на редови во изводот.",
        "api-pageset-param-titles": "Список на наслови на кои ќе се работи",
        "api-pageset-param-pageids": "Список на назнаки за страници на кои ќе се работи",
        "api-pageset-param-revids": "Список на назнаки на преработки на кои ќе се работи",
-       "api-pageset-param-generator": "Дај го списокот на страници на кои ќе се работи исполнувајќи го укажаниот модул за барање.\n\n'''НАПОМЕНА:''' називите на создавачките параметри мора да ја имаат претставката „g“. Погледајте ги примерите.",
+       "api-pageset-param-generator": "Дај го списокот на страници на кои ќе се работи исполнувајќи го укажаниот модул за барање.\n\n<strong>Напомена:</strong> називите на создавачките параметри мора да ја имаат претставката „g“. Погледајте ги примерите.",
+       "api-pageset-param-redirects-generator": "Автоматски решавај пренасочувања во <var>$1titles</var>, <var>$1pageids</var> и <var>$1revids</var>, како и во страниците што ги дава <var>$1generator</var>.",
+       "api-pageset-param-redirects-nogenerator": "Автоамтски решавај пренасочувања во <var>$1titles</var>, <var>$1pageids</var> и <var>$1revids</var>.",
+       "api-pageset-param-converttitles": "Ако е потребно, претворај ги насловите во други варијанти. Работи само ако јазикот на викито поддржува претворање на варијанти. Такви се $1.",
        "api-help-title": "Помош со Извршникот на МедијаВики",
        "api-help-lead": "Ова е самосоздадена документациска страница за извршникот на МедијаВики.\n\nДокументација и примери: https://www.mediawiki.org/wiki/API",
        "api-help-main-header": "Главен модул",
        "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\">непознат</span>",
+       "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-param-list": "{{PLURAL:$1|1=Една вредност|2=Вредности (одделени со „{{!}}“)}}: $2",
+       "api-help-datatypes-header": "Типови на податоци",
+       "api-help-param-type-limit": "Тип: цел број или <kbd>max</kbd>",
+       "api-help-param-type-integer": "Тип: {{PLURAL:$1|1=цел број|2=список на цели броеви}}",
+       "api-help-param-type-boolean": "Тип: булов ([[Special:ApiHelp/main#main/datatypes|подробно]])",
+       "api-help-param-type-timestamp": "Тип: {{PLURAL:$1|1=време и датум|2=список на времиња и датуми}} ([[Special:ApiHelp/main#main/datatypes|допуштени формати]])",
+       "api-help-param-type-user": "Тип: {{PLURAL:$1|1=корисничко име|2=список на кориснички имиња}}",
+       "api-help-param-list": "{{PLURAL:$1|1=Една вредност|2=Вредности (одделете ги со <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-max": "{{PLURAL:$1|1=Вредноста не може да изнесува|2=Вредностите е може да изнесуваат}} повеќе од $3.",
        "api-help-param-integer-minmax": "{{PLURAL:$1|1=Вредноста мора да изнесува|2=Вредностите мораат да изнесуваат}} помеѓу $2 и $3.",
        "api-help-param-upload": "Мора да биде објавено како податотечно подигање користејќи податоци кои се повеќеделни или од образец.",
-       "api-help-param-multi-separate": "Одделувајте ги вредностите со „|“.",
+       "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-token": "Шифра „$1“ добиена од [[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
        "api-help-param-token-webui": "За складност, се прифаќа и шифрата што се користи за обичниот кориснички посредник.",
-       "api-help-param-disabled-in-miser-mode": "Исклучено поради [https://www.mediawiki.org/wiki/Manual:$wgMiserMode скржавиот режим].",
+       "api-help-param-disabled-in-miser-mode": "Исклучено поради [[mw:Manual:$wgMiserMode|скржавиот режим]].",
+       "api-help-param-limited-in-miser-mode": "<strong>Напомена:</strong> Бидејќи сте во [[mw:Manual:$wgMiserMode|скржав режим]], користејќи го ова може да добиете помалку од <var>$1limit</var> резултати пред да продолжите; во крајни случаи може да не добиете ниеден резултат.",
+       "api-help-param-direction": "Во која насока да се набројува:\n;понови:Прво најстарите. Напомена: $1start мора да биде пред $1end.\n;постари:Прво најновите (по основно). Напомена: $1start мора да биде подоцна од $1end.",
+       "api-help-param-continue": "Употребете го ова за да продолжите кога има повеќе расположиви резултати.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(нема опис)</span>",
        "api-help-examples": "{{PLURAL:$1|Пример|Примери}}:",
        "api-help-permissions": "{{PLURAL:$1|Дозвола|Дозволи}}:",
index 6dcba40..7fc3335 100644 (file)
@@ -1,13 +1,15 @@
 {
        "@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-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.",
index 1b63f93..1f1840a 100644 (file)
@@ -30,6 +30,7 @@
        "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.",
index 8428b36..a769417 100644 (file)
        "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-watchuser": "Obserwuj stronę użytkownika i jego IP oraz jego stronę dyskusji.",
+       "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-type": "Typ tokenu do przetestowania.",
+       "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-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-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-delete-description": "Usuń stronę.",
-       "apihelp-delete-param-watch": "Dodaj stronę do twojej listy obserwowanych.",
-       "apihelp-delete-param-unwatch": "Usuń stronę z twojej listy obserwowanych.",
-       "apihelp-delete-example-simple": "Usuń stronę główną",
+       "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-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-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-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-text": "Treść emaila.",
+       "apihelp-emailuser-param-ccme": "Wyślij kopię wiadomości do mnie.",
+       "apihelp-expandtemplates-param-title": "Tytuł strony.",
+       "apihelp-expandtemplates-param-text": "Wikitext do przekonwertowania.",
+       "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.",
+       "apihelp-feedrecentchanges-param-hideminor": "Ukryj drobne zmiany.",
+       "apihelp-feedrecentchanges-param-hidebots": "Ukryj zmiany zrobione przez boty.",
+       "apihelp-feedrecentchanges-param-hideanons": "Ukryj zmiany zrobione przez anonimowych użytkowników.",
+       "apihelp-feedrecentchanges-param-hideliu": "Ukryj zmiany zrobione przez zarejestrowanych użytkowników.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Ukryj sprawdzone zmiany.",
+       "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-description": "Wyświetl pomoc dla określonych modułów.",
        "apihelp-help-param-modules": "Moduły do wyświetlenia pomocy dla (wartości <var>action</var> i <var>format</var> parametry, lub <kbd>main</kbd>). Może określić podmoduły z <kbd>+</kbd>.",
        "apihelp-help-param-recursivesubmodules": "Zawiera pomoc dla podmodułów rekursywnie.",
        "apihelp-help-example-main": "Pomoc dla modułu głównego",
        "apihelp-help-example-recursive": "Cała pomoc na jednej stronie.",
        "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-login-param-name": "Nazwa użytkownika.",
        "apihelp-login-param-password": "Hasło.",
+       "apihelp-login-param-domain": "Domena (opcjonalnie).",
+       "apihelp-login-param-token": "Token logowania zdobyty w pierwszym zapytaniu.",
+       "apihelp-login-example-gettoken": "Zdobądź token logowania.",
        "apihelp-login-example-login": "Zaloguj się",
+       "apihelp-logout-description": "Wyloguj i wyczyść dane sesji.",
+       "apihelp-logout-example-logout": "Wyloguj obecnego użytkownika.",
        "apihelp-managetags-param-ignorewarnings": "Czy zignorować ostrzeżenia, które pojawiają się w trakcie operacji.",
        "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-noredirect": "Nie twórz przekierowania.",
        "apihelp-move-param-ignorewarnings": "Ignoruj wszystkie ostrzeżenia.",
+       "apihelp-opensearch-param-search": "Wyszukaj tekst.",
+       "apihelp-opensearch-param-limit": "Maksymalna liczba zwracanych wyników.",
+       "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-example-reset": "Resetuj wszystkie preferencje.",
+       "apihelp-paraminfo-description": "Zdobądź informacje o modułach API.",
+       "apihelp-patrol-description": "Sprawdź stronę lub edycję.",
+       "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-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+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+categorymembers-description": "Wszystkie strony w danej kategorii.",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Tryb|Tryby}}: $2",
        "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+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.",
index 876f598..1398afd 100644 (file)
@@ -7,7 +7,8 @@
                        "Umherirrender",
                        "McDutchie",
                        "Raymond",
-                       "Anomie"
+                       "Anomie",
+                       "Nemo bis"
                ]
        },
        "apihelp-main-description": "{{doc-apihelp-description|main}}",
        "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}}",
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 3a9ff25..9952ab9 100644 (file)
@@ -1,9 +1,16 @@
 {
        "@metadata": {
                "authors": [
-                       "Sayginer"
+                       "Sayginer",
+                       "Sadrettin"
                ]
        },
+       "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.",
index f0f3cd8..239a517 100644 (file)
        "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-categorieshtml": "提供HTML版本分类。",
+       "apihelp-parse-paramvalue-prop-headhtml": "提供页面的被解析<code>&lt;head&gt;</code>。",
+       "apihelp-parse-paramvalue-prop-modules": "提供在页面中使用的ResourceLoader模块。",
+       "apihelp-parse-paramvalue-prop-wikitext": "提供被解析的原始wiki文本。",
        "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-query+allmessages-description": "返回来自该网站的消息。",
        "apihelp-query+allmessages-param-messages": "要输出的消息。<kbd>*</kbd>(默认)表示所有消息。",
        "apihelp-query+allmessages-param-prop": "要获取的属性。",
+       "apihelp-query+allmessages-param-args": "要替代进消息的参数。",
        "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+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-param-prop": "要获取的文件信息:",
        "apihelp-query+imageinfo-paramvalue-prop-timestamp": "添加时间戳至上传的版本。",
        "apihelp-query+imageinfo-paramvalue-prop-comment": "此版本的摘要。",
+       "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "解析版本上的注释。",
        "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "添加文件的规范标题。",
        "apihelp-query+imageinfo-paramvalue-prop-url": "为文件及其描述页面提供URL。",
        "apihelp-query+imageinfo-paramvalue-prop-dimensions": "大小别名。",
        "apihelp-query+imageinfo-paramvalue-prop-sha1": "为文件加入SHA-1哈希值。",
        "apihelp-query+imageinfo-paramvalue-prop-mime": "添加文件的MIME类型。",
        "apihelp-query+imageinfo-paramvalue-prop-mediatype": "添加文件媒体类型。",
+       "apihelp-query+imageinfo-param-limit": "每个文件返回多少文件修订。",
        "apihelp-query+imageinfo-param-start": "开始列举的时间戳。",
        "apihelp-query+imageinfo-param-end": "列举的结束时间戳。",
        "apihelp-query+imageinfo-param-urlheight": "与$1urlwidth类似。",
        "apihelp-query+info-paramvalue-prop-watched": "列出每个页面的被监视状态。",
        "apihelp-query+info-paramvalue-prop-watchers": "监视人员数,如果允许。",
        "apihelp-query+info-paramvalue-prop-readable": "用户是否可以阅读此页面。",
+       "apihelp-query+info-paramvalue-prop-preload": "提供由EditFormPreloadText返回的文本。",
        "apihelp-query+info-param-testactions": "测试当前用户是否可以在页面上执行某种操作。",
        "apihelp-query+info-param-token": "请改用[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
        "apihelp-query+info-example-simple": "获得有关页面<kbd>Main Page</kbd>的信息。",
        "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-description": "执行一次全文本搜索。",
        "apihelp-query+search-param-search": "搜索所有拥有此值的页面标题(或内容)。",
        "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-param-interwiki": "搜索结果中包含跨wiki结果,如果可用。",
        "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-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": "无条件地将页面加入至当前用户的监视列表或将其移除,使用设置或不更改监视。",
        "apihelp-setnotificationtimestamp-example-page": "重置用于<kbd>Main page</kbd>的通知状态。",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "设置<kbd>Main page</kbd>的通知时间戳,这样所有从2012年1月1日起的编辑都会是未复核的。",
        "apihelp-setnotificationtimestamp-example-allpages": "重置在<kbd>{{ns:user}}</kbd>名字空间中的页面的通知状态。",
+       "apihelp-tag-description": "从个别修订或日志记录中添加或移除更改标签。",
        "apihelp-tag-param-rcid": "要添加或移除标签的一个或更多的最近更改ID。",
        "apihelp-tag-param-revid": "要添加或移除标签的一个或更多的修订ID。",
        "apihelp-tag-param-logid": "要添加或移除标签的一个或更多的日志记录ID。",
        "apihelp-dump-description": "输出数据为PHP的<code>var_dump()</code>格式。",
        "apihelp-dumpfm-description": "输出数据为PHP的<code>var_dump()</code>格式(HTML优质打印效果)。",
        "apihelp-json-description": "输出数据为JSON格式。",
+       "apihelp-json-param-utf8": "如果指定,使用十六进制转义序列将大多数(但不是全部)非ASCII的字符编码为UTF-8,而不是替换它们。默认当<var>formatversion</var>不是<kbd>1</kbd>时。",
+       "apihelp-json-param-ascii": "如果指定,使用十六进制转义序列将所有非ASCII编码。默认当<var>formatversion</var>为<kbd>1</kbd>时。",
        "apihelp-json-param-formatversion": "输出格式:\n;1:向后兼容格式(XML样式布尔值、用于内容节点的<samp>*</samp>键等)。\n;2:实验现代格式。细节可以更改!\n;latest:使用最新格式(当前为<kbd>2</kbd>),可以在没有警告的情况下更改。",
        "apihelp-jsonfm-description": "输出数据为JSON格式(HTML优质打印效果)。",
        "apihelp-none-description": "不输出任何东西。",
        "api-help-param-deprecated": "不推荐使用。",
        "api-help-param-required": "这个参数是必须的。",
        "api-help-datatypes-header": "数据类型",
+       "api-help-datatypes": "一些在API请求中的参数类型需要更进一步解释:\n;boolean\n:布尔参数就像HTML复选框一样工作:如果指定参数,无论何值都被认为是真。如果要假值,则可完全忽略参数。\n;timestamp\n:时间戳可被指定为很多格式。推荐使用ISO 8601日期和时间标准。所有时间为UTC时间,包含的任何时区会被忽略。\n:* ISO 8601日期和时间,<kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd>(标点和<kbd>Z</kbd>是可选项)\n:* 带小数秒(会被忽略)的ISO 8601日期和时间,<kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd>(破折号、括号和<kbd>Z</kbd>是可选的)\n:* MediaWiki格式,<kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* 一般数字格式,<kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>(<kbd>GMT</kbd>、<kbd>+<var>##</var></kbd>或<kbd>-<var>##</var></kbd>的可选时区会被忽略)\n:* EXIF格式,<kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 2822格式(时区可能会被省略),<kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 850格式(时区可能会被省略),<kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* C ctime格式,<kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* 秒数是从1970-01-01T00:00:00Z开始,作为1到13位数的整数",
        "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 dc3cc2d..3db32ba 100644 (file)
        "apihelp-opensearch-param-limit": "回傳的結果數量上限。",
        "apihelp-opensearch-param-namespace": "搜尋的命名空間。",
        "apihelp-opensearch-param-format": "輸出的格式。",
+       "apihelp-options-param-reset": "重設偏好設定為網站預設值。",
        "apihelp-options-example-reset": "重設所有偏好設定",
+       "apihelp-parse-example-page": "解析一個頁面。",
+       "apihelp-parse-example-text": "解析 wikitext。",
+       "apihelp-parse-example-texttitle": "解析 wikitext,指定頁面標題。",
+       "apihelp-parse-example-summary": "解析一個摘要。",
+       "apihelp-patrol-description": "巡查一個頁面或修訂。",
+       "apihelp-patrol-param-rcid": "要巡查的近期變更 ID。",
+       "apihelp-patrol-param-revid": "要巡查的修訂 ID。",
+       "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-protections": "保護層級清單,格式為 <kbd>action=level</kbd> (例如 <kbd>edit=sysop</kbd>)。\n\n<strong>注意:</strong> 任何未列入清單項目的限制將會被移除。",
+       "apihelp-protect-param-expiry": "期限時間戳記,若只設定一個時間戳記,該時間戳記將會套用至所有的保護層級。 使用 <kbd>infinite</kbd>、<kbd>indefinite</kbd>、<kbd>infinity</kbd> 或 <kbd>never</kbd> 來設定保護層級期限為永遠。",
+       "apihelp-protect-param-reason": "(解除)保護的原因。",
        "apihelp-query+allcategories-param-limit": "要回傳的分類數量。",
        "apihelp-query+allfileusages-param-limit": "要回傳的項目總數。",
        "apihelp-query+allimages-param-limit": "要回傳的圖片總數。",
index a55e25a..31ee487 100644 (file)
@@ -554,10 +554,10 @@ 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
index cf33484..a730116 100644 (file)
@@ -518,7 +518,6 @@ class ChangeTags {
                if ( $rev_id ) {
                        $rev = Revision::newFromId( $rev_id );
                        if ( $rev ) {
-                               $title = $rev->getTitle();
                                $logEntry->setTarget( $rev->getTitle() );
                        }
                } elseif ( $log_id ) {
@@ -707,6 +706,7 @@ class ChangeTags {
         * @param User $user Who to attribute the action to
         * @param int $tagCount For deletion only, how many usages the tag had before
         * it was deleted.
+        * @return int ID of the inserted log entry
         * @since 1.25
         */
        protected static function logTagManagementAction( $action, $tag, $reason,
@@ -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,36 +1177,55 @@ 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;
-               }
-
-               $out = array();
+               $fname = __METHOD__;
+
+               return 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;
+       /**
+        * Indicate whether change tag editing UI is relevant
+        *
+        * Returns true if the user has the necessary right and there are any
+        * editable tags defined.
+        *
+        * This intentionally doesn't check "any addable || any deletable", because
+        * it seems like it would be more confusing than useful if the checkboxes
+        * suddenly showed up because some abuse filter stopped defining a tag and
+        * then suddenly disappeared when someone deleted all uses of that tag.
+        *
+        * @param User $user
+        * @return bool
+        */
+       public static function showTagEditingUI( User $user ) {
+               return $user->isAllowed( 'changetags' ) && (bool)self::listExplicitlyDefinedTags();
        }
 }
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 9c2435a..f8d0879 100644 (file)
@@ -629,7 +629,7 @@ abstract class ContentHandler {
 
                // hook: get difference engine
                $differenceEngine = null;
-               if ( !wfRunHooks( 'GetDifferenceEngine',
+               if ( !Hooks::run( 'GetDifferenceEngine',
                        array( $context, $old, $new, $refreshCache, $unhide, &$differenceEngine )
                ) ) {
                        return $differenceEngine;
index d2cac34..97073dd 100644 (file)
@@ -818,14 +818,14 @@ abstract class DatabaseBase implements IDatabase {
                $this->mSessionVars = $params['variables'];
 
                /** Get the default table prefix*/
-               if ( $tablePrefix == 'get from global' ) {
+               if ( $tablePrefix === 'get from global' ) {
                        $this->mTablePrefix = $wgDBprefix;
                } else {
                        $this->mTablePrefix = $tablePrefix;
                }
 
                /** Get the database schema*/
-               if ( $schema == 'get from global' ) {
+               if ( $schema === 'get from global' ) {
                        $this->mSchema = $wgDBmwschema;
                } else {
                        $this->mSchema = $schema;
@@ -2485,7 +2485,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                # Quote $schema and merge it with the table name if needed
-               if ( $schema !== null ) {
+               if ( strlen( $schema ) ) {
                        if ( $format == 'quoted' && !$this->isQuotedIdentifier( $schema ) ) {
                                $schema = $this->addIdentifierQuotes( $schema );
                        }
@@ -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();
        }
index ad12e19..d2b5ecb 100644 (file)
@@ -134,7 +134,7 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return int
         */
        function insertId() {
-               return $this->mConn->insert_id;
+               return (int)$this->mConn->insert_id;
        }
 
        /**
index ed86bab..2bad711 100644 (file)
@@ -64,16 +64,16 @@ class DatabaseSqlite extends DatabaseBase {
                $this->dbDir = isset( $p['dbDirectory'] ) ? $p['dbDirectory'] : $wgSQLiteDataDir;
 
                if ( isset( $p['dbFilePath'] ) ) {
-                       $this->mFlags = isset( $p['flags'] ) ? $p['flags'] : 0;
-                       // Standalone .sqlite file mode
+                       parent::__construct( $p );
+                       // Standalone .sqlite file mode.
+                       // Super doesn't open when $user is false, but we can work with $dbName,
+                       // which is derived from the file path in this case.
                        $this->openFile( $p['dbFilePath'] );
-                       // @FIXME: clean up base constructor so this can call super instead
-                       $this->mTrxAtomicLevels = new SplStack;
                } else {
                        $this->mDBname = $p['dbname'];
-                       // Stock wiki mode using standard file names per DB
+                       // Stock wiki mode using standard file names per DB.
                        parent::__construct( $p );
-                       // parent doesn't open when $user is false, but we can work with $dbName
+                       // Super doesn't open when $user is false, but we can work with $dbName
                        if ( $p['dbname'] && !$this->isOpen() ) {
                                if ( $this->open( $p['host'], $p['user'], $p['password'], $p['dbname'] ) ) {
                                        if ( $wgSharedDB ) {
@@ -105,8 +105,10 @@ class DatabaseSqlite extends DatabaseBase {
         */
        public static function newStandaloneInstance( $filename, array $p = array() ) {
                $p['dbFilePath'] = $filename;
+               $p['schema'] = false;
+               $p['tablePrefix'] = '';
 
-               return new self( $p );
+               return DatabaseBase::factory( 'sqlite', $p );
        }
 
        /**
index edaef4a..6027375 100644 (file)
@@ -253,7 +253,7 @@ class LegacyLogger extends AbstractLogger {
                global $wgDBerrorLogTZ;
                static $cachedTimezone = null;
 
-               if ( $wgDBerrorLogTZ && !$cachedTimezone ) {
+               if ( !$cachedTimezone ) {
                        $cachedTimezone = new DateTimeZone( $wgDBerrorLogTZ );
                }
 
index 5d0183f..83e04a5 100644 (file)
@@ -62,7 +62,7 @@ class TableDiffFormatter extends DiffFormatter {
        protected function blockHeader( $xbeg, $xlen, $ybeg, $ylen ) {
                // '<!--LINE \d+ -->' get replaced by a localised line number
                // in DifferenceEngine::localiseLineNumbers
-               $r = '<tr><td colspan="2" class="diff-lineno" id="L' . $xbeg . '" ><!--LINE ' . $xbeg . "--></td>\n" .
+               $r = '<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l' . $xbeg . '" ><!--LINE ' . $xbeg . "--></td>\n" .
                        '<td colspan="2" class="diff-lineno"><!--LINE ' . $ybeg . "--></td></tr>\n";
 
                return $r;
index e62f8bd..039b9c6 100644 (file)
  */
 class BadTitleError extends ErrorPageError {
        /**
-        * @param string|Message $msg A message key (default: 'badtitletext')
+        * @param string|Message|MalformedTitleException $msg A message key (default: 'badtitletext'), or
+        *     a MalformedTitleException to figure out things from
         * @param array $params Parameter to wfMessage()
         */
        public function __construct( $msg = 'badtitletext', $params = array() ) {
-               parent::__construct( 'badtitle', $msg, $params );
+               if ( $msg instanceof MalformedTitleException ) {
+                       $errorMessage = $msg->getErrorMessage();
+                       if ( !$errorMessage ) {
+                               parent::__construct( 'badtitle', 'badtitletext', array() );
+                       } else {
+                               $errorMessageParams = $msg->getErrorMessageParameters();
+                               parent::__construct( 'badtitle', $errorMessage, $errorMessageParams );
+                       }
+               } else {
+                       parent::__construct( 'badtitle', $msg, $params );
+               }
        }
 
        /**
@@ -47,5 +58,4 @@ class BadTitleError extends ErrorPageError {
                $wgOut->setStatusCode( 400 );
                parent::report();
        }
-
 }
index 5f406c9..d6d7e9e 100644 (file)
@@ -235,16 +235,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 );
                        }
                };
 
@@ -298,16 +298,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 +347,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 +405,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 +416,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 +446,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 +457,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 +505,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..fa4eb5f 100644 (file)
@@ -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 ) {
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 1d45428..0713a92 100644 (file)
@@ -485,7 +485,7 @@ class ArchivedFile {
                if ( $type == 'text' ) {
                        return $this->user_text;
                } elseif ( $type == 'id' ) {
-                       return $this->user;
+                       return (int)$this->user;
                }
 
                throw new MWException( "Unknown type '$type'." );
index 3d5d5d6..e51f381 100644 (file)
@@ -219,11 +219,15 @@ class ForeignAPIFile extends File {
        }
 
        /**
-        * @param string $method
+        * @param string $type
         * @return int|null|string
         */
-       public function getUser( $method = 'text' ) {
-               return isset( $this->mInfo['user'] ) ? strval( $this->mInfo['user'] ) : null;
+       public function getUser( $type = 'text' ) {
+               if ( $type == 'text' ) {
+                       return isset( $this->mInfo['user'] ) ? strval( $this->mInfo['user'] ) : null;
+               } elseif ( $type == 'id' ) {
+                       return 0; // What makes sense here, for a remote user?
+               }
        }
 
        /**
index b4cced3..fe42c2d 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 ) {
@@ -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,29 @@ 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() {
+               $this->load();
+
+               $key = $this->getCacheKey();
+               if ( !$key ) {
+                       return;
+               }
+
+               $cache = ObjectCache::getMainWANInstance();
+               $cache->delete( $key );
        }
 
        /**
@@ -612,7 +624,7 @@ class LocalFile extends File {
                        __METHOD__
                );
 
-               $this->saveToCache();
+               $this->invalidateCache();
 
                $this->unlock(); // done
 
@@ -734,7 +746,7 @@ class LocalFile extends File {
                if ( $type == 'text' ) {
                        return $this->user_text;
                } elseif ( $type == 'id' ) {
-                       return $this->user;
+                       return (int)$this->user;
                }
        }
 
@@ -753,7 +765,7 @@ class LocalFile extends File {
        function getBitDepth() {
                $this->load();
 
-               return $this->bits;
+               return (int)$this->bits;
        }
 
        /**
@@ -842,25 +854,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->purgeHistory();
-       }
-
-       /**
-        * Purge the shared history (OldLocalFile) cache.
-        *
-        * @note This used to purge old thumbnails as well.
-        */
-       function purgeHistory() {
-               global $wgMemc;
-
-               $hashedName = md5( $this->getName() );
-               $oldKey = $this->repo->getSharedCacheKey( 'oldfile', $hashedName );
-
-               if ( $oldKey ) {
-                       $wgMemc->delete( $oldKey );
-               }
+               $this->invalidateCache();
        }
 
        /**
@@ -1406,11 +1400,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
@@ -1612,21 +1603,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 );
                                }
@@ -1667,7 +1658,6 @@ class LocalFile extends File {
                $this->purgeOldThumbnails( $archiveName );
                if ( $status->isOK() ) {
                        $this->purgeDescription();
-                       $this->purgeHistory();
                }
 
                if ( $wgUseSquid ) {
@@ -1811,7 +1801,7 @@ class LocalFile extends File {
                                        array( 'img_sha1' => $this->sha1 ),
                                        array( 'img_name' => $this->getName() ),
                                        __METHOD__ );
-                               $this->saveToCache();
+                               $this->invalidateCache();
                        }
 
                        $this->unlock(); // done
@@ -2565,7 +2555,6 @@ class LocalFileRestoreBatch {
                        } else {
                                wfDebug( __METHOD__ . " restored {$status->successCount} as archived versions\n" );
                                $this->file->purgeDescription();
-                               $this->file->purgeHistory();
                        }
                }
 
index 39ed24f..738fec3 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.
@@ -357,6 +358,7 @@ class HTMLForm extends ContextSource {
         * @return bool
         */
        public function isVForm() {
+               wfDeprecated( __METHOD__, '1.25' );
                return false;
        }
 
index 9576c77..0c3fe44 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 = '';
@@ -377,6 +378,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'] ) ) {
index 88df49d..a67e52e 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 !== '' ) {
index 7826a0c..0c0e425 100644 (file)
@@ -38,6 +38,7 @@ class VFormHTMLForm extends HTMLForm {
        protected $displayFormat = 'vform';
 
        public function isVForm() {
+               wfDeprecated( __METHOD__, '1.25' );
                return true;
        }
 
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 62f0f03..852982f 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Xuacu"
+                       "Xuacu",
+                       "Fitoschido"
                ]
        },
        "config-desc": "L'instalador pa MediaWiki",
@@ -47,7 +48,6 @@
        "config-env-bad": "Comprobóse l'entornu.\nNun pue instalar MediaWiki.",
        "config-env-php": "PHP $1 ta instaláu.",
        "config-env-hhvm": "HHVM $1 ta instaláu.",
-       "config-unicode-using-utf8": "Usando utf8_normalize.so de Brion Vibber pa la normalización Unicode.",
        "config-unicode-using-intl": "Usando la [http://pecl.php.net/intl estensión intl PECL] pa la normalización Unicode.",
        "config-unicode-pure-php-warning": "'''Avisu:''' La [http://pecl.php.net/intl estensión intl PECL] nun ta disponible pa xestionar la normalización Unicode; volviendo a la implementación lenta en PHP puru.\nSi xestiona un sitiu con un tráficu altu, tendría de lleer una migaya sobro la [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
        "config-unicode-update-warning": "'''Avisu:''' La versión instalada del envoltoriu de normalización Unicode usa una versión antigua de la biblioteca [http://site.icu-project.org/ de los proyeutos ICU].\nTendría [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations d'anovala] si ye importante pa vusté usar Unicode.",
        "config-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 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 1178a1a..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": "Аутентификацин тайп:",
@@ -62,7 +62,7 @@
        "config-license-gfdl": "GNU Free Documentation License 1.3 я кхин хьалха хиларг",
        "config-license-pd": "Юкъараллин хьал",
        "config-license-cc-choose": "Харжа цхьа лицензи Creative Commons",
-       "config-email-settings": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87Ñ\82а нисяр",
+       "config-email-settings": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88Ñ\82 нисяр",
        "config-enable-email": "Латае дӀайохьуьйту e-mail",
        "config-upload-deleted": "ДӀаяхна файлийн директори:",
        "config-cc-again": "Хьаржа кхин цӀа…",
index da2de84..0321d8e 100644 (file)
@@ -53,7 +53,6 @@
        "config-env-bad": "Prostředí bylo zkontrolováno.\nMediaWiki nelze nainstalovat.",
        "config-env-php": "Je nainstalováno PHP $1.",
        "config-env-hhvm": "Je nainstalováno HHVM $1.",
-       "config-unicode-using-utf8": "Pro normalizaci Unicode se používá utf8_normalize.so Briona Vibbera.",
        "config-unicode-using-intl": "Pro normalizaci Unicode se používá [http://pecl.php.net/intl PECL rozšíření intl].",
        "config-unicode-pure-php-warning": "'''Upozornění''': Není dostupné [http://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.\nPokud provozujete wiki s velkou návštěvností, měli byste si přečíst něco o [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizaci Unicode].",
        "config-unicode-update-warning": "'''Upozornění''': Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].\nPokud vám aspoň trochu záleží na používání Unicode, měli byste [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ji aktualizovat].",
index a79282a..b5794bf 100644 (file)
@@ -9,7 +9,6 @@
        "config-title": "MediaWiki $1 installation",
        "config-information": "Information",
        "config-copyright": "=== Copyright and Terms ===\n\n$1\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but '''without any warranty'''; without even the implied warranty of '''merchantability''' or '''fitness for a particular purpose'''.\nSee the GNU General Public Licence for more details.\n\nYou should have received <doclink href=Copying>a copy of the GNU General Public Licence</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. or [http://www.gnu.org/copyleft/gpl.html read it online].",
-       "config-unicode-using-utf8": "Using Brion Vibber's utf8_normalize.so for Unicode normalisation.",
        "config-unicode-using-intl": "Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalisation.",
        "config-unicode-pure-php-warning": "'''Warning:''' The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalisation, falling back to slow pure-PHP implementation.\nIf you run a high-traffic site, you should read a little on [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalisation].",
        "config-unicode-update-warning": "'''Warning:''' The installed version of the Unicode normalisation wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
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..e83b478 100644 (file)
        "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.",
index c975090..17f784f 100644 (file)
@@ -68,7 +68,6 @@
        "config-env-bad": "L’environnement a été vérifié.\nVous ne pouvez pas installer MediaWiki.",
        "config-env-php": "PHP $1 est installé.",
        "config-env-hhvm": "HHVM $1 est installé.",
-       "config-unicode-using-utf8": "Utilisation de utf8_normalize.so par Brion Vibber pour la normalisation Unicode.",
        "config-unicode-using-intl": "Utilisation de [http://pecl.php.net/intl l'extension PECL intl] pour la normalisation Unicode.",
        "config-unicode-pure-php-warning": "<strong>Attention</strong> : L'[http://pecl.php.net/intl extension PECL intl] n'est pas disponible pour la normalisation d’Unicode, retour à la version lente implémentée en PHP.\nSi votre site web sera très fréquenté, vous devriez lire ceci : [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ''Unicode normalization''] (en anglais).",
        "config-unicode-update-warning": "'''Attention''': La version installée du ''wrapper'' de normalisation Unicode utilise une vieille version de la [http://site.icu-project.org/ bibliothèque logicielle ''ICU Project''].\nVous devriez faire une [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations mise à jour] si vous êtes tout à fait concerné par l'usage d'Unicode.",
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 e85e735..c430d60 100644 (file)
@@ -55,7 +55,6 @@
        "config-env-bad": "Kondisi telah diperiksa.\nAnda tidak dapat menginstal MediaWiki.",
        "config-env-php": "PHP $1 diinstal.",
        "config-env-hhvm": "HHVM $1 telah dipasang.",
-       "config-unicode-using-utf8": "Menggunakan utf8_normalize.so Brion Vibber untuk normalisasi Unicode.",
        "config-unicode-using-intl": "Menggunakan [http://pecl.php.net/intl ekstensi PECL intl] untuk normalisasi Unicode.",
        "config-unicode-pure-php-warning": "'''Peringatan''': [http://pecl.php.net/intl Ekstensi intl PECL] untuk menangani normalisasi Unicode tidak tersedia, kembali menggunakan implementasi murni PHP yang lambat.\nJika Anda menjalankan situs berlalu lintas tinggi, Anda harus sedikit membaca [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisasi Unicode].",
        "config-unicode-update-warning": "'''Peringatan''': Versi terinstal dari pembungkus normalisasi Unicode menggunakan versi lama pustaka [http://site.icu-project.org/ proyek ICU].\nAnda harus [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations memutakhirkannya] jika Anda ingin menggunakan Unicode.",
index 26772e9..c658c5c 100644 (file)
@@ -51,7 +51,6 @@
        "config-env-bad": "Miljøet har blitt sjekket.\nDu kan installere MediaWiki.",
        "config-env-php": "PHP $1 er innstallert.",
        "config-env-hhvm": "HHVM $1 er installert.",
-       "config-unicode-using-utf8": "Bruker Brion Vibbers utf8_normalize.so for Unicode-normalisering.",
        "config-unicode-using-intl": "Bruker [http://pecl.php.net/intl intl PECL-utvidelsen] for Unicode-normalisering.",
        "config-unicode-pure-php-warning": "'''Advarsel''': [http://pecl.php.net/intl intl PECL-utvidelsen] er ikke tilgjengelig for å håndtere Unicode-normaliseringen, faller tilbake til en langsommere ren-PHP-implementasjon.\nOm du kjører et nettsted med høy trafikk bør du lese litt om [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
        "config-unicode-update-warning": "'''Advarsel''': Den installerte versjonen av Unicode-normalisereren bruker en eldre versjon av [http://site.icu-project.org/ ICU-prosjektets] bibliotek.\nDu bør [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations oppgradere] om du er bekymret for å bruke Unicode.",
index d7bd9a6..a2ab5d2 100644 (file)
@@ -59,7 +59,6 @@
        "config-env-bad": "De omgeving is gecontroleerd.\nU kunt MediaWiki niet installeren.",
        "config-env-php": "PHP $1 is op dit moment geïnstalleerd.",
        "config-env-hhvm": "HHVM $1 is geïnstalleerd.",
-       "config-unicode-using-utf8": "Voor Unicode-normalisatie wordt utf8_normalize.so van Brion Vibber gebruikt.",
        "config-unicode-using-intl": "Voor Unicode-normalisatie wordt de [http://pecl.php.net/intl PECL-extensie intl] gebruikt.",
        "config-unicode-pure-php-warning": "'''Waarschuwing''': de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.\nAls u MediaWiki voor een website met veel verkeer installeert, lees u dan in over [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicodenormalisatie].",
        "config-unicode-update-warning": "'''Waarschuwing''': de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].\nU moet [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations bijwerken] als Unicode voor u van belang is.",
index 23d3027..2275a0b 100644 (file)
@@ -4,6 +4,8 @@
                        "Ahmed-Najib-Biabani-Ibrahimkhel"
                ]
        },
+       "config-desc": "د مېډياويکي نصبونکی",
+       "config-title": "مېډياويکي $1 نصبېدنه",
        "config-information": "مالومات",
        "config-localsettings-key": "کونجۍ نومهالول:",
        "config-localsettings-badkey": "کومه کونجۍ مو چې ورکړه ناسمه ده.",
index 5ebf803..dbe651c 100644 (file)
@@ -10,7 +10,8 @@
                        "Trockya",
                        "Aşilleus",
                        "Nighteagle2000",
-                       "Sadrettin"
+                       "Sadrettin",
+                       "Captantrips"
                ]
        },
        "config-desc": "MediaWiki yükleyicisi",
@@ -80,6 +81,9 @@
        "config-db-password": "Veritabanı parolası:",
        "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-type-mysql": "MySQL (veya uyumlu)",
        "config-type-mssql": "Microsoft SQL Server",
        "config-header-mysql": "MySQL ayarları",
        "config-header-postgres": "PostgreSQL ayarları",
        "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-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-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-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-regenerate": "LocalSettings.php yi yeniden oluştur →",
        "config-show-table-status": "<code>SHOW TABLE STATUS</code>sorgu başarısız!",
+       "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-mysql-engine": "Depolama motoru:",
        "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",
index 30342aa..bf3636b 100644 (file)
@@ -50,7 +50,6 @@
        "config-env-bad": "Đã kiểm tra môi trường.\nBạn không thể cài đặt MediaWiki.",
        "config-env-php": "PHP $1 đã được cài đặt.",
        "config-env-hhvm": "HHVM $1 được cài đặt.",
-       "config-unicode-using-utf8": "Đang sử dụng utf8_normalize.so của Brion Vibber để chuẩn hóa văn bản Unicode.",
        "config-unicode-using-intl": "Sẽ sử dụng [http://pecl.php.net/intl phần mở rộng PECL intl] để chuẩn hóa Unicode.",
        "config-unicode-pure-php-warning": "<strong>Cảnh báo:</strong>  [http://pecl.php.net/intl intl PECL extension] không được phép xử lý Unicode chuẩn hóa, trả lại thực thi PHP-gốc chậm.\nNếu bạn chạy một site lưu lượng lớn, bạn phải để ý qua một chút trên  [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
        "config-unicode-update-warning": "<strong>Cảnh báo:</strong> Phiên bản cài đặt của gói Unicode chuẩn hóa sử dụng một phiên bản cũ của thư viện [http://site.icu-project.org/ the ICU project].\nBạn phải [//www.mediawiki.org/wiki/Special:MyLanguage/nâng cấp Unicode_normalization_considerations] nếu bạn quan tâm đến việc sử dụng Unicode.",
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 7df85ff..fd4234d 100644 (file)
@@ -548,35 +548,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
         *
index 320b1b1..491092a 100644 (file)
@@ -29,7 +29,6 @@
  */
 class JobQueueDB extends JobQueue {
        const CACHE_TTL_SHORT = 30; // integer; seconds to cache info without re-validating
-       const CACHE_TTL_LONG = 300; // integer; seconds to cache info that is kept up to date
        const MAX_AGE_PRUNE = 604800; // integer; seconds a job can live once claimed
        const MAX_JOB_RANDOM = 2147483647; // integer; 2^31 - 1, used for job_random
        const MAX_OFFSET = 255; // integer; maximum number of rows to skip
@@ -71,15 +70,6 @@ class JobQueueDB extends JobQueue {
         * @return bool
         */
        protected function doIsEmpty() {
-               $key = $this->getCacheKey( 'empty' );
-
-               $isEmpty = $this->cache->get( $key );
-               if ( $isEmpty === 'true' ) {
-                       return true;
-               } elseif ( $isEmpty === 'false' ) {
-                       return false;
-               }
-
                $dbr = $this->getSlaveDB();
                try {
                        $found = $dbr->selectField( // unclaimed job
@@ -88,7 +78,6 @@ class JobQueueDB extends JobQueue {
                } catch ( DBError $e ) {
                        $this->throwDBException( $e );
                }
-               $this->cache->add( $key, $found ? 'false' : 'true', self::CACHE_TTL_LONG );
 
                return !$found;
        }
@@ -272,8 +261,6 @@ class JobQueueDB extends JobQueue {
                        $dbw->commit( $method );
                }
 
-               $this->cache->set( $this->getCacheKey( 'empty' ), 'false', JobQueueDB::CACHE_TTL_LONG );
-
                return;
        }
 
@@ -282,10 +269,6 @@ class JobQueueDB extends JobQueue {
         * @return Job|bool
         */
        protected function doPop() {
-               if ( $this->cache->get( $this->getCacheKey( 'empty' ) ) === 'true' ) {
-                       return false; // queue is empty
-               }
-
                $dbw = $this->getMasterDB();
                try {
                        $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
@@ -308,7 +291,6 @@ class JobQueueDB extends JobQueue {
                                }
                                // Check if we found a row to reserve...
                                if ( !$row ) {
-                                       $this->cache->set( $this->getCacheKey( 'empty' ), 'true', self::CACHE_TTL_LONG );
                                        break; // nothing to do
                                }
                                JobQueue::incrStats( 'job-pop', $this->type );
@@ -319,6 +301,12 @@ class JobQueueDB extends JobQueue {
                                $job->metadata['id'] = $row->job_id;
                                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 );
                }
@@ -489,6 +477,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 );
                }
@@ -553,23 +543,11 @@ 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
         */
        protected function doFlushCaches() {
-               foreach ( array( 'empty', 'size', 'acquiredcount' ) as $type ) {
+               foreach ( array( 'size', 'acquiredcount' ) as $type ) {
                        $this->cache->delete( $this->getCacheKey( $type ) );
                }
        }
@@ -607,6 +585,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__ );
 
@@ -680,8 +662,6 @@ class JobQueueDB extends JobQueue {
                                        $affected = $dbw->affectedRows();
                                        $count += $affected;
                                        JobQueue::incrStats( 'job-recycle', $this->type, $affected );
-                                       // The tasks recycled jobs or release delayed jobs into the queue
-                                       $this->cache->set( $this->getCacheKey( 'empty' ), 'false', self::CACHE_TTL_LONG );
                                        $this->aggr->notifyQueueNonEmpty( $this->wiki, $this->type );
                                }
                        }
index 178ce8a..a35ab84 100644 (file)
@@ -373,27 +373,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..fdf7b87 100644 (file)
@@ -341,69 +341,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
index 275d027..7edb6ad 100644 (file)
@@ -205,7 +205,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;
@@ -389,6 +389,8 @@ LUA;
 
                                return false;
                        }
+
+                       JobQueue::incrStats( 'job-ack', $this->type );
                } catch ( RedisException $e ) {
                        $this->throwRedisException( $conn, $e );
                }
@@ -611,13 +613,6 @@ LUA;
                }
        }
 
-       /**
-        * @return array
-        */
-       protected function doGetPeriodicTasks() {
-               return array(); // managed in the runner loop
-       }
-
        /**
         * @param IJobSpecification $job
         * @return array
index 2311ea2..6bf33aa 100644 (file)
@@ -89,7 +89,7 @@ class JobRunner implements LoggerAwareInterface {
         * @return array Summary response that can easily be JSON serialized
         */
        public function run( array $options ) {
-               global $wgJobClasses;
+               global $wgJobClasses, $wgTrxProfilerLimits;
 
                $response = array( 'jobs' => array(), 'reached' => 'none-ready' );
 
@@ -103,25 +103,18 @@ 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->setExpectation( 'maxAffected', 500, __METHOD__ );
+               $trxProfiler->setExpectations( $wgTrxProfilerLimits['JobRunner'], __METHOD__ );
 
                // Bail out if there is too much DB lag.
                // This check should not block as we want to try other wiki queues.
@@ -132,6 +125,8 @@ class JobRunner implements LoggerAwareInterface {
                        return $response;
                }
 
+               $group = JobQueueGroup::singleton();
+               
                // Flush any pending DB writes for sanity
                wfGetLBFactory()->commitMasterChanges();
 
@@ -175,10 +170,11 @@ 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;
@@ -193,6 +189,7 @@ class JobRunner implements LoggerAwareInterface {
                                }
                                $timeMs = intval( ( microtime( true ) - $jobStartTime ) * 1000 );
                                $timeMsTotal += $timeMs;
+                               $profiler->scopedProfileOut( $psection );
 
                                // Mark the job as done on success or when the job cannot be retried
                                if ( $status !== false || !$job->allowRetries() ) {
@@ -452,12 +449,13 @@ class JobRunner implements LoggerAwareInterface {
                        $lb->waitForOne( $pos );
                }
 
+               $fname = __METHOD__;
                // Re-ping all masters with transactions. This throws DBError if some
                // connection died while waiting on locks/slaves, triggering a rollback.
-               wfGetLBFactory()->forEachLB( function( LoadBalancer $lb ) {
-                       $lb->forEachOpenConnection( function( DatabaseBase $conn ) {
+               wfGetLBFactory()->forEachLB( function( LoadBalancer $lb ) use ( $fname ) {
+                       $lb->forEachOpenConnection( function( DatabaseBase $conn ) use ( $fname ) {
                                if ( $conn->writesOrCallbacksPending() ) {
-                                       $conn->query( "SELECT 1" );
+                                       $conn->query( "SELECT 1", $fname );
                                }
                        } );
                } );
index 84cfd47..9ace1ba 100644 (file)
@@ -68,7 +68,7 @@ interface IJobSpecification {
  * Job queue task description base code
  *
  * Example usage:
- * <code>
+ * @code
  * $job = new JobSpecification(
  *             'null',
  *             array( 'lives' => 1, 'usleep' => 100, 'pi' => 3.141569 ),
@@ -76,7 +76,7 @@ interface IJobSpecification {
  *             Title::makeTitle( NS_SPECIAL, 'nullity' )
  * );
  * JobQueueGroup::singleton()->push( $job )
- * </code>
+ * @endcode
  *
  * @ingroup JobQueue
  * @since 1.23
@@ -97,7 +97,7 @@ class JobSpecification implements IJobSpecification {
        /**
         * @param string $type
         * @param array $params Map of key/values
-        * @param array $opts Map of key/values
+        * @param array $opts Map of key/values; includes 'removeDuplicates'
         * @param Title $title Optional descriptive title
         */
        public function __construct(
index 847dd6f..6c49646 100644 (file)
@@ -77,6 +77,7 @@ class JobQueueAggregatorRedis extends JobQueueAggregator {
                try {
                        $conn->multi( Redis::PIPELINE );
                        $conn->hSetNx( $this->getQueueTypesKey(), $type, 'enabled' );
+                       $conn->sAdd( $this->getWikiSetKey(), $wiki );
                        $conn->hSet( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ), time() );
                        $conn->exec();
 
@@ -197,6 +198,13 @@ class JobQueueAggregatorRedis extends JobQueueAggregator {
                return "jobqueue:aggregator:h-queue-types:v2"; // global
        }
 
+       /**
+        * @return string
+        */
+       private function getWikiSetKey() {
+               return "jobqueue:aggregator:s-wikis:v2"; // global
+       }
+
        /**
         * @param string $type
         * @param string $wiki
diff --git a/includes/jobqueue/jobs/ActivityUpdateJob.php b/includes/jobqueue/jobs/ActivityUpdateJob.php
new file mode 100644 (file)
index 0000000..495bda9
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ * @ingroup JobQueue
+ */
+
+/**
+ * Job for updating user activity like "last viewed" timestamps
+ *
+ * @ingroup JobQueue
+ * @since 1.26
+ */
+class ActivityUpdateJob extends Job {
+       function __construct( $title, $params ) {
+               parent::__construct( 'activityUpdateJob', $title, $params );
+
+               if ( !isset( $params['type'] ) ) {
+                       throw new InvalidArgumentException( "Missing 'type' parameter." );
+               }
+
+               $this->removeDuplicates = true;
+       }
+
+       public function run() {
+               if ( $this->params['type'] === 'updateWatchlistNotification' ) {
+                       $this->updateWatchlistNotification();
+               } else {
+                       throw new Exception( "Invalid 'type' parameter '{$this->params['type']}'." );
+               }
+
+               return true;
+       }
+
+       protected function updateWatchlistNotification() {
+               $casTimestamp = ( $this->params['notifTime'] !== null )
+                       ? $this->params['notifTime']
+                       : $this->params['curTime'];
+
+               $dbw = wfGetDB( DB_MASTER );
+               $dbw->update( 'watchlist',
+                       array(
+                               'wl_notificationtimestamp' => $dbw->timestampOrNull( $this->params['notifTime'] )
+                       ),
+                       array(
+                               'wl_user' => $this->params['userid'],
+                               'wl_namespace' => $this->title->getNamespace(),
+                               'wl_title' => $this->title->getDBkey(),
+                               // Add a "check and set" style comparison to handle conflicts.
+                               // The inequality always avoids updates when the current value
+                               // is already NULL per ANSI SQL. This is desired since NULL means
+                               // that the user is "caught up" on edits already. When the field
+                               // is non-NULL, make sure not to set it back in time or set it to
+                               // NULL when newer revisions were in fact added to the page.
+                               'wl_notificationtimestamp < ' . $dbw->addQuotes( $dbw->timestamp( $casTimestamp ) )
+                       ),
+                       __METHOD__
+               );
+       }
+}
index 46fb2aa..fdef1f5 100755 (executable)
@@ -45,8 +45,8 @@ final class EnqueueJob extends Job {
        }
 
        /**
-        * @param Job|JobSpecification|array $jobs
-        * @return JobRouteJob
+        * @param JobSpecification|JobSpecification[] $jobs
+        * @return EnqueueJob
         */
        public static function newFromLocalJobs( $jobs ) {
                $jobs = is_array( $jobs ) ? $jobs : array( $jobs );
index 1252b0b..749913a 100644 (file)
@@ -37,6 +37,8 @@
 class RefreshLinksJob extends Job {
        const PARSE_THRESHOLD_SEC = 1.0;
 
+       const CLOCK_FUDGE = 10;
+
        function __construct( $title, $params = '' ) {
                parent::__construct( 'refreshLinks', $title, $params );
                // A separate type is used just for cascade-protected backlinks
@@ -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 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 8e5c17d..16e0d4f 100644 (file)
@@ -90,9 +90,9 @@ class MultiHttpClient {
         *   - body    : HTTP response body or resource (if "stream" was set)
         *   - error     : Any cURL error string
         * The map also stores integer-indexed copies of these values. This lets callers do:
-        *      <code>
+        * @code
         *              list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $http->run( $req );
-        *  </code>
+        * @endcode
         * @param array $req HTTP request array
         * @param array $opts
         *   - connTimeout    : connection timeout per request (seconds)
@@ -114,9 +114,9 @@ class MultiHttpClient {
         *   - body    : HTTP response body or resource (if "stream" was set)
         *   - error   : Any cURL error string
         * The map also stores integer-indexed copies of these values. This lets callers do:
-        *    <code>
+        * @code
         *        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $req['response'];
-        *  </code>
+        * @endcode
         * All headers in the 'headers' field are normalized to use lower case names.
         * This is true for the request headers and the response headers. Integer-indexed
         * method/URL entries will also be changed to use the corresponding string keys.
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 16f6034..5507e9d 100644 (file)
@@ -37,10 +37,10 @@ use Psr\Log\NullLogger;
  * the PHP memcached client.
  *
  * backends for local hash array and SQL table included:
- * <code>
+ * @code
  *   $bag = new HashBagOStuff();
  *   $bag = new SqlBagOStuff(); # connect to db first
- * </code>
+ * @endcode
  *
  * @ingroup Cache
  */
diff --git a/includes/libs/objectcache/ReplicatedBagOStuff.php b/includes/libs/objectcache/ReplicatedBagOStuff.php
new file mode 100644 (file)
index 0000000..a263a3d
--- /dev/null
@@ -0,0 +1,124 @@
+<?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 Cache
+ * @author Aaron Schulz
+ */
+
+/**
+ * A cache class that directs writes to one set of servers and reads to
+ * another. This assumes that the servers used for reads are setup to slave
+ * those that writes go to. This can easily be used with redis for example.
+ *
+ * In the WAN scenario (e.g. multi-datacenter case), this is useful when
+ * writes are rare or they usually take place in the primary datacenter.
+ *
+ * @ingroup Cache
+ * @since 1.26
+ */
+class ReplicatedBagOStuff extends BagOStuff {
+       /** @var BagOStuff */
+       protected $writeStore;
+       /** @var BagOStuff */
+       protected $readStore;
+
+       /**
+        * Constructor. Parameters are:
+        *   - writeFactory : ObjectFactory::getObjectFromSpec parameters yeilding BagOStuff.
+        *                    This object will be used for writes (e.g. the master DB).
+        *   - readFactory  : ObjectFactory::getObjectFromSpec parameters yeilding BagOStuff.
+        *                    This object will be used for reads (e.g. a slave DB).
+        *
+        * @param array $params
+        * @throws InvalidArgumentException
+        */
+       public function __construct( $params ) {
+               parent::__construct( $params );
+
+               if ( !isset( $params['writeFactory'] ) ) {
+                       throw new InvalidArgumentException(
+                               __METHOD__ . ': the "writeFactory" parameter is required' );
+               } elseif ( !isset( $params['readFactory'] ) ) {
+                       throw new InvalidArgumentException(
+                               __METHOD__ . ': the "readFactory" parameter is required' );
+               }
+
+               $this->writeStore = ( $params['writeFactory'] instanceof BagOStuff )
+                       ? $params['writeFactory']
+                       : ObjectFactory::getObjectFromSpec( $params['writeFactory'] );
+               $this->readStore = ( $params['readFactory'] instanceof BagOStuff )
+                       ? $params['readFactory']
+                       : ObjectFactory::getObjectFromSpec( $params['readFactory'] );
+       }
+
+       public function setDebug( $debug ) {
+               $this->writeStore->setDebug( $debug );
+               $this->readStore->setDebug( $debug );
+       }
+
+       public function get( $key, &$casToken = null ) {
+               return $this->readStore->get( $key, $casToken );
+       }
+
+       public function getMulti( $keys ) {
+               return $this->readStore->getMulti( $keys );
+       }
+
+       public function set( $key, $value, $exptime = 0 ) {
+               return $this->writeStore->set( $key, $value, $exptime );
+       }
+
+       public function delete( $key ) {
+               return $this->writeStore->delete( $key );
+       }
+
+       public function add( $key, $value, $exptime = 0 ) {
+               return $this->writeStore->add( $key, $value, $exptime );
+       }
+
+       public function incr( $key, $value = 1 ) {
+               return $this->writeStore->incr( $key, $value );
+       }
+
+       public function decr( $key ) {
+               return $this->writeStore->decr( $key );
+       }
+
+       public function lock( $key, $timeout = 6, $expiry = 6 ) {
+               return $this->writeStore->lock( $key, $timeout, $expiry );
+       }
+
+       public function unlock( $key ) {
+               return $this->writeStore->unlock( $key );
+       }
+
+       public function merge( $key, $callback, $exptime = 0, $attempts = 10 ) {
+               return $this->writeStore->merge( $key, $callback, $exptime, $attempts );
+       }
+
+       public function getLastError() {
+               return ( $this->writeStore->getLastError() != self::ERR_NONE )
+                       ? $this->writeStore->getLastError()
+                       : $this->readStore->getLastError();
+       }
+
+       public function clearLastError() {
+               $this->writeStore->clearLastError();
+               $this->readStore->clearLastError();
+       }
+}
index 6e5cad6..6ec7e48 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;
 
@@ -263,6 +268,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 +290,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,16 +309,22 @@ 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).
         *
-        * Most callers should ignore the current value, but it can be used
+        * Usually, callbacks ignore the current value, but it can be used
         * to maintain "most recent X" values that come from time or sequence
         * based source data, provided that the "as of" id/time is tracked.
         *
-        * Usage of $checkKeys is the same as with get().
+        * Usage of $checkKeys is similar to get()/getMulti(). However,
+        * rather than the caller having to inspect a "current time left"
+        * variable (e.g. $curTTL, $curTTLs), a cache regeneration will be
+        * triggered using the callback.
         *
         * The simplest way to avoid stampedes for hot keys is to use
         * the 'lockTSE' option in $opts. If cache purges are needed, also:
@@ -320,18 +335,18 @@ class WANObjectCache {
         * the 'lowTTL' parameter.
         *
         * Example usage:
-        * <code>
+        * @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 );
         *     $value = $cache->getWithSetCallback( $key, $callback, 60, array(), $opts );
-        * </code>
+        * @endcode
         *
         * Example usage:
-        * <code>
+        * @code
         *     $key = wfMemcKey( 'cat-state', $catId );
         *     // The "check" keys that represent things the value depends on;
         *     // Calling touchCheckKey() on them invalidates "cat-state"
@@ -346,22 +361,26 @@ class WANObjectCache {
         *     // try to only let one cluster thread manage doing cache updates
         *     $opts = array( 'lockTSE' => 5, 'lowTTL' => 10 );
         *     $value = $cache->getWithSetCallback( $key, $callback, 60, $checkKeys, $opts );
-        * </code>
+        * @endcode
         *
         * @see WANObjectCache::get()
         *
         * @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
@@ -385,16 +404,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
@@ -402,22 +417,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 );
                }
 
@@ -425,7 +446,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 );
                }
@@ -572,7 +593,7 @@ class WANObjectCache {
        /**
         * @param array $keys
         * @param string $prefix
-        * @return string
+        * @return string[]
         */
        protected static function prefixCacheKeys( array $keys, $prefix ) {
                $res = array();
index e8bb38d..519da43 100644 (file)
@@ -127,9 +127,9 @@ class VirtualRESTServiceClient {
         *   - body    : HTTP response body or resource (if "stream" was set)
         *   - error   : Any cURL error string
         * The map also stores integer-indexed copies of these values. This lets callers do:
-        *      <code>
-        *              list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $client->run( $req );
-        *  </code>
+        * @code
+        *     list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $client->run( $req );
+        * @endcode
         * @param array $req Virtual HTTP request maps
         * @return array Response array for request
         */
@@ -148,9 +148,9 @@ class VirtualRESTServiceClient {
         *   - body    : HTTP response body or resource (if "stream" was set)
         *   - error   : Any cURL error string
         * The map also stores integer-indexed copies of these values. This lets callers do:
-        *    <code>
-        *        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $responses[0];
-        *  </code>
+        * @code
+        *     list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $responses[0];
+        * @endcode
         *
         * @param array $reqs Map of Virtual HTTP request maps
         * @return array $reqs Map of corresponding response values with the same keys/order
index 8b28821..dfe3136 100644 (file)
@@ -26,7 +26,7 @@
 class LogEventsList extends ContextSource {
        const NO_ACTION_LINK = 1;
        const NO_EXTRA_USER_LINKS = 2;
-       const USE_REVDEL_CHECKBOXES = 4;
+       const USE_CHECKBOXES = 4;
 
        public $flags;
 
@@ -44,7 +44,7 @@ class LogEventsList extends ContextSource {
         *   a Skin object. Use of Skin is deprecated.
         * @param null $unused Unused; used to be an OutputPage object.
         * @param int $flags Can be a combination of self::NO_ACTION_LINK,
-        *   self::NO_EXTRA_USER_LINKS or self::USE_REVDEL_CHECKBOXES.
+        *   self::NO_EXTRA_USER_LINKS or self::USE_CHECKBOXES.
         */
        public function __construct( $context, $unused = null, $flags = 0 ) {
                if ( $context instanceof IContextSource ) {
@@ -341,14 +341,27 @@ class LogEventsList extends ContextSource {
         */
        private function getShowHideLinks( $row ) {
                // We don't want to see the links and
+               if ( $this->flags == self::NO_ACTION_LINK ) {
+                       return '';
+               }
+
+               $user = $this->getUser();
+
+               // If change tag editing is available to this user, return the checkbox
+               if ( $this->flags & self::USE_CHECKBOXES && ChangeTags::showTagEditingUI( $user ) ) {
+                       return Xml::check(
+                               'showhiderevisions',
+                               false,
+                               array( 'name' => 'ids[' . $row->log_id . ']' )
+                       );
+               }
+
                // no one can hide items from the suppress log.
-               if ( ( $this->flags == self::NO_ACTION_LINK )
-                       || $row->log_type == 'suppress'
-               ) {
+               if ( $row->log_type == 'suppress' ) {
                        return '';
                }
+
                $del = '';
-               $user = $this->getUser();
                // Don't show useless checkbox to people who cannot hide log entries
                if ( $user->isAllowed( 'deletedhistory' ) ) {
                        $canHide = $user->isAllowed( 'deletelogentry' );
@@ -358,7 +371,7 @@ class LogEventsList extends ContextSource {
                        $canViewThisSuppressedEntry = $canViewSuppressedOnly && $entryIsSuppressed;
                        if ( $row->log_deleted || $canHide ) {
                                // Show checkboxes instead of links.
-                               if ( $canHide && $this->flags & self::USE_REVDEL_CHECKBOXES && !$canViewThisSuppressedEntry ) {
+                               if ( $canHide && $this->flags & self::USE_CHECKBOXES && !$canViewThisSuppressedEntry ) {
                                        // If event was hidden from sysops
                                        if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED, $user ) ) {
                                                $del = Xml::check( 'deleterevisions', false, array( 'disabled' => 'disabled' ) );
index 9c2fdd3..119492b 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' )
index bf489ab..c4ce7b3 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 );
index 5f6b965..749ef23 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
@@ -143,14 +154,6 @@ class DjVuHandler extends ImageHandler {
                $width = $params['width'];
                $height = $params['height'];
                $page = $params['page'];
-               if ( $page > $this->pageCount( $image ) ) {
-                       return new MediaTransformError(
-                               'thumbnail_error',
-                               $width,
-                               $height,
-                               wfMessage( 'djvu_page_error' )->text()
-                       );
-               }
 
                if ( $flags & self::TRANSFORM_LATER ) {
                        $params = array(
@@ -373,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 0c6b6c7..2ae5af3 100644 (file)
@@ -1604,7 +1604,7 @@ class FormatMetadata extends ContextSource {
                        // This is an API-specific function so it would be cleaner to call it from
                        // outside fetchExtendedMetadata, but this way we don't need to redo the
                        // computation on a cache hit.
-                       $this->sanitizeArrayForXml( $extendedMetadata );
+                       $this->sanitizeArrayForAPI( $extendedMetadata );
                        $valueToCache = array( 'data' => $extendedMetadata, 'timestamp' => wfTimestampNow() );
                        $wgMemc->set( $cacheKey, $valueToCache, $maxCacheTime );
                }
@@ -1800,17 +1800,16 @@ class FormatMetadata extends ContextSource {
 
        /**
         * Makes sure the given array is a valid API response fragment
-        * (can be transformed into XML)
         * @param array $arr
         */
-       protected function sanitizeArrayForXml( &$arr ) {
+       protected function sanitizeArrayForAPI( &$arr ) {
                if ( !is_array( $arr ) ) {
                        return;
                }
 
                $counter = 1;
                foreach ( $arr as $key => &$value ) {
-                       $sanitizedKey = $this->sanitizeKeyForXml( $key );
+                       $sanitizedKey = $this->sanitizeKeyForAPI( $key );
                        if ( $sanitizedKey !== $key ) {
                                if ( isset( $arr[$sanitizedKey] ) ) {
                                        // Make the sanitized keys hopefully unique.
@@ -1824,20 +1823,24 @@ class FormatMetadata extends ContextSource {
                                unset( $arr[$key] );
                        }
                        if ( is_array( $value ) ) {
-                               $this->sanitizeArrayForXml( $value );
+                               $this->sanitizeArrayForAPI( $value );
                        }
                }
+
+               // Handle API metadata keys (particularly "_type")
+               $keys = array_filter( array_keys( $arr ), 'ApiResult::isMetadataKey' );
+               if ( $keys ) {
+                       ApiResult::setPreserveKeysList( $arr, $keys );
+               }
        }
 
        /**
-        * Turns a string into a valid XML identifier.
-        * Used to ensure that keys of an associative array in the
-        * API response do not break the XML formatter.
+        * Turns a string into a valid API identifier.
         * @param string $key
         * @return string
         * @since 1.23
         */
-       protected function sanitizeKeyForXml( $key ) {
+       protected function sanitizeKeyForAPI( $key ) {
                // drop all characters which are not valid in an XML tag name
                // a bunch of non-ASCII letters would be valid but probably won't
                // be used so we take the easy way
index b505280..c2f85e8 100644 (file)
@@ -95,7 +95,7 @@ class SvgHandler extends ImageHandler {
                        $metadata = $this->unpackMetadata( $metadata );
                        if ( isset( $metadata['translations'] ) ) {
                                foreach ( $metadata['translations'] as $lang => $langType ) {
-                                       if ( $langType === SvgReader::LANG_FULL_MATCH ) {
+                                       if ( $langType === SVGReader::LANG_FULL_MATCH ) {
                                                $langList[] = $lang;
                                        }
                                }
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;
diff --git a/includes/objectcache/ReplicatedBagOStuff.php b/includes/objectcache/ReplicatedBagOStuff.php
deleted file mode 100644 (file)
index 34affc7..0000000
+++ /dev/null
@@ -1,122 +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
- * @ingroup Cache
- * @author Aaron Schulz
- */
-
-/**
- * A cache class that directs writes to one set of servers and reads to
- * another. This assumes that the servers used for reads are setup to slave
- * those that writes go to. This can easily be used with redis for example.
- *
- * In the WAN scenario (e.g. multi-datacenter case), this is useful when
- * writes are rare or they usually take place in the primary datacenter.
- *
- * @ingroup Cache
- * @since 1.25
- */
-class ReplicatedBagOStuff extends BagOStuff {
-       /** @var BagOStuff */
-       protected $mCache;
-       /** @var BagOStuff */
-       protected $sCache;
-
-       /**
-        * Constructor. Parameters are:
-        *   - masterCache : Cache parameter structures, in the style required by $wgObjectCaches.
-        *                   See the documentation of $wgObjectCaches for more detail.
-        *   - slaveCache  : Cache parameter structures, in the style required by $wgObjectCaches.
-        *                   See the documentation of $wgObjectCaches for more detail.
-        *
-        * @param array $params
-        * @throws MWException
-        */
-       public function __construct( $params ) {
-               parent::__construct( $params );
-
-               if ( !isset( $params['masterCache'] ) ) {
-                       throw new MWException( __METHOD__ . ': the "masterCache" parameter is required' );
-               } elseif ( !isset( $params['slaveCache'] ) ) {
-                       throw new MWException( __METHOD__ . ': the "slaveCache" parameter is required' );
-               }
-
-               $this->mCache = ( $params['masterCache'] instanceof BagOStuff )
-                       ? $params['masterCache']
-                       : ObjectCache::newFromParams( $params['masterCache'] );
-               $this->sCache = ( $params['slaveCache'] instanceof BagOStuff )
-                       ? $params['slaveCache']
-                       : ObjectCache::newFromParams( $params['slaveCache'] );
-       }
-
-       public function setDebug( $debug ) {
-               $this->mCache->setDebug( $debug );
-               $this->sCache->setDebug( $debug );
-       }
-
-       public function get( $key, &$casToken = null ) {
-               return $this->sCache->get( $key, $casToken );
-       }
-
-       public function getMulti( $keys ) {
-               return $this->sCache->getMulti( $keys );
-       }
-
-       public function set( $key, $value, $exptime = 0 ) {
-               return $this->mCache->set( $key, $value, $exptime );
-       }
-
-       public function delete( $key ) {
-               return $this->mCache->delete( $key );
-       }
-
-       public function add( $key, $value, $exptime = 0 ) {
-               return $this->mCache->add( $key, $value, $exptime );
-       }
-
-       public function incr( $key, $value = 1 ) {
-               return $this->mCache->incr( $key, $value );
-       }
-
-       public function decr( $key ) {
-               return $this->mCache->decr( $key );
-       }
-
-       public function lock( $key, $timeout = 6, $expiry = 6 ) {
-               return $this->mCache->lock( $key, $timeout, $expiry );
-       }
-
-       public function unlock( $key ) {
-               return $this->mCache->unlock( $key );
-       }
-
-       public function merge( $key, $callback, $exptime = 0, $attempts = 10 ) {
-               return $this->mCache->merge( $key, $callback, $exptime, $attempts );
-       }
-
-       public function getLastError() {
-               return ( $this->mCache->getLastError() != self::ERR_NONE )
-                       ? $this->mCache->getLastError()
-                       : $this->sCache->getLastError();
-       }
-
-       public function clearLastError() {
-               $this->mCache->clearLastError();
-               $this->sCache->clearLastError();
-       }
-}
index 91e9971..f6074eb 100644 (file)
@@ -1254,22 +1254,22 @@ class Article implements Page {
 
                # Show error message
                $oldid = $this->getOldID();
-               if ( $oldid ) {
-                       $text = wfMessage( 'missing-revision', $oldid )->plain();
-               } elseif ( $title->getNamespace() === NS_MEDIAWIKI ) {
-                       // Use the default message text
-                       $text = $title->getDefaultMessageText();
-               } elseif ( $title->quickUserCan( 'create', $this->getContext()->getUser() )
-                       && $title->quickUserCan( 'edit', $this->getContext()->getUser() )
-               ) {
-                       $message = $this->getContext()->getUser()->isLoggedIn() ? 'noarticletext' : 'noarticletextanon';
-                       $text = wfMessage( $message )->plain();
+               if ( !$oldid && $title->getNamespace() === NS_MEDIAWIKI ) {
+                       $outputPage->addParserOutput( $this->getContentObject()->getParserOutput( $title ) );
                } else {
-                       $text = wfMessage( 'noarticletext-nopermission' )->plain();
-               }
-               $text = "<div class='noarticletext'>\n$text\n</div>";
+                       if ( $oldid ) {
+                               $text = wfMessage( 'missing-revision', $oldid )->plain();
+                       } elseif ( $title->quickUserCan( 'create', $this->getContext()->getUser() )
+                               && $title->quickUserCan( 'edit', $this->getContext()->getUser() )
+                       ) {
+                               $message = $this->getContext()->getUser()->isLoggedIn() ? 'noarticletext' : 'noarticletextanon';
+                               $text = wfMessage( $message )->plain();
+                       } else {
+                               $text = wfMessage( 'noarticletext-nopermission' )->plain();
+                       }
 
-               $outputPage->addWikiText( $text );
+                       $outputPage->addWikiText( "<div class='noarticletext'>\n$text\n</div>" );
+               }
        }
 
        /**
@@ -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
         */
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 752565d..468f898 100644 (file)
@@ -1141,6 +1141,7 @@ class WikiPage implements Page, IDBAccessObject {
                        return;
                }
 
+               Hooks::run( 'PageViewUpdates', array( $this, $user ) );
                // Update newtalk / watchlist notification status
                try {
                        $user->clearNotification( $this->mTitle, $oldid );
@@ -2205,12 +2206,14 @@ class WikiPage implements Page, IDBAccessObject {
                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()
-                       ) );
+                       // Update the cached list of active users
+                       $jobs = array( RecentChangesUpdateJob::newCacheUpdateJob() );
+                       // Flush old entries from the `recentchanges` table
+                       if ( mt_rand( 0, 9 ) == 0 ) {
+                               $jobs[] = RecentChangesUpdateJob::newPurgeJob();
+                       }
+
+                       JobQueueGroup::singleton()->push( $jobs );
                }
 
                if ( !$this->exists() ) {
@@ -3410,13 +3413,14 @@ class WikiPage implements Page, IDBAccessObject {
 
                // Check if the last link refresh was before page_touched
                if ( $this->getLinksTimestamp() < $this->getTouched() ) {
+                       $params['isOpportunistic'] = true;
+                       $params['rootJobTimestamp'] = $parserOutput->getCacheTime();
+
                        JobQueueGroup::singleton()->push( EnqueueJob::newFromLocalJobs(
-                               new JobSpecification( 'refreshLinks', $params, array(), $this->mTitle )
+                               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 ace63a0..27de039 100644 (file)
@@ -1279,6 +1279,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
index bc8e4a6..dc8bb52 100644 (file)
@@ -57,7 +57,7 @@ class ParserCache {
        }
 
        /**
-        * @param Article $article
+        * @param WikiPage $article
         * @param string $hash
         * @return mixed|string
         */
@@ -73,7 +73,7 @@ class ParserCache {
        }
 
        /**
-        * @param Article $article
+        * @param WikiPage $article
         * @return mixed|string
         */
        protected function getOptionsKey( $article ) {
@@ -91,7 +91,7 @@ class ParserCache {
         * English preferences. That's why we take into account *all* user
         * options. (r70809 CR)
         *
-        * @param Article $article
+        * @param WikiPage $article
         * @param ParserOptions $popts
         * @return string
         */
@@ -103,7 +103,7 @@ class ParserCache {
 
        /**
         * Retrieve the ParserOutput from ParserCache, even if it's outdated.
-        * @param Article $article
+        * @param WikiPage $article
         * @param ParserOptions $popts
         * @return ParserOutput|bool False on failure
         */
@@ -126,7 +126,7 @@ class ParserCache {
         *
         * @todo Document parameter $useOutdated
         *
-        * @param Article $article
+        * @param WikiPage $article
         * @param ParserOptions $popts
         * @param bool $useOutdated (default true)
         * @return bool|mixed|string
@@ -176,7 +176,7 @@ class ParserCache {
         * Retrieve the ParserOutput from ParserCache.
         * false if not found or outdated.
         *
-        * @param Article $article
+        * @param WikiPage $article
         * @param ParserOptions $popts
         * @param bool $useOutdated (default false)
         *
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 51ae42d..7e38acc 100644 (file)
@@ -144,7 +144,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;
index 68ef668..9062251 100644 (file)
@@ -35,7 +35,7 @@ class ProfileSection {
         * the same moment that the function to be profiled terminates.
         *
         * This is typically called like:
-        * <code>$section = new ProfileSection( __METHOD__ );</code>
+        * @code$section = new ProfileSection( __METHOD__ );@endcode
         *
         * @param string $name Name of the function to profile
         */
index f02d66f..46d6119 100644 (file)
@@ -25,6 +25,7 @@
 use Psr\Log\LoggerInterface;
 use Psr\Log\LoggerAwareInterface;
 use Psr\Log\NullLogger;
+
 /**
  * Helper class that detects high-contention DB queries via profiling calls
  *
@@ -52,11 +53,13 @@ class TransactionProfiler implements LoggerAwareInterface {
        );
        /** @var array */
        protected $expect = array(
-               'writes'      => INF,
-               'queries'     => INF,
-               'conns'       => INF,
-               'masterConns' => INF,
-               'maxAffected' => INF
+               'writes'         => INF,
+               'queries'        => INF,
+               'conns'          => INF,
+               'masterConns'    => INF,
+               'maxAffected'    => INF,
+               'readQueryTime'  => INF,
+               'writeQueryTime' => INF
        );
        /** @var array */
        protected $expectBy = array();
@@ -77,7 +80,7 @@ class TransactionProfiler implements LoggerAwareInterface {
        /**
         * Set performance expectations
         *
-        * With conflicting expect, the most specific ones will be used
+        * With conflicting expectations, the most narrow ones will be used
         *
         * @param string $event (writes,queries,conns,mConns)
         * @param integer $value Maximum count of the event
@@ -93,6 +96,21 @@ class TransactionProfiler implements LoggerAwareInterface {
                }
        }
 
+       /**
+        * Set multiple performance expectations
+        *
+        * With conflicting expectations, the most narrow ones will be used
+        *
+        * @param array $expects Map of (event => limit)
+        * @param $fname
+        * @since 1.26
+        */
+       public function setExpectations( array $expects, $fname ) {
+               foreach ( $expects as $event => $value ) {
+                       $this->setExpectation( $event, $value, $fname );
+               }
+       }
+
        /**
         * Reset performance expectations and hit counters
         *
@@ -170,7 +188,8 @@ class TransactionProfiler implements LoggerAwareInterface {
                $elapsed = ( $eTime - $sTime );
 
                if ( $isWrite && $n > $this->expect['maxAffected'] ) {
-                       $this->logger->info( "Query affected $n row(s):\n" . $query . "\n" . wfBacktrace( true ) );
+                       $this->logger->info( "Query affected $n row(s):\n" . $query . "\n" .
+                               wfBacktrace( true ) );
                }
 
                // Report when too many writes/queries happen...
@@ -180,6 +199,13 @@ class TransactionProfiler implements LoggerAwareInterface {
                if ( $isWrite && $this->hits['writes']++ == $this->expect['writes'] ) {
                        $this->reportExpectationViolated( 'writes', $query );
                }
+               // Report slow queries...
+               if ( !$isWrite && $elapsed > $this->expect['readQueryTime'] ) {
+                       $this->reportExpectationViolated( 'readQueryTime', $query );
+               }
+               if ( $isWrite && $elapsed > $this->expect['writeQueryTime'] ) {
+                       $this->reportExpectationViolated( 'writeQueryTime', $query );
+               }
 
                if ( !$this->dbTrxHoldingLocks ) {
                        // Short-circuit
@@ -220,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 ) {
@@ -237,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 ) {
@@ -268,7 +303,8 @@ class TransactionProfiler implements LoggerAwareInterface {
                $n = $this->expect[$expect];
                $by = $this->expectBy[$expect];
                $this->logger->info(
-                       "[{$wgRequest->getMethod()}] Expectation ($expect <= $n) by $by not met:\n$query\n" . wfBacktrace( true )
+                       "[{$wgRequest->getMethod()}] Expectation ($expect <= $n) by $by not met:\n$query\n" .
+                       wfBacktrace( true )
                );
        }
 }
index ef6ef7c..a635793 100644 (file)
@@ -44,6 +44,7 @@ class ProfilerOutputStats extends ProfilerOutput {
                        $key = str_replace( '::', '.', $stat['name'] );
                        $key = preg_replace( '/[^a-z.]+/i', '_', $key );
                        $key = trim( $key, '_.' );
+                       $key = str_replace( array( '._', '_.' ), '.', $key );
 
                        // Convert fractional seconds to whole milliseconds
                        $cpu = round( $stat['cpu'] * 1000 );
index a5349fb..23a2993 100644 (file)
@@ -24,8 +24,8 @@ class ExtensionProcessor implements Processor {
                'ContentHandlers',
                'ConfigRegistry',
                'RateLimits',
-               'ParserTestFiles',
                'RecentChangesFlags',
+               'MediaHandlers',
                'ExtensionFunctions',
                'ExtensionEntryPointListFiles',
                'SpecialPages',
@@ -122,6 +122,7 @@ class ExtensionProcessor implements Processor {
                $this->extractMessagesDirs( $dir, $info );
                $this->extractNamespaces( $info );
                $this->extractResourceLoaderModules( $dir, $info );
+               $this->extractParserTestFiles( $dir, $info );
                if ( isset( $info['callback'] ) ) {
                        $this->callbacks[] = $info['callback'];
                        $this->processed[] = 'callback';
@@ -151,8 +152,10 @@ 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';
                }
@@ -269,6 +272,15 @@ class ExtensionProcessor implements Processor {
                }
        }
 
+       protected function extractParserTestFiles( $dir, array $info ) {
+               if ( isset( $info['ParserTestFiles'] ) ) {
+                       foreach ( $info['ParserTestFiles'] as $path ) {
+                               $this->globals['wgParserTestFiles'][] = "$dir/$path";
+                       }
+                       $this->processed[] = 'ParserTestFiles';
+               }
+       }
+
        /**
         * @param string $name
         * @param mixed $value
index 5ef3853..d938f07 100644 (file)
@@ -62,7 +62,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();
+               }
        }
 
        /**
@@ -114,6 +121,9 @@ class ExtensionRegistry {
                $autoloadClasses = array();
                foreach ( $queue as $path => $mtime ) {
                        $json = file_get_contents( $path );
+                       if ( $json === false ) {
+                               throw new Exception( "Unable to read $path, does it exist?" );
+                       }
                        $info = json_decode( $json, /* $assoc = */ true );
                        if ( !is_array( $info ) ) {
                                throw new Exception( "$path is not a valid JSON file." );
index e930fd3..391f108 100644 (file)
@@ -21,7 +21,12 @@ interface Processor {
        public function extractInfo( $path, array $info );
 
        /**
-        * @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 f8d8d2f..5df2651 100644 (file)
@@ -339,7 +339,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;
@@ -764,6 +764,9 @@ class ResourceLoader {
 
                                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;
                        }
                }
@@ -798,17 +801,17 @@ class ResourceLoader {
                }
                if ( $good ) {
                        $ts = $fileCache->cacheTimestamp();
-                       // Send content type and cache headers
-                       $this->sendResponseHeaders( $context, $ts, false );
                        // 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, $ts, 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;
                        }
                        // Remove the output buffer and output the response
                        ob_end_clean();
@@ -1003,16 +1006,6 @@ MESSAGE;
                                                // 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,
@@ -1084,8 +1077,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}" );
index a6a7d34..988bfa6 100644 (file)
@@ -314,7 +314,7 @@ class ResourceLoaderContext {
         * @return bool
         */
        public function shouldIncludeMessages() {
-               return is_null( $this->getOnly() ) || $this->getOnly() === 'messages';
+               return is_null( $this->getOnly() );
        }
 
        /**
index 7efdb26..53e0815 100644 (file)
@@ -28,6 +28,8 @@
  */
 class ResourceLoaderImageModule extends ResourceLoaderModule {
 
+       private $definition = null;
+
        /**
         * Local base path, see __construct()
         * @var string
@@ -57,6 +59,8 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         *     array(
         *         // Base path to prepend to all local paths in $options. Defaults to $IP
         *         'localBasePath' => [base path],
+        *         // Path to JSON file that contains any of the settings below
+        *         'data' => [file path string]
         *         // CSS class prefix to use in all style rules
         *         'prefix' => [CSS class prefix],
         *         // Alternatively: Format of CSS selector to use in all style rules
@@ -90,6 +94,26 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
        public function __construct( $options = array(), $localBasePath = null ) {
                $this->localBasePath = self::extractLocalBasePath( $options, $localBasePath );
 
+               $this->definition = $options;
+       }
+
+       /**
+        * Parse definition and external JSON data, if referenced.
+        */
+       private function ensureStuffLoaded() {
+               if ( $this->definition === null ) {
+                       return;
+               }
+
+               $options = $this->definition;
+               $this->definition = null;
+
+               if ( isset( $options['data'] ) ) {
+                       $dataPath = $this->localBasePath . '/' . $options['data'];
+                       $data = json_decode( file_get_contents( $dataPath ), true );
+                       $options = array_merge( $data, $options );
+               }
+
                // Accepted combinations:
                // * prefix
                // * selector
@@ -144,6 +168,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return string
         */
        public function getPrefix() {
+               $this->ensureStuffLoaded();
                return $this->prefix;
        }
 
@@ -152,6 +177,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return string
         */
        public function getSelectors() {
+               $this->ensureStuffLoaded();
                return array(
                        'selectorWithoutVariant' => $this->selectorWithoutVariant,
                        'selectorWithVariant' => $this->selectorWithVariant,
@@ -164,6 +190,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return ResourceLoaderImage|null
         */
        public function getImage( $name ) {
+               $this->ensureStuffLoaded();
                $images = $this->getImages();
                return isset( $images[$name] ) ? $images[$name] : null;
        }
@@ -174,6 +201,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         */
        public function getImages() {
                if ( !isset( $this->imageObjects ) ) {
+                       $this->ensureStuffLoaded();
                        $this->imageObjects = array();
 
                        foreach ( $this->images as $name => $options ) {
@@ -213,6 +241,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         */
        public function getGlobalVariants() {
                if ( !isset( $this->globalVariants ) ) {
+                       $this->ensureStuffLoaded();
                        $this->globalVariants = array();
 
                        if ( isset( $this->variants ) ) {
@@ -232,6 +261,8 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return array
         */
        public function getStyles( ResourceLoaderContext $context ) {
+               $this->ensureStuffLoaded();
+
                // Build CSS rules
                $rules = array();
                $script = $context->getResourceLoader()->getLoadScript( $this->getSource() );
@@ -310,6 +341,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return array
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
+               $this->ensureStuffLoaded();
                $summary = parent::getDefinitionSummary( $context );
                foreach ( array(
                        'localBasePath',
@@ -332,6 +364,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return int UNIX timestamp
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
+               $this->ensureStuffLoaded();
                $files = array();
                foreach ( $this->getImages() as $name => $image ) {
                        $files[] = $image->getPath( $context );
index d1b024f..c4041a4 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
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 5c91709..bbc59ac 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}" ) );
        }
 
        /**
index 5770276..e5ed23f 100644 (file)
@@ -33,7 +33,7 @@ class SearchEngine {
        /** @var string */
        public $prefix = '';
 
-       /** @var int[] */
+       /** @var int[]|null */
        public $namespaces = array( NS_MAIN );
 
        /** @var int */
@@ -293,7 +293,7 @@ class SearchEngine {
         * Set which namespaces the search should include.
         * Give an array of namespace index numbers.
         *
-        * @param array $namespaces
+        * @param int[]|null $namespaces
         */
        function setNamespaces( $namespaces ) {
                $this->namespaces = $namespaces;
index 223a2fe..5087e8d 100644 (file)
@@ -58,7 +58,8 @@ class SearchHighlighter {
                        3 => "/(\n\\{\\|)|(\n\\|\\})/" ); // table
 
                // @todo FIXME: This should prolly be a hook or something
-               if ( function_exists( 'wfCite' ) ) {
+               // instead of hardcoding a class name from the Cite extension
+               if ( class_exists( 'Cite' ) ) {
                        $spat .= '|(<ref>)'; // references via cite extension
                        $endPatterns[4] = '/(<ref>)|(<\/ref>)/';
                }
index 62f6ca3..169c0d8 100644 (file)
@@ -57,13 +57,13 @@ class SiteExporter {
                        'xmlns' => 'http://www.mediawiki.org/xml/sitelist-1.0/',
                );
 
-               fwrite( $this->sink, XML::openElement( 'sites', $attributes ) . "\n" );
+               fwrite( $this->sink, Xml::openElement( 'sites', $attributes ) . "\n" );
 
                foreach ( $sites as $site ) {
                        $this->exportSite( $site );
                }
 
-               fwrite( $this->sink, XML::closeElement( 'sites' ) . "\n" );
+               fwrite( $this->sink, Xml::closeElement( 'sites' ) . "\n" );
                fflush( $this->sink );
        }
 
@@ -79,36 +79,36 @@ class SiteExporter {
                        $siteAttr = null;
                }
 
-               fwrite( $this->sink, "\t" . XML::openElement( 'site', $siteAttr ) . "\n" );
+               fwrite( $this->sink, "\t" . Xml::openElement( 'site', $siteAttr ) . "\n" );
 
-               fwrite( $this->sink, "\t\t" . XML::element( 'globalid', null, $site->getGlobalId() ) . "\n" );
+               fwrite( $this->sink, "\t\t" . Xml::element( 'globalid', null, $site->getGlobalId() ) . "\n" );
 
                if ( $site->getGroup() !== Site::GROUP_NONE ) {
-                       fwrite( $this->sink, "\t\t" . XML::element( 'group', null, $site->getGroup() ) . "\n" );
+                       fwrite( $this->sink, "\t\t" . Xml::element( 'group', null, $site->getGroup() ) . "\n" );
                }
 
                if ( $site->getSource() !== Site::SOURCE_LOCAL ) {
-                       fwrite( $this->sink, "\t\t" . XML::element( 'source', null, $site->getSource() ) . "\n" );
+                       fwrite( $this->sink, "\t\t" . Xml::element( 'source', null, $site->getSource() ) . "\n" );
                }
 
                if ( $site->shouldForward() ) {
-                       fwrite( $this->sink, "\t\t" . XML::element( 'forward', null, '' ) . "\n" );
+                       fwrite( $this->sink, "\t\t" . Xml::element( 'forward', null, '' ) . "\n" );
                }
 
                foreach ( $site->getAllPaths() as $type => $path ) {
-                       fwrite( $this->sink, "\t\t" . XML::element( 'path', array( 'type' => $type ), $path ) . "\n" );
+                       fwrite( $this->sink, "\t\t" . Xml::element( 'path', array( 'type' => $type ), $path ) . "\n" );
                }
 
                foreach ( $site->getLocalIds() as $type => $ids ) {
                        foreach ( $ids as $id ) {
-                               fwrite( $this->sink, "\t\t" . XML::element( 'localid', array( 'type' => $type ), $id ) . "\n" );
+                               fwrite( $this->sink, "\t\t" . Xml::element( 'localid', array( 'type' => $type ), $id ) . "\n" );
                        }
                }
 
                //@todo: export <data>
                //@todo: export <config>
 
-               fwrite( $this->sink, "\t" . XML::closeElement( 'site' ) . "\n" );
+               fwrite( $this->sink, "\t" . Xml::closeElement( 'site' ) . "\n" );
        }
 
 }
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 61aad92..5364719 100644 (file)
@@ -422,11 +422,9 @@ class SkinTemplate extends Skin {
 
                # 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, i.e.:
-               # not for special pages or file pages AND only when viewing AND if the page exists
-               # (or is in MW namespace, because that has default content)
+               # 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' &&
-                       ( $title->exists() || $title->getNamespace() == NS_MEDIAWIKI ) ) {
+                       Action::getActionName( $this ) === 'view' ) {
                        $pageLang = $title->getPageViewLanguage();
                        $realBodyAttribs['lang'] = $pageLang->getHtmlCode();
                        $realBodyAttribs['dir'] = $pageLang->getDir();
index da752f6..92409cd 100644 (file)
@@ -252,6 +252,17 @@ abstract class QueryPage extends SpecialPage {
                return '';
        }
 
+       /**
+        * Outputs some kind of an informative message (via OutputPage) to let the
+        * user know that the query returned nothing and thus there's nothing to
+        * show.
+        *
+        * @since 1.26
+        */
+       protected function showEmptyText() {
+               $this->getOutput()->addWikiMsg( 'specialpage-empty' );
+       }
+
        /**
         * If using extra form wheely-dealies, return a set of parameters here
         * as an associative array. They will be encoded and added to the paging
@@ -546,7 +557,7 @@ abstract class QueryPage extends SpecialPage {
                        } else {
                                # No results to show, so don't bother with "showing X of Y" etc.
                                # -- just let the user know and give up now
-                               $out->addWikiMsg( 'specialpage-empty' );
+                               $this->showEmptyText();
                                $out->addHTML( Xml::closeElement( 'div' ) );
                                return;
                        }
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 5211e30..6a86af2 100644 (file)
@@ -29,7 +29,7 @@
  */
 class SpecialAllMessages extends SpecialPage {
        /**
-        * @var AllmessagesTablePager
+        * @var AllMessagesTablePager
         */
        protected $table;
 
@@ -59,9 +59,9 @@ 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->table = new AllMessagesTablePager(
                        $this,
                        array(),
                        wfGetLangObj( $request->getVal( 'lang', $par ) )
index 3f13510..323575a 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 ) {
index c2cd812..6b918e9 100644 (file)
@@ -724,7 +724,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 +748,7 @@ class ContribsPager extends ReverseChronologicalPager {
                ) );
                Hooks::run(
                        'ContribsPager::reallyDoQuery',
-                       array( &$data, $pager, $offset, $limit, $descending )
+                       array( &$data, $this, $offset, $limit, $descending )
                );
 
                $result = array();
index 9e4bbbe..387c174 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();
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 75ff8f3..0c02628 100644 (file)
@@ -121,43 +121,39 @@ 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',
-                               )
+                                       '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 );
 
                if ( $target != '' ) {
                        $this->setParams( array(
index f16e5ba..e44ce5f 100644 (file)
@@ -165,7 +165,7 @@ class SpecialLog extends SpecialPage {
                $loglist = new LogEventsList(
                        $this->getContext(),
                        null,
-                       LogEventsList::USE_REVDEL_CHECKBOXES
+                       LogEventsList::USE_CHECKBOXES
                );
                $pager = new LogPager(
                        $loglist,
@@ -218,10 +218,10 @@ class SpecialLog extends SpecialPage {
        private function getActionButtons( $formcontents ) {
                $user = $this->getUser();
                $canRevDelete = $user->isAllowedAll( 'deletedhistory', 'deletelogentry' );
-               $canModifyTags = $user->isAllowed( 'changetags' );
+               $showTagEditUI = ChangeTags::showTagEditingUI( $user );
                # If the user doesn't have the ability to delete log entries nor edit tags,
                # don't bother showing them the button(s).
-               if ( !$canRevDelete && !$canModifyTags ) {
+               if ( !$canRevDelete && !$showTagEditUI ) {
                        return $formcontents;
                }
 
@@ -246,7 +246,7 @@ class SpecialLog extends SpecialPage {
                                $this->msg( 'showhideselectedlogentries' )->text()
                        ) . "\n";
                }
-               if ( $canModifyTags ) {
+               if ( $showTagEditUI ) {
                        $buttons .= Html::element(
                                'button',
                                array(
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 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 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 62025e7..c044146 100644 (file)
@@ -368,7 +368,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;
index 608d62e..ef50fed 100644 (file)
@@ -47,7 +47,10 @@ class SpecialSearch extends SpecialPage {
        /** @var array For links */
        protected $extraParams = array();
 
-       /** @var string No idea, apparently used by some other classes */
+       /**
+        * @var string The prefix url parameter. Set on the searcher and the
+        * is expected to treat it as prefix filter on titles.
+        */
        protected $mPrefix;
 
        /**
index c3234e1..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 );
        }
 
@@ -96,14 +96,22 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
                $includesCachedPages = false;
 
                foreach ( $groups as $group => $sortedPages ) {
+                       $total = count( $sortedPages );
+                       $middle = ceil( $total / 2 );
+                       $count = 0;
 
                        $out->wrapWikiMsg(
                                "<h2 class=\"mw-specialpagesgroup\" id=\"mw-specialpagesgroup-$group\">$1</h2>\n",
                                "specialpages-group-$group"
                        );
                        $out->addHTML(
-                               Html::openElement( 'div', array( 'class' => 'mw-specialpages-list' ) )
-                               . '<ul>'
+                               Html::openElement(
+                                       'table',
+                                       array( 'style' => 'width:100%;', 'class' => 'mw-specialpages-table' )
+                               ) . "\n" .
+                               Html::openElement( 'tr' ) . "\n" .
+                               Html::openElement( 'td', array( 'style' => 'width:30%;vertical-align:top' ) ) . "\n" .
+                               Html::openElement( 'ul' ) . "\n"
                        );
                        foreach ( $sortedPages as $desc => $specialpage ) {
                                list( $title, $restricted, $cached ) = $specialpage;
@@ -124,10 +132,21 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
                                                array( 'class' => implode( ' ', $pageClasses ) ),
                                                $link
                                        ) . "\n" );
+
+                               # Split up the larger groups
+                               $count++;
+                               if ( $total > 3 && $count == $middle ) {
+                                       $out->addHTML(
+                                               Html::closeElement( 'ul' ) . Html::closeElement( 'td' ) .
+                                               Html::element( 'td', array( 'style' => 'width:10%' ), '' ) .
+                                               Html::openElement( 'td', array( 'style' => 'width:30%' ) ) . Html::openElement( 'ul' ) . "\n"
+                                       );
+                               }
                        }
                        $out->addHTML(
-                               Html::closeElement( 'ul' ) .
-                               Html::closeElement( 'div' )
+                               Html::closeElement( 'ul' ) . Html::closeElement( 'td' ) .
+                               Html::element( 'td', array( 'style' => 'width:30%' ), '' ) .
+                               Html::closeElement( 'tr' ) . Html::closeElement( 'table' ) . "\n"
                        );
                }
 
index de2365e..f2362a1 100644 (file)
@@ -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 {
index 3f1ea42..2d8f978 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();
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 9a1c5e5..620c736 100644 (file)
@@ -842,7 +842,7 @@ class SpecialVersion extends SpecialPage {
                // Finally! Create the table
                $html = Html::openElement( 'tr', array(
                                'class' => 'mw-version-ext',
-                               'id' => "mw-version-ext-{$extension['name']}"
+                               'id' => Sanitizer::escapeId( 'mw-version-ext-' . $extension['name'] )
                        )
                );
 
index a9e58b3..fb89e4f 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 /**
- * Representation of a page title within %MediaWiki.
- *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @license GPL 2+
- * @author Daniel Kinzler
  */
 
 /**
  * MalformedTitleException is thrown when a TitleParser is unable to parse a title string.
- *
- * @license GPL 2+
- * @author Daniel Kinzler
  * @since 1.23
  */
 class MalformedTitleException extends Exception {
+       private $titleText = null;
+       private $errorMessage = null;
+       private $errorMessageParameters = array();
+
+       /**
+        * @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. $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() );
+       }
+
+       /**
+        * @since 1.26
+        * @return string|null
+        */
+       public function getTitleText() {
+               return $this->titleText;
+       }
+
+       /**
+        * @since 1.26
+        * @return string|null
+        */
+       public function getErrorMessage() {
+               return $this->errorMessage;
+       }
+
+       /**
+        * @since 1.26
+        * @return string[]
+        */
+       public function getErrorMessageParameters() {
+               return $this->errorMessageParameters;
+       }
 }
index 20034b7..98cec59 100644 (file)
@@ -137,12 +137,12 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
 
                // Interwiki links are not supported by TitleValue
                if ( $parts['interwiki'] !== '' ) {
-                       throw new MalformedTitleException( 'Title must not contain an interwiki prefix: ' . $text );
+                       throw new MalformedTitleException( 'title-invalid-interwiki', $text );
                }
 
                // Relative fragment links are not supported by TitleValue
                if ( $parts['dbkey'] === '' ) {
-                       throw new MalformedTitleException( 'Title must not be empty: ' . $text );
+                       throw new MalformedTitleException( 'title-invalid-empty', $text );
                }
 
                return new TitleValue( $parts['namespace'], $parts['dbkey'], $parts['fragment'] );
@@ -232,7 +232,7 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
 
                if ( strpos( $dbkey, UtfNormal\Constants::UTF8_REPLACEMENT ) !== false ) {
                        # Contained illegal UTF-8 sequences or forbidden Unicode chars.
-                       throw new MalformedTitleException( 'Bad UTF-8 sequences found in title: ' . $text );
+                       throw new MalformedTitleException( 'title-invalid-utf8', $text );
                }
 
                $parts['dbkey'] = $dbkey;
@@ -246,7 +246,7 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
                }
 
                if ( $dbkey == '' ) {
-                       throw new MalformedTitleException( 'Empty title: ' . $text );
+                       throw new MalformedTitleException( 'title-invalid-empty', $text );
                }
 
                # Namespace or interwiki prefix
@@ -263,11 +263,11 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
                                        if ( $ns == NS_TALK && preg_match( $prefixRegexp, $dbkey, $x ) ) {
                                                if ( $this->language->getNsIndex( $x[1] ) ) {
                                                        # Disallow Talk:File:x type titles...
-                                                       throw new MalformedTitleException( 'Bad namespace prefix: ' . $text );
+                                                       throw new MalformedTitleException( 'title-invalid-talk-namespace', $text );
                                                } elseif ( Interwiki::isValidInterwiki( $x[1] ) ) {
                                                        //TODO: get rid of global state!
                                                        # Disallow Talk:Interwiki:x type titles...
-                                                       throw new MalformedTitleException( 'Interwiki prefix found in title: ' . $text );
+                                                       throw new MalformedTitleException( 'title-invalid-talk-namespace', $text );
                                                }
                                        }
                                } elseif ( Interwiki::isValidInterwiki( $p ) ) {
@@ -324,8 +324,9 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
 
                # Reject illegal characters.
                $rxTc = self::getTitleInvalidRegex();
-               if ( preg_match( $rxTc, $dbkey ) ) {
-                       throw new MalformedTitleException( 'Illegal characters found in title: ' . $text );
+               $matches = array();
+               if ( preg_match( $rxTc, $dbkey, $matches ) ) {
+                       throw new MalformedTitleException( 'title-invalid-characters', $text, array( $matches[0] ) );
                }
 
                # Pages with "/./" or "/../" appearing in the URLs will often be un-
@@ -343,23 +344,21 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
                                substr( $dbkey, -3 ) == '/..'
                        )
                ) {
-                       throw new MalformedTitleException( 'Bad title: ' . $text );
+                       throw new MalformedTitleException( 'title-invalid-relative', $text );
                }
 
                # Magic tilde sequences? Nu-uh!
                if ( strpos( $dbkey, '~~~' ) !== false ) {
-                       throw new MalformedTitleException( 'Bad title: ' . $text );
+                       throw new MalformedTitleException( 'title-invalid-magic-tilde', $text );
                }
 
                # Limit the size of titles to 255 bytes. This is typically the size of the
                # underlying database field. We make an exception for special pages, which
                # don't need to be stored in the database, and may edge over 255 bytes due
                # to subpage syntax for long titles, e.g. [[Special:Block/Long name]]
-               if (
-                       ( $parts['namespace'] != NS_SPECIAL && strlen( $dbkey ) > 255 )
-                       || strlen( $dbkey ) > 512
-               ) {
-                       throw new MalformedTitleException( 'Title too long: ' . substr( $dbkey, 0, 255 ) . '...' );
+               $maxLength = ( $parts['namespace'] != NS_SPECIAL ) ? 255 : 512;
+               if ( strlen( $dbkey ) > $maxLength ) {
+                       throw new MalformedTitleException( 'title-invalid-too-long', $text, array( $maxLength ) );
                }
 
                # Normally, all wiki links are forced to have an initial capital letter so [[foo]]
@@ -374,7 +373,7 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
                # self-links with a fragment identifier.
                if ( $dbkey == '' && $parts['interwiki'] === '' ) {
                        if ( $parts['namespace'] != NS_MAIN ) {
-                               throw new MalformedTitleException( 'Empty title: ' . $text );
+                               throw new MalformedTitleException( 'title-invalid-empty', $text );
                        }
                }
 
@@ -390,7 +389,7 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
 
                // Any remaining initial :s are illegal.
                if ( $dbkey !== '' && ':' == $dbkey[0] ) {
-                       throw new MalformedTitleException( 'Title must not start with a colon: ' . $text );
+                       throw new MalformedTitleException( 'title-invalid-leading-colon', $text );
                }
 
                # Fill fields
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 9241587..cb32357 100644 (file)
@@ -20,6 +20,7 @@
  * @file
  * @author Aaron Schulz
  */
+use Wikimedia\Assert\Assert;
 
 /**
  * Class for getting statistically unique IDs
@@ -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 fb6f0eb..88d95f2 100644 (file)
@@ -41,9 +41,9 @@
        'aa' => 'Qafár af',    # Afar
        'ab' => 'Аҧсшәа', # Abkhaz
        'ace' => 'Acèh',       # Aceh
-       'aeb' => 'تونسي/Tûnsi',   # Tunisian Arabic (multiple scripts - defaults to Arabic)
+       'aeb' => 'تونسي/Tûnsî',  # Tunisian Arabic (multiple scripts - defaults to Arabic)
        'aeb-arab' => 'تونسي',     # Tunisian Arabic (Arabic Script)
-       'aeb-latn' => 'Tûnsi', # Tunisian Arabic (Latin Script)
+       'aeb-latn' => 'Tûnsî',        # Tunisian Arabic (Latin Script)
        'af' => 'Afrikaans',    # Afrikaans
        'ak' => 'Akan',         # Akan
        'aln' => 'Gegë',       # Gheg Albanian
        'ast' => 'asturianu',   # Asturian
        'av' => 'авар',     # Avar
        'avk' => 'Kotava', # Kotava
+       '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 )
@@ -77,7 +78,6 @@
        '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 +85,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 0a96eef..5716334 100644 (file)
        "importinterwiki": "ከሌላ ዊኪ ማስገባት",
        "import-interwiki-history": "ለዚህ ገጽ የታሪክ ዕትሞች ሁሉ ለመቅዳት",
        "import-interwiki-submit": "ለማስገባት",
-       "import-interwiki-namespace": "መድረሻ ክፍለ-ዊኪ:",
        "import-upload-filename": "የፋይሉ ስም፦",
        "import-comment": "ማጠቃለያ፦",
        "importstart": "ገጾችን በማስገባት ላይ ነው...",
index 5658641..e88507f 100644 (file)
@@ -11,7 +11,8 @@
                        "Willtron",
                        "לערי ריינהארט",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Carlos Cristia"
                ]
        },
        "tog-underline": "Subrayar os vinclos:",
@@ -21,9 +22,9 @@
        "tog-extendwatchlist": "Expandir a lista de seguimiento t'amostrar totz os cambeos, no nomás os más recients.",
        "tog-usenewrc": "Zaguers cambeos con presentación amillorada (cal JavaScript)",
        "tog-numberheadings": "Numerar automaticament os encabezaus",
-       "tog-showtoolbar": "Amostrar a barra de ferramientas d'edición (cal JavaScript)",
-       "tog-editondblclick": "Activar edición de pachinas fendo-ie doble click (cal JavaScript)",
-       "tog-editsectiononrightclick": "Activar a edición de seccions punchando con o botón dreito d'o ratet <br /> en os títols de seccions (cal JavaScript)",
+       "tog-showtoolbar": "Amostrar a barra d'edición",
+       "tog-editondblclick": "Editar pachinas fendo-ie doble click",
+       "tog-editsectiononrightclick": "Activar a edición de seccions punchando con o botón dreito d'o ratet en os títols de seccions",
        "tog-watchcreations": "Cosirar as pachinas que creye",
        "tog-watchdefault": "Cosirar as pachinas que edite",
        "tog-watchmoves": "Cosirar as pachinas que treslade",
        "oct": "oct",
        "nov": "nov",
        "dec": "avi",
+       "january-date": "$1 de chinero",
+       "february-date": "$1 de febrero",
+       "march-date": "Marzo $1",
+       "april-date": "$1 de abril",
+       "may-date": "$1 de mayo",
+       "june-date": "$1 de chunio",
+       "july-date": "$1 de chulio",
+       "august-date": "$1 de agosto",
+       "september-date": "$1 de setiembre",
+       "october-date": "$1 de octubre",
+       "november-date": "$1 de noviembre",
+       "december-date": "$1 de aviento",
        "pagecategories": "{{PLURAL:$1|Categoría|Categorías}}",
        "category_header": "Articlos en a categoría \"$1\"",
        "subcategories": "Subcategorías",
        "newwindow": "(s'ubre en una nueva finestra)",
        "cancel": "Cancelar",
        "moredotdotdot": "Más...",
-       "mypage": "A mía pachina",
+       "mypage": "Pachina",
        "mytalk": "Pachina de discusión",
        "anontalk": "Pachina de descusión d'ista IP",
        "navigation": "Navego",
        "permalink": "Vinclo permanent",
        "print": "Imprentar",
        "view": "Veyer",
+       "view-foreign": "Veyer en $1",
        "edit": "Editar",
        "create": "Creyar",
        "editthispage": "Editar ista pachina",
        "disclaimers": "Alvertencias chenerals",
        "disclaimerpage": "Project:Alvertencias chenerals",
        "edithelp": "Aduya ta editar pachinas",
+       "helppage-top-gethelp": "Aduya",
        "mainpage": "Portalada",
        "mainpage-description": "Portalada",
        "policy-url": "Project:Politicas y normas",
        "hidetoc": "amagar",
        "collapsible-collapse": "Replegar",
        "collapsible-expand": "Ixamplar",
+       "confirmable-yes": "Si",
+       "confirmable-no": "No",
        "thisisdeleted": "Quiere amostrar u restaurar $1?",
        "viewdeleted": "Quiere amostrar $1?",
        "restorelink": "{{PLURAL:$1|una edición borrata|$1 edicions borratas}}",
        "nospecialpagetext": "<strong>A pachina especial que ha demandato no existe.</strong>\n\nPuede trobar una lista de pachinas especials en [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Error",
        "databaseerror": "Error d'a base de datos",
+       "databaseerror-error": "Error: $1",
        "laggedslavemode": "Pare cuenta: podrían faltar as zagueras edicions d'ista pachina.",
        "readonly": "Base de datos bloqueyata",
        "enterlockreason": "Esplique a causa d'o bloqueyo, incluyendo una estimación de quán se producirá o desbloqueyo",
        "createaccountmail": "por correu electronico",
        "createaccountreason": "Razón:",
        "createacct-imgcaptcha-ph": "Escribe o texto d'alto",
+       "createacct-submit": "Creya a tuya cuenta",
+       "createacct-another-submit": "Creya unatra cuenta",
        "createacct-benefit-body3": "{{PLURAL:$1|colaborador recient|colaboradors recients}}",
        "badretype": "As claus que ha escrito no son iguals.",
        "userexists": "O nombre d'usuario que ha escrito ya ye en uso.\nPor favor, trigue-ne uno de diferent.",
        "login-abort-generic": "A dentrada a la cuenta d'usuario ha fallato - Cancelato",
        "loginlanguagelabel": "Idioma: $1",
        "suspicious-userlogout": "S'ha denegau a suya demanda de zarrar a sesión ya que pareix que la ninvió un navegador defectuoso u bell proxy amagau.",
+       "pt-login": "Dentrar-ie",
+       "pt-createaccount": "Creyar cuenta",
        "php-mail-error-unknown": "Error desconoixito en a función mail() de PHP",
        "user-mail-no-addy": "Ha mirau de ninviar un mensache de correu sin una adreza de correu electronico.",
        "changepassword": "Cambiar a clau",
        "rcnotefrom": "Contino s'amuestran os cambeos dende '''$2''' (dica '''$1''').",
        "rclistfrom": "Amostrar cambeos recients dende $3 $2",
        "rcshowhideminor": "$1 as edicions menors",
+       "rcshowhideminor-hide": "Amagar",
        "rcshowhidebots": "$1 bots",
+       "rcshowhidebots-show": "Amostrar",
        "rcshowhideliu": "$1 usuarios rechistraus",
+       "rcshowhideliu-hide": "Amagar",
        "rcshowhideanons": "$1 usuarios anonimos",
+       "rcshowhideanons-hide": "Amagar",
        "rcshowhidepatr": "$1 edicions controlatas",
        "rcshowhidemine": "$1 as mías edicions",
+       "rcshowhidemine-hide": "Amagar",
        "rclinks": "Amostrar os zaguers $1 cambeos en os zaguers $2 días.<br />$3",
        "diff": "dif",
        "hist": "hist",
        "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:",
        "import-interwiki-history": "Copiar todas as versions de l'historial d'ista pachina",
        "import-interwiki-templates": "Incluir-ie todas as las plantillas",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Espacio de nombres de destín:",
        "import-upload-filename": "Nombre de fichero:",
        "import-comment": "Comentario:",
        "importtext": "Por favor, exporte o fichero dende o wiki d'orichen fendo servir a [[Special:Export|ferramienta d'exportación]].\nAlce-lo en o suyo ordenador y cargue-lo aquí.",
        "pageinfo-watchers": "Numero d'usuarios que la cosiran",
        "pageinfo-edits": "Numero d'edicions",
        "pageinfo-authors": "Numero d'autors diferents",
+       "pageinfo-toolboxlink": "Información d'a pachina",
        "markaspatrolleddiff": "Sinyalar como ya controlato",
        "markaspatrolledtext": "Sinyalar iste articlo como controlato",
        "markedaspatrolled": "Sinyalato como controlato",
        "logentry-patrol-patrol": "$1 marcó a edición $4 d'a pachina $3 como patrullada",
        "logentry-patrol-patrol-auto": "$1 marcó automaticament a edición $4 d'a pachina $3 como patrullada",
        "logentry-newusers-newusers": "$1 creyó una cuenta d'usuario",
-       "logentry-newusers-create": "$1 creyó una cuenta d'usuario",
+       "logentry-newusers-create": "A cuenta d'usuario $1 estió {{GENDER:$2|creyada}}",
        "logentry-newusers-create2": "$1 creyó una cuenta d'usuario $3",
        "logentry-newusers-autocreate": "S'ha creyau automaticament a cuenta $1",
        "rightsnone": "(garra)",
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 f0b1caf..e956b31 100644 (file)
        "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": "(محيت تفاصيل السجل)",
        "import-interwiki-history": "انسخ كل نسخ التاريخ لهذه الصفحة",
        "import-interwiki-templates": "ضمن كل القوالب",
        "import-interwiki-submit": "استيراد",
-       "import-interwiki-namespace": "النطاق الهدف:",
-       "import-interwiki-rootpage": "صفحة الجذر الهدف (اختياري) :",
        "import-upload-filename": "اسم الملف:",
        "import-comment": "تعليق:",
        "importtext": "من فضلك صدر الملف من الويكي المصدر باستخدام [[Special:Export|أداة التصدير]].\nاحفظها على حاسوبك ثم ارفعها هنا.",
        "tags-delete-reason": "سبب:",
        "tags-activate-submit": "تفعيل",
        "tags-deactivate-reason": "سبب",
+       "tags-edit-title": "تعديل الوسوم",
        "comparepages": "قارن صفحات",
        "compare-page1": "صفحة 1",
        "compare-page2": "صفحة 2",
index befb4b2..85f2f53 100644 (file)
        "expandtemplates": "ܐܪܘܚ ܩܠܒ̈ܐ",
        "expand_templates_output": "ܦܠܛܐ",
        "expand_templates_ok": "ܛܒ",
-       "expand_templates_preview": "ܚܝܪܐ ܩܕܡܝܐ"
+       "expand_templates_preview": "ܚܝܪܐ ܩܕܡܝܐ",
+       "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-thai": "ܛܝܠܢܕܐܝܬ",
+       "special-characters-group-lao": "ܠܐܘܐܝܬ",
+       "special-characters-group-khmer": "ܟܡܝܪܐܝܬ"
 }
index 79e12cc..48225ef 100644 (file)
        "importbadinterwiki": "wṣla dl-interwiki ĥayba",
        "import-noarticle": "ḫṫṫa ṣfḫa baċ djab!",
        "importlogpage": "sijjil dyal l'import",
-       "import-logentry-interwiki": "importé blwiki $1",
        "tooltip-pt-userpage": "Ṣ-Ṣefḫa de l-mosṫeĥdim dyalṫek",
        "tooltip-pt-mytalk": "Ṣfeḫṫek dyal n-niqaċ",
        "tooltip-pt-preferences": "Li kaṫfeddel",
index adf0eed..709e4c6 100644 (file)
        "import-interwiki-history": "انسخ كل نسخ التاريخ للصفحة دي",
        "import-interwiki-templates": "اشمل كل القوالب",
        "import-interwiki-submit": "استيراد",
-       "import-interwiki-namespace": "النطاق الهدف:",
        "import-upload-filename": "اسم الملف:",
        "import-comment": "تعليق:",
        "importtext": "لو سمحت تصدّر الملف من الويكى المصدر عن طريق [[Special:Export|خاصية التصدير]].\nاحفظه على جهازك و بعدين حمله هنا.",
        "import-invalid-interwiki": "ماينفعش تستورد من الويكى المتحدد.",
        "importlogpage": "سجل الاستيراد",
        "importlogpagetext": "استيرادات إدارية لصفحات ليها تاريخ تعديل من مواقع ويكى تانية.",
-       "import-logentry-upload": "استورد [[$1]] بواسطة تحميل ملف",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|تعديل واحد|تعديل}}",
-       "import-logentry-interwiki": "استيراد ويكى $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|تعديل واحد|تعديل}} من $2",
        "tooltip-pt-userpage": "صفحة اليوزر بتاعتك",
        "tooltip-pt-anonuserpage": "صفحة اليوزر للأيبى اللى انت بتعمل منه تحرير",
        "expand_templates_ok": "موافق",
        "expand_templates_remove_comments": "امسح التعليقات",
        "expand_templates_generate_xml": "اعرض شجرة XML",
-       "expand_templates_preview": "بروفه"
+       "expand_templates_preview": "بروفه",
+       "special-characters-group-latin": "لاتينى",
+       "special-characters-group-latinextended": "Latin extended",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-greek": "يونانى",
+       "special-characters-group-cyrillic": "كيريلى",
+       "special-characters-group-arabic": "عربى",
+       "special-characters-group-hebrew": "عبرى",
+       "special-characters-group-bangla": "بانجلاديشى",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Sinhala",
+       "special-characters-group-gujarati": "Gujarati"
 }
index 6d86b3f..1a8faf4 100644 (file)
@@ -34,6 +34,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-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": "প্ৰশাসকবৃন্দৰ লগতে আনৰ পৰাও তথ্য ৰোধ কৰক",
        "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": "ফাইল",
        "withoutinterwiki-summary": "তলৰ পৃষ্ঠাসমূহ আন ভাষাৰ সংস্কৰণৰ লগত সংযুক্ত নহয়।",
        "withoutinterwiki-legend": "উপসৰ্গ",
        "withoutinterwiki-submit": "দেখুৱাওক",
-       "fewestrevisions": "à¦\95মবাৰ সম্পাদনা কৰা পৃষ্ঠাসমূহ",
+       "fewestrevisions": "à¦\95মà¦\95à§\88 সম্পাদনা কৰা পৃষ্ঠাসমূহ",
        "nbytes": "$1 {{PLURAL:$1|বাইট|বাইট}}",
        "ncategories": "$1টা {{PLURAL:$1|শ্ৰেণী|শ্ৰেণী}}",
        "ninterwikis": "$1 {{PLURAL:$1|ইণ্টাৰৱিকি|ইণ্টাৰৱিকিসমূহ}}",
        "import-interwiki-history": "এই পৃষ্ঠাৰ সকলো সংশোধনৰ ইতিহাস প্ৰতিলিপি কৰক",
        "import-interwiki-templates": "সকলো সাঁচ অন্তৰ্ভুক্ত কৰক",
        "import-interwiki-submit": "আমদানি",
-       "import-interwiki-namespace": "গন্তব্য নামস্থান:",
-       "import-interwiki-rootpage": "গন্তব্য মূল পৃষ্ঠা (বৈকল্পিক):",
        "import-upload-filename": "নথিৰ নাম:",
        "import-comment": "মন্তব্য:",
        "importtext": "অনুগ্ৰহ কৰি [[Special:Export|ৰপ্তানি সুবিধা]] ব্যৱহাৰ কৰি উৎস ৱিকিৰ পৰা ফাইলটো ৰপ্তানি কৰক।\nআপোনাৰ কম্পিউটাৰত সাঁচি ৰাখক আৰু ইয়াত আপল'ড কৰক।",
        "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 40914c0..2d2e09a 100644 (file)
        "importinterwiki": "Transwiki koburera",
        "import-interwiki-history": "Ksudara va kot izvotsiatos ke batu bu",
        "import-interwiki-submit": "Koburera",
-       "import-interwiki-namespace": "Graskarafo yoltxo :",
        "import-upload-filename": "Iyeltakyolt :",
        "import-comment": "Sebuks :",
        "importtext": "Exportez un fichier depuis le wiki source en utilisant la fonction Special:Export, sauvez la page sur votre disque puis envoyez là ici.",
        "import-noarticle": "Me gokoburenu bu !",
        "xml-error-string": "$1 moe $2 conha, $3 briz ($4 byte): $5",
        "importlogpage": "Koburera va \"log\" bu",
-       "import-logentry-upload": "kobureyen [[$1]] kan iyeltakkalvajara",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|betaks|betaks}}",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|betaks|betaks}} male $2",
        "tooltip-pt-userpage": "Jinafu favesikbu",
index e6e4c07..c5158a4 100644 (file)
        "import-rootpage-nosubpage": "दिए गए उपसर्ग पृष्ठ \"$1\" के नामस्थान में उप-पृष्ठ नहीं बनाए जा सकते।",
        "importlogpage": "आयात सूची",
        "importlogpagetext": "अन्य विकियों से प्रबन्धकों द्वारा किए गए सम्पादन इतिहास के साथ होने वाले पृष्ठों का आयात।",
+       "import-logentry-upload-detail": "$1 अवतरण आयात {{PLURAL:$1|किया गया|किये गए}}",
+       "import-logentry-interwiki-detail": "$2 से $1 अवतरण आयात {{PLURAL:$1|किया गया|किये गए}}",
        "javascripttest": "जावास्क्रिप्ट परीक्षण",
+       "javascripttest-pagetext-noframework": "यह पृष्ठ जावास्क्रिप्ट परीक्षण चलाने के लिए है।",
        "javascripttest-pagetext-unknownframework": "अज्ञात परीक्षण ढाँचा \"$1\"",
        "javascripttest-pagetext-unknownaction": "अज्ञात काम \"$1\".",
        "javascripttest-pagetext-frameworks": "कृपया निम्न परीक्षण ढाँचों में से एक चुनें: $1",
        "tooltip-ca-protect": "इ पन्ना कय सुरक्षित करा जाय",
        "tooltip-ca-unprotect": "ई पन्ना कय सुरक्षा स्तर बदला जाय",
        "tooltip-ca-delete": "ई पन्ना मेटावा जाय",
+       "tooltip-ca-undelete": "इस पृष्ठ को हटाने से पहले किये गये बदलाव पुनर्स्थापित करें",
        "tooltip-ca-move": "ई पन्ना कय नाँव बदला जाय",
        "tooltip-ca-watch": "इ पन्ना कय अपने ध्यानसूची में डारा जाय",
        "tooltip-ca-unwatch": "इ पन्ना कय अपने ध्यानसूची से हटावा जाय",
        "pageinfo-contentpage-yes": "हाँ",
        "pageinfo-protect-cascading-yes": "हाँ",
        "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",
        "file-info-png-looped": "चक्रित",
        "file-info-png-repeat": "$1 {{PLURAL:$1|दाइ}} प्ले होइ चुका है",
        "file-info-png-frames": "$1 {{PLURAL:$1|फ्रेम}}",
+       "file-no-thumb-animation": "'''सूचना: तकनीकी समस्याओं के कारण इस फ़ाइल के थम्बनेल ऐनिमेटिड नहीं होंगे।'''",
+       "file-no-thumb-animation-gif": "'''सूचना:तकनीकी समस्याओं के कारण इस फ़ाइल जैसे अधिक रेज़ोल्यूशन गिफ़ चित्रों के थम्बनेल ऐनिमेटिड नहीं होंगे।'''",
        "newimages": "नँवा फ़ाईल्स कय गैलरी",
+       "imagelisttext": "नीचे $2 के नुसार '''$1''' {{PLURAL:$1|फ़ाईल दी है।|फ़ाईलें दी हुईं हैं।}}",
+       "newimages-summary": "यह विशेष पृष्ठ हाल ही में अपलोड की गयी फ़ाइलें दिखाता है।",
        "newimages-legend": "छनना",
        "newimages-label": "फाइल नाँव (या ओकर अंश):",
        "newimages-showbots": "बाट कय अपलोड देखावा जाय",
        "saturday-at": "शनीच्चर कय $1",
        "sunday-at": "अत्तवार कय $1",
        "yesterday-at": "कल्हीँया",
+       "bad_image_list": "प्रारूप इस प्रकार है:\n\nकेवल सूची के मद (* से शुरू होने वाली पंक्तियाँ) चुने जाएँगी।\nकिसी भी पक्ति में मौजूद पहली कड़ी, गलत संचिका की कड़ी होनी चाहिए\nउसी पंक्ति मे आगे आने वाली अन्य कड़ियों को अपवाद माना जाता है, अर्थात् ये ऐसे पृष्ठ होंगे जिनके अंदर यह संचिका जड़ी हुई है।",
        "metadata": "मेटाडाटा",
        "metadata-help": "इस फ़ाइल में बढ़ाई हुई जानकारी हैं, हो सकता है कि यह फ़ाइल बनाने में इस्तेमाल किये गए स्कैनर अथवा कैमेरा से यह प्राप्त हुई हैं। अगर यह फ़ाइल बदलदी गई है तो यह जानकारी नई फ़ाइल से मेल नहीं खाने की आशंका है।",
        "metadata-expand": "अउर विवरण देखावा जाय",
        "exif-countrycodecreated": "तस्विर खिचल देश कय कोड",
        "exif-provinceorstatecreated": "प्रांत या राज्य जहां इ चित्र लै ग रहा",
        "exif-citycreated": "शहर जहां इ चित्र लै ग रहा",
+       "exif-sublocationcreated": "यह चित्र शहर कि इस जगह जहा मे लिया गया था",
        "exif-worldregiondest": "दुनिया कय क्षेत्र देखाइ गा है",
        "exif-countrydest": "देश देखाइ गा है",
        "exif-countrycodedest": "देखावल देश कय कोड",
        "exif-fixtureidentifier": "फिक्चर कय नाम",
        "exif-locationdest": "देखावल जगह",
        "exif-locationdestcode": "देखावल जगहि कय कोड",
+       "exif-objectcycle": " दिन के समय जिसके लिए यह मीडिया है",
        "exif-contact": "संपर्क जानकारी",
        "exif-writer": "लेखक",
        "exif-languagecode": "भाषा",
        "confirmemail": "आपन ई-मेल ठहर निश्चित करा जाय",
        "confirmemail_noemail": "आप कय [[Special:Preferences|पसंद]] मा वैध इ-मेल एड्रेस नाइ दिहा है।",
        "confirmemail_text": "{{SITENAME}} मा इमेल सुविधन कय लाभ उठावे खर्तीन आप कय आपन इमेल ठहर प्रमाणित करेक परि ।कन्फर्मेशन कोड भेजय खत्तीर निचे कय बटन पे क्लिक किन जाय। मेल मा कोड वाला लिन्क है ।उ लिन्क कय आप अपने ब्राउजर मा खोलि कय आपन इमेल ठहर प्रमाणित कै सका जात है ।",
+       "confirmemail_pending": "आपको पहलेसे ही एक कन्फर्मेशन कोड भेजा गया हैं;\nअगर आपने हालमें खाता खोला हैं, तो नये कोड की माँग करने से पहले कुछ पल उसका इंतज़ार करें।",
        "confirmemail_send": "कन्फर्मेशन कोड मेल करा जाय",
        "confirmemail_sent": "कन्फर्मेशन इ-मेल भेज दिहा गा है।",
        "confirmemail_oncreate": "आप कय इ-मेल  ठहर पे एकठु कन्फर्मेशन कोड भेजा गा है।\nलॉग इन करय खत्तीर एकर आवश्यकता नाइ है, लेकिन इ विकि पे उपलब्ध इ-मेल आधारित सुविधन् कय इस्तेमाल करय खत्तीर इ देब जरूरी है।",
        "confirmemail_success": "आप कय इमेल ठहर प्रमाणित होइ गवा है । अब आप [[Special:UserLogin|लाग इन]] कैकय विकि कय मजा लै सका जात है ।",
        "confirmemail_loggedin": "आप कय इमेल ठहर प्रमाणित होइ गवा है ।",
        "confirmemail_subject": "{{SITENAME}} इ-मेल एड्रेस प्रमाणिकरण",
+       "confirmemail_body": "किसीने, शायद आपने,  $1 आइपी एड्रेस से,\n{{SITENAME}} पर  \"$2\" इस नाम से खाता खोलने की माँग की हैं।\n\nयह खाता आपही का हैं और {{SITENAME}} पर उपलब्ध इ-मेल\nसुविधा शुरू करने के लिये, नीचे दी गई कड़ी अपने ब्राउज़रमें खोलें:\n\n$3\n\nअगर यह माँग आपने *नहीं* की हैं, तो इसे रद्द करने के लिये\nनीचे दी हुई कड़ी खोलें:\n\n$5\n\nयह निश्चिती कोड $4 को समाप्त हो जायेगा।",
+       "confirmemail_body_changed": "किसी ने, शायद आपने ही, आइ॰पी पते $1 से {{SITENAME}} पर \"$2\" सदस्य खाते का ई-मेल पता बदलकर ये पता दिया है।\n\nइस बात की पुष्टि करने के लिये कि यह सदस्य खाता आपका ही है, और {{SITENAME}} पर ई-मेल सुविधाएँ पुनः शुरू करने के लिये निम्न लिंक अपने ब्राउज़र में खोलें:\n\n$3\n\nयदि यह सदस्य खाता आपका नहीं है, ई-मेल पुष्टि रद्द करने के लिये निम्न लिंक पर जाएँ:\n\n$5\n\nये पुष्टिकरण लिंक $6 को $7 बजे के बाद काम नहीं करेंगे।",
+       "confirmemail_body_set": "किसी ने, शायद आपने ही, आई॰पी पते $1 से,\n{{SITENAME}} पर \"$2\" सदस्य खाते का ई-मेल पता यह ईमेल पता निर्दिष्ट किया है।\n\nइस बात की पुष्टि करने के लिए कि यह सदस्य खाता आपका ही है,\nऔर {{SITENAME}} पर ईमेल सुविधाएँ शुरू करने के लिए निम्न लिंक अपने ब्राउज़र में खोलें:\n\n$3\n\nयदि यह सदस्य खाता आपका नहीं है, ई-मेल पुष्टि रद्द करने के लिए निम्न लिंक पर जाएँ:\n\n$5\n\nयह पुष्टिकरण लिंक $6 को $7 के बाद काम नहीं करेंगे।",
        "confirmemail_invalidated": "इ-मेल एड्रेस प्रमाणिकरण रद्द कै गय",
        "invalidateemail": "इ-मेल प्रमाणिकरण रद्द करा जाय",
        "scarytranscludedisabled": "[आंतरविकि ट्रान्स्क्लुडिंग बंद है]",
        "scarytranscludefailed-httpstatus": "[$1 कय लिये साँचा नाइ मँगाइ मिला, त्रुटि: HTTP $2]",
        "scarytranscludetoolong": "[यूआरएल बहुतय लम्मा है]",
        "deletedwhileediting": "'''Warning''':आप जबसे सम्पादन शुर करा गा है तब से इ पन्ना मिटाइ दिहा है ।",
+       "confirmrecreate": "सदस्य [[User:$1|$1]] ([[User talk:$1|वार्ता]]) ने आपके द्वारा संपादन शुरू होने के बाद यह पृष्ठ निम्नलिखित कारण देकर हटाया हैं:\n: ''$2''\nक्या आप इसे फिरसे बनाना चाहतें हैं, इसकी निश्चिती करें।",
+       "confirmrecreate-noreason": "जब आपने इस पृष्ठ का सम्पादन शुरू किया था, उसके बाद से सदस्य [[User:$1|$1]] ([[User talk:$1|talk]]) ने इसे हटा दिया है।  कृपया पुष्टि करें कि आप इस पृष्ठ को पुनः बनाना चाहते हैं।",
        "recreate": "फिरसे बनावा जाय",
        "confirm_purge_button": "ठीक है",
        "confirm-purge-top": "पन्ना कय कैश साफ करा जाय ?",
        "autoredircomment": "[[$1]] पे अनुप्रेषित",
        "autosumm-new": "'$1' कय साथे नँवा पन्ना बनावा गय",
        "autosumm-newblank": "खाली पन्ना बनावा गय",
+       "lag-warn-normal": "पिछले $1 {{PLURAL:$1|सेकिंड|सेकिंड}} में हुए बदलाव संभवतः इस सूची में नहीं आएँगे।",
+       "lag-warn-high": "आँकड़ाकोष सेवक में अधिक देर की वजह से $1 {{PLURAL:$1|सेकिंड|सेकिंड}} से पहले तक के बदलाव ही इस सूची में निश्चित रूप से दिखेंगे।",
        "watchlistedit-normal-title": "ध्यानसूची बदला जाय",
        "watchlistedit-normal-legend": "ध्यानसूची से शीर्षक हटावा जाय",
+       "watchlistedit-normal-explain": "आपकी ध्यानसूची में सूचीबद्ध पृष्ठ नीचे दिये गये हैं।\nपृष्ठ सूची से हटाने के लिये उसके आगे दिये बक्से पर क्लिक करें, और \"{{int:Watchlistedit-normal-submit}}\" पर क्लिक करें।\nआप [[Special:EditWatchlist/raw|रॉ ध्यानसूची का संपादन]] भी कर सकते हैं।",
        "watchlistedit-normal-submit": "शिर्षक हटावा जाय",
        "watchlistedit-normal-done": "आप कय ध्यानसूचीसे {{PLURAL:$1|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शीर्षक|$1 शीर्षक}} हटाइ गय:",
        "watchlistedit-clear-title": "अवलोकन सूची खाली कै गय",
        "watchlistedit-clear-legend": "अवलोकन सूची खाली कीन जाय",
+       "watchlistedit-clear-explain": "आपकी ध्यानसूची से सभी पृष्ठ हटा दिये जायेंगे",
        "watchlistedit-clear-titles": "शिर्षक",
+       "watchlistedit-clear-done": "आपकी ध्यानसूची खाली कर दी गयी है।",
+       "watchlistedit-clear-removed": "$1 पृष्ठ{{PLURAL:$1|हटाया गया|हटाये गए}}:",
+       "watchlistedit-too-many": "यहाँ दर्शाने के लिए अत्यधिक पृष्ठ हैं।",
        "watchlisttools-clear": "अवलोकन सूची खाली कीन जाय",
        "watchlisttools-view": "आधारित बदलाव देखा जाय",
        "watchlisttools-edit": "ध्यानसूची देखा जाय अव संपादित कीन जाय",
        "watchlisttools-raw": "रॉ ध्यानसूची देखा जाय अव संपादित कीन जाय",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|वार्ता]])",
+       "duplicate-defaultsort": "'''Warning:''' पुरानी मूल क्रमांकन कुंजी \"$1\" के बजाय अब मूल क्रमांकन कुंजी \"$2\" होगी।",
        "version": "संस्करण",
        "version-extensions": "इन्स्टॉल करल एक्स्टेंशन",
        "version-skins": "इन्स्टॉल करल त्वचा",
        "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-software": "इन्स्टॉल करल प्रणाली",
        "version-software-product": "प्रोडक्ट",
        "version-software-version": "संस्करण",
        "version-libraries": "इन्स्टाल करल लाइब्रेरी",
        "version-libraries-library": "लाइब्रेरी",
        "version-libraries-version": "संस्करण",
+       "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": "मूल्य:",
        "specialpages-group-developer": "डेवलपर औजार",
        "blankpage": "खाली पन्ना",
        "intentionallyblankpage": "इ पन्ना जानबुझी कय खाली छोडा है ।",
+       "external_image_whitelist": " #यह लाइन जैसी है वैसी ही छोड़ दें<pre>\n #नीचे रेगुलर एक्सप्रेशन के टुकड़े लिखें(बस वही हिस्सा जो // के बीच में आता है)\n #इन एक्सप्रेशन का बाहरी (hotlinked) छवियों के यू॰आर॰एल के साथ मिलान किया जाएगा\n #जो छवियाँ मिलान करेंगी, उन्हें प्रदर्शित किया जाएगा, अन्यथा केवल छवि की कड़ी दिखायी जाएगी\n # # से शुरू होने वाली लाइनें टिप्पणी मानी जाती हैं\n # इस केस-असंवेदी है\n\n #सब रेगुलर एक्सप्रेशन टुकड़े इस लाइन से ऊपर रखें। यह लाइन जैसी है वैसी ही छोड़ दें</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-hitcount": "$1 {{PLURAL:$1|बदलाव|बदलाव}}",
+       "tags-create-heading": "नवाँ ट्याग बनावा जाय",
+       "tags-create-tag-name": "ट्याग नाम:",
+       "tags-create-reason": "कारण:",
+       "tags-create-submit": "बनावा जाय",
+       "tags-create-no-name": "आपको एक चिप्पि का नाम निर्दिष्ट करना चाहिए।",
+       "tags-delete-title": "चिप्पि हटायें",
+       "tags-delete-reason": "कारण:",
+       "tags-activate-title": "चिप्पी शुरु करा जाय",
+       "tags-activate-reason": "कारण:",
+       "tags-activate-not-found": "चिप्पी \"$1\" मौजूद नाई है।",
+       "tags-activate-submit": "चालु करा जाय",
+       "tags-deactivate-title": "बन्द करा जाय",
+       "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-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": "अमान्य लक्ष्य अवतरण",
        "comparepages": "पन्ना दाँजा जाय",
        "compare-page1": "पन्ना १",
        "compare-page2": "पन्ना २",
        "compare-invalid-title": "आप कय दिहा शिर्षक अमान्य है ।",
        "compare-title-not-exists": "आप कय दिहा शिर्षक नाइ है ।",
        "compare-revision-not-exists": "आप कय दिहा संशोधन नाइ है ।",
+       "dberr-problems": "क्षमा करें! इस जालस्थल को कुछ तकनीकी परेशानियों का सामना करना पड़ रहा है।",
        "dberr-again": "कुछ मिन रुकि कय फिरसे लोड किन जाय",
+       "dberr-info": "(डाटाबेस से संपर्क नहीं हो पा रहा: $1)",
+       "dberr-info-hidden": "(डाटाबेस से संपर्क नहीं किया जा सका)",
        "dberr-usegoogle": "इही बिंचे आप गूगल से खोज कै सका जात है ।",
+       "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": "अउर",
        "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|प्रविष्टि|प्रविष्टियों}} की दृश्यता {{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": "सम्पादन सारांश लुकुआवा है",
        "revdelete-uname-hid": "सदस्य नाँव लुकुआवा है",
        "revdelete-restricted": "प्रबंधक पे प्रतिबंध लागू",
        "revdelete-unrestricted": "प्रबंधक कय प्रबंधन हटावा जाय",
        "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-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": "सदस्य खाता $3 $1 द्वारा {{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": "$1 के सदस्य समूह स्वतः $4 से बदलकर $5 {{GENDER:$2|किये}} गए",
        "logentry-upload-upload": "$1 {{GENDER:$2|ने}} $3 अपलोड किया",
        "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-dialog-title": "प्रतिक्रिया भेजा जाय",
+       "feedback-error-title": "त्रुटि",
+       "feedback-error1": "त्रुटि: न पहचाना गया परिणाम एपीआई से",
        "feedback-error2": "त्रुटि: संपादन विफल रहा है",
+       "feedback-error3": "त्रुटि: एपीआई से कोई प्रतिक्रिया नहीं",
        "feedback-message": "सनेशा:",
        "feedback-subject": "विषय:",
-       "feedback-submit": "प्रतिक्रिया भेजा जाय",
+       "feedback-submit": "जमा करा जाय",
+       "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 कुछ अन्य फ़ाइल] |were [$2 कुछ अन्य फ़ाइलें]}}, पहले से ही {{PLURAL:$1|यह was|they थे}} परन्तु  हटा दिये गये",
+       "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-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-timeout": "सर्वर ने अपेक्षित समय के भीतर जवाब नहीं दिया",
        "api-error-unclassified": "अज्ञात त्रुटि आइ गवा।",
        "api-error-unknown-code": "अज्ञात त्रुटि: \"$1\"",
        "api-error-unknown-error": "आंतरिक त्रुटि: आप कय फ़ाइल अपलोड प्रयास करत समय कुछ गलत होइ गवा रहा।",
        "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_generate_xml": "XML कय पार्स (parse) वृक्ष देखावा जाय",
        "expand_templates_generate_rawhtml": "सुद्ध HTML देखावा जाय",
        "expand_templates_preview": "झलक",
+       "pagelanguage": "पृष्ठ भाषा चुनाव",
        "pagelang-name": "पन्ना",
        "pagelang-language": "भाषा",
        "pagelang-use-default": "डिफ़ॉल्ट भाषा इस्तेमाल कीन जाय",
        "right-pagelang": "पन्ना कय भाषा चुना जाय",
        "action-pagelang": "पन्ना कय भाषा बदला जाय",
        "log-name-pagelang": "भाषा लाग बदला जाय",
+       "log-description-pagelang": "यह पृष्ठ भाषाओं में परिवर्तन का लॉग है।",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (सक्षम)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''अक्षम''')",
        "mediastatistics": "मीडिया कय आँकड़ा",
        "mediastatistics-header-video": "वीडियो",
        "mediastatistics-header-office": "आफिस",
        "mediastatistics-header-text": "शाब्दिक",
-       "json-error-unknown": "JSON से समस्या रहा । गल्ती: $1"
+       "json-error-unknown": "JSON से समस्या रहा । गल्ती: $1",
+       "json-error-syntax": "सिन्टॅक्स त्रुटि",
+       "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 ccd793c..6fcdcba 100644 (file)
        "errorpagetitle": "خطا",
        "returnto": "$1-ه قاییت.",
        "tagline": "{{SITENAME}} سایتیندان",
-       "help": "کؤمک",
+       "help": "یاردیم",
        "search": "آختار",
        "searchbutton": "آختار",
        "go": "گئت",
        "talkpage": "بۇ صحیفه‌نی دانیش",
        "talkpagelinktext": "دانیشیق",
        "specialpage": "اؤزل صفحه",
-       "personaltools": "شخصی آراجلار",
+       "personaltools": "شخصی آراجلار",
        "articlepage": "ایچری‌لی صحیفه‌یه باخ",
        "talk": "دانیشیق",
-       "views": "گؤرونوشلر",
-       "toolbox": "آراجلار",
+       "views": "گؤرونوشلر",
+       "toolbox": "آراجلار",
        "userpage": "ایستیفاده‌چی صحیفه‌‌سینه باخ",
        "projectpage": "پروژه صحیفه‌سینه باخ",
        "imagepage": "فایل صحیفه‌سینه باخ",
        "pool-errorunknown": "بیلینمه‌ین خطا",
        "pool-servererror": "پول سنتر سئرویسی الده دئییل ( $1 ).",
        "poolcounter-usage-error": "$1:ایشلتمک خطاسی",
-       "aboutsite": "{{SITENAME}} گؤره",
+       "aboutsite": "{{SITENAME}} گؤره",
        "aboutpage": "Project:گؤره",
        "copyright": "ایچینده‌کیلر $1 لیسانسی احاطه‌سینده‌دیلر.",
        "copyrightpage": "{{ns:project}}:کوْپی حاقلاری",
-       "currentevents": "ایندیکی اولایلار",
-       "currentevents-url": "Project:ایندیکی اولایلار",
+       "currentevents": "ایندیکی اولایلار",
+       "currentevents-url": "Project:ایندیکی اولایلار",
        "disclaimers": "یالانلامالار",
        "disclaimerpage": "Project:گنل یالانلاما",
        "edithelp": "ديَیشتیرمک یاردیمی",
        "diff-multi-otherusers": "({{PLURAL:$1|۱ میانی نوسخه لر|$1 میانی نوسخه لر}} دَییک اولونموش {{PLURAL:$2|۱ ایشلدچی|$2 ایشلدچی}}طرفیندن گوستریلمیر)",
        "diff-multi-manyusers": "{{PLURAL:$2|بیر|$2}}-دن چوخ ایستیفاده‌چی یارادان {{PLURAL:$1|بیر|$1}} نوسخه، گؤستریلمه‌ییب‌دیر",
        "difference-missing-revision": "بو فرقین ($1) {{PLURAL:$2|بیر|$2}} نوسخه‌سی تاپیلانمادی.\n\nعموماً بو خطا، سیلینن بیر صحیفه‌یه واختی گئچمیش بیر فرق باغلانتی‌سیلا گلمک ایله آرا گلر.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}سیلمک سیاهی‌سی]ندا باشقا بیلگیلر اولا بیلر.",
-       "searchresults": "آختاریش سونوجلاری",
-       "searchresults-title": "«$1» اوچون آختاریش سونوجلاری",
+       "searchresults": "آختاریش سونوجلاری",
+       "searchresults-title": "«$1» اوچون آختاریش سونوجلاری",
        "titlematches": "صحیفه‌‌ آدی عینیدیر",
        "textmatches": "یازی عینی‌دیر",
        "notextmatches": "هئچ بیر بنزر صحیفه یازی‌سی تاپیلمادی",
        "nchanges": "$1 {{PLURAL:$1|دَییشیکلیک}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|سون گوروش دن}}",
        "enhancedrc-history": "گئچمیش",
-       "recentchanges": "سون دَییشیکلیکلر",
+       "recentchanges": "سون دَییشیکلیکلر",
        "recentchanges-legend": "سون دَییشیکلیکلر سئچمه‌لری",
        "recentchanges-summary": "بو صحیفه‌ده، بو ویکی‌ده وئریلن ان سون دَییشیکلیکلری ایزله‌یین.",
        "recentchanges-noresult": "وئریلمیش دؤنم‌ده، بو معیارلارا تطبیق اولان دَییشدیرمه یوخدور.",
        "rc-old-title": "ایلک‌جه «$1» آدی‌له یارانمیشدیر",
        "recentchangeslinked": "ایلگیلی دَییشیکلیکلر",
        "recentchangeslinked-feed": "ایلگیلی دَییشیکلیکلر",
-       "recentchangeslinked-toolbox": "ایلگیلی دَییشیکلیکلر",
+       "recentchangeslinked-toolbox": "ایلگیلی دَییشیکلیکلر",
        "recentchangeslinked-title": "''$1'' ایله ایلگی‌لی دییشیکلر",
        "recentchangeslinked-summary": "آشاغیداکی سیياهی، قئيد اوْلونان صحیفه‌‌يه (و يا قئيد اوْلونان کاتئقوْرياداکی صحیفه‌‌لره) داخیلی کئچید وئرن صحیفه‌‌لرده ائدیلمیش سوْن ديَیشیکلیکلرین سیياهیسیدیر. \n[[Special:Watchlist|ایزله‌مه سیياهینیزداکی]] صحیفه‌‌لر '''قالین''' شریفتله گؤستریلمیشدیر.",
        "recentchangeslinked-page": "صفحه آدی:",
        "listusers-desc": "آزالان سیرادا سیرالا",
        "usereditcount": "$1 {{PLURAL:$1|دَییشدیرمه}}",
        "usercreated": "$1 تاریخینده، ساعات $2-ده {{GENDER:$3|یارانیب‌دیر}}",
-       "newpages": "يئنی صفحه‌‌‌لر",
+       "newpages": "يئنی صفحه‌لر",
        "newpages-username": "ایستیفاده‌چی آدی:",
        "ancientpages": "ان اسکی صحیفه‌لر",
        "move": "آدینی دَییشدیر",
        "invert": "سئچیلنی دؤندر",
        "tooltip-invert": "بو قوتونی علامتله یین تا انتخاب اولان آد فضا سینین ایچری صحیفه لری دییشیک لیک لری(و اوبیری علامتلنمیش فضالار) گیزله نه آدی",
        "tooltip-whatlinkshere-invert": "سئچیلمیش آدفضاسیندان اولان باغلانتیلاری گیزلتمک اوچون بو قوتویا نیشان قویون.",
-       "namespace_association": "عÙ\84اÙ\82Ù\87â\80\8cÙ\84Û\8c Ø¢Ø¯ Ø³Ø§Ø­Ù\87â\80\8cسی",
+       "namespace_association": "اÛ\8cÙ\84Ú¯Û\8cÙ\84Û\8c Ø¢Ø¯Ù\81ضاسی",
        "tooltip-namespace_association": "بو قوتونو علامت له ین یالنیز آد بحث فضاسی یا مرتبط اولان آد فضاسی ایله انتخاب اولا",
        "blanknamespace": "(آنا)",
        "contributions": "{{GENDER:$1|ایستیفاده‌چی}} چالیشمالاری",
        "sp-contributions-toponly": "تکجه سون نوسخه اولان دییشیکلری گؤستر",
        "sp-contributions-newonly": "یالنیز صفحه یاراتماق دَییشیکلیکلرینی گؤستر",
        "sp-contributions-submit": "آختار",
-       "whatlinkshere": "بو صفحه‌یه باغلانتیلار",
+       "whatlinkshere": "بو صفحه‌یه باغلانتیلار",
        "whatlinkshere-title": "«$1»-ه باغلانان صحیفه‌لر",
        "whatlinkshere-page": "صفحه:",
        "linkshere": "آشاغیداکی صحیفه‌لر '''[[:$1]]'''-ه باغلانیب:",
        "import-interwiki-history": "صحیفه‌نین دییشمه تاریخچه‌لری‌نین هامی‌سینی کؤچور",
        "import-interwiki-templates": "بوتون شابلون‌لارلا بیرلیکده",
        "import-interwiki-submit": "ایچری توکمه اولسون",
-       "import-interwiki-namespace": "هدف آد ساحه‌سی:",
-       "import-interwiki-rootpage": "هدف‌لنن قایناق صحیفه‌سی (ایسته‌یه باغ‌لی):",
        "import-upload-filename": "فایل آدی",
        "import-comment": "آچیخلا:",
        "importtext": "خاهیش ائدیریک فایلی [[Special:Export| خاریجه کؤچورمه کؤمک پروقرامییلا]] قایناق ویکی خاریجه کؤچورون.\nکومپوتئرینیزه یازین و بورا یوکلیین.",
        "tooltip-pt-mycontris": "سیزین چالیشمالارینیزین لیستی",
        "tooltip-pt-login": "گیریش ائتمه‌یینیز توصیه اولونور؛ اما گرکلی دئییل",
        "tooltip-pt-logout": "چیخیش",
-       "tooltip-pt-createaccount": "سیزدن دعوت اولونور ایشلدن حسابی آچیب و گیریش ائده سیز،آنجاق حساب یارتماق اختیاری دیر.",
+       "tooltip-pt-createaccount": "سیزدن دعوت اولونور ایشلدن حسابی آچیب و گیریش ائده‌سیز؛ آنجاق حساب یاراتماق ایستگه باغلی‌دیر",
        "tooltip-ca-talk": "ایچینده‌کیلره گؤره دانیشیق",
        "tooltip-ca-edit": "سیز بو صفحه‌نی دَییشدیره بیلرسینیز. لطفاً قئید ائتمه‌دن قاباق اؤن‌گؤستریش دوگمه‌سینی ایشلدین",
        "tooltip-ca-addsection": "یئنی بؤلوم یارات",
        "tooltip-ca-viewsource": "بو صحیفه‌‌ قورونوب‌دور.\nاونون قایناغینا باخا بیلرسیز",
-       "tooltip-ca-history": "بو صفحه‌نین گئچمیش سۆروملری",
+       "tooltip-ca-history": "بو صفحه‌نین گئچمیش سۆروملری",
        "tooltip-ca-protect": "بو صحیفه‌نی قورو",
        "tooltip-ca-unprotect": "بو صحیفه‌نین قوروماسینی دَییشدیر",
        "tooltip-ca-delete": "بو صحیفه‌‌نی سیل",
        "svg-long-error": "اعتبارسیز سوگ فایل: $1",
        "show-big-image": "فایلین اصلی",
        "show-big-image-preview": "سیناق گؤستریشی اؤلچوسو: $1.",
-       "show-big-image-other": "دÛ\8cگر {{PLURAL:$2|Ù\86تÛ\8cج|Ù\86تÛ\8cجÙ\87â\80\8cلر}}: $1.",
+       "show-big-image-other": "Ø¢Û\8cرÛ\8c {{PLURAL:$2|Ú©Û\8cÙ\81Û\8cت|Ú©Û\8cÙ\81Û\8cتلر}}: $1.",
        "show-big-image-size": "$1 × $2 پیکسئل",
        "file-info-gif-looped": "ایلملنیب",
        "file-info-gif-frames": "$1 {{PLURAL:$1|فرامئ|چرچیوه}}",
        "tags-delete": "سیل",
        "tags-hitcount": "$1 {{PLURAL:$1|دییشیکلیک|دییشیک‌لیک}}",
        "tags-create-submit": "یارات",
+       "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-nooldid-title": "گئچرسیز هدف نوسخه",
        "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|سیلدی}}",
        "revdelete-uname-unhid": "ایستیفاده‌چی آدی گیزلیلیک‌دن چیخدی",
        "revdelete-restricted": "ایداره‌چیلره محدودیت قویدو",
        "revdelete-unrestricted": "ایداره‌چیلرین محدودیتلرینی گؤتوردو",
+       "logentry-block-block": "$1 {{GENDER:$4|$3}}-نی {{GENDER:$2|بلوکلادی}}. قورتارماق تاریخی: $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$4|$3}}-نین {{GENDER:$2|بلوکلاماغینی قالدیردی}}",
        "logentry-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-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-create": "$1 ایشلدن حسابی {{GENDER:$2|یارادیلدی}}",
        "logentry-newusers-create2": "$1 ایستیفاده‌چی، $3 حسابی {{GENDER:$2|یاراتدی}}",
        "logentry-newusers-byemail": "$3 ایستیفاده‌چی حسابی، $1 ایله {{GENDER:$2|یارادیلیب}} و رمز، ایمیل ایله گؤندریلیب‌دیر",
        "logentry-newusers-autocreate": "$1 ایستیفاده‌چی حسابی اوتوماتیک {{GENDER:$2|یارادیلدی}}",
        "logentry-rights-autopromote": "$1-ین مقامی اوتوماتیک $4-دن $5-ه {{GENDER:$2|آرتیریلدی}}",
        "logentry-upload-upload": "$1 $3 را {{GENDER:$2|یوکلندیردی}}",
        "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": "سیزین بو ویکی‌یه فایل یوکله‌مک ایجازه‌نیز یوخدور.",
        "mediastatistics-header-audio": "سس",
        "mediastatistics-header-video": "ویدیولار",
        "mediastatistics-header-office": "دفتر",
+       "headline-anchor-title": "بو بؤلومه باغلانتی",
        "special-characters-group-latin": "لاتین",
        "special-characters-group-latinextended": "لاتین گئنیشلندیریلمیش",
        "special-characters-group-ipa": "IPA",
index a748209..dc7cfd7 100644 (file)
        "import-interwiki-history": "Был биттең бөтә үҙгәртеү тарихын яҙҙырырға",
        "import-interwiki-templates": "Бөтә ҡалыптарҙы индерергә",
        "import-interwiki-submit": "Тейәргә",
-       "import-interwiki-namespace": "Кәрәкле исемдәр арауығы:",
-       "import-interwiki-rootpage": "Төп бит (мотлаҡ түгел):",
        "import-upload-filename": "Файл исеме:",
        "import-comment": "Иҫкәрмә:",
        "importtext": "Зинһар, файлды сығанаҡ викинан [[Special:Export|махсус ҡорал]] ярҙамында сығарығыҙ. Артабан уны компьютерығыҙға һаҡлағыҙ һәм бында тейәгеҙ.",
        "import-rootpage-nosubpage": "Төп биттең \"$1\" исемдәр арауығы эске биттәргә рөхсәт бирмәй.",
        "importlogpage": "Тейәү яҙмалары журналы",
        "importlogpagetext": "Хакимдәр тарафынан башҡа вики проекттарҙан биттәрҙе һәм уларҙың үҙгәртеүҙәр тарихын тейәү.",
-       "import-logentry-upload": "[[$1]] битен файлдан тейәгән",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|1=өлгө|өлгө}}",
-       "import-logentry-interwiki": "$1 битен вики проекттары-ара тейәгән",
        "import-logentry-interwiki-detail": "$2 өлгөнән $1 {{PLURAL:$1|1=өлгө|өлгө}}",
        "javascripttest": "\nJavaScript тикшереү",
        "javascripttest-pagetext-noframework": "Был бит JavaScript тикшеренеүҙәре үткәреү өсөн  резервланған.",
        "expand_templates_remove_comments": "Аңлатмаларҙы юйырға",
        "expand_templates_remove_nowiki": "Һөҙөмтәлә <nowiki> билдәләрен йәшерергә",
        "expand_templates_generate_xml": "XML уҡыу ағасын күрһәтергә",
-       "expand_templates_preview": "Ҡарап сығыу"
+       "expand_templates_preview": "Ҡарап сығыу",
+       "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 9f05621..ad81625 100644 (file)
        "import-interwiki-history": "کپی کن کل بازبینی آن تاریح په ای صفحه",
        "import-interwiki-templates": "کل تمپلت هور بنت",
        "import-interwiki-submit": "ورود",
-       "import-interwiki-namespace": "مقصدء نام فضا",
        "import-upload-filename": "فایلءَ نام:",
        "import-comment": "نظر:",
        "importtext": "لطفا فایل چه منبع ویکی درگیز گون حاصین:[[Special:Export|وسیله درگیزگ]], ایء ته وتی دیسک ذخیره کن و ادان آپلود کن.",
index e5a69d9..71e1204 100644 (file)
        "import-interwiki-history": "Kopyahon an gabos na mga bersyón para sa páhinang ini",
        "import-interwiki-templates": "Ibali an gabos na mga panguyog",
        "import-interwiki-submit": "Ipalaog",
-       "import-interwiki-namespace": "Destinasyon kan espasyong-pangaran:",
-       "import-interwiki-rootpage": "Destinasyon kan ugat pahina (opsyonal):",
        "import-upload-filename": "Sagunsong Pangaran:",
        "import-comment": "Komento:",
        "importtext": "Paki-eksporta an sagunson gikan sa ginikanang wiki na gamit an [[Special:Export|gamiton pan-eksporta]].\nItagama ini sa saimong kompyuter asin ikarga ini digde.",
index 10ab963..748c2cf 100644 (file)
        "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 байтаў у кадаваньні UTF-8.",
+       "title-invalid-leading-colon": "Запытаная назва старонкі ўтрымлівае памылковае двукроп’е ў пачатку.",
        "perfcached": "Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі. У кэшы {{PLURAL:$1|даступны|даступныя}} ня больш за $1 {{PLURAL:$1|вынік|вынікі|вынікаў}}.",
        "perfcachedts": "Наступныя зьвесткі кэшаваныя і апошні раз былі абноўленыя $1. У кэшы {{PLURAL:$4|даступны|даступныя}} ня больш за $4 {{PLURAL:$4|вынік|вынікі|вынікаў}}.",
        "querypage-no-updates": "Абнаўленьні гэтай старонкі цяпер адключаныя. Зьвесткі ня будуць абнаўляцца.",
        "action-editcontentmodel": "рэдагаваньне мадэлі зьместу старонкі",
        "action-managechangetags": "стварэньне і выдаленьне метак з базы зьвестак",
        "action-applychangetags": "дадаваньне метак пры рэдагаваньні",
+       "action-changetags": "дадаваньне і выдаленьне адвольных метак да асобных вэрсіяў і запісаў у журнале падзеяў",
        "nchanges": "$1 {{PLURAL:$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-default": "Імпарт у месца па змоўчаньні",
+       "import-mapping-namespace": "Імпарт у прастору назваў:",
+       "import-mapping-subpage": "Імпарт у якасьці падстаронак наступнай старонкі:",
        "import-upload-filename": "Назва файла:",
        "import-comment": "Камэнтар:",
        "importtext": "Калі ласка, экспартуйце файл з крынічнай вікі з дапамогай [[Special:Export|прылады экспарту]].\nЗахавайце яго на свой кампутар, а потым загрузіце сюды.",
        "tooltip-t-contributions": "Паказаць унёсак гэтага удзельніка/гэтай удзельніцы",
        "tooltip-t-emailuser": "Даслаць ліст гэтаму ўдзельніку/гэтай удзельніцы па электроннай пошце",
        "tooltip-t-info": "Болей інфармацыі пра гэтую старонку",
-       "tooltip-t-upload": "Загрузіць файл",
+       "tooltip-t-upload": "Загрузіць файлы",
        "tooltip-t-specialpages": "Сьпіс усіх спэцыяльных старонак",
        "tooltip-t-print": "Вэрсія гэтай старонкі для друку",
        "tooltip-t-permalink": "Сталая спасылка на гэтую вэрсію старонкі",
        "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-create-invalid-title-chars": "Назвы метак ня мусяць утрымліваць сымбалі, якія нельга ўжываць у назвах старонак.",
        "tags-create-already-exists": "Метка «$1» ужо існуе.",
        "tags-create-warnings-above": "Пры спробе стварыць метку «$1» {{PLURAL:$2|выяўленае наступнае папярэджаньне|выяўленыя наступныя папярэджаньні}}:",
+       "tags-create-warnings-below": "Вы хочаце працягнуць стварэньне меткі?",
+       "tags-delete-title": "Выдаліць метку",
        "comparepages": "Параўнаньне старонак",
        "compare-page1": "Старонка 1",
        "compare-page2": "Старонка 2",
index 3b9ab74..5cabb4d 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": "Немагчыма абнавіць паказаныя звесткі, таму што зараз абнаўленні гэтай старонкі не дазволены.",
        "notloggedin": "Не ўвайшоў",
        "userlogin-noaccount": "Не маеце ўліковага запісу?",
        "userlogin-joinproject": "Далучайцеся да {{GRAMMAR:родны|{{SITENAME}}}}",
-       "nologin": "Не маеце рахунку? $1.",
+       "nologin": "Не маеце рахунка? $1.",
        "nologinlink": "Завесці рахунак",
        "createaccount": "Стварыць рахунак",
        "gotaccount": "Ужо маеце рахунак? '''$1'''.",
        "accountcreated": "Створаны рахунак",
        "accountcreatedtext": "Створаны ўліковы запіс удзельніка [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|размовы]]).",
        "createaccount-title": "Стварэнне рахунка на {{SITENAME}}",
-       "createaccount-text": "На пляцоўцы {{SITENAME}} ($4) быў створаны рахунак удзельніка з гэтым адрасам эл.пошты. Назва рахунку \"$2\", пароль \"$3\". Варта адразу ўвайсці ў сістэму і змяніць пароль.\n\nКалі стварэнне рахунку было памылковым, то на гэтае паведамленне можна не звяртаць увагі.",
+       "createaccount-text": "На пляцоўцы {{SITENAME}} ($4) быў створаны рахунак удзельніка з гэтым адрасам эл.пошты. Назва рахунка \"$2\", пароль \"$3\". Варта адразу ўвайсці ў сістэму і змяніць пароль.\n\nКалі рахунак быў створаны памылкова, то на гэтае паведамленне можна не звяртаць увагі.",
        "login-throttled": "Занадта многа нядаўніх спробаў увайсці пад гэтым уліковым запісам. \nПачакайце $1 перад тым, як спрабаваць ізноў.",
        "login-abort-generic": "Няўдалая спроба ўвайсці ў сістэму",
        "loginlanguagelabel": "Мова: $1",
        "user-mail-no-body": "Спроба даслаць ліст эл.пошты з пустым або неабгрунтавана кароткім зместам.",
        "changepassword": "Пароль",
        "resetpass_announce": "Каб завяршыць уваход у сістэму, Вы павінны ўстанавіць новы пароль.",
-       "resetpass_header": "Змяніць пароль рахунку",
+       "resetpass_header": "Змяніць пароль рахунка",
        "oldpassword": "Стары пароль:",
        "newpassword": "Новы пароль:",
        "retypenew": "Новы пароль паўторна:",
        "accmailtext": "На адрас $2 быў дасланы згенераваны пароль для [[User talk:$1|$1]]. Ён можа быць зменены на <em>[[Special:ChangePassword|старонцы змены пароля]]</em> пасля ўваходу ў сістэму.",
        "newarticle": "(Новы)",
        "newarticletext": "Вы перайшлі да старонкі, якой яшчэ няма, і таму трапілі сюды. \nКаб пачаць новую старонку, пішыце яе тэкст у ніжэйпаказаным акне рэдагавання (падрабязнасці бач у [$1 даведцы]). \nКалі вы тут выпадкова, проста націсніце <strong>назад</strong> у браўзеры.",
-       "anontalkpagetext": "----''Гэта старонка размовы з ананімным удзельнікам, які або не мае свайго рахунку, або ім не карыстаўся. Таму дзеля яго ці яе ідэнтыфікацыі мы мусім выкарыстаць лічбавы Адрас IP. Такі адрас IP могуць дзяліць між сабою некалькі асоб. Калі вы ананімны ўдзельнік, і лічыце, што атрымліваеце няслушныя заўвагі,[[Special:UserLogin/signup|стварыце рахунак]] або [[Special:UserLogin|акажыцеся]], каб вас больш не блыталі з іншымі ананімнымі ўдзельнікамі.''",
+       "anontalkpagetext": "----''Гэта старонка размовы з ананімным удзельнікам, які або не мае свайго рахунка, або ім не карыстаўся. Таму дзеля яго ці яе ідэнтыфікацыі мы мусім выкарыстаць лічбавы IP-адрас. Такі адрас IP могуць дзяліць між сабою некалькі асоб. Калі вы ананімны ўдзельнік, і лічыце, што атрымліваеце няслушныя заўвагі,[[Special:UserLogin/signup|стварыце рахунак]] або [[Special:UserLogin|зайдзіце ў сістэму]], каб вас больш не блыталі з іншымі ананімнымі ўдзельнікамі.''",
        "noarticletext": "Старонка не ўтрымлівае тэксту. Вы можаце [[Special:Search/{{PAGENAME}}|пашукаць гэткую назву]] ў іншых старонках ці <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ў журналах],\nабо [{{fullurl:{{FULLPAGENAME}}|action=edit}} папрацаваць з гэтай старонкай]</span>.",
        "noarticletext-nopermission": "Старонка не ўтрымлівае тэксту.\nВы можаце [[Special:Search/{{PAGENAME}}|пашукаць гэткую назву]] ў іншых старонках,\nці <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ў журналах]</span>, але вы не маеце дазволу на стварэнне гэтай старонкі.",
        "missing-revision": "Няма версіі #$1 у старонкі з назвай \"{{FULLPAGENAME}}\".\n\nЗвычайна такое здараецца, калі прайсці па састарэлай спасылцы з гісторыі на старонку, якая была сцёрта.\nПадрабязнасці можна пабачыць у [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале сціранняў].",
        "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}}}} журнале ўтойвання].",
        "expiringblock": "канчаецца $1 $2",
        "anononlyblock": "толькі ананімы",
        "noautoblockblock": "аўтаблок не дазволены",
-       "createaccountblock": "стварэнне рахунку заблакавана",
+       "createaccountblock": "стварэнне рахунка заблакавана",
        "emailblock": "эл.пошта заблакавана",
        "blocklist-nousertalk": "не мае дазволу правіць уласную старонку размоў",
        "ipblocklist-empty": "Спіс блокаў зараз пусты.",
        "blocklogtext": "Журнал пастаноўкі і зняцця блокаў. Аўтаматычна блакаваныя адрасы IP тут не паказваюцца. Спіс актуальных забарон і блокаў бач у [[Special:BlockList|спісе блокаў]].",
        "unblocklogentry": "зняты блок з $1",
        "block-log-flags-anononly": "толькі ананімныя ўдзельнікі",
-       "block-log-flags-nocreate": "стварэнне рахунку не дазволена",
+       "block-log-flags-nocreate": "стварэнне рахунка не дазволена",
        "block-log-flags-noautoblock": "аўта-блок не дазволены",
        "block-log-flags-noemail": "пастаўлены блок на эл.пошту",
        "block-log-flags-nousertalk": "нельга правіць уласную размову",
        "confirmemail_loggedin": "Зараз ваш адрас эл.пошты стаўся пацверджаным.",
        "confirmemail_subject": "Пацверджанне адрасу эл.пошты для {{SITENAME}}",
        "confirmemail_body": "Нехта (магчыма, што і вы — з адрасу IP $1) завёў рахунак \"$2\" на пляцоўцы {{SITENAME}}, паказваючы гэты адрас эл.пошты як свой.\n\nДзеля таго, каб пацвердзіць, што рахунак сапраўды ваш, і каб актываваць магчымасці эл.пошты для {{SITENAME}}, адкрыйце ў браўзеры гэтую спасылку:\n\n$3\n\nКалі гэта *былі не вы*, не адкрывайце той спасылкі, а адкрыйце гэтую, каб згасіць пацверджанне адрасу эл.пошты:\n\n$5\n\nГэты пацвярджальны код згасне $4.",
-       "confirmemail_body_changed": "Нехта з IP-адрасу \"$1\" (магчыма, што Вы) змяніў адрас эл.пошты для рахунку \"$2\" на пляцоўцы {{SITENAME}}.\n\nКаб пацвердзіць, што рахунак сапраўды належыць вам, і каб ізноў уключыць працу з эл.поштай для рахунку на пляцоўцы {{SITENAME}}, адкрыйце гэтую спасылку ў браўзеры:\n\n$3\n\nКалі рахунак вам *не належыць*, адкрыйце ніжэй паказаную спасылку, каб адмовіцца ад пацверджання адрасу эл.пошты:\n\n$5\n\nГэты квіток на пацверджанне будзе дзейсны не далей за $4.",
+       "confirmemail_body_changed": "Нехта з IP-адраса \"$1\" (магчыма, што Вы) змяніў адрас эл.пошты для рахунка \"$2\" на пляцоўцы {{SITENAME}}.\n\nКаб пацвердзіць, што рахунак сапраўды належыць вам, і каб ізноў уключыць працу з эл.поштай для рахунка на пляцоўцы {{SITENAME}}, адкрыйце гэтую спасылку ў браўзеры:\n\n$3\n\nКалі рахунак вам *не належыць*, адкрыйце ніжэй паказаную спасылку, каб адмовіцца ад пацвярджэння адраса эл.пошты:\n\n$5\n\nГэты код пацвярджэння сапраўдны да $4.",
        "confirmemail_body_set": "Нехта (магчыма, вы) з IP-адрасам $1\nпаказаў дадзены адрас электроннай пошты для ўліковага запісу «$2» у праекце {{SITENAME}}.\n\nКаб пацвердзіць, што акаўнт сапраўды належыць вам, і ўключыць магчымасць адпраўкі лістоў з сайта {{SITENAME}}, адкрыйце гэтую спасылку ў браўзеры:\n\n$3\n\nКалі рахунак вам *не належыць*, адкрыйце ніжэй паказаную спасылку, каб адмовіцца ад пацверджання адрасу эл.пошты:\n\n$5\n\nКод пацверджання дзейсны да $4.",
        "confirmemail_invalidated": "Пацверджанне эл.пошты скасаванае",
        "invalidateemail": "Адмовіцца ад пацверджання эл.пошты",
        "revdelete-uname-unhid": "імя ўдзельніка адкрыта",
        "revdelete-restricted": "пастаўленыя абмежаванні на адміністратараў",
        "revdelete-unrestricted": "знятыя абмежаванні з адміністратараў",
+       "logentry-block-block": "$1 заблакірава{{GENDER:$2|ў|ла}} {{GENDER:$4|$3}} на перыяд $5 $6",
+       "logentry-block-reblock": "$1 {{GENDER:$2|памяняў|памяняла}} настройкі блакіроўкі {{GENDER:$4|$3}} на перыяд $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|памяняў|памяняла}} параметры блакіроўкі {{GENDER:$4|$3}} на перыяд $5 $6",
        "logentry-move-move": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4, не пакінуўшы перасылкі",
        "logentry-move-move_redir": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4 па-над перасылкаю",
index ea997d2..74961b5 100644 (file)
        "disclaimers": "Предупреждение",
        "disclaimerpage": "Project:Предупреждение",
        "edithelp": "Помощ при редактиране",
+       "helppage-top-gethelp": "Помощ",
        "mainpage": "Начална страница",
        "mainpage-description": "Начална страница",
        "policy-url": "Project:Политика",
        "ns-specialprotected": "Специалните страници не могат да бъдат редактирани.",
        "titleprotected": "Тази страница е била защитена срещу създаване от [[User:$1|$1]].\nПосочената причина е ''$2''.",
        "filereadonlyerror": "Файлът „$1“ не може да бъде променен, тъй като файловото хранилище „$2“ е в режим само за четене.\n\nАдминистраторът, който го е заключил, е посочил следната причина: „$3“.",
-       "invalidtitle-knownnamespace": "Невалидно заглавие с именно пространство $2\" и текст \"$3\"",
+       "invalidtitle-knownnamespace": "Невалидно заглавие с именно пространство „$2“ и текст „$3“",
        "invalidtitle-unknownnamespace": "Невалидно заглавие с неразпознато именно пространство номер $1 и текст „$2“",
        "exception-nologin": "Не сте влезли в системата",
        "exception-nologin-text": "За достъп до избраното действие или страница е необходимо влизане в системата.",
        "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": "Страницата съдържа шаблонни повиквания, които използват повтарящи се аргументи, като например <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Внимание: Тази страница прекалено много пъти използва ресурсоемки парсерни функции.\n\nВ момента има {{PLURAL:$1|$1 обръщение|$1 обръщения}} към такива функции, а трябва да {{PLURAL:$1|е|са}} по-малко от $2.",
        "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": "Редактиране на списъка за наблюдение",
+       "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-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Ако съществуващият файл представлява оригиналната версия на картинката, няма нужда да се качва неин умален вариант.",
        "backend-fail-notexists": "Файлът $1 не съществува.",
        "backend-fail-delete": "Файлът $1 не може да бъде изтрит.",
        "backend-fail-alreadyexists": "Файлът $1 вече съществува.",
-       "backend-fail-store": "Файлът $1 не може да бъде съхранен в $2.",
+       "backend-fail-store": "Файлът „$1“ не може да бъде съхранен в „$2“.",
        "backend-fail-copy": "Файлът „$1“ не можа да бъде копиран в „$2“.",
        "backend-fail-move": "Файлът „$1“ не можа да бъде преместен в „$2“.",
        "backend-fail-opentemp": "Временният файл не може да бъде отворен.",
        "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": "Обновяване на списъка с файлове",
        "img-auth-accessdenied": "Достъпът е отказан",
        "img-auth-nopathinfo": "Липсва PATH_INFO.\nВашият сървър не е конфигуриран да предава тази информация.\nТой може да е базиран на CGI и да не може да поддържа img_auth.\nВижте https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
        "img-auth-notindir": "Търсеният път не е в настроената директория за качвания.",
-       "img-auth-badtitle": "Грешка при изграждането на валидно заглавие от \"$1\".",
+       "img-auth-badtitle": "Грешка при изграждането на валидно заглавие от „$1“.",
        "img-auth-nologinnWL": "Не сте влезли в системата и „$1“ не е в белия списък.",
        "img-auth-nofile": "Файлът „$1“ не съществува.",
        "img-auth-isdir": "Опитвате се да осъществите достъп до директорията „$1“.\nРазрешен е само достъп до файловете.",
        "img-auth-public": "Функцията img_auth.php е да извлича файлове от частни уикита.\nТова уики е конфигурирано като публично.\nС цел оптимална сигурност, функцията img_auth.php е деактивирана.",
        "img-auth-noread": "Потребителят няма достъп за четене на „$1“.",
        "http-invalid-url": "Невалиден адрес: $1",
-       "http-invalid-scheme": "Не се поддържат URL адреси с префикс \"$1\".",
+       "http-invalid-scheme": "Не се поддържат URL адреси с префикс „$1“.",
        "http-request-error": "HTTP заявката пропадна поради неизвестна грешка.",
        "http-read-error": "HTTP грешка при четене.",
        "http-timed-out": "Пресрочено време за HTTP заявка.",
        "license-header": "Лицензиране",
        "nolicense": "Нищо не е избрано",
        "license-nopreview": "(Не е наличен предварителен преглед)",
-       "upload_source_url": " (правилен, публично достъпен интернет-адрес)",
-       "upload_source_file": " (файл на вашия компютър)",
+       "upload_source_url": "(избраният от вас файл от валиден, публично достъпен интернет-адрес)",
+       "upload_source_file": "(файл на вашия компютър)",
        "listfiles-delete": "изтриване",
        "listfiles-summary": "Тази специална страница показва всички качени файлове.",
        "listfiles_search_for": "Търсене по име на файла:",
+       "listfiles-userdoesnotexist": "Няма регистрирана потребителска сметка за „$1“.",
        "imgfile": "файл",
        "listfiles": "Списък на файловете",
        "listfiles_thumb": "Миникартинка",
        "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": "Следните пренасочващи страници сочат към несъществуващи страници:",
        "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|страница|страници}}",
        "wantedtemplates": "Желани шаблони",
        "mostlinked": "Най-препращани страници",
        "mostlinkedcategories": "Най-препращани категории",
-       "mostlinkedtemplates": "Ð\9dай-пÑ\80епÑ\80аÑ\89ани шаблони",
+       "mostlinkedtemplates": "Ð\9dай-използвани шаблони",
        "mostcategories": "Страници с най-много категории",
        "mostimages": "Най-препращани картинки",
        "mostinterwikis": "Страници с най-много междууикита",
        "pager-older-n": "{{PLURAL:$1|по-стара 1|по-стари $1}}",
        "suppress": "Премахване от публичния архив",
        "querypage-disabled": "Тази специална страница е изключена, защото затруднява производителността на уикито.",
+       "apihelp-no-such-module": "Модул \"$1\" не беше намерен.",
        "booksources": "Източници на книги",
        "booksources-search-legend": "Търсене на информация за книга",
        "booksources-search": "Търсене",
        "listgrouprights-removegroup-self": "Може да премахва {{PLURAL:$2|група|групи}} от собствената си сметка: $1",
        "listgrouprights-addgroup-self-all": "Може да добавя всички групи към своята сметка",
        "listgrouprights-removegroup-self-all": "Може да премахва всички групи от собствената сметка",
+       "listgrouprights-namespaceprotection-header": "Ограничения на именните пространства",
        "listgrouprights-namespaceprotection-namespace": "Именно пространство",
        "trackingcategories": "Категории за проследяване",
        "trackingcategories-summary": "Тази страница съдържа списък на категории за проследяване, които се попълват автоматично от софтуера на МедияУики. Имената им могат да се променят чрез съответните системни съобщения в именното пространство {{ns:8}}.",
        "watchlist-options": "Опции на списъка за наблюдение",
        "watching": "Наблюдение…",
        "unwatching": "Спиране на наблюдение…",
-       "watcherrortext": "Възникна грешка при промяна на настройките за списъка ви за наблюдение за \"$1\".",
+       "watcherrortext": "Възникна грешка при промяна на настройките за списъка ви за наблюдение за „$1“.",
        "enotif_reset": "Отбелязване на всички страници като посетени",
        "enotif_impersonal_salutation": "Потребител на {{SITENAME}}",
        "enotif_subject_deleted": "Страницата „$1“ в {{SITENAME}} беше {{GENDER:$2|изтрита}} от $2",
        "modifiedarticleprotection": "смени нивото на защита на „[[$1]]“",
        "unprotectedarticle": "свали защитата на „[[$1]]“",
        "movedarticleprotection": "преместване на настройките за защита от „[[$2]]“ на „[[$1]]“",
-       "protect-title": "Смяна на нивото на защита на \"$1\"",
+       "protect-title": "Смяна на нивото на защита на „$1“",
        "protect-title-notallowed": "Преглеждане нивото на защита за „$1“",
        "prot_1movedto2": "„[[$1]]“ преместена като „[[$2]]“",
        "protect-badnamespace-title": "Незащитимо именно пространство",
        "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-history": "Копиране на всички версии на страницата",
        "import-interwiki-templates": "Включване на всички шаблони",
        "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-skins": "Избор на облик за тестванията:",
        "tooltip-diff": "Показване на направените от вас промени по текста",
        "tooltip-compareselectedversions": "Показване на разликите между двете избрани версии на страницата",
        "tooltip-watch": "Добавяне на страницата към списъка ви за наблюдение",
+       "tooltip-watchlistedit-normal-submit": "Премахване на заглавия",
        "tooltip-watchlistedit-raw-submit": "Обновяване на списъка за наблюдение",
        "tooltip-recreate": "Възстановяване на страницата независимо, че е била изтрита",
        "tooltip-upload": "Започване на качването",
        "pageinfo-length": "Дължина на страницата (в байтове)",
        "pageinfo-article-id": "Номер на страницата",
        "pageinfo-language": "Език на съдържанието на страницата",
+       "pageinfo-content-model": "Модел на съдържанието на страницата",
        "pageinfo-robot-policy": "Индексиране от роботи",
        "pageinfo-robot-index": "Позволено",
        "pageinfo-robot-noindex": "Непозволено",
        "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": "Брой файлове",
        "markedaspatrollederrortext": "Необходимо е да се посочи редакция, която да бъде отбелязана като проверена.",
        "markedaspatrollederror-noautopatrol": "Не е разрешено да маркирате своите редакции като проверени.",
        "markedaspatrollednotify": "Тази промяна на $1 беше отбелязана като патрулирана.",
+       "markedaspatrollederrornotify": "Неуспешно отбелязване на редакция като патрулирана.",
        "patrol-log-page": "Дневник на патрула",
        "patrol-log-header": "Тази страница съдържа дневник на проверените версии.",
        "log-show-hide-patrol": "$1 на Дневника на патрула",
        "autosumm-blank": "Премахване на цялото съдържание на страницата",
        "autosumm-replace": "Заместване на съдържанието на страницата с „$1“",
        "autoredircomment": "Пренасочване към [[$1]]",
-       "autosumm-new": "Нова страница: $1",
+       "autosumm-new": "Нова страница: „$1“",
        "lag-warn-normal": "Промените от {{PLURAL:$1|последната $1 секунда|последните $1 секунди}} вероятно не са показани в списъка.",
        "lag-warn-high": "Поради голямото изоставане в сървърната синхронизация, промените от {{PLURAL:$1|последната $1 секунда|последните $1 секунди}} вероятно не са показани в списъка.",
        "watchlistedit-normal-title": "Редактиране на списъка за наблюдение",
        "version-entrypoints": "Адреси на входни точки",
        "version-entrypoints-header-entrypoint": "Входна точка",
        "version-entrypoints-header-url": "Адрес",
+       "version-libraries": "Инсталирани библиотеки",
+       "version-libraries-library": "Библиотека",
+       "version-libraries-version": "Версия",
        "redirect-submit": "Отваряне",
        "redirect-value": "Стойност:",
        "redirect-user": "Потребителски номер",
        "fileduplicatesearch-info": "$1 × $2 пиксела<br />Размер на файла: $3<br />MIME тип: $4",
        "fileduplicatesearch-result-1": "Файлът „$1“ няма идентично копие.",
        "fileduplicatesearch-result-n": "Файлът „$1“ има {{PLURAL:$2|едно идентично копие|$2 идентични копия}}.",
-       "fileduplicatesearch-noresults": "Не беше открит файл с име \"$1\".",
+       "fileduplicatesearch-noresults": "Не беше открит файл с име „$1“.",
        "specialpages": "Специални страници",
        "specialpages-note-top": "Легенда",
        "specialpages-note": "* Обикновени специални страници.\n* <strong class=\"mw-specialpagerestricted\">Специални страници с ограничения.</strong>",
        "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-hitcount": "$1 {{PLURAL:$1|промяна|промени}}",
+       "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-found": "Етикет „$1“ не съществува.",
+       "tags-activate-title": "Активиране на етикета",
+       "tags-activate-reason": "Причина:",
+       "tags-activate-not-found": "Етикет „$1“ не съществува.",
+       "tags-deactivate-reason": "Причина:",
+       "tags-update-no-permission": "Нямате права за добавяне или премахване на етикети от индивидуални версии или дневници.",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Избрана версия|Избрани версии}} от [[:$2]]:",
+       "tags-edit-revision-legend": "Добавяне или премахване на етикети от {{PLURAL:$1|тази редакция|всичките $1 редакции}}",
+       "tags-edit-new-tags": "Нови етикети:",
+       "tags-edit-reason": "Причина:",
+       "tags-edit-revision-submit": "Прилагане на промените към {{PLURAL:$1|тази редакция|$1 редакции}}",
+       "tags-edit-nooldid-title": "Не е зададена версия",
        "comparepages": "Сравняване на страници",
        "compare-page1": "Страница 1",
        "compare-page2": "Страница 2",
        "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": "Следва складирано копие на поисканата страница. Възможно е складираното копие да не е актуално.",
        "sqlite-no-fts": "$1 без поддръжка на пълнотекстово търсене",
        "logentry-delete-delete": "$1 {{GENDER:$2|изтри}} страницата $3",
        "logentry-delete-restore": "$1 {{GENDER:$2|възстанови}} страницата $3",
-       "logentry-suppress-revision": "$1 тайно промени видимостта на {{PLURAL:$5|една версия|$5 версии}} на страницата $3: $4",
+       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|промени}} видимостта на версиите на страница $3",
+       "logentry-suppress-revision": "$1 тайно {{GENDER:$2|промени}} видимостта на {{PLURAL:$5|една версия|$5 версии}} на страницата $3: $4",
        "logentry-suppress-revision-legacy": "$1 тайно {{GENDER:$2|промени}} видимостта на версиите на страница $3",
        "revdelete-content-hid": "скрито съдържание",
        "revdelete-summary-hid": "скрито резюме на редакцията",
        "api-error-overwrite": "Не е позволено презаписването върху съществуващ файл.",
        "api-error-stashfailed": "Вътрешна грешка: Сървърът не успя да съхрани временния файл.",
        "api-error-publishfailed": "Вътрешна грешка: Сървърът не успя да съхрани временния файл.",
+       "api-error-stasherror": "Имаше грешка при качване на файла в хранилището.",
+       "api-error-stashedfilenotfound": "Скритият файл не беше открит при опита за качването му от временното хранилище.",
+       "api-error-stashfilestorage": "Имаше грешка при съхраняването на файла в хранилището.",
+       "api-error-stashnotloggedin": "Трябва да сте влезли в системата за да съхранявате файлове във временното хранилище.",
        "api-error-timeout": "Сървърът не отговори в рамките на предвиденото време.",
        "api-error-unclassified": "Възникна непозната грешка.",
-       "api-error-unknown-code": "Непозната грешка: \"$1\"",
+       "api-error-unknown-code": "Непозната грешка: „$1“",
        "api-error-unknown-error": "Вътрешна грешка: Нещо се обърка по време на качването на файла ви.",
-       "api-error-unknown-warning": "Непознато предупреждение: $1",
+       "api-error-unknown-warning": "Непознато предупреждение: „$1“",
        "api-error-unknownerror": "Неизвестна грешка: „$1“.",
        "api-error-uploaddisabled": "Достъпът за качване на файлове в това уики е прекратен.",
        "api-error-verification-error": "Файлът може би е повреден или има грешно разширение.",
        "mediastatistics-header-audio": "Аудио",
        "mediastatistics-header-video": "Видео",
        "json-error-syntax": "Синтактична грешка",
+       "headline-anchor-title": "Препратка към този раздел",
        "special-characters-group-latin": "Латиница",
        "special-characters-group-latinextended": "Латиница – разширена",
        "special-characters-group-ipa": "IPA",
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 cffaf52..fd06461 100644 (file)
        "import-interwiki-history": "Salin sabarataan halam raralatan gasan tungkaran ngini",
        "import-interwiki-templates": "Tamasuk samunyaan cicitakan",
        "import-interwiki-submit": "Impur",
-       "import-interwiki-namespace": "Ruang-ngaran tujuan:",
-       "import-interwiki-rootpage": "Tungkaran turunan tujuan (opsional):",
        "import-upload-filename": "Ngaran barakas:",
        "import-comment": "Kumintar:",
        "importtext": "Muhun ma-ikspur tungkaran matan asal mula wiki mamuruk [[Special:Export|sarana ikspur]].\nSimpan ngini dalam komputar Pian wan hunggah di sia.",
index ebe3c25..da05205 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-magic-tilde": "অনুরোধকৃত পাতার শিরোনামে অবৈধ জাদু টিল্ডা অনুক্রম (<nowiki>~~~</nowiki>) রয়েছে।",
+       "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": "হ্যাঁ",
        "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": "অস্থায়ী ফাইলটিতে লেখা যাচ্ছে না।",
        "emailccsubject": "আপনার বার্তার অনুলিপি $1-কে: $2",
        "emailsent": "ই-মেইল প্রেরণ করা হয়েছে",
        "emailsenttext": "আপনার ই-মেইল বার্তা প্রেরণ করা হয়েছে।",
-       "emailuserfooter": "এই ই-মেইলটি {{SITENAME}} সাইটের \"ই-মেইল করুন\" সুবিধা ব্যবহার করে $1-এর পক্ষ থেকে $2-এর নিকট পাঠানো হয়েছে।",
+       "emailuserfooter": "এই ইমেইলটি {{SITENAME}} সাইটের \"{{int:emailpage}}\" সুবিধা ব্যবহার করে $1-এর পক্ষ থেকে $2-এর নিকট পাঠানো হয়েছে।",
        "usermessage-summary": "বাদবাকি সিস্টেম বার্তা",
        "usermessage-editor": "সিস্টেম ম্যাসেঞ্জার",
        "watchlist": "নজর তালিকা",
        "rollback": "সম্পাদনা ফিরিয়ে নিন",
        "rollbacklink": "পুনর্বহাল",
        "rollbacklinkcount": "$1টি {{PLURAL:$1|সম্পাদনা}} রোলব্যাক করুন",
-       "rollbacklinkcount-morethan": "$1টির বেশি {{PLURAL:$1|সম্পাদনা|সম্পাদনাগুলো}} রোলব্যাক করুন",
+       "rollbacklinkcount-morethan": "$1টির বেশি {{PLURAL:$1|সম্পাদনা}} রোলব্যাক করুন",
        "rollbackfailed": "রোলব্যাক ব্যর্থ",
        "cantrollback": "পূর্বের সংস্করণে ফেরত যাওয়া সম্ভব হল না, সর্বশেষ সম্পাদনাকারী এই নিবন্ধটির একমাত্র লেখক।",
        "alreadyrolled": "[[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) দ্বারা সম্পাদিত সর্বশেষ [[:$1]] সম্পাদনাটি পুনর্বহাল করা যাচ্ছে না;\nঅন্য কোন ব্যবহারকারী এই পাতা ইতিমধ্যে সম্পাদনা বা পুনর্বহাল করেছেন।\n\nএই পাতায় সর্বোশেষে [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) দ্বারা সম্পাদিত।",
        "import-interwiki-history": "এই পাতার সমস্ত ইতিহাসের সংস্করণের অনুলিপি করা হোক",
        "import-interwiki-templates": "সকল টেম্পলেট অন্তর্ভুক্ত",
        "import-interwiki-submit": "আমদানি",
+       "import-mapping-subpage": "নিচের পাতার উপপাতাসমূহ হিসাবে আমদানি করুন:",
        "import-upload-filename": "ফাইলনাম:",
        "import-comment": "মন্তব্য:",
-       "importtext": "à¦\85নà§\81à¦\97à§\8dরহ à¦\95রà§\87 à¦«à¦¾à¦\87লà¦\9fি à¦\89à§\8eস à¦\89à¦\87à¦\95ি à¦¥à§\87à¦\95à§\87 [[Special:Export|à¦\8fà¦\95à§\8dসপà§\8bরà§\8dà¦\9f à¦\87à¦\89à¦\9fিলিà¦\9fি]] à¦¬à§\8dযবহার à¦\95রà§\87 à¦\8fà¦\95à§\8dসপà§\8bরà§\8dà¦\9f করুন।\nফাইলটি আপনার কম্পিউটারে সংরক্ষণ করুন এবং এখানে আপলোড করুন।",
+       "importtext": "à¦\85নà§\81à¦\97à§\8dরহ à¦\95রà§\87 à¦«à¦¾à¦\87লà¦\9fি à¦\89à§\8eস à¦\89à¦\87à¦\95ি à¦¥à§\87à¦\95à§\87 [[Special:Export|রপà§\8dতানি à¦\87à¦\89à¦\9fিলিà¦\9fি]] à¦¬à§\8dযবহার à¦\95রà§\87 à¦°à¦ªà§\8dতানি করুন।\nফাইলটি আপনার কম্পিউটারে সংরক্ষণ করুন এবং এখানে আপলোড করুন।",
        "importstart": "পাতা আমদানি করা হচ্ছে...",
        "import-revision-count": "$1 {{PLURAL:$1|টি সংশোধন|টি সংশোধন}}",
        "importnopages": "আমদানি করার মত কোন পাতা নেই।",
        "importunknownsource": "আমদানি উৎসের ধরন অজানা",
        "importcantopen": "আমদানি ফাইল খোলা যায়নি",
        "importbadinterwiki": "খারাপ আন্তঃউইকি সংযোগ",
-       "importsuccess": "à¦\87মà§\8dপà§\8bরà§\8dà¦\9f সফল!",
-       "importnosources": "à¦\95à§\8bন à¦\86নà§\8dতà¦\83à¦\89à¦\87à¦\95ি à¦\86মদানি à¦\89à§\8eস à¦¸à¦\82à¦\9cà§\8dà¦\9eায়িত à¦\95রা à¦¹à¦¯à¦¼à¦¨à¦¿ এবং সরাসরি ইতিহাস আপলোডের ক্ষমতা নিষ্ক্রিয় করা হয়েছে।",
+       "importsuccess": "à¦\86মদানি সফল!",
+       "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": "আমদানি ফাইল আপলোড ব্যর্থ। ফাইলটি কেবল আংশিকভাবে আপলোড করা হয়েছে।",
        "importuploaderrortemp": "আমদানি ফাইলের আপলোড ব্যর্থ। একটি সাময়িক ফোল্ডার হারানো গেছে।",
        "import-parse-failure": "XML পার্স করা যায়নি",
-       "import-noarticle": "à¦\87মà§\8dপà§\8bরà§\8dà¦\9f করার মত কোন পাতা নেই!",
+       "import-noarticle": "à¦\86মদানি করার মত কোন পাতা নেই!",
        "import-nonewrevisions": "কোনো সংস্করণ আমদানী করা হয়নি।",
        "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\" à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦\87মà§\8dপà§\8bরà§\8dà¦\9f করা যায়নি কারণ আপনার এটি তৈরী করার অনুমতি নেই।",
-       "import-error-interwiki": "\"$1\" à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦\87মà§\8dপà§\8bরà§\8dà¦\9f à¦\95রা à¦¯à¦¾à¦¯à¦¼à¦¨à¦¿ à¦\95ারণ à¦\8fà¦\87 à¦¨à¦¾à¦®à¦\9fি à¦¬à¦¹à¦¿à¦\83সà¦\82যà§\8bà¦\97র à¦\9cনà§\8dয à¦¨à¦¿à¦°à§\8dধারিত (à¦\87নà§\8dà¦\9fারউইকি)।",
+       "import-error-create": "\"$1\" à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦\86মদানি করা যায়নি কারণ আপনার এটি তৈরী করার অনুমতি নেই।",
+       "import-error-interwiki": "\"$1\" à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦\86মদানি à¦\95রা à¦¯à¦¾à¦¯à¦¼à¦¨à¦¿ à¦\95ারণ à¦\8fà¦\87 à¦¨à¦¾à¦®à¦\9fি à¦¬à¦¹à¦¿à¦\83সà¦\82যà§\8bà¦\97র à¦\9cনà§\8dয à¦¨à¦¿à¦°à§\8dধারিত (à¦\86নà§\8dতà¦\83উইকি)।",
        "import-error-special": "\"$1\" পাতাটি আমদানি করা যায়নি কারণ এটি একটি বিশেষ নামস্থানকে নির্দেশ করে যেটি সম্পাদনার জন্য অনুমোদিত নয়।",
-       "import-error-invalid": "\"$1\" à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦\87মà§\8dপà§\8bরà§\8dà¦\9f করা যায়নি কারণ নামটি সঠিক নয়।",
+       "import-error-invalid": "\"$1\" à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦\86মদানি করা যায়নি কারণ নামটি সঠিক নয়।",
        "import-error-unserialize": "$1 পাতার $2 সংস্করণটি সিরিয়ালাইজ করা যাচ্ছে না। এই রিভিশনে $4 হিসাবে $3 কন্টেন্ট মডেলে সিরিয়ালাইজ করা আছে।",
        "import-options-wrong": "ভুল {{PLURAL:$2|অপশন|অপশনসমূহ}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "মূল পাতার ভুল শিরনাম দেয়া হয়েছে।",
        "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-nooldid-title": "লক্ষ্য সংশোধন অবৈধ",
        "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-interwiki": "$1 অন্য একটি উইকিতে থেকে $3 {{GENDER:$2|আমদানি করেছে}}",
        "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-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": "সম্পাদনা সারাংশ",
        "headline-anchor-title": "এই অনুচ্ছেদে সংযোগ",
        "special-characters-group-latin": "লাতিন",
        "special-characters-group-latinextended": "সম্প্রসারিত লাতিন",
-       "special-characters-group-ipa": "আইপিএ (IPA)",
+       "special-characters-group-ipa": "আইপিএ",
        "special-characters-group-symbols": "চিহ্নসমূহ",
        "special-characters-group-greek": "গ্রিক",
        "special-characters-group-cyrillic": "সিরিলিক",
index f14b841..c8a0982 100644 (file)
        "rightsnone": "(নেই)",
        "revdelete-summary": "সারাংশ পতানি",
        "searchsuggest-search": "বিসারা",
-       "searchsuggest-containing": "আসেতা..."
+       "searchsuggest-containing": "আসেতা...",
+       "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-persian": "ফারসি",
+       "special-characters-group-hebrew": "হিব্রু",
+       "special-characters-group-bangla": "বাংলা",
+       "special-characters-group-telugu": "তেলেগু",
+       "special-characters-group-sinhala": "শিংহলী",
+       "special-characters-group-gujarati": "গুজরাতি",
+       "special-characters-group-thai": "থাই",
+       "special-characters-group-lao": "লাও",
+       "special-characters-group-khmer": "খেমার"
 }
index 569dbef..5ff574a 100644 (file)
        "import-interwiki-history": "Eilañ holl stummoù istor ar bajenn-mañ",
        "import-interwiki-templates": "Lakaat e-barzh an holl batromoù",
        "import-interwiki-submit": "Enporzhiañ",
-       "import-interwiki-namespace": "Esaouenn anv ar pal :",
-       "import-interwiki-rootpage": "Pennpajenn kas (war zibab)",
        "import-upload-filename": "Anv ar restr :",
        "import-comment": "Notenn :",
        "importtext": "Ezporzhiit ar restr adal ar wiki orin en ur ober gant an arc'hwel [[Special:Export|ezporzhiañ]].\nEnrollit ar bajenn war hoc'h urzhiataer ha kargit anezhi amañ.",
index cc56895..fd77fa9 100644 (file)
        "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",
index 910f0ba..ee9e1c7 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.",
        "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",
        "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-remove-not-allowed-one": "No es permet treure l’etiqueta «$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:",
        "comparepages": "Comparar pàgines",
        "compare-page1": "Pàgina 1",
index af91202..2f7bb6e 100644 (file)
@@ -23,7 +23,7 @@
        "tog-editsectiononrightclick": "Нисде дакъа шозза бакъехьар дахка тӀетаӀийча оцу кортан (JavaScript)",
        "tog-watchcreations": "ТӀетоха ас кхоьллина агӀонаш тергаме могӀам чу",
        "tog-watchdefault": "ТӀетоха ас нисйина агӀонаш тергаме могӀам чу",
-       "tog-watchmoves": "ТӀетоха ас цӀераш хийцина агӀонаш тергаме могӀам чу",
+       "tog-watchmoves": "ТӀетоха ас цӀерш хийцина агӀонаш тергаме могӀам чу",
        "tog-watchdeletion": "ТӀетоха ас дӀаяьхна агӀонаш тергаме могӀанан чу",
        "tog-watchrollback": "Аса нисдар юхудаькхина агӀо сан тергаме могӀанан тӀетуху",
        "tog-minordefault": "Къастам бе нисйиначарн хlумцадеш кегийра долушсанна",
        "qbfind": "Лахар",
        "qbbrowse": "Хьажар",
        "qbedit": "Нисъе",
-       "qbpageoptions": "Агlо нисйар",
+       "qbpageoptions": "АгӀона гӀирс нисбар",
        "qbmyoptions": "Хьан нисдарш",
        "faq": "СиХХ",
        "faqpage": "Project:СиХХ",
        "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 агӀо тая.",
        "userlogin-helplink2": "Системин чудахаран гӀодар",
        "userlogin-loggedin": "Хьо {{GENDER:$1|$1}} цӀарца чохь ву/ю.\nЛахара форманца кхин цӀарца чугӀо.",
        "userlogin-createanother": "Кхолла декъашхочун кхин дӀаяздар",
-       "createacct-emailrequired": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес",
-       "createacct-emailoptional": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес (ца яздича мега)",
-       "createacct-email-ph": "Ð\94Ó\80аÑ\8fзде Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес",
-       "createacct-another-email-ph": "Ð\94Ó\80аÑ\8fзде Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес",
+       "createacct-emailrequired": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес",
+       "createacct-emailoptional": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес (ца яздича мега)",
+       "createacct-email-ph": "Ð\94Ó\80аÑ\8fзде Ñ\85Ñ\8cайн Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес",
+       "createacct-another-email-ph": "Ð\94Ó\80аÑ\8fзде Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес",
        "createaccountmail": "Лела йе цахууш нисйина хана пароль, кхин язйинчу электронан адрес тӀе яийта и.",
        "createacct-realname": "Хьан цӀе (ца язйича мега)",
        "createaccountreason": "Бахьна:",
        "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": "ХӀара декъашхо блоктоьхна ву/ю. Системин чувала/яла магийна дац.",
        "passwordremindertitle": "Декъашхочун {{grammar:genitive|{{SITENAME}}}}  пароль дагайаийтар",
        "passwordremindertext": "Цхьам (ахь хила мега IP-адрес $1 тӀера) керла пароль кхоллар дехна {{grammar:genitive|{{SITENAME}}}} ($4) чохь. Декъашхочун $2\nкхоьллина керла хана пароль: $3. Иза дехар ахь динехь,\nсистемин чугӀой хийца пароль.\nХьан керла пароль белх беш хира ю $5 {{PLURAL:$5|дийнахь}}.\n\nХьой дехар дийна дацахь хӀума маде Ӏад бита хӀара хаам.",
        "noemail": "ЦӀе $1 йолу декъашхочун электронан адрес яздина дац.",
-       "noemailcreate": "Ð\90Ñ\85Ñ\8cа Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес дӀаяздан деза",
+       "noemailcreate": "Ð\90Ñ\85Ñ\8cа Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес дӀаяздан деза",
        "passwordsent": "Керла пароль декъашхочун $1 электронан адрес тӀе дӀахьажина. Дехар до, керла пароль еъча юху системин чугӀо.",
        "blocked-mailpassword": "Хьан IP-адрес ца тадарш дан магийна дац, цуьндела пароль меттахӀотош йолу функци блоктоьхна ю.",
        "eauthentsent": "ДӀаяздинчу электронан адрес тӀе хаам баийтина.\nДаиман хаамаш баийта хааман чохь де бохург дан деза адрес хьай хилар бакъдеш.",
        "throttled-mailpassword": "Пароль дага йоуьйту функци {{PLURAL:$1|тӀехьара $1 сахьтехь}} лелина.\nЗулам цахилийта $1 {{PLURAL:$1|сахьтан чохь}} цӀа бен функци лело йиш яц.",
        "mailerror": "Кехат дохьуьйтуш гӀалат ду: $1",
        "acct_creation_throttle_hit": "Де-буьйса хена чохь хьа IP-адрес тӀера {{PLURAL:$1|кхоьллина $1 декъашхочун дӀаяздар|кхоьллина $1 декъашхочун дӀаяздарш}} оьцу хана юкъахь кхин дукха дӀаяздарш кхолла магийна дац.\nЦундела и IP-адрес лелочарна кхин керла дӀаяздарш кхолла цало.",
-       "emailauthenticated": "Ð¥Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес бакъдина $2 $3.",
-       "emailnotauthenticated": "Ð¥Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес хӀинца а бакъдина дац.\nХаамаш кхоьхьуьйтура бац.",
-       "noemailprefs": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87Ñ\82ан Ð°Ð´Ñ\80еÑ\81 Ñ\8fздина Ð´Ð°Ñ\86, Ñ\8dл. Ð¿Ð¾Ñ\87тан белхан функцеш дӀаяйина ю.",
-       "emailconfirmlink": "Ð\91акÑ\8aде Ñ\85Ñ\8cай Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес",
-       "invalidemailaddress": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес тӀелаца йиш яц, цуна формат нийса цахилар бахьнехь.\nДехар до, язъе нийса электронан адрес я и меттиг есса йита.",
-       "cannotchangeemail": "Ð¥Ó\80окÑ\85Ñ\83 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ó\80аÑ\8fздаÑ\80Ñ\86а Ð´Ð¾Ð»Ñ\83 Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адресаш хуьйцийла дац хӀокху вики чохь",
+       "emailauthenticated": "Ð¥Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес бакъдина $2 $3.",
+       "emailnotauthenticated": "Ð¥Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес хӀинца а бакъдина дац.\nХаамаш кхоьхьуьйтура бац.",
+       "noemailprefs": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88Ñ\82ан Ð°Ð´Ñ\80еÑ\81 Ñ\8fздина Ð´Ð°Ñ\86, Ñ\8dл. Ð¿Ð¾Ñ\88тан белхан функцеш дӀаяйина ю.",
+       "emailconfirmlink": "Ð\91акÑ\8aде Ñ\85Ñ\8cай Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес",
+       "invalidemailaddress": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес тӀелаца йиш яц, цуна формат нийса цахилар бахьнехь.\nДехар до, язъе нийса электронан адрес я и меттиг есса йита.",
+       "cannotchangeemail": "Ð¥Ó\80окÑ\85Ñ\83 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ó\80аÑ\8fздаÑ\80Ñ\86а Ð´Ð¾Ð»Ñ\83 Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адресаш хуьйцийла дац хӀокху вики чохь",
        "emaildisabled": "ХӀокху сайтан таро яц электронан почте хаамаш бахьийта.",
        "accountcreated": "Декъашхочун дӀаяздар кхоьллина",
        "accountcreatedtext": "Кхоьллина декъашхочун [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|дийцаре.]]) дӀаяздар.",
        "createaccount-title": "{{SITENAME}}: декъашхочун дӀаяздар кхоллар",
-       "createaccount-text": "{{SITENAME}} ($4) Ð¿Ñ\80оекÑ\82еÑ\85Ñ\8c Ñ\86Ñ\85Ñ\8cам Ñ\85Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес яздина хӀара «$2» декъашхочун дӀаяздар кхоьллина. \n\nДекъашхочун пароль — «$3». Ахьа дан дезарг сайтан чу гӀой пароль хийца.\n\nДекъашхочун дӀаяздар цахууш кхоьллинехь хӀума а ма де.",
+       "createaccount-text": "{{SITENAME}} ($4) Ð¿Ñ\80оекÑ\82еÑ\85Ñ\8c Ñ\86Ñ\85Ñ\8cам Ñ\85Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес яздина хӀара «$2» декъашхочун дӀаяздар кхоьллина. \n\nДекъашхочун пароль — «$3». Ахьа дан дезарг сайтан чу гӀой пароль хийца.\n\nДекъашхочун дӀаяздар цахууш кхоьллинехь хӀума а ма де.",
        "login-throttled": "Хьо дукха гӀиртира.\nДехар до, собар де $1 юха гӀортале.",
        "login-abort-generic": "Сестемин довзийта тарцаделира",
        "loginlanguagelabel": "Мотт: $1",
        "passwordreset-text-many": "{{PLURAL:$1|Пароль кхосса юза лахара цхьа меттиг.}}",
        "passwordreset-legend": "Пароль кхоссар",
        "passwordreset-disabled": "ХӀокху вики чохь пароль кхоссар дӀадайина ду.",
-       "passwordreset-emaildisabled": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан функцеш хӀокху вики чохь дӀаяйина ю.",
+       "passwordreset-emaildisabled": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан функцеш хӀокху вики чохь дӀаяйина ю.",
        "passwordreset-username": "Декъашхочун цӀе:",
        "passwordreset-domain": "Домен:",
        "passwordreset-capture": "Хьажа беанчу хааме?",
        "passwordreset-capture-help": "Ахьа хӀара билгало хӀотта яхь хьона гур бу декъашхочо баийта чохь хана пароль йолу хаам.",
-       "passwordreset-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес:",
+       "passwordreset-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес:",
        "passwordreset-emailtitle": "{{SITENAME}}: декъашхочун дӀаяздарх лаьцна хаам",
        "passwordreset-emailtext-ip": "{{SITENAME}} ($4) проектехь цхьам я ахьа хӀокху IP-адрес $1 тӀера хьа декъашхочун пароль кхоссар дехна,\nоьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:\n\n$2\n\n{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.\nСистемин чугӀой харжа керла пароль. \nХьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.",
        "passwordreset-emailtext-user": "{{SITENAME}} ($4) проектера декъашхочо $1 хьа декъашхочун пароль кхоссар дехна,\nоьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:\n\n$2\n\n{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.\nСистемин чугӀой харжа керла пароль. \nХьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.",
        "passwordreset-emailsent": "Электронан хаам баийтина кхоьссинчу паролах лаьцна хаам чохь болуш.",
        "passwordreset-emailsent-capture": "Электронан хаам баийтина кхоьссинчу паролах лаьцна хаам чохь болуш. \nцуна йозане хьажа йиш ю лахахь.",
        "passwordreset-emailerror-capture": "Пароль кхоссаран хаам чохь болуш электронан кехат кхоьллина, цуна йоза хьажа йиш ю лахахь, амма иза {{GENDER:$2|декъашхочунга}} дӀадахьийта тар цаделира бахьнехь: $1",
-       "changeemail": "ХийÑ\86а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87Ñ\82а",
-       "changeemail-text": "Юза Ñ\85Ó\80аÑ\80а Ñ\84оÑ\80ма Ñ\85Ñ\8cайн Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес хуьйцуш. Ахьа хийцар бакъдан язъян еза пароль.",
+       "changeemail": "ХийÑ\86а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88Ñ\82",
+       "changeemail-text": "Юза Ñ\85Ó\80аÑ\80а Ñ\84оÑ\80ма Ñ\85Ñ\8cайн Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес хуьйцуш. Ахьа хийцар бакъдан язъян еза пароль.",
        "changeemail-no-info": "ХӀара агӀо лело системин чугӀо.",
-       "changeemail-oldemail": "Ð\9aаÑ\80аÑ\80а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес:",
-       "changeemail-newemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан керла адрес:",
+       "changeemail-oldemail": "Ð\9aаÑ\80аÑ\80а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес:",
+       "changeemail-newemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан керла адрес:",
        "changeemail-none": "(яц)",
        "changeemail-password": "Хьан пароль «{{SITENAME}}» проектан:",
        "changeemail-submit": "Хийца email",
        "missingcommentheader": "'''Дагадаийтар.''' Ахьа хӀокху къамелан дӀахьедар/корта билгал бина бац. Кнопка «{{int:savearticle}}» юху тӀетаӀича хийцамах лаьцна хӀума доцуш Ӏалашбира бу.",
        "summary-preview": "Цуьнах лаьцна хирду:",
        "subject-preview": "Коьрта могӀа хира бу:",
+       "previewerrortext": "Хьан хийцамашка хьалха хьажа гӀертачу хенахь гӀалат даьлла.",
        "blockedtitle": "Декъашхочун блоктоьхана",
-       "blockedtext": "'''Ð¥Ñ\8cан Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ó\80аÑ\8fздаÑ\80 Ñ\8f IP-адÑ\80еÑ\81 Ð±Ð»Ð¾ÐºÑ\82оÑ\8cÑ\85на Ð´Ñ\83.'''\n\nÐ\91локÑ\82оÑ\8cÑ\85на ÐºÑ\83Ñ\8cйгалÑ\85оÑ\87о $1.\nÐ\91илгалдина Ð±Ð°Ñ\85Ñ\8cна: Â«''$2''».\n\n* Ð\91локÑ\82оÑ\85аÑ\80 Ð´Ð¾Ð»Ð°Ð´ÐµÐ»Ð»Ð°: $8\n* Ð\91локÑ\82оÑ\85аÑ\80 Ñ\87екÑ\85долÑ\83: $6\n* Ð\91локÑ\82оÑ\85аÑ\80ан Ó\80алаÑ\88о: $7\n\nÐ¥Ñ\8cа Ð¹Ð¸Ñ\88 Ñ\8e $1 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83Ñ\8cнга Ð´ÐµÑ\85аÑ\80дан Ñ\8f ÐºÑ\85еÑ\87Ñ\83 Ð¼Ñ\83Ñ\8cлÑ\85а [[{{MediaWiki:Grouppage-sysop}}|кÑ\83Ñ\8cйгалÑ\85оÑ\87Ñ\83Ñ\8cнга]].\nТеÑ\80гам Ð±Ðµ, Ñ\85Ñ\8cа Ñ\82аÑ\80о Ñ\8fÑ\86 Â«Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83нга ÐºÐµÑ\85аÑ\82» Ð¾Ð»Ñ\83 Ñ\84Ñ\83нкÑ\86и Ð»ÐµÐ»Ð°Ñ\8fн, Ñ\85Ñ\8cан [[Special:Preferences|гÓ\80иÑ\80Ñ\81 Ð½Ð¸Ñ\81баÑ\80 Ñ\87оÑ\85Ñ\8c]] Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес яздина дацахь, я кехаташ кхехӀитарна а блоктоьхна елахь.\nХьан IP-адрес — $3, блоктохаран идентификатор — $5.\nДехар до, хьайн хаам чохь билгалде и.",
+       "blockedtext": "'''Ð¥Ñ\8cан Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ó\80аÑ\8fздаÑ\80 Ñ\8f IP-адÑ\80еÑ\81 Ð±Ð»Ð¾ÐºÑ\82оÑ\8cÑ\85на Ð´Ñ\83.'''\n\nÐ\91локÑ\82оÑ\8cÑ\85на ÐºÑ\83Ñ\8cйгалÑ\85оÑ\87о $1.\nÐ\91илгалдина Ð±Ð°Ñ\85Ñ\8cна: Â«''$2''».\n\n* Ð\91локÑ\82оÑ\85аÑ\80 Ð´Ð¾Ð»Ð°Ð´ÐµÐ»Ð»Ð°: $8\n* Ð\91локÑ\82оÑ\85аÑ\80 Ñ\87екÑ\85долÑ\83: $6\n* Ð\91локÑ\82оÑ\85аÑ\80ан Ó\80алаÑ\88о: $7\n\nÐ¥Ñ\8cа Ð¹Ð¸Ñ\88 Ñ\8e $1 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83Ñ\8cнга Ð´ÐµÑ\85аÑ\80дан Ñ\8f ÐºÑ\85еÑ\87Ñ\83 Ð¼Ñ\83Ñ\8cлÑ\85а [[{{MediaWiki:Grouppage-sysop}}|кÑ\83Ñ\8cйгалÑ\85оÑ\87Ñ\83Ñ\8cнга]].\nТеÑ\80гам Ð±Ðµ, Ñ\85Ñ\8cа Ñ\82аÑ\80о Ñ\8fÑ\86 Â«Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83нга ÐºÐµÑ\85аÑ\82» Ð¾Ð»Ñ\83 Ñ\84Ñ\83нкÑ\86и Ð»ÐµÐ»Ð°Ñ\8fн, Ñ\85Ñ\8cан [[Special:Preferences|гÓ\80иÑ\80Ñ\81 Ð½Ð¸Ñ\81баÑ\80 Ñ\87оÑ\85Ñ\8c]] Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес яздина дацахь, я кехаташ кхехӀитарна а блоктоьхна елахь.\nХьан IP-адрес — $3, блоктохаран идентификатор — $5.\nДехар до, хьайн хаам чохь билгалде и.",
        "blockednoreason": "бахьана билгалдина дац",
        "whitelistedittext": "Ахьа да деза $1 агӀона хийцамаш бан.",
        "nosuchsectiontitle": "Дакъа каро йиш яц.",
        "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-nooldid-text": "Ахьа хӀара функци кхочушъян билгалйина яц Ӏалашонан верси (я версеш).",
+       "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|Файлан Ñ\85аÑ\8cÑ\80жина Ð²ÐµÑ\80Ñ\81и|Файлан Ñ\85аьржина версеш}} [[:$2]]:",
+       "revdelete-selected-text": "{{PLURAL:$1|ХаÑ\8cÑ\80жина Ð²ÐµÑ\80Ñ\81и|Ð¥аьржина версеш}} [[:$2]]:",
        "revdelete-selected-file": "{{PLURAL:$1|Файлан хаьржина верси|Файлан хаьржина версеш}} [[:$2]]:",
        "logdelete-selected": "Тептар чура {{PLURAL:$1|хаьржина дӀаяздар|хаьржина дӀаяздарш}}:",
        "revdelete-text-text": "ДӀаяьхна версеш агӀонан истори чохь хьалха санна гуш хира ю, амма чулацаман цхьадолу дакъош декъашхошна тӀекхочехь хира дац.",
        "revdelete-edit-reasonlist": "Бахьанин могӀам нисбар",
        "revdelete-offender": "АгӀона версин автор:",
        "suppressionlog": "Хьулдаран тептар",
-       "mergehistory": "Нисдарин истори цхьаьнатохар",
-       "mergehistory-box": "Шин агӀона нисдарин истори цхьаьнатохар:",
+       "mergehistory": "Ð\9dиÑ\81даÑ\80ийн Ð¸Ñ\81Ñ\82оÑ\80и Ñ\86Ñ\85Ñ\8cаÑ\8cнаÑ\82оÑ\85аÑ\80",
+       "mergehistory-box": "Шин Ð°Ð³Ó\80она Ð½Ð¸Ñ\81даÑ\80ийн Ð¸Ñ\81Ñ\82оÑ\80и Ñ\86Ñ\85Ñ\8cаÑ\8cнаÑ\82оÑ\85аÑ\80:",
        "mergehistory-from": "Дуьххьарлера агӀоно",
        "mergehistory-into": "Ӏалашонан агӀо:",
-       "mergehistory-list": "Цхьаьнатухуш долу нисдарин истори",
+       "mergehistory-list": "ЦÑ\85Ñ\8cаÑ\8cнаÑ\82Ñ\83Ñ\85Ñ\83Ñ\88 Ð´Ð¾Ð»Ñ\83 Ð½Ð¸Ñ\81даÑ\80ийн Ð¸Ñ\81Ñ\82оÑ\80и",
        "mergehistory-go": "Гайта цхьаьнатухуш долу нисдарш",
        "mergehistory-submit": "Цхьаьнатоха нисдарш",
        "mergehistory-empty": "Цхьаьнатоха нисдарш цакарий.",
        "difference-multipage": "(АгӀонийн башхалла)",
        "lineno": "МогӀа $1:",
        "compareselectedversions": "Хаьржина версешка хьажар",
-       "showhideselectedversions": "Ð\93айÑ\82а/кÑ\8aайлаÑ\8fÑ\85а Ñ\85аÑ\8cÑ\80жина Ð±Ð°Ñ\88Ñ\85онаш",
+       "showhideselectedversions": "Ð\93айÑ\82а/кÑ\8aайлаÑ\8fÑ\85а Ñ\85аÑ\8cÑ\80жина Ð²ÐµÑ\80Ñ\81еш",
        "editundo": "цаоьшу",
        "diff-empty": "(башхалла яц)",
        "diff-multi-sameuser": "(ца {{PLURAL:$1|гайтина юккъера цхьа верси|гайтина юккъера цхьа версеш}} оьцу декъашхочун)",
        "diff-multi-manyusers": "({{PLURAL:$1|гайтина яц $1 юккъера верси, йина|не показаны $1 юккъера версеш, йина}} {{PLURAL:$2|$2 декъашхочо|$2 декъашхоша}})",
        "searchresults": "Карийнарш",
        "searchresults-title": "Лахар «$1»",
-       "titlematches": "АгӀонийн цӀераш цхьаьнанисялар",
+       "titlematches": "АгӀонийн цӀерш цхьаьнанисялар",
        "textmatches": "АгӀонийн йоза цхьаьнанисдалар",
        "notextmatches": "АгӀонаш чура йозанашца цхьатерра йогӀуш яц",
        "prevn": "хьалхарнаш {{PLURAL:$1|$1}}",
        "prefs-watchlist-token": "Тергаме могӀанан токен:",
        "prefs-misc": "Кхин гlирсаш",
        "prefs-resetpass": "Хийца пароль",
-       "prefs-changeemail": "ХийÑ\86а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87Ñ\82а",
-       "prefs-setemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес дӀахӀоттор",
-       "prefs-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан параметраш",
+       "prefs-changeemail": "ХийÑ\86а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88Ñ\82",
+       "prefs-setemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес дӀахӀоттор",
+       "prefs-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан параметраш",
        "prefs-rendering": "Арахьара хатl",
        "saveprefs": "Ӏалашдан",
        "restoreprefs": "МеттахӀоттабе гӀирс Iад битарца",
        "timezoneregion-europe": "Европа",
        "timezoneregion-indian": "Индин океан",
        "timezoneregion-pacific": "Тийна океан",
-       "allowemail": "Ð\9cагийÑ\82а Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\88на Ñ\85Ñ\8cайга Ñ\8dлекÑ\82Ñ\80они Ð¿Ð¾Ñ\87техула кехат кхехьийта",
+       "allowemail": "Ð\9cагийÑ\82а Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\88на Ñ\85Ñ\8cайга Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88техула кехат кхехьийта",
        "prefs-searchoptions": "Лахар",
        "prefs-namespaces": "ЦӀерийн ана",
        "default": "Iад йитарца",
        "prefs-custom-js": "Долахь йолу JS",
        "prefs-common-css-js": "Юкъара CSS/JS массо кеч даран темийн:",
        "prefs-reset-intro": "ХӀара агӀо лело мега ахьа нисбина гӀирс Ӏад битарца юха бокхуш.\nХӀара дешдерг кхочушъ динчул  тӀехьа хьан йиш хир-яц и юха меттахӀотто.",
-       "prefs-emailconfirm-label": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87Ñ\82а бакъ яр:",
-       "youremail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87Ñ\82а:",
+       "prefs-emailconfirm-label": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88Ñ\82 бакъ яр:",
+       "youremail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88Ñ\82:",
        "username": "{{GENDER:$1|Декъашхочун цӀе}}:",
        "prefs-memberingroups": "{{GENDER:$1|Тобана|Тобаншан}} {{PLURAL:$2|декъашхо|декъашхой}}:",
        "prefs-registration": "ДӀаяздар кхолийна хан:",
        "gender-female": "сте",
        "prefs-help-gender": "ТӀехь доцург: и хаам лелош бу цхьайолу хаамаш чохь декъашхочун пол гучуйоккхуш.\nИ хаам массарна гуш хир бу.",
        "email": "Email",
-       "prefs-help-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес цахӀоттийча а хӀумма дац, амма иза оьшар ю, нагахь хьуна хьай пароль йицлахь.",
+       "prefs-help-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес цахӀоттийча а хӀумма дац, амма иза оьшар ю, нагахь хьуна хьай пароль йицлахь.",
        "prefs-help-email-others": "Кхин дӀа цо кхечу декъашхошна йиш хуьлуьйту хьога электронан кехат даийта хьан агӀона чохь йолу хьажориган гӀоьнца.",
-       "prefs-help-email-required": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес яздан деза.",
+       "prefs-help-email-required": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес яздан деза.",
        "prefs-info": "Коьрта хаам",
        "prefs-i18n": "Юкъардекъа мотт",
        "prefs-signature": "КуьгтаӀор",
        "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": "Файлаш чуйаьхар",
        "rightslog": "Декъашхочун бакъона тéптар",
        "rightslogtext": "Декъашхойн бакъонаш хийцар долу тептар.",
        "action-read": "хӀара агӀо ешар",
-       "action-edit": "нисйа хlара агlо",
+       "action-edit": "хӀара агӀо таяр",
        "action-createpage": "агӀонаш кхолла",
        "action-createtalk": "дийцаре агӀонаш кхоллар",
        "action-createaccount": "хӀара декъашхочун дӀаяздар кхоллар",
        "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": "йолуш йолу файлан тӀехула дӀаязъяр",
        "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": "Кхоьллина хене хьаьжжина нисъяр",
        "specialloguserlabel": "Декъашхо:",
        "speciallogtitlelabel": "Ӏалашо (цӀе я декъашхо):",
        "log": "Тéптарш",
-       "all-logs-page": "Деригге тléкхочучéхь долу тéптарш",
+       "all-logs-page": "Дерриге тӀекхочучехь долу тептарш",
        "alllogstext": "Массо тéптар могӀам. {{SITENAME}}.\nШуьга харжалур бу хилам оцу тептаре хьаьжжина, декъашхочун цӀе (дӀаяздар диц а цадеш) я цо хьейина агӀонаш (ишта дӀаяздар а диц цадеш).",
        "logempty": "Тептарш чохь хӀокху агӀона дӀаяздарш дац.",
        "log-title-wildcard": "ХӀокху символашца болалуш болу кортанаш карабе",
        "allpagessubmit": "Кхочушдé",
        "allpagesprefix": "Лаха агӀонаш, дӀайолалуш йолу:",
        "allpagesbadtitle": "Цамагош йолу агӀон цӀе. Коьрта могӀан юкъах ю юкъарвики меттанашан юкъе тӀечӀагӀйина йолу хьаьрк йа магийна доцу оцу коьрта моӀанца символаш йа кхин.",
-       "allpages-bad-ns": "{{SITENAME}} кху чохь ана цӀераш яц «$1».",
+       "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": "Категорин чутухуш йолчун хила деза хьал",
        "trackingcategories-nodesc": "Цунах лаьцна хӀума дац.",
        "trackingcategories-disabled": "Категори дӀаяйина ю",
        "mailnologin": "ДӀаяхьийта адрес дац",
-       "mailnologintext": "ЭлекÑ\82Ñ\80онан ÐºÐµÑ\85аÑ\82аÑ\88 ÐºÑ\85еÑ\85Ñ\8cийÑ\82а Ð¹Ð¸Ñ\88 Ñ\85илийÑ\82а [[Special:UserLogin|Ñ\81иÑ\81Ñ\82емин Ñ\87Ñ\83гÓ\80о]] ÐºÑ\85ин Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\88ка Ñ\85аамаÑ\88 ÐºÑ\85еÑ\85Ñ\8cийÑ\82а Ñ\85Ñ\8cа [[Special:Preferences|гÓ\80иÑ\80Ñ\81а Ñ\87оÑ\85Ñ\8c]] Ð±Ð°ÐºÑ\8aалла Ð´Ð¾Ð»Ñ\83 Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес хила деза.",
+       "mailnologintext": "ЭлекÑ\82Ñ\80онан ÐºÐµÑ\85аÑ\82аÑ\88 ÐºÑ\85еÑ\85Ñ\8cийÑ\82а Ð¹Ð¸Ñ\88 Ñ\85илийÑ\82а [[Special:UserLogin|Ñ\81иÑ\81Ñ\82емин Ñ\87Ñ\83гÓ\80о]] ÐºÑ\85ин Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\88ка Ñ\85аамаÑ\88 ÐºÑ\85еÑ\85Ñ\8cийÑ\82а Ñ\85Ñ\8cа [[Special:Preferences|гÓ\80иÑ\80Ñ\81а Ñ\87оÑ\85Ñ\8c]] Ð±Ð°ÐºÑ\8aалла Ð´Ð¾Ð»Ñ\83 Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес хила деза.",
        "emailuser": "Декъашхочун хааман кехат",
        "emailuser-title-target": "{{GENDER:$1|декъашхочунга}} электронан хаам базбар",
        "emailuser-title-notarget": "Декъашхочунга кехат яздар",
        "emailpage": "Декъашхочунга кехат яздар",
        "emailpagetext": "ХӀокху агӀона гӀоьнца йиш ю {{GENDER:$1|декъашхочун}} электронан почте хаам бахьийта.\nХьоьга жоп лур ду ахьа [[Special:Preferences|хьайн гӀирса чу]] дӀаяздина долу адрес тӀе.",
        "defemailsubject": "Хаам {{grammar:genitive|{{SITENAME}}}} чура бу",
-       "usermaildisabled": "Ð\94екÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87Ñ\82а дӀаяйина ю",
-       "noemailtitle": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес дац",
+       "usermaildisabled": "Ð\94екÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88Ñ\82 дӀаяйина ю",
+       "noemailtitle": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес дац",
        "emailusername": "Декъашхочун цӀе:",
        "emailusernamesubmit": "ДӀадахьийта",
        "email-legend": "{{grammar:genitive|{{SITENAME}}}} кхечу декъашхочунга кехат дахьийтар",
        "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огаман юкъаяккха…",
        "enotif_lastvisited": "Хьажа кхин. $1 хьуна тӀаьхьара гина чул тӀехьа бина хийцамашка хьажар.",
        "enotif_lastdiff": "Кхин хьажа. $1 хийцам бовза.",
        "enotif_anon_editor": "къайлаха декъашхо $1",
-       "enotif_body": "Ð\90Ñ\81Ñ\81алам Ó\80алийкÑ\83м, $WATCHINGUSERNAME!\n\n$PAGEINTRO $NEWPAGE\n\nХийÑ\86амаÑ\85 Ð»Ð°Ñ\8cÑ\86на Ð´Ð¾Ñ\86а Ñ\8fздаÑ\80: $PAGESUMMARY $PAGEMINOREDIT\n\nХийÑ\86ам Ð±Ð¸Ð½Ð°Ñ\87Ñ\83нга Ñ\85аам Ð±Ð°Ñ\80:\nÑ\8dл. Ð¿Ð¾Ñ\87Ñ\82а: $PAGEEDITOR_EMAIL\nвики: $PAGEEDITOR_WIKI\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",
+       "enotif_body": "Ð\90Ñ\81Ñ\81алам Ó\80алийкÑ\83м, $WATCHINGUSERNAME!\n\n$PAGEINTRO $NEWPAGE\n\nХийÑ\86амаÑ\85 Ð»Ð°Ñ\8cÑ\86на Ð´Ð¾Ñ\86а Ñ\8fздаÑ\80: $PAGESUMMARY $PAGEMINOREDIT\n\nХийÑ\86ам Ð±Ð¸Ð½Ð°Ñ\87Ñ\83нга Ñ\85аам Ð±Ð°Ñ\80:\nÑ\8dл. Ð¿Ð¾Ñ\88Ñ\82: $PAGEEDITOR_EMAIL\nвики: $PAGEEDITOR_WIKI\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",
        "changed": "хийцина",
        "deletepage": "ДӀаяккха агӀо",
        "confirm": "Бакъдан",
        "unlockdbsuccesssub": "Хаамийн базан тӀера блокдӀаяьккхина",
        "lockedbyandtime": "($1 $2 $3)",
        "move-page": "$1 — цӀе хийцар",
-       "move-page-legend": "ЦӀe хийца яр",
+       "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": "ТӀе хӀоьттина йолу дийцаре агӀо ишта цӀе хийцина хира ю, '''цхьа йолу ханчохь, маца:'''\n\n*Йаьсса йоцу дийцаре агӀо йолуш ю оцу цӀарца йа\n*Ахьа къастаман харжам цабиняхь а къастам хӀотточехь.\n\nИшта чу ханчохь, ахьа дехьа яккха йезар ю йа куьйга хӀоттайар, нагахь иза хьашт йалахь.",
        "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": "Хьалхара цӀе йолу дӀасахьажорг нисъян",
        "move-leave-redirect": "Ӏадйита дӀасахьажораг",
        "protectedpagemovewarning": "'''ДӀахьедар.''' ХӀара агӀо гӀаролла йина ю; цӀе хийца я нисйа а бакъо йолуш куьйгалхой бе бац.\nЛахахьа тептаро балийна тӀаьхьаралера дӀаязбина хаам:",
        "semiprotectedpagemovewarning": "'''ДӀахьедо.''' ХӀара агӀо гӀаролла йина ю; дӀабазбиначу декъашхошка бе цӀе хийцалуш яц.\nЛахахьа тептаро балийна тӀаьхьаралера дӀаязбина хаам:",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|верси импорт йина|версеш импорт йина}}",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|верси импорт йина|версеш импорт йина}} $2 чура",
        "javascripttest": "JavaScript хьажар",
-       "tooltip-pt-userpage": "Декъашхочуьна агlо",
+       "tooltip-pt-userpage": "Декъашхочун агӀо",
        "tooltip-pt-mytalk": "Сан дийцаре агlо",
        "tooltip-pt-preferences": "Хьан гlирс нисбар",
        "tooltip-pt-watchlist": "Ахьа тергам бо агӀонийн хийцаман могӀам",
        "tooltip-ca-nstab-media": "Медиа-файл",
        "tooltip-ca-nstab-special": "ХӀара белхан агӀо ю, хӀара тая луш яц",
        "tooltip-ca-nstab-project": "Кхолламан дакъа",
-       "tooltip-ca-nstab-image": "Ð¥lÑ\83ман Ð°Ð³lо",
+       "tooltip-ca-nstab-image": "Файлан Ð°Ð³Ó\80о",
        "tooltip-ca-nstab-mediawiki": "Хааман агlо MediaWiki",
-       "tooltip-ca-nstab-template": "Куцкепа агlо",
+       "tooltip-ca-nstab-template": "Кепан агӀо",
        "tooltip-ca-nstab-help": "ГӀоьна агӀо",
        "tooltip-ca-nstab-category": "Категорешан агӀо",
        "tooltip-minoredit": "Къастам бé хӀокху хийцамна кӀеззиг болуш санна",
        "tooltip-diff": "Гайта долуш долу йозанах бина болу хийцам.",
        "tooltip-compareselectedversions": "ХӀокху агӀона шина хаьржина версийн башхалле хьажар.",
        "tooltip-watch": "ТӀетоха хӀара агӀо сан тергаме могӀанан юкъа",
-       "tooltip-watchlistedit-normal-submit": "Билгалйина цӀераш дӀаяха",
+       "tooltip-watchlistedit-normal-submit": "Билгалйина цӀерш дӀаяха",
        "tooltip-watchlistedit-raw-submit": "Тергаме могӀам карлабаккха",
        "tooltip-recreate": "АгӀо дӀаяьккхина хиларе ца хьоьжуш меттахӀоттае агӀо",
        "tooltip-upload": "Доладе чуяккхар",
        "exif-urgency-other": "Декъашхочо билгалйина приоритет ($1)",
        "namespacesall": "массо",
        "monthsall": "массо",
-       "confirmemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес бакъдар",
-       "confirmemail_noemail": "Ð\90Ñ\85Ñ\8cа Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес яздина дац [[Special:Preferences|гӀирсан чохь]].",
+       "confirmemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес бакъдар",
+       "confirmemail_noemail": "Ð\90Ñ\85Ñ\8cа Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес яздина дац [[Special:Preferences|гӀирсан чохь]].",
        "confirmrecreate": "Декъашхочо [[User:$1|$1]] ([[User talk:$1|дийцаре]]) хӀара агӀо дӀаяьккхина, ахьа иза тая йолийча, дӀаяккхарна бахьна:\n: ''$2''\nДехар до, тешал де, хьо иза агӀо меттахӀотто лууш ву/ю але.",
        "confirmrecreate-noreason": "Декъашхочо [[User:$1|$1]] ([[User talk:$1|дийцаре]]) хӀара агӀо дӀаяьккхина, ахьа иза тая йолийча. Дехар до, тешал де, хьо иза агӀо меттахӀотто лууш ву/ю але.",
        "recreate": "Юха кхолла",
        "descending_abbrev": "йина",
        "table_pager_next": "ТӀаьхьа йогӀу агӀо",
        "table_pager_prev": "Хьалха йоьду агӀо",
-       "table_pager_first": "Ð\94Ñ\83Ñ\8cÑ\85Ñ\85Ñ\8cаÑ\80алеÑ\80а Ð°Ð³lо",
-       "table_pager_last": "Тlаьххьаралера агlо",
+       "table_pager_first": "Ð¥Ñ\8cалÑ\85аÑ\80а Ð°Ð³Ó\80о",
+       "table_pager_last": "ТӀаьххьра агӀо",
        "table_pager_limit": "Гайта $1 хlумнаш агlон тlаьхь",
        "table_pager_limit_label": "АгӀона чохь гойтуш ю оццул:",
        "table_pager_limit_submit": "Кхочушдé",
        "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": "Хьан тергаман могӀам Ӏалашбина",
        "specialpages-group-users": "Декъашхой а бакъонаш",
        "specialpages-group-highuse": "Уггаре дукха лелайо агӀонаш",
        "specialpages-group-pages": "АгӀонийн могӀанаш",
-       "specialpages-group-pagetools": "Ð\93Ó\80иÑ\80Ñ\81аÑ\88 Ð¾Ñ\86Ñ\83 Ð°Ð³Ó\80онийн",
+       "specialpages-group-pagetools": "Ð\93Ó\80иÑ\80Ñ\81аÑ\88 Ð°Ð³Ó\80онаÑ\88на",
        "specialpages-group-wiki": "Хаамаш а гӀирсаш а",
        "specialpages-group-redirects": "ДӀасахьажош йолу белхан агӀонаш",
        "specialpages-group-spam": "Спаман дуьхьала гӀирсаш",
-       "blankpage": "Ð\99аÑ\8cÑ\81Ñ\81а Ð°Ð³lо",
+       "blankpage": "Ð\95Ñ\81а Ð°Ð³Ó\80о",
        "tags": "Болш болу хийцаман къастам",
        "tag-filter": "Къастам [[Special:Tags|хьажар]]:",
        "tag-filter-submit": "Литта",
        "tags-deactivate-reason": "Бахьна:",
        "tags-deactivate-submit": "ДӀаяйа",
        "tags-edit-title": "Тегаш таян",
+       "tags-edit-manage-link": "Тегашна урхалладар",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Хаьржина верси|Хаьржина версеш}} [[:$2]]:",
+       "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-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": "Бахьна:",
+       "tags-edit-nooldid-title": "Ӏалашонан верси билгалйина яц",
        "comparepages": "АгӀонаш юстар",
        "compare-page1": "Дуьххьаралера агӀо",
        "compare-page2": "ШолгӀа агӀо",
        "logentry-upload-revert": "$1 {{GENDER:$2|чуяьккхина}} $3",
        "log-name-managetags": "Билгалонашан урхалладаран тептар",
        "logentry-managetags-create": "$1 {{GENDER:$2|Кхоьллина}} билгало «$4»",
+       "log-name-tag": "Билгалонийн тептар",
        "rightsnone": "(яц)",
        "revdelete-summary": "хийцамах лаьцна",
        "feedback-adding": "АгӀона хетарг тӀетохар...",
index 9087ce4..051c7de 100644 (file)
        "permalink": "بەستەری ھەمیشەیی",
        "print": "چاپ",
        "view": "بینین",
+       "view-foreign": "لە $1دا بیبینە",
        "edit": "دەستکاری",
        "create": "دروستکردن",
        "editthispage": "دەستکاری ئەم پەڕەیە بکە‌",
        "preview": "پێشبینین",
        "showpreview": "پێشبینین نیشان بدە",
        "showdiff": "گۆڕانکارییەکان نیشان بدە",
-       "anoneditwarning": "'''ھۆشیار بە:''' نەچوویتە ژوورەوە.\nناونیشانی IPی تۆ لە مێژووی دەستکارییەکانی ئەم پەڕەیەدا تۆماردەکرێت.",
+       "anoneditwarning": "<strong>ھۆشیار بە:</strong> نەڕۆیشتووتەتە ژوورەوە. ھەر دەستکارییەک بکەیت ناونیشانی IPیەکەت بۆ ھەموو کەسێک دیار دەبێت. بەڵام ئەگەر <strong>[$1 بچیتە ژوورەوە]</strong> یان <strong>[$2 ھەژمارێک دروست بکەیت]</strong>، دەستکارییەکانت بە ناوی بەکارھێنەرییەکەتەوە بڵاو دەبێتەوە و لە چەند قازانجی تریشی ھەیە.",
        "anonpreviewwarning": "«نەڕۆشتوویتە ژوورەوە. پاشەکەوتکردن، ئەدرەسی IPەکەت لە مێژووی دەستکاریی ئەم پەڕە تۆمار دەکات.»",
        "missingsummary": "'''وە بیر خستنەوە:''' پوختەیەکت نەنووسیوە بۆ چۆنیەتی گۆڕانکارییەکەت.\nئەگەر جارێکی تر پاشکەوت کردن لێبدەی، بێ پوختە تۆمار دەکرێ.",
        "missingcommenttext": "تکایە لە خوارەوە شرۆڤەیەک بنووسە.",
        "spamprotectionmatch": "ئەم دەقە ئەوەیە کە پاڵێوی سپامەکە دەبزوێنێ: $1",
        "spambot_username": "خاوێنکردنەوەی سپامی میدیاویکی",
        "spam_reverting": "گەڕانەوە بۆ دوایین پێداچوونەوە کە بەستەری لەخۆگرتووە بۆ $1",
+       "simpleantispam-label": "پشکنینی دژەھەرزە.\nئەمە پڕ <strong>مەکەرەوە</strong>!",
        "pageinfo-title": "زانیاری بۆ «$1»",
        "pageinfo-header-basic": "زانیاریی سەرەتایی",
        "pageinfo-header-edits": "مێژووی دەستکاری",
        "exif-pixelxdimension": "بەرزی وێنە",
        "exif-usercomment": "بۆچوونەکانی بەکارهێنەر",
        "exif-relatedsoundfile": "فایلی ده‌نگی لێکچوو",
+       "exif-datetimedigitized": "ڕێکەوت و کاتی بە دیجیتاڵی کردن",
        "exif-exposuretime-format": "$1 چرکە ($2)",
        "exif-fnumber": "ڕێژەی ئێف",
        "exif-lightsource": "سەرچاوەی ڕووناکی",
index 60aa4c9..22641fe 100644 (file)
        "no-null-revision": "Nepodařilo se vytvořit novou prázdnou revizi stránky „$1“",
        "badtitle": "Neplatný název",
        "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-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-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ů}}.",
        "querypage-no-updates": "Aktualizace této stránky je vypnuta. Data nyní nebudou obnovována.",
        "myprivateinfoprotected": "Nemáte oprávnění měnit své soukromé údaje.",
        "mypreferencesprotected": "Nemáte oprávnění změnit svá nastavení.",
        "ns-specialprotected": "Stránky ve jmenném prostoru {{ns:special}} nelze editovat.",
-       "titleprotected": "Stránku s tímto názvem nelze založit, protože název zamknul uživatel [[User:$1|$1]] s odůvodněním <em>$2</em>.",
+       "titleprotected": "Stránku s tímto názvem nelze založit, protože název {{GENDER:$1|zamkl|zamkla|zamkl uživatel}} [[User:$1|$1]].\nUdaným důvodem bylo „<em>$2</em>“.",
        "filereadonlyerror": "Nelze změnit soubor „$1“, protože úložiště souborů „$2“ je pouze pro čtení.\n\nSprávce serveru, který úložiště zamkl, poskytl toto zdůvodnění: „$3“.",
        "invalidtitle-knownnamespace": "Neplatný název se jmenným prostorem „$2“ a textem „$3“",
        "invalidtitle-unknownnamespace": "Neplatný název s neznámým číslem jmenného prostoru $1 a textem „$2“",
        "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.",
index 12d9cea..fb6d138 100644 (file)
        "variants": "Вариантсем",
        "errorpagetitle": "Йăнăш",
        "returnto": "$1 таврăн.",
-       "tagline": "{{GRAMMAR:genitive|{{SITENAME}}}}ри материал",
+       "tagline": "{{SITENAME}}",
        "help": "Пулăшу",
        "search": "Шырамалли",
        "searchbutton": "Шыра",
        "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 d4c32c8..0611617 100644 (file)
        "import-interwiki-history": "Copïer yr holl fersiynau yn hanes y dudalen hon",
        "import-interwiki-templates": "Cynhwyser pob nodyn",
        "import-interwiki-submit": "Mewnforio",
-       "import-interwiki-namespace": "Parth y cyrchir ato:",
-       "import-interwiki-rootpage": "Tudalen wraidd y cyrchfan (dewisol):",
        "import-upload-filename": "Enw'r ffeil:",
        "import-comment": "Sylw:",
        "importtext": "Allforiwch y ffeil o'r wici gwreiddiol trwy ddefnyddio'r [[Special:Export|nodwedd allforio]]. Rhowch hi ar gadw ar eich cyfrifiadur, ac wedyn ei huwchlwytho fan hyn.",
index c0c8788..14e7507 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",
        "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": "Titlen indeholder et interwiki-link",
+       "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 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",
        "media_tip": "Henvisning til fil",
        "sig_tip": "Din signatur med tidsstempel",
        "hr_tip": "Horisontal linje (brug den sparsomt)",
-       "summary": "Beskrivelse:",
+       "summary": "Sammenfatning:",
        "subject": "Emne/overskrift:",
        "minoredit": "Dette er en mindre ændring",
        "watchthis": "Overvåg denne side",
        "showpreview": "Forhåndsvisning",
        "showdiff": "Vis ændringer",
        "blankarticle": "<strong>Advarsel:</strong> Siden du opretter er tom.\nHvis du klikker på \"{{int:savearticle}}\" igen, vil siden blive oprettet uden indhold.",
-       "anoneditwarning": "<strong>Advarsel:</strong> Du er ikke logget ind. Din IP-adresse vil blive offentligt tilgængelig, hvis du foretager nogen ændringer. Hvis du <strong>[$1 logger ind]</strong> eller <strong>[$2 opretter en konto]</strong> vil dine redigeringer vil blive tilskrevet dit brugernavn, og du vil få flere andre fordele.",
+       "anoneditwarning": "<strong>Advarsel:</strong> Du er ikke logget på. Din IP-adresse vil blive offentligt tilgængelig, hvis du foretager nogen ændringer. Hvis du <strong>[$1 logger på]</strong> eller <strong>[$2 opretter en konto]</strong> vil dine redigeringer blive tilskrevet dit brugernavn, og du vil få flere andre fordele.",
        "anonpreviewwarning": "''Du er ikke logget på. Hvis du gemmer, registreres din IP-adresse i versionshistorikken.''",
        "missingsummary": "'''Bemærk:''' Du har ikke angivet en redigeringsbeskrivelse. Hvis du igen trykker på \"{{int:savearticle}}\", gemmes ændringerne uden en beskrivelse.",
        "selfredirect": "<strong>Advarsel:</strong> Du er ved at omdirigere denne side til sig selv.\nDu kan have angivet det forkerte mål for omdirigeringen, eller du kan være ved at redigere den forkerte side.\nHvis du klikker på \"{{int:savearticle}}\" igen, vil omdirigeringen blive oprettet uanset dette.",
        "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",
        "prevn": "forrige {{PLURAL:$1|$1}}",
        "nextn": "næste {{PLURAL:$1|$1}}",
        "prevn-title": "Forrige $1 {{PLURAL:$1|resultat|resultater}}",
-       "nextn-title": "Næste $1 {{PLURAL:$1|resultat|resultater}}",
+       "nextn-title": "Næste {{PLURAL:$1|resultat|$1 resultater}}",
        "shown-title": "Vis $1 {{PLURAL:$1|resultat|resultater}} per side",
        "viewprevnext": "Vis ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Der er en side med navnet \"[[:$1]]\" på denne wiki'''",
        "searchrelated": "relateret",
        "searchall": "alle",
        "showingresults": "Nedenfor vises <b>$1</b> {{PLURAL:$1|resultat|resultater}} startende med nummer <b>$2</b>.",
+       "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-ns": "Søg i navnerummene:",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (se også [[Special:NewPages|listen over nye sider]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Nedenfor er op til '''$1''' {{PLURAL:$5|ændring|ændringer}} siden '''$2''' vist.",
-       "rclistfrom": "Vis nye ændringer startende fra $3 $2",
+       "rclistfrom": "Vis nye ændringer startende fra den $3 kl. $2",
        "rcshowhideminor": "$1 mindre ændringer",
        "rcshowhideminor-show": "Vis",
        "rcshowhideminor-hide": "Skjul",
        "recentchangeslinked": "Relaterede ændringer",
        "recentchangeslinked-feed": "Relaterede ændringer",
        "recentchangeslinked-toolbox": "Relaterede ændringer",
-       "recentchangeslinked-title": "Ændringer der relaterer til $1",
-       "recentchangeslinked-summary": "Denne specialside viser de seneste ændringer på de sider der henvises til. Sider på din overvågningsliste er vist med '''fed''' skrift.",
-       "recentchangeslinked-page": "Side:",
+       "recentchangeslinked-title": "Ændringer der relaterer til \"$1\"",
+       "recentchangeslinked-summary": "Dette er en liste over de seneste ændringer af sider, der linkes til fra en bestemt side (eller medlemmer af en bestemt kategori).\nSider på [[Special:Watchlist|din overvågningsliste]] er vist med '''fed''' skrift.",
+       "recentchangeslinked-page": "Sidenavn:",
        "recentchangeslinked-to": "Vis ændringer i sider der henviser til den angivne side i stedet",
        "upload": "Læg en fil op",
        "uploadbtn": "Læg en fil op",
        "duplicatesoffile": "Følgende {{PLURAL:$1|fil er en dublet|filer er dubletter}} af denne fil ([[Special:FileDuplicateSearch/$2|flere detaljer]]):",
        "sharedupload": "Denne fil er fra $1 og kan bruges af andre projekter.",
        "sharedupload-desc-there": "Denne fil er fra $1 og kan bruges på andre projekter.\nSe [$2 filbeskrivelsessiden] for nærmere information.",
-       "sharedupload-desc-here": "Denne fil er fra $1 og kan bruges på andre projekter.\nIndholdet på dens [$2 filbeskrivelsesside] er vist herunder.",
+       "sharedupload-desc-here": "Denne fil er fra $1 og kan bruges på andre projekter.\nIndholdet på dens [$2 filbeskrivelsesside] der er vist herunder.",
        "sharedupload-desc-edit": "Denne fil er fra $1 og kan bruges af andre projekter.\nMåske vil du redigere beskrivelsen på dens [$2 filbeskrivelsesside] der.",
        "sharedupload-desc-create": "Denne fil er fra $1 og kan bruges af andre projekter.\nMåske vil du redigere beskrivelsen på dens [$2 filbeskrivelsesside] der.",
        "filepage-nofile": "Der er ingen fil med det navn.",
        "tooltip-pt-anonuserpage": "Brugersiden for den ip-adresse du redigerer som",
        "tooltip-pt-mytalk": "Din diskussionsside",
        "tooltip-pt-anontalk": "Diskussion om redigeringer fra denne ip-adresse",
-       "tooltip-pt-preferences": "Mine indstillinger",
+       "tooltip-pt-preferences": "Dine indstillinger",
        "tooltip-pt-watchlist": "Listen over sider du overvåger for ændringer.",
        "tooltip-pt-mycontris": "Liste over dine bidrag",
        "tooltip-pt-login": "Du opfordres til at logge på, men det er ikke obligatorisk.",
        "tooltip-search": "Søg på {{SITENAME}}",
        "tooltip-search-go": "Vis en side med præcis dette navn, hvis den findes",
        "tooltip-search-fulltext": "Søg efter sider der indeholder denne tekst",
-       "tooltip-p-logo": "Forsiden",
+       "tooltip-p-logo": "Besøg forsiden",
        "tooltip-n-mainpage": "Besøg forsiden",
        "tooltip-n-mainpage-description": "Besøg forsiden",
        "tooltip-n-portal": "Om projektet, hvad du kan gøre, hvor tingene findes",
        "tooltip-n-currentevents": "Find baggrundsinformation om aktuelle begivenheder",
        "tooltip-n-recentchanges": "Listen over de seneste ændringer i wikien.",
        "tooltip-n-randompage": "Gå til en tilfældig side",
-       "tooltip-n-help": "Hvordan gør jeg ...",
+       "tooltip-n-help": "Stedet hvor du finder hjælp",
        "tooltip-t-whatlinkshere": "Liste med alle sider som henviser hertil",
        "tooltip-t-recentchangeslinked": "Seneste ændringer i sider som denne side henviser til",
        "tooltip-feed-rss": "RSS-feed for denne side",
        "tooltip-t-specialpages": "Liste over alle specialsider",
        "tooltip-t-print": "Printervenlig udgave af denne side",
        "tooltip-t-permalink": "Permanent henvisning til denne version af denne side",
-       "tooltip-ca-nstab-main": "Se indholdet",
+       "tooltip-ca-nstab-main": "Se indholdssiden",
        "tooltip-ca-nstab-user": "Se brugersiden",
        "tooltip-ca-nstab-media": "Se mediasiden",
        "tooltip-ca-nstab-special": "Dette er en specialside; man kan ikke redigere sådanne sider",
        "tags": "Tags til sideversioner",
        "tag-filter": "[[Special:Tags|Tag]]filter:",
        "tag-filter-submit": "Filtrér",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
        "tags-title": "Tags",
        "tags-intro": "Denne side oplister de tags som programmet kan mærke en redigering med, og deres betydning.",
        "tags-tag": "Tagnavn",
index e827d01..00b000e 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}}",
        "no-null-revision": "Die neue Nullversion für die Seite „$1“ konnte nicht erstellt werden",
        "badtitle": "Ungültiger Titel",
        "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-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-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.",
        "querypage-no-updates": "Die Aktualisierungsfunktion dieser Seite ist zurzeit deaktiviert.\nDie Daten werden bis auf Weiteres nicht erneuert.",
        "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.",
        "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",
        "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",
index 889fbc0..ef3efcf 100644 (file)
        "preview": "Verqayt",
        "showpreview": "Verqayti bımocne",
        "showdiff": "Vurnayışan bımocne",
-       "anoneditwarning": "<strong>İqaz:</strong> Şıma be hesabê xo nêkewtê cı. \nAdresê şımaê IP tarixê vırnayışê na pele de do qeyd bo.",
+       "anoneditwarning": "<strong>İqaz:</strong> Şıma be hesabê xo nêkewtê cı. \nAdresê şımayê IP tarixê vırnayışê na pele de do qeyd bo. Eke şıma <strong>[$1 cıkewê]</strong> ya zi <strong>[$2 hesab vırazê]</strong>, vurnayışê şıma be zewbina kare ra nameyê şıma rê bar beno.",
        "anonpreviewwarning": "\"Şıma be hesabê xo nêkewtê cı. Eke qeyd kerê, adresê şımaê IP tarixê vırnayışê na pele de do qeyd bo.\"",
        "missingsummary": "'''DİQET:''' Şıma jû xulasa nênuşte.\nEke şıma \"{{int:savearticle}}\" reyna bıtıknê, vırnayışê şıma bê xulasa qeyd beno.",
        "missingcommenttext": "Cêr de jû fıkır bınusên, şıma rê zehmet.",
        "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",
index 295db5a..feab412 100644 (file)
        "import-interwiki-history": "Importěruj wšykne wersije toś togo boka",
        "import-interwiki-templates": "Wše pśedłogi zapśěgnuś",
        "import-interwiki-submit": "Importěrowaś",
-       "import-interwiki-namespace": "Celowy mjenjowy rum:",
-       "import-interwiki-rootpage": "Celowy kórjenjowy bok (opcionalny):",
        "import-upload-filename": "Datajowe mě:",
        "import-comment": "Komentar:",
        "importtext": "Eksportěruj pšosym dataju ze žredlowego wikija z pomocu [[Special:Export|eksporteje funkcije]]. Składuj ju na swójom licadle a nagraj ju sem.",
index 77f0a36..ac0a415 100644 (file)
        "backend-fail-contenttype": "Impusébil stabilîr al gèner di file 'd archiviêr in \"$1\".",
        "backend-fail-batchsize": "Al sistēma 'd memōria l'à dê  un totêl ed \"$1\" 'd {{PLURAL:$1|operazione|operasiòun}} 'd archévi; al lémit l' é 'd \"$2\"  'd {{PLURAL:$2|operazione|operasiòun}}.",
        "backend-fail-usable": "Impusébil lēzer o scréver al file \"$1\" a câşva ed dirét insuficînt o a mânca l'indirés al  sistēma di file/spâsi insuficînt.",
+       "filejournal-fail-dbconnect": "Impusébil coleghêres al database e da l'é mandêrel al terminêl ed memōria \"$1\".",
+       "filejournal-fail-dbquery": "Impusébil arnuvêr al database e da l'é mandêrel al terminêl ed memōria \"$1\".",
+       "lockmanager-notlocked": "Impusébil şbluchêr \"$1\"; an n'é mìa bluchê.",
+       "lockmanager-fail-closelock": "Impusébil sarêr al file 'd blôch per \"$1\"",
+       "lockmanager-fail-deletelock": "Impusébil eliminêr al file 'd blôch per \"$1\"",
+       "lockmanager-fail-acquirelock": "Impusébil utgnîr blôch per \"$1\".",
+       "lockmanager-fail-openlock": "Impusébil arvîr al file 'd blôch per \"$1\".",
+       "lockmanager-fail-releaselock": "Impusébil liberêr al blôch per \"$1\".",
+       "lockmanager-fail-db-bucket": "Impusébil coleghêr i databes ed blôch necesâri int al recipiĵnt $1.",
+       "lockmanager-fail-db-release": "Impusébil tōr via i blôch al database $1.",
+       "lockmanager-fail-svr-acquire": "Impusébil avèir blôch dal servèint $1.",
+       "lockmanager-fail-svr-release": "Impusébil tōr via i blôch al servèint $1.",
+       "zip-file-open-error": "É sucès un erōr mèinter a s'arvîva al file per i cuntròl ZIP.",
+       "zip-wrong-format": "Al file sgnê an n'é mìa un file ZIP.",
+       "zip-bad": "Al file l'é un file ZIP ruvinê opór an pōl mìa lēzer. An pōl mìa èser controlê bèin per la sicurèsa.",
        "license": "Licèinsa:",
        "license-header": "Licèinsa",
        "nolicense": "Nisóna licèinsa sgnêda",
index 62ca344..97e5cfb 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-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": "(σχόλιο αφαιρέθηκε)",
+       "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-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": "'''Η ορατότητα γεγονότος τέθηκε επιτυχώς.'''",
        "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 ενδιάμεσες αναθεωρήσεις}} από τον ίδιο χρήστη δεν εμφανίζεται)",
        "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 άλλων χρηστών",
        "action-viewmywatchlist": "προβάλετε τη λίστα παρακολούθησής σας",
        "action-viewmyprivateinfo": "προβάλετε τις προσωπικές σας πληροφορίες",
        "action-editmyprivateinfo": "επεξεργαστείτε τις προσωπικές σας πληροφορίες",
+       "action-editcontentmodel": "επεξεργαστείτε το μοντέλο περιεχομένου σελίδας",
        "nchanges": "$1 {{PLURAL:$1|αλλαγή|αλλαγές}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|από την τελευταία επίσκεψη}}",
        "enhancedrc-history": "ιστορικό",
        "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": "Î\95μÏ\86άνιÏ\83η/αÏ\80Ï\8cκÏ\81Ï\85Ï\88η ÎµÏ\80ιλεγμένÏ\89ν ÎºÎ±Ï\84αÏ\87Ï\89Ï\81ήÏ\83εÏ\89ν Ï\83Ï\84η Î»Î¯Ï\83Ï\84α ÎºÎ±Ï\84αγÏ\81αÏ\86Ï\8eν",
+       "showhideselectedlogentries": "Î\91λλαγή Î¿Ï\81αÏ\84Ï\8cÏ\84ηÏ\84αÏ\82 Ï\84Ï\89ν ÎµÏ\80ιλεγμένÏ\89ν ÎºÎ±Ï\84αÏ\87Ï\89Ï\81ήÏ\83εÏ\89ν Ï\83Ï\84ο Î±Ï\81Ï\87είο ÎºÎ±Ï\84αγÏ\81αÏ\86ήÏ\82 Ï\83Ï\85μβάνÏ\84Ï\89ν",
        "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-interwiki-namespace": "Προορισμός στον ονοματοχώρο:",
-       "import-interwiki-rootpage": "Ριζική σελίδα προορισμού (προαιρετικό):",
+       "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-not-found": "Η ετικέτα «$1» δεν υπάρχει.",
+       "tags-activate-title": "Ενεργοποίηση ετικέτας",
        "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-move-move": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4",
        "logentry-move-move-noredirect": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 χωρίς να αφήσει ανακατεύθυνση",
index 8afed1a..2685701 100644 (file)
        "no-null-revision": "Could not create new null revision for page \"$1\"",
        "badtitle": "Bad title",
        "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-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-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.",
        "querypage-no-updates": "Updates for this page are currently disabled.\nData here will not presently be refreshed.",
index a09c0f6..afad28d 100644 (file)
        "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",
        "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",
        "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-edit": "redakti",
        "tags-hitcount": "$1 {{PLURAL:$1|ŝanĝo|ŝanĝoj}}",
+       "tags-create-reason": "Kialo:",
+       "tags-create-submit": "Krei",
+       "tags-delete-reason": "Kialo:",
+       "tags-activate-reason": "Kialo:",
+       "tags-deactivate-reason": "Kialo:",
+       "tags-edit-reason": "Kialo:",
        "comparepages": "Kompari paĝojn",
        "compare-page1": "Paĝo 1",
        "compare-page2": "Paĝo 2",
        "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-error-title": "Eraro",
        "feedback-error1": "Eraro: Nerekonita rezulto de API",
        "feedback-error2": "Eraro: La redakto malsukcesis",
        "feedback-error3": "Eraro: Neniu respondo de API",
        "feedback-message": "Mesaĝo:",
        "feedback-subject": "Temo:",
-       "feedback-submit": "Sendi Mesaĝon",
+       "feedback-submit": "Sendi",
        "feedback-thanks": "Dankon! Via opinio-esprimo estis afiŝita al la paĝo \"[$2 $1]\".",
+       "feedback-thanks-title": "Dankon!",
        "searchsuggest-search": "Serĉi",
        "searchsuggest-containing": "enhavas...",
        "api-error-badaccess-groups": "Vi ne havas permeson alŝuti dosierojn al tiu ĉi vikio.",
index 256f0a1..a1b4565 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 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 contiene un enlace interwiki",
+       "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 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.",
        "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]].",
        "rev-suppressed-unhide-diff": "Una de las revisiones ha sido <strong>suprimida</strong>.\nPara más información, consulta el [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registro de supresiones].\nAún puedes [$1 ver la diferencia] si lo deseas.",
        "rev-deleted-diff-view": "Una de las revisiones ha sido <strong>eliminada</strong>.\nAún tienes la posibilidad de verla. Para más información, consulta el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].",
        "rev-suppressed-diff-view": "Una de las revisiones ha sido <strong>suprimida</strong>.\nAún tienes la posibilidad de verla. Para más información, consulta el [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registro de supresiones].",
-       "rev-delundel": "mostrar/ocultar",
+       "rev-delundel": "cambiar visibilidad",
        "rev-showdeleted": "mostrar",
        "revisiondelete": "Borrar/restaurar revisiones",
        "revdelete-nooldid-title": "La revisión destino es incorrecta",
        "revdelete-failure": "No se ha podido cambiar la visibilidad de las revisiones:\n$1",
        "logdelete-success": "Se ha cambiado con éxito la visibilidad de los eventos.",
        "logdelete-failure": "No se pudo cambiar la visibilidad de los eventos:\n$1",
-       "revdel-restore": "mostrar/ocultar",
+       "revdel-restore": "cambiar visibilidad",
        "pagehist": "Historial de la página",
        "deletedhist": "Historial borrado",
        "revdelete-hide-current": "Error al ocultar la revisión del $1 a las $2: es la revisión actual y no se puede ocultar.",
        "alllogstext": "Vista combinada de todos los registros de {{SITENAME}}.\nPuedes filtrar la vista seleccionando un tipo de registro, el nombre del usuario o la página afectada. Se distinguen mayúsculas de minúsculas.",
        "logempty": "No hay elementos en el registro con esas condiciones.",
        "log-title-wildcard": "Buscar títulos que empiecen con este texto",
-       "showhideselectedlogentries": "Mostrar u ocultar las entradas seleccionadas del registro",
+       "showhideselectedlogentries": "Cambiar la visibilidad de las entradas del registro seleccionadas",
        "log-edit-tags": "Editar las etiquetas de las entradas del registro seleccionadas",
        "allpages": "Todas las páginas",
        "nextpage": "Siguiente página ($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:",
        "autoblocker": "Has sido bloqueado automáticamente porque tu dirección IP ha sido usada recientemente por «[[User:$1|$1]]».\nEl motivo por el que se bloqueó a [[User:$1|$1]] es «$2».",
        "blocklogpage": "Registro de bloqueos",
        "blocklog-showlog": "Este usuario ha sido bloqueado previamente. Debajo se provee el registro de bloqueos para mayor referencia:",
-       "blocklog-showsuppresslog": "Este usuario ha sido bloqueado y ocultado. Se provee el registro de supresiones para más detalle:",
+       "blocklog-showsuppresslog": "Este usuario ha sido bloqueado y ocultado con anterioridad.\nEl registro de supresiones se muestra debajo como referencia:",
        "blocklogentry": "bloqueó a [[$1]] por un periodo de: $2 $3",
        "reblock-logentry": "cambió el bloqueo para  [[$1]] con una caducidad de $2 $3",
        "blocklogtext": "Esto es un registro de acciones de bloqueo y desbloqueo de usuarios.\nLas direcciones IP bloqueadas automáticamente no aparecen aquí.\nConsulta la [[Special:BlockList|lista de bloqueos]] para ver la lista de bloqueos y prohibiciones de operar en vigor.",
        "ipb_already_blocked": "La cuenta «$1» ya está bloqueada.",
        "ipb-needreblock": "$1 ya está bloqueado. ¿Quieres cambiar el bloqueo?",
        "ipb-otherblocks-header": "{{PLURAL:$1|Otro bloqueo|Otros bloqueos}}",
-       "unblock-hideuser": "No se puede desbloquear a este usuario, porque su nombre de usuario está oculto.",
+       "unblock-hideuser": "No puedes desbloquear a este usuario porque su nombre ha sido ocultado.",
        "ipb_cant_unblock": "'''Error''': Número ID $1 de bloqueo no encontrado. Pudo haber sido desbloqueado ya.",
        "ipb_blocked_as_range": "Error: la dirección IP $1 no está bloqueada directamente y no puede ser desbloqueada.\nSin embargo, está bloqueada como parte del rango $2, que puede ser desbloqueado.",
        "ip_range_invalid": "El rango de IP no es válido.",
        "sorbsreason": "Su dirección IP está listada como proxy abierto en DNSBL.",
        "sorbs_create_account_reason": "Su dirección IP está listada como proxy abierto en DNSBL. No puede crear una cuenta",
        "xffblockreason": "Una dirección IP presente en la cabecera X-Forwarded-For, tuya o del servidor proxy que estás usando, ha sido bloqueada. El motivo original del bloqueo fue: $1",
-       "cant-see-hidden-user": "El usuario que está intentando bloquear ya ha sido bloqueado y oculto. Puesto que usted no tiene el derecho hideuser, usted no puede ver o editar los bloqueos del usuario.",
+       "cant-see-hidden-user": "El usuario que estas intentando bloquear ya ha sido bloqueado y ocultado.\nDado que no tienes permisos suficientes no puedes ver ni editar el bloqueo de este usuario.",
        "ipbblocked": "No puedes bloquear o desbloquear a otros usuarios porque estás bloqueado",
        "ipbnounblockself": "No puedes desbloquearte",
        "lockdb": "Bloquear la base de datos",
        "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í.",
        "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",
index 935795c..782feaa 100644 (file)
        "no-null-revision": "Lehekülje \"$1\" nullredaktsiooni ei õnnestunud teha.",
        "badtitle": "Vigane pealkiri",
        "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-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-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}}.",
        "querypage-no-updates": "Lehekülje uuendamine ei ole hetkel lubatud ning andmeid ei värskendata.",
index 427c023..c498ae3 100644 (file)
        "import-interwiki-history": "Copial tolas velsionis estóricas d'esta páhina",
        "import-interwiki-templates": "Encruil tolos cuairus",
        "import-interwiki-submit": "Emporteal",
-       "import-interwiki-namespace": "Movel páginas al espáciu nombris:",
        "import-upload-filename": "Nombri del archivu:",
        "import-comment": "Comentáriu:",
        "importstart": "Emporteandu páhinas...",
index d011fe2..aa6bb10 100644 (file)
        "february-gen": "فوریهٔ",
        "march-gen": "مارس",
        "april-gen": "آوریل",
-       "may-gen": "مه",
+       "may-gen": "مهٔ",
        "june-gen": "ژوئن",
        "july-gen": "ژوئیهٔ",
        "august-gen": "اوت",
        "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 بایت نویسهٔ یونیکد باشد.",
+       "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": "(جزئیات سیاهه پاک شده)",
        "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": "بندانگشتی",
        "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": "فهرست پی‌گیری",
        "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": "اوه! پوسته پیش‌فرض برای ویکی شما تعریف‌شده در <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:* همسانه‌سازی یکی از مخازن <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> بچسبانید تا {{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 ('''غیر فعال''')",
index c6c3fc2..5a0be1b 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": "Nimessä on kieltenvälinen linkki",
+       "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 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ä.",
        "tags-edit-add": "Lisää nämä merkkaukset:",
        "tags-edit-remove": "Poista nämä merkkaukset:",
        "tags-edit-remove-all-tags": "(poista kaikki merkkaukset)",
-       "tags-edit-chosen-placeholder": "Valitse joitakin merkkauksia",
+       "tags-edit-chosen-placeholder": "Valitse jokin merkkaus",
        "tags-edit-chosen-no-results": "Ei löytynyt vastaavia merkkauksia",
        "tags-edit-reason": "Syy:",
-       "tags-edit-revision-submit": "Lähetä tekemäsi muutokset {{PLURAL:$1|tähän versioon|$1 versioon}}",
+       "tags-edit-revision-submit": "Toteuta muutokset {{PLURAL:$1|tähän versioon|$1 versioon}}",
        "tags-edit-logentry-submit": "Lähetä muutoksesi {{PLURAL:$1|tähän lokimerkintään|$1 lokimerkintään}}",
        "tags-edit-success": "Muutokset on onnistuneesti toteutettu.",
        "tags-edit-failure": "Muutoksia ei voitu toteuttaa: $1",
        "logentry-managetags-delete": "$1 {{GENDER:$2|tuhosi}} merkkauksen \"$4\" (poistettu $5 {{PLURAL:$5|sivuversiosta tai lokimerkinnästä}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|aktivoi}} merkkauksen \"$4\" käyttäjien ja bottien käytettäväksi",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|otti pois käytöstä}} merkkauksen \"$4\" käyttäjiltä ja boteilta",
-       "log-name-tag": "Merkkausten loki",
+       "log-name-tag": "Merkkausloki",
+       "log-description-tag": "Tällä sivulla näytetään käyttäjien lisäämät tai poistamat [[Special:Tags|merkkaukset]] yksittäisissä sivuversioissa tai lokimerkinnöissä. Lokiin eivät kirjaudu merkkaukset silloin, kun ne tulevat muokkaamisen, poistamisen tai muun vastaavan toimenpiteen yhteydessä.",
        "logentry-tag-update-add-revision": "$1 {{GENDER:$2|lisäsi}} {{PLURAL:$7|merkkauksen|merkkaukset}} $6 kohdeversioon $4 sivulla $3",
        "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|lisäsi}} {{PLURAL:$7|merkkauksen|merkkaukset}} $6 lokimerkintään $5 sivulla $3",
        "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|poisti}} {{PLURAL:$9|merkkauksen|merkkaukset}} $8 kohdeversiosta $4 sivulla $3",
index 356cf0c..adeaad2 100644 (file)
                        "Yzelf",
                        "0x010C",
                        "Thibaut120094",
-                       "NemesisIII"
+                       "NemesisIII",
+                       "Housterdam",
+                       "Chlomoh",
+                       "Wladek92"
                ]
        },
        "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": "Le titre contient un lien interwiki",
+       "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": "Le titre de la page demandée est trop long. Il ne doit pas dépasser $1 octets encodés en 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.",
        "passwordtooshort": "Votre mot de passe doit contenir au moins $1 caractère{{PLURAL:$1||s}}.",
        "passwordtoolong": "Les mots de passe ne peuvent pas dépasser {{PLURAL:$1|1 caractère|$1 caractères}}.",
        "password-name-match": "Votre mot de passe doit être différent de votre nom d'utilisateur.",
-       "password-login-forbidden": "L'utilisation de ce nom d'utilisateur et de ce mot de passe a été interdite.",
+       "password-login-forbidden": "L'utilisation de ce nom d'utilisateur et/ou de ce mot de passe a été interdite.",
        "mailmypassword": "Réinitialiser le mot de passe",
        "passwordremindertitle": "Nouveau mot de passe temporaire pour {{SITENAME}}",
        "passwordremindertext": "Quelqu'un (probablement vous, ayant l'adresse IP $1) a demandé un nouveau mot de\npasse pour {{SITENAME}} ($4). Un mot de passe temporaire a été créé pour\nl'utilisateur « $2 » et est « $3 ». Si cela était votre intention, vous devrez\nvous connecter et choisir un nouveau mot de passe.\nVotre mot de passe temporaire expirera dans $5 jour{{PLURAL:$5||s}}.\n\nSi vous n'êtes pas l'auteur de cette demande, ou si vous vous souvenez à présent\nde votre ancien mot de passe et que vous ne souhaitez plus en changer, vous\npouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
        "revdelete-modify-missing": "Erreur lors de la modification de l'élément avec l'ID $1 : il est manquant dans la base de données !",
        "revdelete-no-change": "'''Attention :''' L'élément daté du $1 à $2 a déjà les paramètres de visibilité demandés.",
        "revdelete-concurrent-change": "Erreur lors de la modification de l'élément daté du $1 à $2 : son statut a été changé par quelqu'un d'autre pendant que vous le modifiez.\nVérifiez les journaux.",
-       "revdelete-only-restricted": "Erreur lors de la suppression de l'entrée datée du $1 à $2 : vous ne pouvez pas supprimer ces éléments aux administrateurs sans également sélectionner des autres options de suppression.",
+       "revdelete-only-restricted": "Erreur lors de la suppression de l'entrée datée du $1 à $2 : vous ne pouvez pas supprimer ces éléments aux administrateurs sans également sélectionner les autres options de suppression.",
        "revdelete-reason-dropdown": "* Raisons courantes de suppression :\n** Violation des droits d'auteurs ;\n** Commentaires ou renseignements personnels inappropriés ;\n** Informations potentiellement diffamatoires.",
        "revdelete-otherreason": "Autre raison / raison supplémentaire :",
        "revdelete-reasonotherlist": "Autre raison",
        "uploadbtn": "Importer le fichier",
        "reuploaddesc": "Annuler et retourner au formulaire d'import",
        "upload-tryagain": "Envoyer la description du fichier modifiée",
-       "uploadnologin": "Pas connecté",
+       "uploadnologin": "Non connecté",
        "uploadnologintext": "Vous devez $1 pour importer des fichiers.",
        "upload_directory_missing": "Le répertoire d’import de fichier ($1) est introuvable et n’a pas pu être créé par le serveur web.",
        "upload_directory_read_only": "Le répertoire d’import de fichier ($1) n’est pas accessible en écriture depuis le serveur web.",
        "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.",
        "patrol-log-page": "Journal des relectures",
        "patrol-log-header": "Voici l’historique des versions relues.",
        "log-show-hide-patrol": "$1 l’historique des relectures",
-       "log-show-hide-tag": "balise de journal $1",
+       "log-show-hide-tag": "$1 le journal des balises",
        "deletedrevision": "Ancienne version $1 supprimée",
        "filedeleteerror-short": "Erreur lors de la suppression du fichier : $1",
        "filedeleteerror-long": "Des erreurs ont été rencontrées lors de la suppression du fichier :\n\n$1",
        "tags-edit-manage-link": "Gérer les balises",
        "tags-edit-revision-selected": "{{PLURAL:$1|Révision sélectionnée|Révisions sélectionnées}} de [[:$2]]:",
        "tags-edit-logentry-selected": "{{PLURAL:$1|Événement de journal sélectionné|Événements de journal sélectionnés}} :",
+       "tags-edit-revision-legend": "Ajouter ou enlever des balises de {{PLURAL:$1|cette révision|toutes les $1 révisions}}",
+       "tags-edit-logentry-legend": "Ajouter ou enlever les balises de {{PLURAL:$1|cette entrée de journal|toutes les $1 entrées de journal}}",
+       "tags-edit-existing-tags": "Balises existantes :",
        "tags-edit-existing-tags-none": "\"Aucun\"",
+       "tags-edit-new-tags": "Nouvelles balises :",
+       "tags-edit-add": "Ajouter ces balises :",
+       "tags-edit-remove": "Enlever ces balises :",
+       "tags-edit-remove-all-tags": "(supprimer toutes les balises)",
+       "tags-edit-chosen-placeholder": "Sélectionner certaines balises",
+       "tags-edit-chosen-no-results": "Aucune balise correspondante trouvée",
        "tags-edit-reason": "Motif :",
+       "tags-edit-revision-submit": "Appliquer les modifications à {{PLURAL:$1|cette révision|$1 révisions}}",
+       "tags-edit-logentry-submit": "Appliquer les modifications à {{PLURAL:$1|cette entrée de journal|$1 entrées de journal}}",
        "tags-edit-success": "Les modifications ont été appliquées avec succès.",
+       "tags-edit-failure": "Les modifications n’ont pas pu être appliquées :\n$1",
+       "tags-edit-nooldid-title": "Révision cible non valide",
+       "tags-edit-nooldid-text": "Vous n’avez soit pas spécifié de révision cible sur laquelle exécuter cette fonction, soit la révision spécifiée n’existe pas.",
+       "tags-edit-none-selected": "Veuillez sélectionner au moins une balise à ajouter ou enlever.",
        "comparepages": "Comparer des pages",
        "compare-page1": "Page 1",
        "compare-page2": "Page 2",
        "logentry-managetags-delete": "$1 {{GENDER:$2|a supprimé}} la balise « $4 » (retirée {{PLURAL:$5|d'une révision ou entrée de journal|de $5 révisions ou entrées de journal}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|a activé}} la balise \"$4\" pour l’usage des utilisateurs et des robots",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|a désactivé}} la balise « $4 » pour l’usage des utilisateurs et des robots",
+       "log-name-tag": "Journal des balises",
+       "log-description-tag": "Cette page montre quand des utilisateurs ont ajouté ou supprimé des [[Special:Tags|balises]] de révisions individuelles ou d’entrées de journal. Le journal ne liste pas les actions de marquage quand elles ont lieu au cours d’une modification, d’une suppression, ou d’une action semblable.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|a ajouté}} {{PLURAL:$7|la balise|les balises}} $6 à la révision $4 de la page $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|a ajouté}} {{PLURAL:$7|la balise|les balises}} $6 à l’entrée de journal $5 de la page $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|a supprimé}} {{PLURAL:$9|la balise|les balises}} $8 de la révision $4 de la page $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|a supprimé}} {{PLURAL:$9|la balise|les balises}} $8 de l’entrée de journal $5 de la page $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|a mis à jour}} les balises de la révision $4 de la page $3 ($6 {{PLURAL:$7|ajoutée|ajoutées}} ; $8 {{PLURAL:$9|supprimée|supprimées}})",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|a mis à jour}} les balises de l’entrée de journal $5 de la page $3 ($6 {{PLURAL:$7|ajoutée|ajoutées}} ; $8 {{PLURAL:$9|supprimée|supprimées}})",
        "rightsnone": "(aucun)",
        "revdelete-summary": "résumé de modification",
        "feedback-adding": "Ajout de vos commentaires à la page...",
index 8c196eb..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",
        "otherlanguages": "Ôtres lengoues",
        "redirectedfrom": "(Redirigiêe dês $1)",
        "redirectpagesub": "Pâge de redirèccion",
+       "redirectto": "Redirigiér vers :",
        "lastmodifiedat": "Dèrriér changement de ceta pâge lo $1 a $2.",
        "viewcount": "Ceta pâge est étâye vua {{PLURAL:$1|un côp|$1 côps}}.",
        "protectedpage": "Pâge protègiêe",
        "login-abort-generic": "Voutra tentativa de branchement at pas reussi - Anulâye",
        "loginlanguagelabel": "Lengoua : $1",
        "suspicious-userlogout": "Voutra demanda de dèbranchement est étâye refusâye, semble qu’el est étâye mandâye per un navigator câsso ou ben la mêsa en cacho d’un proxi.",
+       "pt-login": "Sè branchiér",
+       "pt-login-button": "Sè branchiér",
+       "pt-createaccount": "Fâre un compto",
+       "pt-userlogout": "Sè dèbranchiér",
        "php-mail-error-unknown": "Fôta encognua dens la fonccion mail() de PHP.",
        "user-mail-no-addy": "Èprôva de mandar un mèssâjo sen adrèce èlèctronica.",
        "user-mail-no-body": "Èprôva de mandar un mèssâjo avouéc un côrp vouedo ou ben dèrêsonâblament côrt.",
        "action-siteadmin": "vèrrolyér ou ben dèvèrrolyér la bâsa de balyês",
        "action-sendemail": "mandar des mèssâjos",
        "nchanges": "$1 changement{{PLURAL:$1||s}}",
+       "enhancedrc-history": "historico",
        "recentchanges": "Dèrriérs changements",
        "recentchanges-legend": "Chouèx des dèrriérs changements",
        "recentchanges-summary": "Siude los dèrriérs changements du vouiqui sur ceta pâge.",
        "rcnotefrom": "Vê-que los changements fêts dês lo '''$2''' (tant qu’a '''$1''' montrâs).",
        "rclistfrom": "Montrar los novéls changements dês lo $3 $2",
        "rcshowhideminor": "$1 los petiôts changements",
+       "rcshowhideminor-show": "Montrar",
+       "rcshowhideminor-hide": "Cachiér",
        "rcshowhidebots": "$1 los robots",
+       "rcshowhidebots-show": "Montrar",
+       "rcshowhidebots-hide": "Cachiér",
        "rcshowhideliu": "$1 los utilisators branchiês",
+       "rcshowhideliu-hide": "Cachiér",
        "rcshowhideanons": "$1 los utilisators anonimos",
+       "rcshowhideanons-show": "Montrar",
+       "rcshowhideanons-hide": "Cachiér",
        "rcshowhidepatr": "$1 los changements gouardâs",
        "rcshowhidemine": "$1 los mins changements",
+       "rcshowhidemine-show": "Montrar",
+       "rcshowhidemine-hide": "Cachiér",
        "rclinks": "Montrar los $1 dèrriérs changements fêts pendent los $2 jorns passâs<br />$3",
        "diff": "dif",
        "hist": "hist",
        "booksources": "Ôvres de refèrence",
        "booksources-search-legend": "Rechèrchiér entre-mié les ôvres de refèrence",
        "booksources-isbn": "ISBN :",
+       "booksources-search": "Rechèrchiér",
        "booksources-text": "Vê-que na lista de lims de vers d’ôtros setos que vendont des lévros nôfs et d’ocasion, et pués pôvont avêr des enformacions de ples sur les ôvres que vos chèrchiéd :",
        "booksources-invalid-isbn": "L’ISBN balyê semble pas étre justo ; controlâd se vos éd fêt na fôta en copiyent la sôrsa originâla.",
        "specialloguserlabel": "Ôtor :",
        "import-interwiki-history": "Copiyér totes les vèrsions de l’historico de ceta pâge",
        "import-interwiki-templates": "Encllure tôs los modèlos",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Èspâço de noms de dèstinacion :",
-       "import-interwiki-rootpage": "Pâge racena de dèstinacion (u chouèx) :",
        "import-upload-filename": "Nom du fichiér :",
        "import-comment": "Comentèro :",
        "importtext": "Volyéd èxportar lo fichiér dês lo vouiqui d’origina en utilisent son [[Special:Export|outil d’èxportacion]].\nSôvâd-lo sur voutron ordenator et pués tèlèchargiéd-lo ique.",
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 e4f8d1d..f26d0ad 100644 (file)
        "expand_templates_output": "Risultât",
        "expand_templates_ok": "Va ben",
        "expand_templates_remove_comments": "Gjave i coments",
-       "expand_templates_preview": "Anteprime"
+       "expand_templates_preview": "Anteprime",
+       "special-characters-group-symbols": "Simbols"
 }
index da9d973..aa8b7b3 100644 (file)
        "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",
        "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",
        "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.",
        "passwordreset-email": "E-mailadres:",
        "passwordreset-emailtitle": "Akkountdetails op {{SITENAME}}",
        "changeemail": "Feroarje e-mailadres",
+       "changeemail-newemail": "Nij e-mailadres:",
        "changeemail-none": "(gjin)",
        "resettokens-token-label": "$1 (hjoeddeistige wearde: $2)",
        "bold_sample": "Fette tekst",
        "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.",
        "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.",
        "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-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:",
        "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",
        "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.",
        "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",
        "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-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",
        "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",
        "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",
        "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.",
        "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",
        "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.",
        "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.",
        "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-datetimeoriginal": "Tiidstip gegevensoanmaak",
        "exif-datetimedigitized": "Tiidstip digitalisearring",
        "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-focallength-format": "$1 mm",
        "exif-filesource": "Triemboarne",
        "exif-contrast": "Kontrast",
+       "exif-saturation": "Sêding",
        "exif-sharpness": "Skerpte",
        "exif-gpslatitude": "Breedtegraad",
        "exif-gpslongitude": "Lingtegraad",
        "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-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-pol": "Polityk",
+       "exif-iimcategory-sci": "Wittenskip en technology",
+       "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-other": "Oare",
        "version-version": "($1)",
        "version-no-ext-name": "[gjin namme]",
-       "version-license": "Lisinsje",
+       "version-license": "Lisinsje foar MediaWiki",
+       "version-ext-license": "Lisinsje",
        "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:",
        "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-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-edit-existing-tags-none": "''Gjin''",
        "comparepages": "Siden ferlykje",
        "compare-page1": "Side 1",
        "compare-page2": "Side 2",
        "revdelete-summary": "gearfetting bewurkje",
        "feedback-cancel": "Annulearje",
        "feedback-close": "Dien",
+       "feedback-error-title": "Flater",
        "feedback-message": "Berjocht:",
        "feedback-subject": "Ûnderwerp:",
        "feedback-submit": "Ferstjoere",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|byte|bytes}}",
        "limitreport-expansiondepth-value": "$1/$2",
        "limitreport-expensivefunctioncount-value": "$1/$2",
+       "expand_templates_xml_output": "XML-útfier",
        "expand_templates_ok": "OK",
        "expand_templates_remove_comments": "Berjochten fuorthelje",
+       "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-nfiles": "$1 ($2%)",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
        "mediastatistics-header-unknown": "Unbekend",
-       "special-characters-group-latin": "Latyn"
+       "mediastatistics-header-video": "Fideo's",
+       "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 b50d4bc..f498545 100644 (file)
        "import-upload": "Uaslódaigh sonraí XML",
        "import-token-mismatch": "Sonraí seisiún a bheith caillte. Déan iarracht arís.",
        "importlogpage": "Log iompórtáil",
-       "import-logentry-interwiki": "traisvicithe $1",
        "tooltip-pt-userpage": "Do leathanach úsáideora",
        "tooltip-pt-anonuserpage": "Leathanach úsáideora don IP ina dhéanann tú do chuid athruithe",
        "tooltip-pt-mytalk": "Do leathanach phlé",
index 80eff46..ba298f5 100644 (file)
        "import-interwiki-text": "拣正只wiki同页面标题去导入。修订日期同编辑人会一齐存到。全部𠮶跨 wiki 导入操作会到[[Special:Log/import|导入日志]]记到。",
        "import-interwiki-history": "复制个页𠮶全部历史",
        "import-interwiki-submit": "导入",
-       "import-interwiki-namespace": "拿页面移到空间名:",
        "import-comment": "说明:",
        "importtext": "请用 Special:Export 从源 wiki 导出档案,再存到倷𠮶磁盘然后上传到个首。",
        "importstart": "导入页面中...",
        "xml-error-string": "$1 位到 $2 行,$3 列 ($4字节):$5",
        "importlogpage": "导入日志",
        "importlogpagetext": "管理员由别𠮶 wiki 导入页面同到佢俚𠮶编辑历史记录。",
-       "import-logentry-upload": "通过档案上传导入𠮶[[$1]]",
        "import-logentry-upload-detail": "$1只修改",
-       "import-logentry-interwiki": "跨wiki$1",
        "import-logentry-interwiki-detail": "$2𠮶$1只修改",
        "tooltip-pt-userpage": "偶𠮶用户页",
        "tooltip-pt-anonuserpage": "倷编辑本站用𠮶IP对应𠮶用户页",
index 2837d29..1634938 100644 (file)
        "import-interwiki-text": "揀正隻wiki同頁面標題去導入。修訂日期同編輯人會一齊存到。全部嗰跨 wiki 導入操作會到[[Special:Log/import|導入日誌]]記到。",
        "import-interwiki-history": "複製箇頁嗰全部歷史",
        "import-interwiki-submit": "導入",
-       "import-interwiki-namespace": "拿頁面移到空間名:",
        "import-comment": "說明:",
        "importtext": "請用 Special:Export 從源 wiki 導出檔案,再存到倷嗰磁盤然後上傳到箇首。",
        "importstart": "導入頁面中...",
        "xml-error-string": "$1 位到 $2 行,$3 列 ($4字節):$5",
        "importlogpage": "導入日誌",
        "importlogpagetext": "管理員由別嗰 wiki 導入頁面同到佢俚嗰編輯歷史記錄。",
-       "import-logentry-upload": "通過檔案上傳導入嗰[[$1]]",
        "import-logentry-upload-detail": "$1隻修改",
-       "import-logentry-interwiki": "跨wiki$1",
        "import-logentry-interwiki-detail": "$2嗰$1隻修改",
        "tooltip-pt-userpage": "汝嗰用戶頁",
        "tooltip-pt-anonuserpage": "倷編輯本站用嗰IP對應嗰用戶頁",
index b9e018d..5f1fbf4 100644 (file)
        "no-null-revision": "Non se puido crear a nova revisión nula para a páxina \"$1\"",
        "badtitle": "Título incorrecto",
        "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-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-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é.",
        "querypage-no-updates": "Neste momento están desactivadas as actualizacións nesta páxina. O seu contido non se modificará.",
index 4b99ef0..431432b 100644 (file)
        "import-interwiki-history": "Ἀντιγράφειν ἁπάσας τὰς ἐκδόσεις τοῦ ἱστορικοῦ τῆσδε τῆς δέλτου",
        "import-interwiki-templates": "Συμπερίληψις ἁπάντων τῶν προτύπων",
        "import-interwiki-submit": "Εἰσάγειν",
-       "import-interwiki-namespace": "Ὀνοματεῖον προορισμός:",
        "import-upload-filename": "Ὄνομα ἀρχείου:",
        "import-comment": "Σχόλιον:",
        "importstart": "Εἰσάγειν δέλτους...",
        "import-invalid-interwiki": "Μὴ δυνατὴ ἡ εἰσαγωγὴ ἐκ τοῦ καθωρισμένου βίκι.",
        "importlogpage": "Εἰσάγειν κατάλογον",
        "importlogpagetext": "Διαχειριστικαὶ εἰσαγωγαὶ δέλτων ἐχουσῶν ἱστορικὸν μεταγραφῶν προερχόμενον ἐξ ἑτέρων βίκι.",
-       "import-logentry-upload": "εἰσήχθη τὸ [[$1]]",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|ἀναθεώρησις|ἀναθεωρήσεις}}",
-       "import-logentry-interwiki": "ὑπερδιαβικιπεποιημένη $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ἀναθεώρησις|ἀναθεωρήσεις}} ἐκ τοῦ $2",
        "tooltip-pt-userpage": "Ἡ δέλτος χρωμένου σου",
        "tooltip-pt-anonuserpage": "Ἡ δέλτος χρωμένου περὶ τοῦ ip ὅνπερ μεταγράφεις ὡς",
        "expandtemplates": "Ἐπεκτείνειν τὰ πρότυπα",
        "expand_templates_output": "Ἀποτέλεσμα",
        "expand_templates_ok": "εἶεν",
-       "expand_templates_preview": "Προθεώρησις"
+       "expand_templates_preview": "Προθεώρησις",
+       "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-hebrew": "Ἑβραϊκόν",
+       "special-characters-group-telugu": "Τελουγούϊον"
 }
index 3ac5b34..d5f0037 100644 (file)
        "import-interwiki-history": "Alli früeneri Versione vo dere Syte importiere",
        "import-interwiki-templates": "Mit allene Vorlage",
        "import-interwiki-submit": "Import",
-       "import-interwiki-namespace": "Ziilnamensruum:",
-       "import-interwiki-rootpage": "Ziilstammsyte (optional):",
        "import-upload-filename": "Dateiname:",
        "import-comment": "Grund:",
        "importtext": "Datei iber d Spezialsyte [[Special:Export|Exportfunktion]] us em Quellwiki exportiere.\nDie uf em lokale Rächner spychere un derno do uffelade.",
index 73a4c04..1f67999 100644 (file)
        "currentevents": "વર્તમાન ઘટનાઓ",
        "currentevents-url": "Project:વર્તમાન ઘટનાઓ",
        "disclaimers": "દાવેદારી ઇનકાર",
-       "disclaimerpage": "Project:સરà«\8dવસાધારણ àª¦àª¾àªµà«\87દારà«\80 ઇનકાર",
+       "disclaimerpage": "Project:સાધારણ ઇનકાર",
        "edithelp": "ફેરફારો માટે મદદ",
        "mainpage": "મુખપૃષ્ઠ",
        "mainpage-description": "મુખપૃષ્ઠ",
        "viewsourcetext": "આપ આ પાનાનો મૂળ સ્રોત નિહાળી શકો છો અને તેની નકલ (copy) પણ કરી શકો છો:",
        "viewyourtext": "આપ આ પાનાનાં '''આપનાં સંપાદનો'''નો મૂળ સ્રોત નિહાળી શકો છો અને તેની નકલ (copy) પણ કરી શકો છો:",
        "protectedinterface": "આ પાનું સોફ્ટવેર માટે ઇન્ટરફેઇસ ટેક્સટ આપે છે, અને તેને દુરુપયોગ રોકવા માટે સ્થગિત કર્યું છે.\nબધાંજ વિકિ માટે ભાષાંતર ઉમેરવા કે બદલવા માટે, કૃપા કરી [//translatewiki.net/ translatewiki.net], મિડિયાવિકિ સ્થાનિયકરણ પ્રકલ્પ, વાપરો.",
-       "editinginterface": "'''ચેતવણી:''' તમે જે પાનામાં ફેરફાર કરી રહ્યા છો તે પાનું સોફ્ટવેર માટે ઇન્ટરફેસ ટેક્સટ પુરી પાડે છે.\nઅહીંનો બદલાવ આ વિકિ પર ઉપસ્થિત અન્ય સભ્યોના ઇન્ટરફેસનાં દેખાવ ઉપર અસરકર્તા બનશે.\nબધાંજ વિકિ માટે ભાષાંતર ઉમેરવા કે બદલવા માટે કૃપા કરી [//translatewiki.net/ translatewiki.net], મિડિયાવિકી સ્થાનિયકરણ પ્રકલ્પ, વાપરો.",
+       "editinginterface": "<strong>ચેતવણી:</strong> તમે જે પાનામાં ફેરફાર કરી રહ્યા છો તે પાનું સોફ્ટવેર માટે ઇન્ટરફેસ ટેક્સટ પુરી પાડે છે.\nઅહીંનો બદલાવ આ વિકિ પર ઉપસ્થિત અન્ય સભ્યોના ઇન્ટરફેસનાં દેખાવ ઉપર અસરકર્તા બનશે.",
        "cascadeprotected": "આ પાના પર ફેરફાર પ્રતિબંધિત છે કેમ કે આ પાનું  {{PLURAL:$1|એવું પાનું|એવા પાના}} માં શામિલ છે જેમાં અનુવર્તી (પગથિયામય)સંરક્ષણ સક્રીય છે :\n$2",
        "namespaceprotected": "તમને '''$1''' નામાવકાશનાં પાનાંમાં ફેરફાર કરવાની પરવાનગી નથી.",
        "customcssprotected": "તમને આ પાનું બદલવાની પરવાનગી નથી કારણકે આ પાનામાં બીજા સભ્યની પસંદગીના સેટીંગ્સ છે.",
        "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": "ખરાબ રૂપરેખા: અજાણ્યું વાઇરસ સ્કેનર: ''$1''",
        "virus-scanfailed": "સ્કેન અસફળ (code $1)",
        "templatesusedpreview": "આ પૂર્વાવલોકનમાં વપરાયેલ {{PLURAL:$1|ઢાંચો|ઢાંચાઓ}}:",
        "templatesusedsection": "આ ખંડ માં વપરાયેલા {{PLURAL:$1|ઢાંચો|ઢાંચા}} :",
        "template-protected": "(સુરક્ષિત)",
-       "template-semiprotected": "(અર્ધ સુરક્ષિત)",
+       "template-semiprotected": "(અર્ધ-સુરક્ષિત)",
        "hiddencategories": "આ પાનું {{PLURAL:$1|૧ છુપી શ્રેણી|$1 છુપી શ્રેણીઓ}}નું સભ્ય છે:",
        "nocreatetext": "{{SITENAME}}માં નવું પાનુ બનાવવા ઉપર નિયંત્રણ આવી ગયું છે.\n<br />આપ પાછા જઇને હયાત પાનામાં ફેરફાર કરી શકો છો, નહિતર [[Special:UserLogin|પ્રવેશ કરો કે નવું ખાતું ખોલો]].",
        "nocreate-loggedin": "તમને નવાં પાનાં બનાવવાની પરવાનગી નથી.",
        "history-feed-empty": "આ પાનું અસ્તિત્વમાં નથી.\nશક્ય છે કે આ પાનું વિકિમાંથી દૂર કરવામાં આવ્યું હોય કે તેનું નામ બદલવામાં આવ્યું હોય.\nસંલગ્ન નવા પાનાઓ માટે [[Special:Search|વિકિમાં શોધી જુઓ]].",
        "rev-deleted-comment": "(ફેરફારોનો સારાંશ હટાવ્યો)",
        "rev-deleted-user": "(સભ્યનામ હટાવાયું)",
-       "rev-deleted-event": "(લà«\8bàª\97 àª\95à«\8dરિયા હટાવાઈ)",
+       "rev-deleted-event": "(લà«\8bàª\97 àªµàª¿àª\97તà«\8b હટાવાઈ)",
        "rev-deleted-user-contribs": "[સભ્યનામ કે IP સરનામું  હટાવી દેવાયું છે - યોગદાનામાં આ ફેરફાર અદ્રશ્ય છે]",
        "rev-deleted-text-permission": "આ પુનરાવર્તન હટાવી દેવાયું છે\nઆની વિસ્તરીત માહિતી અહીં મળશે [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-suppressed-text-permission": "આ પાનાં પરનું પુનરાવર્તન <strong>છુપાવવામાં</strong> આવ્યું છે. તેની વધુ વિગત [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} છુપાવાયેલના લોગ] પરથી મળશે.",
        "rev-showdeleted": "બતાવો",
        "revisiondelete": "પુનરાવર્તન રદ કરો/પુનર્જીવીત કરો",
        "revdelete-nooldid-title": "અવૈધ લક્ષ્ય ફેરફાર",
-       "revdelete-nooldid-text": "આ ક્રિયા જેના પર  કરવાની છે તે લક્ષ્ય ફેરફાર તમે જણાવ્યો નથી અથવા એવો કોઇ ફેરફાર અસ્તિત્વમાં નથી અથવા તમે હાલનો ફેરફાર સંતાડવાનો પ્રયત્ન કરી રહ્યાં છો.",
+       "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|Selected revision|પસંદ કરાયેલ પુનરાવર્તન}}",
        "logdelete-selected": "{{PLURAL:$1|પસંદગી કરેલ લોગ ઘટના | પસંદગી કરેલ લોગ ઘટનાઓ }}:",
-       "revdelete-confirm": "કૃપયા પુષ્ટિ કરો કે તમે શું કરી રહ્યા છો તેની અને તેના પરિણામોની તમને જાણ છે અને તમે આ બધું  [[{{MediaWiki:Policy-url}}|the policy]] અ6તર્ગત કરી રહ્યાં છો.",
+       "revdelete-confirm": "કૃપયા પુષ્ટિ કરો કે તમે શું કરી રહ્યા છો તેની અને તેના પરિણામોની તમને જાણ છે અને તમે આ બધું  [[{{MediaWiki:Policy-url}}|નીતિ]] અંતર્ગત કરી રહ્યાં છો.",
        "revdelete-suppress-text": "બળ પૂર્વક છુપાવવું \"માત્ર\" આજ સંજોગોમાં કરી શકાશે:\n* સંભવતઃ ભયાજનક માહિતી \n* અયોગ્ય નિજી માહિતી \n*: ''ઘરનું સરનામું અને ટેલિફોન નંબર, રાષ્ટ્રીય ઓળખ ક્રમાંકો વગેરે.''",
        "revdelete-legend": "દ્રશ્યતા સંબંધી પ્રતિબંધોને ગોઠવો",
        "revdelete-hide-text": "પુનરાવર્તન લખાણ",
        "revdelete-hide-image": "ફાઇલની માહિતી છુપાવો",
-       "revdelete-hide-name": "àª\95à«\8dરિયા àª\85નà«\87 àª²àª\95à«\8dષà«\8dય સંતાડો",
+       "revdelete-hide-name": "લàª\95à«\8dષà«\8dય àª\85નà«\87 àªªàª°àª¿àª®àª¾àª£à«\8b સંતાડો",
        "revdelete-hide-comment": "ફેરફાર સારાંશ",
        "revdelete-hide-user": "સંપાદકનું નામ /આઈ પી એડ્રેસ",
        "revdelete-hide-restricted": "પ્રબંધક કે અન્યો સૌની માહિતી છુપાવો",
        "revdelete-failure": "'''પુનરાવર્તનની દ્રશ્યતા બદલીન શકાઈ:'''\n$1",
        "logdelete-success": "લોગની દ્રશ્યતા સફળતાપૂર્વક ગોઠવાઈ",
        "logdelete-failure": "'''લોગની દ્રશ્યતા ગોઠવી ન શકાઈ :'''\n$1",
-       "revdel-restore": "દà«\83ષà«\8dàª\9fિàª\95à«\8dષમતા બદલો",
+       "revdel-restore": "દà«\83ષà«\8dયતા બદલો",
        "pagehist": "પાનાનો ઇતિહાસ",
        "deletedhist": "રદ કરેલનો ઇતિહાસ",
        "revdelete-hide-current": "$2, $1 તરીખ ધરાવતી વસ્તુ સંતાડવામાં ત્રુટિ : આ હાલનો ફેરફાર છે.\nઆને છુપાવી નહીં શકાય.",
        "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)",
        "right-deletedtext": "રદ્દ કરાયેલ લેખ અને રદ્દીકરણ વચ્ચેના ફેરફારો વાંચો",
        "right-browsearchive": "હટાવેલા પાનાની શોધ",
        "right-undelete": "હટાવેલ પાનું પુનર્જીવીત કરો",
-       "right-suppressrevision": "પà«\8dરબàª\82ધàª\95à«\8bથà«\80 àª¸àª\82તાડાયà«\87લ àª«à«\87રફારà«\8bનà«\81àª\82 àª\85વલà«\8bàª\95ન àª\85નà«\87 àªªà«\81નàª\83સà«\8dથાપન àª\95રà«\8b.",
+       "right-suppressrevision": "àª\95à«\8bàª\88પણ àª¸àª­à«\8dયàª\8f àªªàª¾àª¨àª¾àª\93 àªªàª° àª\95રà«\87લાàª\82 àª\9aà«\8bàª\95à«\8dàª\95સ àª«à«\87રફારà«\8b àª\9cà«\81àª\93, àª¸àª\82તાડà«\8b àª\95à«\87 àª¦à«\87àª\96ાતા àª\95રà«\8b",
        "right-suppressionlog": "નિજી લોગ જુઓ",
        "right-block": "આ સભ્ય દ્વારા થનાર ફેરફાર પ્રતિબંધીત કરો",
        "right-blockemail": "સભ્યના ઇ-મેલ મોકલવા પર પ્રતિબંધ મૂકો",
        "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": "વિગતો છુપાવો",
        "listfiles-latestversion-no": "ના",
        "file-anchor-link": "ફાઇલ/દસ્તાવેજ",
        "filehist": "ફાઇલનો ઇતિહાસ",
-       "filehist-help": "તારિખ/સમય ઉપર ક્લિક કરવાથી તે સમયે ફાઇલ કેવી હતી તે જોવા મળશે",
+       "filehist-help": "તારિખ/સમય ઉપર ક્લિક કરવાથી તે સમયે ફાઇલ કેવી હતી તે જોવા મળશે.",
        "filehist-deleteall": "બધા ભૂસો",
        "filehist-deleteone": "હટાવો",
        "filehist-revert": "પૂર્વવત કરો",
        "booksources-search": "શોધ",
        "booksources-text": "નીચે દર્શાવેલ યાદી એ કડીઓ બતાવે છે જેઓ નવા અને જૂના પુસ્તકો  વેચે છે , અને તમે માંગેલ વસ્તુ સંબંધિ વધુ મહિતી પણ ધરાવી શકે છે.",
        "booksources-invalid-isbn": "આપેલ ISBN વૈધ નથી લાગતો; મૂળ સ્રોતને ચકાસી, ભૂલ શોધી, ખરી માહિતી આપો.",
-       "specialloguserlabel": "àª\85ભિનય:",
+       "specialloguserlabel": "àª\95રà«\8dતા:",
        "speciallogtitlelabel": "લક્ષ્યાંક (શીર્ષક અથવા વપરાશકર્તા)",
        "log": "લૉગ",
        "all-logs-page": "બધાં જાહેર માહિતીપત્રકો",
        "emailccsubject": "$1ને તમે મોકલેલા સંદેશાની પ્રત: $2",
        "emailsent": "ઈ-મેલ મોકલી દેવાયો",
        "emailsenttext": "તમારો ઈ-મેલ મોકલી દેવાયો છે",
-       "emailuserfooter": "આ પત્ર $1 દ્વારા $2ને  {{SITENAME}} પરની \"સભ્યને ઇ-મેલ કરો\" કડી મારફતે મોકલવામાં આવ્યો છે.",
+       "emailuserfooter": "આ પત્ર $1 દ્વારા $2ને  {{SITENAME}} પરની \"{{int:emailpage}} (સભ્યને ઇ-મેલ કરો)\" કડી મારફતે મોકલવામાં આવ્યો છે.",
        "usermessage-summary": "તંત્ર સંદેશ મૂક્યો",
        "usermessage-editor": "તંત્ર સંદેશાઓ",
        "watchlist": "ધ્યાનસૂચી",
        "contribsub2": "($2) માટે {{GENDER:$3|$1}}",
        "nocontribs": "આ પરિમાણને મળતી પરિણામ નથી મળ્યાં",
        "uctop": "(વર્તમાન)",
-       "month": ":મહિનાથી (અને પહેલાનાં)",
-       "year": ":વર્ષથી (અને પહેલાનાં)",
+       "month": "આ મહિનાથી (અને તેના પહેલાનાં) →",
+       "year": "આ વર્ષથી (અને તેના પહેલાનાં) →",
        "sp-contributions-newbies": "માત્ર નવા ખુલેલાં ખાતાઓનું યોગદાન બતાવો",
        "sp-contributions-newbies-sub": "નવા ખાતાઓ માટે",
        "sp-contributions-newbies-title": "નવા ખાતાના સભ્યોનું યોગદાન",
        "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-upload": "ફાઇલ ચડાવો",
        "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": "આ પાનાનો સ્મૃતિ ભંડાર ખાલી કરું?",
        "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": "પ્રસ્થાપિત વિસ્તારકો",
        "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": "ટૅગ્સ",
        "logentry-delete-delete": "$1 દ્વારા પાનું $3 {{GENDER:$2|દૂર કરવામાં આવ્યું}}",
        "logentry-delete-restore": "$1 {{GENDER:$2|પુનઃસંગ્રહ}} પાનું $3",
        "logentry-delete-event": "$1 એ {{PLURAL:$5|લૉગ ઘટના|$5 લૉગ ઘટનાઓ}} ની દ્રશ્યતા $3 પર {{GENDER:$2|બદલેલ}} છે: $4",
-       "logentry-delete-revision": "$1 {{GENDER:$2|બદલà«\87લ}} àª¬àª¦àª²àª¾àª\88 àª¨àª¾ àª¦à«\83શà«\8dયતા {{PLURAL:$5 | àª¸à«\81ધારણા | $5 àª\86વà«\83તà«\8dતિàª\93}} $3 àªªàª¾àª¨àª¾àª\82 àªªàª°: $4",
+       "logentry-delete-revision": "$1 {{GENDER:$2|àª\8f}} àªªà«\83ષà«\8dઠ $3 àªªàª°àª¨àª¾ {{PLURAL:$5|àª\8fàª\95 àªªà«\81નરાવરà«\8dતન|$5 àªªà«\81નરાવરà«\8dતનà«\8b}}નà«\80 àª¦à«\83ષà«\8dયતા àª¬àª¦àª²à«\80: $4",
        "logentry-delete-event-legacy": "$1 એ $3 પર ફેરફારની દૃશ્યતા બદલી",
-       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|બદલેલ}} બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3",
+       "logentry-delete-revision-legacy": "પૃષ્ઠ $3 પરના પુનરાવર્તનોની દૃશ્યતા $1 {{GENDER:$2|એ બદલી}}",
        "logentry-suppress-delete": "$1 એ $3 પાનું {{GENDER:$2|દબાવ્યું}}",
        "logentry-suppress-event": "$1  ખાનગી રીતે {{GENDER:$2|દ્વારા માહિતીની દૃશ્યતા}} $3 : $4 પર બદલાઈ {{PLURAL:$5 | લોગ ઘટના | $5 લોગ}}",
-       "logentry-suppress-revision": "$1 છાની માહિતી {{GENDER:$2|બદલેલ}} બદલાઈ ના દૃશ્યતા {{PLURAL:$5 | આવૃત્તિ એ | $5 આવૃત્તિઓ}}: $4 $3 પાનાં પર",
+       "logentry-suppress-revision": "$1 {{GENDER:$2|એ છાનામાના}} પૃષ્ઠ $3 પરના {{PLURAL:$5|એક પુનરાવર્તન|$5 પુનરાવર્તનો}}ની દૃષ્યતા બદલી: $4",
        "logentry-suppress-event-legacy": "$1એ ગુપ્ત રીતે $3 પર લોગ ઘટનાઓની દૃશ્યતા બદલી",
        "logentry-suppress-revision-legacy": "$1 ગુપ્ત {{GENDER:$2|બદલેલ}} બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3",
        "revdelete-content-hid": "માહિતી છુપાવી",
        "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 તરફથી અજાણ પરિણામ",
index b972f29..9e33fee 100644 (file)
        "searchsuggest-search": "Ronsaghey",
        "searchsuggest-containing": "goaill stiagh...",
        "expand_templates_ok": "OK",
-       "expand_templates_preview": "Roie-haishbynys"
+       "expand_templates_preview": "Roie-haishbynys",
+       "special-characters-group-latin": "Romanagh",
+       "special-characters-group-latinextended": "Romanagh sheeynt",
+       "special-characters-group-ipa": "ASE",
+       "special-characters-group-symbols": "Cowraghyn",
+       "special-characters-group-greek": "Greagagh",
+       "special-characters-group-cyrillic": "Kyrillagh",
+       "special-characters-group-arabic": "Arabagh",
+       "special-characters-group-persian": "Pershish",
+       "special-characters-group-hebrew": "Ewagh",
+       "special-characters-group-bangla": "Bengaalish",
+       "special-characters-group-telugu": "Telugish",
+       "special-characters-group-sinhala": "Sinhalish",
+       "special-characters-group-gujarati": "Gujaratish",
+       "special-characters-group-thai": "Thaish",
+       "special-characters-group-lao": "Laosish",
+       "special-characters-group-khmer": "Khmerish"
 }
index e7d2d68..9e0144c 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-relative": "בכותרת יש נתיב יחסי. כותרת דפים יחסיות (./, ../) אינן תקינות, כיוון שלעתים קרובות הן לא יהיו בנות־השגה כשתטופלנה על־ידי הדפדפן של המשתמש.",
+       "title-invalid-magic-tilde": "כותרת הדף המבוקש מכילה רצף טילדות מיוחד (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "כותרת הדף המבוקש ארוכה מדי. היא צריכה להיות לכל היותר באורך $1 בתים בקידוד UTF-8.",
+       "title-invalid-leading-colon": "כותרת הדף המבוקש מכילה תו נקודתיים בלתי־תקין בתחילתה.",
        "perfcached": "המידע הבא הוא עותק שמור בזיכרון המטמון של המידע, ועשוי שלא להיות מעודכן. לכל היותר {{PLURAL:$1|תוצאה אחת נשמרת|$1 תוצאות נשמרות}} בזיכרון המטמון.",
        "perfcachedts": "המידע הבא הוא עותק שמור בזיכרון המטמון של המידע, שעודכן לאחרונה ב־$1. לכל היותר {{PLURAL:$4|תוצאה אחת נשמרת|$4 תוצאות נשמרות}} בזיכרון המטמון.",
        "querypage-no-updates": "העדכונים לדף זה כרגע מופסקים, והמידע לא יעודכן באופן שוטף.",
index 4e3590d..098f974 100644 (file)
        "import-interwiki-history": "Ii panna ke sab badlao ke itihaas ke copy karo",
        "import-interwiki-templates": "Sab template ke include karo",
        "import-interwiki-submit": "Import karo",
-       "import-interwiki-namespace": "Manzil waala namespace:",
-       "import-interwiki-rootpage": "Destination root panna (optional):",
        "import-upload-filename": "File ke naam:",
        "import-comment": "Aapan bichar do:",
        "importtext": "Meharbani kar ke file ke [[Special:Export|export utility]] use kar ke source wiki me se export karo.\nAapan computer me save kar ke  hian pe upload karo.",
index fc7aa3a..2a1a8ac 100644 (file)
@@ -28,7 +28,8 @@
                        "Treecko",
                        "לערי ריינהארט",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Fraxinus"
                ]
        },
        "tog-underline": "Podcrtane poveznice",
        "shown-title": "Prikaži $1 {{PLURAL:$1|rezultat|rezultata|rezultata}} po stranici",
        "viewprevnext": "Vidi ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "* Stranica '''[[$1]]'''",
-       "searchmenu-new": "'''Stvori stranicu \"[[:$1]]\" na ovoj wiki!'''",
+       "searchmenu-new": "<strong>Napravite stranicu \"[[:$1]]\" na ovom wiki projektu!</strong>\n{{PLURAL:$2|0=|Cm. i stranica koje se nalaze u rezultatima vaših pretraživanja.|Cm. također su pronađeni rezultati pretraživanja.}}",
        "searchprofile-articles": "Stranice sa sadržajem",
        "searchprofile-images": "Multimedija",
        "searchprofile-everything": "Sve",
        "import-interwiki-history": "Prenesi sve inačice ove stranice",
        "import-interwiki-templates": "Uključi sve predloške",
        "import-interwiki-submit": "Uvezi",
-       "import-interwiki-namespace": "Odredišni imenski prostor:",
-       "import-interwiki-rootpage": "Odredišna početna stranica (parametar nije nužan):",
        "import-upload-filename": "Ime datoteke:",
        "import-comment": "Komentar:",
        "importtext": "Molimo izvezite datoteku iz izvorišnog wikija koristeći [[Special:Export|izvozno pomagalo]]. \nSnimite je na svoje računalo i postavite je ovdje.",
        "tooltip-pt-mycontris": "Popis mojih doprinosa",
        "tooltip-pt-login": "Predlažemo Vam da se prijavite, ali nije obvezno.",
        "tooltip-pt-logout": "Odjavi se",
+       "tooltip-pt-createaccount": "Nudimo vam mogućnost da napravite račun i prijavite se, iako to nije nužno.",
        "tooltip-ca-talk": "Razgovor o stranici",
        "tooltip-ca-edit": "Možete uređivati ovu stranicu. Koristite Pregled kako će izgledati prije nego što snimite.",
        "tooltip-ca-addsection": "Dodaj novi odlomak",
index a2f6cc7..f2d31ba 100644 (file)
        "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",
        "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-interwiki": "A cím interwiki-hivatkozást tartalmaz.",
+       "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.",
        "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.",
        "editinginterface": "<strong>Vigyázat:</strong> egy olyan lapot szerkesztesz, ami a MediaWiki szoftver felületéhez tartozik. A lap megváltoztatása hatással lesz a kinézetre, ahogy más szerkesztők látják a lapot.",
        "translateinterface": "Minden wikire kiterjedő fordítások hozzáadásához vagy szerkesztésére használd a [//translatewiki.net/ translatewiki.net]-et, a MédiaWiki lokalizációs projektjét.",
-       "cascadeprotected": "Ez a lap szerkesztés elleni védelemmel lett ellátva, mert a következő {{PLURAL:$1|lapon|lapokon}} be van kapcsolva a „kaszkádolt” védelem:\n$2",
+       "cascadeprotected": "Ez a lap szerkesztés elleni védelemmel lett ellátva, mert be van illesztve a következő {{PLURAL:$1|lapon|lapokon}}, ahol be van kapcsolva a „kaszkádolt” védelem:\n$2",
        "namespaceprotected": "Nincs jogosultságod a(z) '''$1''' névtérben található lapok szerkesztésére.",
        "customcssprotected": "Nem szerkesztheted ezt a CSS-lapot, mert egy másik felhasználó személyes beállításait tartalmazza.",
        "customjsprotected": "Nem szerkesztheted ezt a JavaScript-lapot, mert egy másik felhasználó személyes beállításait tartalmazza.",
        "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",
+       "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",
        "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",
        "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",
        "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]].",
        "tags-edit": "szerkesztés",
        "tags-hitcount": "{{PLURAL:$1|Egy|$1}} változtatás",
        "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-edit-title": "Címkék szerkesztése",
+       "tags-edit-existing-tags": "Létező címkék:",
        "comparepages": "Lapok összehasonlítása",
        "compare-page1": "1. lap",
        "compare-page2": "2. lap",
index dc8d70f..ea6f578 100644 (file)
@@ -48,7 +48,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": "Բոլոր տեղեկամատյանները",
index 7ac698b..14ab6dc 100644 (file)
        "history-feed-description": "Riwayat revisi halaman ini di wiki",
        "history-feed-item-nocomment": "$1 pada $2",
        "history-feed-empty": "Halaman yang diminta tak ditemukan.\nKemungkinan telah dihapus dari wiki, atau diberi nama baru.\nCoba [[Special:Search|lakukan pencarian di wiki]] untuk halaman baru yang relevan.",
+       "history-edit-tags": "Sunting tag dari revisi yang terpilih",
        "rev-deleted-comment": "(ringkasan suntingan dihapus)",
        "rev-deleted-user": "(nama pengguna dihapus)",
        "rev-deleted-event": "(rincian log dihapus)",
        "listfiles-delete": "hapus",
        "listfiles-summary": "Halaman istimewa ini menampilkan semua berkas yang telah diunggah.\nKetika disaring oleh pengguna, hanya versi berkas terbaru dari berkas yang diunggah oleh pengguna tersebut yang ditampilkan.",
        "listfiles_search_for": "Cari nama berkas:",
+       "listfiles-userdoesnotexist": "Akun pengguna \"$1\" tidak terdaftar.",
        "imgfile": "berkas",
        "listfiles": "Daftar berkas",
        "listfiles_thumb": "Miniatur",
        "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",
        "nextpage": "Halaman selanjutnya ($1)",
        "prevpage": "Halaman sebelumnya ($1)",
        "protect-othertime": "Waktu lain:",
        "protect-othertime-op": "waktu lain",
        "protect-existing-expiry": "Waktu kedaluwarsa saat ini: $2 $3",
+       "protect-existing-expiry-infinity": "Waktu kedaluwarsa yang ada: tidak terdefinisi",
        "protect-otherreason": "Alasan lain/tambahan:",
        "protect-otherreason-op": "Alasan lain",
        "protect-dropdown": "*Alasan umum pelindungan\n** Vandalisme berulang\n** Spam berulang\n** Perang suntingan\n** Halaman dengan lalu-lintas tinggi",
        "namespace": "Ruang nama:",
        "invert": "Balikkan pilihan",
        "tooltip-invert": "Centang kotak ini untuk menyembunyikan perubahan halaman dalam ruang nama yang dipilih (dan ruang nama terkait jika dicentang)",
+       "tooltip-whatlinkshere-invert": "Centang kotak ini untuk menyembunyikan pranala dalam ruang nama yang dipilih.",
        "namespace_association": "Ruangnama terkait",
        "tooltip-namespace_association": "Centang halaman ini untuk menyertakan ruang nama pembicaraan atau subjek yang terkait dengan ruang nama terpilih",
        "blanknamespace": "(Utama)",
        "unblocked": "Blokir terhadap [[User:$1|$1]] telah dicabut",
        "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",
        "ipblocklist-legend": "Cari pengguna yang diblokir",
        "thumbnail-temp-create": "Tidak dapat membuat berkas kecil temporer",
        "thumbnail-dest-create": "Tidak dapat menyimpan berkas kecil ke tujuan",
        "thumbnail_invalid_params": "Kesalahan parameter miniatur",
+       "thumbnail_toobigimagearea": "Berkas dengan dimensi lebih besar dari $1",
        "thumbnail_dest_directory": "Direktori tujuan tak dapat dibuat",
        "thumbnail_image-type": "Tipe gambar tidak didukung",
        "thumbnail_gd-library": "Konfigurasi pustaka GD tak lengkap: tak ada fungsi $1",
        "thumbnail_image-missing": "Berkas yang tampaknya hilang: $1",
        "thumbnail_image-failure-limit": "Ada terlalu banyak upaya yang gagal baru-baru ini ($1 atau lebih) untuk membuat miniatur ini. Silakan coba lagi nanti.",
        "import": "Impor halaman",
-       "importinterwiki": "Impor transwiki",
-       "import-interwiki-text": "Pilih suatu wiki dan judul halaman yang akan di impor.\nTanggal revisi dan nama penyunting akan dipertahankan.\nSemua aktivitas impor transwiki akan dicatat di [[Special:Log/import|log impor]].",
+       "importinterwiki": "Impor dari wiki yang lainnya",
+       "import-interwiki-text": "Pilih suatu wiki dan judul halaman yang akan di impor.\nTanggal revisi dan nama penyunting akan dipertahankan.\nSemua aktivitas impor dari wiki lainnya akan dicatat di [[Special:Log/import|log impor]].",
+       "import-interwiki-sourcewiki": "Wiki sumber:",
+       "import-interwiki-sourcepage": "Sumber halaman:",
        "import-interwiki-history": "Salin semua versi terdahulu dari halaman ini",
        "import-interwiki-templates": "Sertakan semua templat",
        "import-interwiki-submit": "Impor",
-       "import-interwiki-namespace": "Ruang nama tujuan:",
-       "import-interwiki-rootpage": "Halaman turunan tujuan (opsional):",
+       "import-mapping-default": "Impor ke lokasi standar",
+       "import-mapping-namespace": "Impor ke ruang nama:",
+       "import-mapping-subpage": "Impor sebagai subhalaman dari halaman berikut:",
        "import-upload-filename": "Nama berkas:",
        "import-comment": "Komentar:",
        "importtext": "Silakan ekspor berkas dari wiki sumber dengan menggunakan [[Special:Export|fasilitas ekspor]].\nSimpan ke komputer Anda dan unggah ke sini.",
        "importcantopen": "Berkas impor tidak dapat dibuka",
        "importbadinterwiki": "Pranala interwiki rusak",
        "importsuccess": "Impor sukses!",
-       "importnosources": "Tidak ada sumber impor transwiki yang telah dibuat dan pemuatan riwayat secara langsung telah di non-aktifkan.",
+       "importnosources": "Tidak ada wiki dari yang diimpor yang telah dibuat dan pemuatan riwayat secara langsung telah di non-aktifkan.",
        "importnofile": "Tidak ada berkas sumber impor yang telah dimuat.",
        "importuploaderrorsize": "Pemuatan berkas impor gagal. Ukuran berkas melebihi ukuran yang diperbolehkan.",
        "importuploaderrorpartial": "Pemuatan berkas impor gagal. Hanya sebagian berkas yang berhasil dimuat.",
        "revdelete-uname-unhid": "nama pengguna tidak disembunyikan",
        "revdelete-restricted": "akses telah dibatasi untuk opsis",
        "revdelete-unrestricted": "pembatasan akses opsis dihapuskan",
+       "logentry-block-block": "$1 {{GENDER:$2|memblokir}} {{GENDER:$4|$3}} dengan waktu kedaluwarsa $5 $6",
+       "logentry-block-reblock": "$1 {{GENDER:$2|mengubah}} pemblokiran {{GENDER:$4|$3}} dengan waktu kedaluwarsa $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|memblokir}} {{GENDER:$4|$3}} dengan waktu kedaluwarsa $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|mengubah}} pemblokiran {{GENDER:$4|$3}} dengan waktu kedaluwarsa $5 $6",
        "logentry-merge-merge": "$1 {{GENDER:$2|menggabungkan}} $3 dengan $4 (revisi lebih dari $5)",
        "logentry-move-move": "$1 {{GENDER:$2|memindahkan}} halaman $3 ke $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|memindahkan}} halaman $3 ke $4 tanpa membuat pengalihan",
index 9b4dfcc..293b656 100644 (file)
        "feedback-close": "Ọméchá.",
        "feedback-message": "Ozi:",
        "searchsuggest-search": "Chọwa",
-       "expand_templates_ok": "Ngwanu"
+       "expand_templates_ok": "Ngwanu",
+       "special-characters-group-latin": "Latin",
+       "special-characters-group-latinextended": "Latin dọrọ",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Nkárí",
+       "special-characters-group-greek": "Greek",
+       "special-characters-group-cyrillic": "Cyrillic",
+       "special-characters-group-arabic": "Arabiki",
+       "special-characters-group-persian": "Asụsụ Persia",
+       "special-characters-group-hebrew": "Asụsụ Hebrew",
+       "special-characters-group-bangla": "Bangla",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Sinhala",
+       "special-characters-group-gujarati": "Gujarati",
+       "special-characters-group-thai": "Asụsụ Thai",
+       "special-characters-group-lao": "Asụsụ Laos",
+       "special-characters-group-khmer": "Khmer"
 }
index 9799b9d..35b8d40 100644 (file)
        "htmlform-reset": "Хувцамаш юхадаккха",
        "htmlform-selectorother-other": "Кхыдола",
        "rightsnone": "(а)",
-       "revdelete-summary": "хувцамий лоацам"
+       "revdelete-summary": "хувцамий лоацам",
+       "special-characters-group-latin": "Лаьтмий",
+       "special-characters-group-greek": "Джелтий",
+       "special-characters-group-cyrillic": "Цырилиций",
+       "special-characters-group-arabic": "Ӏарбий",
+       "special-characters-group-persian": "Фаьранзий",
+       "special-characters-group-hebrew": "Жугтий"
 }
index afc328c..03cbc8c 100644 (file)
        "searchsuggest-containing": "quan kontenas...",
        "expand_templates_output": "Rezulto",
        "expand_templates_ok": "O.K.",
-       "expand_templates_preview": "Previdar"
+       "expand_templates_preview": "Previdar",
+       "special-characters-group-latin": "Latina",
+       "special-characters-group-latinextended": "Latina extensita",
+       "special-characters-group-symbols": "Simboli",
+       "special-characters-group-greek": "Grekiana",
+       "special-characters-group-cyrillic": "Kirila",
+       "special-characters-group-arabic": "Arabiana",
+       "special-characters-group-persian": "Persiana"
 }
index a5e6ae5..6e24943 100644 (file)
        "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 richiesto è vuoto o contiene solamente il nome di un namespace.",
+       "title-invalid-utf8": "Il titolo della pagina richiesto contiene una sequenza UTF-8 non valida.",
+       "title-invalid-interwiki": "Titolo contenente un collegamento interwiki",
+       "title-invalid-talk-namespace": "Il titolo della pagina richiesto fa riferimento a una pagina di discussione non presente.",
+       "title-invalid-characters": "Il titolo della pagina richiesto 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 richiesto non è valido in quanto contiene la successione speciale di tilde (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Il titolo della pagina richiesto è troppo grande. Non deve essere più grande di $1 byte codificati in UTF-8.",
+       "title-invalid-leading-colon": "Il titolo della pagina richiesto 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.",
        "import-interwiki-history": "Copia l'intera cronologia di questa pagina",
        "import-interwiki-templates": "Includi tutti i template",
        "import-interwiki-submit": "Importa",
+       "import-mapping-default": "Importa in destinazione predefinita",
+       "import-mapping-namespace": "Importa in un namespace:",
+       "import-mapping-subpage": "Importa come sottopagine della pagina seguente:",
        "import-upload-filename": "Nome file:",
        "import-comment": "Oggetto:",
        "importtext": "Si prega di esportare il file dal sito wiki di origine con la [[Special:Export|funzione di esportazione]], salvarlo sul proprio disco e poi caricarlo qui.",
        "tags-deactivate-reason": "Motivo:",
        "tags-deactivate-not-allowed": "Non è possibile disattivare il tag \"$1\".",
        "tags-deactivate-submit": "Disattiva",
+       "tags-apply-no-permission": "Non disponi dell'autorizzazione per applicare la modifica di tag insieme con le tue modifiche.",
        "tags-apply-not-allowed-one": "L'etichetta \"$1\" non può essere applicata manualmente.",
        "tags-apply-not-allowed-multi": "{{PLURAL:$2|La seguente etichetta non può essere applicata|Le seguenti etichette non possono essere applicate}}  manualmente: $1",
+       "tags-update-no-permission": "Non hai il permesso di aggiungere o rimuovere modifiche di tag dalle singole revisioni o voci di registro.",
+       "tags-update-add-not-allowed-one": "Il tag \"$1\" non può essere aggiunto manualmente.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Il seguente tag non può essere aggiunto|I seguenti tag non possono essere aggiunti}} manualmente: $1",
+       "tags-update-remove-not-allowed-one": "Il tag \"$1\" non può essere rimosso.",
+       "tags-update-remove-not-allowed-multi": "Non è consentito rimuovere manualmente {{PLURAL:$2|il seguente tag|i seguenti tag}}: $1",
        "tags-edit-title": "Modifica etichette",
        "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-add": "Aggiungi queste etichette:",
        "tags-edit-remove": "Rimuovi queste etichette:",
+       "tags-edit-remove-all-tags": "(rimuovi tutti i tag)",
        "tags-edit-chosen-placeholder": "Seleziona alcune 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",
        "compare-page2": "Pagina 2",
        "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...",
index a1ed80d..1a1ece4 100644 (file)
        "no-null-revision": "ページ「$1」に新しい空編集の版を作成できませんでした。",
        "badtitle": "正しくないページ名",
        "badtitletext": "無効または空のページ名が指定されたか、言語間/ウィキ間リンクの方法に誤りがあります。\nページ名に使用できない文字が含まれている可能性があります。",
+       "title-invalid-utf8": "指定されたページ名が無効なUTF-8シーケンスを含んでいます。",
+       "title-invalid-characters": "指定されたページ名が無効な文字 \"$1\" を含んでいます。",
        "perfcached": "以下のデータはキャッシュされており、最新ではない可能性があります。最大 $1 {{PLURAL:$1|件の結果}}がキャッシュされます。",
        "perfcachedts": "以下のデータはキャッシュされており、最終更新日時は $1 です。最大 $4 {{PLURAL:$4|件の結果}}がキャッシュされます。",
        "querypage-no-updates": "ページの更新は無効になっています。\n以下のデータの更新は現在行われていません。",
        "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-deactivate-not-allowed": "タグ「$1」は無効化できません。",
        "tags-deactivate-submit": "無効化",
        "tags-edit-title": "タグの編集",
+       "tags-edit-existing-tags": "既存のタグ:",
+       "tags-edit-new-tags": "新しいタグ:",
        "tags-edit-reason": "理由:",
        "comparepages": "ページの比較",
        "compare-page1": "ページ 1",
index ffd855f..082db55 100644 (file)
        "permalink": "Pranala permanèn",
        "print": "Cithak",
        "view": "Pirsani",
+       "view-foreign": "Pirsani ing $1",
        "edit": "Sunting",
        "create": "Nggawé",
+       "create-local": "Tambah pawedharan lokal",
        "editthispage": "Sunting kaca iki",
        "create-this-page": "Nggawé kaca iki",
        "delete": "Busak",
        "loginlanguagelabel": "Basa: $1",
        "suspicious-userlogout": "Panjaluk panjenengan supaya metu ditolak amarga katoné panjlajah internt utawa proksi panyinggah.",
        "createacct-another-realname-tip": "Jeneng asli ora kudu dilebokake.\n\nYen sampeyan milih nglebokake jeneng asli, jeneng kuwi bakal dinggo ngwenehi atribusi kanggo karya-karyane.",
+       "pt-login": "Mlebet log",
+       "pt-createaccount": "Damel akun enggal",
        "php-mail-error-unknown": "Kasalahan ora dingertèni nèng piguna mail() PHP.",
        "user-mail-no-addy": "Njajal ngirim layang èlèktronik tanpa alamat layang èlèktronik.",
        "user-mail-no-body": "Nyoba ngirim layang e-mail, tapi isine kosong.",
        "preview": "Pratayang",
        "showpreview": "Mirsani pratayang",
        "showdiff": "Tuduhna pangowahan",
-       "anoneditwarning": "Panjenengan ora kadaftar mlebu. Alamat IP panjenengan bakal kacathet ing sajarah panyuntingan kaca iki.",
+       "anoneditwarning": "<strong>Penget:</strong> Panjenengan boten mlebet log. Alamat IP Panjenengan badhe katingal dening publik manawi Panjenengan ngayahi ewah-ewahan. Manawi Panjenengan  <strong>[$1 mlebet log]</strong> utawai <strong>[$2 damel akun]</strong>, suntingan Panjenengan badhe kaatribusekaken dhumateng  nama pangangge Panjenengan, lan rupi-rupi  kauntungan sanesipun.",
        "anonpreviewwarning": "''Sampéyan durung mlebu log. Nyimpen bakal nyathet alamat IP Sampéyan nèng riwayat sunting kaca iki.''",
        "missingsummary": "'''Pènget:''' Panjenengan ora nglebokaké ringkesan panyuntingan. Menawa panjenengan mencèt tombol Simpen manèh, suntingan panjenengan bakal kasimpen tanpa ringkesan panyuntingan.",
        "missingcommenttext": "Tulung lebokna komentar ing ngisor iki.",
        "shown-title": "Tampilaké $1 {{PLURAL:$1|asil|asil}} saben kaca",
        "viewprevnext": "Deleng ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Ana kaca kanthi jeneng \"[[$1]]\" ing wiki iki'''",
-       "searchmenu-new": "'''Gawé kaca \"[[:$1]]\" ing wiki iki!'''",
+       "searchmenu-new": "'''Damel kaca \"[[:$1]]\" ing wiki punika!'''",
        "searchprofile-articles": "Kaca isi",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Kabèh",
        "searchrelated": "kagandhèng",
        "searchall": "kabèh",
        "showingresults": "Ing ngisor iki dituduhaké {{PLURAL:$1|'''1''' kasil|'''$1''' kasil}}, wiwitané saking #<strong>$2</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Asil <strong>$1</strong> dari <strong>$3</strong>|Asil <strong>$1 - $2</strong> saking <strong>$3</strong>}}",
        "search-nonefound": "Ora ana kasil sing cocog karo pitakonan (''query'').",
        "powersearch-legend": "Panggolèkan sabanjuré (''advance search'')",
        "powersearch-ns": "Panggolèkan ing ruang jeneng:",
        "rcnotefrom": "Ing ngisor iki owah-owahan wiwit <strong>$2</strong> (kapacak nganti <strong>$1</strong> owah-owahan).",
        "rclistfrom": "Saiki nuduhaké owah-owahan wiwit tanggal $3 $2",
        "rcshowhideminor": "$1 suntingan sithik",
+       "rcshowhideminor-hide": "Singidaken",
        "rcshowhidebots": "$1 bot",
+       "rcshowhidebots-show": "Tedahaken",
        "rcshowhideliu": "$1 panganggo sing wis ndaptar",
+       "rcshowhideliu-hide": "Singidaken",
        "rcshowhideanons": "$1 panganggo anonim",
+       "rcshowhideanons-hide": "Singidaken",
        "rcshowhidepatr": "$1 suntingan sing dipatroli",
        "rcshowhidemine": "$1 suntinganku",
+       "rcshowhidemine-hide": "Singidaken",
        "rclinks": "Tuduhna owah-owahan pungkasan $1 ing $2 dina pungkasan iki.<br />$3",
        "diff": "béda",
        "hist": "sajarah",
        "import-interwiki-history": "Tuladen kabèh vèrsi lawas saka kaca iki",
        "import-interwiki-templates": "Katutna kabèh cithakan",
        "import-interwiki-submit": "Impor",
-       "import-interwiki-namespace": "Bilik jeneng tujuan:",
-       "import-interwiki-rootpage": "Halaman turunan tujuan (opsional):",
        "import-upload-filename": "Jeneng berkas:",
        "import-comment": "Komentar:",
        "importtext": "Mangga èkspor berkas saka wiki sumber nganggo [[Special:Export|prangkat èkspor]].\nSimpen nèng komputer Sampéyan lan unggaha nèng kéné.",
        "tooltip-pt-mycontris": "Daftar kontribusi panjenengan",
        "tooltip-pt-login": "Panjenengan diaturi mlebu log, nanging ora dikudokaké.",
        "tooltip-pt-logout": "Log metu (oncat)",
+       "tooltip-pt-createaccount": "Panjenengan kasuwun damel akun lan mlebet log; ananging bab punika boten wajib",
        "tooltip-ca-talk": "Dhiskusi perkara isi",
        "tooltip-ca-edit": "Sunting kaca iki. Nganggoa tombol pratayang sadurungé nyimpen.",
        "tooltip-ca-addsection": "Miwiti bagèyan anyar",
index 5bad88d..41993a2 100644 (file)
        "pool-timeout": "ბლოკირების ლოდინის დრო ამოიწურა",
        "pool-queuefull": "მოთხოვნების დამგროვებელი სავსეა",
        "pool-errorunknown": "უცნობი შეცდომა",
+       "pool-servererror": "პულის მრიცხველის მომსახურება მიუწვდომელია ($1).",
        "poolcounter-usage-error": "გამოყენების შეცდომა: $1",
        "aboutsite": "{{SITENAME}}-ის შესახებ",
        "aboutpage": "Project:შესახებ",
        "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",
        "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“ წაშლა შეუძლებელია.\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-magic-tilde": "მოტხოვნილი გვერდის სათაური შეიცავს ტილდების დაუშვებელ თანმიმდევრობას (<nowiki>~~~</nowiki>).",
+       "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-password": "დროებითი პაროლი:",
        "resetpass-abort-generic": "პაროლის შეცვლა შეჩერდა გაფართოების მიერ.",
        "resetpass-expired": "თქვენს პაროლს ვადა გაუვიდა. გთხოვთ, დააყენოთ ახალი.",
        "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": "მუქი ტექსტი",
        "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. გთხოვთ მიუთითოთ ეს ნომერი, ნებისმიერ მიმოწერაში.",
        "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''",
        "viewpagelogs": "ამ გვერდისთვის სარეგისტრაციო ჟურნალების ჩვენება",
        "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": "(ჟურნალის დეტალები წაშლილია)",
        "revdelete-no-file": "მოთხოვნილი ფაილი არ არსებობს.",
        "revdelete-show-file-confirm": "დარწმუნებული ხართ, რომ გსურთ ამ ფაილის წაშლილი ვერსიის ნახვა, „<nowiki>$1</nowiki>“ $2, $3-დან ?",
        "revdelete-show-file-submit": "ჰო",
+       "revdelete-selected-text": "{{PLURAL:$1|არჩეული ვერსიები|არჩეული ვერსიები}} [[:$2]]:",
        "logdelete-selected": "ჟურნალის {{PLURAL:$1|არჩეული ჩანაწერი|არჩეული ჩანაწერები}}:",
        "revdelete-confirm": "გთხოვთ დაადასტუროთ, რომ გსურთ ქმედების განხორციელება. ასევე ვიმედოვნებთ, რომ ყველაფერს აკეთებთ  [[{{MediaWiki:Policy-url}}|წესებთან შესაბამისობაში]].",
        "revdelete-suppress-text": "დამალვა შეიძლება განხორციელდეს '''მხოლოდ''' შემდეგ შემთხვევებში:\n* პოტენციურად ცილისმწამებლური ინფორმაცია\n* უადგილო პირადი ინფორმაცია\n*: ''სახლის მისამართი, ტელეფონის ნომრები, პასპორტის ნომერი და ა.შ.''",
        "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": "წყარო მითითებული არაა",
        "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-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]] მიღება თქვენ ცვლილებებთან ერთად",
        "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|ახალი გვერდების სია]])",
-       "rcnotefrom": "ქვემოთ მოყვანილია ცვლილებები <strong>$2</strong>-დან (ნაჩვენებია არაუმეტეს <strong>$1</strong>).",
+       "rcnotefrom": "ქვემოთ {{PLURAL:$5|ნაჩვენებია ცვლილება|ნაჩვენებია ცვლილებები}} <strong>$3, $4</strong>-დან (ნაჩვენებია არაუმეტეს <strong>$1</strong>).",
        "rclistfrom": "ახალი ცვლილებების ჩვენება დაწყებული $3 $2-დან",
        "rcshowhideminor": "მცირე რედაქტირების $1",
        "rcshowhideminor-show": "ჩვენება",
        "uploaderror": "ატვირთვის შეცდომა",
        "upload-recreate-warning": "'''ყურადღება. ფაილი ამ სახელით წაიშალა ან გადატანილი იქნა.''\n\nჟურნალი იხილეთ ქვემოთ:",
        "uploadtext": "ამ ფორმის გამოყენებისას თქვენ შეძლებთ სერვერზე ფაილების ატვირთვას.\n\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": "á\83\9bá\83\98á\83¦á\83\94á\83\91á\83£á\83\9aá\83\98 á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83¢á\83\98á\83\9eá\83\94á\83\91á\83\98: $1.",
-       "upload-preferred": "á\83¡á\83\90á\83¡á\83£á\83 á\83\95á\83\94á\83\9aá\83\98 á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83¢á\83\98á\83\9eá\83\94á\83\91á\83\98: $1.",
-       "upload-prohibited": "á\83\90á\83\99á\83 á\83«á\83\90á\83\9aá\83£á\83\9aá\83\98 á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83¢á\83\98á\83\9eá\83\94á\83\91á\83\98: $1.",
+       "upload-permitted": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83\9cá\83\94á\83\91á\83\90á\83\93á\83\90á\83 á\83\97á\83£á\83\9aá\83\98 {{PLURAL:$2|á\83¢á\83\98á\83\9eá\83\98\83¢á\83\98á\83\9eá\83\98}}: $1.",
+       "upload-preferred": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83£á\83\9eá\83\98á\83 á\83\90á\83¢á\83\94á\83¡á\83\98 {{PLURAL:$2|á\83¢á\83\98á\83\9eá\83\98\83¢á\83\98á\83\9eá\83\98}}: $1.",
+       "upload-prohibited": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83\90á\83\99á\83 á\83«á\83\90á\83\9aá\83£á\83\9aá\83\98 {{PLURAL:$2|á\83¢á\83\98á\83\9eá\83\98\83¢á\83\98á\83\9eá\83\98}}: $1.",
        "uploadlogpage": "გადმოტვირთვის რეგისტრაცია",
        "uploadlogpagetext": "ქვემოთ არის ყველაზე ბოლოს ატვირთული ფაილების სია.",
        "filename": "ფაილის სახელი",
        "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": "ფაილების სია დუბლიკატებთან ერთად",
        "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]]-ზე.",
        "wantedfiles": "მოთხოვნილი ფაილები",
        "wantedfiletext-cat": "შემდეგი ფაილების გამოყენებას ცდილობენ, თუმცა ისინი არ არსებობენ. ამ სიაში შეცდომით შეიძლება მოხვდნენ ისე ფაილები, რომლებიც გარე საცავებში არიან. მსგავსი ცრუ ინფორმაცია აღნიშნული იქნება <del>გადახაზული ხაზით</del>. გარდა ამისა, გვერდები რომლებიც შეიცავენ არარსებულ ფაილებს ჩამოთვლილია აქ [[:$1]].",
        "wantedfiletext-nocat": "შემდეგი ფაილების გამოყენებას ცდილობენ, თუმცა ისინი არ არსებობენ. ამ სიაში შეცდომით შეიძლება მოხვდნენ ისე ფაილები, რომლებიც გარე საცავებში არიან. მსგავსი ცრუ ინფორმაცია აღნიშნული იქნება <del>გადახაზული ხაზით</del>.",
+       "wantedfiletext-nocat-noforeign": "შემდეგი ფაილები გამოიყენება, მაგრამ არ არსებობს.",
        "wantedtemplates": "მოთხოვნილი თარგები",
        "mostlinked": "ყველაზე მეტი ბმულების მქონე გვერდები",
        "mostlinkedcategories": "ყველაზე მეტი ბმულების მქონე კატეგორიები",
        "mostrevisions": "ყველაზე მეტად რედაქტირებული სტატიები",
        "prefixindex": "ყველა გვერდი (პრეფიქსით)",
        "prefixindex-namespace": "ყველა პრეფიქსიანი გვერდი ($1 სახელთა სივრცე)",
+       "prefixindex-strip": "პრეფიქსის დამალვა შედეგების სიაში",
        "shortpages": "მოკლე გვერდები",
        "longpages": "გრძელი გვერდები",
        "deadendpages": "ჩიხის გვერდები",
        "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-msg": "კატეგორიის მიდევნება",
        "trackingcategories-name": "შეტყობინების სახელი",
+       "trackingcategories-desc": "კატეგორიაში ჩართვის კრიტერიუმები",
        "trackingcategories-nodesc": "აღწერა არ არის.",
        "trackingcategories-disabled": "კატეგორია გამორთულია",
        "mailnologin": "გამგზავნი მისამართი არ არის მითითებული.",
        "delete-edit-reasonlist": "წაშლის მიზეზების რედაქტირება",
        "delete-toobig": "ამ გვერდს ძალიან გრძელი ისტორია გააჩნია,  $1 {{PLURAL:$1|ვერსიაზე|ვერსიიებზე|ვერსიებზე}} მეტი. მისი წაშლა აიკრძალა {{SITENAME}}-ის კორექტურად მუშაობის უზრუნველყოფისთვის.",
        "delete-warning-toobig": "ამ გვერდს ძალიან გრძელი ისტორია გააჩნია,  $1 {{PLURAL:$1|ვერსიაზე|ვერსიიებზე|ვერსიებზე}} მეტი.\nმისმა წაშლამ შესაძლოა გამოიწვიოს საიტის მონაცემთა ბაზის  {{SITENAME}} არაკორექტული მუშაობა;\nიმოქმედეთ სიფრთხილით.",
+       "deleteprotected": "თქვენ არ შეგიძლიათ ამ გვერდის წაშლა, რადგან ის დაცულია.",
        "deleting-backlinks-warning": "'''გაფრთხილება:''' რამდენიმე სხვა გვერდი დაკავშირებულია ამ წასაშლელ გვერდთან.",
        "rollback": "ცვლილებების გაუქმება",
        "rollbacklink": "სწრაფი გაუქმება",
        "sp-contributions-search": "წვლილის ძიება",
        "sp-contributions-username": "IP მისამართი ან მომხმარებლის სახელი:",
        "sp-contributions-toponly": "აჩვენე მხოლოდ ბოლო ვერსიები",
+       "sp-contributions-newonly": "აჩვენე მხოლოდ ცვლილებები, რომელიც წარმოადგენს გვერდის შექმნილს",
        "sp-contributions-submit": "ძიება",
        "whatlinkshere": "ბმული გვერდზე",
        "whatlinkshere-title": "გვერდები, რომლებიც შეიცავენ „$1“-ის ბმულებს",
        "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": "á\83\97á\83¥á\83\95á\83\94á\83\9c á\83\90á\83\95á\83¢á\83\9dá\83\9bá\83\90á\83¢á\83£á\83 á\83\90á\83\93 á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83 á\83\94á\83\91á\83£á\83\9aá\83\98 á\83®á\83\90á\83 á\83\97, á\83\95á\83\98á\83\9cá\83\90á\83\98á\83\93á\83\90á\83\9c á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 IP á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\98 á\83\90á\83®á\83\9aá\83\90á\83®á\83\90á\83\9c á\83\98á\83¥á\83\9cá\83\90 á\83\92á\83\90á\83\9bá\83\9dá\83§á\83\94á\83\9cá\83\94á\83\91á\83£á\83\9aá\83\98 \"[[User:$1|$1]]\"â\80\93á\83\98á\83¡ á\83\9bá\83\98á\83\94á\83 . $1-á\83\98á\83¡ á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83 á\83\94á\83\91á\83\98á\83¡ á\83\9bá\83\98á\83\96á\83\94á\83\96á\83\98: \"'''$2'''\"",
+       "autoblocker": "á\83\90á\83\95á\83¢á\83\9dá\83\91á\83\9aá\83\9dá\83\99á\83\98á\83 á\83\94á\83\91á\83\90, á\83\95á\83\98á\83\9cá\83\90á\83\98á\83\93á\83\90á\83\9c á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 IP á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\98 á\83ªá\83\9dá\83¢á\83\90 á\83®á\83\9cá\83\98á\83¡ á\83¬á\83\98á\83\9c á\83\92á\83\90á\83\9bá\83\9dá\83\98á\83§á\83\94á\83\9cá\83\90 á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\94á\83\9aá\83\9bá\83\90 â\80\9e[[User:$1|$1]]â\80\9c. \n$1-á\83\98á\83¡ á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83 á\83\94á\83\91á\83\98á\83¡ á\83\9bá\83\98á\83\96á\83\94á\83\96á\83\98: \"$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": "გვერდის გადატანა",
        "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|შესაბამისი ხელსაწყოს]] გამოყენებით. ფაილი შეინახეთ დისკზე, ხოლო შემდეგ ატვირთეთ აქ.",
        "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",
        "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-ის მთარგმნელები",
        "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-tag-name": "ტეგის სახელი:",
        "tags-create-reason": "მიზეზი",
        "tags-create-submit": "შექმნა",
+       "tags-create-no-name": "თქვენ უნდა მიუთითოთ დასათაურების სახელი",
+       "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-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-apply-no-permission": "თქვენ არ გაქვთ უფლება მიიღოთ ცვლილების დასათაურება საკუთარ ცვლილებებთან",
+       "tags-apply-not-allowed-one": "დასათაურება «$1» ავტომატურად არ შეიძლება იქნას მიღებული.",
+       "tags-update-add-not-allowed-one": "ტეგი \"$1\" არ შეიძლება იყოს დამატებული მანუალურად",
+       "tags-update-remove-not-allowed-one": "დასათაურება \"$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-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 {{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": "დასათაურების მართვის ჟურნალი",
+       "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-bugornote": "თუ თქვენ მზად ხართ დეტალურად აღწეროთ ტექნიკური პრობლემა, გთხოვთ, [$1 შეგვატყობინეთ შეცდომის შესახებ].\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-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": "თარგის არგუმენტის ზომა",
        "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": "გვერდი",
        "action-pagelang": "გვერდის ენის შეცვლა",
        "log-name-pagelang": "ენის ცვლილებების ჟურნალი",
        "log-description-pagelang": "ეს არის გვერდის ენის ცვლილებების ჟურნალი",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|შეცვლილი}} ენის გვერდი $3-დან $4 $5-მდე.",
        "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 c92e9e1..bc86057 100644 (file)
        "import-interwiki-history": "Xdem alsaru n akk tisiwal umezruy n usebter-agi",
        "import-interwiki-templates": "Sekcem akkw talɣiwin",
        "import-interwiki-submit": "Ssekcem",
-       "import-interwiki-namespace": "Azen isebtar ar isem n taɣult:",
-       "import-interwiki-rootpage": "Asebtar azaṛ n userken (axetṛan) :",
        "import-upload-filename": "Isem n ufaylu :",
        "import-comment": "Awennit :",
        "importtext": "Ilaq ad ssifeḍeḍ afaylu seg wiki aneṣli s useqdac n  [[Special:Export|ufecku ines n ussifeḍ]].",
        "import-rootpage-nosubpage": "Tallunt n isemawen « $1 » n usebtar aẓar ur yeqbel ara adu-isebtar.",
        "importlogpage": "Aɣmis n usekcam",
        "importlogpagetext": "Adeblan n usekcam n isebtar i yesɛan amezruy ubeddel seg wiki tiyaḍ.",
-       "import-logentry-upload": "Yessekcem [[$1]] s usekcam n ufaylu",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|lqem|ileqman}}",
-       "import-logentry-interwiki": "$1 s transwiki",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|lqem|ileqman}} seg $2",
        "javascripttest": "Tarmit n JavaScript",
        "javascripttest-pagetext-noframework": "Asebtar agi yeḥeṛṛ i usselkem n tirmitin JavaScript.",
index a54f831..cb108dd 100644 (file)
        "import-interwiki-text": "سىرتتان الىناتىن ۋىيكىيدى جانە بەتتىڭ تاقىرىپ اتىن بولەكتەڭىز.\nتۇزەتۋ كۇن-ايى جانە وڭدەۋشى ەسىمدەرى ساقتالادى.\nۋىيكىي-اپارۋ ٴۇشىن سىرتتان الۋ بارلىق ارەكەتتەر [[{{#special:Log}}/import|سىرتتان الۋ جۋرنالىنا]] جازىلىپ الىنادى.",
        "import-interwiki-history": "بۇل بەتتىڭ بارلىق تارىيحىي نۇسقالارىن كوشىرۋ",
        "import-interwiki-submit": "سىرتتان الۋ",
-       "import-interwiki-namespace": "بەتتەردى مىنا ەسىم اياسىنا اپارۋ:",
        "import-comment": "ماندەمەسى:",
        "importtext": "قاينار ۋىيكىيدەن «{{#special:Export}}» قۋرالىن قولدانىپ فايلدى سىرتقا بەرىڭىز, دىيسكىڭىزگە ساقتاڭىز دا مىندا قوتارىپ بەرىڭىز.",
        "importstart": "بەتتەردى سىرتتان الۋدا…",
        "import-upload": "XML دەرەكتەرىن قوتارىپ بەرۋ",
        "importlogpage": "سىرتتان الۋ جۋرنالى",
        "importlogpagetext": "بەتتەردى تۇزەتۋ تارىيحىمەن بىرگە سىرتقى ۋىيكىيلەردەن اكىمشى رەتىندە الۋ.",
-       "import-logentry-upload": "«[[$1]]» دەگەندى فايل قوتارىپ بەرۋ ارقىلى سىرتتان الدى",
        "import-logentry-upload-detail": "$1 تۇزەتۋ",
-       "import-logentry-interwiki": "ۋىيكىي-اپارىلعان $1",
        "import-logentry-interwiki-detail": "$2 دەگەننەن $1 تۇزەتۋ",
        "tooltip-pt-userpage": "جەكە بەتىم",
        "tooltip-pt-anonuserpage": "بۇل IP مەكەنجايدىڭ جەكە بەتى",
index 7e62a68..ad40f2d 100644 (file)
        "import-interwiki-text": "Sırttan alınatın wïkïdi jäne bettiñ taqırıp atın bölekteñiz.\nTüzetw kün-aýı jäne öñdewşi esimderi saqtaladı.\nWïkï-aparw üşin sırttan alw barlıq äreketter [[{{#special:Log}}/import|sırttan alw jwrnalına]] jazılıp alınadı.",
        "import-interwiki-history": "Bul bettiñ barlıq tarïxï nusqaların köşirw",
        "import-interwiki-submit": "Sırttan alw",
-       "import-interwiki-namespace": "Betterdi mına esim ayasına aparw:",
        "import-comment": "Mändemesi:",
        "importtext": "Qaýnar wïkïden «{{#special:Export}}» qwralın qoldanıp faýldı sırtqa beriñiz, dïskiñizge saqtañız da mında qotarıp beriñiz.",
        "importstart": "Betterdi sırttan alwda…",
        "import-upload": "XML derekterin qotarıp berw",
        "importlogpage": "Sırttan alw jwrnalı",
        "importlogpagetext": "Betterdi tüzetw tarïxımen birge sırtqı wïkïlerden äkimşi retinde alw.",
-       "import-logentry-upload": "«[[$1]]» degendi faýl qotarıp berw arqılı sırttan aldı",
        "import-logentry-upload-detail": "$1 tüzetw",
-       "import-logentry-interwiki": "wïkï-aparılğan $1",
        "import-logentry-interwiki-detail": "$2 degennen $1 tüzetw",
        "tooltip-pt-userpage": "Jeke betim",
        "tooltip-pt-anonuserpage": "Bul IP mekenjaýdıñ jeke beti",
index bbea687..78b706e 100644 (file)
        "import-interwiki-history": "ចម្លង គ្រប់កំណែចាស់ នៃទំព័រនេះ",
        "import-interwiki-templates": "រាប់​បញ្ចូល​ទំព័រគំរូ​ទាំងអស់​",
        "import-interwiki-submit": "នាំចូល",
-       "import-interwiki-namespace": "បញ្ជូនទំព័រទៅក្នុងលំហឈ្មោះ​៖",
        "import-upload-filename": "ឈ្មោះ​ឯកសារ​​៖",
        "import-comment": "យោបល់៖",
        "importtext": "សូមនាំចេញឯកសារនេះពីវិគីប្រភពដោយប្រើប្រាស់[[Special:Export|ឧបករណ៍នាំចេញ]]។\nរក្សាវាទុកទៅក្នុងកុំព្យូទ័ររបស់អ្នករួចផ្ទុកវាឡើងនៅទីនេះ។",
index 1f5bc29..06d4b65 100644 (file)
@@ -98,7 +98,7 @@
        "november": "ನವೆಂಬರ್",
        "december": "ಡಿಸೆಂಬರ್",
        "january-gen": "ಜನವರಿ",
-       "february-gen": "ಫà³\8dರà³\86ಬà³\8dರà³\81ವರಿ",
+       "february-gen": "ಫà³\86ಬà³\8dರವರಿ",
        "march-gen": "ಮಾರ್ಚ್",
        "april-gen": "ಏಪ್ರಿಲ್",
        "may-gen": "ಮೇ",
        "about": "ನಮ್ಮ ಬಗ್ಗೆ",
        "article": "ಲೇಖನ ಪುಟ",
        "newwindow": "(ಹೊಸ ಕಿಟಕಿಯಲ್ಲಿ ತೆರೆಯುತ್ತದೆ)",
-       "cancel": "ವà²\9cಾ à²®à²¾à²¡à²¿",
+       "cancel": "ರದà³\8dದà³\81ಮಾಡà³\81",
        "moredotdotdot": "ಇನ್ನಷ್ಟು...",
        "morenotlisted": "ಈ ಪಟ್ಟಿ ಪೂರ ಇಲ್ಲ.",
        "mypage": "ಪುಟ",
        "searchbutton": "ಹುಡುಕು",
        "go": "ಹೋಗು",
        "searcharticle": "ಹೋಗು",
-       "history": "ಪà³\81à²\9fದ à²\9aರಿತà³\8dರà³\86",
+       "history": "ಪà³\81à²\9fದ à²\87ತಿಹಾಸ",
        "history_short": "ಇತಿಹಾಸ",
        "updatedmarker": "ನನ್ನ ಕೊನೆಯ ವೀಕ್ಷಣೆಯ ನಂತರ ಬದಲಾಗಿರುವವು",
        "printableversion": "ಪ್ರಿಂಟ್ ಆವೃತ್ತಿ",
        "aboutpage": "Project:ನಮ್ಮ ಬಗ್ಗೆ",
        "copyright": "ವಿಶೇಷವಾಗಿ ಹೇಳಲಲ್ಲಿದರೆ ಇದು \"$1\" ಕಾಪಿರೈಟ್ ಅಲ್ಲಿ ಲಭ್ಯ ಉಂಟು",
        "copyrightpage": "{{ns:project}}:ಕೃತಿಸ್ವಾಮ್ಯತೆಗಳು",
-       "currentevents": "ಪ್ರಚಲಿತ",
-       "currentevents-url": "Project:ಪ್ರಚಲಿತ",
+       "currentevents": "ಪ್ರಚಲಿತ ಸಂಗತಿಗಳು",
+       "currentevents-url": "Project:ಪ್ರಚಲಿತ ಸಂಗತಿಗಳು",
        "disclaimers": "ಅಬಾಧ್ಯತೆಗಳು",
        "disclaimerpage": "Project:ಸಾಮಾನ್ಯ ಅಬಾಧ್ಯತೆಗಳು",
        "edithelp": "ಸಂಪಾದನೆಗೆ ಸಹಾಯ",
        "red-link-title": "$1 (ಪುಟವು ಇನ್ನೂ ಸೃಷ್ಟಿತವಾಗಿಲ್ಲ)",
        "sort-descending": "ಇಳಿಕೆ ಕ್ರಮದಲ್ಲಿ ಜೋಡಿಸು",
        "sort-ascending": "ಏರಿಕೆ ಕ್ರಮದಲ್ಲಿ ಜೋಡಿಸು",
-       "nstab-main": "ಲà³\87à²\96ನ",
+       "nstab-main": "ಪà³\81à²\9f",
        "nstab-user": "ಸದಸ್ಯರ ಪುಟ",
        "nstab-media": "ಮೀಡಿಯ ಪುಟ",
        "nstab-special": "ವಿಶೇಷ ಪುಟ",
        "createacct-reason": "ಕಾರಣ",
        "createacct-reason-ph": "ನೀವು ಯಾಕೆ ಇನ್ನು ಒಂದು ಖಾತ ಮಾಡುತ ಇದ್ದೀರಿ ?",
        "createacct-captcha": "ಸುರಕ್ಷೆ ನಿಗ್ರಹಿಸು.",
-       "createacct-imgcaptcha-ph": "ಮೇಲೆ ಕಾಣುವಂತ ಶಬ್ದಗಳು ಮತ್ತು ಅಂಕಗಳನ್ನು ಬರಿರಿ.",
+       "createacct-imgcaptcha-ph": "ಮà³\87ಲà³\86 à²\95ಾಣà³\81ವà²\82ತ à²¶à²¬à³\8dದà²\97ಳà³\81 à²®à²¤à³\8dತà³\81 à²\85à²\82à²\95à²\97ಳನà³\8dನà³\81 à²¬à²°à³\86ಯಿರಿ.",
        "createacct-submit": "ಖಾತೆಯನ್ನು ಸೃಷ್ಟಿಸಿ",
        "createacct-another-submit": "ಇನ್ನು ಒಂದು ಖಾತ ಮಾಡಿ",
        "createacct-benefit-heading": "{{SITENAME}} ನಿಮ್ಮನ್ತವೆ ಜನರಿಂದ ಮಾಡಿದು",
        "watchthis": "ಈ ಪುಟವನ್ನು ವೀಕ್ಷಿಸಿ",
        "savearticle": "ಪುಟವನ್ನು ಉಳಿಸಿ",
        "preview": "ಮುನ್ನೋಟ",
-       "showpreview": "ಮುನ್ನೋಟ",
+       "showpreview": "ಮುನ್ನೋಟ ತೋರಿಸು",
        "showdiff": "ಬದಲಾವಣೆಗಳನ್ನು ತೋರಿಸು",
        "anoneditwarning": "'''ಎಚ್ಚರ:''' ನೀವು ಲಾಗ್ ಇನ್ ಆಗಿಲ್ಲ. ನಿಮ್ಮ ಐಪಿ ವಿಳಾಸವು ಪುಟದ ಸಂಪಾದನೆಗಳ ಇತಿಹಾಸದಲ್ಲಿ ದಾಖಲಾಗುತ್ತದೆ.",
        "anonpreviewwarning": "''ನೀವು ಲಾಗಿನ್ ಆಗಿಲ್ಲ . ಉಳಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ನಿಮ್ಮ IP ವಿಳಾಸವನ್ನು ಈ ಪುಟದ ಸಂಪಾದನೆ ಇತಿಹಾಸದಲ್ಲಿ ನಮೂದಿಸಲಗುವುದು.''",
        "previousrevision": "←ಹಿಂದಿನ ಪರಿಷ್ಕರಣೆ",
        "nextrevision": "ಮುಂದಿನ ಪರಿಷ್ಕರಣೆ",
        "currentrevisionlink": "ಈಗಿನ ಪರಿಷ್ಕರಣೆ",
-       "cur": "ಸದ್ಯದ",
+       "cur": "ಸಧ್ಯದ",
        "next": "ಮುಂದಿನದು",
        "last": "ಕೊನೆಯ",
        "page_first": "ಮೊದಲ",
        "searchprofile-everything": "ಪ್ರತಿಯೊಂದು",
        "searchprofile-advanced": "ಪರಿಣತ",
        "searchprofile-articles-tooltip": "$1 ನಲ್ಲಿ ಹುಡುಕಿ",
-       "searchprofile-images-tooltip": "ಹà³\81ದà³\81à²\95ಿ  à²¹à²²à³\86ಯನà³\81",
-       "searchprofile-everything-tooltip": "ಹà³\81ದà³\81à²\95ಿ à²¯à²² à²¸à³\81ಮನà³\81 (à²\87ಥಿಯದಿ à²®à²¾à²¥à³\81 à²¹à²²à³\86)",
-       "searchprofile-advanced-tooltip": "ಹà³\81ಧà³\81à²\95ಿ à²¨à²® à²\9cಾà²\97 à²¹à³\86ಸರà³\81ಸà³\8dತಲà³\8dಲ",
+       "searchprofile-images-tooltip": "à²\95ಡತà²\97ಳನà³\8dನà³\81 à²¹à³\81ಡà³\81à²\95ಿ",
+       "searchprofile-everything-tooltip": "à²\8eಲà³\8dಲಾ à²®à²¾à²¹à²¿à²¤à²¿à²\97ಳನà³\8dನà³\81 à²¹à³\81ಡà³\81à²\95ಿ (à²\9aರà³\8dà²\9aà³\86ಯನà³\8dನà³\82 à²¸à³\87ರಿಸಿ)",
+       "searchprofile-advanced-tooltip": "ಬಳà²\95à³\86ಯ à²¨à²¾à²®à²µà²°à³\8dà²\97à²\97ಳಲà³\8dಲಿ à²¹à³\81ಡà³\81à²\95ಿ",
        "search-result-size": "$1 ({{PLURAL:$2|೧ ಪದ|$2 ಪದಗಳು}})",
        "search-redirect": "(ಪುನರ್ನಿರ್ದೇಶನ $1)",
        "search-section": "(ವಿಭಾಗ $1)",
        "recentchanges-label-minor": "ಇದು ಚುಟುಕಾದ ಬದಲಾವಣೆ",
        "recentchanges-label-bot": "ಈ ಸಂಪಾದನೆಯನ್ನು ಒಂದು ಬಾಟ್ ಮಾಡಿದೆ",
        "recentchanges-label-unpatrolled": "ಈ ಸಂಪಾದನೆಯನ್ನು ಇನ್ನೂ ಪರೀಕ್ಷೆಗೆ ಒಳಪಡಿಸಿಲ್ಲ",
+       "recentchanges-label-plusminus": "ಪುಟದ ಗಾತ್ರವು ಇಷ್ಟು ಸಂಖ್ಯೆಯ ಬೈಟ್‍ಗಳಿಂದ ಬದಲಾಯಿಸಲ್ಪಟ್ಟಿದೆ",
+       "recentchanges-legend-heading": "'''ಪರಿವಿಡಿ:'''",
        "rcnotefrom": "'''$2''' ಇಂದ ಆಗಿರುವ ಬದಲಾವಣೆಗಳು ಕೆಳಗಿವೆ (ಕೊನೆಯ '''$1'''ರವರೆಗೆ ತೋರಿಸಲಾಗಿದೆ).",
        "rclistfrom": "$3 $2 ಇಂದ ಪ್ರಾರಂಭಿಸಿ ಮಾಡಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ನೋಡಿ",
        "rcshowhideminor": "ಚಿಕ್ಕಪುಟ್ಟ ಬದಲಾವಣೆಗಳನ್ನು $1",
        "rcshowhideminor-show": "ತೊರಿಸಿ",
        "rcshowhideminor-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhidebots": "ಬಾಟ್‍ಗಳನ್ನು $1",
-       "rcshowhidebots-show": "ತà³\8aರಿಸಿ",
+       "rcshowhidebots-show": "ತà³\8bರಿಸà³\81",
        "rcshowhidebots-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhideliu": "$1 ನೊಂದಾಯಿತ ಬಳಕೆದಾರರು",
        "rcshowhideliu-show": "ತೊರಿಸಿ",
        "number_of_watching_users_pageview": "[$1 ವೀಕ್ಷಿಸುತ್ತಿರುವ {{PLURAL:$1|ಸದಸ್ಯ|ಸದಸ್ಯರು}}]",
        "rc_categories": "ವರ್ಗಗಳಿಗೆ ಮಾತ್ರ ಸೀಮಿತವಾಗಿಸು (\"|\" ಇಂದ ಬೇರ್ಪಡಿಸು)",
        "rc_categories_any": "ಯಾವುದೇ",
-       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ಬದಲಾವಣೆಯ ನಂತರ change",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ಬದಲಾವಣೆಯ ನಂತರ",
        "newsectionsummary": "/* $1 */ ಹೊಸ ವಿಭಾಗ",
        "rc-enhanced-expand": "ವಿವರಗಳನ್ನು ತೋರಿಸು (JavaScript ಬೇಕಾಗುತ್ತದೆ)",
        "rc-enhanced-hide": "ವಿವರಗಳನ್ನು ಅಡಗಿಸು",
        "tooltip-pt-preferences": "ನನ್ನ ಆಯ್ಕೆಗಳು",
        "tooltip-pt-watchlist": "ನೀವು ಬದಲಾವಣೆಗಳ ಮೇಲೆ ನಿಗಾ ವಹಿಸುತ್ತಿರುವ ಪುಟಗಳ ಪಟ್ಟಿ",
        "tooltip-pt-mycontris": "ನಿಮ್ಮ ಕಾಣಿಕೆಗಳ ಪಟ್ಟಿ",
-       "tooltip-pt-login": "ನà³\80ವà³\81 à²²à²¾à²\97à³\8d à²\87ನà³\8d à²\86à²\97ಬà³\87à²\95à³\86à²\82ದà³\81 à²\95à³\8bರà³\81ತà³\8dತà³\87ವà³\86, à²\86ದರà³\86 à²\85ದà³\81 à²\96ಡà³\8dಡಾಯ à²\8fನà³\81 ಅಲ್ಲ.",
+       "tooltip-pt-login": "ನà³\80ವà³\81 à²²à²¾à²\97à³\8d à²\87ನà³\8d à²\86à²\97ಬà³\87à²\95à³\86à²\82ದà³\81 à²\95à³\8bರà³\81ತà³\8dತà³\87ವà³\86, à²\86ದರà³\86 à²\85ದà³\81 à²\96ಡà³\8dಡಾಯ à²\8eನà³\82 ಅಲ್ಲ.",
        "tooltip-pt-logout": "ಲಾಗ್ ಔಟ್",
-       "tooltip-pt-createaccount": "ನà³\80ವà³\81 à²¹à³\8aಸ à²\96ಾತà³\86ಯನà³\8dನà³\81 à²¤à³\86ರà³\86ದà³\81 à²²à²¾à²\97ಿನà³\8d à²\86à²\97à³\81ವà³\81ದನà³\8dನà³\81 à²¹à³\81ರಿದà³\81à²\82ಬಿಸà³\81ತà³\8dತà³\87ವà³\86; à²\86ದಾà²\97à³\8dಯà³\82, à²\87ದà³\81 à²\85ವಶà³\8dಯವà³\87ನಿಲà³\8dಲ",
+       "tooltip-pt-createaccount": "ನೀವು ಹೊಸ ಖಾತೆಯನ್ನು ತೆರೆದು ಲಾಗಿನ್ ಆಗುವುದನ್ನು ಹುರಿದುಂಬಿಸುತ್ತೇವೆ; ಆದಾಗ್ಯೂ, ಇದು ಅವಶ್ಯವೇನಲ್ಲ",
        "tooltip-ca-talk": "ಮಾಹಿತಿ ಪುಟದ ಬಗ್ಗೆ ಚರ್ಚೆ",
        "tooltip-ca-edit": "ಈ ಪುಟವನ್ನು ನೀವು ಸಂಪಾದಿಸಬಹುದು. ಉಳಿಸುವ ಮುನ್ನ ಮುನ್ನೋಟವನ್ನು ಉಪಯೋಗಿಸಿ.",
        "tooltip-ca-addsection": "ಹೊಸ ವಿಭಾಗವನ್ನು ಪ್ರಾರಂಭಿಸಿ",
index 203c6e2..19f2627 100644 (file)
@@ -46,7 +46,8 @@
                        "콩가루",
                        "Twotwo2019",
                        "SeoJeongHo",
-                       "Banwol"
+                       "Banwol",
+                       "Ysjbserver"
                ]
        },
        "tog-underline": "링크에 밑줄:",
        "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": "(기록 정보가 제거됨)",
        "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": "역사",
        "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\" 모듈을 찾을 수 없습니다.",
        "logempty": "일치하는 항목이 없습니다.",
        "log-title-wildcard": "다음 글로 시작하는 제목 검색",
        "showhideselectedlogentries": "선택한 기록 항목 보이기/숨기기",
+       "log-edit-tags": "선택한 기록 항목의 태그를 편집",
        "allpages": "모든 문서 목록",
        "nextpage": "다음 문서 ($1)",
        "prevpage": "이전 문서 ($1)",
        "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-activate-reason": "이유:",
        "tags-activate-not-found": "\"$1\" 태그가 존재하지 않습니다.",
        "tags-deactivate-reason": "이유:",
+       "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": "이 기능을 수행할 특정 판을 제시하지 않았거나 해당 판이 없습니다.",
+       "tags-edit-none-selected": "추가하거나 제거할 최소 하나 이상의 태그를 선택하세요.",
        "comparepages": "문서 비교",
        "compare-page1": "첫 번째 문서",
        "compare-page2": "두 번째 문서",
        "logentry-newusers-create2": "$1 사용자가 $3 사용자 계정을 {{GENDER:$2|만들었습니다}}",
        "logentry-newusers-byemail": "$3 사용자 계정을 $1님이 {{GENDER:$2|만들었고}} 비밀번호는 이메일로 보냈습니다",
        "logentry-newusers-autocreate": "$1 사용자 계정을 자동으로 {{GENDER:$2|만들었습니다}}",
-       "logentry-rights-rights": "$1 사용자가 $3 사용자의 권한을 $4에서 $5로 {{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-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 사용자가 $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..1b0d843 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": "Джангы бёлюм къура",
index 43e3837..94ddd4e 100644 (file)
        "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.",
+       "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ä Övverschrevv es ene Engerwikkilengk dren.",
+       "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 zoh lang. Se darref nit mih wi $1 Bytes <!--  https://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Title-invalid-too-long/ksh_(2) --> lang sin, em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Däm Unicode singe Universal Coded Character Set + Transformation Format—8-Bit\">UTF-8</i>.",
+       "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.'''",
        "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:",
index e375144..dfa305c 100644 (file)
        "tog-usenewrc": "Weşandina zêdetir (JavaScript pêwîst e)",
        "tog-numberheadings": "Sernavan otomatîk bihejmêre",
        "tog-showtoolbar": "Çoyê sererastkirinê nîşan bide",
-       "tog-editondblclick": "Rûpelan bi du klîkan biguherîne (Java Script gireke)",
-       "tog-editsectiononrightclick": "Beşekê bi rast-klîkekê biguherîne (JavaScript gireke)",
-       "tog-watchcreations": "Rûpelên min çêkirin, têxe nav lîsteya min a şopandinê",
-       "tog-watchdefault": "Rûpelên min guhertin, têxe nav lîsteya min a şopandinê",
+       "tog-editondblclick": "Rûpelan bi du klîkan biguherîne",
+       "tog-editsectiononrightclick": "Beşekê bi rast-klîkekê biguherîne",
+       "tog-watchcreations": "Rûpelên min çêkirin û dosyeyên min barkirin, têxe nav lîsteya min a şopandinê",
+       "tog-watchdefault": "Rûpelên min guhertin û dosyeyên min barkirin, têxe nav lîsteya min a şopandinê",
        "tog-watchmoves": "Rûpelên min navê wan guhertin, têxe nav lîsteya min a şopandinê",
        "tog-watchdeletion": "Rûpel û dosyeyên min jêbirin, têxe nav lîsteya min a şopandinê",
        "tog-minordefault": "Her guhertinekê weke guhertineke biçûk nîşan bide",
        "tog-previewontop": "Pêşdîtina gotarê li jorî cihê guherandinê nîşan bide",
        "tog-previewonfirst": "Li cem guherandinê hertim yekemîn pêşdîtinê nîşan bide",
-       "tog-enotifwatchlistpages": "Heke rûpeleke ez dişopînim hate guhertin ji min re E-nameyekê bişîne",
+       "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",
        "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ê",
        "newwindow": "(di rûpeleke 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'ê",
        "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",
        "otherlanguages": "Bi zimanên din",
        "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.",
        "viewcount": "Ev rûpel {{PLURAL:$1|carekê|caran}} tê xwestin.",
        "protectedpage": "Rûpela parastî",
        "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-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",
        "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",
        "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.",
        "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.",
        "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.",
+       "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.",
        "virus-unknownscanner": "Antîvîrusa nenas:",
        "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-captcha": "Kontrola asayîşê",
        "createacct-imgcaptcha-ph": "Nivîsa ku tu li jor dibînî binivîse",
        "createacct-submit": "Hesabê xwe biafirîne",
-       "createacct-another-submit": "Hesabek din çeke",
+       "createacct-another-submit": "Hesabek din çêke",
+       "createacct-benefit-heading": "{{SITENAME}} ji alî mirovên wek te tên çê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ê",
        "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.",
        "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.",
        "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": "Şîfreyeke nû bi e-mail ji min re bişîne",
+       "mailmypassword": "Şîfreyê nû bike",
        "passwordremindertitle": "Şîfreyeke nû ya ji hesabekî {{SITENAME}} re",
        "passwordremindertext": "Kesek (têbê tu, bi IP'ya $1) xwast ku şîfreyeke nû ji {{SITENAME}} ($4) ji te ra were şandin. Şîfreya nû ya bikarhêner \"$2\" niha \"$3\" e. Tu dikarî niha têkevê û şîfreya xwe biguherînê.\n\nEger kesekî din vê xastinê ji te ra xast ya şîfreya kevin dîsa hate bîrê te, tu dikarê guh nedê vê peyamê û tu dikarê bi şîfreya xwe yê kevin hên karbikê.",
        "noemail": "Navnîşana bikarhênerê/î \"$1\" nehat tomar kirine.",
        "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",
        "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.",
        "accountcreated": "Hesab hate çêkirin",
        "accountcreatedtext": "Hesabê bikarhêneran ji $1 ra hate çêkirin.",
        "pt-userlogout": "Derkeve",
        "user-mail-no-addy": "Hewl da e-nameyekê bê navnîşana e-nameyê bişîne",
        "changepassword": "Şîfreyê biguherîne",
-       "resetpass_announce": "Te xwe bi şîfreyekê tomar kiriye ku bi riya e-nameyekê ji te re hatiye şandin.\nJi bo xelaskirina tomarkirinê, divê tu niha şîfreyeke nû binivîsî:",
+       "resetpass_announce": "Ji bo xelaskirina tomarkirinê, divê tu şîfreyeke nû binivîsî.",
        "resetpass_text": "<!-- Nivîsê li vir binivisîne -->",
        "resetpass_header": "Şîfreya hesabê xwe biguherîne",
        "oldpassword": "Şîfreya kevn",
        "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-cancel": "Betal 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-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",
        "changeemail-newemail": "Navnîşana E-nameya nû:",
        "changeemail-none": "(nîne)",
        "changeemail-submit": "E-nameyê 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)",
        "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.",
        "updated": "(Hate rojanekirin)",
        "note": "'''Nîşe:'''",
        "previewnote": "'''Ji bîr neke ku ev tenê pêşdîtinek e.'''\nGuhertinên te hê nehatine tomarkirin!",
-       "continue-editing": "Guhertinê bidomîne",
+       "continue-editing": "Here qada sazandinê",
        "editing": "Biguherîne: \"$1\"",
        "creating": "$1 tê çêkirin",
        "editingsection": "Tê guherandin: $1 (beş)",
-       "editingcomment": "$1 (şîrove) tê guherandin.",
+       "editingcomment": "$1 (beşek nû) tê guherandin.",
        "editconflict": "Têkçûna guherandinan: $1",
        "explainconflict": "Ji dema te dest bi guherandinê kir heta niha kesekê/î din ev rûpel guherand.\nLi jor guhertoya heyî tê dîtîn.\nGuherandinên te li jêr tên nîşandan.\nDivê tu wan bikî yek.\nHeke niha tomar bikî, '''bi tenê''' nivîsara qutiya jor wê bê tomarkirin.",
        "yourtext": "Nivîsara te",
        "hiddencategories": "Ev rûpel endamê {{PLURAL:$1|1 kategoriya veşartî|$1 kategoriyên veşartî}} ye:",
        "sectioneditnotsupported-title": "Guhertina beşê nayê piştgirîkirin",
        "sectioneditnotsupported-text": "Guhertina beşê di vê rûpelê de nayê piştgirîkirin.",
-       "permissionserrors": "Çewtiyên destûrê",
+       "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:",
        "log-fulllog": "Tevahiya wê bibîne",
        "edit-conflict": "Têkçûna guherandinan.",
        "edit-no-change": "Guherandina te nehate hesibandin, ji ber ku guherandinên nivîsê tune bûn.",
+       "postedit-confirmation-created": "Ev rûpel hate çêkirin.",
+       "postedit-confirmation-restored": "Ev rûpel hate restorekirin.",
        "postedit-confirmation-saved": "Guhertina te hate tomarkirin.",
        "edit-already-exists": "Nikarî rûpeleka nuh çêke.\nEw berê heye.",
        "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",
+       "content-json-empty-array": "Rêza vala",
        "undo-success": "Ev guherandin dikare were şûndekirin. Ji kerema xwe ferqa piştî tomarkirinê bibîne, bê ka tu dixwazî vê guhertoyê tomar bikî an na. Ger te şaşîtiyek kir, ji kerema xwe derkeve.",
        "undo-failure": "Ev guhertin ji ber guherandinên piştî wê re nikare were şûndekirin.",
        "undo-summary": "Guhertoya $1 ya [[Special:Contributions/$2|$2]] ([[User talk:$2|gotûbêj]]) şûnde kir",
        "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ê",
        "revisiondelete": "Guhertoyan jê bibe/nebe",
        "revdelete-show-file-submit": "Erê",
        "revdelete-legend": "Guherandina qebûlkirina dîtinê",
-       "revdelete-hide-text": "Nivîsa guhertoyê veşêre",
+       "revdelete-hide-text": "Nivîsa guhertoyê",
        "revdelete-hide-image": "Naveroka pelê veşêre",
-       "revdelete-hide-name": "Çalakî û hedefê veşêre",
-       "revdelete-hide-comment": "Nivîsandinê kurte yê guherandinê veşêre",
+       "revdelete-hide-name": "Çalakî û parametreya veşêre",
+       "revdelete-hide-comment": "Kurteya guherandinê",
        "revdelete-hide-user": "Navê edîtorê/Navnîşanê IP'ye",
        "revdelete-hide-restricted": "Ev qebûlkirinan ji koordînatoran ra ye jî û ev rûpela tê girtin",
        "revdelete-radio-same": "(neguherîne)",
-       "revdelete-radio-set": "Hatîye veşartin",
+       "revdelete-radio-set": "Veşartî",
        "revdelete-radio-unset": "Xuya",
        "revdelete-suppress": "Sedema jêbirinê ji rêveberan re jî veşêre",
        "revdelete-log": "Sedem",
        "compareselectedversions": "Guhertoyan bide ber hev",
        "showhideselectedversions": "Revîzyonên bijartî nîşan bide/veşêre",
        "editundo": "betal bike",
+       "diff-empty": "(Cudahî nîne)",
        "searchresults": "Encamên lêgerînê",
        "searchresults-title": "Encamên lêgerrînê bo \"$1\"",
        "titlematches": "Dîtinên di sernivîsên gotaran de",
        "searchprofile-advanced": "Pêşketî",
        "searchprofile-articles-tooltip": "Di $1 da lêbigere",
        "searchprofile-images-tooltip": "Li pelan bigere",
+       "searchprofile-everything-tooltip": "Di hemû naverokada bigere (tevî gotûbêja)",
        "search-result-size": "$1 ({{PLURAL:$2|peyvek|$2 peyv}})",
        "search-redirect": "(beralîkirin $1)",
        "search-section": "(beş $1)",
+       "search-category": "(kategorî $1)",
+       "search-file-match": "(bi naveroka dosye re lê te)",
        "search-suggest": "Gelo mebesta te ev bû: $1",
        "search-interwiki-caption": "Projeyên hevçeng",
        "search-interwiki-default": "$1 encam:",
        "prefs-personal": "Profîla bikarhêner",
        "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-watchlist-edits-max": "Hejmara mezintirîn: 1000",
        "prefs-misc": "Eyarên cuda",
        "prefs-email": "Vebijarkên E-nameyê",
        "prefs-rendering": "Rû",
        "saveprefs": "Tercîhan tomar bike",
-       "restoreprefs": "Hemû eyarên berê ji nû ve ava bike",
+       "restoreprefs": "Hemû eyarên berê ji nû ve ava bike (di hemû beşa da)",
        "prefs-editing": "Guherandin",
        "rows": "Rêz",
        "columns": "Stûn:",
        "prefs-emailconfirm-label": "Piştrastkirina E-nameyê:",
        "youremail": "E-nameya te:",
        "username": "{{GENDER:$1|Navê bikarhêner}}:",
-       "prefs-memberingroups": "Endamê/a {{PLURAL:$1|komê|koman}}:",
+       "prefs-memberingroups": "{{GENDER:$2|Endamê|Endama|Endamê/a}} {{PLURAL:$1|komê|koman}}:",
        "prefs-registration": "Dema xweqeydkirinê:",
        "yourrealname": "Navê te yê rast:",
        "yourlanguage": "Ziman",
        "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-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",
+       "action-editmyprivateinfo": "agahîyên xwe ên taybet biguherîne",
        "nchanges": "$1 {{PLURAL:$1|guherandinek|guherandin}}",
        "enhancedrc-history": "dîrok",
        "recentchanges": "Guherandinên dawî",
        "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",
        "rcshowhidebots": "Bot'an $1",
        "rcshowhidebots-show": "nîşan bide",
        "rcshowhidebots-hide": "veşêre",
-       "rcshowhideliu": "$1 bikarhênerên tomarkirî",
+       "rcshowhideliu": "Bikarhênerên tomarkirî $1",
        "rcshowhideliu-show": "nîşan bide",
        "rcshowhideliu-hide": "veşêre",
        "rcshowhideanons": "Bikarhênerên netomarkirî (IP) $1",
        "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-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",
        "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\").",
+       "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ê.",
        "upload-failure-subj": "Pirsgirêka barkirinê",
        "upload-warning-subj": "Hişyariya barkirinê",
        "upload-file-error": "Çewtiya navxweyî",
+       "uploadstash-refresh": "Lîsteya dosyeya nû bike",
+       "img-auth-accessdenied": "Gihandin hate astengkirin",
+       "img-auth-nofile": "Dosyeye \"$1\" tine.",
+       "img-auth-streaming": "\"$1\" te lîstandin.",
+       "http-invalid-url": "URL'ya nederbasdar: $1",
+       "http-invalid-scheme": "URL'yên bi şemaye \"$1\" naye piştgirîkirin.",
+       "http-request-error": "Xwestina HTTP ji ber çevtîyek nenas bi ser neket.",
+       "http-read-error": "Çewtîya xwendina HTTP.",
+       "http-timed-out": "Xwestina HTTP demborî bû.",
+       "http-curl-error": "Çewtîyek di hildana URL'de: $1",
        "license": "Lîsans:",
        "license-header": "Lîsans",
        "nolicense": "Ya hilbijartî nîne",
        "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.",
        "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î",
        "listusers": "Lîsteya bikarhêneran",
        "listusers-editsonly": "Tenê bikarhênerên bi guherrandinan nîşan bide",
        "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''\".",
        "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)",
        "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.",
        "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-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ş",
        "table_pager_first": "Rûpela pêşîn",
        "table_pager_last": "Rûpela dawî",
        "table_pager_limit_submit": "Here",
-       "autosumm-blank": "Rûpel hat vala kirin",
+       "autosumm-blank": "Rûpel hat valakirin",
        "autosumm-replace": "'$1' ket şûna rûpelê.",
        "autoredircomment": "Ji bo [[$1]] hate beralîkirin",
        "autosumm-new": "Rûpela nû: \"$1\"",
        "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-edit": "biguherîne",
        "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",
index 94f5b4b..17cccc2 100644 (file)
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|a wayas}} an folen $3 dhe $4 heb gasa daskedyans",
        "logentry-move-move_redir": "$1 {{GENDER:$2|a wayas}} an folen $3 dhe $4 dres daskedyans",
        "searchsuggest-search": "Hwilas",
-       "searchsuggest-containing": "ynni..."
+       "searchsuggest-containing": "ynni...",
+       "special-characters-group-latin": "Latin",
+       "special-characters-group-latinextended": "Latin ystynnys",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Arwodhyow",
+       "special-characters-group-greek": "Greka",
+       "special-characters-group-arabic": "Arabek",
+       "special-characters-group-arabicextended": "Arabek ystynnys",
+       "special-characters-group-persian": "Persek",
+       "special-characters-group-hebrew": "Ebrow",
+       "special-characters-group-bangla": "Bengalek",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Sinhala",
+       "special-characters-group-gujarati": "Gujarati",
+       "special-characters-group-thai": "Tay",
+       "special-characters-group-lao": "Laosek",
+       "special-characters-group-khmer": "Khmer"
 }
index 0212208..0a78ffd 100644 (file)
        "import-interwiki-history": "Бул барактын бүткүл өзгөртүү тарыхын көчүрүү",
        "import-interwiki-templates": "Бардык калыптарды камтуу",
        "import-interwiki-submit": "Импорттоо",
-       "import-interwiki-namespace": "Максаттык ат мейкиндиги:",
-       "import-interwiki-rootpage": "Максаттык түпкү барагы (сөзсүз эмес):",
        "import-upload-filename": "Файл аты:",
        "import-comment": "Эскертүү:",
        "importstart": "Барактарды импорттоо...",
index 979b2fb..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\".'''",
        "metadata-help": "Hic fasciculus alias res continet, saepius a machina originatore additas, et (si fasciculus postea recensus sit) fortasse corrigendas.",
        "metadata-expand": "Plura ostende",
        "metadata-collapse": "Partim celare",
+       "metadata-fields": "Campi metadatorum imaginis in hoc nuntio enumerati in pagina imaginis includentur cum tabula metadatorum occludatur.\nAlii abscondentur nisi actio contraria faciatur.\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": "Amplitudo",
        "exif-imagelength": "Altitudo",
        "exif-bitspersample": "Biti per componentem",
index ba2a8a3..96b7888 100644 (file)
        "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",
        "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.'''",
        "missingcommentheader": "<strong>Denkt drun:</strong> Dir hutt keen Titel/Sujet fir dës Bemierkung aginn.\nWann Dir nach en Kéier op \"{{int:savearticle}}\" klickt da gëtt Är Ännerung ouni Titel gespäichert.",
        "summary-preview": "Resumé kucken ouni ofzespäicheren:",
        "subject-preview": "Sujet/Iwwerschrëft kucken:",
+       "previewerrortext": "Beim Versuch fir Är Ännerungen ze weisen, ass e Feeler geschitt.",
        "blockedtitle": "Benotzer ass gespaart",
        "blockedtext": "Äre Benotzernumm oder Är IP-Adress gouf gespaart.\n\nD'Spär gouf vum $1 gemaach. Als Grond gouf ''$2'' uginn.\n\n* Ufank vun der Spär: $8\n* Enn vun der Spär: $6\n* Spär betrëfft: $7\n\nDir kënnt den/d' $1 kontaktéieren oder ee vun den aneren [[{{MediaWiki:Grouppage-sysop}}|Administrateure]] fir iwwer d'Spär ze schwätzen.\n\nDëst sollt Der besonnesch maachen, wann Der d'Gefill hutt, datt de Grond fir d'Spären net bei Iech läit.\nD'Ursaach dofir ass an deem Fall, datt der eng dynamesch IP hutt, iwwer en Access-Provider, iwwer deen och aner Leit fueren.\nAus deem Grond ass et recommandéiert, sech e Benotzernumm zouzeleeën, fir all Mëssverständnes z'evitéieren.\n\nDir kënnt d'Funktioun \"Dësem Benotzer eng E-Mail schécken\" nëmme benotzen, wann Dir eng gëlteg E-Mail Adress bei Ären [[Special:Preferences|Astellungen]] aginn hutt.\nÄr aktuell IP-Adress ass $3 an d'Nummer vun der Spär ass #$5.\nSchreift all dës Informatioune w.e.g. bei all Ufro derbäi.",
        "autoblockedtext": "Är IP-Adress gouf automatesch gespaart, well se vun engem anere Benotzer gebraucht gouf, an dee vum $1 gespaart gouf.\nDe Grond dofir war:\n\n:''$2''\n\n* Ufank vun der Spär: $8\n* Dauer vun der Spär: $6\n* D'Spär leeft of: $7\n\nDir kënnt de(n) $1 oder soss een [[{{MediaWiki:Grouppage-sysop}}|Administrateur]] kontaktéieren, fir iwwer déi Spär ze diskutéieren.\n\nBedenkt datt Dir d'Funktioun \"Dësem Benotzer eng E-Mail schécken\" benotze kënnt wann Dir eng gëlteg E-Mail-Adress an Ären [[Special:Preferences|Astellungen]] uginn hutt a wann dat net fir Iech gespaart gouf.\n\nÄr aktuell IP-Adress ass $3 an d'Nummer vun Ärer Spär ass $5.\nGitt dës Donnéeë w.e.g bei allen Ufroen zu dëser Spär un.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Eidelen Objet",
        "content-json-empty-array": "Eidel Tabell",
+       "duplicate-args-category": "Säiten, déi duebel Argumenter a Schablounenopriff gebrauchen",
        "expensive-parserfunction-warning": "'''Opgepasst:'' Dës Säit huet ze vill Ufroe vu komplexe Parserfunktiounen.\n\nEt däerfen net méi wéi $2 {{PLURAL:$2|Ufro|Ufroe}} sinn, aktuell {{PLURAL:$2|ass et $1 Ufro|sinn et $1 Ufroe}}.",
        "expensive-parserfunction-category": "Säiten, déi komplex Parserfunktiounen ze dacks opruffen",
        "post-expand-template-inclusion-warning": "Opgepasst: D'Gréisst vun den agebonnene Schablounen ass ze grouss, e puer Schabloune kënnen net agebonne ginn.",
        "protect-dropdown": "*Déi heefegst Grënn fir eng Säit ze spären\n** Weblink-Spam\n** Permanenten Ännerungskonflikt\n** Dacks benotzt Schablounen\n** Säit déi dacks gekuckt gëtt",
        "protect-edit-reasonlist": "Grënn vun der Protektioun änneren",
        "protect-expiry-options": "1 Stonn:1 hour,1 Dag:1 day,1 Woch:1 week,2 Wochen:2 weeks,1 Mount:1 month,3 Méint:3 months,6 Méint:6 months,1 Joer:1 year,onbegrenzt:infinite",
-       "restriction-type": "Berechtigung:",
+       "restriction-type": "Autorisatioun:",
        "restriction-level": "Niveau vun de Limitatiounen:",
        "minimum-size": "Mindestgréisst",
        "maximum-size": "Maximalgréisst:",
        "tags-edit-new-tags": "Nei Markéierungen (tags):",
        "tags-edit-add": "Dës Markéierungen (tags) dobäisetzen:",
        "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.",
        "tags-edit-failure": "D'Ännerunge konnten net applizéiert ginn: $1",
        "comparepages": "Säite vergläichen",
        "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 vun $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",
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 7e6ddf6..8372a30 100644 (file)
        "import-interwiki-history": "Volledige gesjiedenis van deze pazjena ouch kopiëre",
        "import-interwiki-templates": "Alle sjablone opnaeme",
        "import-interwiki-submit": "Importere",
-       "import-interwiki-namespace": "Doelnaamruumdje:",
        "import-upload-filename": "Bestandjsnaam:",
        "import-comment": "Opmèrking:",
        "importtext": "Gebroek de functie [[Special:Export|export]] in de wiki wo de informatie vanaaf kömp. \nSlaon de oetveur op dien eige systeem op, en voeg dae dao nao hiej toe.",
index 66a5e66..d06846d 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-relative": "داسون یه گل مسیر هوم دنگ داره.داسون بلگه هوم دنگ(./, ../) نامعتوره، سی یه که ونو د گاتی که دوارته نیئر کاریار وه کار گرته بوئن نمیان د بلگه نمایشت دوارته نیئر.",
+       "title-invalid-magic-tilde": "داسون بلگه حاستنی مینونه دار یه گل نماجا جادویی نامعتوره(<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "داسون بلگه حاستنی فره گپه. د حال و بار رازینه کاری UTF-8 انازه وه نواس د $1 بایت گپتر بوئه.",
+       "title-invalid-leading-colon": "داسون بلگه حاستنی مینونه دار یه گل کلون نامعتور د شرو کارشه.",
        "perfcached": "رسینه یا نهایی د ویرگه نهونی موکشت بینه و شایت هنی وه هنگوم سازی نبینه.بیشترونه {{جمی:$4|یه گل نتیجه|$4 یه گل نتیجه}} د ویرگه نهونی هان د دسرس.",
        "perfcachedts": "رسینه یا نهایی د ویرگه نهونی موکشت بینه و شایت هنی وه هنگوم سازی نبینه.بیشترونه {{جمی:$4|یه گل نتیجه|$4 یه گل نتیجه}} د ویرگه نهونی هان د دسرس.",
        "querypage-no-updates": "نبوئه ای بلگه وه هنگوم سازی با.\nرسینه یا ایچه تازه نبیه.",
        "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اوسه ونه د دسگایا خوتو اماییه کاری بکیت و ایچه ونه سوار بکیت.",
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 fc58f02..81b4612 100644 (file)
@@ -71,7 +71,7 @@
        "editfont-sansserif": "Bezserifa fonts",
        "editfont-serif": "Serifa fonts",
        "sunday": "svētdiena",
-       "monday": "Pirmdiena",
+       "monday": "pirmdiena",
        "tuesday": "otrdiena",
        "wednesday": "trešdiena",
        "thursday": "ceturtdiena",
        "disclaimers": "Saistību atrunas",
        "disclaimerpage": "Project:Saistību atrunas",
        "edithelp": "Labošanas palīdzība",
+       "helppage-top-gethelp": "Palīdzība",
        "mainpage": "Sākumlapa",
        "mainpage-description": "Sākumlapa",
        "policy-url": "Project:Politika",
        "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",
        "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",
        "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",
        "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",
        "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",
        "thumbnail_image-missing": "Šķiet, ka fails ir pazudis: $1",
        "import": "Importēt lapas",
        "importinterwiki": "Starpviki importēšana",
+       "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-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",
        "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.",
        "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-active-yes": "Jā",
        "tags-active-no": "Nē",
        "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:",
        "comparepages": "Salīdzināt lapas",
        "compare-page1": "1. lapa",
        "compare-page2": "2. lapa",
index 674c343..46c4e7f 100644 (file)
        "import-interwiki-sourcepage": "源頁:",
        "import-interwiki-history": "審、誌同匯",
        "import-interwiki-submit": "入匯",
-       "import-interwiki-namespace": "入名集:",
        "import-upload-filename": "檔名:",
        "import-comment": "註:",
        "importtext": "請[[Special:Export|出匯]]儲之。\n再入匯於此。",
index ffa712d..9b646e0 100644 (file)
        "import-interwiki-history": "अए पन्नाक सभटा इतिहास संशोधनक द्वितीयक बनाउ",
        "import-interwiki-templates": "सभटा नमूना शामिल करू",
        "import-interwiki-submit": "आनू",
-       "import-interwiki-namespace": "लक्ष्य नामगाम:",
        "import-upload-filename": "संचिकानाम:",
        "import-comment": "समीक्षा:",
        "importtext": "मूल विकी [[Special:Export|export utility]] क प्रयोग कऽ संचिका पठाउ।\nअपन संगणकमे एकरा सुरक्षित करू आ एतए उपारोपित करू।",
index f7cf1c6..8caf722 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}}",
+       "newmessageslinkplural": "{{PLURAL:$1|pesen anyar|999=pesen anyar}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1||}}owah-owahan pungkasan",
        "youhavenewmessagesmulti": "Rika olih pesen-pesen anyar nang $1",
        "editsection": "sunting",
        "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 46f6d38..2e0ae65 100644 (file)
        "import-interwiki-history": "Копияфтомс тя лопать сембе историянь верзиенза",
        "import-interwiki-templates": "Сувафтомс сембе шаблотт",
        "import-interwiki-submit": "Таргамс",
-       "import-interwiki-namespace": "Пачфтема лемботма:",
-       "import-interwiki-rootpage": "Ёнонь юрлопась (кочкамать коряс):",
        "import-upload-filename": "Файллем:",
        "import-comment": "Мяльполаткс:",
        "importtext": "Эняльттяма таргак файлать Вики лисьмостонза [[Special:Export|вима лезкссь]]. Ванфтк содама машиназот ди тонк тяза.",
        "import-options-wrong": "Аф виде {{PLURAL:$2|кочкама|кочкамат}}: <nowiki>$1</nowiki>",
        "importlogpage": "Таргамань лувома",
        "importlogpagetext": "Администрациеса лопань таргаматне петнемань историяснон мархта иля Викиста.",
-       "import-logentry-upload": "таргаф [[$1]] файлонь тонгомать вельде",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|илякстоптома|илякстоптомат}}",
-       "import-logentry-interwiki": "шашфтф Викитнень ёткса $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|илякстоптома|илякстоптомат}} $2-ста",
        "tooltip-pt-userpage": "Тонь тиинь лопаце",
        "tooltip-pt-anonuserpage": "Тиить лопанц IP потмоса, конань эса тон петнесак кода",
index e63929f..018e415 100644 (file)
        "importstart": "Mangimpor laman...",
        "importnosources": "Indak ado sumber impor transwiki nan lah dibuek dan pamuatan riwayaik sacaro langsuang alah dinon-aktipan.",
        "importlogpagetext": "Administrasi laman impor jo riwayaik panyuntiangannyo dari wiki lain.",
-       "import-logentry-upload": "mangimpor [[$1]] malalui pangunggahan berkas",
        "tooltip-pt-userpage": "Laman pangguno Sanak",
        "tooltip-pt-anonuserpage": "Laman pangguno IP Sanak",
        "tooltip-pt-mytalk": "Laman rundiang Sanak",
        "expand_templates_xml_output": "Hasil XML",
        "expand_templates_ok": "OK",
        "expand_templates_remove_comments": "Hapuih komentar",
-       "expand_templates_preview": "Pratonton"
+       "expand_templates_preview": "Pratonton",
+       "special-characters-group-latin": "Latin",
+       "special-characters-group-latinextended": "Latin tambahan",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Simbol",
+       "special-characters-group-greek": "Yunani",
+       "special-characters-group-cyrillic": "Sirilik",
+       "special-characters-group-arabic": "Arab",
+       "special-characters-group-arabicextended": "Arab tambahan",
+       "special-characters-group-persian": "Persia",
+       "special-characters-group-hebrew": "Ibrani",
+       "special-characters-group-bangla": "Bangla",
+       "special-characters-group-tamil": "Tamil",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Sinhala",
+       "special-characters-group-gujarati": "Gujarat",
+       "special-characters-group-devanagari": "India kuno",
+       "special-characters-group-thai": "Siam",
+       "special-characters-group-lao": "Lao",
+       "special-characters-group-khmer": "Khmer",
+       "special-characters-title-endash": "en dash",
+       "special-characters-title-emdash": "em dash",
+       "special-characters-title-minus": "tando kurang"
 }
index 933cb0c..31e9219 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-relative": "Насловот има односна патека. Односните наслови (./, ../) се неважечки бидејќи честопати се недостапни за прелистувачот.",
+       "title-invalid-magic-tilde": "Побараниот наслов содржи низа неважечки тилди (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Бараниот наслов е предолг. Не смее да биде поголем од $1 бајти, шифриран според UTF-8.",
+       "title-invalid-leading-colon": "Бараниот наслов содржи неважечки две точки на почетокот.",
        "perfcached": "Следните податоци се меѓускладирани и може да не се тековни. Во меѓускладот {{PLURAL:$1|е достапен највеќе еден резултат|се достапни највеќе $1 резултати}}.",
        "perfcachedts": "Следните податоци се меѓускладирани, последен пат подновени на $1. Во меѓускладот {{PLURAL:$4|е достапен највеќе еден резултат|се достапни највеќе $4 резултати}}.",
        "querypage-no-updates": "Подновите на оваа страница моментално се оневозможени.\nПодатоците овде во моментов нема да се подновуваат.",
        "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": "Спортски режим (на основа на што побрз затворач)",
index 9c892db..1f3c40c 100644 (file)
        "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": "ആവശ്യപ്പെട്ട താൾ തലക്കെട്ട് നീളമേറിയതാണ്. യു.ടി.എഫ്.-8 എൻകോഡിങ്ങിൽ അതിന് $1 ബൈറ്റുകളിലധികം നീളമുണ്ടാകാൻ പാടില്ല.",
+       "title-invalid-leading-colon": "ആവശ്യപ്പെട്ട താൾ തലക്കെട്ടിന്റെയാദ്യം അസാധുവായ അപൂർണ്ണവിരാമം ഉൾപ്പെടുന്നു.",
        "perfcached": "താഴെ കൊടുത്തിരിക്കുന്ന വിവരം ശേഖരിച്ചു വെച്ചിരിക്കുന്നതാണ്, അതുകൊണ്ട് ചിലപ്പോൾ പുതിയതായിരിക്കണമെന്നില്ല. പരമാവധി {{PLURAL:$1|ഒരു ഫലം|$1 ഫലങ്ങൾ}} ശേഖരിച്ചുവെച്ചിരിക്കുന്നവയിൽ ഉണ്ട്.",
        "perfcachedts": "താഴെയുള്ള വിവരങ്ങൾ ശേഖരിച്ച് വെച്ചവയിൽ പെടുന്നു, അവസാനം പുതുക്കിയത് $1-നു ആണ്‌. പരമാവധി {{PLURAL:$4|ഒരു ഫലം|$4 ഫലങ്ങൾ}} ശേഖരിച്ചുവെച്ചിരിക്കുന്നവയിൽ ഉണ്ട്.",
        "querypage-no-updates": "ഈ താളിന്റെ പുതുക്കൽ തൽക്കാലം നടക്കുന്നില്ല. ഇവിടുള്ള വിവരങ്ങൾ ഏറ്റവും പുതിയതാവണമെന്നില്ല.",
        "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-default": "സ്വതെയുള്ള സ്ഥാനങ്ങളിലേക്ക് ഇറക്കുമതി ചെയ്യുക",
+       "import-mapping-namespace": "ഒരു നാമമേഖലയിലേക്ക് ഇറക്കുമതി ചെയ്യുക:",
+       "import-mapping-subpage": "ഇനിക്കൊടുക്കുന്ന താളിന്റെ ഉപതാളുകളായി ഇറക്കുമതി ചെയ്യുക:",
        "import-upload-filename": "പ്രമാണത്തിന്റെ പേര്‌",
        "import-comment": "കുറിപ്പ്:",
        "importtext": "ദയവായി സ്രോതസ്സ് വിക്കിയിൽ നിന്ന് [[Special:Export|കയറ്റുമതി ഉപകരണം]] ഉപയോഗിച്ച് പ്രമാണം കയറ്റുമതി ചെയ്യുക.\nഅത് താങ്കളുടെ കമ്പ്യൂട്ടറിൽ ശേഖരിച്ച് ഇവിടെ അപ്‌‌ലോഡ് ചെയ്യുക.",
        "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-existing-tags": "നിലവിലുള്ള ടാഗുകൾ:",
        "tags-edit-existing-tags-none": "''ഒന്നുമില്ല''",
        "tags-edit-new-tags": "പുതിയ ടാഗുകൾ:",
index 7fe9c72..084057a 100644 (file)
        "import-interwiki-history": "Энэ хуудсын бүх хувилбаруудын түүхийг хуулах",
        "import-interwiki-templates": "Бүх загварыг оруулах",
        "import-interwiki-submit": "Импортлох",
-       "import-interwiki-namespace": "Зорьсон хуудсын төрөл:",
        "import-upload-filename": "Файлын нэр:",
        "import-comment": "Тайлбар:",
        "importtext": "[[Special:Export|экспорт багажийг]]  ашиглан файлыг эх үүсвэр викигээс татаад, өөрийн дискэнд хадгалж, энд оруулна уу.",
        "import-invalid-interwiki": "Өгөгдсөн викигээс оруулах боломжгүй байна.",
        "importlogpage": "Оруулалтын лог",
        "importlogpagetext": "Администраторуудын бусад викигээс засварын түүхтэй нь оруулсан хуудсууд.",
-       "import-logentry-upload": "файлын оруулалтаар [[$1]]-г орууллаа",
        "import-logentry-upload-detail": "$1 засвар",
-       "import-logentry-interwiki": "$1-г транс-викидлээ",
        "import-logentry-interwiki-detail": "$2-с авсан $1 засвар",
        "javascripttest": "JavaScript туршилт",
        "javascripttest-pagetext-noframework": "Уг хуудсыг JavaScript тест хийхэд ашиглана.",
index ead4fef..e028891 100644 (file)
        "import-interwiki-history": "या पानाकरिताची साऱ्या इतिहास आवर्तनांची नक्कल करा",
        "import-interwiki-templates": "साचे आंतरभूत करा",
        "import-interwiki-submit": "आयात",
-       "import-interwiki-namespace": "पाने नामविश्वात स्थानांतरीत करा:",
-       "import-interwiki-rootpage": "स्थानकाचे मुळ-पृष्ठ (वैकल्पिक):",
        "import-upload-filename": "संचिकानाव:",
        "import-comment": "प्रतिक्रीया:",
        "importtext": "कृपया [[Special:Export|निर्यात सुविधा]] वापरून स्रोत विकिकडून संचिका निर्यात करा,ती तुमच्या तबकडीवर जतन करा आणि येथे चढवा.",
index 14b518c..b69882b 100644 (file)
        "import-interwiki-history": "Salin semua versi sejarah bagi laman ini",
        "import-interwiki-templates": "Sertakan semua templat",
        "import-interwiki-submit": "Import",
-       "import-interwiki-namespace": "Ruang nama destinasi:",
-       "import-interwiki-rootpage": "Halaman akar tujuan (tidak wajib):",
        "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.",
        "import-rootpage-nosubpage": "Ruang nama \"$1\" halaman akar tidak membenarkan subhalaman.",
        "importlogpage": "Log import",
        "importlogpagetext": "Senarai tindakan import laman dengan keseluruhan sejarah suntingannya daripada wiki lain.",
-       "import-logentry-upload": "mengimport [[$1]] dengan memuat naik fail",
        "import-logentry-upload-detail": "$1 semakan diimportkan",
-       "import-logentry-interwiki": "$1 dipindahkan ke wiki lain",
        "import-logentry-interwiki-detail": "$1 semakan diimportkan daripada $2",
        "javascripttest": "Ujian JavaScript",
        "javascripttest-pagetext-noframework": "Laman ini ditempah untuk menjalankan ujian JavaScript.",
        "json-error-utf8": "Aksara UTF-8 cacat, mungkin salah dikodkan",
        "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"
+       "json-error-unsupported-type": "Diberikannya nilai jenis yang tidak boleh dikodkan",
+       "special-characters-group-latin": "Rumi",
+       "special-characters-group-latinextended": "Rumi lanjutan",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Simbol",
+       "special-characters-group-greek": "Yunani",
+       "special-characters-group-cyrillic": "Cyril",
+       "special-characters-group-arabic": "Arab",
+       "special-characters-group-arabicextended": "Arab lanjutan",
+       "special-characters-group-persian": "Parsi",
+       "special-characters-group-hebrew": "Ibrani",
+       "special-characters-group-bangla": "Benggala",
+       "special-characters-group-tamil": "Tamil",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Sinhala",
+       "special-characters-group-gujarati": "Gujarati",
+       "special-characters-group-devanagari": "Devanagari",
+       "special-characters-group-thai": "Thai",
+       "special-characters-group-lao": "Lao",
+       "special-characters-group-khmer": "Khmer",
+       "special-characters-title-endash": "sengkang en",
+       "special-characters-title-emdash": "sengkang em",
+       "special-characters-title-minus": "tanda tolak"
 }
index 8cba53c..b9e8e4e 100644 (file)
        "november-gen": "Novembru",
        "december-gen": "Diċembru",
        "jan": "Jan",
-       "feb": "Fra",
+       "feb": "Frar",
        "mar": "Mar",
        "apr": "Apr",
-       "may": "Mej",
+       "may": "Mejj",
        "jun": "Ġun",
        "jul": "Lul",
-       "aug": "Awi",
-       "sep": "Set",
+       "aug": "Awwi",
+       "sep": "Sett",
        "oct": "Ott",
        "nov": "Nov",
        "dec": "Diċ",
        "personaltools": "Għodda personali",
        "articlepage": "Ara l-artiklu",
        "talk": "Diskussjoni",
-       "views": "Veduti",
+       "views": "Dehriet",
        "toolbox": "Għodda",
        "userpage": "Ara l-paġna tal-utent",
        "projectpage": "Ara l-paġna tal-proġett",
        "viewhelppage": "Ara l-paġna tal-għajnuna",
        "categorypage": "Ara l-kategorija",
        "viewtalkpage": "Ara d-diskussjoni",
-       "otherlanguages": "F'lingwi oħrajn",
+       "otherlanguages": "B'lingwi oħrajn",
        "redirectedfrom": "(Rindirizzat minn $1)",
        "redirectpagesub": "Paġna ta' rindirizz",
        "redirectto": "Rindirizza lejn:",
        "versionrequired": "Hija meħtieġa l-verżjoni $1 ta' MedjaWiki",
        "versionrequiredtext": "Hija meħtieġa l-verżjoni $1 ta' MedjaWiki biex tuża din il-paġna. Ara [[Special:Version|paġna tal-verżjoni]].",
        "ok": "OK",
-       "retrievedfrom": "Miġjub minn \"$1\"",
+       "retrievedfrom": "Miksub minn \"$1\"",
        "youhavenewmessages": "Għandek $1 ($2).",
        "youhavenewmessagesfromusers": "Għandek $1 minn {{PLURAL:$3|utent ieħor|$3utenti oħra}} ($2).",
        "youhavenewmessagesmanyusers": "Għandek $1 mingħand ħafna utenti ($2).",
        "compareselectedversions": "Qabbel il-verżjonijiet magħżula",
        "showhideselectedversions": "Uri/aħbi reviżjonijiet magħżula",
        "editundo": "ħassar",
-       "diff-multi-sameuser": "(Mhux qed {{PLURAL:$1|tintwera r-reviżjoni intermedja|jintwerew $1 r-reviżjonijiet intermedji}} mill-istess awtur})",
+       "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",
        "searchresults-title": "Riżultati tat-tfittxija għal \"$1\"",
        "action-sendemail": "ibgħat l-ittri-e",
        "nchanges": "{{PLURAL:$1|modifika $1 |$1 modifiki}}",
        "enhancedrc-history": "kronoloġija",
-       "recentchanges": "Tibdil riċenti",
+       "recentchanges": "Bidliet riċenti",
        "recentchanges-legend": "Opzjonijiet tat-tibdil riċenti",
        "recentchanges-summary": "Din il-paġna turi l-modifiki l-aktar riċenti għal kontenut tas-sit.",
        "recentchanges-noresult": "L-ebda bidla ma saret matul il-perjodu mogħti li tissodisfa dawn il-kriterji.",
        "tooltip-pt-preferences": "Il-preferenzi tiegħek",
        "tooltip-pt-watchlist": "Il-lista ta' paġni li qiegħed tosserva",
        "tooltip-pt-mycontris": "Lista tal-kontribuzzjonijiet tiegħek",
-       "tooltip-pt-login": "Ir-reġistrazzjoni hija mħeġġa, għalkemm mhijiex obbligatorja",
+       "tooltip-pt-login": "Inħeġġuk tidħol fil-kont tiegħek, għalkemm dan mhux obbligatorju",
        "tooltip-pt-logout": "Oħroġ (illogja 'l barra)",
        "tooltip-pt-createaccount": "Nagħtuk parir toħloq kont u tidħol fih; però dan mhux obligatorju.",
-       "tooltip-ca-talk": "Diskussjoni dwar il-kontenut tal-paġna",
+       "tooltip-ca-talk": "Diskussjoni dwar il-paġna ta' kontenut",
        "tooltip-ca-edit": "Tista' timmodifika din il-paġna. Jekk jogħġbok uża l-buttuna tad-dehra proviżorja qabel ma ssalva l-modifiki.",
        "tooltip-ca-addsection": "Ibda sezzjoni ġdida",
        "tooltip-ca-viewsource": "Din il-paġna hija protetta. Tista' tara s-sors tagħha.",
        "tooltip-ca-watch": "Żid din il-paġna mal-lista ta' osservazzjoni tiegħek",
        "tooltip-ca-unwatch": "Neħħi din il-paġna mill-osservazzjonijiet speċjali tiegħek",
        "tooltip-search": "Fittex fil-{{SITENAME}}",
-       "tooltip-search-go": "Mur fil-paġna bit-titlu indikat, jekk teżisti",
-       "tooltip-search-fulltext": "Fittex it-test indikat fil-paġni",
-       "tooltip-p-logo": "Il-Paġna prinċipali",
+       "tooltip-search-go": "Mur fil-paġna b'dan it-titlu eżatt, jekk teżisti",
+       "tooltip-search-fulltext": "Fittex dan it-test fil-paġni",
+       "tooltip-p-logo": "Żur il-paġna prinċipali",
        "tooltip-n-mainpage": "Żur il-Paġna Prinċipali",
        "tooltip-n-mainpage-description": "Żur il-paġna prinċipali",
        "tooltip-n-portal": "Dwar il-proġett, x'tista' tagħmel, fejn tista' ssib l-affarijiet",
        "tooltip-n-currentevents": "Sib aktar informazzjoni dwar il-ġrajjiet kurrenti",
-       "tooltip-n-recentchanges": "Il-lista tat-tibdil riċenti fil-wiki",
+       "tooltip-n-recentchanges": "Il-lista tal-bidliet riċenti fil-wiki",
        "tooltip-n-randompage": "Uri paġna kwalunkwe",
-       "tooltip-n-help": "Il-Post fejn issir taf.",
+       "tooltip-n-help": "Il-post fejn issir taf iżjed.",
        "tooltip-t-whatlinkshere": "Lista tal-paġni tal-wiki kollha li jwasslu hawn",
        "tooltip-t-recentchangeslinked": "Link għal modifiki riċenti ta' paġni relatati",
        "tooltip-feed-rss": "Feed RSS għal din il-paġna",
index da14248..c35e221 100644 (file)
        "import": "Таргамс лопатнень",
        "import-interwiki-templates": "Совавтомс весе лопа парцунтнэнь",
        "import-interwiki-submit": "Таргамс",
-       "import-interwiki-namespace": "Норовазь лемпотмось:",
        "import-upload-filename": "Файла лемесь:",
        "import-comment": "Арсемат-мельть:",
        "importstart": "Лопатне совавтовить...",
        "duration-decades": "$1 {{PLURAL:$1|1=кеменьие|кеменьиеть}}",
        "duration-centuries": "$1 {{PLURAL:$1|1=пинге|пингеть}}",
        "duration-millennia": "$1 {{PLURAL:$1|1=тёжтьие|тёжтьиеть}}",
-       "expand_templates_preview": "Васнянь неевтезэ"
+       "expand_templates_preview": "Васнянь неевтезэ",
+       "special-characters-group-latin": "Латиница",
+       "special-characters-group-symbols": "Тешкстт",
+       "special-characters-group-cyrillic": "Кириллица"
 }
index e6704e3..19e6916 100644 (file)
        "logentry-newusers-newusers": "$1  بساتن اتا حساب کاروری",
        "logentry-newusers-create": "$1  بساتن اتا حساب کاروری",
        "rightsnone": "(هچّی)",
-       "feedback-subject": "موضوع:",
-       "feedback-message": "پیغوم:",
-       "feedback-cancel": "ول هاکردن",
-       "feedback-submit": "ارسال پیشنهادات و انتقادات",
        "feedback-adding": "بی‌یشتن پیشنهادات و انتقادات...",
+       "feedback-cancel": "ول هاکردن",
        "feedback-error1": "خطا: جواب‌ئون نشناسی‌یه API جه",
        "feedback-error2": "خطا: شکست دچی‌ین سر",
        "feedback-error3": "خطا: جواب ندائن API",
+       "feedback-message": "پیغوم:",
+       "feedback-subject": "موضوع:",
+       "feedback-submit": "ارسال پیشنهادات و انتقادات",
        "api-error-badaccess-groups": "شما اجازهٔ باربی‌یشتن پرونده‌ها ره این ویکی دله ندارنی.",
        "api-error-badtoken": "خطای داخلی: کد امنیتی اشتبائه (Bad token).",
        "api-error-copyuploaddisabled": "باربی‌یشتن با استفاده از نشونی اینترنتی این کارساز دله غیرفعاله.",
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..4609c7e 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 cuntene nu link interwiki",
+       "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 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.",
index d971226..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.",
        "history-feed-description": "Revisjonshistorikk for denne siden",
        "history-feed-item-nocomment": "$1 på $2",
        "history-feed-empty": "Den etterspurte siden finnes ikke.\nDen kan ha blitt slettet fra wikien, eller fått et nytt navn.\nPrøv å [[Special:Search|søke]] etter beslektede sider.",
+       "history-edit-tags": "Rediger merkene til de valgte revisjonene",
        "rev-deleted-comment": "(redigeringskommentar fjernet)",
        "rev-deleted-user": "(brukernavn fjernet)",
        "rev-deleted-event": "(loggoppføring fjernet)",
        "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",
        "listfiles-delete": "slett",
        "listfiles-summary": "Denne spesialsiden viser alle opplastede filer.",
        "listfiles_search_for": "Søk etter filnavn:",
+       "listfiles-userdoesnotexist": "Brukerkontoen «$1» er ikke registrert.",
        "imgfile": "fil",
        "listfiles": "Filliste",
        "listfiles_thumb": "Miniatyrbilde",
        "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",
        "patrol-log-page": "Patruljeringslogg",
        "patrol-log-header": "Dette er en logg over patruljerte sideversjoner.",
        "log-show-hide-patrol": "$1 patruljeringslogg",
+       "log-show-hide-tag": "$1 merkelogg",
        "deletedrevision": "Slettet gammel revisjon $1.",
        "filedeleteerror-short": "Feil under filsletting: $1",
        "filedeleteerror-long": "Feil oppsto under filsletting:\n\n$1",
        "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 cadd5a7..c36843a 100644 (file)
        "rcshowhidemine-show": "Bekiek",
        "rcshowhidemine-hide": "Verbarg",
        "rclinks": "Bekiek de leste $1 wiezigingen van de aofgeleupen $2 dagen<br />$3",
-       "diff": "wiezig",
+       "diff": "wiez",
        "hist": "gesch",
        "hide": "verbarg",
        "show": "bekiek",
        "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 f8301c3..675cbaa 100644 (file)
        "import-interwiki-history": "Importeer all Versionen vun disse Siet",
        "import-interwiki-templates": "All Vörlagen inslaten",
        "import-interwiki-submit": "Rinhalen",
-       "import-interwiki-namespace": "Sied in dissen Naamruum halen:",
        "import-upload-filename": "Dateinaam:",
        "import-comment": "Kommentar:",
        "importtext": "Exporteer de Siet vun dat Utgangswiki mit Special:Export un laad de Datei denn över disse Siet weer hooch.",
index b31b2aa..3a53438 100644 (file)
        "import-interwiki-history": "यो पृष्ठकोलागि सबै इतिहास संशोधनहरु प्रतिलिपि गर्ने",
        "import-interwiki-templates": "सबै टेम्प्लेटहरु(नमुना) समेट्ने",
        "import-interwiki-submit": "आयात",
-       "import-interwiki-namespace": "गन्तव्य नेमस्पेस :",
        "import-upload-filename": "फाइल नाम:",
        "import-comment": "टिप्पणी :",
        "importstart": "पृष्ठ आयात गरिँदै...",
index 1f9af94..74df8f3 100644 (file)
        "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 paginanaam bevat een interwikilink.",
+       "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.",
        "wrongpassword": "Het opgegeven wachtwoord is onjuist.\nProbeer het opnieuw.",
        "wrongpasswordempty": "Het opgegeven wachtwoord was leeg.\nProbeer het opnieuw.",
        "passwordtooshort": "Wachtwoorden moeten uit minstens {{PLURAL:$1|$1 teken|$1 tekens}} bestaan.",
+       "passwordtoolong": "Wachtwoorden kunnen niet langer zijn dan {{PLURAL:$1|een teken|$1 tekens}}.",
        "password-name-match": "Uw wachtwoord en uw gebruikersnaam mogen niet overeenkomen.",
        "password-login-forbidden": "Het gebruik van deze gebruikersnaam met dit wachtwoord is niet toegestaan.",
        "mailmypassword": "Nieuw wachtwoord e-mailen",
        "missingcommentheader": "'''Let op:''' u hebt geen onderwerp/kop voor deze opmerking opgegeven.\nAls u opnieuw op \"{{int:savearticle}}\" klikt, wordt uw wijziging zonder een onderwerp/kop opgeslagen.",
        "summary-preview": "Bewerkingssamenvatting nakijken:",
        "subject-preview": "Onderwerp/kop nakijken:",
+       "previewerrortext": "Er is een fout opgetreden bij het voorvertonen van je bewerkingen.",
        "blockedtitle": "Gebruiker is geblokkeerd",
        "blockedtext": "'''Uw gebruiker of IP-adres is geblokkeerd.'''\n\nDe blokkade is uitgevoerd door $1.\nDe opgegeven reden is ''$2''.\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nU kunt contact opnemen met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]] om de blokkade te bespreken.\nU kunt geen gebruik maken van de functie \"Deze gebruiker e-mailen\", tenzij u een geldig e-mailadres hebt opgegeven in uw [[Special:Preferences|voorkeuren]] en het gebruik van deze functie niet geblokkeerd is.\nUw huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als u ergens op deze blokkade reageert.",
        "autoblockedtext": "Uw IP-adres is automatisch geblokkeerd, omdat het is gebruikt door een andere gebruiker, die is geblokkeerd door $1.\nDe opgegeven reden is:\n\n:''$2''\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nU kunt deze blokkade bespreken met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]].\n\nU kunt geen gebruik maken van de functie \"Deze gebruiker e-mailen\", tenzij u een geldig e-mailadres hebt opgegeven in uw [[Special:Preferences|voorkeuren]] en het gebruik van deze functie niet is geblokkeerd.\n\nUw huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als u ergens op deze blokkade reageert.",
        "history-feed-description": "Bewerkingsoverzicht voor deze pagina op de wiki",
        "history-feed-item-nocomment": "$1 op $3 om $4",
        "history-feed-empty": "De gevraagde pagina bestaat niet.\nWellicht is die verwijderd of hernoemd.\n[[Special:Search|Doorzoek de wiki]] voor relevante pagina's.",
+       "history-edit-tags": "Labels van geselecteerde versies bewerken",
        "rev-deleted-comment": "(bewerkingssamenvatting verwijderd)",
        "rev-deleted-user": "(gebruikersnaam verwijderd)",
        "rev-deleted-event": "(logboekregel verwijderd)",
        "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-protect": "Beveiligingsniveaus wijzigen",
        "right-editprotected": "Pagina's bewerken die beveiligd zijn als \"{{int:protect-level-sysop}}\"",
        "right-editsemiprotected": "Pagina's bewerken die beveiligd zijn als \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Het paginainhoudmodel bewerken",
        "right-editinterface": "De gebruikersinterface bewerken",
        "right-editusercssjs": "De CSS- en JavaScriptbestanden van andere gebruikers bewerken",
        "right-editusercss": "De CSS-bestanden van andere gebruikers bewerken",
        "right-override-export-depth": "Pagina's exporteren inclusief pagina's waarnaar verwezen wordt tot een diepte van vijf",
        "right-sendemail": "E-mail versturen aan andere gebruikers",
        "right-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-viewmywatchlist": "uw eigen volglijst te bekijken",
        "action-viewmyprivateinfo": "uw eigen privégegevens te bekijken",
        "action-editmyprivateinfo": "uw eigen privégegevens te bewerken",
+       "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",
        "listfiles-delete": "verwijderen",
        "listfiles-summary": "Op deze speciale pagina zijn alle toegevoegde bestanden te bekijken.",
        "listfiles_search_for": "Zoeken naar bestand:",
+       "listfiles-userdoesnotexist": "Het gebruikersaccount \"$1\" bestaat niet.",
        "imgfile": "bestand",
        "listfiles": "Bestandslijst",
        "listfiles_thumb": "Miniatuur",
        "unusedimages": "Ongebruikte bestanden",
        "wantedcategories": "Niet-bestaande categorieën met de meeste koppelingen",
        "wantedpages": "Niet-bestaande pagina's met koppelingen",
+       "wantedpages-summary": "Lijst met niet-bestaande pagina's waar het meest naar verwezen worden, zonder pagina's waar alleen via doorverwijzingen naar wordt verwezen. Voor een lijst met niet-bestaande pagina's waar doorverwijzingen naar verwijzen, kunt u [[{{#special:BrokenRedirects}}]] gebruiken.",
        "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]].",
        "logempty": "Er zijn geen regels in het logboek die voldoen aan deze criteria.",
        "log-title-wildcard": "Pagina's zoeken die met deze tekens beginnen",
        "showhideselectedlogentries": "Geselecteerde logboekregels weergeven of verbergen",
+       "log-edit-tags": "Labels van geselecteerde logboekregels bewerken",
        "allpages": "Alle pagina's",
        "nextpage": "Volgende pagina ($1)",
        "prevpage": "Vorige 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:",
        "importtext": "Gebruik de [[Special:Export|exportfunctie]] in de wiki waar de informatie vandaan komt.\nSla de uitvoer op uw eigen computer op, en voeg die daarna hier toe.",
        "markedaspatrollederrornotify": "Markeren als gecontroleerd mislukt.",
        "patrol-log-page": "Markeerlogboek",
        "patrol-log-header": "Dit logboek bevat versies die gemarkeerd zijn als gecontroleerd.",
-       "log-show-hide-patrol": "Markeerlogboek $1",
+       "log-show-hide-patrol": "markeerlogboek $1",
+       "log-show-hide-tag": "labellogboek $1",
        "deletedrevision": "De oude versie $1 is verwijderd",
        "filedeleteerror-short": "Fout bij het verwijderen van bestand: $1",
        "filedeleteerror-long": "Er zijn fouten opgetreden bij het verwijderen van het bestand:\n\n$1",
        "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-add": "Deze labels toevoegen:",
+       "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",
        "compare-revision-not-exists": "De versie die u hebt opgegeven bestaat niet.",
        "dberr-problems": "Onze excuses. Deze site ondervindt op het moment technische problemen.",
        "dberr-again": "Wacht een aantal minuten en probeer het daarna opnieuw.",
-       "dberr-info": "(Kan geen verbinding maken met de databaseserver: $1)",
-       "dberr-info-hidden": "(Kan geen verbinding maken met de databaseserver)",
+       "dberr-info": "(Kan geen toegang krijgen tot database: $1)",
+       "dberr-info-hidden": "(Kan geen toegang krijgen tot database)",
        "dberr-usegoogle": "Wellicht kunt u in de tussentijd zoeken via Google.",
        "dberr-outofdate": "Let op: hun indexen van onze pagina's zijn wellicht niet recent.",
        "dberr-cachederror": "Deze pagina is een kopie uit de cache en is wellicht niet de meest recente versie.",
        "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}}",
+       "logentry-tag-update-remove-logentry": "$1 heeft {{PLURAL:$9|het label|de labels}} $8 van logboekregel $5 van pagina $3 {{GENDER:$2|verwijderd}}",
+       "logentry-tag-update-revision": "$1 heeft de labels van versie $4 van pagina $3  {{GENDER:$2|bijgewerkt}} ($6 {{PLURAL:$7|toegevoegd}}; $8 {{PLURAL:$9|verwijderd}})",
+       "logentry-tag-update-logentry": "$1 heeft de labels van logboekregel $5 van pagina $3 {{GENDER:$2|bijgewerkt}} ($6 {{PLURAL:$7|toegevoegd}}; $8 {{PLURAL:$9|verwijderd}})",
        "rightsnone": "(geen)",
        "revdelete-summary": "bewerkingssamenvatting",
        "feedback-adding": "Uw terugkoppeling wordt aan de pagina toegevoegd...",
        "feedback-bugornote": "Als u zover bent om een technisch probleem in detail te beschrijven, [$1 rapporteer dan een bug].\nAnders kunt u ook het eenvoudige formulier hieronder gebruiken. Uw reactie wordt dan toegevoegd aan de pagina \"[$3 $2]\", samen met uw gebruikersnaam en de browser die u gebruikt.",
        "feedback-cancel": "Annuleren",
        "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:* 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 {{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:* 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-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 41c11ff..56cabca 100644 (file)
@@ -22,7 +22,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Gaute",
-                       "Macofe"
+                       "Macofe",
+                       "Chameleon222"
                ]
        },
        "tog-underline": "Strek under lenkjer:",
        "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",
        "ipblocklist": "Blokkerte IP-adresser og brukarnamn",
        "ipblocklist-legend": "Finn ein blokkert brukar",
        "blocklist-userblocks": "Gøym kontoblokkeringar",
-       "blocklist-tempblocks": "Gøym mellombelse blokkeringar",
+       "blocklist-tempblocks": "Gøym mellombels blokkeringar",
        "blocklist-addressblocks": "Gøym einskilde IP-blokkeringar",
        "blocklist-rangeblocks": "Gøym intervallblokkeringar",
        "blocklist-timestamp": "Tidsmerke",
        "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",
        "rightsnone": "(ingen)",
        "revdelete-summary": "Samandrag",
        "feedback-adding": "Legg til attendemeldinga til sida...",
index 996451b..0ad67f7 100644 (file)
        "anoneditwarning": "<strong>ସାବଧାନ:</strong> ଆପଣ ଲଗ-ଇନ କରିନାହାନ୍ତି । ଅଧିକ ସମ୍ପାଦନା କଲେ ଆପଣଙ୍କ IP Address ଟି ସମସ୍ତଙ୍କୁ ଦେଖାଯିବ । <strong>[$1ଲଗ ଇନ କଲେ]</strong> କିମ୍ବା <strong>[$2 ନୂଆ ଖାତାଟିଏ ତିଆରି କଲେ]</strong>, ଆପଣଙ୍କ ସମ୍ପାଦନାର ଶ୍ରେୟ ଅନ୍ୟାନ୍ୟ ସୁବିଧା ସହିତ ଆପଣଙ୍କ ଇଉଜର ନାମରେ ଦିଆହେବ ।",
        "anonpreviewwarning": "''ଆପଣ ଲଗ ଇନ କରି ନାହାନ୍ତି । ବଦଳକରି ସାଇତିଲେ ଆପଣଙ୍କର IP ଠିକଣା ଏହି ପୃଷ୍ଠାର ଇତିହାସରେ ସାଇତା ହୋଇଯିବ ।''",
        "missingsummary": "'''ଚେତାବନୀ:''' ଆପଣ ଏକ ସମ୍ପାଦନା ସାରକଥା ଦେଇନାହାନ୍ତି ।\nଯଦି ଆପଣ \"{{int:savearticle}}\"ରେ ଆଉଥରେ କ୍ଲିକ କରନ୍ତି, ତେବେ ଆପଣଙ୍କ ବଦଳ ସାରକଥା ବିନା ସାଇତା ହୋଇଯିବ ।",
+       "selfredirect": "<strong>ସାବଧନ :</strong> ଆପଣ ଏହି ପୃଷ୍ଠାଟିକୁ ତା ମଧ୍ୟକୁ ଲେଇଟାଉଛନ୍ତି । ଆପଣ ବୋଧ ହୁଏ ଭୁଲ ଲକ୍ଷସ୍ଥଳ ଦେଇଛନ୍ତି କିମ୍ବା ଭୁଲ ପୃଷ୍ଠଟିକୁ ବଦଳାଉଛନ୍ତି । \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}}|administrator]]ଙ୍କୁ ଯୋଗାଯୋଗ  କରିପାରିବେ ।\nଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣଙ୍କ [[Special:Preferences|account preferences]]ରେ ଗୋଟିଏ ଉପଲବ୍ଧ ଇମେଲ ଠିକଣା ଦିଆ ଯାଇନାହି ଏବଂ ଆପଣ ଏହାକୁ ବ୍ୟବହାର କରିବାରେ କିଛି ପ୍ରତିରୋଧ ଲଗାଯାଇଅଛି ସେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ 'ଏହି ସଦସ୍ୟଙ୍କୁ ଲେଖନ୍ତୁ ' ବିଭାଗଟିକୁ ବ୍ୟବହାର କରିପାରିବେନି ।\nବର୍ତମାନ ଆପଣଙ୍କ ଆଇପି ଠିକଣା ହେଇଛି $3, ଏବଂ ପ୍ରତିରୋଧ ଆଇଡି ହେଉଛି #$5 ।\nଯଦି ଅପଙ୍କର କିଛି କହିବାକୁ ଥାଏ ତାହେଲେ ଆପଣଙ୍କ ଲେଖାରେ ଉପରୋକ୍ତ ଲେଖାଗୁଡ଼ିକ ଯୋଡିଦେବେ",
        "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ଦୟାକରି ଆପଣ ପଚାରୁଥିବା ଯେକୌଣସି ପ୍ରଶ୍ନରେ ଉପରେ ଥିବା ସବିଶେଷ ଯୋଗ କରି ପଚାରିବେ ।",
        "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କେତେଗୋଟି ଛାଞ୍ଚକୁ ନିଆଯିବ ନାହିଁ ।",
        "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": "(ଲà¬\97 à¬\95ାମ ବାହାର କରିଦିଆଗଲା)",
+       "rev-deleted-event": "(ଲà¬\97 à¬¬à¬¿à¬¬à¬°à¬£à­\80 ବାହାର କରିଦିଆଗଲା)",
        "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}}}} ଦବାଯାଇଥିବା ଇତିହାସ]ରୁ ପଢ଼ିପାରିବେ ।",
        "revdelete-legend": "ଦେଖଣା ବାରଣ ସବୁ ଥୟ କରନ୍ତୁ",
        "revdelete-hide-text": "ସଂସ୍କରଣ ଲେଖା",
        "revdelete-hide-image": "ଫାଇଲ ଭିତର ପଦାର୍ଥସବୁ ଲୁଚାଇଦିଅନ୍ତୁ",
-       "revdelete-hide-name": "à¬\95ାମ ଓ ଲକ୍ଷ ସବୁ ଲୁଚାଇଦିଅନ୍ତୁ",
+       "revdelete-hide-name": "ପରାମିà¬\9fର ଓ ଲକ୍ଷ ସବୁ ଲୁଚାଇଦିଅନ୍ତୁ",
        "revdelete-hide-comment": "ସାରକଥା ସମ୍ପାଦନା କରନ୍ତୁ",
        "revdelete-hide-user": "ସମ୍ପାଦକଙ୍କର ସଭ୍ୟ ନାମ /IP ଲୁଚାଇଦିଅନ୍ତୁ",
        "revdelete-hide-restricted": "ପରିଚାଳକ ଓ ବାକିମାନଙ୍କ ଠାରୁ ତଥ୍ୟକୁ ଦବାଇଦିଅନ୍ତୁ",
        "notextmatches": "ପୃଷ୍ଠାଟିର ନାମ ମିଶୁନାହିଁ",
        "prevn": "{{PLURAL:$1|$1}}ର ଆଗରୁ",
        "nextn": "{{PLURAL:$1|$1}} ପର",
+       "prev-page": "ପୂର୍ବ ପୃଷ୍ଠା",
+       "next-page": "ପର ପୃଷ୍ଠା",
        "prevn-title": "ଆଗରୁ ମିଳିଥିବା $1ଟି  {{PLURAL:$1|result|ଫଳ}}",
        "nextn-title": "ପର $1 {{PLURAL:$1|ଫଳାଫଳ|ଫଳାଫଳସବୁ}}",
        "shown-title": "$1 ପ୍ରତି ପୃଷ୍ଠାର {{PLURAL:$1|ଫଳାଫଳ|ଫଳାଫଳ}} ଦେଖାଇବେ ।",
        "search-result-category-size": "{{PLURAL:$1|ଜଣେ ସଭ୍ୟ|$1 ଜଣ ସଭ୍ୟ}} ({{PLURAL:$2|ଗୋଟିଏ ଶ୍ରେଣୀy|$2ଟି ଶ୍ରେଣୀ ସମୂହ}}, {{PLURAL:$3|ଗୋଟିଏ ଫାଇଲ|$3ଟି ଫାଇଲ}})",
        "search-redirect": "($1 କୁ ଆଗକୁ ବଢେଇନିଅ )",
        "search-section": "(ଭାଗ $1)",
+       "search-category": "(ଶ୍ରେଣୀ $1)",
        "search-file-match": "(ଫାଇଲରେ ଥିବା ବିଷୟବସ୍ତୁ ସାଙ୍ଗେ ମେଳ)",
        "search-suggest": "ଆପଣ $1 ଭାବି ଖୋଜିଥିଲେ କି?",
        "search-interwiki-caption": "ସାଙ୍ଗରେ ଚାଲିଥିବା ବାକି ପ୍ରକଳ୍ପସବୁ",
        "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": "ବଢ଼ନ୍ତା ଦେଖଣା ତାଲିକାରେ ଦେଖିହେବା ଭଳି ସବୁଠାରୁ ଅଧିକ ବଦଲ:",
        "rcshowhideminor": "ଛୋଟମୋଟ ବଦଳ $1",
        "rcshowhideminor-show": "ଦେଖାଇବେ",
        "rcshowhideminor-hide": "ଲୁଚାଇବେ",
-       "rcshowhidebots": "$1 ବଟଗୁଡିକ",
+       "rcshowhidebots": "ବଟଗୁଡ଼ିକ $1",
        "rcshowhidebots-show": "ଦେଖାଇବେ",
        "rcshowhidebots-hide": "ଲୁଚାଇବେ",
        "rcshowhideliu": "ପଞ୍ଜୀକୃତ ସଭ୍ୟ $1",
index 89ef183..cc81971 100644 (file)
        "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 адрисы тæрхон",
        "history_short": "Истори",
        "updatedmarker": "ноггонд мæ фæстаг æрбахызтæй",
        "printableversion": "Мыхурæн",
-       "permalink": "УдгаÑ\81 æрвитæн",
+       "permalink": "Ð\98Ñ\83гæндзон æрвитæн",
        "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": "Æнæбæрæг рæдыд",
        "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-yes": "Гъо",
+       "confirmable-no": "Нæ",
        "thisisdeleted": "$1 фенын хъæуы, æви рацаразын ?",
        "viewdeleted": "$1 фенын дæ фæнды?",
        "restorelink": "{{PLURAL:$1|иу хафт ивд|$1 хафт ивды}}",
        "nospecialpagetext": "<strong>Нæй ахæм сæрмагонд фарс.</strong>\n\nКæс [[Special:SpecialPages|æппæт сæрмагонд фæрсты номхыгъд]].",
        "error": "Рæдыд",
        "databaseerror": "Рарддоны рæдыд",
+       "databaseerror-error": "Рæдыд: $1",
        "laggedslavemode": "'''Сындæг:''' Фарсы гæнæн ис нæй фæстаг нæуæггæндтæ.",
        "readonly": "Рарддон æхгæд у",
        "enterlockreason": "Ныффысс æхгæныны бындур æмæ йæ æмгъуыд",
        "createacct-emailrequired": "Электрон посты адрис",
        "createacct-emailoptional": "Электрон посты адрис (фæндон)",
        "createacct-email-ph": "Бафысс дæ электрон посты адрис",
-       "createaccountmail": "Рæстæгмæ пароль халæй ист æрцæуæт æмæ бындæр цы электрон пост ис, уырдæм æрвыст æрцæуæт",
+       "createaccountmail": "Рæстæгмæ пароль халæй ист æрцæуæд æмæ амынд электрон посты адрисмæ æрвыст æрцæуæд",
        "createacct-realname": "Æцæг ном (фæндон)",
        "createaccountreason": "Бындур:",
        "createacct-reason": "Бындур",
        "passwordreset-emaildisabled": "Электрон пост ацы викийы хицæн у.",
        "passwordreset-username": "Фæсномыг:",
        "passwordreset-domain": "Домен:",
-       "passwordreset-capture": "Цы e-mail рауадис, уый æвдыст æрцæуæт?",
+       "passwordreset-capture": "Цы фыстæг рауадис, уый фенис?",
        "passwordreset-capture-help": "Кæд сæвæрай ацы нысан, уæд дын e-mail (рæстæгмæ паролимæ) æвдыст æрцæудзæн. Архайæгмæ дæр æрвыст æрцæудзæн.",
        "passwordreset-email": "Электрон посты адрис:",
        "passwordreset-emailtitle": "{{grammar:genitive|{{SITENAME}}}} акканты тыххæй",
        "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]]",
        "viewpagelogs": "Ацы фарсæн йæ логтæ равдисын",
        "nohistory": "Ацы фарсæн ивдтыты истори нæй.",
        "currentrev": "Фæстаг фæлтæр",
        "revisiondelete": "Фæлтæртæ схафын/рацаразын",
        "revdelete-show-file-submit": "О",
        "revdelete-radio-same": "(ма баив)",
-       "revdelete-radio-set": "О",
-       "revdelete-radio-unset": "Нæ",
+       "revdelete-radio-set": "Æмбæхст",
+       "revdelete-radio-unset": "Зынгæ",
+       "revdelete-log": "Аххос:",
        "revdel-restore": "ивын зынæн",
        "pagehist": "Фарсы истори",
        "revdelete-reason-dropdown": "*Хафыны арæхдæр бындуртæ\n** Сфæлдисæгы барты æфхæрд\n** Кæйдæр тыххæй æнæмбæлгæ информаци кæнæ хъуыды\n** Æнæмбæлгæ фæсномыг\n** Гæнæн ис цъыфкалд у",
        "revdelete-reasonotherlist": "Æндæр аххос",
        "revdelete-offender": "Фæлтæры автор:",
+       "mergehistory-from": "Ратæдзæны фарс:",
+       "mergehistory-into": "Нысаны фарс:",
+       "mergehistory-list": "Иугæнинаг ивдтыты истори",
        "mergehistory-reason": "Аххос:",
+       "mergelog": "Иугæндты лог",
        "revertmerge": "Ахицæн кæнын",
        "history-title": "\"$1\", йæ фæлтæрты истори",
        "lineno": "Рæнхъ $1:",
        "compareselectedversions": "Абарын æвзæрст фæлтæртæ",
        "editundo": "раивын",
+       "diff-empty": "(хицæндзинæдтæ нæй)",
        "searchresults": "Агуырды фæстиуджытæ",
        "searchresults-title": "Агуырды фæстиуæг: «$1»",
        "titlematches": "Уацы ном æмбæлы",
        "textmatches": "Уацты æмцаутæ",
        "prevn": "рæздæры {{PLURAL:$1|$1}}",
        "nextn": "иннæ {{PLURAL:$1|$1}}",
+       "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}} фæстиуджытæ:",
        "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-rendering": "Фæлгонц",
        "yourvariant": "Мидисы æвзаджы вариант:",
        "yournick": "Ног къухæрфыст:",
        "badsiglength": "Æгæр даргъ къухæрфыст, хъуамæ {{PLURAL:$1|дамгъæйæ|дамгъæйæ}} къаддæр уа.",
-       "yourgender": "Æрд:",
+       "yourgender": "Цавæр афыст дæуыл хуыздæр сбæззид?",
+       "gender-unknown": "Нæ мæ фæнды зæгъын",
        "gender-male": "нæлгоймаг",
        "gender-female": "сылгоймаг",
        "email": "E-mail",
        "action-upload": "ацы файл æвгæнын",
        "action-delete": "ацы фарс схафын",
        "nchanges": "$1 {{PLURAL:$1|ивд|ивды}}",
+       "enhancedrc-history": "истори",
        "recentchanges": "Фæстаг ивдтытæ",
        "recentchanges-legend": "Фæстаг ивдтыты фадæттæ",
        "recentchanges-summary": "Ацы фарсыл викийы фæстаг ивдтытæ фенæн ис.",
        "rcnotefrom": "Бындæр сты æвдыст ивдтытæ '''$2'''-æй ('''{{grammar:genitive|$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": "$1 бæрæггонд ивдтæ",
        "rcshowhidemine": "$1 мæ ивдтытæ",
+       "rcshowhidemine-show": "Равдис",
+       "rcshowhidemine-hide": "Бамбæхс",
        "rclinks": "Фæстаг $1 ивдтытæ (афæстаг $2 боны дæргъы чи ’рцыдысты) равдис;\n$3",
        "diff": "хицæн.",
        "hist": "лог",
        "upload-file-error": "Мидæггаг рæдыд",
        "license": "Лицензи:",
        "license-header": "Лицензи",
+       "imgfile": "файл",
        "listfiles": "Файлты номхыгъд",
        "listfiles_thumb": "Къаддæргонд",
        "listfiles_date": "Датæ",
        "undelete-search-submit": "Агурын",
        "namespace": "Номдон:",
        "invert": "Зыгъуыммæ æвзæрст",
+       "namespace_association": "Баст номдон",
        "blanknamespace": "(Сæйраг)",
        "contributions": "{{GENDER:$1|Архайæджы}} бавæрд",
        "contributions-title": "Архайæджы бавæрд: $1",
        "tooltip-feed-atom": "Atom feed ацы фарсæн",
        "tooltip-t-contributions": "Ацы архайæджы бавæрд фенын",
        "tooltip-t-emailuser": "Арвитын фыстæг ацы архайæгмæ",
+       "tooltip-t-info": "Ацы фарсы тыххæй",
        "tooltip-t-upload": "Файлтæ бавгæнынæн",
        "tooltip-t-specialpages": "Сæрмагонд фæрсты номхыгъд",
        "tooltip-t-print": "Ацы фарс мыхуырмæ цæттæ форматы",
        "lastmodifiedatby": "Ацы фарс фæстаг хатт фæивта $3, $1, $2 сахатыл.",
        "others": "æндæртæ",
        "spamprotectiontitle": "Спамы ныхмæ фильтр",
+       "pageinfo-toolboxlink": "Ацы фарсы тыххæй",
        "previousdiff": "← Зæронддæр ивд",
        "nextdiff": "Фæстæдæр ивд →",
        "thumbsize": "Къаддæргонды бæрц:",
        "file-nohires": "Нæй ын стырдæр фæлтæр .",
        "svg-long-desc": "SVG файл, номиналон $1 × $2 пикселы, файлы бæрц: $3",
        "show-big-image": "Оригиналы файл",
+       "show-big-image-preview": "Къаддæргонды ас: $1",
+       "show-big-image-size": "$1 × $2 пикселы",
        "newimages": "Ног нывты галерей",
        "ilsubmit": "Агурын",
        "bydate": "рæстæгмæ гæсгæ",
        "duration-centuries": "$1 {{PLURAL:$1|æнус|æнусы}}",
        "duration-millennia": "$1 {{PLURAL:$1|мин аз|мин азы}}",
        "expand_templates_ok": "Афтæ уæд!",
-       "expand_templates_preview": "Разæркаст"
+       "expand_templates_preview": "Разæркаст",
+       "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 1c96f7d..804a2c7 100644 (file)
        "import-interwiki-sourcepage": "ਮੁੱਢਲਾ ਸਫ਼ਾ:",
        "import-interwiki-templates": "ਸਾਰੇ ਫਰਮੇ ਸ਼ਾਮਲ ਕਰੋ",
        "import-interwiki-submit": "ਮੰਗਾਓ",
-       "import-interwiki-namespace": "ਨੀਯਤ ਨਾਂ-ਥਾਂ:",
        "import-upload-filename": "ਫ਼ਾਈਲ ਦਾ ਨਾਂ:",
        "import-comment": "ਟਿੱਪਣੀ:",
        "importstart": "ਪੇਜ ਇੰਪੋਰਟ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ...",
index 81c2ba3..d1a9564 100644 (file)
        "revdelete-unsuppress": "Ilako ing pamagbawal kareng pamanaliling misubli",
        "revdelete-log": "Sangkan:",
        "revdelete-submit": "Ipairal ya kareng mepiling pamanalili (selected revision)",
-       "revdelete-success": "'''Mituldu na ing pamagbayu ning sala/kalinawan.'''",
+       "revdelete-success": "Mituldu na ing pamagbayu ning sala/kalinawan.",
        "logdelete-success": "'''Mituldu na ing sala/lino (visibility) ning tala (log).'''",
        "revdel-restore": "Alilan ya ing mayayakit",
        "pagehist": "Amlat ning bulung",
        "import-interwiki-text": "Mamili kang wiki ampong bansag bulung a ilub.\nManatili la reng petsa ring pamagbayu ampo reng lagyu ring editor.\nMaka-login la reng eganaganang pamaglub a transwiki (transwiki import actions) ketang [[Special:Log/import|import log]].",
        "import-interwiki-history": "Kopian la reng eganaganang bersion ning amlat para king bulung a ini.",
        "import-interwiki-submit": "Maglub (import)",
-       "import-interwiki-namespace": "Iyalis la king pirinan lagyu (namespace) deng bulung:",
        "import-comment": "Komentu:",
        "importtext": "Pakilual (export) me ing simpan (file) manibat ketang pikuanan a wiki a gagamitan ya ing Special:Export utilit. Potang kayi, i-save me king kekang disk at ilulan (upload) me keni.",
        "importstart": "Maglub bulung...",
        "xml-error-string": "$1 king gulis a $2, col $3 (byte $4): $5",
        "importlogpage": "Tala da reng mipalub (import log)",
        "importlogpagetext": "Pamaniubuk ding talapanibalang maglub bulung a maki amlat ding mibayu ibat kareng aliwang wiki.",
-       "import-logentry-upload": "milub ya ing [[$1]] kapamilata'ning pamaglulan simpan (file upload)",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|pamagbayu|pamagbayu}}",
-       "import-logentry-interwiki": "me-transwiking $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|pamagbayu|pamagbayu}} ibat $2",
        "tooltip-pt-userpage": "Ing kekang bulung talagamit (user page)",
        "tooltip-pt-anonuserpage": "Ing bulung talagamit para king IP a i-edit mu antimong",
index 0ca450f..48cc5e4 100644 (file)
        "expand_templates_output": "Result",
        "expand_templates_ok": "OK",
        "expand_templates_remove_comments": "Anmaerrickinge lösche",
-       "expand_templates_preview": "Aagucke"
+       "expand_templates_preview": "Aagucke",
+       "special-characters-group-ipa": "IPA"
 }
index b3b6c91..0f04845 100644 (file)
        "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": "Tytuł zawiera link interwiki",
+       "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>)",
        "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.",
        "history-feed-description": "Historia wersji tej strony wiki",
        "history-feed-item-nocomment": "$1 o $2",
        "history-feed-empty": "Wybrana strona nie istnieje.\nMogła zostać usunięta lub jej nazwa została zmieniona.\nSpróbuj [[Special:Search|poszukać]] tej strony.",
+       "history-edit-tags": "Edytuj znaczniki wybranych wersji",
        "rev-deleted-comment": "(usunięto opis zmian)",
        "rev-deleted-user": "(nazwa użytkownika usunięta)",
        "rev-deleted-event": "(szczegóły usunięte)",
        "rev-suppressed-unhide-diff": "Jedna z porównywanych wersji została '''ukryta'''.\nSzczegółowe informacje mogą znajdować się w [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rejestrze ukrywania].\nJeśli chcesz możesz [$1 obejrzeć porównanie wersji].",
        "rev-deleted-diff-view": "Jedna z wersji użytych w porównaniu została '''usunięta'''.\nJeśli chcesz, możesz zobaczyć porównanie. Szczegóły można znaleźć w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze usunięć].",
        "rev-suppressed-diff-view": "Jedna z wersji użytych w porównaniu została '''utajniona'''.\nJeśli chcesz możesz zobaczyć porównanie. Szczegóły można znaleźć w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze utajniania].",
-       "rev-delundel": "pokaż/ukryj",
+       "rev-delundel": "zmień widoczność",
        "rev-showdeleted": "pokaż",
        "revisiondelete": "Usuń/odtwórz wersje",
        "revdelete-nooldid-title": "Nieprawidłowa wersja do przeprowadzenia operacji",
-       "revdelete-nooldid-text": "Nie wybrano wersji, na których ma zostać wykonana ta operacja,\nwybrana wersja nie istnieje lub próbowano ukryć wersję bieżącą.",
+       "revdelete-nooldid-text": "Nie wybrano żadnej wersji, na której ma zostać wykonana ta operacja, wybrana wersja nie istnieje lub próbowano ukryć wersję bieżącą.",
        "revdelete-no-file": "Wybrany plik nie istnieje.",
        "revdelete-show-file-confirm": "Czy jesteś pewien, że chcesz zobaczyć usuniętą wersję pliku „<nowiki>$1</nowiki>” z $2 o $3?",
        "revdelete-show-file-submit": "Tak",
        "revdelete-reason-dropdown": "* Najczęstsze powody usunięcia\n** Naruszenie praw autorskich\n** Niestosowny komentarz lub informacja naruszająca prywatność\n** Niestosowna nazwa użytkownika\n** Potencjalnie oszczercza informacja",
        "revdelete-otherreason": "Inny lub dodatkowy powód:",
        "revdelete-reasonotherlist": "Inny powód",
-       "revdelete-edit-reasonlist": "Edycja listy powodów usunięcia pliku",
+       "revdelete-edit-reasonlist": "Edytuj listę przyczyn usunięcia",
        "revdelete-offender": "Autor wersji",
        "suppressionlog": "Rejestr utajniania",
        "suppressionlogtext": "Poniżej znajduje się lista usunięć i blokad utajnionych przed administratorami.\nZobacz [[Special:BlockList|rejestr blokad]], jeśli chcesz sprawdzić aktualne zakazy i blokady.",
        "difference-title-multipage": "Różnica pomiędzy stronami \"$1\" i \"$2\"",
        "difference-multipage": "(Różnica między stronami)",
        "lineno": "Linia $1:",
-       "compareselectedversions": "porównaj wybrane wersje",
-       "showhideselectedversions": "Pokaż lub ukryj zaznaczone wersje",
+       "compareselectedversions": "Porównaj wybrane wersje",
+       "showhideselectedversions": "Zmień widoczność wybranych wersji",
        "editundo": "anuluj edycję",
        "diff-empty": "(Brak różnic)",
        "diff-multi-sameuser": "(Nie pokazano $1 {{PLURAL:$1|pośredniej wersji utworzonej|pośrednich wersji utworzonych}} przez tego samego użytkownika)",
        "right-sendemail": "Wysyłanie e‐maili do innych użytkowników",
        "right-passwordreset": "Sprawdzanie treści e‐maila o resetowaniu hasła",
        "right-managechangetags": "Tworzenie i usuwanie [[Special:Tags|znaczników]] z bazy danych",
+       "right-applychangetags": "Wprowadzanie [[Special:Tags|znaczników]] wraz z własnymi zmianami",
+       "right-changetags": "Dodawanie i usuwanie dowolnych [[Special:Tags|znaczników]] z poszczególnych wersji i wpisów w rejestrze",
        "newuserlogpage": "Nowi użytkownicy",
        "newuserlogpagetext": "To jest rejestr ostatnio utworzonych kont użytkowników",
        "rightslog": "Uprawnienia",
        "action-editmyprivateinfo": "edycji swoich prywatnych danych",
        "action-editcontentmodel": "edycji modelu zawartości strony",
        "action-managechangetags": "utwórz lub usuń znaczniki z bazy danych",
+       "action-applychangetags": "wprowadzania znaczników wraz z własnymi zmianami",
+       "action-changetags": "dodawania i usuwania dowolnych znaczników z poszczególnych wersji i wpisów w rejestrze",
        "nchanges": "$1 {{PLURAL:$1|zmiana|zmiany|zmian}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|od ostatniej wizyty}}",
        "enhancedrc-history": "historia",
        "alllogstext": "Wspólny rejestr wszystkich typów operacji dla {{GRAMMAR:D.lp|{{SITENAME}}}}.\nMożesz zawęzić liczbę wyników poprzez wybranie typu rejestru, nazwy użytkownika albo tytułu strony.",
        "logempty": "W rejestrze nie znaleziono pozycji odpowiadających zapytaniu.",
        "log-title-wildcard": "Szukaj tytułów zaczynających się od tego tekstu",
-       "showhideselectedlogentries": "Pokaż/ukryj zaznaczone wpisy rejestru",
+       "showhideselectedlogentries": "Zmień widoczność wybranych wpisów rejestru",
+       "log-edit-tags": "Edytuj znaczniki wybranych wpisów rejestru",
        "allpages": "Wszystkie strony",
        "nextpage": "Następna strona ($1)",
        "prevpage": "Poprzednia strona ($1)",
        "emailccsubject": "Kopia Twojej wiadomości do $1: $2",
        "emailsent": "Wiadomość została wysłana",
        "emailsenttext": "Twoja wiadomość została wysłana.",
-       "emailuserfooter": "Wiadomość e‐mail została wysłana z {{GRAMMAR:D.lp|{{SITENAME}}}} do $2 przez $1 z użyciem „Wyślij e‐mail do tego użytkownika”.",
+       "emailuserfooter": "Ten email został wysłany z {{GRAMMAR:D.lp|{{SITENAME}}}} do $2 przez $1 przy użyciu \"{{int\"emailpage}}\".",
        "usermessage-summary": "Pozostawianie komunikatu systemowego.",
        "usermessage-editor": "Nadawca komunikatów systemowych",
        "watchlist": "Obserwowane",
        "historywarning": "<strong>Uwaga:</strong> Strona, którą chcesz usunąć, ma {{PLURAL:$1|jedną starszą wersję|$1 starsze wersje|$1 starszych wersji}}:",
        "confirmdeletetext": "Zamierzasz usunąć stronę razem z całą dotyczącą jej historią.\nUpewnij się, czy na pewno chcesz to zrobić, że rozumiesz konsekwencje i że robisz to w zgodzie z [[{{MediaWiki:Policy-url}}|zasadami]].",
        "actioncomplete": "Operacja wykonana",
-       "actionfailed": "Działanie nie powiodło się",
+       "actionfailed": "Operacja się nie powiodła",
        "deletedtext": "Usunięto „$1”.\nZobacz $2, które zostały ostatnio wykonane.",
        "dellogpage": "Usunięte",
        "dellogpagetext": "Poniżej znajduje się lista ostatnio wykonanych usunięć.",
        "import-interwiki-history": "Kopiuj całą historię edycji tej strony",
        "import-interwiki-templates": "Załącz wszystkie szablony",
        "import-interwiki-submit": "Importuj",
+       "import-mapping-default": "Importuj do domyślnych lokalizacji",
+       "import-mapping-namespace": "Importuj do przestrzeni nazw:",
+       "import-mapping-subpage": "Importuj jako podstrony strony:",
        "import-upload-filename": "Nazwa pliku",
        "import-comment": "Komentarz:",
        "importtext": "Korzystając na źródłowej wiki z narzędzia [[Special:Export|eksportu]] wyeksportuj plik.\nZapisz go na swoim dysku, a następnie prześlij go tutaj.",
        "patrol-log-page": "Rejestr patrolowania",
        "patrol-log-header": "Poniżej znajduje się rejestr patrolowania stron.",
        "log-show-hide-patrol": "$1 rejestr sprawdzania",
+       "log-show-hide-tag": "$1 rejestr znaczników",
        "deletedrevision": "Usunięto poprzednie wersje $1",
        "filedeleteerror-short": "Błąd przy usuwaniu pliku $1",
        "filedeleteerror-long": "Wystąpiły błędy przy usuwaniu pliku:\n\n$1",
        "tag-filter-submit": "Filtr",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Znacznik|Znaczniki}}]]: $2)",
        "tags-title": "Znaczniki",
-       "tags-intro": "Na tej stronie znajduje się lista znaczników, którymi oprogramowanie może oznaczyć edycje, oraz ich opisów.",
+       "tags-intro": "Na tej stronie znajduje się lista znaczników, którymi oprogramowanie może oznaczyć edycje, oraz ich opisy.",
        "tags-tag": "Nazwa znacznika",
        "tags-display-header": "Wystąpienia na listach zmian",
        "tags-description-header": "Pełny opis znaczenia",
        "tags-active-yes": "Tak",
        "tags-active-no": "Nie",
        "tags-source-extension": "Określony przez rozszerzenie",
-       "tags-source-manual": "Są wprowadzane ręcznie przez uczestników i boty",
+       "tags-source-manual": "Ręcznie wprowadzany przez użytkowników i boty",
        "tags-source-none": "Nieużywany",
        "tags-edit": "edytuj",
        "tags-delete": "usuń",
        "tags-activate": "aktywuj",
        "tags-deactivate": "dezaktywuj",
        "tags-hitcount": "$1 {{PLURAL:$1|zmiana|zmiany|zmian}}",
-       "tags-manage-no-permission": "Nie masz uprawnień do zarządzaniem zmianami znaczników.",
+       "tags-manage-no-permission": "Nie masz uprawnień do zarządzania znacznikami.",
        "tags-create-heading": "Utwórz nowy znacznik",
        "tags-create-explanation": "Nowe znaczniki będą dostępne domyślnie dla użytkowników i botów.",
        "tags-create-tag-name": "Nazwa znacznika:",
        "tags-create-invalid-chars": "Nazwy znaczników nie mogą zawierać przecinków (<code>,</code>) ani ukośników (<code>/</code>).",
        "tags-create-invalid-title-chars": "Nazwy znaczników nie mogą zawierać znaków, które nie mogą być używane w tytułach stron.",
        "tags-create-already-exists": "Znacznik „$1” już istnieje.",
-       "tags-create-warnings-above": "Następujące {{PLURAL:$2|ostrzeżenie jest |ostrzeżenia są}} wynikiem próby utworzenia znacznika \"$1\":",
+       "tags-create-warnings-above": "Następujące {{PLURAL:$2|ostrzeżenie jest|ostrzeżenia są}} wynikiem próby utworzenia znacznika „$1”:",
        "tags-create-warnings-below": "Czy chcesz kontynuować tworzenie znacznika?",
        "tags-delete-title": "Usuwanie znacznika",
        "tags-delete-explanation-initial": "Zamierzasz usunąć znacznik „$1” z bazy danych.",
-       "tags-delete-explanation-in-use": "It will be removed from {{PLURAL:$2|$2 revision or log entry|all $2 revisions and/or log entries}} to which it is currently applied.",
+       "tags-delete-explanation-in-use": "Zostanie usunięty {{PLURAL:$2|z $2 wersji lub wpisu w rejestrze|ze wszystkich $2 wersji i/lub wpisów w rejestrze}}, w {{PLURAL:$2|którym|których}} jest obecnie stosowany.",
        "tags-delete-explanation-warning": "To działanie jest <strong>nieodwracalne</strong> i <strong>nie może być wycofane</strong>, nawet przez administratorów bazy danych. Upewnij się, że chcesz usunąć te dane.",
-       "tags-delete-explanation-active": "<strong>Znacznik \"$1\" wciąż jest aktywny i będzie stosowany w przyszłości. </strong> Dla zaprzestania jego stosowania należy przejść do miejsca, w którym znacznik określono jako stosowany i usunąć tam to wskazanie.",
+       "tags-delete-explanation-active": "<strong>Znacznik „$1” wciąż jest aktywny i będzie stosowany w przyszłości. </strong> Dla zaprzestania jego stosowania należy przejść do miejsca, w którym znacznik określono jako stosowany i usunąć tam to wskazanie.",
        "tags-delete-reason": "Powód:",
        "tags-delete-submit": "Nieodwracalnie usuń ten znacznik",
-       "tags-delete-not-allowed": "Znaczniki zdefiniowane przez rozszerzenie nie mogą być usunięte chyba że dane rozszerzenie jawnie nas to zezwala.",
+       "tags-delete-not-allowed": "Znaczniki określone przez rozszerzenie nie mogą zostać usunięte, chyba że dane rozszerzenie jawnie na to zezwala.",
        "tags-delete-not-found": "Znacznik „$1” nie istnieje.",
        "tags-delete-too-many-uses": "Znacznik „$1” jest stosowany w więcej niż {{PLURAL:$2|jednej wersji|$2 wersjach}}, co oznacza, że nie może być usunięty.",
-       "tags-delete-warnings-after-delete": "Znacznik \"$1\" został usunięty pomyślnie, ale {{PLURAL:$2|stwierdzono następujące ostrzeżenie|stwierdzono następujące ostrzeżenia}}:",
+       "tags-delete-warnings-after-delete": "Znacznik „$1” został pomyślnie usunięty, ale {{PLURAL:$2|otrzymano następujące ostrzeżenie|otrzymano następujące ostrzeżenia}}:",
        "tags-activate-title": "Aktywacja znacznika",
        "tags-activate-question": "Zamierzasz aktywować znacznik „$1”.",
        "tags-activate-reason": "Powód:",
        "tags-deactivate-reason": "Powód:",
        "tags-deactivate-not-allowed": "Nie można dezaktywować znacznika „$1”.",
        "tags-deactivate-submit": "Dezaktywuj",
+       "tags-apply-no-permission": "Nie masz uprawnień do wprowadzania znaczników wraz z własnymi zmianami.",
+       "tags-apply-not-allowed-one": "Znacznik „$1” nie może zostać wprowadzony ręcznie.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Następujący znacznik nie może zostać wprowadzony ręcznie|Następujące znaczniki nie mogą zostać wprowadzone ręcznie}}: $1",
+       "tags-update-no-permission": "Nie masz uprawnień do dodawania lub usuwania znaczników z poszczególnych wersji lub wpisów w rejestrze.",
+       "tags-update-add-not-allowed-one": "Znacznik „$1” nie może zostać dodany ręcznie.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Następujący znacznik nie może zostać dodany ręcznie|Następujące znaczniki nie mogą zostać dodane ręcznie}}: $1",
        "tags-update-remove-not-allowed-one": "Znacznika „$1” nie można usunąć.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Następujący znacznik nie może zostać usunięty ręcznie|Następujące znaczniki nie mogą zostać usunięte ręcznie}}: $1",
        "tags-edit-title": "Edycja znaczników",
+       "tags-edit-manage-link": "Zarządzaj znacznikami",
        "tags-edit-revision-selected": "{{PLURAL:$1|Wybrana wersja|Wybrane wersje}} [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Wybrana operacja|Wybrane operacje}} z rejestru:",
+       "tags-edit-revision-legend": "Dodaj lub usuń znaczniki {{PLURAL:$1|w tej wersji|we wszystkich $1 wersjach}}",
+       "tags-edit-logentry-legend": "Dodaj lub usuń znaczniki {{PLURAL:$1|w tym wpisie|we wszystkich $1 wpisach}} w rejestrze",
        "tags-edit-existing-tags": "Istniejące znaczniki:",
+       "tags-edit-existing-tags-none": "''Brak''",
        "tags-edit-new-tags": "Nowe znaczniki:",
        "tags-edit-add": "Dodaj te znaczniki:",
        "tags-edit-remove": "Usuń te znaczniki:",
        "tags-edit-remove-all-tags": "(usuń wszystkie znaczniki)",
+       "tags-edit-chosen-placeholder": "Wybierz znaczniki",
        "tags-edit-chosen-no-results": "Brak znaczników pasujących do",
        "tags-edit-reason": "Powód:",
        "tags-edit-revision-submit": "Zastosuj zmiany do {{PLURAL:$1|tej|$1}} wersji",
+       "tags-edit-logentry-submit": "Zastosuj zmiany do {{PLURAL:$1|tego wpisu|$1 wpisów}} w rejestrze",
        "tags-edit-success": "Zmiany zostały zastosowane.",
        "tags-edit-failure": "Zmiany nie mogą być zastosowane:\n$1",
+       "tags-edit-nooldid-title": "Nieprawidłowa wersja docelowa",
+       "tags-edit-nooldid-text": "Nie wybrano żadnej wersji, na której ma zostać wykonana ta operacja lub wybrana wersja nie istnieje.",
+       "tags-edit-none-selected": "Proszę zaznaczyć co najmniej jeden znacznik do dodania lub usunięcia.",
        "comparepages": "Porównanie stron",
        "compare-page1": "Strona 1",
        "compare-page2": "Strona 2",
        "logentry-managetags-delete": "$1 {{GENDER:$2|usunął|usunęła}} znacznik \"$4\" (wykluczony z $5 {{PLURAL:$5|wersji lub wpisu dziennika|wersji i/lub wpisów dziennika}})",
        "logentry-managetags-activate": "$1 aktywował{{GENDER:$2||a}} znacznik \"$4\" do korzystania przez uczestników i boty",
        "logentry-managetags-deactivate": "$1 wyłączył{{GENDER:$2||a}} znacznik \"$4\" z korzystania przez uczestników i boty",
+       "log-name-tag": "Rejestr znaczników",
+       "log-description-tag": "Ta strona pokazuje zarejestrowane operacje dodawania lub usuwania [[Special:Tags|znaczników]] z poszczególnych wersji lub wpisów w rejestrze. Niniejszy rejestr nie uwzględnia oznakowań, gdy dokonywane są w trakcie edycji, usuwania lub podobnej operacji.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|dodał|dodała}} {{PLURAL:$7|znacznik|znaczniki}} $6 do wersji $4 strony $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|dodał|dodała}} {{PLURAL:$7|znacznik|znaczniki}} $6 do wpisu w rejestrze $5 strony $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|usunął|usunęła}} {{PLURAL:$9|znacznik|znaczniki}} $8 z wersji $4 strony $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|usunął|usunęła}} {{PLURAL:$9|znacznik|znaczniki}} $8 z wpisu w rejestrze $5 strony $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|zmienił|zmieniła}} znaczniki w wersji $4 strony $3 ({{PLURAL:$7|dodano}} $6; {{PLURAL:$9|usunięto}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|zmienił|zmieniła}} znaczniki we wpisie w rejestrze $5 strony $3 ({{PLURAL:$7|dodano}} $6; {{PLURAL:$9|usunięto}} $8)",
        "rightsnone": "brak",
        "revdelete-summary": "opis zmian",
        "feedback-adding": "Dodawanie opinii do strony...",
index 849d72c..eaf8552 100644 (file)
        "tags-update-add-not-allowed-multi": "{{PLURAL:$2|La tichëtta sì-dapress a peul|Le tichëtte sì-dapress a peulo}} nen esse giontà a man: $1",
        "tags-update-remove-not-allowed-one": "La tichëtta «$1» a peul nen esse gavà.",
        "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|La tichëtta sì-dapress a peul|Le tichëtte sì-dapress a peulo}} pa esse gavà a man: $1",
+       "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]]:",
        "comparepages": "Confronté dle pàgine",
        "compare-page1": "Pàgina 1",
        "compare-page2": "Pàgina 2",
index f125288..fbbf303 100644 (file)
@@ -8,7 +8,8 @@
                        "Reedy",
                        "ZaDiak",
                        "아라",
-                       "Amire80"
+                       "Amire80",
+                       "Obaid Raza"
                ]
        },
        "tog-underline": "حوڑ تھلے لین:",
        "rev-showdeleted": "وکھاؤ",
        "revisiondelete": "ریوژن مٹاؤ یا واپس کرو",
        "revdelete-nooldid-title": "ناں منی جان والی تارگٹ ریوین",
-       "revdelete-nooldid-text": "تساں یا تے اک تارگٹ دی ریوین نئیں دسی ایس کم نوں کرن لئی،\nخاص ریوین ہے نئیں، یا فیر تسیں ہن دی تبدیلی نوں لکارۓ او۔",
+       "revdelete-nooldid-text": "تساں یا تے اک تارگٹ دی ریوین نئیں دسی ایس کم نوں کرن لئی،\nخاص ریوین ہے نئیں، یا فیر تسیں ہن دی تبدیلی نوں لکارئے او۔",
        "revdelete-no-file": "فائل جیہڑی کئی گئی اے ہے ای نئیں۔",
        "revdelete-show-file-confirm": "تساں نوں کیا پک اے جے تسیں فائل \"<nowiki>$1</nowiki>\" دی مٹائی ریوین  $2 توں $3 تک؟",
        "revdelete-show-file-submit": "ہاں",
        "import-interwiki-history": "ایس صفے لئی سارا ریرین ریکارڈ کاپی کرو۔",
        "import-interwiki-templates": "سارے سچے رلاؤ",
        "import-interwiki-submit": "لے آؤ",
-       "import-interwiki-namespace": "انت ناں",
        "import-upload-filename": "فائل دا ناں",
        "import-comment": "راۓ",
        "importtext": "مہربانی کرکے سورس وکی توں فائل نوں اگے پیجو [[Special:Export|ایکسپورٹ یوٹیلیٹی]] ورتدیاں ہویاں۔",
        "import-error-invalid": "\"$1\" صفہ نئیں لیایا گیا ایدا ناں نئیں رکھیا جاسکدا۔",
        "importlogpage": "لاگ لے کے آؤ",
        "importlogpagetext": "پربنھک لیان صفیاں دا ایڈٹ رکارڈ نال دوجے وکیاں توں۔",
-       "import-logentry-upload": "لیائی [[$1]] فائل چڑھاؤ",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|ریوین|ریویناں}}",
-       "import-logentry-interwiki": "ٹرانسوکیڈ  $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ریوین|ریویناں }} $2 توں",
        "javascripttest": "JavaScript ٹیسٹنگ",
        "javascripttest-pagetext-noframework": "ایہ صفہ JavaScript  ٹیسٹاں لئی بچایا گیا اے۔",
        "api-error-unknown-warning": "انجان خبرداری: $1",
        "api-error-unknownerror": "انجان غلطی : \"$1\"۔",
        "api-error-uploaddisabled": "فائل جڑھانا ایس وکی تے بند اے۔",
-       "api-error-verification-error": "اے فائل کرپٹ ہو سکدی یا فیر ایدا فارمیٹ غلط اے۔"
+       "api-error-verification-error": "اے فائل کرپٹ ہو سکدی یا فیر ایدا فارمیٹ غلط اے۔",
+       "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-telugu": "تلیگو",
+       "special-characters-group-sinhala": "سنہالی",
+       "special-characters-group-gujarati": "گجراتی",
+       "special-characters-group-thai": "تھائی",
+       "special-characters-group-lao": "لاؤ",
+       "special-characters-group-khmer": "کھیمر"
 }
index d0b33ea..56e3151 100644 (file)
        "import-interwiki-history": "Kōpis wissans šisse pāusas redigīsnas istōrijan",
        "import-interwiki-templates": "Ebimmais wissans šablōnins",
        "import-interwiki-submit": "Impōrtis",
-       "import-interwiki-namespace": "Kakīnslis tītelin plattibi:",
        "import-upload-filename": "Zūrbrukes pabilisnā:",
        "import-comment": "Kumentārs:",
        "importtext": "Ekspōrt zūrbrukin iz appus wiki tērpawintei [[Special:Export|Ekspōrtas pagabtin]]. Enpeisāis din en twajjan kōmputeran be enkraūneis din stwi.",
        "import-invalid-interwiki": "Ni mazīngi impōritun iz padātan wiki.",
        "importlogpage": "Impōrtas registerin",
        "importlogpagetext": "Perwaldīwingei impōrtai stēisan pāusan sen redigīsnas istōrijan iz kittans wikins.",
-       "import-logentry-upload": "ast impōrtiwuns(si) [[$1]] pra zūrbrukes enkraūsenin",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|wersiōni|wersiōnis}}",
-       "import-logentry-interwiki": "$1 impōrtitan pra transwiki",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|wersiōni|wersiōnis}} iz $2",
        "tooltip-pt-userpage": "Majjan persōniskan pāusan",
        "tooltip-pt-anonuserpage": "Tērpautajas pāusan per IP adressin, iz kawīdan tū redigijja",
index 7c78c03..d7b5056 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 سرچينه کتل",
        "pt-userlogout": "وتل",
        "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": "د پايلې برېښليک کتل غواړې؟",
        "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دا عاملين ړنگ شول.",
        "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-editusercssjs": "د نورو کارنانو د CSS او JS (جاوا سکرېپټ) دوتنې سمول",
        "right-editusercss": "د نورو کارنانو د CSS دوتنې سمول",
        "right-edituserjs": "د نورو کارنانو د JS (جاوا سکرېپټ) دوتنې سمول",
+       "right-editmyusercss": "خپل د CSS دوتنې سمول",
+       "right-editmyuserjs": "خپل د جاواسکرېپټ دوتنې سمول",
        "right-viewmywatchlist": "خپل کتنلړ کتل",
        "right-editmyprivateinfo": "خپل شخصي مالومات سمول (بېلگه. برېښليک پته، آرنوم)",
        "right-editmyoptions": "خپل غوره توبونه سمول",
        "action-createpage": "مخونه جوړول",
        "action-createtalk": "د خبرو اترو مخونه جوړول",
        "action-createaccount": "دا گڼون جوړول",
+       "action-history": "د دې مخ پېښليک کتل",
        "action-minoredit": "دا سمون وړوکی په نخښه کول",
        "action-move": "همدا مخ لېږدول",
+       "action-move-subpages": "همدا مخ او څېرمه مخونه لېږدول",
        "action-move-categorypages": "د وېشنيزې مخونه لېږدول",
        "action-movefile": "همدا دوتنه لېږدول",
        "action-upload": "همدا دوتنه پورته کول",
        "illegalfilename": "د دوتنې نوم \"$1\" په داسې تورو ليکلی دی چې د یو مخ د سرليک په توگه يې پرېښه نه ده شوې.\nمهرباني وکړۍ د دوتنې نوم مو بدل کړۍ او بيا مو د دوتنې د پورته کولو هڅه وکړۍ.",
        "badfilename": "ددغې دوتنې نوم \"$1\" ته واوړېده.",
        "filetype-badmime": "د MIME بڼې \"$1\" د دوتنو د پورته کولو اجازه نشته.",
+       "filetype-missing": "دا دوتنه هېڅ شاتاړی نه لري (لکه \".jpg\").",
        "empty-file": "کومه دوتنه چې تاسې دلته سپارلې هغه تشه ده.",
        "file-too-large": "کومه دوتنه چې تاسې دلته سپارلې ډېره لويه ده.",
        "filename-tooshort": "د دوتنې نوم ډېر لنډ دی",
        "uploadwarning": "د پورته کولو گواښ",
        "savefile": "دوتنه خوندي کړه",
        "uploaddisabled": "پورته کول ناچارن شوي",
+       "copyuploaddisabled": "د يو آر اېل له مخې پورته کېدل ناچارن شوي.",
        "uploaddisabledtext": "د دوتنې پورته کولو آسانتياوې ناچارن شوي.",
+       "php-uploaddisabledtext": "په PHP کې دوتنې پورته کېدنې ناچارن شوي.\nلطفاً د file_uploads امستنې وڅارئ.",
+       "uploadscripted": "دا دوتنه د HTML يا سکرېپټ کوډ لري چې کېدای شي په تېروتنه د جال يو کتنمل له خوا تفسير شوې وي.",
+       "uploadscriptednamespace": "د SVG دا دوتنه يو ناقانونه نومتشيال لري \"$1\".",
+       "uploadinvalidxml": "د پورته شوې دوتنې XML نه شي تحليل کېدلی.",
        "uploadvirus": "دا دوتنه ويروس لري! تفصيل: $1",
        "upload-source": "سرچينيزه دوتنه",
        "sourcefilename": "د سرچينيزې دوتنې نوم:",
        "license": "منښتليک:",
        "license-header": "منښتليک:",
        "nolicense": "هېڅ نه دي ټاکل شوي",
+       "licenses-edit": "د منښتليک خوښنې سمول",
        "license-nopreview": "(مخليدنه نشته)",
        "upload_source_file": "(ستاسې کمپيوټر کې ستاسې ټاکلې دوتنه)",
        "listfiles-delete": "ړنگول",
        "imagelinks": "د دوتنې کارېدنه",
        "linkstoimage": "دا {{PLURAL:$1|لاندينی مخ|$1 لانديني مخونه}} د همدې دوتنې سره تړنې لري:",
        "nolinkstoimage": "داسې هېڅ کوم مخ نه شته چې د دغې دوتنې سره تړنې ولري.",
+       "linkstoimage-redirect": "$1 (دوتنه مخ گرځېدنه) $2",
        "duplicatesoffile": "دا لاندينۍ {{PLURAL:$1| دوتنه د همدې دوتنې غبرګونې لمېسه ده|$1 دوتنې د همدې دوتنې غبرګونې لمېسې دي}} ([[Special:FileDuplicateSearch/$2|نور تفصيل]]):",
        "sharedupload": "دا دوتنه د $1 لخوا نه ده او کېدای شي چې نورې پروژې به يې هم کاروي.",
        "sharedupload-desc-here": "دا دوتنه د $1 لخوا خپرېږې او کېدای شي چې دا په نورو پروژو هم کارېدلې وي.\nد دوتنې د کارېدنې لا نور مالومات د [$2 دوتنې د څرگندنو په مخ] کې لاندې ښودل شوی.",
        "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": "د سمونو شمار",
        "statistics-users-active-desc": "هغه کارنان چې په {{PLURAL:$1|وروستۍ ورځ|وروستيو $1 ورځو}} کې فعاله ونډه لرلې",
        "pageswithprop": "د مخ ځانتياو څخه برخمن مخونه",
        "pageswithprop-legend": "د مخ ځانتياو څخه برخمن مخونه",
+       "pageswithprop-text": "په دې مخ کې د يوې ځانگړې مخ ځانتيا کارېدونکو مخونو لړليک راغلی.",
        "pageswithprop-prop": "د ځانتيا نوم:",
        "pageswithprop-submit": "ورځه",
        "doubleredirects": "دوه ځلي ورگرځېدنې",
        "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|کارېدلی مخ|کارېدلي مخونه}}",
        "protectedpages-indef": "يوازې بې پايه ژغورنې",
        "protectedpages-summary": "په دې مخ کې هغه مخونه د لړليک په توگه راغلي چې دم مهال ژغورل شوي. د جوړولو څخه ژغورل شويو سرليکونو د يو لړليک لپاره [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] وگورئ.",
        "protectedpages-cascade": "يوازې ځوړاوبيزې ژغورنې",
+       "protectedpages-noredirect": "مخ گرځونې پټول",
        "protectedpages-timestamp": "وخت ټاپه",
        "protectedpages-page": "مخ",
        "protectedpages-expiry": "پای نېټه",
+       "protectedpages-performer": "ژغورونکی کارن",
        "protectedpages-reason": "سبب",
        "protectedpages-unknown-timestamp": "ناجوت",
        "protectedpages-unknown-performer": "ناڅرگنده کارن",
        "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-namespaceprotection-namespace": "نوم-تشيال",
        "trackingcategories": "موندونکې وېشنيزې",
        "trackingcategories-name": "پيغام نوم",
+       "trackingcategories-nodesc": "کومې څرگندونې نشته.",
+       "trackingcategories-disabled": "وېشنيزه ناچارنه شوه",
        "mailnologin": "د لېږلو پته نشته",
        "emailuser": "کارن ته برېښليک لېږل",
        "emailuser-title-target": "دې {{GENDER:$1|کارن}} ته برېښليک لېږل",
        "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": "نه کتل",
        "undeletecomment": "سبب:",
        "undeletedfiles": "{{PLURAL:$1|1 دوتنه بيازېرمه شوه|$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": "له مياشتې د (او پخواني):",
        "importlogpage": "د واردولو يادښت",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|بڼه|بڼې}} راولېږدېدې",
        "javascripttest": "د جاوا سکرېپټ آزمېښت",
+       "javascripttest-pagetext-unknownaction": "ناڅرگنده کړنه \"$1\".",
        "tooltip-pt-userpage": "ستاسې کارن مخ",
        "tooltip-pt-mytalk": "ستاسې د خبرواترو مخ",
        "tooltip-pt-preferences": "زما غوره توبونه",
        "hours-abbrev": "$1 گ",
        "seconds": "{{PLURAL:$1|$1 ثانيه|$1 ثانيې}}",
        "minutes": "{{PLURAL:$1|$1 دقيقه|$1 دقيقې}}",
-       "hours": "{{PLURAL:$1|$1 ساعت|$1 ساعتونه}}",
+       "hours": "{{PLURAL:$1|$1 گړۍ|$1 گړۍ}}",
        "days": "{{PLURAL:$1|$1 ورځ|$1 ورځې}}",
        "weeks": "{{PLURAL:$1|$1 اونۍ|$1 اونۍ}}",
        "months": "{{PLURAL:$1|$1 مياشت|$1 مياشتې}}",
        "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": "مېټاډاټا",
        "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-titles": "سرليکونه:",
+       "watchlistedit-clear-submit": "کتنلړ سپينول (دا دايمي ده!)",
+       "watchlistedit-clear-done": "ستاسې کتنلړ سپين شو.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 سرليک لرې شو|$1 سرليکونه لري شول}}:",
+       "watchlisttools-clear": "کتنلړ سپينول",
        "watchlisttools-view": "اړونده بدلونونه کتل",
        "watchlisttools-edit": "کتنلړ ليدل او سمول",
        "watchlisttools-raw": "خام کتنلړ سمول",
        "version-version": "($1)",
        "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-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-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-cputime": "سي پي يو وخت کارېدنه",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|ثانيه|ثانيې}}",
        "limitreport-walltime": "اصلي وخت کارېدنه",
        "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-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 401f403..5b59431 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.",
        "missingcommentheader": "'''Lembrete:''' Você não introduziu um assunto/título para este comentário.\nSe você clicar novamente \"{{int:savearticle}}\", a sua edição será salva sem um assunto/título.",
        "summary-preview": "Previsão de sumário:",
        "subject-preview": "Previsão do assunto/título:",
+       "previewerrortext": "Ocorreu um erro ao tentar pré-visualizar suas alterações.",
        "blockedtitle": "O usuário está bloqueado",
        "blockedtext": "'''O seu nome de usuário ou endereço de IP foi bloqueado.'''\n\nO bloqueio foi realizado por $1.\nO motivo apresentado foi ''$2''.\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destino do bloqueio: $7\n\nVocê pode contatar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir sobre o bloqueio.\n\nVocê só poderá utilizar a funcionalidade \"Contatar usuário\" se um endereço de ''e-mail'' válido estiver especificado em suas [[Special:Preferences|preferências de usuário]] e você não tiver sido bloqueado de utilizar tal recurso.\nO seu endereço de IP atual é $3 e a ID de bloqueio é #$5.\nPor favor, inclua todos os detalhes acima em quaisquer tentativas de esclarecimento.",
        "autoblockedtext": "O seu endereço de IP foi bloqueado de forma automática, uma vez que foi utilizado recentemente por outro usuário, o qual foi bloqueado por $1.\nO motivo apresentado foi:\n\n:''$2''\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destino do bloqueio: $7\n\nVocê pode contatar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir sobre o bloqueio.\n\nNote que não poderá utilizar a funcionalidade \"Contatar usuário\" se não possuir uma conta nesta wiki ({{SITENAME}}) com um endereço de ''e-mail'' válido indicado nas suas [[Special:Preferences|preferências de usuário]] ou se tiver sido bloqueado de utilizar tal recurso.\n\nSeu endereço de IP no momento é $3 e sua ID de bloqueio é #$5.\nPor favor, inclua tais dados em qualquer tentativa de esclarecimentos que for realizar.",
        "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 [[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",
        "action-editmyprivateinfo": "modifique suas informações privadas",
        "action-editcontentmodel": "editar o conteudo do modelo de uma pagina",
        "action-managechangetags": "Criar e apagar etiquetas da base de dados",
+       "action-applychangetags": "aplicar etiquetas juntamente com suas alterações",
+       "action-changetags": "adicionar e remover etiquetas arbitrárias em revisões e ''logs'' individuais",
        "nchanges": "$1 {{PLURAL:$1|alteração|alterações}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|desde a última visita}}",
        "enhancedrc-history": "histórico",
        "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]].",
        "logempty": "Nenhum item idêntico no registro.",
        "log-title-wildcard": "Procurar por títulos que sejam iniciados com o seguinte texto",
        "showhideselectedlogentries": "Exibir/ocultar os itens de registros selecionados",
+       "log-edit-tags": "Editar etiquetas das entradas selecionadas",
        "allpages": "Todas as páginas",
        "nextpage": "Próxima página ($1)",
        "prevpage": "Página anterior ($1)",
        "emailccsubject": "Cópia de sua mensagem para $1: $2",
        "emailsent": "E-mail enviado",
        "emailsenttext": "Sua mensagem foi enviada.",
-       "emailuserfooter": "Este e-mail foi enviado por $1 para $2 através da opção de \"enviar e-mail ao usuário\" da {{SITENAME}}.",
+       "emailuserfooter": "Este email foi enviado por $1 para $2 através da função\"{{int:emailpage}}\" do site {{SITENAME}}.",
        "usermessage-summary": "Deixar mensagem de sistema.",
        "usermessage-editor": "Mensagens de sistema",
        "watchlist": "Páginas vigiadas",
        "import-interwiki-history": "Copiar todas as edições para esta página",
        "import-interwiki-templates": "Incluir todas as predefinições",
        "import-interwiki-submit": "Importar",
+       "import-mapping-default": "Importar locais padrão",
+       "import-mapping-namespace": "Importar para o espaço nominal:",
+       "import-mapping-subpage": "Importar como sub-página da seguinte pagina:",
        "import-upload-filename": "Nome do arquivo:",
        "import-comment": "Comentário:",
        "importtext": "Por favor, exporte o arquivo do wiki de origem utilizando a página especial [[Special:Export|exportação de páginas]].\nSalve o arquivo no seu computador e importe-o aqui.",
        "pageinfo-protect-cascading-yes": "Sim",
        "pageinfo-protect-cascading-from": "Proteções herdadas de",
        "pageinfo-category-info": "Informações da categoria",
+       "pageinfo-category-total": "Total de membros",
        "pageinfo-category-pages": "Número de páginas",
        "pageinfo-category-subcats": "Número de subcategorias",
        "pageinfo-category-files": "Número de arquivos",
        "patrol-log-page": "Registro de edições patrulhadas",
        "patrol-log-header": "Este é um registro de edições patrulhadas.",
        "log-show-hide-patrol": "$1 registro de edições patrulhadas",
+       "log-show-hide-tag": "$1 etiqueta de log",
        "deletedrevision": "Apagou a versão antiga $1",
        "filedeleteerror-short": "Erro ao eliminar arquivo: $1",
        "filedeleteerror-long": "Foram encontrados erros ao tentar eliminar o arquivo:\n\n$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..cd286ec 100644 (file)
        "feb": "Fev.",
        "mar": "Mar.",
        "apr": "Abr.",
-       "may": "Maio",
+       "may": "Mai.",
        "jun": "Jun.",
        "jul": "Jul.",
        "aug": "Ago.",
        "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.",
        "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 contém uma ligação interna",
+       "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 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.",
index a7b5524..8deb591 100644 (file)
                        "Pikne",
                        "Tacsipacsi",
                        "Totosunarto",
-                       "Macofe"
+                       "Macofe",
+                       "FRacco"
                ]
        },
        "sidebar": "{{notranslate}}",
        "no-null-revision": "Error message shown when no null revision could be created to reflect a protection level change.\n\nAbout \"null revision\":\n* Create a new null-revision for insertion into a page's history. This will not re-save the text, but simply refer to the text from the previous version.\n* Such revisions can for instance identify page rename operations and other such meta-modifications.\n\nParameters:\n* $1 - page title",
        "badtitle": "The page title when a user requested a page with invalid page name. The content will be {{msg-mw|badtitletext}}.",
        "badtitletext": "The message shown when a user requested a page with invalid page name. The page title will be {{msg-mw|badtitle}}.\n\nSee also:\n* {{msg-mw|selfmove}}\n* {{msg-mw|immobile-source-namespace}}\n* {{msg-mw|immobile-target-namespace-iw}}\n* {{msg-mw|immobile-target-namespace}}",
+       "title-invalid-empty": "Used as text of error message: empty title",
+       "title-invalid-utf8": "Used as text of error message: invalid UTF8 sequence",
+       "title-invalid-interwiki": "Used as text of error message: invalid interwiki link",
+       "title-invalid-talk-namespace": "Used as text of error message: invalid talk page",
+       "title-invalid-characters": "Used as text of error message: invalid characters in title ($1 is the character)",
+       "title-invalid-relative": "Used as text of error message: relative titles are invalid",
+       "title-invalid-magic-tilde": "Used as text of error message: magic tilde sequence is invalid in page title",
+       "title-invalid-too-long": "Used as text of error message: too long title ($1 is maximum length)",
+       "title-invalid-leading-colon": "Used as text of error message: colon at the beginning of title is invalid",
        "perfcached": "Like {{msg-mw|perfcachedts}} but used when we do not know how long ago page was cached (unlikely to happen).\n\nParameters:\n* $1 - the max result cut off ($wgQueryCacheLimit)",
        "perfcachedts": "Used on pages that list page lists for which the displayed data is cached. Parameters:\n* $1 - a time stamp (date and time combined)\n* $2 - a date (optional)\n* $3 - a time (optional)\n* $4 - the cut off limit for cached results ($wgQueryCacheLimit). If there are more then this many results for the query, only the first $4 of those will be listed on the page. Usually $4 is about 1000.",
        "querypage-no-updates": "Text on some special pages, e.g. [[Special:FewestRevisions]].",
        "filehist-thumbtext": "Shown in the file history list of a file description page. Parameters:\n* $1 - timestamp, localized. e.g. ''10:23, 18 april 2007''\n* $2 - (Optional) the date\n* $3 - (Optional) the time\nExample: [[wikipedia:Image:Madeleine close2.jpg]]",
        "filehist-nothumb": "Shown if no thumbnail is available in the file history list of a file desription page.\n\nExample: [[:Image:Addon-icn.png]]",
        "filehist-user": "In image description page.\n\n{{Identical|User}}",
-       "filehist-dimensions": "Used as label in file description page.\n\nFollowed by length, filesize, and width x height. e.g. \"1.5 s (13 KB)\".",
+       "filehist-dimensions": "Used as label in file description page.\n\nFollowed by length, or width x height, and filesize. e.g. \"1.5 s (13 KB)\".",
        "filehist-filesize": "Used in image description page.\n{{Identical|File size}}",
        "filehist-comment": "In file description page\n\n{{Identical|Comment}}",
        "imagelinks": "In top header of the image description page, see for example [[:Image:Yes.png]]. Shows a list of pages where this file is used.\n{{Identical|File usage}}",
        "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}}",
        "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 a94802c..2034bab 100644 (file)
        "import-interwiki-history": "Copiar l'entira cronologia da questa pagina",
        "import-interwiki-templates": "Includer tut ils models",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Tip da pagina da destinaziun:",
-       "import-interwiki-rootpage": "Pagina principala da destinaziun (opziunal):",
        "import-upload-filename": "Num da datoteca:",
        "import-comment": "Commentari:",
        "importtext": "Exportescha la datoteca da la wiki da funtauna cun agid da la [[Special:Export|funcziun d'export]].\nLa memorisescha sin tes computer e chargia si ella qua.",
index 8ce5c62..c652742 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 conține o legătură interlinguală",
+       "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 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.",
        "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ă",
        "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",
        "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",
        "import-interwiki-history": "Copiază toate versiunile istoricului acestei pagini",
        "import-interwiki-templates": "Includeți toate formatele",
        "import-interwiki-submit": "Importă",
+       "import-mapping-default": "Importă către destinațiile implicite",
+       "import-mapping-namespace": "Importă către un spațiu de nume:",
+       "import-mapping-subpage": "Importă ca subpagini ale următoarei pagini:",
        "import-upload-filename": "Nume fișier:",
        "import-comment": "Comentariu:",
        "importtext": "Vă rugăm să exportați fișierul din wikiul sursă folosind [[Special:Export|utilitarul de exportare]].\nSalvați-l pe calculatorul dumneavoastră și încărcați-l aici.",
        "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:* Clonând unul dintre depozitele <code>mediawiki/skins/*</code> folosind git în directorul <code dir=\"ltr\">skins/</code> al instalării dumneavoastră de MediaWiki.\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 acest moment:\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:* Clonând unul dintre depozitele <code>mediawiki/skins/*</code> folosind git în directorul <code dir=\"ltr\">skins/</code> al instalării dumneavoastră de MediaWiki.\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..d2e98dc 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 téne 'nu collegamende inderuicchi",
+       "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 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",
        "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",
        "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}}]].",
        "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",
        "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-namespace": "Namespace",
+       "trackingcategories-name": "Nome d'u messàgge",
        "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",
index 168125d..2bf1769 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 байта в кодировке utf-8.",
+       "title-invalid-leading-colon": "Запрашиваемое название страницы содержит недопустимое двоеточие в начале.",
        "perfcached": "Следующие данные взяты из кэша и могут не учитывать последних изменений. В кэше хранится не более $1 {{PLURAL:$1|записи|записей}}.",
        "perfcachedts": "Следующие данные взяты из кэша, последний раз он обновлялся в $1. В кэше хранится не более $4 {{PLURAL:$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": "(детали журнала удалены)",
        "rev-showdeleted": "показать",
        "revisiondelete": "Удалить / восстановить версии страницы",
        "revdelete-nooldid-title": "Не задана целевая версия",
-       "revdelete-nooldid-text": "Ð\92Ñ\8b Ð½Ðµ Ð·Ð°Ð´Ð°Ð»Ð¸ Ñ\86елевÑ\83Ñ\8e Ð²ÐµÑ\80Ñ\81иÑ\8e (или Ð²ÐµÑ\80Ñ\81ии) Ð´Ð»Ñ\8f Ð²Ñ\8bполнениÑ\8f Ñ\8dÑ\82ой Ñ\84Ñ\83нкÑ\86ии.",
+       "revdelete-nooldid-text": "Ð\92Ñ\8b Ð½Ðµ Ð·Ð°Ð´Ð°Ð»Ð¸ Ñ\86елевÑ\83Ñ\8e Ð²ÐµÑ\80Ñ\81иÑ\8e (веÑ\80Ñ\81ии) Ð´Ð»Ñ\8f Ð²Ñ\8bполнениÑ\8f Ñ\8dÑ\82ой Ñ\84Ñ\83нкÑ\86ии, Ñ\83казаннаÑ\8f Ð²ÐµÑ\80Ñ\81иÑ\8f Ð½Ðµ Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82, Ð¸Ð»Ð¸ Ð²Ñ\8b Ð¿Ñ\8bÑ\82аеÑ\82еÑ\81Ñ\8c Ñ\81кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\82екÑ\83Ñ\89Ñ\83Ñ\8e Ð²ÐµÑ\80Ñ\81иÑ\8e.",
        "revdelete-no-file": "Указанный файл не существует.",
        "revdelete-show-file-confirm": "Вы уверены, что вы хотите просмотреть удалённую версию файла «<nowiki>$1</nowiki>» от $2, $3?",
        "revdelete-show-file-submit": "Да",
        "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": "Адрес электронной почты указывать необязательно, но он будет необходим в том случае, если вы забудете пароль.",
        "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": "история",
        "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",
        "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-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-edit-title": "Редактировать теги",
        "tags-edit-manage-link": "Управление тегами",
        "tags-edit-revision-selected": "{{PLURAL:$1|Выбранная версия|Выбранные версии}} [[:$2]]:",
        "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": "Первая страница",
        "logentry-block-reblock": "$1 {{GENDER:$2|изменил|изменила}} срок блокировки {{GENDER:$4|$3}} на период $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|заблокировал}} {{GENDER:$4|$3}} сроком на $5 $6",
        "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 поверх перенаправления",
        "logentry-managetags-activate": "$1 активировал{{GENDER:$2||а}} метку «$4» для использования участниками и ботами",
        "logentry-managetags-deactivate": "$1 отключил{{GENDER:$2||а}} метку «$4» для использования участниками и ботами",
        "log-name-tag": "Журнал меток",
+       "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": "Браузер:",
        "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:* клонировав один из репозиториев <code>mediawiki/skins/*</code> через git в подпапку <code  dir=\"ltr\">skins/</code> папки, куда установлена MediaWiki.\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:* crfxfd [https://www.mediawiki.org/wiki/Download архив установочных файлов], который содержит несколько тем оформления и расширений; вы можете скопировать папку <code>skins/</code> из него;\n:* скачав архивы отдельных тем оформления с [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org];\n:* rлонировав один из репозиториев <code>mediawiki/skins/*</code> через git в подпапку <code dir=\"ltr\">skins/</code> папки, куда установлена MediaWiki.\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 dfa980a..fec8472 100644 (file)
        "import-interwiki-history": "Копіровати вшыткы історічны верзії той сторінкы",
        "import-interwiki-templates": "Загорнути вшыткы шаблоны",
        "import-interwiki-submit": "Імпортовати",
-       "import-interwiki-namespace": "Цілёвый простор назв:",
-       "import-interwiki-rootpage": "Цїлёва корїнёва сторінка (необовязково):",
        "import-upload-filename": "Назва файлу:",
        "import-comment": "Коментарь:",
        "importtext": "Просиме Вас, експортуйте сторінку з іншой вікі помочов [[Special:Export|інштрументу на експорт]], уложте файл на ваш діск а потім го заладуйте гев.",
index a275987..a147029 100644 (file)
@@ -65,9 +65,9 @@
        "tog-prefershttps": "प्रेवेशानन्तरं सर्वदा संरक्षितसम्पर्कः एव उपयुज्याम्",
        "underline-always": "सर्वदा",
        "underline-never": "कदापि न",
-       "underline-default": "पà¥\82रà¥\8dवनिरà¥\8dधारिता त्वचा आवृत्तिः वा",
+       "underline-default": "यदभावà¥\87 त्वचा आवृत्तिः वा",
        "editfont-style": "सम्पादन-क्षेत्रस्य अक्षरशैली:",
-       "editfont-default": "à¤\97वà¥\87à¤\95à¥\8dषणसà¥\8dय à¤®à¥\82लविनà¥\8dयासाधारेण (Browser default)",
+       "editfont-default": "à¤\97वà¥\87à¤\95à¥\8dषणसà¥\8dय à¤¯à¤¦à¤­à¤¾à¤µà¥\87 à¤\86धारेण (Browser default)",
        "editfont-monospace": "एकावकाशयुक्तं वर्णम्",
        "editfont-sansserif": "कोणविहीनं वर्णम्",
        "editfont-serif": "कोणयुक्तं वर्णम्",
        "newpage": "नवीनपृष्ठम्",
        "talkpage": "अस्य पृष्ठस्य विषये चर्चा क्रियताम्",
        "talkpagelinktext": "सम्भाषणम्",
-       "specialpage": "विशà¥\87षपृष्ठम्",
+       "specialpage": "विशिषà¥\8dà¤\9fपृष्ठम्",
        "personaltools": "वैयक्तिकोपकरणानि",
        "articlepage": "लेखः दृश्यताम्",
        "talk": "सम्भाषणम्",
        "viewsourcetext": "भवान्/भवती एतस्य पृष्ठस्य स्रोतः द्रष्टुं, मुद्रणं (print) कर्तुं च अर्हति ।",
        "viewyourtext": "भवान्/भवती एतस्मिन् पृष्ठे '''स्वस्य सम्पादनानि'' द्रष्टुं  अर्हति, तेषां प्रतिलिपिम् (copy) अपि कर्तुं अर्हति ।",
        "protectedinterface": "एतत् पृष्ठं तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति । इदञ्च पृष्ठम् अयोग्यसम्पादनात् संरक्षितमस्ति ।  \nविकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
-       "editinginterface": "<strong>पूर्वसूचना :</strong> तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति तादृशस्य पृष्ठस्य भवता/भवत्या सम्पादनं क्रियमाणमस्ति । अस्य विकि-प्रकल्पस्य अन्ययोजकेभ्यः अपि अत्र कृतानि परिवर्तनानि भविष्यन्ति ।",
+       "editinginterface": "<strong>पूर्वसूचना :</strong> तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति, तादृशस्य पृष्ठस्य भवता/भवत्या सम्पादनं क्रियमाणमस्ति । अत्र कृतानि परिवर्तनानि अस्य विकि-प्रकल्पस्य अन्ययोजकेभ्यः अपि कार्यान्वितानि भविष्यन्ति ।",
        "translateinterface": "विकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
        "cascadeprotected": "इदं पृष्ठं सम्पादनात् संरक्षितमस्ति । कारणम् एतत् पृष्ठं {{PLURAL:$1|तादृशे पृष्ठे|तादृशेषु पृष्ठेषु}} अन्तर्भवति, यादृशेषु पृष्ठेषु सोपानवत् सुरक्षा अस्ति : $2",
        "namespaceprotected": "भवान्/भवती '''$1''' नामाकाशे अन्तर्भूतेषु पृष्ठेषु परिवर्तनं कर्तुं न शक्नोति ।",
        "defaultmessagetext": "मूलसन्देशः",
        "content-failed-to-parse": "$1 कृते $2 इत्यस्य विभाजनं विफलम् अभवत् । दोषः : $3",
        "invalid-content-data": "अयोग्यः लेखः",
-       "content-not-allowed-here": "[[$2]] à¤ªà¥\83षà¥\8dठà¥\87 \"$1\" à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 स्थापितुम् अनुमतिः नास्ति",
+       "content-not-allowed-here": "[[$2]] à¤ªà¥\83षà¥\8dठà¥\87 \"$1\" à¤\85नà¥\8dतरà¥\8dविषयà¤\83 स्थापितुम् अनुमतिः नास्ति",
        "editwarning-warning": "एतत् पृष्ठं त्यक्त्वा यदि गमिष्यति, तर्हि भवता/भवत्या कृतस्य सम्पादनस्य रक्षणं न भविष्यति ।\n\nभवता/भवत्या यदि प्रवेशः प्राप्तः अस्ति, तर्हि एषा सूचना अत्र \"{{int:prefs-editing}}\" निगूहितुं शक्यते ।",
        "editpage-notsupportedcontentformat-title": "लेखस्य प्रारूपम् अयोग्यम्",
-       "editpage-notsupportedcontentformat-text": "लà¥\87à¤\96सà¥\8dय à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\8dयाà¤\83 $1 à¤\87ति à¤ªà¥\8dरारà¥\82पà¤\82 $2 à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80-à¤\89दाहरणानुगुणं नास्ति ।",
+       "editpage-notsupportedcontentformat-text": "लà¥\87à¤\96सà¥\8dय à¤\85नà¥\8dतरà¥\8dविषयसà¥\8dय $1 à¤\87ति à¤ªà¥\8dरारà¥\82पà¤\82 $2 à¤\85नà¥\8dतरà¥\8dविषयà¥\8bदाहरणानुगुणं नास्ति ।",
        "content-model-wikitext": "विकिपाठः",
        "content-model-text": "शुद्धपाठः",
        "content-model-javascript": "जावालिपिः",
        "allowemail": "अन्ययोजकैः प्रेषितेभ्यः ई-पत्रेभ्यः अनुमतिं ददातु",
        "prefs-searchoptions": "अन्विष्यताम्",
        "prefs-namespaces": "नामाकाशाः",
-       "default": "पà¥\82रà¥\8dवनिरà¥\8dदिषà¥\8dà¤\9fमà¥\8d",
+       "default": "यदभावà¥\87",
        "prefs-files": "सञ्चिकाः",
        "prefs-custom-css": "स्वानुकूलसम्पादितं CSS",
        "prefs-custom-js": "स्वानुकूलसम्पादितं JavaScript",
        "recentchangeslinked-feed": "पृष्ठ-सम्बन्धितानि परिवर्तनानि",
        "recentchangeslinked-toolbox": "पृष्ठसम्बद्धानि परिवर्तनानि",
        "recentchangeslinked-title": "\"$1\" इत्यस्मिन् जातानि परिवर्तनानि",
-       "recentchangeslinked-summary": "विशेषपृष्ठेषु वर्गान्तर्गतपृष्ठेषु वा सद्यो जातानां परिवर्तनानाम् एषा आवलिः ।\n\n[[Special:Watchlist|भवतः/भवत्याः अवेक्षणावल्यां]] विद्यमानानि पृष्ठानि अत्र '''स्थूलाक्षरैः''' दर्शितानि।",
+       "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]] à¤µà¤¿à¤¦à¥\8dयमानानि à¤ªà¥\83षà¥\8dठानि à¤\85तà¥\8dर '''सà¥\8dथà¥\82लाà¤\95à¥\8dषरà¥\88à¤\83''' à¤¦à¤°à¥\8dशितानि।",
        "recentchangeslinked-page": "पृष्ठनाम:",
        "recentchangeslinked-to": "अस्मिन् स्थाने अस्य पृष्ठस्य सम्बद्धानां पृष्ठानां परिवर्तनानि दर्श्यन्ताम्",
        "upload": "सञ्चिका आरोप्यताम्",
        "tooltip-ca-delete": "इदं पृष्ठम् अपाक्रियताम्",
        "tooltip-ca-undelete": "अस्य पुटस्य अपमर्जनात् पूर्वम् अस्य सम्पादनानि पुनस्थापयतु ।",
        "tooltip-ca-move": "अस्य पृष्ठस्य शीर्षकं परिवर्त्यताम्",
-       "tooltip-ca-watch": "इदं पृष्ठं भवतः/भवत्याः अवेक्षणावल्यां योज्यताम्",
+       "tooltip-ca-watch": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 à¤¯à¥\8bà¤\9cà¥\8dयतामà¥\8d",
        "tooltip-ca-unwatch": "भवतः/भवत्याः अवेक्षणसूच्याः इदं पृष्ठं निष्कास्यताम्",
        "tooltip-search": "{{SITENAME}} अन्विष्यताम्",
        "tooltip-search-go": "समानशिरोनामयुक्तं पृष्ठं विद्यते चेत् तत्र गम्यताम्",
        "tooltip-preview": "भवता/भवत्या कृतानां परिवर्तनानां प्राग्दृश्यं दृश्यताम्, रक्षणात्पूर्वं कृपया इदम् उपयुज्यताम्।",
        "tooltip-diff": "भवता/भवत्या कृतानि परिवर्तनानि अत्र द्रष्टुं शक्यते",
        "tooltip-compareselectedversions": "पृष्ठस्य द्वयोः चितयोः आवृत्त्योः भेदः दृश्यताम्",
-       "tooltip-watch": "इदं पृष्ठं भवतः/भवत्याः अवेक्षणावल्यां योज्यताम्",
+       "tooltip-watch": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 à¤¯à¥\8bà¤\9cà¥\8dयतामà¥\8d",
        "tooltip-watchlistedit-normal-submit": "शीर्षकानि अपनयतु ।",
        "tooltip-watchlistedit-raw-submit": "अवलोकनावलीं समुद्धरतु ।",
        "tooltip-recreate": "एतत्पुटं पूर्वमेव अपमर्जितः अतः पुन सृजतु ।",
        "pageinfo-header-restrictions": "पृष्ठसंरक्षणम्",
        "pageinfo-header-properties": "पृष्ठस्य गुणधर्मः",
        "pageinfo-display-title": "शीर्षकं दर्श्यताम्",
-       "pageinfo-default-sort": "सà¤\82विभाà¤\97à¤\95à¥\80लà¤\95à¤\82 à¤ªà¥\82रà¥\8dवनिरà¥\8dदिषà¥\8dà¤\9fà¤\82 क्रियताम्",
+       "pageinfo-default-sort": "सà¤\82विभाà¤\97à¤\95à¥\80लà¤\95à¤\82 à¤¯à¤¦à¤­à¤¾à¤µà¥\87 क्रियताम्",
        "pageinfo-length": "पृष्ठदैर्घ्यम् (बैट्स्द्वारा)",
        "pageinfo-article-id": "पृष्ठाभिज्ञापकम्",
        "pageinfo-language": "पृष्ठसामग्र्याः भाषा",
        "metadata-help": "अनेन सह विस्तृतसूचना सल्लग्ना अस्ति, प्रतिबिम्बग्राहकेन (scanner) अङ्कीयछायाचित्रग्राहकेन (digital camera ) वा अस्याः सञ्चिकायाः रचना जाता स्यात् । \n\nएषा सञ्चिका यदि मूलावस्थात् परिवर्त्यते, तर्हि अत्रस्थानि कानिचित् विवरणानि परिवर्तितसञ्चिकायां पूर्णतया न दृश्यन्ते ।",
        "metadata-expand": "विस्तारितानि विवरणानि दर्शयतु",
        "metadata-collapse": "विस्तारितानि विवरणानि लोपयतु",
-       "metadata-fields": "पà¥\8dरदतà¥\8dताà¤\82शसà¥\8dय (metadata) à¤¸à¥\8dवरà¥\82पà¤\82 à¤¯à¤¦à¤¾ à¤²à¤\98à¥\81 à¤­à¤µà¤¿à¤·à¥\8dयति, à¤¤à¤¦à¤¾ à¤\8fतसà¥\8dमिनà¥\8d à¤¸à¤¨à¥\8dदà¥\87शà¥\87 à¤\86वलिà¤\95à¥\83तसà¥\8dय EXIA à¤ªà¥\8dरदतà¥\8dताà¤\82शसà¥\8dय (metadata) à¤¸à¥\82à¤\9aनाà¤\83 à¤\9aितà¥\8dरपà¥\8dरदरà¥\8dशनà¥\87न à¤¸à¤¹ à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dयनà¥\8dतà¥\87 à¥¤\nपà¥\82रà¥\8dवनिरà¥\8dदिषà¥\8dà¤\9fरà¥\82पà¥\87ण (default) अन्याः सूचनाः निगूढाः भविष्यन्ति । \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": "पà¥\8dरदतà¥\8dताà¤\82शसà¥\8dय (metadata) à¤¸à¥\8dवरà¥\82पà¤\82 à¤¯à¤¦à¤¾ à¤²à¤\98à¥\81 à¤­à¤µà¤¿à¤·à¥\8dयति, à¤¤à¤¦à¤¾ à¤\8fतसà¥\8dमिनà¥\8d à¤¸à¤¨à¥\8dदà¥\87शà¥\87 à¤\86वलिà¤\95à¥\83तसà¥\8dय EXIA à¤ªà¥\8dरदतà¥\8dताà¤\82शसà¥\8dय (metadata) à¤¸à¥\82à¤\9aनाà¤\83 à¤\9aितà¥\8dरपà¥\8dरदरà¥\8dशनà¥\87न à¤¸à¤¹ à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dयनà¥\8dतà¥\87 à¥¤\nयदभावà¥\87 अन्याः सूचनाः निगूढाः भविष्यन्ति । \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-bitspersample": "प्रत्येकं भागस्य अंशः ।",
        "tags": "तर्कसिद्धानि परिवर्तनाङ्कनानि",
        "tag-filter": "[[Special:Tags|Tag]] शोधनी:",
        "tag-filter-submit": "शोधनी",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|अङ्कनम्|अङ्कनानि}}]]: $2)",
        "tags-title": "अङ्कनानि",
        "tags-intro": "एतत्पुटं सार्थसूत्राणि दर्शयति यस्य कोऽपि तन्त्रांशः यत्किमपि सम्पादनम् अङ्कयितुं प्रयोजयति ।",
        "tags-tag": "अङ्कननाम",
index 4eb5167..ee65cc4 100644 (file)
        "import-interwiki-sourcewiki": "Wiki de orìgine:",
        "import-interwiki-sourcepage": "Pàgina de orìgine:",
        "import-interwiki-submit": "Importa",
-       "import-interwiki-namespace": "Nùmene-logu de destinatzione:",
        "import-upload-filename": "Nùmene file:",
        "import-comment": "Cummentu:",
        "importstart": "Importande is pàginas...",
        "expand_templates_preview": "Antiprima",
        "pagelang-name": "Pàgina",
        "pagelang-language": "Limba",
-       "pagelang-select-lang": "Sèbera limba"
+       "pagelang-select-lang": "Sèbera limba",
+       "special-characters-group-latin": "Latinu",
+       "special-characters-group-latinextended": "Latinu disterradu",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Sìmbulos",
+       "special-characters-group-greek": "Grecu",
+       "special-characters-group-cyrillic": "Cirìllicu",
+       "special-characters-group-arabic": "Aràbicu",
+       "special-characters-group-persian": "Persianu",
+       "special-characters-group-hebrew": "Ebreu",
+       "special-characters-group-bangla": "Bengalesu",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Singalesu",
+       "special-characters-group-gujarati": "Gujarati",
+       "special-characters-group-thai": "Thai",
+       "special-characters-group-lao": "Lao",
+       "special-characters-group-khmer": "Khmer"
 }
index 4a7696d..fb8c1d3 100644 (file)
        "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_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\".",
        "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.",
+       "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 cunteni nu culligamentu interwiki",
+       "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 $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",
        "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.",
        "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ì",
        "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:",
        "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",
        "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",
        "unusedimages": "File nun usati",
        "wantedcategories": "Catigurìi addumannati",
        "wantedpages": "Pàggini addumannati",
+       "wantedpages-summary": "Elencu dî pàggini chi' 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 chi nun esìstunu però hannu rimanni versu d'iddi, talìa [[{{#special:BrokenRedirects}}]].",
        "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]].",
        "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)",
        "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",
        "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)",
        "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à.",
        "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.",
        "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",
        "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",
        "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",
        "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]]",
+       "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-legend": "Agghiunci o leva etichetti di {{PLURAL:$1|sta virsioni|tutti li $1 virsioni}}",
+       "tags-edit-existing-tags": "Etichetti esistenti:",
+       "tags-edit-new-tags": "Etichetti novi:",
+       "tags-edit-add": "Agghiunci st'etichetti:",
+       "tags-edit-remove": "Leva st'etichetti:",
+       "tags-edit-chosen-placeholder": "Scegghî quarchi etichetta",
+       "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.",
        "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-delete": "$1 {{GENDER:$2|cancillàu}} l'etichetta \"$4\" (livata di $5 {{PLURAL:$5|virsioni o vuci di riggistru}})",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|disattivàu}} l'etichetta \"$4\" pi' l'usu di l'utenti e dî bot",
+       "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-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-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)",
        "rightsnone": "(nuddu)",
        "revdelete-summary": "riassuntu dô canciamentu",
        "feedback-adding": "Agghiuncimentu dû cummentu â pàggina...",
        "feedback-subject": "Oggettu:",
        "feedback-submit": "Manna",
        "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": "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 chi' 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], 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 istallazzioni 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 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 chi' pi' com'ora è istallata|tutti li peddi chi' pi' com'ora sunnu istallati}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si' hai mudificatu <code>LocalSettings.php</code> ora ora:\n: Cuntrolla chi' 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:* 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-row-enabled": "* <code>$1</code> / $2 (attivata)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disattivata''')",
        "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 23a59ac..6dfc6f8 100644 (file)
        "import-interwiki-history": "Kopiraj sve verzije historije za ovu stranicu",
        "import-interwiki-templates": "Uključi sve šablone",
        "import-interwiki-submit": "Uvezi - Увези",
-       "import-interwiki-namespace": "Odredišni imenski prostor:",
-       "import-interwiki-rootpage": "Odredišna osnovna stranica (neobavezno):",
        "import-upload-filename": "Naziv datoteke:",
        "import-comment": "Komentar:",
        "importtext": "Molimo Vas da izvezete datoteku iz izvornog wikija koristeći [[Special:Export|alat za izvoz]].\nSnimite je na Vašem računaru i pošaljite ovdje.",
index 646c332..ac5dfa4 100644 (file)
@@ -46,6 +46,7 @@
        "tog-watchdefault": "මම සංස්කරණය කරන පිටු හා ගොනු මාගේ මුර ලැයිස්තුවට එක් කරන්න",
        "tog-watchmoves": "මම ගෙනයන පිටු හා ගොනු මාගේ මුර ලැයිස්තුවට එක් කරන්න",
        "tog-watchdeletion": "මම මකා දමන පිටු සහ ගොනු මාගේ මුර ලැයිස්තුවට එක් කරන්න",
+       "tog-watchrollback": "මම මගේ මුර-ලැයිස්තුවෙහි කිරීමට වරදක්ද සිදු එහිදී පිටු එකතු කරන්න",
        "tog-minordefault": "සියළු සංස්කරණයන් පෙර-නිමියෙන් සුළු-සංස්කරණ ලෙස සලකුණු කරන්න",
        "tog-previewontop": "සංස්කරණ කොටුවට ඉදිරියෙන් පෙර-දසුන පෙන්වන්න",
        "tog-previewonfirst": "පළමු සංස්කරණයෙහිදී පෙර-දසුන පෙන්වන්න",
        "pool-timeout": "අගුල සඳහා බලාපොරොත්තුවෙන් සිටීම කල් ඉකුත්වනලදී",
        "pool-queuefull": "පොරොත්තු ලේඛනය පිරී ඇත",
        "pool-errorunknown": "හඳුනා නොගත් දෝෂය",
+       "pool-servererror": "මේ හැමදෙයක්ම ඒ ප්රති සේවා ($1) ලබාගත නොහැක.",
        "poolcounter-usage-error": "පරිශීලන දෝෂය: $1",
        "aboutsite": "{{SITENAME}} පිළිබඳ",
        "aboutpage": "Project:පිළිබඳ",
        "disclaimers": "වියාචනයන්",
        "disclaimerpage": "Project:පොදු වියාචන",
        "edithelp": "සංස්කරණ උදවු",
+       "helppage-top-gethelp": "උදව්",
        "mainpage": "මුල් පිටුව",
        "mainpage-description": "මුල් පිටුව",
        "policy-url": "Project:ප්‍රතිපත්තිය",
        "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 කේතනාංකයෙන් ඩොලර් 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": "නොහඳුනන ප්‍රතිවයිරසයක්:",
        "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)",
+       "resettokens-watchlist-token": "වෙබ් සංග්රහය (Atom/RSS) සඳහා සංකේත [[Special:Watchlist|ඔබගේ මුර-ලැයිස්තුවෙහි පිටු වෙනස්කම්]]",
+       "resettokens-done": "ටෝකන් පත් යළි පිහිටුවන්න.",
+       "resettokens-resetbutton": "තෝරාගත් ටෝකන් පත් යළි පිහිටුවන්න",
        "bold_sample": "තදකුරු පෙළ",
        "bold_tip": "තදකුරු පෙළ",
        "italic_sample": "ඇලකුරු පෙළ",
        "preview": "පෙරදසුන",
        "showpreview": "පෙරදසුන පෙන්වන්න",
        "showdiff": "වෙනස්කිරීම් පෙන්වන්න",
+       "blankarticle": "<Strong>අවවාදයයි: </strong> ඔබ නිර්මාණය කරන පිටුව හිස් වේ. ඔබ ක්ලික් නම් \"{{int:savearticle}}\" නැවතත්, පිටුව කවර හෝ අන්තර්ගතයක් නොමැතිව නිර්මාණය කරනු ඇත.",
        "anoneditwarning": "<strong>අවවාදයයි:</strong> ඔබ පරිශීලකයෙකු වශයෙන් පද්ධතියට ප්‍රවිෂ්ට වී නොමැත.\nඔබගේ අයිපී යොමුව මෙම පිටුවෙහි සංස්කරණ ඉතිහාසයෙහි වාර්තාගත වෙනු ඇත\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ඔබ විසින් සිදු කරන ඕනෑම විමසුමකදී ඉහත සියළු විස්තර අඩංගු කරන්න.",
        "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}}|මෙම පිටු ශීර්ෂය සඳහා ගවේශනය කිරීම]] හෝ, <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 (ඡේදය) සංස්කරණය කරමින් පවතියි",
        "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": "අන්තර්ගත සකැස්ම ක්‍රියා නොකරයි",
        "content-model-wikitext": "විකිපෙළ",
        "revertmerge": "ඒකාබද්ධය අහෝසි කරන්න",
        "mergelogpagetext": "එක් පිටු ඉතිහාසයක් තවකක් හා සමග ඉතා මෑතදී සිදුවූ ඒකාබද්ධ වීම් දැක්වෙන ලැයිස්තුවක් පහත වේ.",
        "history-title": "$1:  සංශෝධන ඉතිහාසය",
+       "difference-title": "\"$1\" හි සංශෝධන අතර වෙනස්කම්",
        "difference-title-multipage": "\"$1\" හා \"$2\" පිටු අතර වෙනස",
        "difference-multipage": "පිටු අතර වෙනස",
        "lineno": "$1 පේළිය:",
        "showhideselectedversions": "තෝරාගත් සංශෝධන පෙන්වන්න/සඟවන්න",
        "editundo": "අහෝසිය",
        "diff-empty": "(වෙනසක් නොමැත)",
+       "diff-multi-sameuser": "(නොපෙන්වන එම පරිශීලකයා මගින් {{PLURAL:$1|එක් අතරමැදි සංස්කරණයක්|අතරමැදි සංස්කරණ $1ක්}})",
        "diff-multi-manyusers": "(පරිශීලකයන් $2 කට වඩා වැඩි ගණනකගේ ආසන්න පුනරීක්‍ෂණ $1ක් පෙන්වා නොමැත)",
        "searchresults": "ගවේෂණ ප්‍රතිඵල",
        "searchresults-title": "\"$1\" සඳහා ගවේෂණ ප්‍රතිඵල",
        "notextmatches": "පිටු පෙළ කිසිවක් නොගැළපෙයි",
        "prevn": "පෙර {{PLURAL:$1|$1}}",
        "nextn": "ඊළඟ {{PLURAL:$1|$1}}",
+       "next-page": "ඊළඟ පිටුව",
        "prevn-title": "පූර්ව {{PLURAL:$1|ප්‍රතිඵලය|ප්‍රතිඵලයන් $1}}",
        "nextn-title": "මීලඟ {{PLURAL:$1|ප්‍රතිඵලය|ප්‍රතිඵල $1}}",
        "shown-title": "එක් පිටුවකට {{PLURAL:$1|ප්‍රතිඵලයක්|ප්‍රතිඵල $1 ක්}} බැගින් පෙන්වන්න",
        "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''' ක්}} දක්වා පහත පෙන්වා ඇත.",
+       "search-showingresults": "{{PLURAL:$4|ප්‍රතිඵල <strong>$3</strong> කින් <strong>$1</strong> ක්|ප්‍රතිඵල <strong>$3</strong> කින් <strong>$1 සිට $2</strong> දක්වා}}",
        "search-nonefound": "විමසුම හා ගැලපෙන ප්‍රතිඵල කිසිවක් නොමැත.",
        "powersearch-legend": "වැඩිමනත් ගවේෂණය",
        "powersearch-ns": "නාමඅවකාශයන්හි ගවේෂණය කරන්න:",
        "recentchanges-label-minor": "මෙය සුළු සංස්කරණයකි",
        "recentchanges-label-bot": "මෙය රොබෝවක් විසින් කරන ලද සංස්කරණයකි",
        "recentchanges-label-unpatrolled": "මෙම සංස්කරණය තවම විමර්ශනය කර නොමැත",
-       "recentchanges-legend-newpage": "$1 -  නව පිටුව",
+       "recentchanges-label-plusminus": "පිටුවේ බයිට ගණන මෙපමණකින් වෙනස් වී ඇත",
+       "recentchanges-legend-heading": "'''Legend:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|නව පිටු ලැයිස්තුව]] ද බලන්න)",
        "rcnotefrom": "'''$2''' න් පසු සිදුවී ඇති වෙනස්කම් මෙහි පහත දැක්වේ ('''$1''' ක ප්‍රමාණයක උපරිමයක් පෙන්වා ඇත).",
        "rclistfrom": "$3 $2 සිට බලපැවැත්වෙන මෑත වෙනස්වීම් පෙන්වන්න",
        "rcshowhideminor": "සුළු සංස්කරණ $1",
        "rc_categories": "ප්‍රවර්ගයන්ට සීමා කරන්න (\"|\" මගින් වෙන් කරන්න)",
        "rc_categories_any": "ඕනෑම",
        "rc-change-size": "$1",
+       "rc-change-size-new": "වෙනස් කළ පසු {{PLURAL:$1|බයිට|බයිටයන්}} $1 ක්",
        "newsectionsummary": "/* $1 */ නව ඡේදය",
        "rc-enhanced-expand": "විස්තර පෙන්වන්න",
        "rc-enhanced-hide": "විස්තර සඟවන්න",
        "license-nopreview": "(පෙර-දසුන  නැරඹිය නොහැක)",
        "upload_source_url": "(වලංගු සහ ප්‍රජාවට විවෘත URL ලිපිනයකි)",
        "upload_source_file": " (ඔබගේ පරිගණකයේ ගොනුවකි)",
+       "listfiles-delete": "මකන්න",
        "listfiles-summary": "මෙම විශේෂ පිටුවෙහි දැක්වෙන්නේ සියළු උඩුගත කල ගොනුය.",
        "listfiles_search_for": "මාධ්‍ය නාමය සඳහා ගවේෂණය කරන්න:",
+       "listfiles-userdoesnotexist": "\"$1\" පරිශීලක ගිණුම ලියාපදිංචි කර නොමැත.",
        "imgfile": "ගොනුව",
        "listfiles": "ගොනු ලැයිස්තුව",
        "listfiles_thumb": "සිඟිති-රූපය",
        "randomincategory": "ප්‍රවර්ගයේ අහඹු පිටු",
        "randomincategory-invalidcategory": "\"$1\" වලංගු ප්‍රවර්ග නාමයක් නොවේ.",
        "randomincategory-nopages": " [[:ප්‍රවර්ගය:$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": "භින්න වූ ආපසු හැරවුම්",
        "ninterwikis": "{{PLURAL:$1|අන්තර්විකි}} $1 ක්",
        "nlinks": "{{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": "අවශ්‍ය ගොනු",
        "wantedtemplates": "අවශ්‍ය සැකිලි",
        "protectedpages-indef": "අනිශ්චිත ආරක්ෂණයන් පමණයි",
        "protectedpages-cascade": "තීරු-දර්ශන ආරක්ෂණයන් පමණයි",
        "protectedpagesempty": "මෙම පරාමිතීන් හා සමග සැලකූ කල,  කිසිදු පිටුවක් දැනට ආරක්ෂිත වී නොමැත.",
+       "protectedpages-timestamp": "කාලමුද්‍රාව",
        "protectedpages-page": "පිටුව",
        "protectedpages-expiry": "ඉකුත් වන්නේ",
        "protectedpages-performer": "පරිශීලකයා සුරැකීම",
        "booksources": "මූලාශ්‍ර පොත්",
        "booksources-search-legend": "ග්‍රන්ථ මූලාශ්‍ර සඳහා ගවේෂණය කරන්න",
        "booksources-isbn": "ISBN:",
+       "booksources-search": "සොයන්න",
        "booksources-text": "පහත දැක්වෙන්නේ අළුත් හා පරණ පොත් විකුණන අනෙකුත් අඩවි වලට සබැඳි ලැයිස්තුවක් වන අතර,  ඔබ විසින් සොයන පොත් පිළිබඳ වැඩිමනත් විස්තර ඒවා‍යේ අඩංගු වීමට ඉඩ ඇත:",
        "booksources-invalid-isbn": "සපයන ලද ISBN අංකය නීතික බවක් නොපෙන්වයි; මුල් මුලාශ්‍රය වෙතින් පිටපත් කිරීමේදී සිදුවූ දෝෂ සඳහා පරික්ෂා කරන්න.",
        "specialloguserlabel": "ඉටුකරන්නා:",
        "deleting-backlinks-warning": "'''ප්‍රවේශමෙන්:''' ඔබ සූදානම් වන්නේ ඔබ පරිශීලනය කරන පිටුවට සම්බන්ධ වූ අනෙක් පිටු මකා දැමීමටයි.",
        "rollback": "සංස්කරණයන් පුනරාවර්තනය කරන්න",
        "rollbacklink": "ප්‍රතිවර්තනය",
+       "rollbacklinkcount": "{{PLURAL:$1|සංස්කරණ}} $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}}]]) විසිනි.",
        "undelete-show-file-submit": "ඔව්",
        "namespace": "නාමඅවකාශය:",
        "invert": "තෝරාගැනුම ප්‍රතිලෝම කරන්න",
+       "tooltip-invert": "තෝරාගත් නාම අවකාශය තුළ ඇති පිටුවල වෙනස්කම් සැඟවීමට මෙම කොටුව ලකුණු කරන්න (ලකුණු කර ඇත්නම් සම්බන්ධ නාම අවකාශයත්)",
        "namespace_association": "ආශ්‍රිත නාම අවකාශය",
+       "tooltip-namespace_association": "තෝරාගත් නාම අවකාශය හා සම්බන්ධ සාකච්ඡා හෝ විෂයය නාම අවකාශය ඇතුළත් කිරීමට මෙම කොටුව ලකුණු කරන්න",
        "blanknamespace": "(ප්‍රධාන)",
        "contributions": "{{GENDER:$1|පරිශීලකගේ}} දායකත්වයන්",
        "contributions-title": " $1 සඳහා පරිශීලක දායකත්වයන්",
        "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-interwiki-namespace": "ගමනාන්ත නාමඅවකාශය:",
-       "import-interwiki-rootpage": "ගමනාන්ත මූල පිටුව (අමතර)ථ",
        "import-upload-filename": "ගොනු-නාමය:",
        "import-comment": "පරිකථනය:",
        "importtext": "කරුණාකර [[Special:Export|නිර්යාත උපයුක්තය]] භාවිත කරමින් මූලාශ්‍ර විකිය මගින් ගොනුව නිර්යාත කරන්න .\nඑය ඔබේ පරිගණකයෙහි සුරක්ෂිත කොට මෙතැනට උඩුගත කරන්න.",
        "spambot_username": "මීඩියාවිකි ස්පෑම් ඉවත්කිරීම",
        "spam_reverting": " $1 හට සබැඳියන් නොමැති අවසන් අනුවාදය වෙත ප්‍රතිවර්තනය වෙමින්",
        "spam_blanking": "සියළු සංශෝධනයන්හි  $1 වෙතවූ සබැඳියන් අඩංගු විය, හිස්කරමින්",
-       "simpleantispam-label": "ප්‍රති-ස්පෑම පරීක්‍ෂාව.\nකරුණාකර මෙය පුරවන්න '''එපා'''!",
+       "simpleantispam-label": "ප්‍රති-ස්පෑම පරීක්‍ෂාව.\nකරුණාකර මෙය පුරවන්න <strong>එපා</strong>!",
        "pageinfo-title": "\"$1\" සඳහා තොරතුරු",
        "pageinfo-header-basic": "මූලික තොරතුරු",
        "pageinfo-header-edits": "සංස්කරණ",
        "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": "මෙම පිටුවෙහි උපපිටු",
        "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-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-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": "හේතුව:",
        "comparepages": "පිටු සසඳන්න",
        "compare-page1": "පිටුව 1",
        "compare-page2": "පිටුව 2",
        "htmlform-selectorother-other": "වෙනත්",
        "sqlite-has-fts": "$1 සම්පූර්ණ-පෙළ සෙවුම් සහය සමග",
        "sqlite-no-fts": "$1 සම්පූර්ණ-පෙළ සෙවුම් සහය රහිතව",
-       "logentry-delete-delete": "$1 à¶¸à¶\9aà·\8f à¶¯à¶¸à¶± à¶½à¶¯à·\93 à¶´à·\92ටà·\94 $3",
+       "logentry-delete-delete": "$1 à·\80à·\92à·\83à·\92නà·\8a $3 à¶´à·\92ටà·\94à·\80 {{GENDER:$2|මà¶\9aà·\8f à¶¯à¶¸à¶± à¶½à¶¯à·\93}}",
        "logentry-delete-restore": "$1 නැවත පිහිටුවන ලදී පිටු $3",
        "logentry-delete-event-legacy": "$1 විසින් $3 හී ලඝු සිදුවීම් වල දෘශ්‍යතාවය වෙනස් කරන ලදී",
        "logentry-delete-revision-legacy": "$1 විසින් $3 පිටුවෙහි සංශෝධනවල දෘශ්‍යතාවය වෙනස් කරන ලදී",
        "revdelete-uname-unhid": "පරිශීලක-නාමය  සඟවා නොමැත",
        "revdelete-restricted": "පරිපාලකයන් විෂයයෙහි ව්‍යවහාරිත පරිසීමාවන්",
        "revdelete-unrestricted": "පරිපාලකයන්ගේ පරිසීමාවන් ඉවත් කරන ලදි",
-       "logentry-move-move": "$1 $3 සිට $4 දක්වා පිටු ගෙන යන ලදී",
+       "logentry-move-move": "$1 විසින් $3 සිට $4 වෙත පිටුව {{GENDER:$2|ගෙන යන ලදී}}",
        "logentry-move-move-noredirect": "$1 විසින් යලියොමුවක් නොදමාම $3 පිටුව $4 වෙත ගෙනයන ලදී",
        "logentry-move-move_redir": "$1 විසින් යලියොමුවක් දමා $3 පිටුව $4 වෙත ගෙනයන ලදී",
        "logentry-move-move_redir-noredirect": "$1 විසින් යලියොමුවක් නොදමාම යලියොමුවක් හරහා $3 පිටුව $4 වෙත ගෙනයන ලදී",
        "logentry-newusers-newusers": "$1 පරිශීලක ගිණුමක් තනන ලදී",
-       "logentry-newusers-create": "$1 පරිශීලක ගිණුමක් තනන ලදී",
+       "logentry-newusers-create": "$1 පරිශීලක ගිණුම {{GENDER:$2|තනන ලදී}}",
        "logentry-newusers-create2": "$1 විසින් $3 පරිශීලක ගිණුම තනන ලදී",
        "logentry-newusers-autocreate": "$1 ගිණුම ස්වංක්‍රීයව නිර්මිතය",
+       "logentry-upload-upload": "$1 විසින් $3 {{GENDER:$2|උඩුගත කරන ලදී}}",
        "rightsnone": "(කිසිවක් නොමැත)",
        "revdelete-summary": "සංස්කරණ සාරාංශය",
        "feedback-adding": "ප්‍රතිචාරය පිටුවට එක් කරමින් ...",
        "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-audio": "ශ්‍රව්‍ය",
+       "mediastatistics-header-video": "වීඩියෝ",
+       "mediastatistics-header-multimedia": "සරු මාධ්‍ය",
+       "mediastatistics-header-office": "කාර්යාලය",
+       "mediastatistics-header-text": "පෙළමය",
+       "mediastatistics-header-executable": "ක්‍රියාත්මක කළ හැකි",
+       "mediastatistics-header-archive": "හැකිළුෑ ආකෘති",
+       "json-error-syntax": "කාරක-රීති දෝෂය",
+       "headline-anchor-title": "මෙම අංශය වෙත සබැඳිය",
        "special-characters-group-latin": "ලතින් අක්ෂර",
        "special-characters-group-latinextended": "දීර්ඝ කළ ලතින් අක්ෂර",
        "special-characters-group-ipa": "IPA(ජාත්‍යන්තර වාග්විෂයක හෝඩිය)",
index 89fd920..b5c989e 100644 (file)
        "toc": "Obsah",
        "showtoc": "zobraziť",
        "hidetoc": "skryť",
-       "collapsible-collapse": "zbaliť",
-       "collapsible-expand": "rozbaliť",
+       "collapsible-collapse": "skry",
+       "collapsible-expand": "rozbaľ",
        "confirmable-confirm": "Ste si {{GENDER:$1|istý|istá|istí}}?",
        "confirmable-yes": "Áno",
        "confirmable-no": "Nie",
index c8e3716..84ecf13 100644 (file)
@@ -9,7 +9,8 @@
                        "Vadgt",
                        "Yerpo",
                        "아라",
-                       "MaGa"
+                       "MaGa",
+                       "Skalcaa"
                ]
        },
        "tog-underline": "Podčrtavanje povezav:",
        "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": "Naslov vsebuje povezavo interwiki",
+       "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 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.",
        "import-interwiki-history": "Kopiraj vse dosedanje redakcije te strani",
        "import-interwiki-templates": "Vključi vse predloge",
        "import-interwiki-submit": "Uvozi",
-       "import-mapping-default": "Uvozi na privzeta nahajališča",
+       "import-mapping-default": "Uvoz na privzete lokacije",
        "import-mapping-namespace": "Uvozi v imenski prostor:",
        "import-mapping-subpage": "Uvozi kot podstrani naslednje strani:",
        "import-upload-filename": "Ime datoteke:",
        "tags-deactivate-submit": "Dezaktiviraj",
        "tags-apply-no-permission": "Nimate dovoljenja za uveljavljanje sprememb oznak skupaj z vašimi spremembami.",
        "tags-apply-not-allowed-one": "Oznake »$1« ni mogoče uveljaviti ročno.",
-       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Naslednje oznake|Naslednji oznaki|Naslednjih oznak}} ni mogoče uveljaviti ročno: $1",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Naslednje oznake|Naslednji oznaki|Naslednjih oznak}} ni mogoče ročno uveljaviti: $1",
        "tags-update-no-permission": "Nimate dovoljenja za dodajanje ali odstranjevanje oznak na posameznih redakcijah ali dnevniških vnosih.",
        "tags-update-add-not-allowed-one": "Oznake »$1« ni mogoče dodati ročno.",
        "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Naslednje oznake|Naslednji oznaki|Naslednjih oznak}} ni mogoče dodati ročno: $1",
        "tags-edit-manage-link": "Upravljanje oznak",
        "tags-edit-revision-selected": "{{PLURAL:$1|Izbrana redakcija|Izbrani redakciji|Izbrane redakcije}} [[:$2]]:",
        "tags-edit-logentry-selected": "{{PLURAL:$1|Izbran dnevniški vnos|Izbrana dnevniška vnosa|Izbrani dnevniški vnosi}}:",
-       "tags-edit-revision-legend": "Dodaj ali odstrani oznake od {{PLURAL:$1|redakcije|obeh $1 redakcij|vseh $1 redakcij}}",
-       "tags-edit-logentry-legend": "Dodaj ali odstrani oznake od {{PLURAL:$1|dnevniškega vnosa|obeh $1 dnevniških vnosov|vseh $1 dnevniških vnosov}}",
+       "tags-edit-revision-legend": "Dodaj ali odstrani oznake {{PLURAL:$1|redakcije|obeh $1 redakcij|vseh $1 redakcij}}",
+       "tags-edit-logentry-legend": "Dodaj ali odstrani oznake {{PLURAL:$1|dnevniškega vnosa|obeh $1 dnevniških vnosov|vseh $1 dnevniških vnosov}}",
        "tags-edit-existing-tags": "Obstoječe oznake:",
        "tags-edit-existing-tags-none": "''Nobena''",
        "tags-edit-new-tags": "Nove oznake:",
        "feedback-error1": "Napaka: Neznan rezultat iz API",
        "feedback-error2": "Napaka: Urejanje je spodletelo",
        "feedback-error3": "Napaka: Ni odgovora od API",
-       "feedback-error4": "Napaka: Ne morem objaviti navedenega naslova povratnih informacij",
+       "feedback-error4": "Napaka: Ni mogoče narediti objave na navedeni naslov povratnih informacij",
        "feedback-message": "Sporočilo:",
        "feedback-subject": "Zadeva:",
        "feedback-submit": "Pošlji",
        "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|koži, navedeni|kože, navedene}} 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|nameščeni koži|nameščene kože}}:\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": "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-row-enabled": "* <code>$1</code> / $2 (omogočeno)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''onemogočeno''')",
index dee7937..40f2b12 100644 (file)
        "nov": "Nof",
        "dec": "Dis",
        "pagecategories": "{{PLURAL:$1|Qeybta|Qeybaha}}",
-       "category_header": "Maqaalada ku jirta qeybta \"$1\"",
+       "category_header": "Bogagga ku jira qeybta \"$1\"",
        "subcategories": "Qeybaha hoose",
        "category-media-header": "Wararka ku jiro qeybta\"$1\"",
        "category-empty": "''Qeybtaan hadda wax maqaal ah kuma jirto''",
        "semiprotectedpagewarning": "'''Fiiro gaar ah:''' Boggaan waa la difaacay si ee isticmaalada isdiiwaan geliyay kaliya wax uuga badalaan.\nFariinta gudagalihii ugu danbeeyay hoostaan ee ku qorontahay:",
        "cascadeprotectedwarning": "'''Digniin:''' Boggaan waa la difaacay si ee maamulada kaliya wax uuga badalaan, sababtoo ah waxaa ku jirto kaskadyadaan la difaacay oo soo sosocoto {{PLURAL:$1|bog|boggaga}}:",
        "templatesused": "{{PLURAL:$1|Tusmo|Tusmooyinka}} lagu isticmaalay boggaan:",
+       "templatesusedpreview": "{{PLURAL:$1|Tusmo|Tusmooyin}} loo adeegsaday horfiirintaan:",
        "template-protected": "(la difaacay)",
        "template-semiprotected": "(difaaca-fudud)",
        "hiddencategories": "Boggaan wuxuu ka mid yahay {{PLURAL:$1|1 qeyb oo qarsoon|$1 oo ah qeybaha qarsoon}}:",
        "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-cputime": "Waqtiga adeegsiga CPU",
-       "limitreport-walltime": "Waqtiga dhabta ah adeegsiga"
+       "limitreport-walltime": "Waqtiga dhabta ah adeegsiga",
+       "limitreport-ppvisitednodes": "Tirooyinka gutinada ee maskaxda",
+       "limitreport-ppgeneratednodes": "Gutinada ay horay u soo booqatay maskaxda"
 }
index fc870a2..33372e1 100644 (file)
        "import-interwiki-history": "Kopjo të gjitha versionet e historisë për këtë faqe",
        "import-interwiki-templates": "Përfshini të gjitha stampat",
        "import-interwiki-submit": "Importo",
-       "import-interwiki-namespace": "Hapësira e destinuar:",
        "import-upload-filename": "Emri i skedës:",
        "import-comment": "Arsyeja:",
        "importtext": "Ju lutem eksportoni këtë skedë nga burimi wiki duke përdorur  [[Special:Export|export utility]].! XAU Save atë në kompjuterin tuaj dhe ngarkoni këtu.",
index 0f4a682..9204835 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": "Грешка при пријављивању",
        "watchlistedit-raw-done": "Ваш списак надгледања је ажуриран.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1=Додат је један наслов|Додата су $1 наслова|Додато је $1 наслова}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 наслов је уклоњен|Уклоњена су $1 наслова|Уклоњено је $1 наслова}}:",
-       "watchlistedit-clear-title": "СпиÑ\81ак Ð½Ð°Ð´Ð³Ð»ÐµÐ´Ð°Ñ\9aа Ð¸Ñ\81пÑ\80ажÑ\9aен",
+       "watchlistedit-clear-title": "Ð\9fÑ\80ажÑ\9aеÑ\9aе Ñ\81пиÑ\81ак Ð½Ð°Ð´Ð³Ð»ÐµÐ´Ð°Ñ\9aа",
        "watchlistedit-clear-legend": "Испразни списак надгледања",
        "watchlistedit-clear-explain": "Сви наслови ће бити уклоњени из вашег списка надгледања.",
        "watchlistedit-clear-titles": "Наслови:",
        "tags-deactivate-reason": "Разлог:",
        "tags-deactivate-not-allowed": "Није могуће деактивирати ознаку „$1“.",
        "tags-deactivate-submit": "Декативирај",
+       "tags-edit-existing-tags": "Постојеће ознаке:",
+       "tags-edit-new-tags": "Нове ознаке:",
+       "tags-edit-reason": "Разлог:",
        "comparepages": "Упоређивање страница",
        "compare-page1": "Страница 1",
        "compare-page2": "Страница 2",
index 5d62903..5755aa6 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",
        "import-interwiki-history": "Kopiraj sve verzije istorije za ovu stranicu",
        "import-interwiki-templates": "Uključi sve šablone",
        "import-interwiki-submit": "Uvezi",
-       "import-interwiki-namespace": "Odredišni imenski prostor:",
-       "import-interwiki-rootpage": "Odredišna osnovna stranica (neobavezno):",
        "import-upload-filename": "Naziv datoteke:",
        "import-comment": "Komentar:",
        "importtext": "Izvezite datoteku s izvornog vikija koristeći [[Special:Export|izvoz]].\nSačuvajte je na računar i pošaljite ovde.",
        "watchlistedit-raw-done": "Vaš spisak nadgledanja je ažuriran.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1=Dodat je jedan naslov|Dodata su $1 naslova|Dodato je $1 naslova}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 naslov je uklonjen|Uklonjena su $1 naslova|Uklonjeno je $1 naslova}}:",
-       "watchlistedit-clear-title": "Spisak nadgledanja ispražnjen",
+       "watchlistedit-clear-title": "Pražnjenje spisak nadgledanja",
        "watchlistedit-clear-legend": "Isprazni spisak nadgledanja",
        "watchlistedit-clear-explain": "Svi naslovi će biti uklonjeni iz vašeg spiska nadgledanja.",
        "watchlistedit-clear-titles": "Naslovi:",
index 2e483ca..10024ac 100644 (file)
        "import-interwiki-history": "Importier aal Versione fon disse Siede",
        "import-interwiki-templates": "Aal Foarloagen iensluute",
        "import-interwiki-submit": "Import",
-       "import-interwiki-namespace": "Siel-Noomensruum:",
        "import-upload-filename": "Doatäinoome:",
        "import-comment": "Kommentoar:",
        "importtext": "Ju Doatäi uur ju Spezioalsiede [[Special:Export|Exportfunktion]] uut dän Wällewiki exportierje.\nDo ap dän lokoale Reekener spiekerje un deerätter hier hoochleede.",
        "import-invalid-interwiki": "Uut dän anroate Wiki is neen Import muugelk.",
        "importlogpage": "Import-Logbouk",
        "importlogpagetext": "Administrativen Import fon Sieden mäd Versionsgeskichte fon uur Wikis.",
-       "import-logentry-upload": "häd „[[$1]]“ fon ne Doatäi importierd",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|Version|Versione}}",
-       "import-logentry-interwiki": "häd „$1“ importierd (Transwiki)",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Version|Versione}} fon $2",
        "tooltip-pt-userpage": "Dien Benutsersiede",
        "tooltip-pt-anonuserpage": "Benutsersiede fon ju IP-Adresse fon ju uut du Annerengen truchfierst",
index 8f229b0..0769bdd 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": "Titel innehåller en interwiki-länk",
+       "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 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.",
        "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\"",
+       "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}}]].",
        "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 taggar i valda loggposter",
        "allpages": "Alla sidor",
        "nextpage": "Nästa sida ($1)",
        "prevpage": "Föregående sida ($1)",
        "import-interwiki-history": "Kopiera hela versionshistoriken för denna sida",
        "import-interwiki-templates": "Inkludera alla mallar",
        "import-interwiki-submit": "Importera",
+       "import-mapping-default": "Importera till standardplatser",
+       "import-mapping-namespace": "Importera till en namnrymd:",
+       "import-mapping-subpage": "Importera som undersidor till följande sida:",
        "import-upload-filename": "Filnamn:",
        "import-comment": "Kommentar:",
        "importtext": "Var god exportera filen från ursprungs-wikin med hjälp av [[Special:Export|exporteringsverktyget]].\nSpara den på din dator och ladda upp den här.",
        "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",
        "pageinfo-protect-cascading-yes": "Ja",
        "pageinfo-protect-cascading-from": "Skrivskydd kaskaderar från",
        "pageinfo-category-info": "Kategoriinformation",
+       "pageinfo-category-total": "Totalt antal medlemmar",
        "pageinfo-category-pages": "Antal sidor",
        "pageinfo-category-subcats": "Antal underkategorier",
        "pageinfo-category-files": "Antal filer",
        "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 märkena 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",
        "tags-edit-nooldid-title": "Ogiltig målversion",
+       "tags-edit-nooldid-text": "Antingen har du inte valt en målversion för funktionen eller så finns inte den valda ändringen.",
        "tags-edit-none-selected": "Välj åtminstone ett märke att lägga till eller ta bort.",
        "comparepages": "Jämför sidor",
        "compare-page1": "Sida 1",
        "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",
index 878be69..57043b0 100644 (file)
@@ -15,7 +15,8 @@
                        "아라",
                        "Baba Tabita",
                        "Rich Farmbrough",
-                       "Kipala"
+                       "Kipala",
+                       "Kwisha"
                ]
        },
        "tog-underline": "Wekea mstari viungo:",
@@ -32,6 +33,7 @@
        "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",
        "pool-timeout": "Muda umeisha inasubiria kufunga",
        "pool-queuefull": "Foleni ya michakato imejaa",
        "pool-errorunknown": "Hitilafu isiyojulikana",
+       "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?",
        "filerenameerror": "Haikuweza kubadilisha jina la faili \"$1\" kwa \"$2\".",
        "filedeleteerror": "Haikuweza kufuta faili \"$1\".",
        "directorycreateerror": "Haikuweza kuanzisha saraka ya \"$1\".",
+       "directorynotreadableerror": "Kumbukumbu \"$1\" haisomeki.",
        "filenotfound": "Haikuweza kutafuta faili \"$1\".",
        "unexpected": "Jambo lisilotegemewa: \"$1\"=\"$2\".",
        "formerror": "Hitilafu: haikufaulu kuweka fomu",
        "cannotdelete-title": "Wezi futa ukurasa \"$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-interwiki": "Mada iko na kiungo cha wiki",
        "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.",
        "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",
        "editwarning-warning": "Ukitoka kwenye ukurasa huu labda utapoteza madabiliko uliyoyafanya.\nUnaweza kuondoa ilani hii ukienda kwenye sehemu ya \"{{int:prefs-editing}}\" kwenye mapendekezo yako.",
        "content-model-javascript": "HatiJava",
+       "content-json-empty-object": "Kifaa kilicho wazi",
        "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.",
        "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",
        "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",
        "email-address-validity-valid": "Anwani ya barua pepe inaonekana kuwa sawa",
        "email-address-validity-invalid": "Ingiza anwani halisi ya barua pepe",
        "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",
        "group": "Kundi:",
        "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-nominornewtalk": "Isiwe kwamba maharirio madogo kwenye kurasa za majadiliano fyatua kunijulisha kuhusu jumbe mpya",
        "right-writeapi": "Tumia API ya kuandika",
        "right-delete": "Kufuta kurasa",
        "right-browsearchive": "Kutafuta kwenye kurasa zilizofutwa",
        "right-undelete": "Kurudisha ukurasa uliofutwa",
        "right-suppressrevision": "Kuangalia na kurudisha mapitio yaliyofichwa kwa wakabidhi",
+       "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-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-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-import": "Kuleta kurasa kutoka kwa wiki zingine",
        "right-importupload": "Ingiza kurasa kutoka kwa faili lililopakiwa",
        "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-viewmyprivateinfo": "angalia habari yako binafsi",
        "action-editmyprivateinfo": "hariri habari yako binafsi",
        "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'",
        "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.",
        "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",
        "upload-http-error": "Imetokea hitilafu ya HTTP: $1",
        "backend-fail-stream": "Haikuweza kutafuta faili \"$1\".",
        "backend-fail-notexists": "faili $1 haipo",
+       "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\".",
+       "lockmanager-fail-acquirelock": "Haiwezi pata kufuli 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.",
        "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.",
+       "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",
        "unusedtemplateswlh": "viungo vingine",
        "randompage": "Ukurasa wa bahati",
        "randompage-nopages": "Hakuna kurasa katika {{PLURAL:$2|eneo la wiki lifuatalo|maeneo ya wiki yafuatayo}}: $1.",
+       "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",
        "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",
        "protectedpages-cascade": "Mpangilio wa ulindaji tu",
        "protectedpagesempty": "Hakuna kurasa zinazolindwa kwa sasa kwa vigezo hivi.",
        "protectedpages-page": "Ukurasa",
+       "protectedpages-expiry": "Itakwisha",
+       "protectedpages-performer": "Inalinda mtumiaji",
        "protectedpages-reason": "Sababu",
        "protectedpages-unknown-timestamp": "Haijulikani",
        "protectedpages-unknown-performer": "Mtumiaji asiyejulikana",
        "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",
        "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-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",
        "import-interwiki-history": "Leta pamoja na mapitio yote ya ukurasa huu",
        "import-interwiki-templates": "Leta pamoja na vigezo vyote",
        "import-interwiki-submit": "Leta",
-       "import-interwiki-namespace": "Eneo la wiki la mwishilio:",
        "import-upload-filename": "Jina la faili:",
        "import-comment": "Maelezo:",
        "importtext": "Tafadhali upeleke faili kutoka wiki lake kwa kutumia [[Special:Export|zana ya kupeleka]].\nUlihafadhie katika tarakalishi yako, halafu ulipakie hapa.",
        "duration-years": "{{PLURAL:$1|mwaka|miaka}} $1",
        "duration-centuries": "{{PLURAL:$1|karne}} $1",
        "expand_templates_ok": "Sawa",
-       "expand_templates_preview": "Hakiki"
+       "expand_templates_preview": "Hakiki",
+       "special-characters-group-latin": "Kilatini",
+       "special-characters-group-latinextended": "Kilatini kilichoongezwa",
+       "special-characters-group-ipa": "Herufi za Fonetiki za Kimataifa (IPA)",
+       "special-characters-group-symbols": "Alama",
+       "special-characters-group-greek": "Kigiriki",
+       "special-characters-group-cyrillic": "Kikyrili",
+       "special-characters-group-arabic": "Kiarabu",
+       "special-characters-group-arabicextended": "Kiarabu kilichoongezwa",
+       "special-characters-group-persian": "Kiajemi",
+       "special-characters-group-hebrew": "Kiyahudi",
+       "special-characters-group-bangla": "Kibangla",
+       "special-characters-group-telugu": "Kitelugu",
+       "special-characters-group-sinhala": "Kisinhala",
+       "special-characters-group-gujarati": "Kigujarati",
+       "special-characters-group-thai": "Kitai",
+       "special-characters-group-lao": "Kilao",
+       "special-characters-group-khmer": "Kikhmeri"
 }
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 2cf534f..fd8faa7 100644 (file)
        "disclaimers": "பொறுப்புத் துறப்புகள்",
        "disclaimerpage": "Project:பொதுவான பொறுப்புத் துறப்புகள்",
        "edithelp": "தொகுத்தலுக்கான உதவி",
+       "helppage-top-gethelp": "உதவி",
        "mainpage": "முதற் பக்கம்",
        "mainpage-description": "முதற் பக்கம்",
        "policy-url": "Project:கொள்கை",
        "nospecialpagetext": "<strong>நீங்கள் செல்லுபடியற்ற சிறப்புப் பக்கமொன்றை கோரியிருக்கிறீர்கள்.</strong>\n\nசெல்லுபடியான எல்லாச் சிறப்புப் பக்கங்களின் பட்டியல் [[Special:SpecialPages|இங்கே]] தரப்பட்டுள்ளது.",
        "error": "தவறு",
        "databaseerror": "தரவுத்தள தவறு",
+       "databaseerror-error": "பிழை: $1",
        "laggedslavemode": "எச்சரிக்கை: இப்பக்கம் அண்மையில் இற்றைப்படுத்தப்படாமல் இருக்கலாம்.",
        "readonly": "தரவுத்தளம் பூட்டப்பட்டுள்ளது",
        "enterlockreason": "பூட்டுக்கான காரணத்தைத் தருக. பூட்டு எப்பொழுது திறக்கப்படும் என்பதையும் குறிப்பிடுக.",
        "gotaccountlink": "புகுபதிகை",
        "userlogin-resetlink": "உங்கள் புகுபதிகைக் குறிப்புகளை மறந்துவிட்டீர்களா?",
        "userlogin-resetpassword-link": "உங்கள் கடவுச் சொல்லை மறந்து விட்டீர்களா?",
+       "userlogin-helplink2": "உள்நுழைவதற்கு உதவி",
        "userlogin-createanother": "மற்றொரு கணக்கு ஒன்றை உருவாக்கவும்",
        "createacct-emailrequired": "மின்னஞ்சல் முகவரி",
        "createacct-emailoptional": "மின்னஞ்சல் முகவரி (விருப்பத்தேர்வு)",
        "changeemail-none": "(எதுவுமில்லை)",
        "changeemail-password": "உங்கள் {{SITENAME}} கடவுச்சொல்:",
        "changeemail-submit": "மின்னஞ்சலை மாற்று",
+       "resettokens": "வில்லைகளை மறுஅமை",
+       "resettokens-tokens": "வில்லைகள்:",
+       "resettokens-resetbutton": "தேர்தெடுத்த வில்லைகளை மறுஅமை",
        "bold_sample": "தடித்த எழுத்துக்கள்",
        "bold_tip": "தடித்த எழுத்து",
        "italic_sample": "சாய்வெழுத்து",
        "edit-gone-missing": "இப்பக்கத்தை நிகழ்நிலைப் படுத்தமுடியவில்லை.\nஇது நீக்கப்பட்டதாக இருக்கலாம்.",
        "edit-conflict": "முரண்பாடுகளைத் தொகுக்கவும்.",
        "edit-no-change": "வாசகங்களுக்கு எந்த மாற்றமும் செய்யப்படவில்லை என்பதனால் உங்கள் தொகுப்பு புறக்கணிக்கப்பட்டது.",
+       "postedit-confirmation-created": "இந்தப் பக்கம் உருவாக்கபட்டுள்ளது",
        "postedit-confirmation-saved": "உங்களது தொகுப்பு சேமிக்கப்பட்டது.",
        "edit-already-exists": "புதிய பக்கமொன்றை உருவாக்க முடியாது.\nஇப்பக்கம் ஏற்கனவே உள்ளது.",
        "defaultmessagetext": "இயல்பிருப்பு தகவல் உரை",
        "content-model-text": "எளிய உரை",
        "content-model-javascript": "ஜாவா ஸ்கிரிப்ட்",
        "content-model-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|முடிவு|முடிவுகள்}} காட்டவும்",
        "prefs-personal": "பயனர் தரவு",
        "prefs-rc": "அண்மைய மாற்றங்கள்",
        "prefs-watchlist": "கவனிப்புப் பட்டியல்",
+       "prefs-editwatchlist": "கவனிப்புப் பட்டியலைத் தொகு",
        "prefs-watchlist-days": "கவனிப்புப் பட்டியலில் காட்டவேண்டிய நாட்கள்:",
        "prefs-watchlist-days-max": "மிக அதிகமாக $1 {{PLURAL:$1|நாள்|நாட்கள்}}",
        "prefs-watchlist-edits": "விரிவாக்கப்பட்ட கவனிப்புப் பட்டியலில் காட்டவேண்டிய தொகுப்புகளின் எண்ணிக்கை:",
        "prefs-advancedwatchlist": "மேம்பட்ட விருப்பத்தேர்வுகள்",
        "prefs-displayrc": "விருப்பத்தேர்வுகளைக் காட்டு",
        "prefs-displaywatchlist": "விருப்பத்தேர்வுகளைக் காட்டு",
+       "prefs-tokenwatchlist": "வில்லை",
        "prefs-diffs": "வித்தியாசங்கள்",
        "prefs-help-prefershttps": "இந்த விருப்பத்தேர்வு உங்களின் அடுத்த புகுபதிகையிலிருந்து செயல்பாட்டுக்கு வரும்.",
        "email-address-validity-valid": "மின்னஞ்சல் முகவரி முறையானதாகத் தோன்றுகிறது",
        "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": "மறை",
        "license-nopreview": "(முன்தோற்றம் கையிலிருப்பில் இல்லை)",
        "upload_source_url": " (நீங்கள் தெரிவு செய்த, பொதுவில் அணுக்கூடிய செல்லத்தக்க இணைய முகவரியில் உள்ள கோப்பு)",
        "upload_source_file": "(தங்களி்ன் கணினியிலிருந்து தங்களால் தேர்ந்தெடுக்கப்பட்ட கோப்பு)",
+       "listfiles-delete": "நீக்குக",
        "listfiles-summary": "இச்சிறப்புப் பக்கம் பதிவேற்றப்பட்ட கோப்புகளைப் பட்டியலிடுகிறது.",
        "listfiles_search_for": "பின்வரும் பெயருள்ள ஊடகக் கோப்பைத் தேடு:",
        "listfiles-userdoesnotexist": "பயனர் கணக்கு \"$1\" பதியப்படவில்லை",
        "protectedpages-indef": "காலவரையற்ற காப்பு (protections) மட்டும்",
        "protectedpages-cascade": "வடிவமான காப்புகள் (protections) மட்டும்",
        "protectedpagesempty": "இக்காரணிகளுடன் காக்கப்பட்டப் பக்கங்கள் கிடையாது.",
+       "protectedpages-page": "பக்கம்",
+       "protectedpages-expiry": "காலாவதியாகிறது",
+       "protectedpages-reason": "காரணம்",
+       "protectedpages-unknown-timestamp": "அறியப்படாதது",
+       "protectedpages-unknown-performer": "அறியப்படாத பயனீர்",
        "protectedtitles": "காக்கப்பட்ட தலைப்புகள்",
        "protectedtitlesempty": "இக்காரணிகளுடன் காக்கப்பட்டப் தலைப்புகள் எதுவும் கிடையாது.",
        "listusers": "பயனர் அட்டவணை",
        "listgrouprights-removegroup-self": "{{PLURAL:$2| group|groups}}  ஐ நீக்கு சொந்த கணக்கு:$1 லிருந்து.",
        "listgrouprights-addgroup-self-all": "எல்லா குழுவையும் சொந்த கணக்கில் சேர்",
        "listgrouprights-removegroup-self-all": "எல்லா குழுவையும் சொந்த கணக்கில் இருந்து  நீக்கு",
+       "trackingcategories-nodesc": "விவரணம் கிடைக்கவில்லை",
        "mailnologin": "அனுப்பும் முகவரி இல்லை",
        "mailnologintext": "நீங்கள்[[Special:UserLogin|புகுபதிகை செய்திருப்பதுடன்]]\nஏனைய பயனர்களுக்கு மின்னஞ்சல் அனுப்பக்கூடியத்தாக செல்லுபடியாகக்கூடிய மின்னஞ்சல் முகவரியொன்றும் உங்களுடைய  [[Special:Preferences|விருப்பத் தெரிவுகளில்]] கொடுபட்டிருக்கவேண்டும்.",
        "emailuser": "இப் பயனருக்கு மின்னஞ்சல் செய்",
        "allmessages-prefix": "முன்ஒட்டை வைத்து வடிகட்டு:",
        "allmessages-language": "மொழி:",
        "allmessages-filter-submit": "செல்",
+       "allmessages-filter-translate": "மொழிபெயர்",
        "thumbnail-more": "பெரிதாக்கு",
        "filemissing": "கோப்பைக் காணவில்லை",
        "thumbnail_error": "சிறு முன்தோற்றத்தை உருவாக்கப்படுவதில் தவறு: $1",
        "tooltip-pt-mycontris": "உங்கள் பங்களிப்புக்களின் பட்டியல்",
        "tooltip-pt-login": "நீங்கள் புகுபதிகை செய்ய ஊக்குவிக்கப்படுகிறீர்கள், ஆனால் இது கட்டாயமன்று.",
        "tooltip-pt-logout": "விடுபதிகை",
+       "tooltip-pt-createaccount": "நீங்கள் ஒரு பயனர் கணக்கைத் துவங்கி உள்புக வரவேற்கப்படுகிறீர்கள்; எனினும் இது கட்டாயம் அல்ல.",
        "tooltip-ca-talk": "உள்ளடக்கப் பக்கம் தொடர்பான உரையாடல் பக்கம்",
        "tooltip-ca-edit": "நீங்கள் இப்பக்கத்தைத் தொகுக்க முடியும். \"முன்தோற்றம் காட்டு\" பொத்தானைப் பயன்படுத்திய பின்னர் உங்கள் மாற்றங்களை சேமிக்கவும்.",
        "tooltip-ca-addsection": "புதிய பகுதியைத் தொடங்கு",
        "imgmultipagenext": "அடுத்தப் பக்கம் →",
        "imgmultigo": "செல்!",
        "imgmultigoto": "பக்கம் $1இற்கு செல்க",
+       "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-titles": "தலைப்புகள்:",
        "watchlisttools-view": "தொடர்பான மாற்றங்களைப் பார்",
        "watchlisttools-edit": "என்கவனிப்பு பட்டியலை பார்த்து தொகு",
        "watchlisttools-raw": "விக்கி நிரலற்றக் கவனிப்புப் பட்டியலைத் தொகு",
        "version-hook-subscribedby": "பயன்பாடு",
        "version-version": "($1)",
        "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-poweredby-credits": "இந்த் விக்கி '''[https://www.mediawiki.org/ MediaWiki]''' இதன் மூலம் வழங்கப்படுகிறது, காப்புரிமை © 2001-$1 $2.",
        "version-poweredby-others": "பிறர்",
        "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-entrypoints": "நுழைவு புள்ளி உரலிகள்",
        "version-entrypoints-header-entrypoint": "நுழைவு புள்ளி",
        "version-entrypoints-header-url": "உரலி (URL)",
+       "version-libraries-library": "நூலகம்",
+       "version-libraries-version": "பதிப்பு",
        "redirect-submit": "செல்க",
        "redirect-lookup": "கவனிக்கவும்:",
        "redirect-file": "கோப்பின் பெயர்",
        "tags-tag": "குறிச்சொல்",
        "tags-display-header": "கவனிப்புப் பட்டியலில் தெரியும் பெயர்",
        "tags-description-header": "விரிவான விளக்கம்",
+       "tags-source-header": "மூலம்",
        "tags-hitcount-header": "மாற்றங்களின் எண்ணிக்கை",
        "tags-active-yes": "ஆம்",
        "tags-active-no": "இல்லை",
        "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-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": "சில குறிச்சொற்களை தேர்ந்தெடுக",
        "comparepages": "பக்கங்களை ஒப்பிடு",
        "compare-page1": "பக்கம் 1",
        "compare-page2": "பக்கம் 2",
        "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-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-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": "இந்த விக்கிக்குக் கோப்புகளைப் பதிவேற்றுவதற்கு நீங்கள் அனுமதிக்கப்படவில்லை.",
        "duration-decades": "$1 {{PLURAL:$1|பத்தாண்டு|பத்தாண்டுகள்}}",
        "duration-centuries": "$1 {{PLURAL:$1|நூற்றாண்டு|நூற்றாண்டுகள்}}",
        "duration-millennia": "$1 {{PLURAL:$1|ஆயிரம் ஆண்டு|ஆயிரம் ஆண்டுகள்}}",
+       "limitreport-walltime": "உண்மை நேர பயண்பாடு",
        "expandtemplates": "வார்ப்புருக்களை விரிவாக்கு",
        "expand_templates_input": "உள்ளீட்டு உரை:",
        "expand_templates_output": "முடிவுகள்",
        "expand_templates_ok": "ஆம்",
        "expand_templates_remove_comments": "கருத்துரைகளை நீக்கு",
        "expand_templates_preview": "முன்தோற்றம்",
+       "pagelang-language": "மொழி",
+       "pagelang-use-default": "இயல்பு நிலை மொழி",
+       "pagelang-select-lang": "மொழியைத் தேர்ந்தெடு",
+       "right-pagelang": "பக்க மொழியை மாற்றுக",
+       "action-pagelang": "பக்க மொழியை மாற்றுக",
+       "log-name-pagelang": "மொழி பதிவை மாற்றுக",
+       "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..9a661bc 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కొన్ని మూసలు ఇమడ్చబడవు.",
index c3dff49..760949e 100644 (file)
        "import-interwiki-text": "Jak viki va jak nomi sahifaro intixob kuned, to ittiloot az on vorid şavad.\nTa'rixi nusxaho va nomhoi viroişkunandagon sabt xohand mond.\nIttilooti marbut ba vorid kardani sahifaho dar [[Special:Log/import|guzorişhoi voridot]] sabt xohad şud.",
        "import-interwiki-history": "Tamomi ta'rixi nusxahoi in sahifa intiqol doda şavad",
        "import-interwiki-submit": "Vorid şavad",
-       "import-interwiki-namespace": "Fazoi nomi maqsad:",
        "import-upload-filename": "Nomi parvanda:",
        "import-comment": "Tavzeh:",
        "importtext": "Lutfan parvandaro az viki manba' sodir kuned, az tariqi sahifa [[Special:Export|abzori sodirot]].\nPas onro ba kompjuteraton zaxira karda inço borguzorī kuned.",
        "import-invalid-interwiki": "Az vikiji muşaxxasşuda nametavon voridot kard.",
        "importlogpage": "Voridi guzorişho",
        "importlogpagetext": "Vorid kardani sahifaho bo hamrohi ta'rixcai viroişi onho az vikihoi digar.",
-       "import-logentry-upload": "[[$1]] az tariqi borguzoriji parvanda, vorid şud",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|nusxa|nusxa}}",
-       "import-logentry-interwiki": "$1 transvikişuda",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|nusxa|nusxa}} az $2",
        "tooltip-pt-userpage": "Sahifai korbariji şumo",
        "tooltip-pt-anonuserpage": "Sahifai korbari IP, ki bo on şumo viroiş mekuned",
index d4a2122..b75b945 100644 (file)
        "disclaimers": "ข้อปฏิเสธความรับผิดชอบ",
        "disclaimerpage": "Project:ข้อปฏิเสธความรับผิดชอบทั่วไป",
        "edithelp": "คำอธิบายการแก้ไข",
+       "helppage-top-gethelp": "คำอธิบาย",
        "mainpage": "หน้าหลัก",
        "mainpage-description": "หน้าหลัก",
        "policy-url": "Project:นโยบาย",
        "namespace": "เนมสเปซ:",
        "invert": "กลับการเลือก",
        "tooltip-invert": "เลือกกล่องนี้เพื่อซ่อนการเปลี่ยนแปลงไปยังหน้าในเนมเปซที่เลือก (และเนมสเปซที่เกี่ยวข้องถ้าเลือก)",
+       "tooltip-whatlinkshere-invert": "เลือกกล่องนี้เพื่อซ่อนลิงก์จากหน้าในเนมสเปซที่เลือก",
        "namespace_association": "เนมสเปซที่เกี่ยวข้อง",
        "tooltip-namespace_association": "เลือกกล่องนี้เพื่อรวมเนมสเปซพูดคุยหรือหัวข้อที่เกี่ยวข้องกับเนมสเปซที่เลือกด้วย",
        "blanknamespace": "(หลัก)",
        "pageinfo-protect-cascading-yes": "ใช่",
        "pageinfo-protect-cascading-from": "การล็อกสืบทอดจาก",
        "pageinfo-category-info": "สารสนเทศหมวดหมู่",
+       "pageinfo-category-total": "จำนวนสมาชิกรวม",
        "pageinfo-category-pages": "จำนวนหน้า",
        "pageinfo-category-subcats": "จำนวนหมวดหมู่ย่อย",
        "pageinfo-category-files": "จำนวนไฟล์",
index ce14aea..9d7ebe9 100644 (file)
        "import-interwiki-history": "Bu sahypa üçin ähli geçmiş wersiýalary göçür",
        "import-interwiki-templates": "Ähli şablonlary giriz",
        "import-interwiki-submit": "Importirle",
-       "import-interwiki-namespace": "Niýetlenilýän at giňişligi:",
        "import-upload-filename": "Faýlyň ady:",
        "import-comment": "Teswir:",
        "importtext": "Faýly düýp wikiden [[Special:Export|eksportirleme funksiýasyny]] ulanmak arkaly eksportirläň.\nKompýuteriňize ýazdyryň we şu ýere ýükläň.",
        "import-invalid-interwiki": "Görkezilen wikiden importirläp bolmaýar",
        "importlogpage": "Import gündeligi",
        "importlogpagetext": "Özgerdiş geçmişli sahypalaryň başga wikilerden administratiw importirlenmeleri",
-       "import-logentry-upload": "[[$1]] faýl ýüklemesi arkaly importirlendi",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|wersiýa|wersiýa}}",
-       "import-logentry-interwiki": "$1 transwikilendi",
        "import-logentry-interwiki-detail": "$2 sahypasyndan $1 {{PLURAL:$1|wersiýa|wersiýa}}",
        "tooltip-pt-userpage": "Ulanyjy sahypaňyz",
        "tooltip-pt-anonuserpage": "Redaktirleýän IP-ňiz üçin ulanyjy sahypasy",
        "expand_templates_remove_comments": "Teswirleri aýyr",
        "expand_templates_remove_nowiki": "Netijelerde <nowiki> teglerini bökdäň",
        "expand_templates_generate_xml": "XML ýygnama agajyny görkez",
-       "expand_templates_preview": "Deslapky syn"
+       "expand_templates_preview": "Deslapky syn",
+       "special-characters-group-latin": "Latyn",
+       "special-characters-group-latinextended": "Giňeldilen latyn",
+       "special-characters-group-ipa": "HFE (IPA)",
+       "special-characters-group-symbols": "Simwollar",
+       "special-characters-group-greek": "Grek",
+       "special-characters-group-cyrillic": "Kirillisa",
+       "special-characters-group-arabic": "Arap",
+       "special-characters-group-persian": "Parsça",
+       "special-characters-group-hebrew": "Iwrit",
+       "special-characters-group-bangla": "Bengalça",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Singal",
+       "special-characters-group-gujarati": "Güjerat",
+       "special-characters-group-thai": "Taýlandça",
+       "special-characters-group-lao": "Laosça",
+       "special-characters-group-khmer": "Khmerçe"
 }
index 649f8e9..d3d5588 100644 (file)
        "import-interwiki-history": "Kopyahin ang lahat ng mga bersyon ng kasaysayan para sa pahinang ito",
        "import-interwiki-templates": "Isama ang lahat ng mga suleras",
        "import-interwiki-submit": "Mag-angkat",
-       "import-interwiki-namespace": "Kapupuntahang espasyo ng pangalan:",
-       "import-interwiki-rootpage": "Ugat na pahina ng kapupuntahan (maaaring wala ito):",
        "import-upload-filename": "Pangalan ng talaksan:",
        "import-comment": "Komento:",
        "importtext": "Pakiluwas ang talaksan magmula sa pinagmulang wiki na ginagamit ang [[Special:Export|kasangkapang pangluwas]].  \nSagipin mo ito sa iyong kompyuter at papaitaas na ikarga ito rito.",
        "import-rootpage-nosubpage": "Ang puwang ng pangalan na \"$1\" ng ugat na pahina ay hindi nagpapahintulot ng kabahaging mga pahina.",
        "importlogpage": "Talaan ng pagaangkat",
        "importlogpagetext": "Mga administratibong pagaangkat ng mga pahinang may kasaysayan ng pagbabago mula sa ibang mga wiki.",
-       "import-logentry-upload": "inangkat ang [[$1]] sa pamamagitan ng pagkarga ng talaksan (file upload)",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|pagbabago|mga pagbabago}}",
-       "import-logentry-interwiki": "Na-i-transwiki na ang $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|pagbabago|mga pagbabago}} mula sa $2",
        "javascripttest": "Pagsubok sa JavaScript",
        "javascripttest-pagetext-noframework": "Nakalaan ang pahinang ito para sa pagpapatakbo ng mga pagsubok ng JavaScript.",
        "expand_templates_remove_comments": "Tanggalin ang mga puna (kumento)",
        "expand_templates_remove_nowiki": "Pigilin ang mga tatak na <nowiki> sa loob ng resulta",
        "expand_templates_generate_xml": "Ipakita ang puno na pambanghay ng XML",
-       "expand_templates_preview": "Paunang tingin"
+       "expand_templates_preview": "Paunang tingin",
+       "special-characters-group-latin": "Latin",
+       "special-characters-group-latinextended": "Pinalawig na Latin",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Mga sagisag",
+       "special-characters-group-greek": "Griyego",
+       "special-characters-group-cyrillic": "Siriliko",
+       "special-characters-group-arabic": "Arabe",
+       "special-characters-group-arabicextended": "Pinalawig na Arabe",
+       "special-characters-group-persian": "Persyano",
+       "special-characters-group-hebrew": "Hebreo",
+       "special-characters-group-bangla": "Bangla",
+       "special-characters-group-tamil": "Tamil",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Sinhala",
+       "special-characters-group-gujarati": "Guharati",
+       "special-characters-group-devanagari": "Devanagari",
+       "special-characters-group-thai": "Thai",
+       "special-characters-group-lao": "Lao",
+       "special-characters-group-khmer": "Khmer"
 }
index e0f722b..393e2b1 100644 (file)
        },
        "tog-underline": "Bağlantıların altını çiz:",
        "tog-hideminor": "Son değişiklikler sayfasında küçük değişiklikleri gizle",
-       "tog-hidepatrolled": "Son değişikliklerde gözden geçirilen düzenlemeleri gizle",
-       "tog-newpageshidepatrolled": "Kontrol edilmiş sayfaları yeni sayfalar listesinde gizle",
-       "tog-extendwatchlist": "İzleme listesini sadece en son değil, tüm değişiklikleri göstermek için genişlet",
-       "tog-usenewrc": "Son değişiklikler sayfasındaki ve izleme listesindeki değişiklikleri gruplandır",
+       "tog-hidepatrolled": "Son değişikliklerde devriye görmüş değişiklikleri gizle",
+       "tog-newpageshidepatrolled": "Yeni sayfalar listesinde, devriye görmüş sayfaları gizle",
+       "tog-extendwatchlist": "İzleme listesini sadece en son değil, tüm değişiklikleri göstermek üzere genişlet",
+       "tog-usenewrc": "Son değişiklikler sayfasındaki ve izleme listesindeki değişiklikleri sayfalara gruplandır",
        "tog-numberheadings": "Başlıkları otomatik numaralandır",
        "tog-showtoolbar": "Düzenleme araç çubuğunu göster",
        "tog-editondblclick": "Çift tıklayarak sayfaları düzenle",
-       "tog-editsectiononrightclick": "Bölüm başlığına sağ tıklayarak bölümleri düzenleyebilme olanağı ver",
-       "tog-watchcreations": "Açtığım sayfaları ve yüklediğim dosyaları izleme listeme ekle",
+       "tog-editsectiononrightclick": "Bölüm başlığına sağ tıklayarak bölüm düzenleyebilmeyi etkinleştir",
+       "tog-watchcreations": "Oluşturduğum sayfaları ve yüklediğim dosyaları izleme listeme ekle",
        "tog-watchdefault": "Düzenleme yaptığım sayfaları ve dosyaları izleme listeme ekle",
        "tog-watchmoves": "Taşıdığım sayfaları ve dosyaları izleme listeme ekle",
        "tog-watchdeletion": "Sildiğim sayfaları ve dosyaları izleme listeme ekle",
-       "tog-watchrollback": "Eski haline getirme kullandığım sayfaları izleme listeme ekle",
-       "tog-minordefault": "Varsayılan olarak bütün düzenlemeleri küçük olarak işaretle",
-       "tog-previewontop": "Ön izlemeyi düzenleme kutusunun üstünde göster",
+       "tog-watchrollback": "Geridönüş yaptığım sayfaları izleme listeme ekle",
+       "tog-minordefault": "Varsayılan olarak, bütün düzenlemelerimi küçük değişiklik olarak işaretle",
+       "tog-previewontop": "Ön izlemeyi, düzenleme kutusunun üstünde göster",
        "tog-previewonfirst": "İlk düzenlemede ön izlemeyi göster",
-       "tog-enotifwatchlistpages": "İzleme listemdeki bir sayfanın ya da dosyanın değiştirilmesi durumunda bana e-posta gönder",
+       "tog-enotifwatchlistpages": "İzleme listemdeki bir sayfa veya dosya değiştirilirse bana e-posta gönder",
        "tog-enotifusertalkpages": "Kullanıcı mesaj sayfamda değişiklik olduğunda bana e-posta gönder",
-       "tog-enotifminoredits": "Sayfalardaki ve dosyalardaki küçük değişikliklerde bana e-posta gönder",
-       "tog-enotifrevealaddr": "E-posta adresimi bildiri postalarımda göster.",
+       "tog-enotifminoredits": "Sayfalardaki ve dosyalardaki küçük değişikliklerde de bana e-posta gönder",
+       "tog-enotifrevealaddr": "Bildirim postalarında benim eposta adresimi açıkça göster",
        "tog-shownumberswatching": "İzleyen kullanıcı sayısını göster",
        "tog-oldsig": "Mevcut imza:",
        "tog-fancysig": "İmzaya vikimetin muamelesi yap (otomatik bir bağlantı olmadan)",
        "tog-uselivepreview": "Canlı ön izlemeyi kullan",
        "tog-forceeditsummary": "Özeti boş bıraktığımda beni uyar",
-       "tog-watchlisthideown": "İzleme listemden düzenlemelerimi gizle",
-       "tog-watchlisthidebots": "İzleme listemden bot değişikliklerini gizle",
-       "tog-watchlisthideminor": "İzleme listemden küçük değişiklikleri gizle",
-       "tog-watchlisthideliu": "İzleme listemde, kayıtlı kullanıcılar tarafından yapılan değişiklikleri gösterme",
+       "tog-watchlisthideown": "İzleme listemde benim değişkliklerimi gizle",
+       "tog-watchlisthidebots": "İzleme listemde bot değişikliklerini gizle",
+       "tog-watchlisthideminor": "İzleme listemde küçük değişiklikleri gizle",
+       "tog-watchlisthideliu": "İzleme listemde, kayıtlı kullanıcılar tarafından yapılan değişiklikleri gizle",
        "tog-watchlisthideanons": "İzleme listemde, anonim kullanıcılar tarafından yapılan değişiklikleri gizle",
-       "tog-watchlisthidepatrolled": "İzleme listesinde kontrol edilmiş değişiklikleri gizle",
-       "tog-ccmeonemails": "Diğer kullanıcılara gönderdiğim e-postaların kopyalarını bana da gönder",
-       "tog-diffonly": "Sayfa içeriğini sürüm farklarının altında gösterme",
+       "tog-watchlisthidepatrolled": "İzleme listesinde, devriye görmüş değişiklikleri gizle",
+       "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şikliği atla",
-       "tog-useeditwarning": "Kaydedilmemiş değişikliğe sahip bir değişiklik sayfasından çıkarken beni uyar",
-       "tog-prefershttps": "Oturumu açarken her zaman güvenli bağlantı kullan",
+       "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",
        "underline-never": "Asla",
        "underline-default": "Tema ya da tarayıcı varsayılanı",
        "category_header": "\"$1\" kategorisindeki sayfalar",
        "subcategories": "Alt kategoriler",
        "category-media-header": "\"$1\" kategorisindeki dosyalar",
-       "category-empty": "''Bu kategoride henüz herhangi bir sayfa ya da dosya bulunmamaktadır.''",
+       "category-empty": "<em>Bu kategoride henüz herhangi bir sayfa ya da dosya bulunmamaktadır.</em>",
        "hidden-categories": "{{PLURAL:$1|Gizli kategori|Gizli kategoriler}}",
        "hidden-category-category": "Gizli kategoriler",
-       "category-subcat-count": "{{PLURAL:$2|Bu kategori sadece aşağıdaki alt kategoriyi içermektedir.|Bu kategoride aşağıdaki {{PLURAL:$1|alt kategori|$1 alt kategorisi}} dahil $2 alt kategorisi vardır.}}",
+       "category-subcat-count": "{{PLURAL:$2|Bu kategori sadece aşağıdaki alt kategoriyi içermektedir.|Bu kategoride aşağıdaki {{PLURAL:$1|alt kategori|$1 alt kategori}} dahil $2 alt kategori vardır.}}",
        "category-subcat-count-limited": "Bu kategori aşağıdaki {{PLURAL:$1|alt kategoriye|$1 alt kategoriye}} sahiptir.",
-       "category-article-count": "{{PLURAL:$2|Bu kategori sadece aşağıdaki sayfayı içermektedir.|Toplam $2 taneden, aşağıdaki {{PLURAL:$1|sayfa|$1 sayfalar}} bu kategoridedir.}}",
-       "category-article-count-limited": "Bu kategoride {{PLURAL:$1|sayfa|$1 sayfalar}} bulunmaktadır.",
-       "category-file-count": "{{PLURAL:$2|Bu kategori sadece aşağıdaki dosyayı içerir.|Toplam $2 taneden, aşağıdaki {{PLURAL:$1|dosya|$1 dosyalar}} bu kategoridedir.}}",
-       "category-file-count-limited": "Aşağıdaki {{PLURAL:$1|dosya|$1 dosyalar}} mevcut kategoridedir.",
+       "category-article-count": "{{PLURAL:$2|Bu kategori sadece aşağıdaki sayfayı içermektedir.|Toplam $2 taneden, aşağıdaki {{PLURAL:$1|sayfa|$1 sayfa}} bu kategoridedir.}}",
+       "category-article-count-limited": "Bu kategoride {{PLURAL:$1|sayfa|$1 sayfa}} bulunmaktadır.",
+       "category-file-count": "{{PLURAL:$2|Bu kategori sadece aşağıdaki dosyayı içerir.|Toplam $2 taneden, aşağıdaki {{PLURAL:$1|dosya|$1 dosya}} bu kategoridedir.}}",
+       "category-file-count-limited": "Aşağıdaki {{PLURAL:$1|dosya|$1 dosya}} bu kategoridedir.",
        "listingcontinuesabbrev": "(devam)",
-       "index-category": "Dizinli sayfalar",
-       "noindex-category": "Dizinli olmayan sayfalar",
+       "index-category": "Dizinlenmiş sayfalar",
+       "noindex-category": "Dizinlenmemiş sayfalar",
        "broken-file-category": "Bozuk dosya bağlantıları içeren sayfalar",
        "categoryviewer-pagedlinks": "($1) ($2)",
        "about": "Hakkında",
        "article": "İçerik sayfası",
        "newwindow": "(yeni bir pencerede açılır)",
        "cancel": "İptal",
-       "moredotdotdot": "Daha...",
+       "moredotdotdot": "Daha...",
        "morenotlisted": "Bu liste tam değildir.",
        "mypage": "Sayfa",
        "mytalk": "Mesaj",
        "deletethispage": "Bu sayfayı sil",
        "undeletethispage": "Bu sayfanın silme işlemini geri al",
        "undelete_short": "$1 değişikliği geri getir",
-       "viewdeleted_short": "{{PLURAL:$1|bir silinmiş değişiklik|$1 silinmiş değişiklikleri}} görüntüle.",
+       "viewdeleted_short": "{{PLURAL:$1|bir silinmiş değişikliği|$1 silinmiş değişikliği}} görüntüle.",
        "protect": "Korumaya al",
        "protect_change": "değiştir",
-       "protectthispage": "Sayfayı koruma altına al",
+       "protectthispage": "Bu sayfayı koruma altına al",
        "unprotect": "Korumayı değiştir",
        "unprotectthispage": "Bu sayfanın korumasını değiştir",
        "newpage": "Yeni sayfa",
        "views": "Görünümler",
        "toolbox": "Araçlar",
        "userpage": "Kullanıcı sayfasını görüntüle",
-       "projectpage": "Proje sayfasına bak",
+       "projectpage": "Proje sayfasını görüntüle",
        "imagepage": "Dosya sayfasını görüntüle",
-       "mediawikipage": "Mesaj sayfasını göster",
+       "mediawikipage": "Mesaj sayfasını görüntüle",
        "templatepage": "Şablon sayfasını görüntüle",
-       "viewhelppage": "Yardım sayfasına bak",
-       "categorypage": "Kategori sayfasını göster",
-       "viewtalkpage": "Tartışma sayfasına git",
+       "viewhelppage": "Yardım sayfasına görüntüle",
+       "categorypage": "Kategori sayfasını görüntüle",
+       "viewtalkpage": "Tartışma sayfasını görüntüle",
        "otherlanguages": "Diğer dillerde",
        "redirectedfrom": "($1 sayfasından yönlendirildi)",
        "redirectpagesub": "Yönlendirme sayfası",
        "redirectto": "Şuraya yönlendir:",
        "lastmodifiedat": "Bu sayfa son olarak $1, $2 tarihinde güncellenmiştir.",
-       "viewcount": "Bu sayfaya {{PLURAL:$1|bir|$1 }} defa erişilmiş.",
+       "viewcount": "Bu sayfaya {{PLURAL:$1|bir|$1}} defa erişilmiş.",
        "protectedpage": "Korumalı sayfa",
-       "jumpto": "Atla:",
+       "jumpto": "Şuraya atla:",
        "jumptonavigation": "kullan",
        "jumptosearch": "ara",
-       "view-pool-error": "Üzgünüz, sunucular şu anda aşırı yüklendi.\nBirçok kullanıcı bu sayfayı görüntülemeye çalışıyor.\nLütfen bu sayfaya  tekrar erişmeyi denemeden önce biraz bekleyin.\n\n$1",
-       "generic-pool-error": "Üzgünüz, sunucular şu anda aşırı yüklendi.\nBirçok kullanıcı bu sayfayı görüntülemeye çalışıyor.\nLütfen bu sayfaya  tekrar erişmeyi denemeden önce biraz bekleyin.\n\n$1",
+       "view-pool-error": "Üzgünüz, şu an sunucular aşırı yüklendi.\nÇok fazla kullanıcı bu sayfayı görüntülemeye çalışıyor.\nLütfen bu sayfaya tekrar erişmeyi denemeden önce biraz bekleyin.\n\n$1",
+       "generic-pool-error": "Üzgünüz, şu an sunucular aşırı yüklendi.\nÇok fazla kullanıcı bu sayfayı görüntülemeye çalışıyor.\nLütfen bu sayfaya  tekrar erişmeyi denemeden önce biraz bekleyin.",
        "pool-timeout": "Kilit için zaman bitimi bekleniyor",
        "pool-queuefull": "Havuz sırası dolu",
        "pool-errorunknown": "Bilinmeyen hata",
        "poolcounter-usage-error": "Kullanım hatası: $1",
        "aboutsite": "{{SITENAME}} hakkında",
        "aboutpage": "Project:Hakkında",
-       "copyright": "Aksi belirtilmedikçe içerik $1 altındadır.",
+       "copyright": "Aksi belirtilmedikçe içeriğin kullanımı $1 lisansı kapsamında uygundur.",
        "copyrightpage": "{{ns:project}}:Telif hakları",
        "currentevents": "Güncel olaylar",
        "currentevents-url": "Project:Güncel olaylar",
        "youhavenewmessagesfromusers": "{{PLURAL:$3|Başka bir kullanıcıdan|$3 kullanıcıdan}} $1 var ($2).",
        "youhavenewmessagesmanyusers": "Birçok kullanıcıdan $1 var ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|yeni mesajınız|yeni mesajlarınız}}",
-       "newmessagesdifflinkplural": "son {{PLURAL:$1|değişiklik|değişiklikler}}",
+       "newmessagesdifflinkplural": "son {{PLURAL:$1|değişiklik|değişiklik}}",
        "youhavenewmessagesmulti": "$1'de yeni mesajınız var",
-       "editsection": "düzenle",
+       "editsection": "değiştir",
        "editold": "değiştir",
        "viewsourceold": "kaynağı gör",
        "editlink": "değiştir",
        "viewsourcelink": "kaynağı gör",
        "editsectionhint": "Değiştirilen bölüm: $1",
-       "toc": "Konu başlıkları",
+       "toc": "İçindekiler",
        "showtoc": "göster",
        "hidetoc": "gizle",
        "collapsible-collapse": "Daralt",
        "viewdeleted": "$1 gör?",
        "restorelink": "{{PLURAL:$1|bir silinmiş değişikliği|$1 silinmiş değişikliği}}",
        "feedlinks": "Besleme:",
-       "feed-invalid": "Hatalı besleme tipi.",
-       "feed-unavailable": "Sendikalaşma özet akışları geçerli değil.",
+       "feed-invalid": "Hatalı abonelik beslemesi tipi.",
+       "feed-unavailable": "Birleştirme beslemeleri kullanılabilir değil.",
        "site-rss-feed": "$1 RSS Aboneliği",
        "site-atom-feed": "$1 Atom beslemesi",
-       "page-rss-feed": "\"$1\" RSS Beslemesi",
+       "page-rss-feed": "\"$1\" RSS beslemesi",
        "page-atom-feed": "\"$1\" Atom beslemesi",
        "feed-atom": "Atom",
        "feed-rss": "RSS",
        "nstab-category": "Kategori",
        "nosuchaction": "Böyle bir eylem yok",
        "nosuchactiontext": "URL tarafından tanımlanan eylem geçersiz.\nURL'yi yanlış yazmış olabilir, ya da doğru olmayan bir bağlantıyı takip etmiş olabilirsiniz.\nBu, {{SITENAME}} sitesindeki bir hatayı da belirtebilir.",
-       "nosuchspecialpage": "Bu isimde bir özel sayfa yok",
-       "nospecialpagetext": "Bulunmayan bir özel sayfaya girdiniz. Varolan tüm özel sayfaları [[Special:SpecialPages|özel sayfalar]] sayfasında görebilirsiniz.",
+       "nosuchspecialpage": "Böyle bir özel sayfa yok",
+       "nospecialpagetext": "<strong>Mevcut olmayan bir özel sayfayı istediniz.</strong>\n\nVarolan tüm özel sayfaları [[Special:SpecialPages|özel sayfalar]] sayfasında görebilirsiniz.",
        "error": "Hata",
        "databaseerror": "Veritabanı hatası",
-       "databaseerror-text": "Bir veritabanı sorgu hatası oluştu.\nBu yazılım bir hata gösteriyor olabilir.",
+       "databaseerror-text": "Bir veritabanı sorgu hatası oluştu.\nBu, yazılımdaki bir hatadan kaynaklanıyor olabilir.",
        "databaseerror-textcl": "Bir veritabanı sorgu hatası oluştu.",
        "databaseerror-query": "Sorgu: $1",
        "databaseerror-function": "Fonksiyon: $1",
        "databaseerror-error": "Hata: $1",
-       "laggedslavemode": "Uyarı: Sayfa son güncellemeleri içermeyebilir.",
-       "readonly": "Veritabanı kilitlendi",
+       "laggedslavemode": "<strong>Uyarı:</strong> Sayfa son güncellemeleri içermeyebilir.",
+       "readonly": "Veritabanı koruma altına alındı",
        "enterlockreason": "Koruma için bir neden belirtin. Korumanın ne zaman kaldırılacağına dair tahmini bir tarih eklemeyi unutmayın.",
-       "readonlytext": "Veritabanı olağan bakım/onarım çalışmaları sebebiyle, geçici olarak giriş ve değişiklik yapmaya kapatılmıştır. Kısa süre sonra normale dönecektir.\n\nVeritabanını kilitleyen operatörün açıklaması: $1",
+       "readonlytext": "Veritabanı, muhtemelen olağan bakım/onarım çalışmaları sebebiyle, geçici olarak giriş ve değişiklik yapmaya kapatılmıştır. Çalışmaların ardından normale dönecektir.\n\nVeritabanını kilitleyen yöneticinin açıklaması şu şekilde: $1",
        "missing-article": "Veritabanında bulunması istenen \"$1\" $2 adlı sayfaya ait metin bulunamadı.\n\nBu durum, genellikle silinmiş bir sayfanın geçmiş bir sürümüne yönlendirilmekten kaynaklanır.\n\nEğer neden bu değilse yazılımda bir hata ile karşılaşmış olabilirsiniz.\nLütfen URL'yi not ederek bunu bir [[Special:ListUsers/sysop|hizmetliye]] iletin.",
        "missingarticle-rev": "(revizyon#: $1)",
        "missingarticle-diff": "(Fark: $1, $2)",
-       "readonly_lag": "Yedek sunucular ana sunucu ile güncellenmeye çalışılırken veritabanı otomatik olarak kilitlendi.",
-       "internalerror": "Yazılım hatası",
-       "internalerror_info": "İç hata: $1",
-       "internalerror-fatal-exception": "Tip \"$1\" hayati hata",
-       "filecopyerror": "\"$1\"  \"$2\" dosyasına kopyalanamıyor.",
+       "readonly_lag": "Yedek sunucular ana sunucu ile güncellenirken veritabanı otomatik olarak kilitlendi.",
+       "internalerror": "Dahili hata",
+       "internalerror_info": "Dahili hata: $1",
+       "internalerror-fatal-exception": "\"$1\" tipinde hayati istisna",
+       "filecopyerror": "\"$1\" \"$2\" dosyasına kopyalanamıyor.",
        "filerenameerror": "\"$1\" dosyasının ismi \"$2\" olarak değiştirilemedi.",
        "filedeleteerror": "\"$1\" dosyası silinemedi.",
        "directorycreateerror": "\"$1\" dizini oluşturulamadı",
        "directorynotreadableerror": "\"$1\" dizini okunabilir değil.",
        "filenotfound": "\"$1\" dosyası bulunamadı.",
        "unexpected": "beklenmeyen değer: \"$1\"=\"$2\".",
-       "formerror": "Hata: Form gönderilemiyor",
-       "badarticleerror": "Bu işlem, bu sayfada yapılamaz.",
-       "cannotdelete": "\"$1\" sayfa ya da dosyası silinemedi.\nBaşka bir kullanıcı tarafından silinmiş olabilir.",
-       "cannotdelete-title": "\"$1\" sayfasını silemezsiniz",
-       "delete-hook-aborted": "Silme işlemi kanca tarafından durduruldu. \nHiçbir açıklama yapılmadı.",
+       "formerror": "Hata: Form gönderilemiyor.",
+       "badarticleerror": "Bu işlem bu sayfada gerçekleştirilemez.",
+       "cannotdelete": "\"$1\" sayfa ya da dosyası silinemedi.\nBaşka bir kullanıcı tarafından zaten silinmiş olabilir.",
+       "cannotdelete-title": "\"$1\" sayfası silinemiyor",
+       "delete-hook-aborted": "Silme işlemi uzantı kancası tarafından durduruldu. \nBir açıklama sunulmadı.",
        "no-null-revision": "\"$1\" sayfası için yeni boş bir sürüm oluşturulamadı",
        "badtitle": "Geçersiz başlık",
        "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-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-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.",
-       "querypage-no-updates": "Şu an için güncellemeler devre dışı bırakıldı. Buradaki veri hemen yenilenmeyecektir.",
+       "querypage-no-updates": "Şu an bu sayfa için güncellemeler devre dışı bırakıldı. Buradaki veri hemen yenilenmeyecektir.",
        "viewsource": "Kaynağı gör",
        "viewsource-title": "$1 sayfasının kaynağını görüntüle",
-       "actionthrottled": "Eylem kısılmışdır",
-       "actionthrottledtext": "Anti-spam önlemleri nedeniyle, bir eylemi kısa bir zaman aralığında çok defa yapmanız kısıtlandı, ve siz sınırı aşmış bulunmaktasınız.\nLütfen birkaç dakika sonra yeniden deneyin.",
+       "actionthrottled": "Eylem kısılmıştır",
+       "actionthrottledtext": "Spam'e karşı alınan önlemler dahilinde belirli bir süre aralığında bu eylemin gerçekleştirilmesine izin verilen miktarı aştınız.\nLütfen birkaç dakika sonra yeniden deneyin.",
        "protectedpagetext": "Bu sayfa değişiklik ya da diğer eylemlerin yapılmasını engellemek için koruma altına alınmıştır.",
        "viewsourcetext": "Bu sayfanın kaynağını görebilir ve kopyalayabilirsiniz:",
-       "viewyourtext": "Bu sayfaya '''yaptığınız değişikliklerin''' kaynağını görünteleyip kopyalayabilirsiniz:",
-       "protectedinterface": "Bu sayfa yazılım için arayüz metni sağlamaktadır ve kötüye kullanımı önlemek için korumaya alınmıştır. Eklemek ya da bütün vikilerdeki çevirileri değiştirmek için lütfen MediaWiki yerelleştirme projesi [//translatewiki.net/ translatewiki.net]'i kullanın.",
+       "viewyourtext": "Bu sayfada <strong>yaptığınız değişikliklerin</strong> kaynağını görünteleyip kopyalayabilirsiniz:",
+       "protectedinterface": "Bu sayfa yazılım için arayüz metni sağlamaktadır ve kötüye kullanımı önlemek için korumaya alınmıştır.\nBütün vikilere dair çeviri eklemek veya bunları değiştirmek için lütfen MediaWiki yerelleştirme projesi [//translatewiki.net/ translatewiki.net]'i kullanın.",
        "editinginterface": "<strong>Uyarı:</strong> Yazılım için arayüz metni sağlayan bir sayfayı değiştiriyorsunuz.\nBu sayfada yapılacak değişiklikler diğer kullanıcıların vikilerindeki kullanıcı arayüzlerinin görünümünü de etkileyecektir.",
        "translateinterface": "Tüm vikilerde çeviri eklemek veya çevirileri değiştirmek için lütfen MediaWiki yerelleştirme projesini [//translatewiki.net/] kullanın.",
        "cascadeprotected": "Bu sayfa değişiklik yapılması engellenmiştir, çünkü  \"kademeli\" seçeneği aktif hale getirilerek koruma altına alınan {{PLURAL:$1|sayfada|sayfada}} kullanılmaktadır:\n$2",
        "hr_tip": "Yatay çizgi (çok sık kullanmayın)",
        "summary": "Özet:",
        "subject": "Konu/başlık:",
-       "minoredit": "Küçük değişiklik",
+       "minoredit": "Bu küçük bir değişiklik",
        "watchthis": "Bu sayfayı izle",
        "savearticle": "Sayfayı kaydet",
        "preview": "Önizleme",
        "accmailtitle": "Parola gönderildi.",
        "accmailtext": "[[User talk:$1|$1]] için rastgele oluşturulan parola $2 adresine gönderildi.\n\nBu yeni hesap için parola, giriş yapıldıktan sonra ''[[Special:ChangePassword|parolayı değiştir]]'' bölümünde değiştirilebilir.",
        "newarticle": "(Yeni)",
-       "newarticletext": "Henüz varolmayan bir sayfaya konulmuş bir bağlantıya tıkladınız.\nSayfayı oluşturmak için aşağıdaki metin kutusunu kullanın. ([$1 yardım sayfasına] bakınız).\nBuraya yanlışlıkla geldiyseniz tarayıcınızın '''geri''' tuşuna tıklayın.",
+       "newarticletext": "Henüz varolmayan bir sayfaya konulmuş bir bağlantıya tıkladınız.\nSayfayı oluşturmak için aşağıdaki metin kutusunu kullanın. ([$1 yardım sayfasına] bakınız).\nBuraya yanlışlıkla geldiyseniz tarayıcınızın  <strong>geri </strong> tuşuna tıklayın.",
        "anontalkpagetext": "----''Bu sayfa henüz bir kullanıcı hesabı oluşturmamış veya hesabını kullanmayan bir anonim kullanıcının mesaj sayfasıdır. Bu nedenle bu kişiyi belirtmek için rakamsal IP adresini kullanmak zorundayız. Bu gibi IP adresleri birçok kullanıcı tarafından paylaşılabilir. Eğer siz de bir anonim kullanıcıysanız ve size sizin ilginiz olmayan iletiler geliyorsa, lütfen diğer anonim kullanıcılarla olabilecek olan karmaşayı önlemek için [[Special:UserLogin/signup|bir hesap edinin]] veya [[Special:UserLogin|oturum açın]].''",
        "noarticletext": "Bu sayfa şu anda boştur.\nBu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları arayabilir],\nya da bu sayfayı [{{fullurl:{{FULLPAGENAME}}|action=edit}} değiştirebilirsiniz]</span>.",
-       "noarticletext-nopermission": "Bu sayfa şu anda boştur. \nBu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]] ya da <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları tarayabilirsiniz].</span>",
+       "noarticletext-nopermission": "Bu sayfa şu anda boştur. \nBu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]] ya da <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları tarayabilirsiniz]</span>, fakat sayfayı yaratma yetkiniz bulunmamaktadır.",
        "missing-revision": "\"{{FULLPAGENAME}}\" sayfasının #$1 sürümü yok.\n\nBu duruma genellikle silinmiş bir sayfaya eski tarihli bir bağlantının takip edilmesi neden olur.\n\nDaha fazla detaylı bilgi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sayfasında bulunabilir].",
        "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" kullanıcı hesabı kayıtlı değil. Bu sayfayı oluşturmak/değiştirmek istiyorsanız lütfen kontrol edin.",
        "userpage-userdoesnotexist-view": "\"$1\" kullanıcı hesabı kayıtlı değil.",
        "revision-info": "$2 tarafından oluşturulmuş $1 tarihli sürüm $7",
        "previousrevision": "← Önceki hâli",
        "nextrevision": "Sonraki hâli →",
-       "currentrevisionlink": "en güncel halini göster",
+       "currentrevisionlink": "En güncel hâli",
        "cur": "fark",
        "next": "sonraki",
        "last": "son",
        "history-feed-description": "Viki üzerindeki bu sayfanın değişiklik geçmişi.",
        "history-feed-item-nocomment": "$1, $2'de",
        "history-feed-empty": "İstediğiniz sayfa bulunmamaktadır.\nSayfa vikiden silinmiş ya da ismi değiştirilmiş olabilir.\nKonu ile alakalı diğer sayfaları bulmak için [[Special:Search|vikide arama yapmayı]] deneyin.",
+       "history-edit-tags": "Seçilen sürümlerin etiketlerini düzenle",
        "rev-deleted-comment": "(düzenleme özeti silindi)",
        "rev-deleted-user": "(kullanıcı adı silindi)",
        "rev-deleted-event": "(kayıt ayrıntıları silindi)",
        "rev-showdeleted": "göster",
        "revisiondelete": "Sürümleri sil/geri getir",
        "revdelete-nooldid-title": "Hedef sürüm geçersiz",
-       "revdelete-nooldid-text": "Bu fonksiyonu uygulamak için belirli hedef değişiklik veya değişikileriniz yok. Sunulmuş olan revizyon mevcut değil, veya mevcut revizyonu gizlemeye çalışıyorsunuz.",
+       "revdelete-nooldid-text": "Bu fonksiyonu uygulamak için bir hedef sürüm belirtilmemiş, belirtilen sürüm mevcut değil veya mevcut sürümü gizlemeye çalışıyorsunuz.",
        "revdelete-no-file": "Belirtilen dosya mevcut değil.",
        "revdelete-show-file-confirm": "\"<nowiki>$1</nowiki>\" dosyasının $2 $3 tarihli silinmiş bir revizyonunu görmek istediğinize emin misiniz?",
        "revdelete-show-file-submit": "Evet",
        "mergehistory-empty": "Hiçbir sürüm birleştirilemez.",
        "mergehistory-success": "[[:$1]] sayfasının $3 {{PLURAL:$3|revizyonu|revizyonu}} başarıyla [[:$2]] içine birleştirildi.",
        "mergehistory-fail": "Geçmiş birleştirmesi gerçekleştirlemiyor, lütfen sayfa ve zaman parametrelerini yeniden kontrol edin.",
+       "mergehistory-fail-toobig": "Limit olarak belirlenen $1 {{PLURAL:$1|sürümden|sürümden}} daha fazlasını taşımak gerekeceği için geçmiş birleştirme gerçekleştirilemiyor.",
        "mergehistory-no-source": "Kaynak sayfa $1 bulunmamaktadır.",
        "mergehistory-no-destination": "Hedef sayfa $1 bulunmamaktadır.",
        "mergehistory-invalid-source": "Kaynak sayfanın geçerli bir başlığı olmalı.",
        "showhideselectedversions": "Seçili sürümleri göster/gizle",
        "editundo": "geri al",
        "diff-empty": "(Fark yok)",
-       "diff-multi-sameuser": "(Aynı kullanıcıdan {{PLURAL:$1|bir ara revizyon|$1 ara revizyon}} gösterilmiyor)",
+       "diff-multi-sameuser": "(Aynı kullanıcının {{PLURAL:$1|aradaki bir diğer değişikliği|aradaki diğer $1 değişikliği}} gösterilmiyor)",
        "diff-multi-otherusers": "({{PLURAL:$2|Bir diğer kullanıcıdan|$2 kullanıcıdan}} {{PLURAL:$1|bir ara revizyon|$1 ara revizyon}} gösterilmiyor)",
        "diff-multi-manyusers": "($2 kullancıdan fazla {{PLURAL:$2|kullanıcı|kullanıcı}} tarafından yapılan {{PLURAL:$1|bir ara revizyon|$1 ara revizyon}} gösterilmiyor)",
        "difference-missing-revision": "Bu farkın {{PLURAL:$2|bir revizyonu|$2 revizyonu}} ($1) {{PLURAL:$2|bulunamadı|bulunamadı}}.\n\nBu genellikle, silinen bir sayfaya olan eski tarihli bir fark sayfasına bağlantılardan dolayı olur.\nAyrıntılar [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} silme günlüğünde] bulunabilir.",
        "search-interwiki-more": "(daha çok)",
        "search-relatedarticle": "ilgili",
        "searchrelated": "ilgili",
-       "searchall": "hepsi",
+       "searchall": "tümü",
        "showingresults": "$2. sonuçtan başlayarak {{PLURAL:$1|'''1''' sonuç |'''$1''' sonuç }} aşağıdadır:",
        "showingresultsinrange": "<strong>$2</strong> ile <strong>$3</strong> arasında toplam <strong>$1</strong> sonuç gösteriliyor.",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> için sonuç|<strong>$3</strong> için <strong>$1 - $2</strong> sonuçlar}}",
        "search-nonefound": "Sorguyla eşleşen bir sonuç yok.",
        "powersearch-legend": "Gelişmiş arama",
        "powersearch-ns": "Ad alanlarında ara:",
        "right-browsearchive": "Silinen sayfaları ara",
        "right-undelete": "Bir sayfanın silinmesini geri al",
        "right-suppressrevision": "Sysoplardan gizlenmiş revizyonlarını gizle ve göster",
+       "right-viewsuppressed": "Herhangi bir kullanıcıdan saklanan sürümleri göster",
        "right-suppressionlog": "Özel günlükleri gör",
        "right-block": "Diğer kullanıcıların değişiklik yapmalarını engelle",
        "right-blockemail": "Bir kullanıcının e-posta göndermesini engelle",
        "right-override-export-depth": "Sayfaları, derinlik 5'e kadar bağlantılı sayfalarla beraber, dışa aktar",
        "right-sendemail": "Diğer kullanıcılara e-posta gönder",
        "right-passwordreset": "Parola sıfırlama e-postalarını görür",
+       "right-managechangetags": "Veritabanında [[Special:Tags|etiket]] oluşturma veya silme",
+       "right-applychangetags": "Değişiklikleriyle beraber [[Special:Tags|etiketleri]] uygula",
+       "right-changetags": "Tekil sürümler ve günlük kayıtlarına rastgele [[Special:Tags|etiket]] ekleme veya çıkarma",
        "newuserlogpage": "Yeni kullanıcı kayıtları",
        "newuserlogpagetext": "En son kaydolan kullanıcı kayıtları.",
        "rightslog": "Kullanıcı hakları kayıtları",
        "action-viewmywatchlist": "izleme listeni gör",
        "action-viewmyprivateinfo": "kendi özel bilgilerinizi görmeye",
        "action-editmyprivateinfo": "kendi özel bilgilerinizi değiştirmeye",
+       "action-editcontentmodel": "bir sayfanın içerik modelini düzenle",
+       "action-managechangetags": "veritabanındaki etiketleri yarat ve sil",
+       "action-applychangetags": "değişikliklerle beraber etiketlendirmeyi de uygula",
+       "action-changetags": "tekil sürümlere veya günlük kayıtlarına etiket ekleme veya çıkarma",
        "nchanges": "$1 {{PLURAL:$1|değişiklik|değişiklik}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|son ziyaretten bu yana}}",
        "enhancedrc-history": "geçmiş",
        "recentchanges": "Son değişiklikler",
        "recentchanges-legend": "Son değişiklikler seçenekleri",
-       "recentchanges-summary": "Yapılan en son değişiklikleri bu sayfadan izleyin.",
+       "recentchanges-summary": "Vikide yapılan en son değişiklikleri bu sayfadan izleyin.",
        "recentchanges-noresult": "Belirtilen kriterlere uyan herhangi bir değişiklik bulunamadı.",
        "recentchanges-feed-description": "Bu beslemede, viki'de yapılan en son değişiklikleri takip edin.",
-       "recentchanges-label-newpage": "Bu değişiklikle [[Special:NewPages|yeni bir sayfa]] oluşturuldu",
-       "recentchanges-label-minor": "Küçük değişiklik",
-       "recentchanges-label-bot": "Bir bot tarafından yapılan değişiklik",
+       "recentchanges-label-newpage": "Bu değişiklikle yeni bir sayfa oluşturuldu",
+       "recentchanges-label-minor": "Bu küçük bir değişiklik",
+       "recentchanges-label-bot": "Bu değişiklik bir bot tarafından yapıldı",
        "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}}",
-       "rcnotefrom": "<strong>$2</strong> tarihinden itibaren yapılan değişiklikler aşağıdadır (en fazla <strong>$1</strong> tanesi gösterilmektedir).",
+       "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",
        "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",
        "uploaderror": "Yükleme hatası",
        "upload-recreate-warning": "'''Uyarı: Bu adı taşıyan bir dosya silindi veya taşındı.'''\n\nBu sayfanın silme ve taşıma günlüğü kolaylık için burada sağlanmıştır:",
        "uploadtext": "Dosya yüklemek için aşağıdaki formu kullanın.\nÖnceden yüklenmiş dosyaları görmek ya da aramak için [[Special:FileList|yüklenmiş dosyalar listesine]] bakın, (tekrar) yüklenenler [[Special:Log/upload|yükleme günlüğü]]nde, silinenler [[Special:Log/delete|silinme günlüğü]]nde tutulumaktadır.\n\nBir sayfaya dosya koymak için bağlantınızda aşağıdaki formlardan birini kullanın;\n* Dosyanın tam sürümünü kullanmak için: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.jpg]]</nowiki></code>'''\n* Sol kenarda bir kutu içinde, altında tanım olarak 'alt metin' ile, 200 piksel genişiğindeki sürümü kullanmak için: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.png|200px|thumb|left|alt metin]]</nowiki></code>'''\n* Dosyayı göstermeden, dosyaya direk bağlantı vermek için: '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dosya.ogg]]</nowiki></code>'''",
-       "upload-permitted": "İzin verilen dosya türleri: $1.",
-       "upload-preferred": "Tercih edilen dosya türleri: $1.",
-       "upload-prohibited": "Yasaklanan dosya türleri: $1.",
+       "upload-permitted": "İzin verilen dosya {{PLURAL:$2|türü|türleri}}: $1.",
+       "upload-preferred": "Tercih edilen dosya {{PLURAL:$2|türü|türleri}}: $1.",
+       "upload-prohibited": "Yasaklanan dosya {{PLURAL:$2|türü|türleri}}: $1.",
        "uploadlogpage": "Dosya yükleme kaydı",
        "uploadlogpagetext": "Aşağıda en son eklenen [[Special:NewFiles|dosyaların bir listesi]] bulunmaktadır.",
        "filename": "Dosya adı",
        "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.",
+       "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",
        "uploadjava": "Dosya, bir Java .classdosyası içeren bir ZIP dosyasıdır.\nJava dosyalarının yüklenmesine izin verilmemektedir, zira güvenlik kısıtlamalarının atlanmasına neden olabilmektedirler.",
        "unwatchedpages": "İzlenmeyen sayfalar",
        "listredirects": "Yönlendirmeleri listele",
        "listduplicatedfiles": "Kopyası bulunan dosyalar listesi",
+       "listduplicatedfiles-summary": "Bu, en son sürümü başka bir dosyanın en son sürümünün aynısı olan dosyaların listesidir. Sadece yerel dosyalar gözönüe alınmaktadır.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] dosyasının [[$3|{{PLURAL:$2|bir kopyası|$2 kopyası}}]] var.",
        "unusedtemplates": "Kullanılmayan şablonlar",
        "unusedtemplatestext": "Bu sayfa, {{ns:template}} alan adında bulunan ve diğer sayfalara eklenmemiş olan sayfaları listeler. Şablonlara olan diğer bağlantıları da kontrol etmeden silmeyiniz.",
        "unusedtemplateswlh": "diğer bağlantılar",
        "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-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.",
+       "wantedfiletext-cat-noforeign": "Aşağıdaki dosyalar kullanılıyor fakar mevcut değiller. Ek olarak, mevcut olmayan dosyaları içeren sayfalar şurada listelenmektedir:  [[:$1]]",
        "wantedfiletext-nocat": "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>.",
        "wantedfiletext-nocat-noforeign": "Aşağıdaki dosyalar kullanıyor ancak mevcut değil.",
        "wantedtemplates": "İstenen şablonlar",
        "mostlinked": "Kendisine en fazla bağlantı verilmiş sayfalar",
        "mostlinkedcategories": "En çok maddeye sahip kategoriler",
-       "mostlinkedtemplates": "En çok kullanılan şablonlar",
+       "mostlinkedtemplates": "En çok dahil edilen sayfalar",
        "mostcategories": "En fazla kategoriye bağlanmış sayfalar",
        "mostimages": "En çok bağlantı verilmiş dosyalar",
        "mostinterwikis": "En çok interwiki'ye sahip sayfalar",
        "logempty": "Kayıtlarda eşleşen bilgi yok.",
        "log-title-wildcard": "Bu metinle başlayan başlıklar ara",
        "showhideselectedlogentries": "Seçili günlük girdilerinin görünürlüğünü değiştir",
+       "log-edit-tags": "Seçili kayıtların etiketlerini düzenle",
        "allpages": "Tüm sayfalar",
        "nextpage": "Sonraki sayfa ($1)",
        "prevpage": "Önceki sayfa ($1)",
        "listgrouprights-namespaceprotection-namespace": "Ad alanı",
        "listgrouprights-namespaceprotection-restrictedto": "Kullanıcının değişiklik yapmasına izin veren hak(lar)",
        "trackingcategories": "Eşleşen kategoriler",
+       "trackingcategories-summary": "Bu sayfa MediaWiki yazılımı tarafından otomatik olarak doldurulan takip kategorilerini listelemektedir. {{ns:8}} ad alanındaki ilgili sistem mesajları değiştirilerek isimleri düzenlenebilir.",
        "trackingcategories-msg": "İzleme kategorisi",
        "trackingcategories-name": "Mesaj Duvarı",
+       "trackingcategories-desc": "Kategori dahil etme kriterleri",
+       "noindex-category-desc": "Bu sayfa robotlar tarafından dizinlenmemektedir çünkü üzerinde <code><nowiki>__NOINDEX__</nowiki></code> sihirli kodu bulunmakta ve bu işarete müsade edilen bir ad alanına dahil.",
+       "index-category-desc": "Bu sayfada <code><nowiki>__INDEX__</nowiki></code> kodu var (ve bu işarete izin verilen bir ad alanında), bu yüzden normalde yapılmayacak olsa da, robotlar tarafından dizinleniyor.",
+       "post-expand-template-inclusion-category-desc": "Sayfa, bütün şablonlar genişletildiğinde <code>$wgMaxArticleSize</code> boyutundan büyük olacağı için bazı şablonlar genişletilmedi.",
+       "post-expand-template-argument-category-desc": "Bir şablonun içerdiği bir önerme (üçlü kıvrımlı parantez içinde bulunan, örneğin <code>{{{hede}}}</code> şeklinde bir girdi) genişletildiğinde bu sayfanın büyüklüğü <code>$wgMaxArticleSize</code> büyüklüğünü geçmektedir.",
+       "expensive-parserfunction-category-desc": "Bu sayfa çok fazla zengin derleyici fonksiyonu çağrısına (örneğin <code>#ifexist</code>) sahiptir. Lütfen bakınız: [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit]",
        "broken-file-category-desc": "Sayfa bozuk dosya bağlantısı (mevcut olmayan bir dosyayı kullanmaya çalışan bağlantı) içeriyor.",
+       "hidden-category-category-desc": "Bu kategorinin sayfa içeriğinde bulunan <code><nowiki>__HIDDENCAT__</nowiki></code>, sayfalardaki kategori bağlantıları kutusunda varsayılan olarak gösterilmesini engellemektedir.",
        "trackingcategories-nodesc": "Açıklama yok.",
        "trackingcategories-disabled": "Kategori devre dışı",
        "mailnologin": "Gönderi adresi yok.",
        "emailccsubject": "$1'e gönderdiğiniz mesajın kopyası: $2",
        "emailsent": "E-posta gönderildi",
        "emailsenttext": "E-postanız gönderildi.",
-       "emailuserfooter": "Bu e-posta $1 tarafından $2 kullanıcısına, {{SITENAME}} sitesindeki \"Kullanıcıya e-posta gönder\" fonksiyonu ile gönderilmiştir.",
+       "emailuserfooter": "Bu e-posta $1 tarafından $2 kullanıcısına, {{SITENAME}} sitesindeki \"Kullanıcıya e-posta gönder\" (\"{{int:emailpage}}\") fonksiyonu ile gönderilmiştir.",
        "usermessage-summary": "Sistem mesajı bırakın.",
        "usermessage-editor": "Sistem habercisi",
        "watchlist": "İzleme listesi",
        "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",
        "undelete-show-file-confirm": "\"<nowiki>$1</nowiki>\" dosyasının $2 $3 tarihli silinmiş bir revizyonunu görmek istediğinize emin misiniz?",
        "undelete-show-file-submit": "Evet",
        "namespace": "Ad alanı:",
-       "invert": "Seçili haricindekileri göster",
-       "tooltip-invert": "Seçili ad alanındaki sayfalara olan değişiklikleri gizlemek için bu kutucuğu işaretleyin (ve ilgili ad alanı, eğer seçiliyse)",
+       "invert": "Seçimi ters çevir",
+       "tooltip-invert": "Seçili ad alanındaki (ve seçiliyse, ilişkili ad alanlarındaki) sayfalara olan değişiklikleri gizlemek için bu kutucuğu işaretleyin",
+       "tooltip-whatlinkshere-invert": "Seçili ad alanlarında bulunan sayfalardaki bağlantıları gizlemek için bu kutucuğu işaretleyin.",
        "namespace_association": "İlişkili ad alanı",
        "tooltip-namespace_association": "Seçili ad alanıyla ilgili tartışma ya da madde ad alanlarını da eklemek için bu kutucuğu işaretleyin",
        "blanknamespace": "(Ana)",
        "contributions-userdoesnotexist": "\"$1\" kullanıcı hesabı kayıtlı değil.",
        "nocontribs": "Bu kriterlere uyan değişiklik bulunamadı",
        "uctop": "(son)",
-       "month": "Ay:",
+       "month": "Bu aya kadar (ve önceki aylar):",
        "year": "Bu yıla kadar (ve önceki yıllar):",
        "sp-contributions-newbies": "Sadece yeni kullanıcıların katkılarını göster",
        "sp-contributions-newbies-sub": "Yeni kullanıcılar için",
        "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.",
        "thumbnail-temp-create": "Geçici küçük resim dosyası oluşturulamıyor",
        "thumbnail-dest-create": "Küçük resim hedefe kaydedilemiyor",
        "thumbnail_invalid_params": "Geçersiz küçük resim parametreleri",
+       "thumbnail_toobigimagearea": "$1 boyutundan büyük olan dosyalar",
        "thumbnail_dest_directory": "Hedef dizini oluşturulamıyor",
        "thumbnail_image-type": "Görüntü türü desteklenmiyor",
        "thumbnail_gd-library": "Eksik GD kütüphanesi yapılandırması: kayıp fonksiyon $1",
        "thumbnail_image-missing": "Dosya kayıp gibi görünüyor: $1",
        "thumbnail_image-failure-limit": "Yakın zamanda bu küçük resmin oluşturulması için çok fazla başarısız  girişim oldu ($1 ya da daha fazla). Lütfen daha sonra yeniden deneyin.",
        "import": "Sayfaları aktar",
-       "importinterwiki": "Vikilerarası içe aktarım",
+       "importinterwiki": "Başka bir vikiden içe aktar",
        "import-interwiki-text": "İçe aktarmak için bir viki ve sayfa başlığı seçin.\nRevizyon tarihleri ve yazarların isimleri korunacaktır.\nBütün vikilerarası içe aktarım eylemleri [[Special:Log/import|içe aktarım günlüğünde]] kaydedilmektedir.",
        "import-interwiki-sourcewiki": "Kaynak viki:",
        "import-interwiki-sourcepage": "Kaynak sayfa:",
        "import-interwiki-history": "Sayfanın tüm geçmiş sürümlerini kopyala",
        "import-interwiki-templates": "Tüm şablonları içer",
        "import-interwiki-submit": "Import",
+       "import-mapping-default": "Varsayılan konumların içine aktar",
+       "import-mapping-namespace": "Bir ad alanının içine aktar:",
+       "import-mapping-subpage": "Şu sayfanın alt sayfaları olarak içe aktar:",
        "import-upload-filename": "Dosya adı:",
        "import-comment": "Yorum:",
        "importtext": "Lütfen dosyayı [[Special:Export|dışa aktarım yardımcı yazılımıyla]] kaynak vikiden dışa aktarın.\nBilgisayarınıza kaydedin ve buraya yükleyin.",
        "importcantopen": "İçeri aktarma dosyası açılamadı",
        "importbadinterwiki": "Yanlış interwiki bağlantısı",
        "importsuccess": "Aktarma sonuçlandı!",
-       "importnosources": "Hiç vikilerarası içe aktarım kaynağı tanımlanmamış ve doğrudan geçmiş yüklemeleri devre dışı.",
+       "importnosources": "Hangi vikiden içeri aktarılacağı tanımlanmamış ve doğrudan geçmiş yüklemeleri devre dışı.",
        "importnofile": "Bir aktarım dosyası yüklenmedi.",
        "importuploaderrorsize": "İçe aktarılmış dosyanın yüklenmesi başarısız oldu.\nDosya, izin verilen yükleme boyutundan büyük.",
        "importuploaderrorpartial": "İçe aktarılmış dosyanın yüklenmesi başarısız oldu.\nDosyanın sadece bir kısmı yüklendi.",
        "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",
        "exif-imagedescription": "Resim başlığı",
        "exif-make": "Kamera markası",
        "exif-model": "Kamera modeli",
-       "exif-software": "Yazılım",
+       "exif-software": "Kullanılan yazılım",
        "exif-artist": "Yaratıcısı",
        "exif-copyright": "Telif hakkı sahibi",
        "exif-exifversion": "Exif sürümü",
        "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",
        "hijri-calendar-m10": "Şevval",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|mesaj]])",
        "duplicate-defaultsort": "'''Uyarı:''' Varsayılan \"$2\" sınıflandırma anahtarı, önceki \"$1\" sınıflandırma anahtarını geçersiz kılıyor.",
+       "duplicate-displaytitle": "<strong>Uyarı:</strong> \"$2\" şeklindeki yeni başlık \"$1\" şeklindeki eski başlığın üzerine yazılacak.",
+       "invalid-indicator-name": "<strong>Hata:</strong> Sayfa durum göstergelerinin <code>name</code> özelliği boş olamaz.",
        "version": "Sürüm",
        "version-extensions": "Yüklü ekler",
        "version-skins": "Yüklü görünümler",
        "tags-actions-header": "Eylemler",
        "tags-active-yes": "Evet",
        "tags-active-no": "Hayır",
+       "tags-source-extension": "Bir uzantı tarafından tanımlanmış",
+       "tags-source-manual": "Kullanıcı ve botlar tarafından elle uygulanır",
        "tags-source-none": "Artık kullanımda",
        "tags-edit": "değiştir",
        "tags-delete": "sil",
        "tags-create-reason": "Neden:",
        "tags-create-submit": "Oluştur",
        "tags-create-no-name": "Etik adı belirtmeniz gerekiyor",
+       "tags-create-invalid-chars": "Etiket isimleri virgül (<code>,</code>) veya ileri eğik çizgi (<code>/</code>) içeremez.",
+       "tags-create-invalid-title-chars": "Sayfa başlıklarında kullanılamayan karakterler etiketlerde kullanılamaz.",
+       "tags-create-already-exists": "\"$1\" etiketi zaten mevcut.",
+       "tags-create-warnings-above": "\"$1\" etiketini oluşturmaya çalışırken aşağıdaki {{PLURAL:$2|hatayla|hatalarla}} karşılaşıldı:",
+       "tags-create-warnings-below": "Etiketi yaratmaya devam etmek istiyor musunuz?",
        "tags-delete-title": "Etiketi Sil",
+       "tags-delete-explanation-initial": "\"$1\" etiketini veritabanından silmek üzeresiniz.",
+       "tags-delete-explanation-in-use": "Etiket haliahazırda uygulandığı {{PLURAL:$2|$2 sürüm veya günlük kaydından|$2 sürüm ve/veya günlük kaydının tümünden}} kaldırılacaktır.",
+       "tags-delete-explanation-warning": "Bu işlem veritabanı yöneticileri tarafından dahi <strong>geri alınamaz</strong> ve <strong>silinemez</strong>. Silmek istediğiniz etiketin bu olduğunda emin olun.",
+       "tags-delete-explanation-active": "<strong>\"$1\" etiketi hala aktif ve gelecekte de uygulanmaya devam edecek.</strong> Bunun olmasını önlemek için bu etiketin uygulanmak üzere ayarlandığı yer(ler)e gidin ve oradan kullanım dışı bırakın.",
        "tags-delete-reason": "Gerekçe:",
+       "tags-delete-submit": "Bu etiketi geri döndürülemez şekilde sil",
+       "tags-delete-not-allowed": "Bir uzantı tarafından tanımlanan etiketler o uzantı özellikle izin vermedikçe silinemez.",
+       "tags-delete-not-found": "\"$1\" etiketi mevcut değil.",
+       "tags-delete-too-many-uses": "\"$1\" etiketinin uygulandığı sürüm sayısı fazla ($2 sürüm); bu yüzden bu etiket silinemez.",
+       "tags-delete-warnings-after-delete": "\"$1\" etiketi başarıyla silindi; fakat aşağıdaki {{PLURAL:$2|uyarıyla|uyarılarla}} karşılaşıldı:",
        "tags-activate-title": "Aktif etiket",
+       "tags-activate-question": "\"$1\" etiketini etkinleştirmek üzeresiniz.",
        "tags-activate-reason": "Neden:",
+       "tags-activate-not-allowed": "\"$1\" etiketini etkinleştirmek mümkün değil.",
+       "tags-activate-not-found": "\"$1\" etiketi mevcut değil.",
        "tags-activate-submit": "Etkinleştir",
        "tags-deactivate-title": "Aktif olmayan etiket",
+       "tags-deactivate-question": "\"$1\" etiketini devre dışı bırakmak üzeresiniz.",
+       "tags-deactivate-reason": "Sebep:",
+       "tags-deactivate-not-allowed": "\"$1\" etiketini devre dışı bırakmak mümkün değil.",
        "tags-deactivate-submit": "Aktif değil",
+       "tags-apply-no-permission": "Değişikliklerinizle beraber etiket değişiklikleri uygulamak için yetkiniz yok.",
+       "tags-apply-not-allowed-one": "\"$1\" etiketi elle uygulanamaz.",
+       "tags-apply-not-allowed-multi": "Bu {{PLURAL:$2|etiket|etiketler}} elle uygulanamaz: $1",
+       "tags-update-no-permission": "Tekil sürüm ve kayıt girilerindeki değişiklik etiketlerini değiştirmek veya kaldırmak için yetkiniz yok.",
+       "tags-update-add-not-allowed-one": "\"$1\" etiketi elle uygulanamaz.",
+       "tags-update-add-not-allowed-multi": "Bu {{PLURAL:$2|etiket|etiketler}} elle uygulanamaz: $1",
+       "tags-update-remove-not-allowed-one": "\"$1\" etiketinin kaldırılmasına izin verilmiyor.",
+       "tags-update-remove-not-allowed-multi": "Bu {{PLURAL:$2|etiket|etiketler}} elle kaldırılamaz: $1",
        "tags-edit-title": "Etiketleri düzenle",
        "tags-edit-manage-link": "Etiketleri yönet",
+       "tags-edit-revision-selected": "[[:$2]] için seçilen {{PLURAL:$1|sürüm|sürümler}}:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Seçilen günlük kaydı|Seçilen günlük kayıtları}}:",
+       "tags-edit-revision-legend": "{{PLURAL:$1|Bu sürüme|Bu $1 sürüme}} etiket ekle veya kaldır.",
+       "tags-edit-logentry-legend": "{{PLURAL:$1|Bu günlük kaydına|Bu $1 günlük kaydına}} etiket ekle veya kaldır",
        "tags-edit-existing-tags": "Mevcut etiketler:",
        "tags-edit-existing-tags-none": "\"Hiçbiri\"",
        "tags-edit-new-tags": "Yeni etiketler:",
        "tags-edit-add": "Bu etiketleri ekleyin:",
+       "tags-edit-remove": "Bu etiketleri kaldır:",
        "tags-edit-remove-all-tags": "(tüm etiketleri kaldır)",
+       "tags-edit-chosen-placeholder": "Bazı etiketleri seç",
+       "tags-edit-chosen-no-results": "Bunlarla eşleşen etiket bulunamadı",
        "tags-edit-reason": "Neden:",
+       "tags-edit-revision-submit": "{{PLURAL:$1|Bu sürüme|$1 sürüme}} değişiklikleri uygula",
+       "tags-edit-logentry-submit": "{{PLURAL:$1|Bu günlük kaydına|Bu $1 günlük kaydına}} değişiklikleri uygula",
+       "tags-edit-success": "Değişiklikler başarıyla uygulandı.",
+       "tags-edit-failure": "Değişiklikler uygulanamadı:\n$1",
+       "tags-edit-nooldid-title": "Hedef sürüm geçersiz",
+       "tags-edit-nooldid-text": "Bu işlemi gerçekleştirmek için herhangi bir hedef sürüm belirtmediniz, ya da belirtilen sürüm mevcut değil.",
        "tags-edit-none-selected": "Eklemek ya da çıkarmak için en az bir etiketi seçin lütfen.",
        "comparepages": "Sayfaları karşılaştır",
        "compare-page1": "Sayfa 1",
        "revdelete-restricted": "hizmetliler için uygulanmış kısıtlamalar",
        "revdelete-unrestricted": "hizmetliler için kaldırılmış kısıtlamalar",
        "logentry-block-block": "$1 {{GENDER:$2|engelledi}} {{GENDER:$4|$3}} engelleme süresi: $5 $6",
+       "logentry-block-unblock": "$1 kullanıcısının {{GENDER:$2|engeli kaldırıldı}} {{GENDER:$4|$3}}",
        "logentry-block-reblock": "$1 {{GENDER:$2|changed}} block settings for {{GENDER:$4|$3}} engelleme süresi $5 $6",
+       "logentry-suppress-block": "{{GENDER:$4|$3}} $1 tarafından {{GENDER:$2|engellendi}} Zamanaşımı: $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|changed}} block settings for {{GENDER:$4|$3}} engelleme süresi $5 $6",
+       "logentry-import-upload": "$1 dosya yükleme ile {{GENDER:$2|içe aktardı}}: $3",
+       "logentry-import-interwiki": "$1 başka bir vikiden şunu {{GENDER:$2|içe aktardı}}: $3",
+       "logentry-merge-merge": "$1, $3 sayfasını $4 ile {{GENDER:$2|birleştirdi}}($5 tarihine kadar olan sürümleri)",
        "logentry-move-move": "$1, $3 sayfasını $4 sayfasına {{GENDER:$2|taşıdı}}",
        "logentry-move-move-noredirect": "$1, $3 sayfasını $4 sayfasına yönlendirme olmaksızın {{GENDER:$2|taşıdı}}",
        "logentry-move-move_redir": "$1, $3 sayfasını $4 sayfasına yönlendirme üzerinden {{GENDER:$2|taşıdı}}",
        "logentry-rights-autopromote": "$1, $4 iken $5 olarak otomatik {{GENDER:$2|terfi edildi}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|yükledi}} $3",
        "logentry-upload-overwrite": "$1 $3 dosyasının yeni bir sürümünü {{GENDER:$2|yükledi}}",
+       "logentry-upload-revert": "$1 {{GENDER:$2|yükledi}}: $3",
+       "log-name-managetags": "Etiket yönetimi günlüğü",
+       "log-description-managetags": "Bu sayfa [[Special:Tags|etiketlere]] dair idare görevlerini listelemektedir. Günlükte sadece yöneticiler tarafından elle yapılan eylemler bulunmaktadır; viki yazılımı tarafından bu günlükte kayıt altına alınmadan etiketler yaratılabilir veya silinebilir.",
+       "logentry-managetags-create": "$1, \"$4\" etiketini {{GENDER:$2|oluşturdu}}",
+       "logentry-managetags-delete": "$1 \"$4\" etiketini {{GENDER:$2|sildi}} ($5 {{PLURAL:$5|sürüm veya günlük kaydından|sürüm ve/veya günlük kaydından}} kaldırıldı)",
+       "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.",
+       "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",
+       "logentry-tag-update-remove-logentry": "$1, $3 sayfasının $5 numaralı günlük kaydından {{PLURAL:$9|etiket|etiket}} {{GENDER:$2|kaldırdı}}: $8",
+       "logentry-tag-update-revision": "$1, $3 sayfasının $4 numaralı sürümündeki etiketleri  {{GENDER:$2|güncelledi}}. Eklenen {{PLURAL:$7|etiket|etiket}}: $6; kaldırılan {{PLURAL:$9|etiket|etiket}}: $8",
+       "logentry-tag-update-logentry": "$1, $3 sayfasının $5 numaralı günlük kaydındaki etiketleri {{GENDER:$2|güncelledi}}. Eklenen {{PLURAL:$7|etiket|etiket}}: $6; kaldırılan {{PLURAL:$9|etiket|etiket}}: $8",
        "rightsnone": "(hiçbiri)",
        "revdelete-summary": "değişiklik özeti",
        "feedback-adding": "Sayfaya geribildirim ekleniyor...",
        "feedback-bugornote": "Eğer teknik bir problemi detaylarıyla açıklamaya hazırsanız lütfen [$1 bir hata raporlayın]. Diğer taraftan, aşağıdaki kolay formu kullanabilirsiniz. Yorumunuz, kullanıcı adınızla beraber \"[$3 $2]\" sayfasına eklenecektir.",
        "feedback-cancel": "İptal",
        "feedback-close": "Tamamlandı",
+       "feedback-external-bug-report-button": "Teknik hata raporu ilet",
+       "feedback-dialog-title": "Geribildirim gönder",
+       "feedback-dialog-intro": "Geribildirimde bulunmak için aşağıdaki basit formu kullanabilirsiniz. Yorumunuz kullanıcı adınızla beraber \"$1\" sayfasına eklenecektir.",
        "feedback-error-title": "Hata",
        "feedback-error1": "Hata: Bilinmeyen API sonucu",
        "feedback-error2": "Hata: Düzenleme başarısız oldu",
        "feedback-error3": "Hata: API'den yanıt yok",
+       "feedback-error4": "Hata: Belirtilen geribildirim başlığına gönderi yapılamıyor",
        "feedback-message": "Mesaj:",
        "feedback-subject": "Konu:",
        "feedback-submit": "Gönder",
+       "feedback-terms": "Geribildirimimle beraber iletilicek ve açıkça görüntülenecek bilgiler arasında, kullandığım tarayıcının ve işletim sistemimimin sürüm bilgisinin tam olarak bulunduğunu anlıyor ve buna izin veriyorum.",
+       "feedback-termsofuse": "Kullanım Şartları'na uygun biçimde geribildirim vermeyi kabul ediyorum.",
        "feedback-thanks": "Teşekkürler! Görüşleriniz \"[$2 $1]\" sayfasında paylaşılmıştır.",
        "feedback-thanks-title": "Teşekkürler!",
        "feedback-useragent": "Kullanıcı temsilcisi",
        "api-error-stashfailed": "İç hata: Sunucu, geçici dosyaları kaybetti.",
        "api-error-publishfailed": "İç hata: Sunucu geçici dosyayı yayınlarken başarısız oldu.",
        "api-error-stasherror": "Dosya zulaya yüklenirken hata oluştu.",
+       "api-error-stashedfilenotfound": "Saklandığı yerden yüklenmeye çalışılan dosya bu yerde bulunamadı.",
+       "api-error-stashpathinvalid": "Saklanan dosyanın bulunması beklenen yer bilgisi geçersiz.",
+       "api-error-stashfilestorage": "Dosya zulaya saklanmaya çalışılırken hata ile karşılaşıldı.",
+       "api-error-stashzerolength": "Sunucu dosyayı zulada saklayamadı; çünkü dosya boyutu sıfır uzunlukta.",
+       "api-error-stashnotloggedin": "Dosya yükleme zulasına dosya kaydetmek için oturum açmış olmanız gerekiyor.",
+       "api-error-stashwrongowner": "Zulada erişmeye çalıştığınız belge size ait değil.",
+       "api-error-stashnosuchfilekey": "Zulaya erişmeye çalışırken kullanılan dosya anahtarı mevcut değil.",
        "api-error-timeout": "Sunucu beklenen süre içinde yanıt vermedi.",
        "api-error-unclassified": "Bilinmeyen bir hata oluştu.",
        "api-error-unknown-code": "Bilinmeyen hata: \"$1\"",
        "expand_templates_generate_xml": "XML derleyici ağacını göster",
        "expand_templates_generate_rawhtml": "Ham HTML göster",
        "expand_templates_preview": "Önizleme",
+       "expand_templates_preview_fail_html": "<em>{{SITENAME}} işlenmemiş HTML koduna izin verdiği ve oturum verilerinde kayıp yaşandığı için, ön izleme, JavaScript saldırılarına karşı önlem olarak gizlendi.</em>\n\n<strong>Eğer meşru bir ön izleme girişimi idiyse, tekrar deneyiniz.</strong>\nYine de çalışmıyorsa, [[Special:UserLogout|oturum kapamayı]] ve tekrar açmayı deneyin.",
+       "expand_templates_preview_fail_html_anon": "<em>{{SITENAME}} işlenmemiş HTML koduna izin verdiği ve oturum verilerinde kayıp yaşandığı için, ön izleme, JavaScript saldırılarına karşı önlem olarak gizlendi.</em>\n\n<strong>Eğer meşru bir ön izleme girişimi idiyse, lütfen  [[Special:UserLogin|oturum açarak]] tekrar deneyin.</strong>",
        "pagelanguage": "Sayfa dili seçicisi",
        "pagelang-name": "Sayfa",
        "pagelang-language": "Dil",
        "right-pagelang": "Sayfa dilini değiştir",
        "action-pagelang": "sayfa dilini değiştir",
        "log-name-pagelang": "Dil günlüğünü değiştir",
+       "log-description-pagelang": "Bu, sayfalardaki dil değişikliklerinin kayıt günlüğüdür.",
        "logentry-pagelang-pagelang": "$1, $3 sayfasının dilini $4 dilinden $5 diline {{GENDER:$2|çevirdi}}.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (etkin)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''devre dışı''')",
        "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",
        "special-characters-title-endash": "tire",
+       "special-characters-title-emdash": "uzun çizgi",
        "special-characters-title-minus": "Eksi işareti"
 }
index 49d66ac..c9b0a5a 100644 (file)
        "import-interwiki-history": "Бу битнең барлык үзгәртү тарихын күчермәләү",
        "import-interwiki-templates": "Барлык үрнәкләрне кертү",
        "import-interwiki-submit": "Импортлау",
-       "import-interwiki-namespace": "Исемнәр тирәлеге:",
        "import-upload-filename": "Файл исеме:",
        "import-comment": "Искәрмә:",
        "importtext": "Зинһар өчен, битне күчерү өчен [[Special:Export|махсус корал]] кулланыгыз. Файлны дискка саклагыз, аннан соң монда йөкләгез.",
index bd1e1a9..b6a4003 100644 (file)
        "importfailed": "İmportlaw xatası: <nowiki>$1</nowiki>",
        "importsuccess": "İmportlaw uñışlı buldı!",
        "importlogpage": "Kertü köndälege",
-       "import-logentry-interwiki": "«$1» — wikiara  importlaw",
        "tooltip-pt-userpage": "Qullanuçı bitegez",
        "tooltip-pt-mytalk": "Bäxäs bitegez",
        "tooltip-pt-preferences": "Köylänmäläregez",
index ce10969..e35ef3a 100644 (file)
        "history": "Арынның төөгүзү",
        "history_short": "Төөгү",
        "printableversion": "Саазынга үндүрерин көөрү",
-       "permalink": "Турум холбаа",
+       "permalink": "Турум айтыг",
        "print": "Саазынга үндүрер",
        "view": "Көөрү",
        "edit": "Эдер",
        "mainpage": "Кол Арын",
        "mainpage-description": "Кол Арын",
        "policy-url": "Project:Чурум",
-       "portal": "Ниитилелдиң хаалгазы",
-       "portal-url": "Project:Ниитилелдиң хаалгазы",
+       "portal": "Ниитилел хаалгазы",
+       "portal-url": "Project:Ниитилел хаалгазы",
        "privacy": "Актыг бүзүрел дугуржулгазы",
        "privacypage": "Project:Актыг бүзүрел дугуржулгазы",
        "badaccess": "Алдаг:Эргеңер чок.",
        "nstab-user": "Ажыглакчының арыны",
        "nstab-media": "Медиа арыны",
        "nstab-special": "Тускай арын",
-       "nstab-project": "Төлевилелдиң арыны",
+       "nstab-project": "Төлевилел дугайында",
        "nstab-image": "Файл",
        "nstab-mediawiki": "Чагаа",
        "nstab-template": "Майык",
        "createaccountreason": "Чылдагаан:",
        "badretype": "Силерниң парлаан чажыт сөзүңер таарышпас.",
        "userexists": "Силерниң парлаан адыңар амгы үеде ажыглаттынып турар.\nӨске аттан шилип алыңар.",
-       "loginerror": "Ð\91агай ÐºÐ¸Ñ\80еÑ\80и",
+       "loginerror": "Ð\9aиÑ\80им Ð°Ð»Ð´Ð°Ð° (ЧазÑ\8bглÑ\8bг ÐºÐ¸Ñ\80им)",
        "loginsuccesstitle": "Чедимчелиг кирери",
        "login-userblocked": "Бо ажыглакчы blocked.  Кирери хоржок.",
        "password-login-forbidden": "Бо ажыглакчының ады болгаш чажыт сөс хоржок.",
        "subject": "Кол сөс:",
        "minoredit": "Бо эдилге бичии-дир",
        "watchthis": "Бо арынны хайгаараары",
-       "savearticle": "Арынны шыгжаары",
+       "savearticle": "Арын шыгжаар",
        "preview": "Чижеглей көөрү",
        "showpreview": "Чижеглей көөрү",
        "showdiff": "Өскерлиишкиннерни көргүзери",
-       "anoneditwarning": "'''Кичээңгейлиг!''' Силер сайтче авторжуттунмаан силер.\nБо арынның өскертилге төөгүзүнче Силерниң IP-адрезиңер бижитинип каар.",
+       "anoneditwarning": "<strong>Кичээңгейлиг!</strong> Силер сайтче кирип албаан силер. Чаартылгалар киирер болзуңарза, Силерниң IP-адрезиңер чүүлдүң төөгүзүнге көстүп кээр. Кажан сайтче <strong>[$1 шолаңар-биле кире бээриңерге]</strong> азы <strong>[$2 чаа шола чаяап алырыңарга]</strong>, эдилгеңерни шолаңар-биле холбаап каар база Силерге ажыктыг тускай херекселдер тыптып келир.",
        "missingcommenttext": "Тайылбырни адаанда чогаадыңар.",
        "summary-preview": "Түңнелдү чижеглей көөрү:",
        "subject-preview": "Кол сөс чижеглей көөрү:",
        "post-expand-template-inclusion-category": "Кожар майыктарга чөшпээрээн хемчээлин ашкан арыннар",
        "post-expand-template-argument-warning": "'''Кичээнгейлиг:''' бо арында тоң дора дээрге (по крайней мере) чаңгыс майыктыг, а ооң аргументизи эмин эрттир улуг калбаяр хемчээлдиг.\nЫндыг чергелиг аргументилерни эрттирип каан.",
        "post-expand-template-argument-category": "Аргументилери салдынмаан майыктарлыг '''арыннар'''",
+       "undo-success": "Ук эдилгени ойталап болур. Адаанда янзыларын (версияларын) хынавышаан, тааржыр өскертилгелерни көжүрүп алгаш, оларны арынга шыгжаарда, «Арынны бижидер» деп тананы базыптыңар.",
        "viewpagelogs": "Бо арынның журналын көргүзери",
        "nohistory": "Бо арынның өскерлиишкин төөгүзү чок.",
        "currentrev": "Амгы үе үндүрери",
        "email": "Э-чагаа",
        "prefs-help-email": "Э-шуудаң адрезин айтыры албан эвес, ынчалза-даа, уруңуңар (парольуңар) чиде бээрге, ол херек апаар.",
        "prefs-help-email-others": "Ол харылзаа медээлели база өске киржикчилерге хуу азы чугаалажылга арныңарга э-шуудаңыңар (e-mail) таварыштыр Силерниң-биле харылзажырынга ажыктыг. Ооң кадында Силерниң э-шуудаң адрезиңер кымга-даа көзүлбес.",
-       "prefs-info": "Кол медээлер",
+       "prefs-info": "Кол медээлел",
        "prefs-signature": "Хол үжүү",
        "prefs-diffs": "Ылгалдар",
        "editusergroup": "Ажыглакчының бөлгүмнерни өскертири",
        "newsectionsummary": "/* $1 */ чаа салбыр",
        "rc-enhanced-expand": "Тодаларны көргүзери (JavaScript херек)",
        "rc-enhanced-hide": "Тодаларны чажырары",
-       "recentchangeslinked": "Хамааржыр өскерлиишкиннер",
-       "recentchangeslinked-toolbox": "Хамааржыр өскерлиишкиннер",
+       "recentchangeslinked": "Хамаарышкан өскерилгелер",
+       "recentchangeslinked-toolbox": "Хамаарышкан өскерилгелер",
        "recentchangeslinked-title": "«$1» деп арынга хамаарыштырган өскерлиишкиннер",
        "recentchangeslinked-summary": "Айыткан арынның (азы айыткан аңгылалга хамаарышкан) шөлүлүглериниң чедер арыннарнының чаа өскерилгер даңзызы.\n[[Special:Watchlist|Силерниң хайгаарал даңзызынче]] кирип турар арыннарны '''ылгап каан'''.",
        "recentchangeslinked-page": "Арынның ады:",
        "tooltip-pt-login": "Маңаа системаже киир бүрүткенип болур, ынчалза-даа ол албан эвес.",
        "tooltip-pt-logout": "Үнери",
        "tooltip-ca-talk": "Бо арын дугайында чыгаалажыры",
-       "tooltip-ca-edit": "СилеÑ\80 Ð±Ð¾ Ð°Ñ\80Ñ\8bннÑ\8b Ñ\8dдип Ð±Ð¾Ð»Ñ\83Ñ\80. Ð¨Ñ\8bгжааÑ\80 Ð¼Ñ\83Ñ\80Ñ\83нда Ñ\87ижеглеп ÐºÓ©Ñ\80ем.",
+       "tooltip-ca-edit": "Ук Ð°Ñ\80Ñ\8bннÑ\8b Ñ\8dдип Ð±Ð¾Ð»Ñ\83Ñ\80 Ñ\81илеÑ\80. Ð­Ð´Ð¸Ð»Ð³ÐµÒ£ÐµÑ\80 Ð±Ð¸Ð¶Ð¸Ð´ÐµÑ\80ин Ð±ÐµÑ\80Ñ\82инде Ñ\87ижеглей ÐºÓ©Ó©Ñ\80үн Ñ\83Ñ\82паңаÑ\80.",
        "tooltip-ca-addsection": "Чаа салбыр чаяар",
        "tooltip-ca-viewsource": "Бо арын камгалаттырган.\nДөзү кодун көрүп болур силер.",
        "tooltip-ca-history": "Арынның мурнуку өскерлиишкиннери",
        "tooltip-t-upload": "Файлдарны киирери",
        "tooltip-t-specialpages": "Шупту тускай арыннар даңзызы",
        "tooltip-t-print": "Бо арынның парлаттынар хевири",
-       "tooltip-t-permalink": "Ð\90Ñ\80Ñ\8bннÑ\8bÒ£ Ð±Ð¾ Ñ\8fнзÑ\8b\85евиÑ\80иниң Ñ\82Ñ\83Ñ\80Ñ\83м Ñ\88өлүлгези",
+       "tooltip-t-permalink": "Ук Ð°Ñ\80Ñ\8bннÑ\8bÒ£ Ð°Ð¼Ð³Ñ\8b Ñ\8fнзÑ\8bзÑ\8bнÑ\8bÒ£ Ñ\82Ñ\83Ñ\80Ñ\83м Ð°Ð¹Ñ\82Ñ\8bÑ\8b",
        "tooltip-ca-nstab-main": "Допчы арынын көөрү",
        "tooltip-ca-nstab-user": "Ажыглакчының арынын көөрү",
        "tooltip-ca-nstab-media": "Медиа арынын көөрү",
        "tooltip-undo": "Киирген эдигни казааш, ойталалдың чылдагаанын айтыр аргалыг мурнай көргүзүүн көргүзер.",
        "tooltip-summary": "Кысказы-биле бижиңер",
        "anonymous": "{{grammar:genitive|{{SITENAME}}}} адыжок {{PLURAL:$1|киржикчизи}}",
-       "pageinfo-toolboxlink": "Арын дугайында медээлел",
+       "pageinfo-title": "«$1» дугайында",
+       "pageinfo-header-basic": "Кол медээлел",
+       "pageinfo-toolboxlink": "Арын дугайында",
        "filedelete-missing": "«$1» деп файл чок, ынчангаш ол ап калдынмас.",
        "previousdiff": "← Артык эрги үндүрери",
        "nextdiff": "Артык чаа үндүрери →",
index 2c73fb5..34bf7c4 100644 (file)
        "import-interwiki-history": "بۇ بەتنىڭ ھەممە تارىخى تۈزىتىلگەن نەشرىنى كۆچۈر.",
        "import-interwiki-templates": "ھەممە قېلىپىنى ئۆز ئىچىگە ئالىدۇ",
        "import-interwiki-submit": "ئەكىر",
-       "import-interwiki-namespace": "نىشان ئات بوشلۇقى:",
-       "import-interwiki-rootpage": "نىشان غول بەت (تاللاشچان):",
        "import-upload-filename": ":ھۆججەت ئاتى",
        "import-comment": "ئىزاھات:",
        "importtext": "[[Special:Export|چىقىرىش ئىقتىدارى]]نى ئىشلىتىپ ئەسلى ۋىكىدىن ھۆججەت چىقىرىڭ .\nكومپيۇتېرىڭىزدا ساقلاپ ئاندىن بۇ جايغا يۈكلەڭ.",
index 8c3e8c0..20d7350 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-relative": "Назва містить відносний шлях. Відносні назви сторінок (./, ../) є некоректними, бо часто вони будуть недосяжні для веб-оглядача користувача.",
+       "title-invalid-magic-tilde": "Назва сторінки містить недопустиму магічну послідовність тильд (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Назва сторінки задовга. Вона не має перевищувати $1 байтів у кодуванні UTF-8.",
+       "title-invalid-leading-colon": "Назва сторінки містить недопустиму двокрапку на початку.",
        "perfcached": "Наступні дані взяті з кешу і можуть бути застарілими. В кеші зберігається не більше {{PLURAL:$1|1=одного запису|$1 записів}}.",
        "perfcachedts": "Наступні дані взяті з кешу, востаннє він оновлювався о $1. У кеші зберігається не більше $4 {{PLURAL:$4|1=запису|записів}}.",
        "querypage-no-updates": "Зміни цієї сторінки зараз заборонені. Дані тут наразі не можуть бути оновлені.",
        "history-feed-description": "Історія редагувань цієї сторінки в вікі",
        "history-feed-item-nocomment": "$1 в $2",
        "history-feed-empty": "Такої сторінки не існує.\nЇї могли вилучити чи перейменувати.\nСпробуйте [[Special:Search|знайти]] подібні сторінки.",
-       "history-edit-tags": "Редагувати теги обраних ревізій",
+       "history-edit-tags": "Редагувати мітки обраних версій",
        "rev-deleted-comment": "(опис редагування вилучено)",
        "rev-deleted-user": "(ім'я автора стерто)",
        "rev-deleted-event": "(запис журналу вилучений)",
        "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": "Так",
        "right-viewsuppressed": "Перегляд змін, приховаих від усіх користувачів",
        "right-suppressionlog": "перегляд приватних журналів",
        "right-block": "заборона редагувань для інших дописувачів",
-       "right-blockemail": "блокування користувача від надсилання електронної пошти",
+       "right-blockemail": "Ð\91локування користувача від надсилання електронної пошти",
        "right-hideuser": "блокування імені користувача і приховування його",
        "right-ipblock-exempt": "уникнення блокування за IP-адресою, автоблокування і блокування діапазонів",
        "right-proxyunbannable": "уникнення автоматичного блокування проксі-серверів",
        "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": "$1 {{PLURAL:$1|зміна з останнього візиту|зміни з останнього візиту|змін з останнього візиту}}",
        "enhancedrc-history": "історія",
        "logempty": "В журналі немає подібних записів.",
        "log-title-wildcard": "Знайти заголовки, що починаються з цих символів",
        "showhideselectedlogentries": "Показати/приховати виділені записи журналу",
+       "log-edit-tags": "Змінити мітки для вибраних записів журналів",
        "allpages": "Усі сторінки",
        "nextpage": "Наступна сторінка ($1)",
        "prevpage": "Попередня сторінка ($1)",
        "emailccsubject": "Копія вашого повідомлення до $1: $2",
        "emailsent": "Електронне повідомлення надіслано",
        "emailsenttext": "Ваше електронне повідомлення надіслано.",
-       "emailuserfooter": "Цей лист був надісланий користувачеві $2 від користувача $1 за допомогою функції «Надіслати листа» проекту {{SITENAME}}.",
+       "emailuserfooter": "Цей лист був надісланий користувачеві $2 від користувача $1 за допомогою функції «{{int:emailpage}}» проекту {{SITENAME}}.",
        "usermessage-summary": "Залишити системне повідомлення.",
        "usermessage-editor": "Системний вісник",
        "usermessage-template": "MediaWiki:UserMessage",
        "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",
        "tags-deactivate-reason": "Причина:",
        "tags-deactivate-not-allowed": "Неможливо вимкнути мітку «$1».",
        "tags-deactivate-submit": "Вимкнути",
-       "tags-edit-title": "Редагувати теги",
-       "tags-edit-existing-tags": "Існуючі теги:",
-       "tags-edit-new-tags": "Нові теги:",
+       "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",
        "compare-page2": "Сторінка 2",
        "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": "Ой! Типова тема оформлення для вашої вікі <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:* Склонувавши один з репозиторіїв <code>mediawiki/skins/*</code> через git у підтеку <code dir=\"ltr\">skins/</code> теки, де встановлена MediaWiki.\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:* Клонувавши один з репозиторіїв <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-row-enabled": "* <code>$1</code> / $2 (увімкнено)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''вимкнено''')",
index 1acc3f1..f391f1d 100644 (file)
        "pool-errorunknown": "نامعلوم خطا",
        "poolcounter-usage-error": "استعمال میں خامی: $1",
        "aboutsite": "تعارف {{SITENAME}}",
-       "aboutpage": "منصوبہ:تعارف",
+       "aboutpage": "Project:تعارف",
        "copyright": "تمام مواد $1 کے تحت میسر ہے، جب تک کوئی دوسری وجہ نا ہو۔",
        "copyrightpage": "{{ns:project}}:حقوق تصانیف",
        "currentevents": "حالیہ واقعات",
        "disclaimerpage": "Project:عام اعلان",
        "edithelp": "معاونت براۓ ترمیم",
        "helppage-top-gethelp": "مدد",
-       "mainpage": "صÙ\81Ø­Û\81 اول",
+       "mainpage": "صÙ\81Ø­Û\82 اول",
        "mainpage-description": "صفحہ اول",
        "policy-url": "Project:حکمتِ عملی",
        "portal": "دیوان عام",
        "createacct-submit": "آپ کا کھاتا بنائیں",
        "createacct-another-submit": "دوسرا کھاتہ تخلیق کریں",
        "createacct-benefit-heading": "{{SITENAME}} آپ جیسے لوگوں کی طرف سے بنایا گیا ہے ۔",
-       "createacct-benefit-body1": "ترمیم",
+       "createacct-benefit-body1": "{{PLURAL:$1|ترمیم|ترامیم}}",
        "createacct-benefit-body2": "$1 {{PLURAL:$1|صفحہ|صفحات}}",
-       "createacct-benefit-body3": "شرکت Ú©Ø±Ù\86Û\92 Ù\88اÙ\84Û\92 Ø§Ø³ Ù\85اÛ\81 Ú©Û\92",
+       "createacct-benefit-body3": "حاÙ\84Û\8cÛ\81 {{PLURAL:$1|شرکت Ú©Ø±Ù\86Û\92 Ù\88اÙ\84ا|شرکت Ú©Ø±Ù\86Û\92 Ù\88اÙ\84Û\92}}",
        "badretype": "درج شدہ کلمۂ شناخت اصل سے مطابقت نہیں رکھتا۔",
        "userexists": "داخل کردہ اسم صارف پہلے سے مستعمل ہے۔\nبراہِ کرم! کوئی دوسرا اسم منتخب کیجئے۔",
        "loginerror": "داخلے میں غلطی",
        "mergelog": "نوشتہ کا انضمام",
        "revertmerge": "غیر ضم",
        "history-title": "\"$1\" کا نظرثانی تاریخچہ",
+       "difference-title": "\"$1\" کے اعادوں کے درمیان فرق",
        "difference-multipage": "(فرق مابین صفحات)",
        "lineno": "لکیر $1:",
        "compareselectedversions": "منتخب متـن کا موازنہ",
        "editundo": "استرجع",
-       "diff-multi-sameuser": "({{PLURAL: $ 1 | ایک متوسط نظرثانی | $ 1 کئی متوسط نظرثانیاں}}ایک ہی صارف کی جانب سے نہیں دکھائی گئی)",
+       "diff-multi-sameuser": "({{PLURAL: $1 | ایک متوسط نظرثانی | $1 کئی متوسط نظرثانیاں}}ایک ہی صارف کی جانب سے نہیں دکھائی گئی)",
        "searchresults": "تلاش کا نتیجہ",
        "searchresults-title": "نتائجِ تلاش برائے \"$1\"",
        "notextmatches": "کوئی بھی مماثل متن موجود نہیں",
        "recentchanges-label-bot": "یہ ایک روبالہ سے سرانجام شدہ ترمیم ہے",
        "recentchanges-label-unpatrolled": "اس ترمیم کی اب تک مراجعت نہیں کی گئی",
        "recentchanges-label-plusminus": "صفحہ کا حجم تبدیل شدہ بلحاظ بائٹ مقدار",
+       "recentchanges-legend-heading": "'''اختیارات'''",
        "rcnotefrom": "ذیل میں '''$2''' سے کی گئی تبدیلیاں ہیں ('''$1''' تبدیلیاں دکھائی جارہی ہیں)۔",
        "rclistfrom": "$3 $2 سےنئی تبدیلیاں دکھانا شروع کریں",
        "rcshowhideminor": "معمولی ترامیم $1",
        "newpageletter": "نیا ..",
        "boteditletter": " خودکار",
        "rc_categories_any": "کوئی بھی",
+       "rc-change-size-new": "$1 {{PLURAL:$1|بائٹ|بائٹس}} تبدیلی کے بعد",
        "rc-enhanced-expand": "تفصیلات دِکھائیں (JavaScript درکار)",
        "rc-enhanced-hide": "تفصیلات چھپائیے",
        "recentchangeslinked": "متعلقہ تبدیلیاں",
        "recentchangeslinked-feed": "متعلقہ تبدیلیاں",
        "recentchangeslinked-toolbox": "متعلقہ تبدیلیاں",
        "recentchangeslinked-title": "\"$1\" سے متعلقہ تبدیلیاں",
-       "recentchangeslinked-summary": "یہ ان تبدیلیوں کی فہرست ہے جو حال ہی میں کسی مخصوص صفحہ سے مربوط صفحات (یا مخصوص زمرہ کے اراکین) میں کی گئی ہیںـ \n\n[[Special:Watchlist | آپ کی زیر نظر فہرست]] میں یہ صفحات متجل (bold) نظر آئیں گےـ",
+       "recentchangeslinked-summary": "یہ ان تبدیلیوں کی فہرست ہے جو حال ہی میں کسی مخصوص صفحہ سے مربوط صفحات (یا مخصوص زمرہ کے اراکین) میں کی گئی ہیں\n\n[[Special:Watchlist|آپ کی زیر نظر فہرست]] میں یہ صفحات متجل (bold) نظر آئیں گےـ",
        "recentchangeslinked-page": "صفحۂ منصوبہ دیکھئے",
        "upload": "فائل اثقال",
        "uploadbtn": "زبراثقال ملف (اپ لوڈ فائل)",
        "filehist-current": "حالیہ",
        "filehist-datetime": "تاریخ/وقت",
        "filehist-thumb": "اظفورہ",
+       "filehist-thumbtext": "$1 کا تھمب نیل (thumbnail) ورژن",
        "filehist-user": "صارف",
        "filehist-dimensions": "ابعاد",
        "filehist-filesize": "تصویر کا حجم",
        "version": "ورژن",
        "specialpages": "خصوصی صفحات",
        "tag-filter": "[[Special:Tags|لوحہ]] فلٹر:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ٹیگ|ٹیگز}}]]: $2)",
        "logentry-delete-delete": "$1 {{GENDER:$2|حذف کیا گیا}} صفحہ $3",
+       "logentry-move-move": "$1 نے صفحہ $3 کو بجانب $4 منتقل کیا",
        "logentry-newusers-create": "صارف کھاتہ $1 {{GENDER:$2|بنایا گیا}}",
        "rightsnone": "(کچھ نہیں)",
        "revdelete-summary": "خلاصۂ تدوین",
index 2df5ff4..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:",
        "import-interwiki-history": "Copia l'intiera cronołogia de sta pàxena",
        "import-interwiki-templates": "Tira dentro tuti i modèi",
        "import-interwiki-submit": "Inporta",
-       "import-interwiki-namespace": "Namespace de destinassion:",
-       "import-interwiki-rootpage": "Pàjina prinsipałe de destinasion (opsionałe):",
        "import-upload-filename": "Nome del file:",
        "import-comment": "Comento:",
        "importtext": "Se połe esportare el file da ła fonte wiki doparando ła [[Special:Export|funsion de esportasion]].\nSalveło so'l to conpiuter e carghelo cuà.",
index 36f1788..bc4dbc5 100644 (file)
        "import-interwiki-history": "Kopiruida kaik necen lehtpolen toižetamižen istorii",
        "import-interwiki-templates": "Mülütada kaik šablonad",
        "import-interwiki-submit": "Import",
-       "import-interwiki-namespace": "Metnimiavaruz:",
        "import-upload-filename": "Failan nimi:",
        "import-comment": "Kommentarii:",
        "importstart": "Lehtpoliden import...",
        "import-token-mismatch": "Andmused oma kadonuded. Olgat hüväd, toštkat tegend völ kerdan.",
        "import-invalid-interwiki": "Ei voi importiruida neciš wikišpäi.",
        "importlogpage": "Importan aigkirj",
-       "import-logentry-upload": "importiruidihe [[$1]] failan jügetoitandan abul",
        "import-logentry-upload-detail": "{{PLURAL:$1|üks' versii|$1 versijad}}",
-       "import-logentry-interwiki": "toi toižes wikišpäi lehtpolen $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|üks' versii|versijad}} $2-wikišpäi",
        "javascripttest": "JavaScriptan kodvmine",
        "tooltip-pt-userpage": "Teiden kävutajan lehtpol'",
        "expand_templates_xml_output": "XML-lähtmižvend",
        "expand_templates_ok": "OK",
        "expand_templates_remove_comments": "Čuta kommentarijad",
-       "expand_templates_preview": "Ezikacund"
+       "expand_templates_preview": "Ezikacund",
+       "special-characters-group-latin": "Latinalaine",
+       "special-characters-group-latinextended": "Levitadud latinalaine",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Simvolad",
+       "special-characters-group-greek": "Grekalaine",
+       "special-characters-group-cyrillic": "Kirilline",
+       "special-characters-group-arabic": "Arabine",
+       "special-characters-group-arabicextended": "Araban levitadud",
+       "special-characters-group-persian": "Persižed",
+       "special-characters-group-hebrew": "Evrejine",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-gujarati": "Gudžarati",
+       "special-characters-group-thai": "Tai",
+       "special-characters-group-lao": "Lao",
+       "special-characters-group-khmer": "Khmeran"
 }
index 21f39b2..cf5b1ab 100644 (file)
@@ -28,7 +28,8 @@
                        "Tranquanganh",
                        "Max20091",
                        "Dinhxuanduyet",
-                       "Macofe"
+                       "Macofe",
+                       "KhangND"
                ]
        },
        "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.",
        "wrongpassword": "Mật khẩu sai. Xin vui lòng nhập lại.",
        "wrongpasswordempty": "Bạn chưa gõ vào mật khẩu. Xin thử lần nữa.",
        "passwordtooshort": "Mật khẩu phải có ít nhất {{PLURAL:$1|1 ký tự|$1 ký tự}}.",
+       "passwordtoolong": "Mật khẩu không thể dài hơn {{PLURAL:$1|1 ký tự|$1 ký tự}}.",
        "password-name-match": "Mật khẩu của bạn phải khác với tên người dùng của bạn.",
        "password-login-forbidden": "Tên đăng nhập và mật khẩu này đã bị cấm không được sử dụng.",
        "mailmypassword": "Tái tạo mật khẩu",
        "missingcommentheader": "'''Nhắc nhở:''' Bạn chưa ghi chủ đề/tiêu đề cho bàn luận này.\nNếu bạn nhấn nút \"{{int:savearticle}}\" lần nữa, sửa đổi của bạn sẽ được lưu mà không có đề mục.",
        "summary-preview": "Xem trước dòng tóm lược:",
        "subject-preview": "Xem trước đề mục:",
+       "previewerrortext": "Có lỗi xảy ra khi xem trước những thay đổi của bạn.",
        "blockedtitle": "Thành viên bị cấm",
        "blockedtext": "'''Tên người dùng hoặc địa chỉ IP của bạn đã bị cấm.'''\n\nNgười thực hiện cấm là $1.\nLý do được cung cấp là ''$2''.\n\n* Bắt đầu cấm: $8\n* Kết thúc cấm: $6\n* Mục tiêu cấm: $7\n\nBạn có thể liên hệ với $1 hoặc một [[{{MediaWiki:Grouppage-sysop}}|bảo quản viên]] khác để thảo luận về việc cấm.\nBạn không thể sử dụng tính năng “gửi thư cho người này” trừ khi bạn đã ghi một địa chỉ thư điện tử hợp lệ trong [[Special:Preferences|tùy chọn tài khoản]] và bạn không bị khóa chức năng đó.\nĐịa chỉ IP hiện tại của bạn là $3, và mã số cấm là #$5.\nXin hãy ghi kèm tất cả các thông tin trên vào thư yêu cầu của bạn.",
        "autoblockedtext": "Địa chỉ IP của bạn đã bị tự động cấm vì một người nào đó đã sử dụng nó, $1 là thành viên đã thực hiện cấm.\nLý do được cung cấp là:\n\n:''$2''\n\n* Bắt đầu cấm: $8\n* Kết thúc cấm: $6\n* Mục tiêu cấm: $7\n\nBạn có thể liên hệ với $1 hoặc một trong số các\n[[{{MediaWiki:Grouppage-sysop}}|bảo quản viên]] khác để thảo luận về việc cấm.\n\nChú ý rằng bạn sẽ không dùng được chức năng “gửi thư cho người này” trừ khi bạn đã ghi một địa chỉ thư điện tử hợp lệ trong [[Special:Preferences|tùy chọn]] và bạn không bị cấm dùng chức năng đó.\n\nĐịa chỉ IP hiện tại của bạn là $3, mã số cấm là $5.\nXin hãy ghi kèm tất cả các chi tiết trên vào thư yêu cầu của bạn.",
        "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)",
        "notextmatches": "Không tìm thấy nội dung trang",
        "prevn": "{{PLURAL:$1|$1}} mục trước",
        "nextn": "{{PLURAL:$1|$1}} mục sau",
+       "prev-page": "Trang trước",
+       "next-page": "Trang sau",
        "prevn-title": "$1 {{PLURAL:$1|kết quả|kết quả}} trước",
        "nextn-title": "$1 {{PLURAL:$1|kết quả|kết quả}} sau",
        "shown-title": "Hiển thị $1 {{PLURAL:$1|kết quả|kết quả}} mỗi trang",
        "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ử",
        "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-history": "Sao chép tất cả các phiên bản cũ của trang này",
        "import-interwiki-templates": "Gồm tất cả các bản mẫu",
        "import-interwiki-submit": "Nhập",
-       "import-interwiki-namespace": "Không gian tên đích:",
-       "import-interwiki-rootpage": "Trang gốc đích (tùy chọn):",
+       "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.",
        "import-rootpage-nosubpage": "Không gian tên “$1” của trang gốc không cho phép các trang con.",
        "importlogpage": "Nhật trình nhập trang",
        "importlogpagetext": "Đây là danh sách các trang được quản lý nhập vào đây. Các trang này có lịch sử sửa đổi từ hồi ở wiki khác.",
-       "import-logentry-upload": "nhập vào [[$1]] bằng cách tải tập tin",
        "import-logentry-upload-detail": "Đã nhập $1 phiên bản",
-       "import-logentry-interwiki": "đã nhập vào $1 từ wiki khác",
        "import-logentry-interwiki-detail": "Đã nhập $1 phiên bản từ $2",
        "javascripttest": "Kiểm thử JavaScript",
        "javascripttest-pagetext-noframework": "Trang này dành cho việc chạy các ca kiểm thử JavaScript.",
        "pageinfo-protect-cascading-yes": "Có",
        "pageinfo-protect-cascading-from": "Khóa theo tầng từ",
        "pageinfo-category-info": "Thông tin về thể loại",
+       "pageinfo-category-total": "Tổng số thành viên",
        "pageinfo-category-pages": "Số trang",
        "pageinfo-category-subcats": "Số thể loại con",
        "pageinfo-category-files": "Số tập tin",
        "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-reason": "Lý do:",
        "tags-deactivate-not-allowed": "Không thể vô hiệu hóa thẻ \"$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": "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 những {{PLURAL:$4|giao diện|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 hoặc {{PLURAL:$4|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 {{PLURAL:$5|dòng|dòng lệnh}} sau vào <code>LocalSettings.php</code> để kích hoạt {{PLURAL:$5|tất cả}} {{PLURAL:$5|giao diện|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-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''')",
        "json-error-recursion": "Giá trị để mã hóa có tham chiếu đệ quy",
        "json-error-inf-or-nan": "Giá trị để mã hóa có giá trị NAN (không phải số) hoặc INF (vô tận)",
        "json-error-unsupported-type": "Đã đưa vào giá trị có kiểu không thể mã hóa",
-       "headline-anchor-title": "Liên kết đến phần này"
+       "headline-anchor-title": "Liên kết đến phần này",
+       "special-characters-group-latin": "La tinh",
+       "special-characters-group-latinextended": "La tinh mở rộng",
+       "special-characters-group-ipa": "Phiên âm quốc tế",
+       "special-characters-group-symbols": "Ký hiệu",
+       "special-characters-group-greek": "Hy Lạp",
+       "special-characters-group-cyrillic": "Kirin",
+       "special-characters-group-arabic": "Ả Rập",
+       "special-characters-group-arabicextended": "Ả Rập mở rộng",
+       "special-characters-group-persian": "Ba Tư",
+       "special-characters-group-hebrew": "Hê-brơ",
+       "special-characters-group-bangla": "Bangla",
+       "special-characters-group-tamil": "Tamil",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Sinhala",
+       "special-characters-group-gujarati": "Gujarat",
+       "special-characters-group-devanagari": "Devanagari",
+       "special-characters-group-thai": "Thái",
+       "special-characters-group-lao": "Lào",
+       "special-characters-group-khmer": "Khơ-me",
+       "special-characters-title-endash": "dấu gạch en",
+       "special-characters-title-emdash": "dấu gạch em",
+       "special-characters-title-minus": "dấu trừ"
 }
index fa2a4d7..68ddb77 100644 (file)
@@ -36,7 +36,7 @@
        "tog-shownumberswatching": "Jonön numi gebanas galädöl",
        "tog-oldsig": "Dispenäd dabinöl:",
        "tog-fancysig": "Dispenäd balugik (nen yüms lü gebanapad)",
-       "tog-uselivepreview": "Gebön büologedi itjäfidik (sperimäntik)",
+       "tog-uselivepreview": "Gebön büologedi itjäfidik",
        "tog-forceeditsummary": "Sagön obe, ven redakaplän brefik vagon",
        "tog-watchlisthideown": "Klänedön redakamis obik se galädalised",
        "tog-watchlisthidebots": "Klänedön redakamis mäikamenas se galädalised",
        "otherlanguages": "In püks votik",
        "redirectedfrom": "(Pelüodükon de pad: $1)",
        "redirectpagesub": "Lüodükömapad",
+       "redirectto": "Lüodükön lü:",
        "lastmodifiedat": "Pad at pävotükon lätiküno tü düp $2, ün $1.",
        "viewcount": "Pad at pelogon {{PLURAL:$1|balna|$1na}}.",
        "protectedpage": "Pad pejelöl",
        "toc": "Ninäd",
        "showtoc": "jonön",
        "hidetoc": "klänedön",
+       "confirmable-confirm": "Fümol-li?",
        "confirmable-yes": "Si!",
        "confirmable-no": "Nö!",
        "thisisdeleted": "Jonön u sädunön moükami $1?",
        "virus-badscanner": "Parametem badik: program tavirudik nesevädik: ''$1''",
        "virus-scanfailed": "skrutam no eplöpon (kot $1)",
        "virus-unknownscanner": "program tavirudik nesëvadik:",
-       "logouttext": "'''Esenunädol oli.'''\n\nKanol laigebön {{SITENAME}} nennemiko, u kanol <span class='plainlinks'>[$1 nunädön oli dönu]</span> me gebananem ot u gebenanem votik.\nKüpälolös, das pads anik ba nog pojenons äsva no esenunädol oli, jüs uklinükol memi no laidüpik bevüresodanaföma olik.",
+       "logouttext": "<strong>Esenunädol oli.<strong>\n\nKüpälolös, das pads anik ba nog pojenons äsva no esenunädol oli, jüs uklinükol memi no laidüpik bevüresodanaföma olik.",
        "welcomeuser": "Benokömö, o $1!",
        "yourname": "Gebananem:",
        "userlogin-yourname": "Gebananem",
        "revdelete-show-file-submit": "Si",
        "logdelete-selected": "{{PLURAL:$1|Lisedajenot|Lisedajenots}} pevälöl:",
        "revdelete-legend": "Levälön miedükamis logova:",
-       "revdelete-hide-text": "Klänedön vödemi revida",
+       "revdelete-hide-text": "Vödem revida",
        "revdelete-hide-image": "Klänedön ragivaninädi",
        "revdelete-hide-name": "Klänedön duni e zeili",
        "revdelete-hide-comment": "Redakön küpeti",
        "revdelete-hide-user": "Klänedön gebananemi u ladeti-IP redakana",
        "revdelete-hide-restricted": "Gebön miedükamis at i demü guvans e lökofärmükön fometi at",
        "revdelete-radio-same": "(no votükolös)",
-       "revdelete-radio-set": "Si",
-       "revdelete-radio-unset": "",
+       "revdelete-radio-set": "Paklänedöl",
+       "revdelete-radio-unset": "Logädik",
        "revdelete-suppress": "Klänedön moükamakodis i de guvans (äsi de votikans)",
        "revdelete-unsuppress": "Moükön miedükamis fomamas pegegetöl",
        "revdelete-log": "Kod:",
        "notextmatches": "Leigon ko nos in padavödem",
        "prevn": "büik {{PLURAL:$1|$1}}",
        "nextn": "sököl {{PLURAL:$1|$1}}",
+       "prev-page": "pad büik",
+       "next-page": "pad sököl",
        "prevn-title": "{{PLURAL:$1|Sukasek|Sukaseks}} büik $1",
        "nextn-title": "{{PLURAL:$1|Sukasek|Sukaseks}} fovik $1",
        "shown-title": "Jonön {{PLURAL:$1|sukaseki|sukasekis}} $1 a pad",
        "prefs-info": "Nüns stabik",
        "prefs-signature": "Dispenäd",
        "prefs-dateformat": "Dätafomam",
+       "prefs-preview": "Büologed",
        "prefs-diffs": "Difs",
        "userrights": "Guvam gebanagitätas",
        "userrights-lookup-user": "Guvön gebanagrupis",
        "right-move": "Topätükön padis",
        "right-move-subpages": "Topätükön padis kobü donapads onsik",
        "right-move-rootuserpages": "Topätükön gebanapadis cifik",
+       "right-move-categorypages": "Topätükön kladapadis",
        "right-movefile": "Topätükön ragivis",
        "right-suppressredirect": "No jafön lüodükömi de nem büik posä pad petopätükon",
        "right-upload": "Löpükön ragivis",
        "action-suppressionlog": "logön jenotalisedi privatik at",
        "action-block": "blokön redakami gebana at",
        "action-protect": "votükön jelanivodis pada at",
-       "action-import": "nüveigön padi at se vük votik",
-       "action-importupload": "nüveigön padi at se ragivilöpükam",
+       "action-import": "nüveigön padis se vük votik",
+       "action-importupload": "nüveigön padis se ragivilöpükam",
        "action-patrol": "Zepön redakami votikanas",
        "action-autopatrol": "zepön redakami olik",
        "action-unwatchedpages": "Logön lisedi padas no pagalädölas",
        "action-userrights": "redakön gebanagitätis valik",
        "action-userrights-interwiki": "redakön gebanagitätis gebanas vükas votik",
        "action-siteadmin": "lökofärmükön u maifükön nünodemi",
+       "action-sendemail": "sedön penedis leäktronik",
+       "action-editmywatchlist": "redakön galädalisedi ola",
+       "action-viewmywatchlist": "logön galädalised ola",
        "nchanges": "{{PLURAL:$1|votükam|votükams}} $1",
        "enhancedrc-history": "jenotem",
        "recentchanges": "Votükams nulik",
        "license-nopreview": "(Büologed no gebidon)",
        "upload_source_url": " (el URL lonöföl ä fa valans gebovik)",
        "upload_source_file": " (ragiv pö nünöm olik)",
+       "listfiles-delete": "moükön",
        "listfiles-summary": "Su pad patik at ragivs pelöpüköl valik pelisedons.\nNomiko ragivs pelöpüköl lätikün palisedons primü lised.\nKlikolös tiädi padüla ad votükön sökaleodi at.",
        "listfiles_search_for": "Sukön ragivanemi:",
        "imgfile": "ragiv",
        "listfiles_size": "Gretot",
        "listfiles_description": "Bepenam",
        "listfiles_count": "Fomams",
+       "listfiles-latestversion-yes": "Si!",
+       "listfiles-latestversion-no": "Nö!",
        "file-anchor-link": "Ragiv",
        "filehist": "Jenotem ragiva",
        "filehist-help": "Välolös däti/timi ad logön ragivi soäsä äbinon ün tim at.",
        "filedelete-reason-dropdown": "*Kods kösömik moükama\n** Nedem kopiedagitäta\n** Ragiv petelöl",
        "filedelete-edit-reasonlist": "Redakön kodis moükama",
        "mimesearch": "Sukön (MIME)",
-       "mimesearch-summary": "Pad at mögükon ragivisulami ma MIME-sot.\nPrimanünods: ninädasot/donasot, a.s. <code>image/jpeg</code>.",
+       "mimesearch-summary": "Pad at mögükon ragivisulami ma MIME-sot.\nPrimanünods: contenttype/subtype u contenttype/*, a.s. <code>image/jpeg</code>.",
        "mimetype": "Klad ela MIME:",
        "download": "donükön",
        "unwatchedpages": "Pads no pagalädöls",
        "unusedtemplateswlh": "yüms votik",
        "randompage": "Pad fädik",
        "randompage-nopages": "Pads nonik dabinons in {{PLURAL:$2|nemaspad sököl|nemaspads sököls}}: $1.",
+       "randomincategory": "Pad fädik in klad",
+       "randomincategory-category": "Klad:",
        "randomredirect": "Lüodüköm fädik",
        "randomredirect-nopages": "Lüodüköms nonik dabinons in nemaspad: \"$1\".",
        "statistics": "Statits",
index a65ac57..fda8094 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-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:",
        "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",
        "import-interwiki-text": "Valiq viki ja lehe nimi. Kujjõ kuupääväq ja toimõndajidõ nimeq hoiõtasõq alalõ. Kõik tõisist vikidest tuumisõq pandasõq kirjä [[Special:Log/import|tuumiisi nimekirjä]].",
        "import-interwiki-history": "Kopiq lehe terveq aolugu",
        "import-interwiki-submit": "Tuuq",
-       "import-interwiki-namespace": "Panõq leheq nimeruumi:",
        "import-comment": "Põhjus:",
        "importtext": "Viiq lättevikist lehti [[Special:Export|viimis]]-tüüriistaga. Pästäq teedüs nii uman puutrin ku siin.",
        "importstart": "Tuvvas lehti...",
        "importuploaderrortemp": "Teedüstü üleslaatminõ lää-s kõrda. Olõ-i aotlist kausta.",
        "importlogpage": "Tuumiisi nimekiri",
        "importlogpagetext": "Tõisist vikidest tuuduisi lehti nimekiri.",
-       "import-logentry-upload": "tõi lehe [[$1]] saatõn teedüstü",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|kujo|kujjo}}",
-       "import-logentry-interwiki": "tõi tõõsõst vikist lehe ”$1”",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|kujo|kujjo}} lehest $2",
        "tooltip-pt-userpage": "Suq pruukjaleht",
        "tooltip-pt-anonuserpage": "Su puutri võrgoaadrõsi pruukjaleht",
        "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 d2df113..c8155da 100644 (file)
        "import": "Naangbit hit mga pakli",
        "import-interwiki-templates": "Lakip an ngatanan nga mga batakan",
        "import-interwiki-submit": "Naangbit",
-       "import-interwiki-namespace": "Kakadtoan nga ngaran-lat'ang:",
        "import-upload-filename": "Ngaran han paypay:",
        "import-comment": "Komento:",
        "importstart": "Nag-aangbit hin mga pakli...",
        "import-rootpage-invalid": "An ginhatag nga gamot-pakli in uska diri balido nga titulo.",
        "import-rootpage-nosubpage": "Ngaran-lat'ang nga \"$1\" han gamot-pakli in diri natugot hin mga bahin-pakli.",
        "importlogpage": "Talaan hin pan-aangbit",
-       "import-logentry-upload": "ginangbit [[$1]] pinaagi hin pagkarga-pasaka han paypay",
-       "import-logentry-interwiki": "natranswiki $1",
        "javascripttest-pagetext-skins": "Pagpili hin panit para ha pag-paandar han:",
        "tooltip-pt-userpage": "An imo pakli hin gumaramit",
        "tooltip-pt-mytalk": "An imo pakli hin hiruhimangraw",
index 4ee3935..1a3764c 100644 (file)
@@ -26,6 +26,8 @@
        "tog-showtoolbar": "რედაქტირაფაშ ხეჭკუდეფიშ ძირაფა (ითხინს JavaScript-ის)",
        "tog-editondblclick": "ხასჷლეფიშ რედაქტირაფა ჟირმანგი გეწკანტაფათ (ითხინს JavaScript-ის)",
        "tog-editsectiononrightclick": "ჩართი სექციაშ რედაქტირაფა სექციაშ ჯოხოშა მარძგვან გეწკანტაფათ (ითხინს JavaScript-ის)\"",
+       "tog-watchcreations": "ქიგუძინი ჩქიმ კონტროლიშ ერკბულს ჩქიმ დუნარცხუა ხასჷლეფი დო ეხარგელი ფაილეფი",
+       "tog-shownumberswatching": "მაკონტროლაფარი მახვარებუეფიშ მუდანობაშ ძირაფა",
        "tog-showhiddencats": "ქაძირი ფულირი კატეგორიეფი",
        "underline-always": "ირო",
        "underline-never": "შურო",
        "aboutpage": "Project:შენი",
        "copyright": "დინორე მიწორინაფილი რე $1–იშ ჯოხოთ.",
        "copyrightpage": "{{ns:project}}:ოავტორე ალობეფი",
-       "currentevents": "მიმალ მოლინეფი",
-       "currentevents-url": "Project:მიმალ მოლინეფი",
+       "currentevents": "მიმალ მოლინეფი",
+       "currentevents-url": "Project:მიმალ მოლინეფი",
        "disclaimers": "გამამინჯალაშ ვარება",
        "disclaimerpage": "Project:გამამინჯალაშ ვარება",
        "edithelp": "მოხვარა რედაქტირაფას",
        "nosuchspecialpage": "თეჯგუა გჷშაკერძაფილი ხასჷლეფი ვარსებენს",
        "missing-article": "სისტემას ვაძირუ მოგორაფილი ხასჷლაშ ტექსტიქ მუნაჩმეფიშ ბაზას, ჯოხოთ «$1» $2. \n\nთენა, მუჭოთ წესინი, მოხვადუ თი ბორჯის, მუჟამს მახვარებუ გიაჸუნუუ თი ხასჷლაშ ისტორიაშ რცხუს, ნამუთ ლასირი რე. \nთენა თაშ ვა რე-და, შილებე თქვა ძირით ჩილათა სისტემაშ კოდის. \nქორთხიინთ, ქატყვინუათ თენა [[Special:ListUsers/sysop|administrator]]–ს, URL–შ მეწურაფათ.",
        "missingarticle-rev": "(რედაქტირაფა#: $1)",
-       "badtitle": "á\83ªá\83\90á\83\92á\83\90á\83\9cá\83\90 á\83¡á\83\90á\83\97á\83\90á\83£á\83 á\83\98",
+       "badtitle": "á\83ªá\83\90á\83\92á\83\90á\83\9cá\83\90 á\83\93á\83£á\83\93á\83¯á\83\9dá\83®á\83\9d",
        "badtitletext": "მოთხილ ხასილაშ ჯოხო ჩილათირ რდუ, ვარა ჩოლიერ, ვარა ხოლო გოხოლუდეს ჩილათირო გინორცხუაფილ ინტერ–ნინა ვარა ინტერ–წიკი ჯოხო. \nთენა შილებე იკათუანდას ართ ვარა უმოს თიშნერ ნიშანს ნამუშ გუმორინაფა ჯოხოს ვა შილებე.",
        "viewsource": "ქოძირი წყუ",
        "viewsourcetext": "თქვა შეილებუნა ქოძირათ თე ხასჷლაშ დაჭყაფური ფაილი დო ქუდარსხუათ თიშ მანგი:",
        "userlogin-yourname-ph": "გენშიონით თქვანი მოხვარებუშ ჯოხო",
        "yourpassword": "პაროლი",
        "userlogin-yourpassword": "პაროლი",
+       "userlogin-yourpassword-ph": "გენშიონით თქვანი პაროლი",
+       "createacct-yourpassword-ph": "გენშიონით პაროლი",
        "yourpasswordagain": "კჷნე გეკორობით პაროლი:",
+       "createacct-yourpasswordagain": "დადასურით პაროლი",
+       "createacct-yourpasswordagain-ph": "ხოლო ართშა გენშიონით პაროლი",
        "remembermypassword": "ქჷგიშინი ჩქიმი მიშულა თე ბრაუზერს (მაქსიმუმ $1 დღას)",
+       "userlogin-remembermypassword": "ქუდომტე მიშულირო",
        "yourdomainname": "თქვან დომენ",
        "login": "მიშულა",
        "nav-login-createaccount": "მიშულა/ანგარიშიშ გონწყუმა",
        "userlogin": "მიშულა/ანგარიშიშ გონწყუმა",
        "logout": "გიშულა",
        "userlogout": "გიშულა",
+       "userlogin-noaccount": "ვაიღჷნანო ანგარიში?",
+       "userlogin-joinproject": "ქაკათით {{SITENAME}}",
        "nologin": "დიორდე ვარეთო რეგისტრირებული? $1.",
        "nologinlink": "გონწყით ანგარიში",
        "createaccount": "ანგარიშიშ გონწყუმა",
        "gotaccount": "უკვე რეგისტრირებული რეთო? '''$1'''",
        "gotaccountlink": "მინულა",
        "userlogin-resetlink": "გუგოჭყორდესო მიშაულარო საჭირო ინფორმაციაქ?",
+       "userlogin-resetpassword-link": "დუგოჭყორდესო პაროლქ?",
+       "userlogin-helplink2": "მოხვარა:მიშულა",
+       "createacct-emailoptional": "ელ. ფოსტაშ ოწურაფუ (ვა რე უციო)",
+       "createacct-email-ph": "გენშიონით თქვანი ელ. ფოსტაშ ოწურაფუ",
        "createacct-captcha": "თხილუაშ კონტროლი",
+       "createacct-imgcaptcha-ph": "გენშიონით ჟი მოჩამილი ტექსტი",
+       "createacct-submit": "გონწყით თქვენ ანგარიში",
+       "createacct-benefit-heading": "{{SITENAME}} გოჭყაფილი რე თქვანნერი ადამიერეფიშით.",
+       "createacct-benefit-body1": "{{PLURAL:$1|რედაქტირაფა|რედაქტირაფა}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|ხასჷლა|ხასჷლა}}",
+       "createacct-benefit-body3": "ბოლო {{PLURAL:$1|მახვარებუ|მახვარებუ}}",
        "loginsuccess": "'''ასე მიშულირ რეთ {{SITENAME}}-ს მუჭოთ \"$1\".'''",
        "nouserspecified": "საჭირო რე მახვარებუშ ჯოხოშ მიშაჭარუა.",
        "mailmypassword": "ახალ პაროლიშ მოჯღონა",
        "noemail": "\"$1\" მახვარებუშ ელ-ფოშტა წურაფილი ვარე.",
        "loginlanguagelabel": "ნინა: $1",
        "pt-login": "მიშულა",
+       "pt-login-button": "მიშულა",
        "pt-createaccount": "ანგარიშიშ გონწყუმა",
        "pt-userlogout": "გიშულა",
        "bold_sample": "რუმე ტექსტი",
        "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რთხიინთ ქიმიოღანკათ თე მუნაჩემეფშე ნამდგაიჸინი (ვარა ჟირხოლო) თქვან კორესპონდენციას.",
        "loginreqlink": "მიშულა",
        "newarticle": "(ახალ)",
-       "newarticletext": "á\83\97á\83¥á\83\95á\83\90 á\83\92á\83\94á\83§â\80\99á\83£á\83\9cá\83\94á\83\9a á\83 á\83\94á\83\97 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨ á\83 á\83ªá\83®á\83\98á\83¡, á\83\9cá\83\90á\83\9bá\83£á\83\97 á\83\93á\83\98á\83\9d á\83\95á\83\90 á\83 á\83\94 á\83\93á\83\9dá\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\98á\83\9a.\ná\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨ á\83\93á\83\90á\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\90á\83\9aá\83\9d á\83\92á\83\94á\83\9bá\83\98á\83¨á\83\94á\83§â\80\99á\83\9dá\83\9cá\83\98á\83\97 á\83¢á\83\94á\83¥á\83¡á\83¢ á\83\97á\83£á\83\93á\83\9dá\83\9c á\83\9dá\83­á\83\99á\83\9dá\83 á\83\98á\83\94á\83¨á\83\90. (á\83¥á\83\9dá\83«á\83\98á\83 á\83\98á\83\97[$1 á\83\9bá\83\9dá\83®á\83\95á\83\90á\83 á\83\90á\83¨ á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90] á\83£á\83\9bá\83\9dá\83¡ á\83\98á\83\9cá\83¤á\83\9dá\83 á\83\9bá\83\90á\83ªá\83\98á\83\90á\83¨á\83\9d).\ná\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლას ჩილათირო მოხვადით–და, ქიგუნჭირით თქვან ბრაუზერიშ კონჭის '''უკახალე'''.\"",
+       "newarticletext": "á\83\97á\83¥á\83\95á\83\90 á\83\92á\83\94á\83¸á\83£á\83\9cá\83\94á\83\9aá\83· á\83 á\83\94á\83\97 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨ á\83 á\83ªá\83®á\83\98á\83¡, á\83\9cá\83\90á\83\9bá\83£á\83\97 á\83\93á\83\98á\83\9d á\83\95á\83\90 á\83 á\83\94 á\83\93á\83\9dá\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\98á\83\9aá\83\98.\ná\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨ á\83\93á\83\90á\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\90á\83\9aá\83\9d á\83\92á\83\94á\83\9bá\83¨á\83\94á\83¸á\83\9dá\83\9cá\83\98á\83\97 á\83¢á\83\94á\83¥á\83¡á\83¢á\83\98 á\83\97á\83£á\83\93á\83\9dá\83\9c á\83\9dá\83­á\83\99á\83\9dá\83 á\83\98á\83\94á\83¨á\83\90. (á\83¥á\83\9dá\83«á\83\98á\83 á\83\98á\83\97[$1 á\83\9bá\83\9dá\83®á\83\95á\83\90á\83 á\83\90á\83¨ á\83®á\83\90á\83¡á\83·á\83\9aá\83\90] á\83£á\83\9bá\83\9dá\83¡ á\83\98á\83\9cá\83¤á\83\9dá\83 á\83\9bá\83\90á\83ªá\83\98á\83\90á\83¨á\83\9d).\ná\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლას ჩილათირო მოხვადით–და, ქიგუნჭირით თქვან ბრაუზერიშ კონჭის '''უკახალე'''.\"",
        "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თქვანი თირაფეფი დიო ვარე ჩუალირი!",
        "editing": "რედაქტირაფა $1",
+       "creating": "აკმიქიმინუაფჷ: „$1“",
        "editingsection": "$1–იშ (სექციაშ) რედაქტირაფა",
        "yourtext": "თქვან ტექსტი",
        "copyrightwarning": "გეთოლწონით, ნამდა {{SITENAME}} ხასილაშა თქვან ხეშე მიშაღალირ არძონერ თია იფორუ $2-ით (დეტალეფშო ქოძირით $1). \nვა გოკონა თქვან ნახანდაქ დუდშულო   რედაქტირებულქ დო გიონოჯღონელქ იყ’უას–და, ვა მიშეყ’ონათ თინა თაქ.<br />\nთქვა ხოლო პიჯალას დუთმოდვანთ, ნამდა თე ტექსტი თქვან ნაჭარა რე, ვარა გინოღალირ რე ოირკოჩე დომენშე დო ვარა თიშ მანგურ დუდიშულ წყუშე. \n'''ვა მიშეღათ ოავტორე ნებეფით თხილერ ნახანდი ავტორიშ ქოყ’იაშ უმშო!'''\"",
-       "templatesused": "თე ხასჷლას გიმორინაფილი {{PLURAL:$1|თანგი|თანგეფი}}:",
+       "templatesused": "თე ხასჷლას გიმორინაფილი რე {{PLURAL:$1|თანგი|თანგი}}:",
        "templatesusedpreview": "{{PLURAL:$1|თანგი|თანგეფი}} ნამუთ თე გჷწოთოლორაფას რე გიმორინაფილი",
        "template-protected": "(თხილერი)",
        "template-semiprotected": "(გვერდო თხილერი)",
-       "hiddencategories": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლა ოკათუ {{PLURAL:$1|1 ტყობინაფილ კატეგორიას|$1 ტყობინაფილ კატეგორიეფს}}:",
+       "hiddencategories": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლა ოკათუ {{PLURAL:$1|1 ტყობინაფილ კატეგორიას|$1 ტყობინაფილ კატეგორიეფს}}:",
        "nocreatetext": "თე ხასილას ვა შილებე ახალ ხასილაშ გექიმინუა დორცხუაფილ ვარიაშ გეშა. თქვა შეგილებუნა კინორთა დო გექიმინელ ხასილაშ რედაქტირაფა, ვარა [[სპეციალურ:Userlogin|მიშულა დო ანგარიშიშ დორცხუაფა]]",
-       "permissionserrorstext-withaction": "á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90 á\83\92á\83\98á\83¦á\83£á\83\9cá\83\90 $2â\80\93á\83\98á\83¨ á\83¦á\83\9dá\83\9aá\83\90á\83\9bá\83\90á\83¨ á\83\90á\83\9aá\83\9dá\83\91á\83\90 á\83\97á\83\94 á\83\92á\83\94á\83¸á\83\95á\83\94á\83\9cá\83¯á\83\98 {{PLURAL:$1|á\83¡á\83\90á\83\9bá\83\90á\83\9cá\83¯á\83\94á\83\9aá\83\98á\83\97\83¡á\83\90á\83\9bá\83\90á\83\9cá\83¯á\83\94á\83\9aá\83\94á\83¤á\83\98á\83\97}}:",
+       "permissionserrorstext-withaction": "თქვა ვა გიღუნა $2–იშ ღოლამაშ ალობა თე გეჸვენჯი {{PLURAL:$1|სამანჯელით|სამანჯელით}}:",
        "recreate-moveddeleted-warn": "'''გართხილება: თქვა კინე ახალშო ორსხუანთ ხასჷლას, ნამუქჷთ ლასირქ იჸუ ოწოხოლე'''\n\nრთხიინთ, დეფირქათ, ქორე თუ ვარ მისაღეფ თე ხასჷლაშ რედაქტირაფაშ გაგინძორება.\nთქვან ოხუჯურო, ათე ხასილაშ ლასუაშ დო გინოღალაშ ჟურნალი მოჩამილ რე თუდო:",
        "moveddeleted-notice": "თე ხასჷლაქ ლასირქ იჸუ. ლასუაშ დო გინოღალაშ ჟურნალი მოჩამილ რე თუდო გიმაწურაფალო",
        "post-expand-template-inclusion-warning": "\"გური ქუჩით:\" ინოხუნაფილ თანგეფიშ ზომა ნაბტანი დიდი რე. კანკალე თანგეფი ვენიკათინე.",
        "post-expand-template-inclusion-category": "ხასჷლეფი ნამუსუთ ინოხუნაფილი თანგეფიშ ზომა გინომეტებული რე.",
        "post-expand-template-argument-warning": "\"'''გური ქუჩით:''' თე ხასჷლას ოკათ არძოშ უკლაშ ართ თიცალ თანგიშ არგუმენტი, ნამუსუთ უღუ გოძინელოფაშ ნაბტან დიდ ზომა.\nთე არგუმენტეფქ გჷშატებულქ იჸუ.\"",
        "post-expand-template-argument-category": "უარგუმენტო თანგამი ხასჷლეფი",
-       "viewpagelogs": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლაშო ორეგისტრაციე ჟურნალეფიშ ძირაფა",
+       "viewpagelogs": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლაშო ორეგისტრაციე ჟურნალეფიშ ძირაფა",
        "currentrev": "მიმალ გიშანწყუალა",
        "currentrev-asof": "$1–შო მიმალ რედაქცია",
        "revisionasof": "$1 თარიღიშო დო საათიშო რსებულ ვერსია",
-       "revision-info": "$1-á\83\98á\83¨ á\83\95á\83\94á\83 á\83¡á\83\98á\83\90, $2-á\83\98á\83¨ á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83 ",
+       "revision-info": "$1-á\83\98á\83¨ á\83\95á\83\94á\83 á\83¡á\83\98á\83\90, $2-á\83\98á\83¨ á\83\9bá\83\98á\83¨á\83\9cá\83\90á\83¦á\83\94á\83\9a",
        "previousrevision": "←უმოს ჯვეშ ვერსია",
        "nextrevision": "უახალაშ ვერსია→",
        "currentrevisionlink": "მიმალ ვერსია",
        "revdel-restore": "ორწყენჯობაშ თირუა",
        "revertmerge": "ეკორტყუალაშ მოლასუა",
        "history-title": "\"$1\"–იშ თირაფეფიშ ისტორია",
+       "difference-title": "$1: შხვანერობა გჷნოჯინეფს შქას",
        "lineno": "ღოზი $1:",
        "compareselectedversions": "გიშაგორილ ვერსიეფიშ მეზიმაფა",
        "editundo": "გოუქვაფა",
        "searchprofile-images-tooltip": "დოგორი ფაილეფი",
        "searchprofile-everything-tooltip": "არძო ხასჷლას გორუა (ოსხუნუე ხასჷლეფიშამო)",
        "searchprofile-advanced-tooltip": "გორუა მახვარებუშ გენჭყილ ჯოხოეფიშ ოფირჩას",
-       "search-result-size": "$1 ({{PLURAL:$2|1 á\83\96á\83\98á\83¢á\83§á\83\95á\83\90|$2 á\83\96á\83\98á\83¢á\83§á\83\95á\83\94á\83¤}})",
+       "search-result-size": "$1 ({{PLURAL:$2|1 á\83\96á\83\98á\83¢á\83§á\83\95á\83\90|$2 á\83\96á\83\98á\83¢á\83§á\83\95á\83\90}})",
        "search-result-category-size": "{{PLURAL:$1|1 მაკათური|$1 მაკათური}} ({{PLURAL:$2|1 გიმენკატეგორია|$2 გიმენკატეგორია}}, {{PLURAL:$3|1 ფაილი|$3 ფაილეფი}})",
        "search-redirect": "(გინოწურაფა $1)",
        "search-section": "(სექცია $1)",
        "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": "გოკონტროლაფირ თირაფეფიშ $1",
        "rcshowhidemine": "ჩქიმ რედაქტირაფეფიშ $1",
+       "rcshowhidemine-show": "ძირაფა",
        "rcshowhidemine-hide": "ტყობინაფა",
        "rclinks": "ეკონია $2 დღას ღოლამირ ეკონია $1 თირაფეფიშ ძირაფა <br />$3",
        "diff": "შხვანერობა",
        "filedesc": "რეზიუმე",
        "license": "ლიცენზირაფა:",
        "license-header": "ლიცენზირაფა",
+       "imgfile": "ფაილი",
        "listfiles": "სურათეფიშ ერკებულ",
        "listfiles_name": "სახელ",
        "file-anchor-link": "ფაილი",
        "withoutinterwiki": "ხასილეფ ნინაშ რსხილეფიშ გარეშე",
        "nbytes": "$1 ბაიტი",
        "nlinks": "$1 რსხილ",
-       "nmembers": "$1 {{PLURAL:$1|მაკათურ|მაკათურეფ}}",
+       "nmembers": "$1 {{PLURAL:$1|მაკათური|მაკათური}}",
        "uncategorizedpages": "უკატეგორიე ხასილეფ",
        "uncategorizedcategories": "კატეგორიეფ კატეგორიეფიშ გარეშე",
        "uncategorizedimages": "სურათეფ კატეგორიაშ უმიშო",
        "pager-older-n": "{{PLURAL:$1|უმოს ჯვეში 1|უმოს ჯვეში $1}}",
        "booksources": "წინგიშ წყუეფი",
        "booksources-search-legend": "წიგნიშ წყუშ გორუა",
+       "booksources-search": "გორუა",
        "specialloguserlabel": "მახვარებუ:",
        "speciallogtitlelabel": "სათაურ:",
        "log": "ჟურნალეფი",
        "deleteotherreason": "შხვა/გეძინელ სამანჯელ:",
        "deletereasonotherlist": "შხვა სამანჯელ",
        "rollbacklink": "დორთა",
+       "rollbacklinkcount": "$1 {{PLURAL:$1|თირაფაშ|თირაფაშ}} გოუქვაფა",
        "protectlogpage": "თხილუაშ ისტორია",
        "protectedarticle": "თხილერი რე \"[[$1]]\"",
        "modifiedarticleprotection": "დოთირეთ თხილუაშ დონე \\\"[[$1]]\\-შო",
        "tooltip-ca-history": "თე ხასჷლაშა მიშაღალირი თირაფეფი",
        "tooltip-ca-protect": "ხასილაშ თხილუა",
        "tooltip-ca-delete": "თე ხასილაშ ლასუა",
-       "tooltip-ca-move": "á\83\92á\83\94á\83\92á\83\9cá\83\98á\83¦á\83\98 á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლა",
+       "tooltip-ca-move": "á\83\92á\83\94á\83\92á\83\9cá\83\98á\83¦á\83\98 á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლა",
        "tooltip-ca-watch": "თე ხასჷლაშ გეძინა თქვან კონტროლირებული ხასჷლეფიშ ერკებულშა",
        "tooltip-ca-unwatch": "მონწყით თე ხასილა თქვან კონტროლებულ ხასილეფიშ ერკებულშე",
        "tooltip-search": "გორუა {{SITENAME}}",
        "tooltip-n-randompage": "ქუმოძირ ნამუდგარდასინ ხასილა",
        "tooltip-n-help": "\"ხასილა, სოდეთ გარკვიენთინ",
        "tooltip-t-whatlinkshere": "არძო ვიკი ხასილაშ ერკებულ, ნამუდგა თაქ იწურუანსინ",
-       "tooltip-t-recentchangeslinked": "თე ხასჷლაწკჷმა მერსხილ ხასჷლეფშა ასერდე მიშაღალირი თირაფეფი",
+       "tooltip-t-recentchangeslinked": "თე ხასჷლაწკჷმა მერსხილ ხასჷლეფშა ასერდე მიშაღალირი თირაფეფი",
        "tooltip-feed-rss": "მოჩამილი ხასილაშ RSS არხიშ ტრანსლაცია",
        "tooltip-feed-atom": "ათე ხასილაშ ატომ არხიშ ტრანსლაცია",
        "tooltip-t-contributions": "თე მახვარებუშ მიშაღალირ თიაშ ერკებულიშ ძირაფა",
        "tooltip-ca-nstab-main": "დინორეშ ხასჷლაშ ძირაფა",
        "tooltip-ca-nstab-user": "მახვარებუშ ხასჷლაშ ძირაფა",
        "tooltip-ca-nstab-special": "თქვა ასე რეთ სპეციალურ ხასჷლას, თქვა ვა შეილებუნა ათე ხასჷლაშ რედაქტირაფა",
-       "tooltip-ca-nstab-project": "á\83\9eá\83 á\83\9dá\83\94á\83¥á\83¢á\83\98á\83¨ á\83®á\83\90á\83¡á\83\98ლაშ ძირაფა",
+       "tooltip-ca-nstab-project": "á\83\9eá\83 á\83\9dá\83\94á\83¥á\83¢á\83\98á\83¨ á\83®á\83\90á\83¡á\83·ლაშ ძირაფა",
        "tooltip-ca-nstab-image": "ფაილიშ ხასჷლაშ ძირაფა",
        "tooltip-ca-nstab-template": "თანგიშ ძირაფა",
        "tooltip-ca-nstab-help": "ქოძირეთ დახვარებაშ გვერდ",
        "tooltip-summary": "კუნტა რეზიუმეშ მიშაჸონაფა",
        "simpleantispam-label": "სპამიშ სააწმარენჯო შემოწმაფა.\nთენა '''ვა''' შეამსათ!",
        "pageinfo-toolboxlink": "ხასჷლაშ ინფორმაცია",
-       "previousdiff": "← წოხოლენი თირაფეფ",
+       "previousdiff": "← წოხოლენ თირაფეფი",
        "nextdiff": "უახალაშ თირაფა →",
        "file-info-size": "$1 × $2 პიქსელ, ფაილიშ ზომა: $3, MIME ტიპ: $4",
        "file-nohires": " უმოს მაღალ გიშაგორანჯალა ვა რე შელებუან.",
        "external_image_whitelist": "\"#ქჷდიტე თე ღოზი კოკობო მუჭო რენ თეში<pre>\n#ქინახუნე რეგულარული გამოსახულებაშ ფრაგმენტეფი (თი ნაწილი ნამუთ თეშ // შქას ინოდოხოდ) თუდოლე\n#თენეფი მეზჷმაფილ იჸე გალენ (hotlinked) სურათეფიშ URL-ეფშა.\n#ნამუთ მიორენ თინა სურათეფო გაგშარჩქინდჷ, ვარ-და ხვალე სურათიშ რცხუ ირწყებედასიი.\n#ღოზეფი #-თ დოჭყაფილი კომენტარო რე მერჩქინელი.\n#თენა გჷნაფულენს ასოეფიშ რეგისტრის.\n\n#ქინახუნე არძო regex ფრაგმენტეფი თე ღოზიშ ჟი. ქჷდიტე თე ღოზი კოკობო მუჭო რენ თეში</pre>\"",
        "tag-filter": "[[Special:Tags|ხინტკეფიშ]] ტკიბირი:",
        "logentry-delete-delete": "მოხვარებუქ $1 {{GENDER:$2|დოლასუ}} ხასჷლა: „$3“",
+       "logentry-move-move": "მახვარებუქ $1 ხასჷლა „$3“ {{GENDER:$2|გეგნიღჷ}} ხასჷლაშა „$4“",
+       "logentry-upload-upload": "მახვარებუქ $1 {{GENDER:$2|ეხარგუ}} $3",
        "searchsuggest-search": "გორუა",
        "special-characters-group-ipa": "IPA"
 }
index 4106e1b..b849ca4 100644 (file)
        "preview": "Àyẹ̀wò",
        "showpreview": "Àkọ́yẹ̀wò",
        "showdiff": "Ìfihàn àwọn àtúnṣe",
-       "anoneditwarning": "'''Ìkìlọ̀:''' Ẹ kò tíì wọlé.\nÀdírẹ́ẹ̀sì IP yín yíò jẹ́ kíkọpamọ́ sínú ìwé ìtàn àtúnṣe ojúewé yìí.",
+       "anoneditwarning": "<strong>Ìkìlọ̀:</strong> Ẹ kò tíì wọlé.\nÀdírẹ́ẹ̀sì IP yín yíò hàn jáde tí ẹ bá ṣe àtùnṣe. Tí ẹ bá <strong>[$1 wọlé]</strong> tàbí <strong>[$2 dá àkópamọ́]</strong>, àwọn àtúnṣe yín yíò hàn pẹ̀lú orúkọ-oníṣe yín, pẹ̀lú àwọn ànfàní míràn.",
        "anonpreviewwarning": "''Ẹ kò tíì wọlé. Àdírẹ́ẹ̀sì IP yín yíò jẹ́ kíkọsílẹ̀ sínú ìwé ìtàn àtúnṣe ojúewé yìí tí ẹ bá ṣàmúpamọ́ rẹ̀.''",
        "missingsummary": "'''Ìránlétí:''' Ẹ kò pèsè àkótán fún àtúnṣe yìí\nTí ẹ bá tẹ Ìmúpamọ́ lẹ́ẹ̀kansi, àtúnṣe yín yíò jẹ̀ mímúpamọ́ láìní kankan.",
        "missingcommenttext": "Ẹjọ̀wọ́ ẹ ṣe áríwí ní ìsàlẹ̀",
        "rcnotefrom": "Àwọn àtúnṣe láti ''''$2''' (títí dé '''$1''' hàn) lábẹ́.",
        "rclistfrom": "Àfihàn àwọn àtúnṣe tuntun nípa bíbẹ̀rẹ̀ láti $3 $2",
        "rcshowhideminor": "$1 àwọn àtúnṣe kékéèké",
+       "rcshowhideminor-hide": "Ìbòmọ́lẹ̀",
        "rcshowhidebots": "$1 àwọn bot",
+       "rcshowhidebots-show": "Ìfihàn",
        "rcshowhideliu": "$1 àwọn oníṣe aforúkọsílẹ̀",
+       "rcshowhideliu-hide": "Ìbòmọ́lẹ̀",
        "rcshowhideanons": "$1 àwọn oníṣe aláìlórúkọ",
+       "rcshowhideanons-hide": "Ìbòmọ́lẹ̀",
        "rcshowhidepatr": "$1 àwọn àtúnṣe ọlùṣọ́",
        "rcshowhidemine": "$1 àwọn àtúnṣe mi",
+       "rcshowhidemine-hide": "Ìbòmọ́lẹ̀",
        "rclinks": "Ṣ'àfihàn àtúnṣe $1 tó kẹ̀yìn ní ọjọ́ $2 sẹ́yìn<br />$3",
        "diff": "ìyàtọ̀",
        "hist": "ìtàn",
        "import-interwiki-history": "Ṣe àwòkọ gbogbo àwọn àtúnyẹ̀wò ìtàn fún ojúewé yìí",
        "import-interwiki-templates": "Ìmúpọ̀ gbogbo àwọn àdàkọ",
        "import-interwiki-submit": "Ìkówọlé",
-       "import-interwiki-namespace": "Orúkọàyè ìdópin:",
-       "import-interwiki-rootpage": "Ojúewé ìpasẹ̀ ìbọ́sí (àṣàyàn):",
        "import-upload-filename": "Orúkọ faili:",
        "import-comment": "Àríwí:",
        "importtext": "Ẹ jọ̀wọ́ ṣe ìkójáde fáìlì láti wiki orísun pẹ̀lú [[Special:Export|aṣe ìkójáde]].\nẸ fipamọ́ sínú kọ̀mpútà yín, kí ẹ sì ṣe ìrùsókè rẹ̀ síbí.",
        "tooltip-pt-mycontris": "Àkójọ àwọn àfikún yín",
        "tooltip-pt-login": "A gbà yín níyànjú kí ẹwọlé, bótilẹ̀jẹ́pẹ́ kò pọndandan.",
        "tooltip-pt-logout": "Ìjáde",
+       "tooltip-pt-createaccount": "Ó dára kí ẹ dá àkópamọ́ kí ẹ sì ṣe ìtẹ̀jáwọlé, ṣùgbọ́n kò pọn dandan",
        "tooltip-ca-talk": "Ìfọ̀rọ̀wérọ̀ nípa ohun inú ojúewé yìí",
        "tooltip-ca-edit": "Ẹ le ṣe àtúnṣe sí ojúewé yìí.\nẸ jọ̀wọ́ ẹ lo bọtini àyẹ̀wò kí ẹ tó fipamọ́.",
        "tooltip-ca-addsection": "Ẹ bẹ̀rẹ̀ abẹlẹ tuntun",
        "spam_reverting": "Ìdápadà sí àtúnyẹ̀wò tó gbẹ̀yìn tí kò ní àjápọ̀ sí $1",
        "spam_blanking": "Gbogbo àtúnyẹ̀wò ní àjápọ̀ sí $1, ìmúkúrò",
        "spam_deleting": "Gbogbo àtúnyẹ̀wò ní àjápọ̀ sí $1, ìparẹ́",
+       "simpleantispam-label": "Ẹ <strong>KÒ GBỌDỌ̀</strong> fi ohun kankan sínú ibí!",
        "pageinfo-title": "Àròyé fún \"$1\"",
        "pageinfo-not-current": "Ìforíjì, kò ṣe é ṣe láti pèsè ẹ̀kúnrẹ̀rẹ̀-ọ̀rọ̀ fún àwọn àtúnyẹ̀wò tó ti pẹ́.",
        "pageinfo-header-basic": "Ọ̀rọ̀ẹ̀kúnrẹ́rẹ́ oníkókó",
        "tags": "Àwọn àlẹ̀mọ́ tuntun gidi",
        "tag-filter": "Ajọ̀ [[Special:Tags|àlẹ́mọ́]]:",
        "tag-filter-submit": "Ajọ̀",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Àlẹ̀mọ́|Àwọn àlẹ̀mọ́}}]]: $2)",
        "tags-title": "Àwọn àlẹ̀mọ́",
        "tags-intro": "Ojúewé yìí ṣe àtòjọ àwọn àlẹ̀mọ́ tí atọ́nà kọ̀mpútà le ṣe àmì àtúnṣe pẹ̀lú, àti ìtumọ̀ wọn.",
        "tags-tag": "Orúkọ àlẹ́mọ́",
        "logentry-patrol-patrol": "$1 ṣe àmí àtúnyẹ̀wò $4 ojúewé $3 bíi sísọ́",
        "logentry-patrol-patrol-auto": "$1 fúnraẹni ṣàmì àtúnyẹ̀wò $4 ti ojúewé $3 bíi síṣọ́",
        "logentry-newusers-newusers": "Àpamọ́ oníṣe $1 jẹ́ dídá",
-       "logentry-newusers-create": "Àpamọ́ oníṣe $1 jẹ́ dídá",
+       "logentry-newusers-create": "Àkọ́pamọ́ oníṣe $1 ti jẹ́ {{GENDER:$2|dídá}}",
        "logentry-newusers-create2": "Àpamọ́ oníṣe $3 jẹ́ dídá látọwọ́ $1",
        "logentry-newusers-autocreate": "Àkópamọ́ $1 jẹ́ dídá fúnrarẹ̀",
        "logentry-rights-rights": "$1 yí ìjọ́mọ ẹgbẹ́ padà fún $3 láti $4 sí $5",
index cb627d7..e90cb51 100644 (file)
        "import-interwiki-history": "複製呢一頁所有嘅歷史修訂",
        "import-interwiki-templates": "包含全部嘅模",
        "import-interwiki-submit": "倒入",
-       "import-interwiki-namespace": "目的空間名:",
-       "import-interwiki-rootpage": "目標根頁(可以填):",
        "import-upload-filename": "檔名:",
        "import-comment": "註解:",
        "importtext": "請由原 wiki 嘅[[Special:Export|匯出工具]]匯出成檔案。\n儲存喺你部電腦度,然後再上載到呢度。",
index 55e9f0a..456f87d 100644 (file)
@@ -84,7 +84,8 @@
                        "Davidzdh",
                        "LNDDYL",
                        "Jiang123aa",
-                       "Cdz"
+                       "Cdz",
+                       "凡人丶"
                ]
        },
        "tog-underline": "链接下划线:",
        "no-null-revision": "无法创建对\"$1\"页面新的空白版本",
        "badtitle": "错误标题",
        "badtitletext": "您请求了个无效、不存在或者跨语言或跨wiki链接标题错误的页面。它可能包含一个或多个不能用于标题的字符。",
+       "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个字节。",
+       "title-invalid-leading-colon": "请求的页面标题开头包含一个无效的冒号。",
        "perfcached": "以下是缓存的数据,可能不是最新的数据。缓存中最多有{{PLURAL:$1|$1条结果}}。",
        "perfcachedts": "以下是缓存的数据,最后更新于$1。缓存中最多有{{PLURAL:$4|$4条结果}}。",
        "querypage-no-updates": "该页面的更新目前停用。这里的数据不会马上刷新。",
index 9653cbf..c26f132 100644 (file)
        "history-feed-description": "本 Wiki 上此頁面的修訂歷史",
        "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-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": "是",
        "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": "{{PLURAL:$1|自上次拜訪}}已有 $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)",
        "emailuser": "Email 聯絡此使用者",
        "emailuser-title-target": "E-mail 聯絡此{{GENDER:$1|使用者}}",
        "emailuser-title-notarget": "E-mail 聯絡使用者",
-       "emailpage": "E-mail 使用者",
+       "emailpage": "E-mail 聯絡使用者",
        "emailpagetext": "您可以使用以下表格傳送電子郵件給這位 {{Gender:$1|使用者}}。\n您在 [[Special:Preferences|偏好設定]] 中所輸入的電子郵件位址將會作為郵件的 \"寄件人\",因此該使用者可直接回覆您。",
        "defemailsubject": "{{SITENAME}} 使用者 \"$1\" 寄來的電子郵件",
        "usermaildisabled": "使用者電子郵件已停用",
        "emailccsubject": "您寄給 $1 的訊息副本:$2",
        "emailsent": "已寄出電子郵件",
        "emailsenttext": "已寄出您的電子郵件訊息。",
-       "emailuserfooter": "這封電子郵件是由 $1 透過 {{SITENAME}} 的 \"Email 聯絡此使用者\" 功能寄給 $2。",
+       "emailuserfooter": "這封電子郵件是由 $1 透過 {{SITENAME}} 的 \"{{int:emailpage}}\" 功能寄給 $2。",
        "usermessage-summary": "留訊息至系統。",
        "usermessage-editor": "系統訊息",
        "watchlist": "監視清單",
        "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|匯出工具]] 從來源 Wiki 匯出檔案,\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-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 頁",
        "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 至頁面 $3 的修訂 $4。",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|已加入}}{{PLURAL:$7|標籤|標籤}} $6 至頁面 $3 的日誌項目 $5。",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|已移除}}{{PLURAL:$9|標籤|標籤}} $8 自頁面 $3 的修訂 $4。",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|已移除}}{{PLURAL:$9|標籤|標籤}} $8 自日誌項目 $3 的修訂 $5。",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|已更新}}標籤於頁面 $3 的修訂 $4 ({{PLURAL:$7|加入}} $6; {{PLURAL:$9|移除}} $8)。",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|已更新}}標籤於頁面 $3 的日誌項目 $5 ({{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": "送出",
        "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": "哎呀!您於 <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-row-enabled": "* <code>$1</code> / $2 (已開啟)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''已停用''')",
diff --git a/languages/messages/MessagesBh.php b/languages/messages/MessagesBh.php
deleted file mode 100644 (file)
index 4453bd1..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-/** Bihari (भोजपुरी)
- *
- * To improve a translation please visit https://translatewiki.net
- *
- * @ingroup Language
- * @file
- *
- */
-
-$fallback = 'bho';
-
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 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 f97f6dc..c97c6a3 100644 (file)
@@ -603,13 +603,19 @@ abstract class Maintenance {
         * Activate the profiler (assuming $wgProfiler is set)
         */
        protected function activateProfiler() {
-               global $wgProfiler;
+               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 );
@@ -617,8 +623,7 @@ abstract class Maintenance {
 
                $trxProfiler = Profiler::instance()->getTransactionProfiler();
                $trxProfiler->setLogger( LoggerFactory::getInstance( 'DBPerformance' ) );
-               # Catch huge single updates that lead to slave lag
-               $trxProfiler->setExpectation( 'maxAffected', 1000, __METHOD__ );
+               $trxProfiler->setExpectations( $wgTrxProfilerLimits['Maintenance'], __METHOD__ );
        }
 
        /**
index fb25b9d..1446871 100644 (file)
@@ -66,7 +66,7 @@ class BenchmarkHooks extends Benchmarker {
        private function benchHooks( $trials = 10 ) {
                $start = microtime( true );
                for ( $i = 0; $i < $trials; $i++ ) {
-                       wfRunHooks( 'Test' );
+                       Hooks::run( 'Test' );
                }
                $delta = microtime( true ) - $start;
                $pertrial = $delta / $trials;
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 2fb3697..06370e9 100644 (file)
@@ -6,13 +6,14 @@ class ConvertExtensionToRegistration extends Maintenance {
 
        protected $custom = array(
                'MessagesDirs' => 'handleMessagesDirs',
-               'ExtensionMessagesFiles' => 'removeAbsolutePath',
+               'ExtensionMessagesFiles' => 'handleExtensionMessagesFiles',
                'AutoloadClasses' => 'removeAbsolutePath',
                'ExtensionCredits' => 'handleCredits',
                'ResourceModules' => 'handleResourceModules',
                'ResourceModuleSkinStyles' => 'handleResourceModules',
                'Hooks' => 'handleHooks',
                'ExtensionFunctions' => 'handleExtensionFunctions',
+               'ParserTestFiles' => 'removeAbsolutePath',
        );
 
        /**
@@ -79,7 +80,7 @@ class ConvertExtensionToRegistration extends Maintenance {
                        }
                        $realName = substr( $name, 2 ); // Strip 'wg'
                        if ( isset( $this->custom[$realName] ) ) {
-                               call_user_func_array( array( $this, $this->custom[$realName] ), array( $realName, $value ) );
+                               call_user_func_array( array( $this, $this->custom[$realName] ), array( $realName, $value, $vars ) );
                        } elseif ( in_array( $realName, $globalSettings ) ) {
                                $this->json[$realName] = $value;
                        } elseif ( strpos( $name, 'wg' ) === 0 ) {
@@ -123,6 +124,21 @@ class ConvertExtensionToRegistration extends Maintenance {
                }
        }
 
+       protected function handleExtensionMessagesFiles( $realName, $value, $vars ) {
+               foreach ( $value as $key => $file ) {
+                       $strippedFile = $this->stripPath( $file, $this->dir );
+                       if ( isset( $vars['wgMessagesDirs'][$key] ) ) {
+                               $this->output(
+                                       "Note: Ignoring PHP shim $strippedFile. " .
+                                       "If your extension no longer supports versions of MediaWiki " .
+                                       "older than 1.23.0, you can safely delete it.\n"
+                               );
+                       } else {
+                               $this->json[$realName][$key] = $strippedFile;
+                       }
+               }
+       }
+
        private function stripPath( $val, $dir ) {
                if ( $val === $dir ) {
                        $val = '';
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 94ca604..8fdcef3 100644 (file)
@@ -73,7 +73,6 @@ class EraseArchivedFile extends Maintenance {
 
                $this->output( "Purging all thumbnails for file '$filename'..." );
                $file->purgeCache();
-               $file->purgeHistory();
                $this->output( "done.\n" );
 
                if ( $afile instanceof ArchivedFile ) {
index 22d9940..b9c07fb 100644 (file)
@@ -39,11 +39,8 @@ class GenerateJsonI18n extends Maintenance {
 
                $this->addArg( 'phpfile', 'PHP file defining a $messages array', false );
                $this->addArg( 'jsondir', 'Directory to write JSON files to', false );
-               $this->addOption( 'langcode', 'Language code; only needed for converting core i18n files',
-                       false, true );
                $this->addOption( 'extension', 'Perform default conversion on an extension',
                        false, true );
-               $this->addOption( 'shim-only', 'Only create or update the backward-compatibility shim' );
                $this->addOption( 'supplementary', 'Find supplementary i18n files in subdirs and convert those',
                        false, false );
        }
@@ -58,13 +55,13 @@ class GenerateJsonI18n extends Maintenance {
 
                if ( $extension ) {
                        if ( $phpfile ) {
-                               $this->error( "The phpfile is already specified, conflicts with --extension.\n", 1 );
+                               $this->error( "The phpfile is already specified, conflicts with --extension.", 1 );
                        }
                        $phpfile = "$IP/extensions/$extension/$extension.i18n.php";
                }
 
                if ( !$phpfile ) {
-                       $this->error( "I'm here for an argument!\n" );
+                       $this->error( "I'm here for an argument!" );
                        $this->maybeHelp( true );
                        // dies.
                }
@@ -104,47 +101,32 @@ class GenerateJsonI18n extends Maintenance {
                        $this->output( "Creating directory $jsondir.\n" );
                        $success = mkdir( $jsondir );
                        if ( !$success ) {
-                               $this->error( "Could not create directory $jsondir\n", 1 );
+                               $this->error( "Could not create directory $jsondir", 1 );
                        }
                }
 
-               if ( $this->hasOption( 'shim-only' ) ) {
-                       $this->shimOnly( $phpfile, $jsondir );
-
-                       return;
-               }
-
-               if ( $jsondir === null ) {
-                       $this->error( 'Argument [jsondir] is required unless --shim-only is specified.' );
-                       $this->maybeHelp( true );
-               }
-
                if ( !is_readable( $phpfile ) ) {
-                       $this->error( "Error reading $phpfile\n", 1 );
+                       $this->error( "Error reading $phpfile", 1 );
                }
                include $phpfile;
                $phpfileContents = file_get_contents( $phpfile );
 
                if ( !isset( $messages ) ) {
-                       $this->error( "PHP file $phpfile does not define \$messages array\n", 1 );
+                       $this->error( "PHP file $phpfile does not define \$messages array", 1 );
+               }
+
+               if ( !$messages ) {
+                       $this->error( "PHP file $phpfile contains an empty \$messages array. " .
+                               "Maybe it was already converted?", 1 );
                }
 
-               $extensionStyle = true;
                if ( !isset( $messages['en'] ) || !is_array( $messages['en'] ) ) {
-                       if ( !$this->hasOption( 'langcode' ) ) {
-                               $this->error( "PHP file $phpfile does not set language codes, --langcode " .
-                                       "is required.\n", 1 );
-                       }
-                       $extensionStyle = false;
-                       $langcode = $this->getOption( 'langcode' );
-                       $messages = array( $langcode => $messages );
-               } elseif ( $this->hasOption( 'langcode' ) ) {
-                       $this->output( "Warning: --langcode option set but will not be used.\n" );
+                       $this->error( "PHP file $phpfile does not set language codes", 1 );
                }
 
                foreach ( $messages as $langcode => $langmsgs ) {
                        $authors = $this->getAuthorsFromComment( $this->findCommentBefore(
-                               $extensionStyle ? "\$messages['$langcode'] =" : '$messages =',
+                               "\$messages['$langcode'] =",
                                $phpfileContents
                        ) );
                        // Make sure the @metadata key is the first key in the output
@@ -164,89 +146,15 @@ class GenerateJsonI18n extends Maintenance {
                        $this->output( "$jsonfile\n" );
                }
 
-               if ( !$this->hasOption( 'langcode' ) ) {
-                       $shim = $this->doShim( $jsondir );
-                       file_put_contents( $phpfile, $shim );
-               }
-
-               $this->output( "All done.\n" );
-               $this->output( "Also add \$wgMessagesDirs['YourExtension'] = __DIR__ . '/i18n';\n" );
-       }
-
-       protected function shimOnly( $phpfile, $jsondir ) {
-               if ( file_exists( $phpfile ) ) {
-                       if ( !is_readable( $phpfile ) ) {
-                               $this->error( "Error reading $phpfile\n", 1 );
-                       }
-
-                       $phpfileContents = file_get_contents( $phpfile );
-                       $m = array();
-                       if ( !preg_match( '!"/([^"$]+)/\$csCode.json";!', $phpfileContents, $m ) ) {
-                               $this->error( "Cannot recognize $phpfile as a shim.\n", 1 );
-                       }
-
-                       if ( $jsondir === null ) {
-                               $jsondir = $m[1];
-                       }
-
-                       $this->output( "Updating existing shim $phpfile\n" );
-               } elseif ( $jsondir === null ) {
-                       $this->error( "$phpfile does not exist.\n" .
-                               "Argument [jsondir] is required in order to create a new shim.\n", 1 );
-               } else {
-                       $this->output( "Creating new shim $phpfile\n" );
-               }
-
-               $shim = $this->doShim( $jsondir );
-               file_put_contents( $phpfile, $shim );
-               $this->output( "All done.\n" );
-       }
-
-       protected function doShim( $jsondir ) {
-               $shim = <<<'PHP'
-<?php
-/**
- * This is a backwards-compatibility shim, generated by:
- * https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php
- *
- * Beginning with MediaWiki 1.23, translation strings are stored in json files,
- * and the EXTENSION.i18n.php file only exists to provide compatibility with
- * older releases of MediaWiki. For more information about this migration, see:
- * https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format
- *
- * This shim maintains compatibility back to MediaWiki 1.17.
- */
-$messages = array();
-if ( !function_exists( '{{FUNC}}' ) ) {
-       function {{FUNC}}( $cache, $code, &$cachedData ) {
-               $codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] );
-               foreach ( $codeSequence as $csCode ) {
-                       $fileName = dirname( __FILE__ ) . "/{{OUT}}/$csCode.json";
-                       if ( is_readable( $fileName ) ) {
-                               $data = FormatJson::decode( file_get_contents( $fileName ), true );
-                               foreach ( array_keys( $data ) as $key ) {
-                                       if ( $key === '' || $key[0] === '@' ) {
-                                               unset( $data[$key] );
-                                       }
-                               }
-                               $cachedData['messages'] = array_merge( $data, $cachedData['messages'] );
-                       }
-
-                       $cachedData['deps'][] = new FileDependency( $fileName );
-               }
-               return true;
-       }
-
-       $GLOBALS['wgHooks']['LocalisationCacheRecache'][] = '{{FUNC}}';
-}
-
-PHP;
-
-               $jsondir = str_replace( '\\', '/', $jsondir );
-               $shim = str_replace( '{{OUT}}', $jsondir, $shim );
-               $shim = str_replace( '{{FUNC}}', 'wfJsonI18nShim' . wfRandomString( 16 ), $shim );
-
-               return $shim;
+               $this->output(
+                       "All done. To complete the conversion, please do the following:\n" .
+                       "* Add \$wgMessagesDirs['YourExtension'] = __DIR__ . '/i18n';\n" .
+                       "* Remove \$wgExtensionMessagesFiles['YourExtension']\n" .
+                       "* Delete the old PHP message file\n" .
+                       "This script no longer generates backward compatibility shims! If you need\n" .
+                       "compatibility with MediaWiki 1.22 and older, use the MediaWiki 1.23 version\n" .
+                       "of this script instead, or create a shim manually.\n"
+               );
        }
 
        /**
index 990f258..0c3ea67 100644 (file)
@@ -339,7 +339,7 @@ ENDS;
 
                $blacklist = $checkBlacklist;
 
-               wfRunHooks( 'LocalisationChecksBlacklist', array( &$blacklist ) );
+               Hooks::run( 'LocalisationChecksBlacklist', array( &$blacklist ) );
 
                return $blacklist;
        }
index fb496cb..9affb9e 100644 (file)
@@ -63,7 +63,7 @@ class Languages {
         * files in the languages directory.
         */
        function __construct() {
-               wfRunHooks( 'LocalisationIgnoredOptionalMessages',
+               Hooks::run( 'LocalisationIgnoredOptionalMessages',
                        array( &$this->mIgnoredMessages, &$this->mOptionalMessages ) );
 
                $this->mLanguages = array_keys( Language::fetchLanguageNames( null, 'mwfile' ) );
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 d21a296..b98e95f 100644 (file)
@@ -166,7 +166,6 @@ class PurgeChangedFiles extends Maintenance {
 
                                // Purge current version and any versions in oldimage table
                                $file->purgeCache();
-                               $file->purgeHistory();
 
                                if ( $logType === 'delete' ) {
                                        // If there is an orphaned storage file... delete it
@@ -191,7 +190,6 @@ class PurgeChangedFiles extends Maintenance {
                                                $target = $params['4::target'];
                                                $targetFile = $repo->newFile( Title::makeTitle( NS_FILE, $target ) );
                                                $targetFile->purgeCache();
-                                               $targetFile->purgeHistory();
                                                $this->verbose( "Purged file {$target}; move target @{$row->log_timestamp}.\n" );
                                        }
                                }
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 e1b6ac6..5d311ad 100644 (file)
@@ -83,7 +83,7 @@ class RefreshLinks extends Maintenance {
                }
 
                // Give extensions a chance to optimize settings
-               wfRunHooks( 'MaintenanceRefreshLinksInit', array( $this ) );
+               Hooks::run( 'MaintenanceRefreshLinksInit', array( $this ) );
 
                # Don't generate extension images (e.g. Timeline)
                $wgParser->clearTagHooks();
index f6245f2..d0989e2 100755 (executable)
@@ -1,8 +1,8 @@
-#!/usr/bin/env bash
+#!/bin/bash -eu
 
 # This script generates a commit that updates our copy of OOjs UI
 
-if [ -n "$2" ]
+if [ -n "${2:-}" ]
 then
        # Too many parameters
        echo >&2 "Usage: $0 [<version>]"
@@ -14,18 +14,21 @@ TARGET_DIR="resources/lib/oojs-ui" # Destination relative to the root of the rep
 NPM_DIR=$(mktemp -d 2>/dev/null || mktemp -d -t 'update-oojs-ui') # e.g. /tmp/update-oojs-ui.rI0I5Vir
 
 # Prepare working tree
-cd "$REPO_DIR" &&
-git reset composer.json && git checkout composer.json &&
-git reset $TARGET_DIR && git checkout $TARGET_DIR && git fetch origin &&
-git checkout -B upstream-oojs-ui origin/master || exit 1
+cd "$REPO_DIR"
+git reset composer.json
+git checkout composer.json
+git reset -- $TARGET_DIR
+git checkout -- $TARGET_DIR
+git fetch origin
+git checkout -B upstream-oojs-ui origin/master
 
 # Fetch upstream version
 cd $NPM_DIR
-if [ -n "$1" ]
+if [ -n "${1:-}" ]
 then
-       npm install "oojs-ui@$1" || exit 1
+       npm install "oojs-ui@$1"
 else
-       npm install oojs-ui || exit 1
+       npm install oojs-ui
 fi
 
 OOJSUI_VERSION=$(node -e 'console.log(require("./node_modules/oojs-ui/package.json").version);')
@@ -35,24 +38,22 @@ then
        exit 1
 fi
 
-# Copy files, excluding:
-# * the Apex theme files,
-# * the minimised distribution files, and
-# * the RTL sheets for non-CSSJanus environments
-# * the raster- and vector-only distribution sheets
-rsync --force --recursive --delete \
-       --exclude '*apex*' \
-       --exclude 'oojs-ui*.min.*' \
-       --exclude 'oojs-ui*.rtl.css' \
-       --exclude 'oojs-ui*.raster.css' \
-       --exclude 'oojs-ui*.vector.css' \
-       ./node_modules/oojs-ui/dist/ "$REPO_DIR/$TARGET_DIR" || exit 1
+# Copy files, picking the necessary ones from source and distribution
+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"
+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"
 
 # Clean up temporary area
 rm -rf "$NPM_DIR"
 
 # Generate commit
-cd $REPO_DIR || exit 1
+cd $REPO_DIR
 
 COMMITMSG=$(cat <<END
 Update OOjs UI to v$OOJSUI_VERSION
@@ -66,4 +67,7 @@ END
 composer require oojs/oojs-ui $OOJSUI_VERSION --no-update
 
 # Stage deletion, modification and creation of files. Then commit.
-git add --update $TARGET_DIR && git add $TARGET_DIR && git add composer.json && git commit -m "$COMMITMSG" || exit 1
+git add --update $TARGET_DIR
+git add $TARGET_DIR
+git add composer.json
+git commit -m "$COMMITMSG"
index 1d5c2b1..b91cb28 100755 (executable)
@@ -1,8 +1,8 @@
-#!/usr/bin/env bash
+#!/bin/bash -eu
 
 # This script generates a commit that updates our copy of OOjs
 
-if [ -n "$2" ]
+if [ -n "${2:-}" ]
 then
        # Too many parameters
        echo >&2 "Usage: $0 [<version>]"
@@ -14,17 +14,19 @@ TARGET_DIR="resources/lib/oojs" # Destination relative to the root of the repo
 NPM_DIR=$(mktemp -d 2>/dev/null || mktemp -d -t 'update-oojs') # e.g. /tmp/update-oojs.rI0I5Vir
 
 # Prepare working tree
-cd "$REPO_DIR" &&
-git reset $TARGET_DIR && git checkout $TARGET_DIR && git fetch origin &&
-git checkout -B upstream-oojs origin/master || exit 1
+cd "$REPO_DIR"
+git reset -- $TARGET_DIR
+git checkout -- $TARGET_DIR
+git fetch origin
+git checkout -B upstream-oojs origin/master
 
 # Fetch upstream version
 cd $NPM_DIR
-if [ -n "$1" ]
+if [ -n "${1:-}" ]
 then
-       npm install "oojs@$1" || exit 1
+       npm install "oojs@$1"
 else
-       npm install oojs || exit 1
+       npm install oojs
 fi
 
 OOJS_VERSION=$(node -e 'console.log(require("./node_modules/oojs/package.json").version);')
@@ -35,13 +37,13 @@ then
 fi
 
 # Copy file(s)
-rsync --force ./node_modules/oojs/dist/oojs.jquery.js "$REPO_DIR/$TARGET_DIR" || exit 1
+rsync --force ./node_modules/oojs/dist/oojs.jquery.js "$REPO_DIR/$TARGET_DIR"
 
 # Clean up temporary area
 rm -rf "$NPM_DIR"
 
 # Generate commit
-cd $REPO_DIR || exit 1
+cd $REPO_DIR
 
 COMMITMSG=$(cat <<END
 Update OOjs to v$OOJS_VERSION
@@ -52,4 +54,6 @@ END
 )
 
 # Stage deletion, modification and creation of files. Then commit.
-git add --update $TARGET_DIR && git add $TARGET_DIR && git commit -m "$COMMITMSG" || exit 1
+git add --update $TARGET_DIR
+git add $TARGET_DIR
+git commit -m "$COMMITMSG"
index 0fd1fd8..b8af5e9 100755 (executable)
@@ -63,8 +63,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 +125,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 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 5e5e35d..0b56972 100644 (file)
@@ -94,7 +94,7 @@ foreach ( $wgOpenSearchTemplates as $type => $template ) {
 
 // Allow hooks to override the suggestion URL settings in a more
 // general way than overriding the whole search engine...
-wfRunHooks( 'OpenSearchUrls', array( &$urls ) );
+Hooks::run( 'OpenSearchUrls', array( &$urls ) );
 
 foreach ( $urls as $attribs ) {
        print Xml::element( 'Url', $attribs );
index fc2bd3a..42270f7 100644 (file)
     "grunt-cli": "0.1.13",
     "grunt-banana-checker": "0.2.1",
     "grunt-contrib-copy": "0.8.0",
-    "grunt-contrib-jshint": "0.11.0",
+    "grunt-contrib-jshint": "0.11.2",
     "grunt-contrib-watch": "0.6.1",
-    "grunt-jscs": "1.5.0",
+    "grunt-jscs": "1.8.0",
     "grunt-jsonlint": "1.0.4",
     "grunt-karma": "0.10.1",
     "karma": "0.12.31",
-    "karma-chrome-launcher": "0.1.7",
+    "karma-chrome-launcher": "0.1.8",
     "karma-firefox-launcher": "0.1.4",
     "karma-qunit": "0.1.4",
-    "qunitjs": "1.17.1"
+    "qunitjs": "1.18.0"
   }
 }
index e2f05b6..5f51702 100644 (file)
@@ -209,7 +209,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' ),
@@ -773,6 +772,7 @@ return array(
        /* MediaWiki */
 
        'mediawiki' => array(
+               'class' => 'ResourceLoaderRawFileModule',
                // Keep maintenance/jsduck/eg-iframe.html in sync
                'scripts' => array(
                        'resources/src/mediawiki/mediawiki.js',
@@ -780,7 +780,6 @@ return array(
                        'resources/src/mediawiki/mediawiki.startUp.js',
                ),
                'debugScripts' => 'resources/src/mediawiki/mediawiki.log.js',
-               'raw' => true,
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.apihelp' => array(
@@ -981,10 +980,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' ),
@@ -1027,7 +1029,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 +1041,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',
@@ -1730,6 +1732,9 @@ return 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',
@@ -1750,124 +1755,127 @@ return array(
 
        '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.css',
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css',
                ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
 
-       // FIXME: This is a bit of a mess; T92551 requests fixing
+       'oojs-ui.styles.icons' => array(
+               'class' => 'ResourceLoaderImageModule',
+               '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',
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'indicators.json',
+       ),
+       'oojs-ui.styles.textures' => array(
+               'class' => 'ResourceLoaderImageModule',
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'textures.json',
+       ),
        'oojs-ui.styles.icons-alerts' => array(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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(
-               'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'class' => 'ResourceLoaderImageModule',
+               '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',
        ),
 
 );
index 1c3aa82..6feb110 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery JavaScript Library v1.11.2
+ * jQuery JavaScript Library v1.11.3
  * http://jquery.com/
  *
  * Includes Sizzle.js
@@ -9,7 +9,7 @@
  * Released under the MIT license
  * http://jquery.org/license
  *
- * Date: 2014-12-17T15:27Z
+ * Date: 2015-04-28T16:19Z
  */
 
 (function( global, factory ) {
@@ -64,7 +64,7 @@ var support = {};
 
 
 var
-       version = "1.11.2",
+       version = "1.11.3",
 
        // Define a local copy of jQuery
        jQuery = function( selector, context ) {
@@ -569,7 +569,12 @@ jQuery.each("Boolean Number String Function Array Date RegExp Object Error".spli
 });
 
 function isArraylike( obj ) {
-       var length = obj.length,
+
+       // Support: iOS 8.2 (not reproducible in simulator)
+       // `in` check used to prevent JIT error (gh-2145)
+       // hasOwn isn't used here due to false negatives
+       // regarding Nodelist length in IE
+       var length = "length" in obj && obj.length,
                type = jQuery.type( obj );
 
        if ( type === "function" || jQuery.isWindow( obj ) ) {
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..be9a8ab
--- /dev/null
@@ -0,0 +1,13 @@
+{
+       "@metadata": {
+               "authors": [
+                       "George Animal"
+               ]
+       },
+       "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 94bc7df..ebffe53 100644 (file)
@@ -6,5 +6,13 @@
        },
        "ooui-outline-control-move-down": "توکی ښکته راوړل",
        "ooui-outline-control-move-up": "توکی پورته راوړل",
-       "ooui-toolbar-more": "نور"
+       "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": "بيا هڅه"
 }
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css
deleted file mode 100644 (file)
index ee5f281..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-bell {
-       background-image: url("themes/mediawiki/images/icons/bell.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bell.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bell.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bell.png");
-}
-.oo-ui-icon-bellOn {
-       background-image: url("themes/mediawiki/images/icons/bellOn-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bellOn-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bellOn-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bellOn-ltr.png");
-}
-.oo-ui-icon-eye {
-       background-image: url("themes/mediawiki/images/icons/eye.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eye.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eye.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/eye.png");
-}
-.oo-ui-icon-eyeClosed {
-       background-image: url("themes/mediawiki/images/icons/eyeClosed.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eyeClosed.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eyeClosed.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/eyeClosed.png");
-}
-.oo-ui-icon-message {
-       background-image: url("themes/mediawiki/images/icons/message-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/message-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/message-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/message-ltr.png");
-}
-.oo-ui-icon-signature {
-       background-image: url("themes/mediawiki/images/icons/signature-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/signature-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/signature-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/signature-ltr.png");
-}
-.oo-ui-icon-speechBubble {
-       background-image: url("themes/mediawiki/images/icons/speechBubble-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubble-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubble-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/speechBubble-ltr.png");
-}
-.oo-ui-icon-speechBubbleAdd {
-       background-image: url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.png");
-}
-.oo-ui-icon-speechBubbles {
-       background-image: url("themes/mediawiki/images/icons/speechBubbles-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbles-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbles-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/speechBubbles-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css
deleted file mode 100644 (file)
index d26af40..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-article {
-       background-image: url("themes/mediawiki/images/icons/article-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/article-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/article-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/article-ltr.png");
-}
-.oo-ui-icon-articleCheck {
-       background-image: url("themes/mediawiki/images/icons/articleCheck-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleCheck-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleCheck-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/articleCheck-ltr.png");
-}
-.oo-ui-icon-articleSearch {
-       background-image: url("themes/mediawiki/images/icons/articleSearch-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleSearch-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleSearch-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/articleSearch-ltr.png");
-}
-.oo-ui-icon-book {
-       background-image: url("themes/mediawiki/images/icons/book-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/book-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/book-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/book-ltr.png");
-}
-.oo-ui-icon-citeArticle {
-       background-image: url("themes/mediawiki/images/icons/citeArticle-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/citeArticle-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/citeArticle-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/citeArticle-ltr.png");
-}
-.oo-ui-icon-die {
-       background-image: url("themes/mediawiki/images/icons/die-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/die-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/die-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/die-ltr.png");
-}
-.oo-ui-icon-download {
-       background-image: url("themes/mediawiki/images/icons/download-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/download-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/download-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/download-ltr.png");
-}
-.oo-ui-icon-folderPlaceholder {
-       background-image: url("themes/mediawiki/images/icons/folderPlaceholder-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/folderPlaceholder-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/folderPlaceholder-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/folderPlaceholder-ltr.png");
-}
-.oo-ui-icon-journal {
-       background-image: url("themes/mediawiki/images/icons/journal-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/journal-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/journal-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/journal-ltr.png");
-}
-.oo-ui-icon-newspaper {
-       background-image: url("themes/mediawiki/images/icons/newspaper-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newspaper-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newspaper-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/newspaper-ltr.png");
-}
-.oo-ui-icon-upload {
-       background-image: url("themes/mediawiki/images/icons/upload-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upload-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upload-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/upload-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css
deleted file mode 100644 (file)
index 90d8555..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-alignCentre {
-       background-image: url("themes/mediawiki/images/icons/align-center.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-center.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-center.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/align-center.png");
-}
-.oo-ui-icon-alignLeft {
-       background-image: url("themes/mediawiki/images/icons/align-float-left.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-float-left.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-float-left.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/align-float-left.png");
-}
-.oo-ui-icon-alignRight {
-       background-image: url("themes/mediawiki/images/icons/align-float-right.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-float-right.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-float-right.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/align-float-right.png");
-}
-.oo-ui-icon-find {
-       background-image: url("themes/mediawiki/images/icons/find-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/find-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/find-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/find-ltr.png");
-}
-.oo-ui-icon-insert {
-       background-image: url("themes/mediawiki/images/icons/insert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/insert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/insert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/insert.png");
-}
-.oo-ui-icon-layout {
-       background-image: url("themes/mediawiki/images/icons/layout-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/layout-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/layout-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/layout-ltr.png");
-}
-.oo-ui-icon-newline {
-       background-image: url("themes/mediawiki/images/icons/newline-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newline-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newline-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/newline-ltr.png");
-}
-.oo-ui-icon-redirect {
-       background-image: url("themes/mediawiki/images/icons/redirect-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/redirect-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/redirect-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/redirect-ltr.png");
-}
-.oo-ui-icon-noWikiText {
-       background-image: url("themes/mediawiki/images/icons/noWikiText-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/noWikiText-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/noWikiText-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/noWikiText-ltr.png");
-}
-.oo-ui-icon-outline {
-       background-image: url("themes/mediawiki/images/icons/outline-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outline-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outline-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/outline-ltr.png");
-}
-.oo-ui-icon-puzzle {
-       background-image: url("themes/mediawiki/images/icons/puzzle-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/puzzle-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/puzzle-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/puzzle-ltr.png");
-}
-.oo-ui-icon-quotes {
-       background-image: url("themes/mediawiki/images/icons/quotes-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotes-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotes-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/quotes-ltr.png");
-}
-.oo-ui-icon-quotesAdd {
-       background-image: url("themes/mediawiki/images/icons/quotesAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotesAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotesAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/quotesAdd-ltr.png");
-}
-.oo-ui-icon-searchCaseSensitive {
-       background-image: url("themes/mediawiki/images/icons/case-sensitive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/case-sensitive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/case-sensitive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/case-sensitive.png");
-}
-.oo-ui-icon-searchRegularExpression {
-       background-image: url("themes/mediawiki/images/icons/regular-expression.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/regular-expression.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/regular-expression.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/regular-expression.png");
-}
-.oo-ui-icon-specialCharacter {
-       background-image: url("themes/mediawiki/images/icons/specialCharacter.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/specialCharacter.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/specialCharacter.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/specialCharacter.png");
-}
-.oo-ui-icon-table {
-       background-image: url("themes/mediawiki/images/icons/table.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table.png");
-}
-.oo-ui-icon-tableAddColumnAfter {
-       background-image: url("themes/mediawiki/images/icons/table-insert-column-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-column-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-column-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-insert-column-rtl.png");
-}
-.oo-ui-icon-tableAddColumnBefore {
-       background-image: url("themes/mediawiki/images/icons/table-insert-column-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-column-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-column-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-insert-column-ltr.png");
-}
-.oo-ui-icon-tableAddRowAfter {
-       background-image: url("themes/mediawiki/images/icons/table-insert-row-after.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-row-after.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-row-after.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-insert-row-after.png");
-}
-.oo-ui-icon-tableAddRowBefore {
-       background-image: url("themes/mediawiki/images/icons/table-insert-row-before.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-row-before.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-row-before.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-insert-row-before.png");
-}
-.oo-ui-icon-tableCaption {
-       background-image: url("themes/mediawiki/images/icons/table-caption.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-caption.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-caption.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-caption.png");
-}
-.oo-ui-icon-tableMergeCells {
-       background-image: url("themes/mediawiki/images/icons/table-merge-cells.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-merge-cells.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-merge-cells.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-merge-cells.png");
-}
-.oo-ui-icon-templateAdd {
-       background-image: url("themes/mediawiki/images/icons/templateAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/templateAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/templateAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/templateAdd-ltr.png");
-}
-.oo-ui-icon-translation {
-       background-image: url("themes/mediawiki/images/icons/translation-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/translation-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/translation-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/translation-ltr.png");
-}
-.oo-ui-icon-wikiText {
-       background-image: url("themes/mediawiki/images/icons/wikiText.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikiText.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikiText.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/wikiText.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css
deleted file mode 100644 (file)
index b7ded14..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-edit {
-       background-image: url("themes/mediawiki/images/icons/edit-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/edit-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/edit-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/edit-ltr.png");
-}
-.oo-ui-icon-editLock {
-       background-image: url("themes/mediawiki/images/icons/editLock-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editLock-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editLock-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/editLock-ltr.png");
-}
-.oo-ui-icon-editUndo {
-       background-image: url("themes/mediawiki/images/icons/editUndo-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editUndo-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editUndo-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/editUndo-ltr.png");
-}
-.oo-ui-icon-link {
-       background-image: url("themes/mediawiki/images/icons/link-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/link-ltr.png");
-}
-.oo-ui-icon-linkExternal {
-       background-image: url("themes/mediawiki/images/icons/external-link-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/external-link-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/external-link-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/external-link-ltr.png");
-}
-.oo-ui-icon-linkSecure {
-       background-image: url("themes/mediawiki/images/icons/secure-link.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/secure-link.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/secure-link.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/secure-link.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css
deleted file mode 100644 (file)
index 9a1532b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-indent {
-       background-image: url("themes/mediawiki/images/icons/indent-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/indent-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/indent-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/indent-ltr.png");
-}
-.oo-ui-icon-listBullet {
-       background-image: url("themes/mediawiki/images/icons/listBullet-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listBullet-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listBullet-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/listBullet-ltr.png");
-}
-.oo-ui-icon-listNumbered {
-       background-image: url("themes/mediawiki/images/icons/listNumbered-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listNumbered-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listNumbered-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/listNumbered-ltr.png");
-}
-.oo-ui-icon-outdent {
-       background-image: url("themes/mediawiki/images/icons/outdent-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outdent-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outdent-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/outdent-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css
deleted file mode 100644 (file)
index 6b657b7..0000000
+++ /dev/null
@@ -1,495 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-bigger {
-       background-image: url("themes/mediawiki/images/icons/bigger-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bigger-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bigger-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bigger-ltr.png");
-}
-.oo-ui-icon-smaller {
-       background-image: url("themes/mediawiki/images/icons/smaller-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/smaller-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/smaller-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/smaller-ltr.png");
-}
-.oo-ui-icon-subscript {
-       background-image: url("themes/mediawiki/images/icons/subscript-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/subscript-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/subscript-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/subscript-ltr.png");
-}
-.oo-ui-icon-superscript {
-       background-image: url("themes/mediawiki/images/icons/superscript-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/superscript-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/superscript-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/superscript-ltr.png");
-}
-.oo-ui-icon-bold {
-       background-image: url("themes/mediawiki/images/icons/bold-a.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-a.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-a.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-a.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ar) {
-       background-image: url("themes/mediawiki/images/icons/bold-arab-ain.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-arab-ain.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-arab-ain.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-arab-ain.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(be) {
-       background-image: url("themes/mediawiki/images/icons/bold-cyrl-te.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-te.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-te.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-cyrl-te.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(cs) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(en) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(he) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ml) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(pl) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(da) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(de) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(hu) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ksh) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(nn) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(no) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(sv) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(es) {
-       background-image: url("themes/mediawiki/images/icons/bold-n.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-n.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(gl) {
-       background-image: url("themes/mediawiki/images/icons/bold-n.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-n.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(pt) {
-       background-image: url("themes/mediawiki/images/icons/bold-n.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-n.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(eu) {
-       background-image: url("themes/mediawiki/images/icons/bold-l.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-l.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-l.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-l.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(fi) {
-       background-image: url("themes/mediawiki/images/icons/bold-l.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-l.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-l.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-l.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(fa) {
-       background-image: url("themes/mediawiki/images/icons/bold-arab-dad.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-arab-dad.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-arab-dad.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-arab-dad.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(fr) {
-       background-image: url("themes/mediawiki/images/icons/bold-g.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-g.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-g.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-g.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(it) {
-       background-image: url("themes/mediawiki/images/icons/bold-g.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-g.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-g.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-g.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(hy) {
-       background-image: url("themes/mediawiki/images/icons/bold-armn-to.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-armn-to.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-armn-to.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-armn-to.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ka) {
-       background-image: url("themes/mediawiki/images/icons/bold-geor-man.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-geor-man.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-geor-man.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-geor-man.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ky) {
-       background-image: url("themes/mediawiki/images/icons/bold-cyrl-zhe.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-zhe.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-zhe.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-cyrl-zhe.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ru) {
-       background-image: url("themes/mediawiki/images/icons/bold-cyrl-zhe.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-zhe.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-zhe.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-cyrl-zhe.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(nl) {
-       background-image: url("themes/mediawiki/images/icons/bold-v.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-v.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-v.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-v.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(os) {
-       background-image: url("themes/mediawiki/images/icons/bold-cyrl-be.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-be.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-be.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-cyrl-be.png");
-}
-.oo-ui-icon-italic {
-       background-image: url("themes/mediawiki/images/icons/italic-a.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-a.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-a.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-a.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ar) {
-       background-image: url("themes/mediawiki/images/icons/italic-arab-meem.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-arab-meem.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-arab-meem.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-arab-meem.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(cs) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(en) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(fr) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(he) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ml) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(pl) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(pt) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(be) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(da) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(de) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(fi) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ky) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(nn) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(no) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(os) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(sv) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ru) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(es) {
-       background-image: url("themes/mediawiki/images/icons/italic-c.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-c.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(gl) {
-       background-image: url("themes/mediawiki/images/icons/italic-c.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-c.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(it) {
-       background-image: url("themes/mediawiki/images/icons/italic-c.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-c.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(nl) {
-       background-image: url("themes/mediawiki/images/icons/italic-c.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-c.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(eu) {
-       background-image: url("themes/mediawiki/images/icons/italic-e.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-e.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-e.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-e.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(fa) {
-       background-image: url("themes/mediawiki/images/icons/italic-arab-keheh-jeem.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-arab-keheh-jeem.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-arab-keheh-jeem.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-arab-keheh-jeem.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(hu) {
-       background-image: url("themes/mediawiki/images/icons/italic-d.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-d.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-d.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-d.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(hy) {
-       background-image: url("themes/mediawiki/images/icons/italic-armn-sha.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-armn-sha.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-armn-sha.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-armn-sha.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ksh) {
-       background-image: url("themes/mediawiki/images/icons/italic-s.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-s.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-s.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-s.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ka) {
-       background-image: url("themes/mediawiki/images/icons/italic-geor-kan.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-geor-kan.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-geor-kan.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-geor-kan.png");
-}
-.oo-ui-icon-strikethrough {
-       background-image: url("themes/mediawiki/images/icons/strikethrough-a.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-a.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-a.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/strikethrough-a.png");
-}
-/* @noflip */
-.oo-ui-icon-strikethrough:lang(en) {
-       background-image: url("themes/mediawiki/images/icons/strikethrough-s.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-s.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-s.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/strikethrough-s.png");
-}
-/* @noflip */
-.oo-ui-icon-strikethrough:lang(fi) {
-       background-image: url("themes/mediawiki/images/icons/strikethrough-y.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-y.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-y.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/strikethrough-y.png");
-}
-.oo-ui-icon-underline {
-       background-image: url("themes/mediawiki/images/icons/underline-a.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/underline-a.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/underline-a.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/underline-a.png");
-}
-/* @noflip */
-.oo-ui-icon-underline:lang(en) {
-       background-image: url("themes/mediawiki/images/icons/underline-u.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/underline-u.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/underline-u.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/underline-u.png");
-}
-.oo-ui-icon-textLanguage {
-       background-image: url("themes/mediawiki/images/icons/language.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/language.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/language.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/language.png");
-}
-.oo-ui-icon-textDirLTR {
-       background-image: url("themes/mediawiki/images/icons/text-dir-lefttoright.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-dir-lefttoright.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-dir-lefttoright.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/text-dir-lefttoright.png");
-}
-.oo-ui-icon-textDirRTL {
-       background-image: url("themes/mediawiki/images/icons/text-dir-righttoleft.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-dir-righttoleft.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-dir-righttoleft.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/text-dir-righttoleft.png");
-}
-.oo-ui-icon-textStyle {
-       background-image: url("themes/mediawiki/images/icons/text-style.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-style.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-style.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/text-style.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css
deleted file mode 100644 (file)
index 782b410..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-beta {
-       background-image: url("themes/mediawiki/images/icons/beta.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/beta.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/beta.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/beta.png");
-}
-.oo-ui-icon-betaLaunch {
-       background-image: url("themes/mediawiki/images/icons/betaLaunch.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/betaLaunch.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/betaLaunch.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/betaLaunch.png");
-}
-.oo-ui-icon-bookmark {
-       background-image: url("themes/mediawiki/images/icons/bookmark-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bookmark-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bookmark-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bookmark-ltr.png");
-}
-.oo-ui-icon-browser {
-       background-image: url("themes/mediawiki/images/icons/browser-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/browser-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/browser-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/browser-ltr.png");
-}
-.oo-ui-icon-clock {
-       background-image: url("themes/mediawiki/images/icons/clock.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clock.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clock.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/clock.png");
-}
-.oo-ui-icon-closeInput {
-       background-image: url("themes/mediawiki/images/icons/closeInput.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/closeInput.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/closeInput.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/closeInput.png");
-}
-.oo-ui-icon-funnel {
-       background-image: url("themes/mediawiki/images/icons/funnel-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/funnel-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/funnel-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/funnel-ltr.png");
-}
-.oo-ui-icon-heart {
-       background-image: url("themes/mediawiki/images/icons/heart.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/heart.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/heart.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/heart.png");
-}
-.oo-ui-icon-key {
-       background-image: url("themes/mediawiki/images/icons/key-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/key-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/key-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/key-ltr.png");
-}
-.oo-ui-icon-keyboard {
-       background-image: url("themes/mediawiki/images/icons/keyboard-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/keyboard-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/keyboard-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/keyboard-ltr.png");
-}
-.oo-ui-icon-logOut {
-       background-image: url("themes/mediawiki/images/icons/logOut-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logOut-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logOut-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logOut-ltr.png");
-}
-.oo-ui-icon-magnifyingGlass {
-       background-image: url("themes/mediawiki/images/icons/magnifyingGlass-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/magnifyingGlass-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/magnifyingGlass-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/magnifyingGlass-ltr.png");
-}
-.oo-ui-icon-newWindow {
-       background-image: url("themes/mediawiki/images/icons/newWindow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newWindow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newWindow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/newWindow-ltr.png");
-}
-.oo-ui-icon-printer {
-       background-image: url("themes/mediawiki/images/icons/printer-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/printer-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/printer-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/printer-ltr.png");
-}
-.oo-ui-icon-ribbonPrize {
-       background-image: url("themes/mediawiki/images/icons/ribbonPrize.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ribbonPrize.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ribbonPrize.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/ribbonPrize.png");
-}
-.oo-ui-icon-sun {
-       background-image: url("themes/mediawiki/images/icons/sun-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/sun-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/sun-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/sun-ltr.png");
-}
-.oo-ui-icon-watchlist {
-       background-image: url("themes/mediawiki/images/icons/watchlist-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/watchlist-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/watchlist-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/watchlist-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css
deleted file mode 100644 (file)
index a274181..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-stripeFlow {
-       background-image: url("themes/mediawiki/images/icons/stripeFlow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeFlow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeFlow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeFlow-ltr.png");
-}
-.oo-ui-icon-stripeSideMenu {
-       background-image: url("themes/mediawiki/images/icons/stripeSideMenu.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSideMenu.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSideMenu.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeSideMenu.png");
-}
-.oo-ui-icon-stripeSummary {
-       background-image: url("themes/mediawiki/images/icons/stripeSummary-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSummary-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSummary-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeSummary-ltr.png");
-}
-.oo-ui-icon-stripeToC {
-       background-image: url("themes/mediawiki/images/icons/stripeToC-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeToC-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeToC-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeToC-ltr.png");
-}
-.oo-ui-icon-viewCompact {
-       background-image: url("themes/mediawiki/images/icons/viewCompact.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/viewCompact.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/viewCompact.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/viewCompact.png");
-}
-.oo-ui-icon-viewDetails {
-       background-image: url("themes/mediawiki/images/icons/viewDetails-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/viewDetails-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/viewDetails-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/viewDetails-ltr.png");
-}
-.oo-ui-icon-visionSimulator {
-       background-image: url("themes/mediawiki/images/icons/visionSimulator.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/visionSimulator.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/visionSimulator.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/visionSimulator.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css
deleted file mode 100644 (file)
index 19ac130..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-map {
-       background-image: url("themes/mediawiki/images/icons/map-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/map-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/map-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/map-ltr.png");
-}
-.oo-ui-icon-mapPin {
-       background-image: url("themes/mediawiki/images/icons/mapPin.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPin.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPin.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/mapPin.png");
-}
-.oo-ui-icon-mapPinAdd {
-       background-image: url("themes/mediawiki/images/icons/mapPinAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPinAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPinAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/mapPinAdd-ltr.png");
-}
-.oo-ui-icon-wikitrail {
-       background-image: url("themes/mediawiki/images/icons/wikitrail-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikitrail-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikitrail-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/wikitrail-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css
deleted file mode 100644 (file)
index 61b3361..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-image {
-       background-image: url("themes/mediawiki/images/icons/image-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/image-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/image-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/image-ltr.png");
-}
-.oo-ui-icon-imageAdd {
-       background-image: url("themes/mediawiki/images/icons/imageAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/imageAdd-ltr.png");
-}
-.oo-ui-icon-imageLock {
-       background-image: url("themes/mediawiki/images/icons/imageLock-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageLock-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageLock-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/imageLock-ltr.png");
-}
-.oo-ui-icon-photoGallery {
-       background-image: url("themes/mediawiki/images/icons/photoGallery-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/photoGallery-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/photoGallery-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/photoGallery-ltr.png");
-}
-.oo-ui-icon-play {
-       background-image: url("themes/mediawiki/images/icons/play-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/play-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/play-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/play-ltr.png");
-}
-.oo-ui-icon-stop {
-       background-image: url("themes/mediawiki/images/icons/stop.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stop.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stop.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stop.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css
deleted file mode 100644 (file)
index 6dc10b4..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-block {
-       background-image: url("themes/mediawiki/images/icons/block.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/block.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/block.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/block.png");
-}
-.oo-ui-icon-blockUndo {
-       background-image: url("themes/mediawiki/images/icons/blockUndo-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/blockUndo-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/blockUndo-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/blockUndo-ltr.png");
-}
-.oo-ui-icon-flag {
-       background-image: url("themes/mediawiki/images/icons/flag-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flag-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flag-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/flag-ltr.png");
-}
-.oo-ui-icon-flagUndo {
-       background-image: url("themes/mediawiki/images/icons/flagUndo-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flagUndo-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flagUndo-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/flagUndo-ltr.png");
-}
-.oo-ui-icon-lock {
-       background-image: url("themes/mediawiki/images/icons/lock-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/lock-ltr.png");
-}
-.oo-ui-icon-star {
-       background-image: url("themes/mediawiki/images/icons/star.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/star.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/star.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/star.png");
-}
-.oo-ui-icon-trash {
-       background-image: url("themes/mediawiki/images/icons/trash.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trash.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trash.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/trash.png");
-}
-.oo-ui-icon-trashUndo {
-       background-image: url("themes/mediawiki/images/icons/trashUndo-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trashUndo-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trashUndo-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/trashUndo-ltr.png");
-}
-.oo-ui-icon-unLock {
-       background-image: url("themes/mediawiki/images/icons/unLock-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unLock-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unLock-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/unLock-ltr.png");
-}
-.oo-ui-icon-unStar {
-       background-image: url("themes/mediawiki/images/icons/unStar.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unStar.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unStar.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/unStar.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css
deleted file mode 100644 (file)
index 9e54697..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-arrowNext {
-       background-image: url("themes/mediawiki/images/icons/arrow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arrow-ltr.png");
-}
-.oo-ui-icon-arrowLast {
-       background-image: url("themes/mediawiki/images/icons/arrow-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arrow-rtl.png");
-}
-.oo-ui-icon-caretNext {
-       background-image: url("themes/mediawiki/images/icons/caret-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caret-rtl.png");
-}
-.oo-ui-icon-caretLast {
-       background-image: url("themes/mediawiki/images/icons/caret-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caret-ltr.png");
-}
-.oo-ui-icon-caretDown {
-       background-image: url("themes/mediawiki/images/icons/caretDown.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretDown.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretDown.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caretDown.png");
-}
-.oo-ui-icon-caretUp {
-       background-image: url("themes/mediawiki/images/icons/caretUp.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretUp.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretUp.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caretUp.png");
-}
-.oo-ui-icon-downTriangle {
-       background-image: url("themes/mediawiki/images/icons/downTriangle.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/downTriangle.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/downTriangle.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/downTriangle.png");
-}
-.oo-ui-icon-move {
-       background-image: url("themes/mediawiki/images/icons/move.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move.png");
-}
-.oo-ui-icon-upTriangle {
-       background-image: url("themes/mediawiki/images/icons/upTriangle.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upTriangle.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upTriangle.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/upTriangle.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css
deleted file mode 100644 (file)
index e748f76..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-userActive {
-       background-image: url("themes/mediawiki/images/icons/userActive-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userActive-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userActive-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userActive-ltr.png");
-}
-.oo-ui-icon-userAvatar {
-       background-image: url("themes/mediawiki/images/icons/userAvatar.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userAvatar.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userAvatar.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userAvatar.png");
-}
-.oo-ui-icon-userInactive {
-       background-image: url("themes/mediawiki/images/icons/userInactive-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userInactive-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userInactive-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userInactive-ltr.png");
-}
-.oo-ui-icon-userTalk {
-       background-image: url("themes/mediawiki/images/icons/userTalk-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userTalk-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userTalk-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userTalk-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css
deleted file mode 100644 (file)
index 28c95c6..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-.oo-ui-icon-logoCC {
-       background-image: url("themes/mediawiki/images/icons/logo-cc.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-cc.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-cc.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logo-cc.png");
-}
-.oo-ui-icon-logoWikimediaCommons {
-       background-image: url("themes/mediawiki/images/icons/logo-wikimediaCommons.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikimediaCommons.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikimediaCommons.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logo-wikimediaCommons.png");
-}
-.oo-ui-icon-logoWikipedia {
-       background-image: url("themes/mediawiki/images/icons/logo-wikipedia.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikipedia.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikipedia.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logo-wikipedia.png");
-}
index c32d7ca..12e80c1 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.10.1
+ * OOjs UI v0.11.3
  * 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-04-27T17:17:17Z
+ * Date: 2015-05-12T12:15:44Z
  */
 @-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-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-popupTool .oo-ui-popupWidget {
        /* @noflip */
        margin-left: 1.25em;
-       font-size: 0.8em;
 }
 .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.5em;
-       padding: 0.25em;
+       height: 2.5em;
+       padding: 0.3125em;
 }
 .oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       opacity: 0.8;
+       height: 2.5em;
+       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.3em;
+       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.5em;
-       padding: 0.25em;
+       height: 1.875em;
+       padding: 0.625em;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       opacity: 0.8;
+       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;
-       font-size: 0.8em;
+       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-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
+.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 > 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: 2em;
+       height: 3.125em;
        min-width: 2em;
 }
 .oo-ui-popupToolGroup-handle {
        padding-left: 3em;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup {
-       min-width: 1.5em;
+       min-width: 1.875em;
 }
 .oo-ui-popupToolGroup.oo-ui-iconElement {
-       min-width: 2.5em;
+       min-width: 3.125em;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-iconElement {
-       min-width: 2em;
+       min-width: 2.5em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-       min-width: 3.5em;
+       min-width: 4.375em;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-       min-width: 3em;
+       min-width: 3.75em;
 }
 .oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
        line-height: 2.6em;
-       font-size: 0.8em;
        margin: 0 1em;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement .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;
+       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.75em;
-       height: 0.75em;
-       margin: 0.625em;
+       width: 0.9375em;
+       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.25em;
+       right: -0.3125em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       width: 1.5em;
-       height: 1.5em;
+       width: 1.875em;
+       height: 2.6em;
        margin: 0.25em;
        top: 0;
-       left: 0.25em;
+       left: 0.3125em;
+       opacity: 0.7;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
        left: 0;
 }
 .oo-ui-popupToolGroup-header {
        line-height: 2.6em;
-       font-size: 0.8em;
        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: 2em;
-       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.25em 0 0.25em 0.25em;
+       padding: 0.4em 0.625em;
+       box-sizing: border-box;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       min-width: 1.5em;
+       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;
-       font-size: 0.8em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel {
+       color: #888888;
 }
 .oo-ui-listToolGroup .oo-ui-tool {
        display: block;
 .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.75em 0 0.25em;
+.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.25em 0 0.25em 0;
-       border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-}
-.oo-ui-menuToolGroup {
-       border: 1px solid #cccccc;
-       border-radius: 0.1em;
-}
 .oo-ui-menuToolGroup .oo-ui-tool {
        display: block;
 }
        cursor: default;
 }
 .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
-       min-width: 8em;
+       min-width: 10em;
 }
 .oo-ui-toolbar-narrow .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
-       min-width: 6.5em;
-}
-.oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
-       margin-left: -1px;
-       padding: 0.25em 0 0.25em 0;
-       border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       border-top-left-radius: 0;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 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 1em 0 0.25em;
+       min-width: 8.125em;
 }
 .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;
        border-width: 9px;
 }
 .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;
+       -webkit-transition: width 0.1s ease-in-out, height 0.1s ease-in-out, left 0.1s ease-in-out;
+          -moz-transition: width 0.1s ease-in-out, height 0.1s ease-in-out, left 0.1s ease-in-out;
+           -ms-transition: width 0.1s ease-in-out, height 0.1s ease-in-out, left 0.1s ease-in-out;
+            -o-transition: width 0.1s ease-in-out, height 0.1s ease-in-out, left 0.1s ease-in-out;
+               transition: width 0.1s ease-in-out, height 0.1s ease-in-out, left 0.1s ease-in-out;
 }
 .oo-ui-popupWidget-head {
        height: 2.5em;
        border: solid 1px #cccccc;
        box-shadow: inset 0 0 0 0 #347bff;
        border-radius: 0.1em;
-       -webkit-transition: box-shadow 0.1s;
-          -moz-transition: box-shadow 0.1s;
-           -ms-transition: box-shadow 0.1s;
-            -o-transition: box-shadow 0.1s;
-               transition: box-shadow 0.1s;
+       -webkit-transition: box-shadow 0.1s ease-in-out;
+          -moz-transition: box-shadow 0.1s ease-in-out;
+           -ms-transition: box-shadow 0.1s ease-in-out;
+            -o-transition: box-shadow 0.1s ease-in-out;
+               transition: box-shadow 0.1s ease-in-out;
        -webkit-box-sizing: border-box;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled input,
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea {
-       -webkit-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-          -moz-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-           -ms-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-            -o-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-               transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+       -webkit-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+          -moz-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+           -ms-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+            -o-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+               transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
        border-color: #cccccc;
        box-shadow: inset 0 0 0 0.1em #cccccc;
 }
+.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid input,
+.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid textarea {
+       border-color: red;
+       box-shadow: inset 0 0 0 0 red;
+}
+.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid input:focus,
+.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid textarea:focus {
+       border-color: red;
+       box-shadow: inset 0 0 0 0.1em red;
+}
 .oo-ui-textInputWidget.oo-ui-widget-disabled input,
 .oo-ui-textInputWidget.oo-ui-widget-disabled textarea {
        color: #cccccc;
        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: 0.5em 0 0.5em 0.5em;
        opacity: 0.2;
 }
+.oo-ui-tabSelectWidget {
+       text-align: left;
+       white-space: nowrap;
+       overflow: hidden;
+       background-color: #dddddd;
+}
+.oo-ui-tabOptionWidget {
+       display: inline-block;
+       vertical-align: bottom;
+       padding: 0.35em 1em;
+       margin: 0.5em 0 0 0.75em;
+       border: 1px solid transparent;
+       border-bottom: none;
+       border-top-left-radius: 2px;
+       border-top-right-radius: 2px;
+       color: #666666;
+       font-weight: bold;
+}
+.oo-ui-tabOptionWidget.oo-ui-widget-enabled:hover {
+       background-color: rgba(255, 255, 255, 0.3);
+}
+.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-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-selected,
+.oo-ui-selectWidget-depressed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected,
+.oo-ui-tabOptionWidget.oo-ui-optionWidget-selected:hover {
+       background-color: #ffffff;
+       color: #333333;
+}
 .oo-ui-comboBoxWidget {
        display: inline-block;
        position: relative;
 }
 .oo-ui-window {
        background: transparent;
-       font-size: 0.8em;
 }
 .oo-ui-window-frame {
        -webkit-box-sizing: border-box;
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-mediawiki.css
deleted file mode 100644 (file)
index 7ee64a2..0000000
+++ /dev/null
@@ -1,3070 +0,0 @@
-/*!
- * OOjs UI v0.10.1
- * 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-04-27T17:17:17Z
- */
-@-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 {
-       font-weight: bold;
-}
-.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:focus {
-       box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.2);
-       outline: none;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button .oo-ui-indicatorElement-indicator {
-       margin-right: 0;
-}
-.oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       margin-left: 0.25em;
-       margin-right: 0.25em;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #555555;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #444444;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-       color: #347bff;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #777777;
-}
-.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;
-       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-buttonElement-button:focus > .oo-ui-labelElement-label {
-       color: #00af89;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #777777;
-}
-.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;
-       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-buttonElement-button:focus > .oo-ui-labelElement-label {
-       color: #d11d13;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #777777;
-}
-.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;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-       color: #cccccc;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       opacity: 0.2;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-       margin: 0.1em 0;
-       padding: 0.2em 0.8em;
-       border-radius: 2px;
-       -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-          -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-           -ms-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-            -o-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-               transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
-       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-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-widget-disabled > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background: #dddddd;
-       border: 1px solid #dddddd;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
-       color: #555555;
-       background-color: #ffffff;
-       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);
-}
-.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;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .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;
-}
-.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;
-}
-.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;
-       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 {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .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;
-}
-.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;
-}
-.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;
-       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 {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .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;
-}
-.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;
-}
-.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;
-       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 {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background-color: #347bff;
-       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;
-}
-.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;
-}
-.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;
-       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 {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background-color: #00af89;
-       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;
-}
-.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;
-}
-.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;
-       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 {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background-color: #d11d13;
-       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;
-}
-.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;
-}
-.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;
-       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 {
-       background-color: #999999;
-       color: #ffffff;
-}
-.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 {
-       background-size: contain;
-       background-position: center center;
-}
-.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator,
-.oo-ui-indicatorElement.oo-ui-indicatorElement-indicator {
-       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-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;
-       padding-left: 1em;
-}
-.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-field {
-       display: table;
-       table-layout: fixed;
-       width: 100%;
-}
-.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: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-.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;
-       font-size: 0.8em;
-}
-.oo-ui-toolGroupTool > .oo-ui-popupToolGroup {
-       margin: 0;
-}
-.oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle {
-       height: 1.5em;
-       padding: 0.25em;
-}
-.oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       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.3em;
-}
-.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 .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-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-       display: none;
-}
-.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: block;
-}
-.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-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.5em;
-       padding: 0.25em;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       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;
-       font-size: 0.8em;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-tool-active.oo-ui-widget-enabled {
-       background-color: #eeeeee;
-}
-.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;
-}
-.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: 2em;
-       min-width: 2em;
-}
-.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.5em;
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement {
-       min-width: 2.5em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-iconElement {
-       min-width: 2em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-       min-width: 3.5em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-       min-width: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       line-height: 2.6em;
-       font-size: 0.8em;
-       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.75em;
-       height: 0.75em;
-       margin: 0.625em;
-       top: 0;
-       right: 0;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-       right: -0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       width: 1.5em;
-       height: 1.5em;
-       margin: 0.25em;
-       top: 0;
-       left: 0.25em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       left: 0;
-}
-.oo-ui-popupToolGroup-header {
-       line-height: 2.6em;
-       font-size: 0.8em;
-       margin: 0 0.6em;
-       font-weight: bold;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-       top: 2em;
-       background-color: white;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link {
-       padding: 0.25em 0 0.25em 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       min-width: 1.5em;
-}
-.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;
-       font-size: 0.8em;
-}
-.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-tool {
-       padding: 0 0.75em 0 0.25em;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-       background-color: #eeeeee;
-}
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled,
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled:hover {
-       background-color: #d0d0d0;
-}
-.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-listToolGroup .oo-ui-toolGroup-tools {
-       padding: 0.25em 0 0.25em 0;
-       border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-}
-.oo-ui-menuToolGroup {
-       border: 1px solid #cccccc;
-       border-radius: 0.1em;
-}
-.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: 8em;
-}
-.oo-ui-toolbar-narrow .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
-       min-width: 6.5em;
-}
-.oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
-       margin-left: -1px;
-       padding: 0.25em 0 0.25em 0;
-       border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       border-top-left-radius: 0;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 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 1em 0 0.25em;
-}
-.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/mediawiki/images/icons/check.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check.png");
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-       background-color: #eeeeee;
-}
-.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: #cccccc;
-}
-.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;
-}
-.oo-ui-toolbar-actions {
-       float: right;
-}
-.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: 2px solid rgba(0, 0, 0, 0.15);
-       background: #ffffff;
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-       border: none;
-       background: 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-selectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-       border-bottom-right-radius: 2px;
-       border-top-right-radius: 2px;
-}
-.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: #eeeeee;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-       line-height: 1.5em;
-}
-.oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected,
-.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: #d0d0d0;
-}
-.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: 2px;
-       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: 2px;
-       border-top-left-radius: 2px;
-       margin-left: 0;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-       border-bottom-right-radius: 2px;
-       border-top-right-radius: 2px;
-}
-.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-buttonOptionWidget.oo-ui-widget-disabled .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-       opacity: 1;
-}
-.oo-ui-radioOptionWidget {
-       cursor: default;
-       padding: 0.25em 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: 0.25em;
-       padding-left: 1em;
-}
-.oo-ui-radioOptionWidget .oo-ui-radioInputWidget {
-       margin-right: 0;
-}
-.oo-ui-labelWidget {
-       display: inline-block;
-}
-.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: 2px;
-       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: 2px;
-       border-top-left-radius: 2px;
-       margin-left: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-       border-bottom-right-radius: 2px;
-       border-top-right-radius: 2px;
-}
-.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;
-       border: 1px #dddddd solid;
-       margin-right: 0.5em;
-}
-.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-grip {
-       top: 0.25em;
-       left: 0.25em;
-       width: 1.5em;
-       height: 1.5em;
-       margin-top: -1px;
-       border-radius: 1em;
-       border: 1px #dddddd solid;
-       background-color: #f7f7f7;
-       -webkit-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-          -moz-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-           -ms-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-            -o-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-               transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-}
-.oo-ui-toggleSwitchWidget-glow {
-       border-radius: 1em;
-       background-color: #f7f7f7;
-       -webkit-transition: background-color 0.1s ease-in-out;
-          -moz-transition: background-color 0.1s ease-in-out;
-           -ms-transition: background-color 0.1s ease-in-out;
-            -o-transition: background-color 0.1s ease-in-out;
-               transition: background-color 0.1s ease-in-out;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-       left: 2.25em;
-       margin-left: -2px;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-       display: block;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-       left: 0.25em;
-       margin-left: 0;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled {
-       border: 1px #cccccc solid;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover {
-       border-color: #aaaaaa;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled .oo-ui-toggleSwitchWidget-grip {
-       background-color: #ffffff;
-       border-color: #aaaaaa;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-       background-color: #d0d0d0;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-       background-color: #ffffff;
-}
-.oo-ui-progressBarWidget {
-       max-width: 50em;
-       border: 1px solid #cccccc;
-       border-radius: 0.1em;
-       overflow: hidden;
-}
-.oo-ui-progressBarWidget-bar {
-       height: 1em;
-       background: #dddddd;
-       -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;
-}
-.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-width: 1px;
-}
-.oo-ui-progressBarWidget.oo-ui-widget-disabled {
-       opacity: 0.6;
-}
-.oo-ui-actionWidget.oo-ui-pendingElement-pending {
-       background-image: /* @embed */ url(themes/mediawiki/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 #aaaaaa;
-       border-radius: 0.2em;
-       background-color: #ffffff;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-       margin-top: 9px;
-}
-.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: -10px;
-       left: -9px;
-       border-bottom-color: #888888;
-       border-width: 10px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-       bottom: -10px;
-       left: -8px;
-       border-bottom-color: #ffffff;
-       border-width: 9px;
-}
-.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.75em;
-}
-.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-checkboxInputWidget {
-       position: relative;
-       line-height: 1.6em;
-       white-space: nowrap;
-}
-.oo-ui-checkboxInputWidget * {
-       font: inherit;
-       vertical-align: middle;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"] {
-       opacity: 0;
-       z-index: 1;
-       position: relative;
-       margin: 0;
-       width: 1.6em;
-       height: 1.6em;
-       max-width: none;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"] + span {
-       cursor: pointer;
-       -webkit-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-          -moz-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-           -ms-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-            -o-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-               transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       position: absolute;
-       left: 0;
-       border-radius: 2px;
-       width: 1.6em;
-       height: 1.6em;
-       background-color: white;
-       border: 1px solid #777777;
-       background-image: url("themes/mediawiki/images/icons/check-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-constructive.png");
-       background-repeat: no-repeat;
-       background-position: center center;
-       background-origin: border-box;
-       background-size: 0 0;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:checked + span {
-       background-size: 100% 100%;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:active + span {
-       background-color: #dddddd;
-       border-color: #dddddd;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:focus + span {
-       border-width: 2px;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:focus:hover + span,
-.oo-ui-checkboxInputWidget input[type="checkbox"]:hover + span {
-       border-bottom-width: 3px;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled + span {
-       cursor: default;
-       background-color: #eeeeee;
-       border-color: #eeeeee;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled:checked + span {
-       background-image: url("themes/mediawiki/images/icons/check-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-invert.png");
-}
-.oo-ui-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 {
-       height: 2.5em;
-       padding: 0.5em;
-       font-size: inherit;
-       font-family: inherit;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       border: 1px solid #cccccc;
-}
-.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:hover,
-.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:focus {
-       border-color: #aaaaaa;
-       outline: none;
-}
-.oo-ui-dropdownInputWidget.oo-ui-widget-disabled select {
-       color: #cccccc;
-       border-color: #dddddd;
-       background-color: #f3f3f3;
-}
-.oo-ui-radioInputWidget {
-       position: relative;
-       line-height: 1.6em;
-       white-space: nowrap;
-}
-.oo-ui-radioInputWidget * {
-       font: inherit;
-       vertical-align: middle;
-}
-.oo-ui-radioInputWidget input[type="radio"] {
-       opacity: 0;
-       z-index: 1;
-       position: relative;
-       margin: 0;
-       width: 1.6em;
-       height: 1.6em;
-       max-width: none;
-}
-.oo-ui-radioInputWidget input[type="radio"] + span {
-       cursor: pointer;
-       -webkit-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-          -moz-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-           -ms-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-            -o-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-               transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       position: absolute;
-       left: 0;
-       border-radius: 100%;
-       width: 1.6em;
-       height: 1.6em;
-       background: white;
-       border: 1px solid #777777;
-       background-image: url("themes/mediawiki/images/icons/circle-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-constructive.png");
-       background-repeat: no-repeat;
-       background-position: center center;
-       background-origin: border-box;
-       background-size: 0 0;
-}
-.oo-ui-radioInputWidget input[type="radio"]:checked + span {
-       background-size: 100% 100%;
-}
-.oo-ui-radioInputWidget input[type="radio"]:active + span {
-       background-color: #dddddd;
-       border-color: #dddddd;
-}
-.oo-ui-radioInputWidget input[type="radio"]:focus + span {
-       border-width: 2px;
-}
-.oo-ui-radioInputWidget input[type="radio"]:focus:hover + span,
-.oo-ui-radioInputWidget input[type="radio"]:hover + span {
-       border-bottom-width: 3px;
-}
-.oo-ui-radioInputWidget input[type="radio"]:disabled + span {
-       cursor: default;
-       background-color: #eeeeee;
-       border-color: #eeeeee;
-}
-.oo-ui-radioInputWidget input[type="radio"]:disabled:checked + span {
-       background-image: url("themes/mediawiki/images/icons/circle-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
-       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-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;
-       margin: 0;
-       font-size: inherit;
-       font-family: inherit;
-       background-color: #ffffff;
-       color: black;
-       border: solid 1px #cccccc;
-       box-shadow: inset 0 0 0 0 #347bff;
-       border-radius: 0.1em;
-       -webkit-transition: box-shadow 0.1s;
-          -moz-transition: box-shadow 0.1s;
-           -ms-transition: box-shadow 0.1s;
-            -o-transition: box-shadow 0.1s;
-               transition: box-shadow 0.1s;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.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,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea {
-       -webkit-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-          -moz-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-           -ms-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-            -o-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-               transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-       outline: none;
-       border-color: #347bff;
-       box-shadow: inset 0 0 0 0.1em #347bff;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input[readonly],
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea[readonly] {
-       color: #777777;
-       text-shadow: 0 1px 1px #ffffff;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input[readonly]:focus,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea[readonly]:focus {
-       border-color: #cccccc;
-       box-shadow: inset 0 0 0 0.1em #cccccc;
-}
-.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/mediawiki/images/textures/pending.gif);
-}
-.oo-ui-textInputWidget.oo-ui-iconElement input,
-.oo-ui-textInputWidget.oo-ui-iconElement textarea {
-       padding-left: 2.75em;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-       left: 0.4em;
-       width: 1.875em;
-       margin-left: 0.1em;
-       height: 100%;
-       background-position: right center;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement input,
-.oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-       padding-right: 1.875em;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       width: 0.9375em;
-       margin: 0 0.775em;
-       height: 100%;
-}
-.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: 2em;
-}
-.oo-ui-textInputWidget-labelPosition-before.oo-ui-iconElement > .oo-ui-labelElement-label {
-       margin-left: 2.5em;
-}
-.oo-ui-menuSelectWidget {
-       position: absolute;
-       background: #ffffff;
-       margin-top: -1px;
-       border: 1px solid #aaaaaa;
-       border-radius: 0 0 0.2em 0.2em;
-       padding-bottom: 0.25em;
-       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);
-}
-.oo-ui-menuSelectWidget input {
-       position: absolute;
-       width: 0;
-       height: 0;
-       overflow: hidden;
-       opacity: 0;
-}
-.oo-ui-menuOptionWidget {
-       position: relative;
-       padding: 0.5em 1em;
-}
-.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: #999999;
-       color: #ffffff;
-}
-.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-       display: none;
-}
-.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted {
-       background-color: #eeeeee;
-       color: black;
-}
-.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 #cccccc;
-       border-radius: 0.1em;
-}
-.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 1em;
-}
-.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:hover .oo-ui-dropdownWidget-handle {
-       border-color: #aaaaaa;
-}
-.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-dropdownWidget .oo-ui-selectWidget {
-       border-top-color: #ffffff;
-}
-.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: #d0d0d0;
-       text-shadow: 0 1px 1px #ffffff;
-}
-.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-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 .oo-ui-textInputWidget input,
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea {
-       height: 2.35em;
-}
-.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;
-       border-bottom: 1px solid #cccccc;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-       margin: 0.75em 0;
-}
-.oo-ui-searchWidget-results {
-       top: 4em;
-       padding: 1em;
-       line-height: 0;
-}
-.oo-ui-window {
-       background: transparent;
-       font-size: 0.8em;
-}
-.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 {
-       outline: 1px solid #aaaaaa;
-}
-.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-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;
-}
-.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;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-       border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-       height: 3.4em;
-}
-.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/mediawiki/images/textures/pending.gif);
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-       top: 3.4em;
-       outline: 1px solid rgba(0, 0, 0, 0.2);
-}
-.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 #aaaaaa;
-       border-radius: 0.2em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-
-.oo-ui-icon-add {
-       background-image: url("themes/mediawiki/images/icons/add.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/add.png");
-}
-.oo-ui-image-constructive .oo-ui-icon-add,
-.oo-ui-image-constructive.oo-ui-icon-add {
-       background-image: url("themes/mediawiki/images/icons/add-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/add-constructive.png");
-}
-.oo-ui-image-invert .oo-ui-icon-add,
-.oo-ui-image-invert.oo-ui-icon-add {
-       background-image: url("themes/mediawiki/images/icons/add-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/add-invert.png");
-}
-.oo-ui-icon-advanced {
-       background-image: url("themes/mediawiki/images/icons/advanced.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/advanced.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/advanced.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/advanced.png");
-}
-.oo-ui-image-invert .oo-ui-icon-advanced,
-.oo-ui-image-invert.oo-ui-icon-advanced {
-       background-image: url("themes/mediawiki/images/icons/advanced-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/advanced-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/advanced-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/advanced-invert.png");
-}
-.oo-ui-icon-alert {
-       background-image: url("themes/mediawiki/images/icons/alert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/alert.png");
-}
-.oo-ui-image-warning .oo-ui-icon-alert,
-.oo-ui-image-warning.oo-ui-icon-alert {
-       background-image: url("themes/mediawiki/images/icons/alert-warning.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-warning.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-warning.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/alert-warning.png");
-}
-.oo-ui-image-invert .oo-ui-icon-alert,
-.oo-ui-image-invert.oo-ui-icon-alert {
-       background-image: url("themes/mediawiki/images/icons/alert-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/alert-invert.png");
-}
-.oo-ui-icon-check {
-       background-image: url("themes/mediawiki/images/icons/check.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check.png");
-}
-.oo-ui-image-constructive .oo-ui-icon-check,
-.oo-ui-image-constructive.oo-ui-icon-check {
-       background-image: url("themes/mediawiki/images/icons/check-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-constructive.png");
-}
-.oo-ui-image-progressive .oo-ui-icon-check,
-.oo-ui-image-progressive.oo-ui-icon-check {
-       background-image: url("themes/mediawiki/images/icons/check-progressive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-progressive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-progressive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-progressive.png");
-}
-.oo-ui-image-invert .oo-ui-icon-check,
-.oo-ui-image-invert.oo-ui-icon-check {
-       background-image: url("themes/mediawiki/images/icons/check-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-invert.png");
-}
-.oo-ui-icon-circle {
-       background-image: url("themes/mediawiki/images/icons/circle.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle.png");
-}
-.oo-ui-image-constructive .oo-ui-icon-circle,
-.oo-ui-image-constructive.oo-ui-icon-circle {
-       background-image: url("themes/mediawiki/images/icons/circle-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-constructive.png");
-}
-.oo-ui-image-invert .oo-ui-icon-circle,
-.oo-ui-image-invert.oo-ui-icon-circle {
-       background-image: url("themes/mediawiki/images/icons/circle-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
-       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-icon-clear {
-       background-image: url("themes/mediawiki/images/icons/clear.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clear.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clear.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/clear.png");
-}
-.oo-ui-image-invert .oo-ui-icon-clear,
-.oo-ui-image-invert.oo-ui-icon-clear {
-       background-image: url("themes/mediawiki/images/icons/clear-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clear-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clear-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/clear-invert.png");
-}
-.oo-ui-icon-close {
-       background-image: url("themes/mediawiki/images/icons/close-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/close-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-icon-close,
-.oo-ui-image-invert.oo-ui-icon-close {
-       background-image: url("themes/mediawiki/images/icons/close-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/close-ltr-invert.png");
-}
-.oo-ui-icon-code {
-       background-image: url("themes/mediawiki/images/icons/code.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/code.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/code.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/code.png");
-}
-.oo-ui-image-invert .oo-ui-icon-code,
-.oo-ui-image-invert.oo-ui-icon-code {
-       background-image: url("themes/mediawiki/images/icons/code-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/code-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/code-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/code-invert.png");
-}
-.oo-ui-icon-collapse {
-       background-image: url("themes/mediawiki/images/icons/collapse.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/collapse.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/collapse.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/collapse.png");
-}
-.oo-ui-image-invert .oo-ui-icon-collapse,
-.oo-ui-image-invert.oo-ui-icon-collapse {
-       background-image: url("themes/mediawiki/images/icons/collapse-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/collapse-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/collapse-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/collapse-invert.png");
-}
-.oo-ui-icon-comment {
-       background-image: url("themes/mediawiki/images/icons/comment.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/comment.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/comment.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/comment.png");
-}
-.oo-ui-image-invert .oo-ui-icon-comment,
-.oo-ui-image-invert.oo-ui-icon-comment {
-       background-image: url("themes/mediawiki/images/icons/comment-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/comment-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/comment-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/comment-invert.png");
-}
-.oo-ui-icon-ellipsis {
-       background-image: url("themes/mediawiki/images/icons/ellipsis.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/ellipsis.png");
-}
-.oo-ui-image-invert .oo-ui-icon-ellipsis,
-.oo-ui-image-invert.oo-ui-icon-ellipsis {
-       background-image: url("themes/mediawiki/images/icons/ellipsis-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/ellipsis-invert.png");
-}
-.oo-ui-icon-expand {
-       background-image: url("themes/mediawiki/images/icons/expand.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/expand.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/expand.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/expand.png");
-}
-.oo-ui-image-invert .oo-ui-icon-expand,
-.oo-ui-image-invert.oo-ui-icon-expand {
-       background-image: url("themes/mediawiki/images/icons/expand-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/expand-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/expand-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/expand-invert.png");
-}
-.oo-ui-icon-help {
-       background-image: url("themes/mediawiki/images/icons/help-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr.png");
-}
-/* @noflip */
-.oo-ui-icon-help:lang(he) {
-       background-image: url("themes/mediawiki/images/icons/help-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr.png");
-}
-/* @noflip */
-.oo-ui-icon-help:lang(yi) {
-       background-image: url("themes/mediawiki/images/icons/help-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-icon-help,
-.oo-ui-image-invert.oo-ui-icon-help {
-       background-image: url("themes/mediawiki/images/icons/help-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr-invert.png");
-}
-/* @noflip */
-.oo-ui-image-invert .oo-ui-icon-help:lang(he),
-.oo-ui-image-invert.oo-ui-icon-help:lang(he) {
-       background-image: url("themes/mediawiki/images/icons/help-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr-invert.png");
-}
-/* @noflip */
-.oo-ui-image-invert .oo-ui-icon-help:lang(yi),
-.oo-ui-image-invert.oo-ui-icon-help:lang(yi) {
-       background-image: url("themes/mediawiki/images/icons/help-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr-invert.png");
-}
-.oo-ui-icon-history {
-       background-image: url("themes/mediawiki/images/icons/history.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/history.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/history.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/history.png");
-}
-.oo-ui-image-invert .oo-ui-icon-history,
-.oo-ui-image-invert.oo-ui-icon-history {
-       background-image: url("themes/mediawiki/images/icons/history-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/history-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/history-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/history-invert.png");
-}
-.oo-ui-icon-info {
-       background-image: url("themes/mediawiki/images/icons/info.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/info.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/info.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/info.png");
-}
-.oo-ui-image-invert .oo-ui-icon-info,
-.oo-ui-image-invert.oo-ui-icon-info {
-       background-image: url("themes/mediawiki/images/icons/info-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/info-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/info-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/info-invert.png");
-}
-.oo-ui-icon-menu {
-       background-image: url("themes/mediawiki/images/icons/menu.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/menu.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/menu.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/menu.png");
-}
-.oo-ui-image-invert .oo-ui-icon-menu,
-.oo-ui-image-invert.oo-ui-icon-menu {
-       background-image: url("themes/mediawiki/images/icons/menu-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/menu-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/menu-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/menu-invert.png");
-}
-.oo-ui-icon-next {
-       background-image: url("themes/mediawiki/images/icons/move-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-icon-next,
-.oo-ui-image-invert.oo-ui-icon-next {
-       background-image: url("themes/mediawiki/images/icons/move-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move-ltr-invert.png");
-}
-.oo-ui-icon-picture {
-       background-image: url("themes/mediawiki/images/icons/picture.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/picture.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/picture.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/picture.png");
-}
-.oo-ui-image-invert .oo-ui-icon-picture,
-.oo-ui-image-invert.oo-ui-icon-picture {
-       background-image: url("themes/mediawiki/images/icons/picture-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/picture-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/picture-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/picture-invert.png");
-}
-.oo-ui-icon-previous {
-       background-image: url("themes/mediawiki/images/icons/move-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move-rtl.png");
-}
-.oo-ui-image-invert .oo-ui-icon-previous,
-.oo-ui-image-invert.oo-ui-icon-previous {
-       background-image: url("themes/mediawiki/images/icons/move-rtl-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-rtl-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-rtl-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move-rtl-invert.png");
-}
-.oo-ui-icon-redo {
-       background-image: url("themes/mediawiki/images/icons/arched-arrow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arched-arrow-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-icon-redo,
-.oo-ui-image-invert.oo-ui-icon-redo {
-       background-image: url("themes/mediawiki/images/icons/arched-arrow-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arched-arrow-ltr-invert.png");
-}
-.oo-ui-icon-remove {
-       background-image: url("themes/mediawiki/images/icons/remove.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/remove.png");
-}
-.oo-ui-image-destructive .oo-ui-icon-remove,
-.oo-ui-image-destructive.oo-ui-icon-remove {
-       background-image: url("themes/mediawiki/images/icons/remove-destructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove-destructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove-destructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/remove-destructive.png");
-}
-.oo-ui-image-invert .oo-ui-icon-remove,
-.oo-ui-image-invert.oo-ui-icon-remove {
-       background-image: url("themes/mediawiki/images/icons/remove-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/remove-invert.png");
-}
-.oo-ui-icon-search {
-       background-image: url("themes/mediawiki/images/icons/search.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/search.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/search.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/search.png");
-}
-.oo-ui-image-invert .oo-ui-icon-search,
-.oo-ui-image-invert.oo-ui-icon-search {
-       background-image: url("themes/mediawiki/images/icons/search-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/search-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/search-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/search-invert.png");
-}
-.oo-ui-icon-settings {
-       background-image: url("themes/mediawiki/images/icons/settings.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/settings.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/settings.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/settings.png");
-}
-.oo-ui-image-invert .oo-ui-icon-settings,
-.oo-ui-image-invert.oo-ui-icon-settings {
-       background-image: url("themes/mediawiki/images/icons/settings-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/settings-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/settings-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/settings-invert.png");
-}
-.oo-ui-icon-tag {
-       background-image: url("themes/mediawiki/images/icons/tag.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/tag.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/tag.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/tag.png");
-}
-.oo-ui-image-invert .oo-ui-icon-tag,
-.oo-ui-image-invert.oo-ui-icon-tag {
-       background-image: url("themes/mediawiki/images/icons/tag-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/tag-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/tag-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/tag-invert.png");
-}
-.oo-ui-icon-undo {
-       background-image: url("themes/mediawiki/images/icons/arched-arrow-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arched-arrow-rtl.png");
-}
-.oo-ui-image-invert .oo-ui-icon-undo,
-.oo-ui-image-invert.oo-ui-icon-undo {
-       background-image: url("themes/mediawiki/images/icons/arched-arrow-rtl-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-rtl-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-rtl-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arched-arrow-rtl-invert.png");
-}
-.oo-ui-icon-window {
-       background-image: url("themes/mediawiki/images/icons/window.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/window.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/window.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/window.png");
-}
-.oo-ui-image-invert .oo-ui-icon-window,
-.oo-ui-image-invert.oo-ui-icon-window {
-       background-image: url("themes/mediawiki/images/icons/window-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/window-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/window-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/window-invert.png");
-}
-
-.oo-ui-indicator-alert {
-       background-image: url("themes/mediawiki/images/indicators/alert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/alert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/alert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/alert.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-alert,
-.oo-ui-image-invert.oo-ui-indicator-alert {
-       background-image: url("themes/mediawiki/images/indicators/alert-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/alert-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/alert-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/alert-invert.png");
-}
-.oo-ui-indicator-up {
-       background-image: url("themes/mediawiki/images/indicators/arrow-up.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-up.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-up.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-up.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-up,
-.oo-ui-image-invert.oo-ui-indicator-up {
-       background-image: url("themes/mediawiki/images/indicators/arrow-up-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-up-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-up-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-up-invert.png");
-}
-.oo-ui-indicator-down {
-       background-image: url("themes/mediawiki/images/indicators/arrow-down.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-down.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-down.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-down.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-down,
-.oo-ui-image-invert.oo-ui-indicator-down {
-       background-image: url("themes/mediawiki/images/indicators/arrow-down-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-down-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-down-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-down-invert.png");
-}
-.oo-ui-indicator-next {
-       background-image: url("themes/mediawiki/images/indicators/arrow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-next,
-.oo-ui-image-invert.oo-ui-indicator-next {
-       background-image: url("themes/mediawiki/images/indicators/arrow-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-ltr-invert.png");
-}
-.oo-ui-indicator-previous {
-       background-image: url("themes/mediawiki/images/indicators/arrow-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-rtl.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-previous,
-.oo-ui-image-invert.oo-ui-indicator-previous {
-       background-image: url("themes/mediawiki/images/indicators/arrow-rtl-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-rtl-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-rtl-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-rtl-invert.png");
-}
-.oo-ui-indicator-required {
-       background-image: url("themes/mediawiki/images/indicators/required.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/required.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/required.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/required.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-required,
-.oo-ui-image-invert.oo-ui-indicator-required {
-       background-image: url("themes/mediawiki/images/indicators/required-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/required-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/required-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/required-invert.png");
-}
-
-.oo-ui-texture-pending {
-       background-image: url("themes/mediawiki/images/textures/pending.gif");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/textures/pending.gif");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/textures/pending.gif");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/textures/pending.gif");
-}
-.oo-ui-texture-transparency {
-       background-image: url("themes/mediawiki/images/textures/transparency.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/textures/transparency.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/textures/transparency.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/textures/transparency.png");
-}
index 7d346bb..eaca1f1 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.10.1
+ * OOjs UI v0.11.3
  * 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-04-27T17:17:10Z
+ * Date: 2015-05-12T12:15:37Z
  */
 /**
  * @class
index f836042..9692d5c 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.10.1
+ * OOjs UI v0.11.3
  * 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-04-27T17:17:10Z
+ * Date: 2015-05-12T12:15:37Z
  */
 ( function ( OO ) {
 
@@ -150,6 +150,38 @@ OO.ui.contains = function ( containers, contained, matchContainers ) {
        return false;
 };
 
+/**
+ * Return a function, that, as long as it continues to be invoked, will not
+ * be triggered. The function will be called after it stops being called for
+ * N milliseconds. If `immediate` is passed, trigger the function on the
+ * leading edge, instead of the trailing.
+ *
+ * Ported from: http://underscorejs.org/underscore.js
+ *
+ * @param {Function} func
+ * @param {number} wait
+ * @param {boolean} immediate
+ * @return {Function}
+ */
+OO.ui.debounce = function ( func, wait, immediate ) {
+       var timeout;
+       return function () {
+               var context = this,
+                       args = arguments,
+                       later = function () {
+                               timeout = null;
+                               if ( !immediate ) {
+                                       func.apply( context, args );
+                               }
+                       };
+               if ( immediate && !timeout ) {
+                       func.apply( context, args );
+               }
+               clearTimeout( timeout );
+               timeout = setTimeout( later, wait );
+       };
+};
+
 /**
  * Reconstitute a JavaScript object corresponding to a widget created by
  * the PHP implementation.
@@ -4155,9 +4187,10 @@ OO.ui.ButtonElement.prototype.onMouseUp = function ( e ) {
  */
 OO.ui.ButtonElement.prototype.onClick = function ( e ) {
        if ( !this.isDisabled() && e.which === 1 ) {
-               this.emit( 'click' );
+               if ( this.emit( 'click' ) ) {
+                       return false;
+               }
        }
-       return false;
 };
 
 /**
@@ -4200,8 +4233,9 @@ OO.ui.ButtonElement.prototype.onKeyUp = function ( e ) {
  */
 OO.ui.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;
+               }
        }
 };
 
@@ -5338,9 +5372,9 @@ OO.ui.IndicatorElement.prototype.getIndicatorTitle = function () {
  * @param {Object} [config] Configuration options
  * @cfg {jQuery} [$label] The label element created by the class. If this
  *  configuration is omitted, the label element will use a generated `<span>`.
- * @cfg {jQuery|string|Function} [label] The label text. The label can be specified as a plaintext string,
- *  a jQuery selection of elements, or a function that will produce a string in the future. See the
- *  [OOjs UI documentation on MediaWiki] [2] for examples.
+ * @cfg {jQuery|string|Function|OO.ui.HtmlSnippet} [label] The label text. The label can be specified
+ *  as a plaintext string, a jQuery selection of elements, or a function that will produce a string
+ *  in the future. See the [OOjs UI documentation on MediaWiki] [2] for examples.
  *  [2]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Icons,_Indicators,_and_Labels#Labels
  * @cfg {boolean} [autoFitLabel=true] Fit the label to the width of the parent element.
  *  The label will be truncated to fit if necessary.
@@ -5707,16 +5741,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 () {
        if ( !this.lookupMenu.getSelectedItem() ) {
-               this.lookupMenu.selectItem( this.lookupMenu.getFirstSelectableItem() );
+               this.lookupMenu.highlightItem( this.lookupMenu.getFirstSelectableItem() );
        }
-       this.lookupMenu.highlightItem( this.lookupMenu.getSelectedItem() );
 };
 
 /**
@@ -6456,6 +6489,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 );
 };
@@ -6516,6 +6550,16 @@ OO.ui.Tool.static.group = '';
  */
 OO.ui.Tool.static.title = '';
 
+/**
+ * Whether this tool should be displayed with both title and label when used in a bar tool group.
+ * 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;
+
 /**
  * Tool can be automatically added to catch-all groups.
  *
@@ -6663,23 +6707,139 @@ OO.ui.Tool.prototype.destroy = function () {
 /**
  * Collection of tool groups.
  *
- *     @example
- *     // Basic OOjs UI toolbar example
+ * The following is a minimal example using several tools and tool groups.
  *
+ *     @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>' ).css( 'font-size', '0.8em' ).text( 'Toolbar example' );
+ *     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).
+ *     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' tool groups 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).
@@ -6689,13 +6849,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 );
@@ -6703,34 +6863,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 );
  *
@@ -6743,7 +6911,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';
@@ -6759,14 +6927,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
@@ -8427,8 +8593,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;
+       }
 };
 
 /**
@@ -9094,7 +9261,7 @@ OO.ui.BookletLayout.prototype.setPage = function ( name ) {
                if ( this.outlined ) {
                        selectedItem = this.outlineSelectWidget.getSelectedItem();
                        if ( selectedItem && selectedItem.getData() !== name ) {
-                               this.outlineSelectWidget.selectItem( this.outlineSelectWidget.getItemFromData( name ) );
+                               this.outlineSelectWidget.selectItemByData( name );
                        }
                }
                if ( page ) {
@@ -9132,119 +9299,711 @@ OO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {
 };
 
 /**
- * PanelLayouts expand to cover the entire area of their parent. They can be configured with scrolling, padding,
- * and a frame, and are often used together with {@link OO.ui.StackLayout StackLayouts}.
+ * IndexLayouts contain {@link OO.ui.CardLayout card layouts} as well as
+ * {@link OO.ui.TabSelectWidget tabs} that allow users to easily navigate through the cards and
+ * select which one to display. By default, only one card is displayed at a time. When a user
+ * navigates to a new card, the index layout automatically focuses on the first focusable element,
+ * unless the default setting is changed.
+ *
+ * TODO: This class is similar to BookletLayout, we may want to refactor to reduce duplication
  *
  *     @example
- *     // Example of a panel layout
- *     var panel = new OO.ui.PanelLayout( {
- *         expanded: false,
- *         framed: true,
- *         padded: true,
- *         $content: $( '<p>A panel layout with padding and a frame.</p>' )
- *     } );
- *     $( 'body' ).append( panel.$element );
+ *     // Example of a IndexLayout that contains two CardLayouts.
  *
- * @class
- * @extends OO.ui.Layout
+ *     function CardOneLayout( name, config ) {
+ *         CardOneLayout.super.call( this, name, config );
+ *         this.$element.append( '<p>First card</p>' );
+ *     }
+ *     OO.inheritClass( CardOneLayout, OO.ui.CardLayout );
+ *     CardOneLayout.prototype.setupTabItem = function () {
+ *         this.tabItem.setLabel( 'Card One' );
+ *     };
  *
- * @constructor
- * @param {Object} [config] Configuration options
- * @cfg {boolean} [scrollable=false] Allow vertical scrolling
- * @cfg {boolean} [padded=false] Add padding between the content and the edges of the panel.
- * @cfg {boolean} [expanded=true] Expand the panel to fill the entire parent element.
- * @cfg {boolean} [framed=false] Render the panel with a frame to visually separate it from outside content.
- */
-OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
-       // Configuration initialization
-       config = $.extend( {
-               scrollable: false,
-               padded: false,
-               expanded: true,
-               framed: false
-       }, config );
-
-       // Parent constructor
-       OO.ui.PanelLayout.super.call( this, config );
-
-       // Initialization
-       this.$element.addClass( 'oo-ui-panelLayout' );
-       if ( config.scrollable ) {
-               this.$element.addClass( 'oo-ui-panelLayout-scrollable' );
-       }
-       if ( config.padded ) {
-               this.$element.addClass( 'oo-ui-panelLayout-padded' );
-       }
-       if ( config.expanded ) {
-               this.$element.addClass( 'oo-ui-panelLayout-expanded' );
-       }
-       if ( config.framed ) {
-               this.$element.addClass( 'oo-ui-panelLayout-framed' );
-       }
-};
-
-/* Setup */
-
-OO.inheritClass( OO.ui.PanelLayout, OO.ui.Layout );
-
-/**
- * PageLayouts are used within {@link OO.ui.BookletLayout booklet layouts} to create pages that users can select and display
- * from the booklet's optional {@link OO.ui.OutlineSelectWidget outline} navigation. Pages are usually not instantiated directly,
- * rather extended to include the required content and functionality.
+ *     function CardTwoLayout( name, config ) {
+ *         CardTwoLayout.super.call( this, name, config );
+ *         this.$element.append( '<p>Second card</p>' );
+ *     }
+ *     OO.inheritClass( CardTwoLayout, OO.ui.CardLayout );
+ *     CardTwoLayout.prototype.setupTabItem = function () {
+ *         this.tabItem.setLabel( 'Card Two' );
+ *     };
  *
- * Each page must have a unique symbolic name, which is passed to the constructor. In addition, the page's outline
- * item is customized (with a label, outline level, etc.) using the #setupOutlineItem method. See
- * {@link OO.ui.BookletLayout BookletLayout} for an example.
+ *     var card1 = new CardOneLayout( 'one' ),
+ *         card2 = new CardTwoLayout( 'two' );
+ *
+ *     var index = new OO.ui.IndexLayout();
+ *
+ *     index.addCards ( [ card1, card2 ] );
+ *     $( 'body' ).append( index.$element );
  *
  * @class
- * @extends OO.ui.PanelLayout
+ * @extends OO.ui.MenuLayout
  *
  * @constructor
- * @param {string} name Unique symbolic name of page
  * @param {Object} [config] Configuration options
+ * @cfg {boolean} [continuous=false] Show all cards, one after another
+ * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new card is displayed.
  */
-OO.ui.PageLayout = function OoUiPageLayout( name, config ) {
-       // Allow passing positional parameters inside the config object
-       if ( OO.isPlainObject( name ) && config === undefined ) {
-               config = name;
-               name = config.name;
-       }
-
+OO.ui.IndexLayout = function OoUiIndexLayout( config ) {
        // Configuration initialization
-       config = $.extend( { scrollable: true }, config );
+       config = $.extend( {}, config, { menuPosition: 'top' } );
 
        // Parent constructor
-       OO.ui.PageLayout.super.call( this, config );
+       OO.ui.IndexLayout.super.call( this, config );
 
        // Properties
-       this.name = name;
-       this.outlineItem = null;
-       this.active = false;
+       this.currentCardName = null;
+       this.cards = {};
+       this.ignoreFocus = false;
+       this.stackLayout = new OO.ui.StackLayout( { continuous: !!config.continuous } );
+       this.$content.append( this.stackLayout.$element );
+       this.autoFocus = config.autoFocus === undefined || !!config.autoFocus;
+
+       this.tabSelectWidget = new OO.ui.TabSelectWidget();
+       this.tabPanel = new OO.ui.PanelLayout();
+       this.$menu.append( this.tabPanel.$element );
+
+       this.toggleMenu( true );
+
+       // Events
+       this.stackLayout.connect( this, { set: 'onStackLayoutSet' } );
+       this.tabSelectWidget.connect( this, { select: 'onTabSelectWidgetSelect' } );
+       if ( this.autoFocus ) {
+               // Event 'focus' does not bubble, but 'focusin' does
+               this.stackLayout.$element.on( 'focusin', this.onStackLayoutFocus.bind( this ) );
+       }
 
        // Initialization
-       this.$element.addClass( 'oo-ui-pageLayout' );
+       this.$element.addClass( 'oo-ui-indexLayout' );
+       this.stackLayout.$element.addClass( 'oo-ui-indexLayout-stackLayout' );
+       this.tabPanel.$element
+               .addClass( 'oo-ui-indexLayout-tabPanel' )
+               .append( this.tabSelectWidget.$element );
 };
 
 /* Setup */
 
-OO.inheritClass( OO.ui.PageLayout, OO.ui.PanelLayout );
+OO.inheritClass( OO.ui.IndexLayout, OO.ui.MenuLayout );
 
 /* Events */
 
 /**
- * An 'active' event is emitted when the page becomes active. Pages become active when they are
- * shown in a booklet layout that is configured to display only one page at a time.
- *
- * @event active
- * @param {boolean} active Page is active
+ * A 'set' event is emitted when a card is {@link #setCard set} to be displayed by the index layout.
+ * @event set
+ * @param {OO.ui.CardLayout} card Current card
  */
 
-/* Methods */
-
 /**
- * Get the symbolic name of the page.
+ * An 'add' event is emitted when cards are {@link #addCards added} to the index layout.
  *
- * @return {string} Symbolic name of page
+ * @event add
+ * @param {OO.ui.CardLayout[]} card Added cards
+ * @param {number} index Index cards were added at
+ */
+
+/**
+ * A 'remove' event is emitted when cards are {@link #clearCards cleared} or
+ * {@link #removeCards removed} from the index.
+ *
+ * @event remove
+ * @param {OO.ui.CardLayout[]} cards Removed cards
+ */
+
+/* Methods */
+
+/**
+ * Handle stack layout focus.
+ *
+ * @private
+ * @param {jQuery.Event} e Focusin event
+ */
+OO.ui.IndexLayout.prototype.onStackLayoutFocus = function ( e ) {
+       var name, $target;
+
+       // Find the card that an element was focused within
+       $target = $( e.target ).closest( '.oo-ui-cardLayout' );
+       for ( name in this.cards ) {
+               // Check for card match, exclude current card to find only card changes
+               if ( this.cards[ name ].$element[ 0 ] === $target[ 0 ] && name !== this.currentCardName ) {
+                       this.setCard( name );
+                       break;
+               }
+       }
+};
+
+/**
+ * Handle stack layout set events.
+ *
+ * @private
+ * @param {OO.ui.PanelLayout|null} card The card panel that is now the current panel
+ */
+OO.ui.IndexLayout.prototype.onStackLayoutSet = function ( card ) {
+       var layout = this;
+       if ( card ) {
+               card.scrollElementIntoView( { complete: function () {
+                       if ( layout.autoFocus ) {
+                               layout.focus();
+                       }
+               } } );
+       }
+};
+
+/**
+ * Focus the first input in the current card.
+ *
+ * If no card is selected, the first selectable card will be selected.
+ * If the focus is already in an element on the current card, nothing will happen.
+ * @param {number} [itemIndex] A specific item to focus on
+ */
+OO.ui.IndexLayout.prototype.focus = function ( itemIndex ) {
+       var $input, card,
+               items = this.stackLayout.getItems();
+
+       if ( itemIndex !== undefined && items[ itemIndex ] ) {
+               card = items[ itemIndex ];
+       } else {
+               card = this.stackLayout.getCurrentItem();
+       }
+
+       if ( !card ) {
+               this.selectFirstSelectableCard();
+               card = this.stackLayout.getCurrentItem();
+       }
+       if ( !card ) {
+               return;
+       }
+       // Only change the focus if is not already in the current card
+       if ( !card.$element.find( ':focus' ).length ) {
+               $input = card.$element.find( ':input:first' );
+               if ( $input.length ) {
+                       $input[ 0 ].focus();
+               }
+       }
+};
+
+/**
+ * Find the first focusable input in the index layout and focus
+ * on it.
+ */
+OO.ui.IndexLayout.prototype.focusFirstFocusable = function () {
+       var i, len,
+               found = false,
+               items = this.stackLayout.getItems(),
+               checkAndFocus = function () {
+                       if ( OO.ui.isFocusableElement( $( this ) ) ) {
+                               $( this ).focus();
+                               found = true;
+                               return false;
+                       }
+               };
+
+       for ( i = 0, len = items.length; i < len; i++ ) {
+               if ( found ) {
+                       break;
+               }
+               // Find all potentially focusable elements in the item
+               // and check if they are focusable
+               items[i].$element
+                       .find( 'input, select, textarea, button, object' )
+                       .each( checkAndFocus );
+       }
+};
+
+/**
+ * Handle tab widget select events.
+ *
+ * @private
+ * @param {OO.ui.OptionWidget|null} item Selected item
+ */
+OO.ui.IndexLayout.prototype.onTabSelectWidgetSelect = function ( item ) {
+       if ( item ) {
+               this.setCard( item.getData() );
+       }
+};
+
+/**
+ * Get the card closest to the specified card.
+ *
+ * @param {OO.ui.CardLayout} card Card to use as a reference point
+ * @return {OO.ui.CardLayout|null} Card closest to the specified card
+ */
+OO.ui.IndexLayout.prototype.getClosestCard = function ( card ) {
+       var next, prev, level,
+               cards = this.stackLayout.getItems(),
+               index = $.inArray( card, cards );
+
+       if ( index !== -1 ) {
+               next = cards[ index + 1 ];
+               prev = cards[ index - 1 ];
+               // Prefer adjacent cards at the same level
+               level = this.tabSelectWidget.getItemFromData( card.getName() ).getLevel();
+               if (
+                       prev &&
+                       level === this.tabSelectWidget.getItemFromData( prev.getName() ).getLevel()
+               ) {
+                       return prev;
+               }
+               if (
+                       next &&
+                       level === this.tabSelectWidget.getItemFromData( next.getName() ).getLevel()
+               ) {
+                       return next;
+               }
+       }
+       return prev || next || null;
+};
+
+/**
+ * Get the tabs widget.
+ *
+ * @return {OO.ui.TabSelectWidget} Tabs widget
+ */
+OO.ui.IndexLayout.prototype.getTabs = function () {
+       return this.tabSelectWidget;
+};
+
+/**
+ * Get a card by its symbolic name.
+ *
+ * @param {string} name Symbolic name of card
+ * @return {OO.ui.CardLayout|undefined} Card, if found
+ */
+OO.ui.IndexLayout.prototype.getCard = function ( name ) {
+       return this.cards[ name ];
+};
+
+/**
+ * Get the current card.
+ *
+ * @return {OO.ui.CardLayout|undefined} Current card, if found
+ */
+OO.ui.IndexLayout.prototype.getCurrentCard = function () {
+       var name = this.getCurrentCardName();
+       return name ? this.getCard( name ) : undefined;
+};
+
+/**
+ * Get the symbolic name of the current card.
+ *
+ * @return {string|null} Symbolic name of the current card
+ */
+OO.ui.IndexLayout.prototype.getCurrentCardName = function () {
+       return this.currentCardName;
+};
+
+/**
+ * Add cards to the index layout
+ *
+ * When cards are added with the same names as existing cards, the existing cards will be
+ * automatically removed before the new cards are added.
+ *
+ * @param {OO.ui.CardLayout[]} cards Cards to add
+ * @param {number} index Index of the insertion point
+ * @fires add
+ * @chainable
+ */
+OO.ui.IndexLayout.prototype.addCards = function ( cards, index ) {
+       var i, len, name, card, item, currentIndex,
+               stackLayoutCards = this.stackLayout.getItems(),
+               remove = [],
+               items = [];
+
+       // Remove cards with same names
+       for ( i = 0, len = cards.length; i < len; i++ ) {
+               card = cards[ i ];
+               name = card.getName();
+
+               if ( Object.prototype.hasOwnProperty.call( this.cards, name ) ) {
+                       // Correct the insertion index
+                       currentIndex = $.inArray( this.cards[ name ], stackLayoutCards );
+                       if ( currentIndex !== -1 && currentIndex + 1 < index ) {
+                               index--;
+                       }
+                       remove.push( this.cards[ name ] );
+               }
+       }
+       if ( remove.length ) {
+               this.removeCards( remove );
+       }
+
+       // Add new cards
+       for ( i = 0, len = cards.length; i < len; i++ ) {
+               card = cards[ i ];
+               name = card.getName();
+               this.cards[ card.getName() ] = card;
+               item = new OO.ui.TabOptionWidget( { data: name } );
+               card.setTabItem( item );
+               items.push( item );
+       }
+
+       if ( items.length ) {
+               this.tabSelectWidget.addItems( items, index );
+               this.selectFirstSelectableCard();
+       }
+       this.stackLayout.addItems( cards, index );
+       this.emit( 'add', cards, index );
+
+       return this;
+};
+
+/**
+ * Remove the specified cards from the index layout.
+ *
+ * To remove all cards from the index, you may wish to use the #clearCards method instead.
+ *
+ * @param {OO.ui.CardLayout[]} cards An array of cards to remove
+ * @fires remove
+ * @chainable
+ */
+OO.ui.IndexLayout.prototype.removeCards = function ( cards ) {
+       var i, len, name, card,
+               items = [];
+
+       for ( i = 0, len = cards.length; i < len; i++ ) {
+               card = cards[ i ];
+               name = card.getName();
+               delete this.cards[ name ];
+               items.push( this.tabSelectWidget.getItemFromData( name ) );
+               card.setTabItem( null );
+       }
+       if ( items.length ) {
+               this.tabSelectWidget.removeItems( items );
+               this.selectFirstSelectableCard();
+       }
+       this.stackLayout.removeItems( cards );
+       this.emit( 'remove', cards );
+
+       return this;
+};
+
+/**
+ * Clear all cards from the index layout.
+ *
+ * To remove only a subset of cards from the index, use the #removeCards method.
+ *
+ * @fires remove
+ * @chainable
+ */
+OO.ui.IndexLayout.prototype.clearCards = function () {
+       var i, len,
+               cards = this.stackLayout.getItems();
+
+       this.cards = {};
+       this.currentCardName = null;
+       this.tabSelectWidget.clearItems();
+       for ( i = 0, len = cards.length; i < len; i++ ) {
+               cards[ i ].setTabItem( null );
+       }
+       this.stackLayout.clearItems();
+
+       this.emit( 'remove', cards );
+
+       return this;
+};
+
+/**
+ * Set the current card by symbolic name.
+ *
+ * @fires set
+ * @param {string} name Symbolic name of card
+ */
+OO.ui.IndexLayout.prototype.setCard = function ( name ) {
+       var selectedItem,
+               $focused,
+               card = this.cards[ name ];
+
+       if ( name !== this.currentCardName ) {
+               selectedItem = this.tabSelectWidget.getSelectedItem();
+               if ( selectedItem && selectedItem.getData() !== name ) {
+                       this.tabSelectWidget.selectItemByData( name );
+               }
+               if ( card ) {
+                       if ( this.currentCardName && this.cards[ this.currentCardName ] ) {
+                               this.cards[ this.currentCardName ].setActive( false );
+                               // Blur anything focused if the next card doesn't have anything focusable - this
+                               // is not needed if the next card has something focusable because once it is focused
+                               // this blur happens automatically
+                               if ( this.autoFocus && !card.$element.find( ':input' ).length ) {
+                                       $focused = this.cards[ this.currentCardName ].$element.find( ':focus' );
+                                       if ( $focused.length ) {
+                                               $focused[ 0 ].blur();
+                                       }
+                               }
+                       }
+                       this.currentCardName = name;
+                       this.stackLayout.setItem( card );
+                       card.setActive( true );
+                       this.emit( 'set', card );
+               }
+       }
+};
+
+/**
+ * Select the first selectable card.
+ *
+ * @chainable
+ */
+OO.ui.IndexLayout.prototype.selectFirstSelectableCard = function () {
+       if ( !this.tabSelectWidget.getSelectedItem() ) {
+               this.tabSelectWidget.selectItem( this.tabSelectWidget.getFirstSelectableItem() );
+       }
+
+       return this;
+};
+
+/**
+ * PanelLayouts expand to cover the entire area of their parent. They can be configured with scrolling, padding,
+ * and a frame, and are often used together with {@link OO.ui.StackLayout StackLayouts}.
+ *
+ *     @example
+ *     // Example of a panel layout
+ *     var panel = new OO.ui.PanelLayout( {
+ *         expanded: false,
+ *         framed: true,
+ *         padded: true,
+ *         $content: $( '<p>A panel layout with padding and a frame.</p>' )
+ *     } );
+ *     $( 'body' ).append( panel.$element );
+ *
+ * @class
+ * @extends OO.ui.Layout
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {boolean} [scrollable=false] Allow vertical scrolling
+ * @cfg {boolean} [padded=false] Add padding between the content and the edges of the panel.
+ * @cfg {boolean} [expanded=true] Expand the panel to fill the entire parent element.
+ * @cfg {boolean} [framed=false] Render the panel with a frame to visually separate it from outside content.
+ */
+OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
+       // Configuration initialization
+       config = $.extend( {
+               scrollable: false,
+               padded: false,
+               expanded: true,
+               framed: false
+       }, config );
+
+       // Parent constructor
+       OO.ui.PanelLayout.super.call( this, config );
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-panelLayout' );
+       if ( config.scrollable ) {
+               this.$element.addClass( 'oo-ui-panelLayout-scrollable' );
+       }
+       if ( config.padded ) {
+               this.$element.addClass( 'oo-ui-panelLayout-padded' );
+       }
+       if ( config.expanded ) {
+               this.$element.addClass( 'oo-ui-panelLayout-expanded' );
+       }
+       if ( config.framed ) {
+               this.$element.addClass( 'oo-ui-panelLayout-framed' );
+       }
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.PanelLayout, OO.ui.Layout );
+
+/**
+ * CardLayouts are used within {@link OO.ui.IndexLayout index layouts} to create cards that users can select and display
+ * from the index's optional {@link OO.ui.TabSelectWidget tab} navigation. Cards are usually not instantiated directly,
+ * rather extended to include the required content and functionality.
+ *
+ * Each card must have a unique symbolic name, which is passed to the constructor. In addition, the card's tab
+ * item is customized (with a label) using the #setupTabItem method. See
+ * {@link OO.ui.IndexLayout IndexLayout} for an example.
+ *
+ * @class
+ * @extends OO.ui.PanelLayout
+ *
+ * @constructor
+ * @param {string} name Unique symbolic name of card
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.CardLayout = function OoUiCardLayout( name, config ) {
+       // Allow passing positional parameters inside the config object
+       if ( OO.isPlainObject( name ) && config === undefined ) {
+               config = name;
+               name = config.name;
+       }
+
+       // Configuration initialization
+       config = $.extend( { scrollable: true }, config );
+
+       // Parent constructor
+       OO.ui.CardLayout.super.call( this, config );
+
+       // Properties
+       this.name = name;
+       this.tabItem = null;
+       this.active = false;
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-cardLayout' );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.CardLayout, OO.ui.PanelLayout );
+
+/* Events */
+
+/**
+ * An 'active' event is emitted when the card becomes active. Cards become active when they are
+ * shown in a index layout that is configured to display only one card at a time.
+ *
+ * @event active
+ * @param {boolean} active Card is active
+ */
+
+/* Methods */
+
+/**
+ * Get the symbolic name of the card.
+ *
+ * @return {string} Symbolic name of card
+ */
+OO.ui.CardLayout.prototype.getName = function () {
+       return this.name;
+};
+
+/**
+ * Check if card is active.
+ *
+ * Cards become active when they are shown in a {@link OO.ui.IndexLayout index layout} that is configured to display
+ * only one card at a time. Additional CSS is applied to the card's tab item to reflect the active state.
+ *
+ * @return {boolean} Card is active
+ */
+OO.ui.CardLayout.prototype.isActive = function () {
+       return this.active;
+};
+
+/**
+ * Get tab item.
+ *
+ * The tab item allows users to access the card from the index's tab
+ * navigation. The tab item itself can be customized (with a label, level, etc.) using the #setupTabItem method.
+ *
+ * @return {OO.ui.TabOptionWidget|null} Tab option widget
+ */
+OO.ui.CardLayout.prototype.getTabItem = function () {
+       return this.tabItem;
+};
+
+/**
+ * Set or unset the tab item.
+ *
+ * Specify a {@link OO.ui.TabOptionWidget tab option} to set it,
+ * or `null` to clear the tab item. To customize the tab item itself (e.g., to set a label or tab
+ * level), use #setupTabItem instead of this method.
+ *
+ * @param {OO.ui.TabOptionWidget|null} tabItem Tab option widget, null to clear
+ * @chainable
+ */
+OO.ui.CardLayout.prototype.setTabItem = function ( tabItem ) {
+       this.tabItem = tabItem || null;
+       if ( tabItem ) {
+               this.setupTabItem();
+       }
+       return this;
+};
+
+/**
+ * Set up the tab item.
+ *
+ * Use this method to customize the tab item (e.g., to add a label or tab level). To set or unset
+ * the tab item itself (with a {@link OO.ui.TabOptionWidget tab option} or `null`), use
+ * the #setTabItem method instead.
+ *
+ * @param {OO.ui.TabOptionWidget} tabItem Tab option widget to set up
+ * @chainable
+ */
+OO.ui.CardLayout.prototype.setupTabItem = function () {
+       return this;
+};
+
+/**
+ * Set the card to its 'active' state.
+ *
+ * Cards become active when they are shown in a index layout that is configured to display only one card at a time. Additional
+ * CSS is applied to the tab item to reflect the card's active state. Outside of the index
+ * context, setting the active state on a card does nothing.
+ *
+ * @param {boolean} value Card is active
+ * @fires active
+ */
+OO.ui.CardLayout.prototype.setActive = function ( active ) {
+       active = !!active;
+
+       if ( active !== this.active ) {
+               this.active = active;
+               this.$element.toggleClass( 'oo-ui-cardLayout-active', this.active );
+               this.emit( 'active', this.active );
+       }
+};
+
+/**
+ * PageLayouts are used within {@link OO.ui.BookletLayout booklet layouts} to create pages that users can select and display
+ * from the booklet's optional {@link OO.ui.OutlineSelectWidget outline} navigation. Pages are usually not instantiated directly,
+ * rather extended to include the required content and functionality.
+ *
+ * Each page must have a unique symbolic name, which is passed to the constructor. In addition, the page's outline
+ * item is customized (with a label, outline level, etc.) using the #setupOutlineItem method. See
+ * {@link OO.ui.BookletLayout BookletLayout} for an example.
+ *
+ * @class
+ * @extends OO.ui.PanelLayout
+ *
+ * @constructor
+ * @param {string} name Unique symbolic name of page
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.PageLayout = function OoUiPageLayout( name, config ) {
+       // Allow passing positional parameters inside the config object
+       if ( OO.isPlainObject( name ) && config === undefined ) {
+               config = name;
+               name = config.name;
+       }
+
+       // Configuration initialization
+       config = $.extend( { scrollable: true }, config );
+
+       // Parent constructor
+       OO.ui.PageLayout.super.call( this, config );
+
+       // Properties
+       this.name = name;
+       this.outlineItem = null;
+       this.active = false;
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-pageLayout' );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.PageLayout, OO.ui.PanelLayout );
+
+/* Events */
+
+/**
+ * An 'active' event is emitted when the page becomes active. Pages become active when they are
+ * shown in a booklet layout that is configured to display only one page at a time.
+ *
+ * @event active
+ * @param {boolean} active Page is active
+ */
+
+/* Methods */
+
+/**
+ * Get the symbolic name of the page.
+ *
+ * @return {string} Symbolic name of page
  */
 OO.ui.PageLayout.prototype.getName = function () {
        return this.name;
@@ -9659,8 +10418,6 @@ 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 */
-
 /* Methods */
 
 /**
@@ -9815,8 +10572,6 @@ OO.inheritClass( OO.ui.ListToolGroup, OO.ui.PopupToolGroup );
 
 /* Static Properties */
 
-OO.ui.ListToolGroup.static.accelTooltips = true;
-
 OO.ui.ListToolGroup.static.name = 'list';
 
 /* Methods */
@@ -9939,8 +10694,6 @@ OO.inheritClass( OO.ui.MenuToolGroup, OO.ui.PopupToolGroup );
 
 /* Static Properties */
 
-OO.ui.MenuToolGroup.static.accelTooltips = true;
-
 OO.ui.MenuToolGroup.static.name = 'menu';
 
 /* Methods */
@@ -10049,6 +10802,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
@@ -10081,6 +10837,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.
  *
@@ -10209,7 +10975,7 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
 /**
  * OutlineControlsWidget is a set of controls for an {@link OO.ui.OutlineSelectWidget outline select widget}.
  * Controls include moving items up and down, removing items, and adding different kinds of items.
- * ####Currently, this class is only used by {@link OO.ui.BookletLayout BookletLayouts}.####
+ * ####Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.####
  *
  * @class
  * @extends OO.ui.Widget
@@ -10584,28 +11350,6 @@ OO.ui.ButtonWidget.prototype.onMouseUp = function ( e ) {
        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;
-};
-
 /**
  * Get hyperlink location.
  *
@@ -10899,7 +11643,7 @@ OO.ui.ActionWidget.prototype.toggle = function () {
  *         popup: {
  *             $content: $( '<p>Additional options here.</p>' ),
  *             padded: true,
- *             align: 'left'
+ *             align: 'force-left'
  *         }
  *     } );
  *     // Append the button to the DOM.
@@ -11834,10 +12578,7 @@ OO.ui.DropdownInputWidget.prototype.onMenuSelect = function ( item ) {
  * @inheritdoc
  */
 OO.ui.DropdownInputWidget.prototype.setValue = function ( value ) {
-       var item = this.dropdownWidget.getMenu().getItemFromData( value );
-       if ( item ) {
-               this.dropdownWidget.getMenu().selectItem( item );
-       }
+       this.dropdownWidget.getMenu().selectItemByData( value );
        OO.ui.DropdownInputWidget.super.prototype.setValue.call( this, value );
        return this;
 };
@@ -12036,9 +12777,11 @@ OO.ui.RadioInputWidget.prototype.isSelected = function () {
  * @cfg {string} [labelPosition='after'] The position of the inline label relative to that of
  *  the value or placeholder text: `'before'` or `'after'`
  * @cfg {boolean} [required=false] Mark the field as required
- * @cfg {RegExp|string} [validate] Validation pattern, either a regular expression or the
- *  symbolic name of a pattern defined by the class: 'non-empty' (the value cannot be an empty string)
- *  or 'integer' (the value must contain only numbers).
+ * @cfg {RegExp|Function|string} [validate] Validation pattern: when string, a symbolic name of a
+ *  pattern defined by the class: 'non-empty' (the value cannot be an empty string) or 'integer'
+ *  (the value must contain only numbers); when RegExp, a regular expression that must match the
+ *  value for it to be considered valid; when Function, a function receiving the value as parameter
+ *  that must return true, or promise resolving to true, for it to be considered valid.
  */
 OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        // Configuration initialization
@@ -12079,7 +12822,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 )
@@ -12087,6 +12830,7 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        this.$icon.on( 'mousedown', this.onIconMouseDown.bind( this ) );
        this.$indicator.on( 'mousedown', this.onIndicatorMouseDown.bind( this ) );
        this.on( 'labelChange', this.updatePosition.bind( this ) );
+       this.connect( this, { change: 'onChange' } );
 
        // Initialization
        this.$element
@@ -12103,7 +12847,8 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
                this.$input.attr( 'autofocus', 'autofocus' );
        }
        if ( config.required ) {
-               this.$input.attr( 'required', 'true' );
+               this.$input.attr( 'required', 'required' );
+               this.$input.attr( 'aria-required', 'true' );
        }
        if ( this.label || config.autosize ) {
                this.installParentChangeDetector();
@@ -12178,6 +12923,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.
  *
@@ -12192,25 +12947,14 @@ OO.ui.TextInputWidget.prototype.onElementAttach = function () {
 };
 
 /**
- * @inheritdoc
- */
-OO.ui.TextInputWidget.prototype.onEdit = function () {
-       this.adjustSize();
-
-       // Parent method
-       return OO.ui.TextInputWidget.super.prototype.onEdit.call( this );
-};
-
-/**
- * @inheritdoc
+ * Handle change events.
+ *
+ * @param {string} value
+ * @private
  */
-OO.ui.TextInputWidget.prototype.setValue = function ( value ) {
-       // Parent method
-       OO.ui.TextInputWidget.super.prototype.setValue.call( this, value );
-
+OO.ui.TextInputWidget.prototype.onChange = function () {
        this.setValidityFlag();
        this.adjustSize();
-       return this;
 };
 
 /**
@@ -12395,15 +13139,15 @@ OO.ui.TextInputWidget.prototype.select = function () {
 /**
  * Set the validation pattern.
  *
- * The validation pattern is either a regular expression or the symbolic name of a pattern
- * defined by the class: 'non-empty' (the value cannot be an empty string) or 'integer' (the
+ * The validation pattern is either a regular expression, a function, or the symbolic name of a
+ * pattern defined by the class: 'non-empty' (the value cannot be an empty string) or 'integer' (the
  * value must contain only numbers).
  *
- * @param {RegExp|string|null} validate Regular expression or the symbolic name of a
- *  pattern (either ‘integer’ or ‘non-empty’) defined by the class.
+ * @param {RegExp|Function|string|null} validate Regular expression, function, or the symbolic name
+ *  of a pattern (either ‘integer’ or ‘non-empty’) defined by the class.
  */
 OO.ui.TextInputWidget.prototype.setValidation = function ( validate ) {
-       if ( validate instanceof RegExp ) {
+       if ( validate instanceof RegExp || validate instanceof Function ) {
                this.validate = validate;
        } else {
                this.validate = this.constructor.static.validationPatterns[ validate ] || /.*/;
@@ -12412,12 +13156,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 ) {
-               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 );
+       }
 };
 
 /**
@@ -12426,10 +13183,19 @@ OO.ui.TextInputWidget.prototype.setValidityFlag = function () {
  * This method returns a promise that resolves with a boolean `true` if the current value is
  * considered valid according to the supplied {@link #validate validation pattern}.
  *
- * @return {jQuery.Deferred} A promise that resolves to a boolean `true` if the value is valid.
+ * @return {jQuery.Promise} A promise that resolves to a boolean `true` if the value is valid.
  */
 OO.ui.TextInputWidget.prototype.isValid = function () {
-       return $.Deferred().resolve( !!this.getValue().match( this.validate ) ).promise();
+       if ( this.validate instanceof Function ) {
+               var result = this.validate( this.getValue() );
+               if ( $.isFunction( result.promise ) ) {
+                       return result.promise();
+               } else {
+                       return $.Deferred().resolve( !!result ).promise();
+               }
+       } else {
+               return $.Deferred().resolve( !!this.getValue().match( this.validate ) ).promise();
+       }
 };
 
 /**
@@ -13405,6 +14171,38 @@ OO.ui.OutlineOptionWidget.prototype.setLevel = function ( level ) {
        return this;
 };
 
+/**
+ * TabOptionWidget is an item in a {@link OO.ui.TabSelectWidget TabSelectWidget}.
+ *
+ * Currently, this class is only used by {@link OO.ui.IndexLayout index layouts}, which contain
+ * {@link OO.ui.CardLayout card layouts}. See {@link OO.ui.IndexLayout IndexLayout}
+ * for an example.
+ *
+ * @class
+ * @extends OO.ui.OptionWidget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.TabOptionWidget = function OoUiTabOptionWidget( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Parent constructor
+       OO.ui.TabOptionWidget.super.call( this, config );
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-tabOptionWidget' );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.TabOptionWidget, OO.ui.OptionWidget );
+
+/* Static Properties */
+
+OO.ui.TabOptionWidget.static.highlightable = false;
+
 /**
  * PopupWidget is a container for content. The popup is overlaid and positioned absolutely.
  * By default, each popup has an anchor that points toward its origin.
@@ -13433,9 +14231,13 @@ OO.ui.OutlineOptionWidget.prototype.setLevel = function ( level ) {
  * @cfg {number} [width=320] Width of popup in pixels
  * @cfg {number} [height] Height of popup in pixels. Omit to use the automatic height.
  * @cfg {boolean} [anchor=true] Show anchor pointing to origin of popup
- * @cfg {string} [align='center'] Alignment of the popup: `center`, `left`, or `right`.
- *  If the popup is right-aligned, the right edge of the popup is aligned to the anchor.
- *  For left-aligned popups, the left edge is aligned to the anchor.
+ * @cfg {string} [align='center'] Alignment of the popup: `center`, `force-left`, `force-right`, `backwards` or `forwards`.
+ *  If the popup is forced-left the popup body is leaning towards the left. For force-right alignment, the body of the
+ *  popup is leaning towards the right of the screen.
+ *  Using 'backwards' is a logical direction which will result in the popup leaning towards the beginning of the sentence
+ *  in the given language, which means it will flip to the correct positioning in right-to-left languages.
+ *  Using 'forward' will also result in a logical alignment where the body of the popup leans towards the end of the
+ *  sentence in the given language.
  * @cfg {jQuery} [$container] Constrain the popup to the boundaries of the specified container.
  *  See the [OOjs UI docs on MediaWiki][3] for an example.
  *  [3]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Popups#containerExample
@@ -13477,7 +14279,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;
-       this.align = config.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 );
@@ -13693,6 +14495,7 @@ OO.ui.PopupWidget.prototype.setSize = function ( width, height, transition ) {
 OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
        var popupOffset, originOffset, containerLeft, containerWidth, containerRight,
                popupLeft, popupRight, overlapLeft, overlapRight, anchorWidth,
+               align = this.align,
                widget = this;
 
        if ( !this.$container ) {
@@ -13707,8 +14510,18 @@ OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
                height: this.height !== null ? this.height : 'auto'
        } );
 
+       // If we are in RTL, we need to flip the alignment, unless it is center
+       if ( align === 'forwards' || align === 'backwards' ) {
+               if ( this.$container.css( 'direction' ) === 'rtl' ) {
+                       align = ( { forwards: 'force-left', backwards: 'force-right' } )[ this.align ];
+               } else {
+                       align = ( { forwards: 'force-right', backwards: 'force-left' } )[ this.align ];
+               }
+
+       }
+
        // Compute initial popupOffset based on alignment
-       popupOffset = this.width * ( { left: 0, center: -0.5, right: -1 } )[ this.align ];
+       popupOffset = this.width * ( { 'force-left': -1, center: -0.5, 'force-right': 0 } )[ align ];
 
        // Figure out if this will cause the popup to go beyond the edge of the container
        originOffset = this.$element.offset().left;
@@ -13763,6 +14576,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:
@@ -14068,6 +14904,7 @@ 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
@@ -14453,6 +15290,22 @@ OO.ui.SelectWidget.prototype.highlightItem = function ( item ) {
        return this;
 };
 
+/**
+ * Programmatically select an option by its data. If the `data` parameter is omitted,
+ * or if the item does not exist, all options will be deselected.
+ *
+ * @param {Object|string} [data] Value of the item to select, omit to deselect all
+ * @fires select
+ * @chainable
+ */
+OO.ui.SelectWidget.prototype.selectItemByData = function ( data ) {
+       var itemFromData = this.getItemFromData( data );
+       if ( data === undefined || !itemFromData ) {
+               return this.selectItem();
+       }
+       return this.selectItem( itemFromData );
+};
+
 /**
  * Programmatically select an option by its reference. If the `item` parameter is omitted,
  * all options will be deselected.
@@ -15136,7 +15989,7 @@ OO.ui.TextInputMenuSelectWidget.prototype.position = function () {
  * OutlineSelectWidget is a structured list that contains {@link OO.ui.OutlineOptionWidget outline options}
  * A set of controls can be provided with an {@link OO.ui.OutlineControlsWidget outline controls} widget.
  *
- * ####Currently, this class is only used by {@link OO.ui.BookletLayout BookletLayouts}.####
+ * ####Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.####
  *
  * @class
  * @extends OO.ui.SelectWidget
@@ -15167,6 +16020,40 @@ OO.ui.OutlineSelectWidget = function OoUiOutlineSelectWidget( config ) {
 OO.inheritClass( OO.ui.OutlineSelectWidget, OO.ui.SelectWidget );
 OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.TabIndexedElement );
 
+/**
+ * TabSelectWidget is a list that contains {@link OO.ui.TabOptionWidget tab options}
+ *
+ * ####Currently, this class is only used by {@link OO.ui.IndexLayout index layouts}.####
+ *
+ * @class
+ * @extends OO.ui.SelectWidget
+ * @mixins OO.ui.TabIndexedElement
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.TabSelectWidget = function OoUiTabSelectWidget( config ) {
+       // Parent constructor
+       OO.ui.TabSelectWidget.super.call( this, config );
+
+       // Mixin constructors
+       OO.ui.TabIndexedElement.call( this, config );
+
+       // Events
+       this.$element.on( {
+               focus: this.bindKeyDownListener.bind( this ),
+               blur: this.unbindKeyDownListener.bind( this )
+       } );
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-tabSelectWidget' );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.TabSelectWidget, OO.ui.SelectWidget );
+OO.mixinClass( OO.ui.TabSelectWidget, OO.ui.TabIndexedElement );
+
 /**
  * ToggleSwitches are switches that slide on and off. Their state is represented by a Boolean
  * value (`true` for ‘on’, and `false` otherwise, the default). The ‘off’ state is represented
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json b/resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json
new file mode 100644 (file)
index 0000000..5fbf34d
--- /dev/null
@@ -0,0 +1,33 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "bell": { "file": "images/icons/bell.svg" },
+               "bellOn": { "file": {
+                       "ltr": "images/icons/bellOn-ltr.svg",
+                       "rtl": "images/icons/bellOn-rtl.svg"
+               } },
+               "eye": { "file": "images/icons/eye.svg" },
+               "eyeClosed": { "file": "images/icons/eyeClosed.svg" },
+               "message": { "file": {
+                       "ltr": "images/icons/message-ltr.svg",
+                       "rtl": "images/icons/message-rtl.svg"
+               } },
+               "signature": { "file": {
+                       "ltr": "images/icons/signature-ltr.svg",
+                       "rtl": "images/icons/signature-rtl.svg"
+               } },
+               "speechBubble": { "file": {
+                       "ltr": "images/icons/speechBubble-ltr.svg",
+                       "rtl": "images/icons/speechBubble-rtl.svg"
+               } },
+               "speechBubbleAdd": { "file": {
+                       "ltr": "images/icons/speechBubbleAdd-ltr.svg",
+                       "rtl": "images/icons/speechBubbleAdd-rtl.svg"
+               } },
+               "speechBubbles": { "file": {
+                       "ltr": "images/icons/speechBubbles-ltr.svg",
+                       "rtl": "images/icons/speechBubbles-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-content.json b/resources/lib/oojs-ui/themes/mediawiki/icons-content.json
new file mode 100644 (file)
index 0000000..29681c0
--- /dev/null
@@ -0,0 +1,50 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "article": { "file": {
+                       "ltr": "images/icons/article-ltr.svg",
+                       "rtl": "images/icons/article-rtl.svg"
+               } },
+               "articleCheck": { "file": {
+                       "ltr": "images/icons/articleCheck-ltr.svg",
+                       "rtl": "images/icons/articleCheck-rtl.svg"
+               } },
+               "articleSearch": { "file": {
+                       "ltr": "images/icons/articleSearch-ltr.svg",
+                       "rtl": "images/icons/articleSearch-rtl.svg"
+               } },
+               "book": { "file": {
+                       "ltr": "images/icons/book-ltr.svg",
+                       "rtl": "images/icons/book-rtl.svg"
+               } },
+               "citeArticle": { "file": {
+                       "ltr": "images/icons/citeArticle-ltr.svg",
+                       "rtl": "images/icons/citeArticle-rtl.svg"
+               } },
+               "die": { "file": {
+                       "ltr": "images/icons/die-ltr.svg",
+                       "rtl": "images/icons/die-rtl.svg"
+               } },
+               "download": { "file": {
+                       "ltr": "images/icons/download-ltr.svg",
+                       "rtl": "images/icons/download-rtl.svg"
+               } },
+               "folderPlaceholder": { "file": {
+                       "ltr": "images/icons/folderPlaceholder-ltr.svg",
+                       "rtl": "images/icons/folderPlaceholder-rtl.svg"
+               } },
+               "journal": { "file": {
+                       "ltr": "images/icons/journal-ltr.svg",
+                       "rtl": "images/icons/journal-rtl.svg"
+               } },
+               "newspaper": { "file": {
+                       "ltr": "images/icons/newspaper-ltr.svg",
+                       "rtl": "images/icons/newspaper-rtl.svg"
+               } },
+               "upload": { "file": {
+                       "ltr": "images/icons/upload-ltr.svg",
+                       "rtl": "images/icons/upload-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json b/resources/lib/oojs-ui/themes/mediawiki/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/mediawiki/icons-editing-core.json b/resources/lib/oojs-ui/themes/mediawiki/icons-editing-core.json
new file mode 100644 (file)
index 0000000..3bacb60
--- /dev/null
@@ -0,0 +1,45 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               },
+               "progressive": {
+                       "color": "#347BFF"
+               },
+               "constructive": {
+                       "color": "#00AF89"
+               },
+               "destructive": {
+                       "color": "#D11D13"
+               },
+               "warning": {
+                       "color": "#FF5D00"
+               }
+       },
+       "images": {
+               "edit": { "file": {
+                       "ltr": "images/icons/edit-ltr.svg",
+                       "rtl": "images/icons/edit-rtl.svg"
+               }, "variants": [ "progressive" ] },
+               "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": {
+                       "ltr": "images/icons/link-ltr.svg",
+                       "rtl": "images/icons/link-rtl.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/mediawiki/icons-editing-list.json b/resources/lib/oojs-ui/themes/mediawiki/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/mediawiki/icons-editing-styling.json b/resources/lib/oojs-ui/themes/mediawiki/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/mediawiki/icons-interactions.json b/resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json
new file mode 100644 (file)
index 0000000..497a301
--- /dev/null
@@ -0,0 +1,52 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "beta": { "file": "images/icons/beta.svg" },
+               "betaLaunch": { "file": "images/icons/betaLaunch.svg" },
+               "bookmark": { "file": {
+                       "ltr": "images/icons/bookmark-ltr.svg",
+                       "rtl": "images/icons/bookmark-rtl.svg"
+               } },
+               "browser": { "file": {
+                       "ltr": "images/icons/browser-ltr.svg",
+                       "rtl": "images/icons/browser-rtl.svg"
+               } },
+               "clear": { "file": "images/icons/clear.svg" },
+               "clock": { "file": "images/icons/clock.svg" },
+               "funnel": { "file": {
+                       "ltr": "images/icons/funnel-ltr.svg",
+                       "rtl": "images/icons/funnel-rtl.svg"
+               } },
+               "heart": { "file": "images/icons/heart.svg" },
+               "key": { "file": {
+                       "ltr": "images/icons/key-ltr.svg",
+                       "rtl": "images/icons/key-rtl.svg"
+               } },
+               "keyboard": { "file": {
+                       "ltr": "images/icons/keyboard-ltr.svg",
+                       "rtl": "images/icons/keyboard-rtl.svg"
+               } },
+               "logOut": { "file": {
+                       "ltr": "images/icons/logOut-ltr.svg",
+                       "rtl": "images/icons/logOut-rtl.svg"
+               } },
+               "newWindow": { "file": {
+                       "ltr": "images/icons/newWindow-ltr.svg",
+                       "rtl": "images/icons/newWindow-rtl.svg"
+               } },
+               "printer": { "file": {
+                       "ltr": "images/icons/printer-ltr.svg",
+                       "rtl": "images/icons/printer-rtl.svg"
+               } },
+               "ribbonPrize": { "file": "images/icons/ribbonPrize.svg" },
+               "sun": { "file": {
+                       "ltr": "images/icons/sun-ltr.svg",
+                       "rtl": "images/icons/sun-rtl.svg"
+               } },
+               "watchlist": { "file": {
+                       "ltr": "images/icons/watchlist-ltr.svg",
+                       "rtl": "images/icons/watchlist-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-layout.json b/resources/lib/oojs-ui/themes/mediawiki/icons-layout.json
new file mode 100644 (file)
index 0000000..ae6b09d
--- /dev/null
@@ -0,0 +1,43 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               },
+               "progressive": {
+                       "color": "#347BFF"
+               },
+               "constructive": {
+                       "color": "#00AF89"
+               },
+               "destructive": {
+                       "color": "#D11D13"
+               },
+               "warning": {
+                       "color": "#FF5D00"
+               }
+       },
+       "images": {
+               "stripeFlow": { "file": {
+                       "ltr": "images/icons/stripeFlow-ltr.svg",
+                       "rtl": "images/icons/stripeFlow-rtl.svg"
+               } },
+               "stripeSideMenu": { "file": "images/icons/stripeSideMenu.svg" },
+               "stripeSummary": { "file": {
+                       "ltr": "images/icons/stripeSummary-ltr.svg",
+                       "rtl": "images/icons/stripeSummary-rtl.svg"
+               } },
+               "stripeToC": { "file": {
+                       "ltr": "images/icons/stripeToC-ltr.svg",
+                       "rtl": "images/icons/stripeToC-rtl.svg"
+               }, "variants": [ "progressive" ] },
+               "viewCompact": { "file": "images/icons/viewCompact.svg" },
+               "viewDetails": { "file": {
+                       "ltr": "images/icons/viewDetails-ltr.svg",
+                       "rtl": "images/icons/viewDetails-rtl.svg"
+               } },
+               "visionSimulator": { "file": "images/icons/visionSimulator.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-location.json b/resources/lib/oojs-ui/themes/mediawiki/icons-location.json
new file mode 100644 (file)
index 0000000..9eec19b
--- /dev/null
@@ -0,0 +1,19 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "map": { "file": {
+                       "ltr": "images/icons/map-ltr.svg",
+                       "rtl": "images/icons/map-rtl.svg"
+               } },
+               "mapPin": { "file": "images/icons/mapPin.svg" },
+               "mapPinAdd": { "file": {
+                       "ltr": "images/icons/mapPinAdd-ltr.svg",
+                       "rtl": "images/icons/mapPinAdd-rtl.svg"
+               } },
+               "wikitrail": { "file": {
+                       "ltr": "images/icons/wikitrail-ltr.svg",
+                       "rtl": "images/icons/wikitrail-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-media.json b/resources/lib/oojs-ui/themes/mediawiki/icons-media.json
new file mode 100644 (file)
index 0000000..960079b
--- /dev/null
@@ -0,0 +1,27 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "image": { "file": {
+                       "ltr": "images/icons/image-ltr.svg",
+                       "rtl": "images/icons/image-rtl.svg"
+               } },
+               "imageAdd": { "file": {
+                       "ltr": "images/icons/imageAdd-ltr.svg",
+                       "rtl": "images/icons/imageAdd-rtl.svg"
+               } },
+               "imageLock": { "file": {
+                       "ltr": "images/icons/imageLock-ltr.svg",
+                       "rtl": "images/icons/imageLock-rtl.svg"
+               } },
+               "photoGallery": { "file": {
+                       "ltr": "images/icons/photoGallery-ltr.svg",
+                       "rtl": "images/icons/photoGallery-rtl.svg"
+               } },
+               "play": { "file": {
+                       "ltr": "images/icons/play-ltr.svg",
+                       "rtl": "images/icons/play-rtl.svg"
+               } },
+               "stop": { "file": "images/icons/stop.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-moderation.json b/resources/lib/oojs-ui/themes/mediawiki/icons-moderation.json
new file mode 100644 (file)
index 0000000..1f12f2a
--- /dev/null
@@ -0,0 +1,52 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               },
+               "progressive": {
+                       "color": "#347BFF"
+               },
+               "constructive": {
+                       "color": "#00AF89"
+               },
+               "destructive": {
+                       "color": "#D11D13"
+               },
+               "warning": {
+                       "color": "#FF5D00"
+               }
+       },
+       "images": {
+               "block": { "file": "images/icons/block.svg", "variants": [ "destructive" ] },
+               "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": {
+                       "ltr": "images/icons/lock-ltr.svg",
+                       "rtl": "images/icons/lock-rtl.svg"
+               }, "variants": [ "destructive" ] },
+               "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"
+               }, "variants": [ "destructive" ] },
+               "unStar": { "file": "images/icons/unStar.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-movement.json b/resources/lib/oojs-ui/themes/mediawiki/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/mediawiki/icons-user.json b/resources/lib/oojs-ui/themes/mediawiki/icons-user.json
new file mode 100644 (file)
index 0000000..2bda575
--- /dev/null
@@ -0,0 +1,19 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "userActive": { "file": {
+                       "ltr": "images/icons/userActive-ltr.svg",
+                       "rtl": "images/icons/userActive-rtl.svg"
+               } },
+               "userAvatar": { "file": "images/icons/userAvatar.svg" },
+               "userInactive": { "file": {
+                       "ltr": "images/icons/userInactive-ltr.svg",
+                       "rtl": "images/icons/userInactive-rtl.svg"
+               } },
+               "userTalk": { "file": {
+                       "ltr": "images/icons/userTalk-ltr.svg",
+                       "rtl": "images/icons/userTalk-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-wikimedia.json b/resources/lib/oojs-ui/themes/mediawiki/icons-wikimedia.json
new file mode 100644 (file)
index 0000000..fd13c95
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "logoCC": { "file": "images/icons/logo-cc.svg" },
+               "logoWikimediaCommons": { "file": "images/icons/logo-wikimediaCommons.svg" },
+               "logoWikipedia": { "file": "images/icons/logo-wikipedia.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons.json b/resources/lib/oojs-ui/themes/mediawiki/icons.json
new file mode 100644 (file)
index 0000000..d385eb1
--- /dev/null
@@ -0,0 +1,75 @@
+{
+       "selectorWithoutVariant": ".oo-ui-icon-{name}",
+       "selectorWithVariant": ".oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}",
+       "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               },
+               "progressive": {
+                       "color": "#347BFF"
+               },
+               "constructive": {
+                       "color": "#00AF89"
+               },
+               "destructive": {
+                       "color": "#D11D13"
+               },
+               "warning": {
+                       "color": "#FF5D00"
+               }
+       },
+       "images": {
+               "add": { "file": "images/icons/add.svg", "variants": [ "constructive" ] },
+               "advanced": { "file": "images/icons/advanced.svg" },
+               "alert": { "file": "images/icons/alert.svg", "variants": [ "warning" ] },
+               "cancel": { "file": "images/icons/cancel.svg" },
+               "check": { "file": "images/icons/check.svg", "variants": [ "constructive", "progressive" ] },
+               "circle": { "file": "images/icons/circle.svg", "variants": [ "constructive" ] },
+               "close": { "file": {
+                       "ltr": "images/icons/close-ltr.svg",
+                       "rtl": "images/icons/close-rtl.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", "variants": [ "destructive" ] },
+               "search": { "file": {
+                       "ltr": "images/icons/search-ltr.svg",
+                       "rtl": "images/icons/search-rtl.svg"
+               } },
+               "settings": { "file": "images/icons/settings.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"
+               } },
+               "window": { "file": "images/icons/window.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..9aca415 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="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>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve"><style>* { fill: #FFFFFF }</style>\r
+<path d="M-472.8,494.7l6.3,5.7l-6.3,5.7v-3.8h-1.3c-3.2,0-6.3,1.3-7.6,3.8c0-4.7,2.8-7.6,7.9-7.6h0.9V494.7z"/>\r
+</svg>\r
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..049f21e 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="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>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve">\r
+<path d="M-472.8,494.7l6.3,5.7l-6.3,5.7v-3.8h-1.3c-3.2,0-6.3,1.3-7.6,3.8c0-4.7,2.8-7.6,7.9-7.6h0.9V494.7z"/>\r
+</svg>\r
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..11fffcb 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="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>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve"><style>* { fill: #FFFFFF }</style>\r
+<path d="M-476.3,494.7l-6.3,5.7l6.3,5.7v-3.8h1.3c3.2,0,6.3,1.3,7.6,3.8c0-4.7-2.8-7.6-7.9-7.6h-0.9V494.7z"/>\r
+</svg>\r
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..20875f3 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="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>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve">\r
+<path d="M-476.3,494.7l-6.3,5.7l6.3,5.7v-3.8h1.3c3.2,0,6.3,1.3,7.6,3.8c0-4.7-2.8-7.6-7.9-7.6h-0.9V494.7z"/>\r
+</svg>\r
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-destructive.png
new file mode 100644 (file)
index 0000000..3e91997
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-destructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-destructive.svg
new file mode 100644 (file)
index 0000000..c850e65
--- /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"><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"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.png
new file mode 100644 (file)
index 0000000..9529e5b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.svg
new file mode 100644 (file)
index 0000000..289ef4f
--- /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"><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"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.png
new file mode 100644 (file)
index 0000000..aeee727
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.svg
new file mode 100644 (file)
index 0000000..9408937
--- /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: #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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.png
new file mode 100644 (file)
index 0000000..46b680c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.svg
new file mode 100644 (file)
index 0000000..ba48235
--- /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: #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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.png
new file mode 100644 (file)
index 0000000..5668e12
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.svg
new file mode 100644 (file)
index 0000000..8a9d3d4
--- /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: #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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.png
new file mode 100644 (file)
index 0000000..51a33ff
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.svg
new file mode 100644 (file)
index 0000000..bfc1b44
--- /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="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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.png
deleted file mode 100644 (file)
index 5668e12..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.svg
deleted file mode 100644 (file)
index 6d3bc58..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?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="clear">
-        <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"/>
-    </g>
-</svg>
index 51a33ff..b18e2e6 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/clear.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clear.png differ
index 0dcde9d..55a26c9 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-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"/>
-    </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>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.png
deleted file mode 100644 (file)
index b18e2e6..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.svg
deleted file mode 100644 (file)
index 5d29e3c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?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 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"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.png
new file mode 100644 (file)
index 0000000..65b4c65
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.svg
new file mode 100644 (file)
index 0000000..add25a4
--- /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: #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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.png
new file mode 100644 (file)
index 0000000..ee2be2d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.svg
new file mode 100644 (file)
index 0000000..bceb7c1
--- /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="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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.png
new file mode 100644 (file)
index 0000000..2b311a9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.svg
new file mode 100644 (file)
index 0000000..339c830
--- /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: #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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.png
new file mode 100644 (file)
index 0000000..8d36fa8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.svg
new file mode 100644 (file)
index 0000000..d526fb4
--- /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="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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr-invert.png
new file mode 100644 (file)
index 0000000..fe07392
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr-invert.svg
new file mode 100644 (file)
index 0000000..30d1021
--- /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"><style>* { fill: #FFFFFF }</style>
+    <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/mediawiki/images/icons/editLock-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl-invert.png
new file mode 100644 (file)
index 0000000..ff54699
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl-invert.svg
new file mode 100644 (file)
index 0000000..0e975b5
--- /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"><style>* { fill: #FFFFFF }</style>
+    <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/mediawiki/images/icons/editUndo-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.png
new file mode 100644 (file)
index 0000000..3952442
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.svg
new file mode 100644 (file)
index 0000000..cc8b61f
--- /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"><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"/>
+        </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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.png
new file mode 100644 (file)
index 0000000..53469ce
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.svg
new file mode 100644 (file)
index 0000000..82018f0
--- /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"><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"/>
+        </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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.png
new file mode 100644 (file)
index 0000000..3be50ba
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.svg
new file mode 100644 (file)
index 0000000..c1bad9e
--- /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"><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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.png
new file mode 100644 (file)
index 0000000..eaeaf6e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.svg
new file mode 100644 (file)
index 0000000..f448c87
--- /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"><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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.png
new file mode 100644 (file)
index 0000000..b9ad2b8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.svg
new file mode 100644 (file)
index 0000000..37ddb24
--- /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"><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"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.png
new file mode 100644 (file)
index 0000000..da059cf
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.svg
new file mode 100644 (file)
index 0000000..4875a44
--- /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"><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"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png
new file mode 100644 (file)
index 0000000..fd7f2ae
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.svg
new file mode 100644 (file)
index 0000000..dcea1eb
--- /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"><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"/>
+        </g>
+        <g id="Layer_2">
+            <g id="g230">
+                <path id="path232" d="M17.997 1.989l.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"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png
new file mode 100644 (file)
index 0000000..1ae130d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.svg
new file mode 100644 (file)
index 0000000..d6ffcea
--- /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"><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"/>
+        </g>
+        <g id="Layer_2">
+            <g id="g230">
+                <path id="path232" d="M7.003 1.989l-.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"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.png
new file mode 100644 (file)
index 0000000..1b1e2ed
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.svg
new file mode 100644 (file)
index 0000000..c98df5c
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve"><style>* { fill: #FFFFFF }</style>\r
+<g>\r
+       <path d="M-471.2,493.6c-2.1,0-3.6,1.9-5.1,3.3c0.2,0,0.5-0.1,0.8-0.1c0.5,0,1,0.1,1.5,0.3c0.8-0.8,1.6-1.7,2.8-1.7\r
+               c0.6,0,1.3,0.3,1.8,0.7c1,1,1,2.6,0,3.6l-2.6,2.6c-0.4,0.4-1.2,0.7-1.8,0.7c-1.4,0-2.1-0.9-2.6-2l-1.3,1.3c0.8,1.5,2,2.6,3.8,2.6\r
+               c1.2,0,2.3-0.5,3-1.3l2.6-2.6c0.9-0.9,1.5-2,1.5-3.3C-467,495.5-469,493.6-471.2,493.6z M-475.5,505.7l-0.9,0.9\r
+               c-0.4,0.4-1.2,0.7-1.8,0.7c-0.6,0-1.3-0.3-1.8-0.7c-1-1-1-2.7,0-3.6l2.6-2.6c0.4-0.4,1.2-0.7,1.8-0.7c1.4,0,2.1,1,2.6,2l1.3-1.3\r
+               c-0.8-1.5-2-2.6-3.8-2.6c-1.2,0-2.3,0.5-3,1.3l-2.6,2.6c-1.7,1.7-1.7,4.4,0,6c1.6,1.6,4.4,1.7,5.9,0l1.9-1.9\r
+               c-0.3,0.1-0.6,0.1-0.9,0.1C-474.7,505.9-475.1,505.9-475.5,505.7z"/>\r
+</g>\r
+</svg>\r
index 3b60a11..1fe66f1 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..841ba7d 100644 (file)
@@ -1,6 +1,13 @@
-<?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.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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve">\r
+<g>\r
+       <path d="M-471.2,493.6c-2.1,0-3.6,1.9-5.1,3.3c0.2,0,0.5-0.1,0.8-0.1c0.5,0,1,0.1,1.5,0.3c0.8-0.8,1.6-1.7,2.8-1.7\r
+               c0.6,0,1.3,0.3,1.8,0.7c1,1,1,2.6,0,3.6l-2.6,2.6c-0.4,0.4-1.2,0.7-1.8,0.7c-1.4,0-2.1-0.9-2.6-2l-1.3,1.3c0.8,1.5,2,2.6,3.8,2.6\r
+               c1.2,0,2.3-0.5,3-1.3l2.6-2.6c0.9-0.9,1.5-2,1.5-3.3C-467,495.5-469,493.6-471.2,493.6z M-475.5,505.7l-0.9,0.9\r
+               c-0.4,0.4-1.2,0.7-1.8,0.7c-0.6,0-1.3-0.3-1.8-0.7c-1-1-1-2.7,0-3.6l2.6-2.6c0.4-0.4,1.2-0.7,1.8-0.7c1.4,0,2.1,1,2.6,2l1.3-1.3\r
+               c-0.8-1.5-2-2.6-3.8-2.6c-1.2,0-2.3,0.5-3,1.3l-2.6,2.6c-1.7,1.7-1.7,4.4,0,6c1.6,1.6,4.4,1.7,5.9,0l1.9-1.9\r
+               c-0.3,0.1-0.6,0.1-0.9,0.1C-474.7,505.9-475.1,505.9-475.5,505.7z"/>\r
+</g>\r
+</svg>\r
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl-invert.png
new file mode 100644 (file)
index 0000000..ead64bc
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl-invert.svg
new file mode 100644 (file)
index 0000000..9168784
--- /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: #FFFFFF }</style>
+    <g id="g358">
+        <path d="M9.025 3.6c2.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.6l2.6 2.6c.4.4 1.2.7 1.8.7 1.4 0 2.1-.9 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-.9-.9-1.5-2-1.5-3.3.2-2.2 2.2-4.1 4.4-4.1zm4.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.6l-2.6-2.6c-.4-.4-1.2-.7-1.8-.7-1.4 0-2.1 1-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.6c1.7 1.7 1.7 4.4 0 6-1.6 1.6-4.4 1.7-5.9 0l-1.9-1.9c.3.1.6.1.9.1.5 0 .9 0 1.3-.2z" id="path360"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-destructive.png
new file mode 100644 (file)
index 0000000..16974b2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-destructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-destructive.svg
new file mode 100644 (file)
index 0000000..934cb4e
--- /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="g390">
+        <path d="M15 8s0-3-2.5-3-2.5 3-2.5 3v1h5zm2 0v1h2v10h-10c-1.7 0-3-1.3-3-3v-7h2v-1s0-5 4.5-5 4.5 5 4.5 5z" id="path392"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-invert.png
new file mode 100644 (file)
index 0000000..082f2e9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-invert.svg
new file mode 100644 (file)
index 0000000..7aed0f6
--- /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: #FFFFFF }</style>
+    <g id="g390">
+        <path d="M15 8s0-3-2.5-3-2.5 3-2.5 3v1h5zm2 0v1h2v10h-10c-1.7 0-3-1.3-3-3v-7h2v-1s0-5 4.5-5 4.5 5 4.5 5z" id="path392"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-destructive.png
new file mode 100644 (file)
index 0000000..4bafac8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-destructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-destructive.svg
new file mode 100644 (file)
index 0000000..64c2324
--- /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="g390">
+        <path d="M10 8s0-3 2.5-3 2.5 3 2.5 3v1h-5zm-2 0v1h-2v10h10c1.7 0 3-1.3 3-3v-7h-2v-1s0-5-4.5-5-4.5 5-4.5 5z" id="path392"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-invert.png
new file mode 100644 (file)
index 0000000..c5d842a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-invert.svg
new file mode 100644 (file)
index 0000000..63cb2eb
--- /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: #FFFFFF }</style>
+    <g id="g390">
+        <path d="M10 8s0-3 2.5-3 2.5 3 2.5 3v1h-5zm-2 0v1h-2v10h10c1.7 0 3-1.3 3-3v-7h-2v-1s0-5-4.5-5-4.5 5-4.5 5z" id="path392"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.png
deleted file mode 100644 (file)
index 6f06dfe..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.svg
deleted file mode 100644 (file)
index 49e598c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?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.4 16.4c1-1.2 1.6-2.7 1.6-4.4 0-3.9-3.1-7-7-7s-7 3.1-7 7 3.1 7 7 7c1.2 0 2.3-.3 3.2-.8l2.8 2.8c1.4 1.4 2.5 1.5 4 0l-4.6-4.6zm-10.4-4.4c0-2.8 2.2-5 5-5s5 2.2 5 5-2.2 5-5 5-5-2.3-5-5z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.png
deleted file mode 100644 (file)
index 358048d..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.svg
deleted file mode 100644 (file)
index c9695b6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?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.6 16.4c-1-1.2-1.6-2.7-1.6-4.4 0-3.9 3.1-7 7-7s7 3.1 7 7-3.1 7-7 7c-1.2 0-2.3-.3-3.2-.8l-2.8 2.8c-1.4 1.4-2.5 1.5-4 0l4.6-4.6zm10.4-4.4c0-2.8-2.2-5-5-5s-5 2.2-5 5 2.2 5 5 5 5-2.3 5-5z" id="path414"/>
-</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..61b8877 100644 (file)
@@ -1,6 +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"><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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve"><style>* { fill: #FFFFFF }</style>\r
+<g id="menu">\r
+       <path id="lines" d="M-481,505h12c0.6,0,1,0.4,1,1v1c0,0.6-0.4,1-1,1h-12c-0.6,0-1-0.4-1-1v-1C-482,505.4-481.6,505-481,505z\r
+                M-482,501v1c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1v-1c0-0.6-0.4-1-1-1h-12C-481.6,500-482,500.4-482,501z M-482,496v1\r
+               c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1v-1c0-0.6-0.4-1-1-1h-12C-481.6,495-482,495.4-482,496z"/>\r
+</g>\r
+</svg>\r
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..89fd978 100644 (file)
@@ -1,6 +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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve">\r
+<g id="menu">\r
+       <path id="lines" d="M-481,505h12c0.6,0,1,0.4,1,1v1c0,0.6-0.4,1-1,1h-12c-0.6,0-1-0.4-1-1v-1C-482,505.4-481.6,505-481,505z\r
+                M-482,501v1c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1v-1c0-0.6-0.4-1-1-1h-12C-481.6,500-482,500.4-482,501z M-482,496v1\r
+               c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1v-1c0-0.6-0.4-1-1-1h-12C-481.6,495-482,495.4-482,496z"/>\r
+</g>\r
+</svg>\r
index 7060db7..ffe3601 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..b3b923e 100644 (file)
@@ -1,6 +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>
-        <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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve">\r
+<g>\r
+       <path d="M-468.9,498.1c0.2-0.1,0.5-0.2,0.6-0.5s0.2-0.5,0.2-0.9V496c-1,0.2-1.5,0.2-2.6,0.6c-0.7,0.4-1.2,0.9-1.7,1.4\r
+               c-0.5,0.5-1.9,2.6-1.9,5.8v3.1h4.7c0.9,0,1.6-0.7,1.6-1.6v-4.7h-3.1c0,0,0.1-0.7,0.6-1.4C-470,498.7-469.5,498.3-468.9,498.1z\r
+                M-480.1,498c-0.5,0.5-1.9,2.9-1.9,6v2.9h4.7c0.9,0,1.6-0.7,1.6-1.6v-4.7h-3.1c0,0,0.1-0.7,0.6-1.4c0.5-0.5,1-0.9,1.6-1.2\r
+               c0.2-0.1,0.5-0.2,0.6-0.5s0.2-0.5,0.2-0.9V496c-1,0.2-1.5,0.2-2.6,0.6C-479,497-479.6,497.5-480.1,498z"/>\r
+</g>\r
+</svg>\r
index df0facf..a2acf5e 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..b40a8ac 100644 (file)
@@ -1,6 +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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-487 489 24 24" enable-background="new -487 489 24 24" xml:space="preserve">\r
+<g>\r
+       <path d="M-479.5,499.3c0.5,0.7,0.6,1.4,0.6,1.4h-3.1v4.7c0,0.9,0.7,1.6,1.6,1.6h4.7v-3.1c0-3.1-1.5-5.2-1.9-5.8\r
+               c-0.5-0.5-1-1-1.7-1.4c-1.1-0.5-1.6-0.5-2.6-0.6v0.8c0,0.3,0.1,0.6,0.2,0.9s0.4,0.4,0.6,0.5C-480.5,498.3-480,498.7-479.5,499.3z\r
+                M-471.7,496.6c-1.1-0.5-1.6-0.5-2.6-0.6v0.8c0,0.3,0.1,0.6,0.2,0.9s0.4,0.4,0.6,0.5c0.6,0.2,1.2,0.6,1.6,1.2\r
+               c0.5,0.7,0.6,1.4,0.6,1.4h-3.1v4.7c0,0.9,0.7,1.6,1.6,1.6h4.7V504c0-3.1-1.5-5.4-1.9-6C-470.4,497.5-471,497-471.7,496.6z"/>\r
+</g>\r
+</svg>\r
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-invert.png
deleted file mode 100644 (file)
index 3e15daf..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-invert.svg
deleted file mode 100644 (file)
index 5ae4952..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?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="M16.021 15.96l-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"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.png
new file mode 100644 (file)
index 0000000..4b6ecd2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.svg
new file mode 100644 (file)
index 0000000..3d58783
--- /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: #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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.png
new file mode 100644 (file)
index 0000000..c10dc66
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.svg
new file mode 100644 (file)
index 0000000..cdcbc30
--- /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="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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.png
new file mode 100644 (file)
index 0000000..7868dc1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.svg
new file mode 100644 (file)
index 0000000..91130f0
--- /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: #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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.png
new file mode 100644 (file)
index 0000000..dab4ff1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.svg
new file mode 100644 (file)
index 0000000..c675349
--- /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="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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search.png
deleted file mode 100644 (file)
index 39d3ab8..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/search.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/search.svg
deleted file mode 100644 (file)
index e4db4f0..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?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="M16.021 15.96l-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"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.png
new file mode 100644 (file)
index 0000000..0e9a5c5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.svg
new file mode 100644 (file)
index 0000000..2aeba4e
--- /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"><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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.png
new file mode 100644 (file)
index 0000000..445f2d4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.svg
new file mode 100644 (file)
index 0000000..f58e8ce
--- /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"><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"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.png
new file mode 100644 (file)
index 0000000..35e6837
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.svg
new file mode 100644 (file)
index 0000000..4fbd4ec
--- /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"><style>* { fill: #FFFFFF }</style>
+    <path d="M4 9h12v2h-12v-2zm0 3h8v2h-8v-2zm0-7h16v3h-16v-3zm16 14h-16v-3h16v3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.png
new file mode 100644 (file)
index 0000000..2ae83c7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.svg
new file mode 100644 (file)
index 0000000..b18ddc4
--- /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"><style>* { fill: #FFFFFF }</style>
+    <path d="M20 9h-12v2h12v-2zm0 3h-8v2h8v-2zm0-7h-16v3h16v-3zm-16 14h16v-3h-16v3z" id="path624"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.png
new file mode 100644 (file)
index 0000000..b944490
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.svg
new file mode 100644 (file)
index 0000000..47eff5d
--- /dev/null
@@ -0,0 +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"/>
+    </g>
+    <g>
+        <path d="M20 15h-16v-2h16v2z"/>
+    </g>
+    <g>
+        <path d="M20 11h-16v-2h16v2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.png
new file mode 100644 (file)
index 0000000..88d26c2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.svg
new file mode 100644 (file)
index 0000000..d694cb1
--- /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: #FFFFFF }</style>
+    <g>
+        <path d="M20 11h-16v-2h16v2zm-16 1h8v2h-8v-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.png
new file mode 100644 (file)
index 0000000..279d80a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.svg
new file mode 100644 (file)
index 0000000..86a52ee
--- /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: #FFFFFF }</style>
+    <g id="g654">
+        <path d="M4 11h16v-2h-16v2zm16 1h-8v2h8v-2z" id="path656"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.png
new file mode 100644 (file)
index 0000000..57ac8b7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.svg
new file mode 100644 (file)
index 0000000..d2e9786
--- /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: #FFFFFF }</style>
+    <g>
+        <path d="M17 13h-13v-3h13v3zm-5 6h-8v-3h8v3zm-8-12v-3h16v3h-16z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.png
new file mode 100644 (file)
index 0000000..5d9fca8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.svg
new file mode 100644 (file)
index 0000000..be30320
--- /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>
+        <path d="M17 13h-13v-3h13v3zm-5 6h-8v-3h8v3zm-8-12v-3h16v3h-16z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.png
new file mode 100644 (file)
index 0000000..72d4906
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.svg
new file mode 100644 (file)
index 0000000..6266319
--- /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: #FFFFFF }</style>
+    <g id="g666">
+        <path d="M7 13h13v-3h-13v3zm5 6h8v-3h-8v3zm8-12v-3h-16v3h16z" id="path668"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.png
new file mode 100644 (file)
index 0000000..a51e389
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.svg
new file mode 100644 (file)
index 0000000..c5847b1
--- /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="g666">
+        <path d="M7 13h13v-3h-13v3zm5 6h8v-3h-8v3zm8-12v-3h-16v3h16z" id="path668"/>
+    </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..66af375
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..82171db
--- /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.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"/>
+    </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..1de90d4
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..3d48512
--- /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.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"/>
+    </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..a6759e2
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..f52e06c
--- /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.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"/>
+    </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..77fc366
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..337adb6
--- /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.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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-invert.png
new file mode 100644 (file)
index 0000000..d730765
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-invert.svg
new file mode 100644 (file)
index 0000000..baa31f6
--- /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"><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"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.png
new file mode 100644 (file)
index 0000000..bc977a7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.svg
new file mode 100644 (file)
index 0000000..20cd299
--- /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: #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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.png
new file mode 100644 (file)
index 0000000..162d9a9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.svg
new file mode 100644 (file)
index 0000000..aebedec
--- /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: #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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-destructive.png
new file mode 100644 (file)
index 0000000..b4c1366
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-destructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-destructive.svg
new file mode 100644 (file)
index 0000000..97fcdc4
--- /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"><style>* { fill: #D11D13 }</style>
+    <path d="M12 9v-2s0-5-4.5-5-4.5 5-4.5 5h2s0-3 2.5-3 2.5 3 2.5 3v2h-3v7c0 1.7 1.3 3 3 3h10v-10z" id="path726"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-invert.png
new file mode 100644 (file)
index 0000000..3a0bc75
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-invert.svg
new file mode 100644 (file)
index 0000000..b496a06
--- /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"><style>* { fill: #FFFFFF }</style>
+    <path d="M12 9v-2s0-5-4.5-5-4.5 5-4.5 5h2s0-3 2.5-3 2.5 3 2.5 3v2h-3v7c0 1.7 1.3 3 3 3h10v-10z" id="path726"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-destructive.png
new file mode 100644 (file)
index 0000000..03d91f2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-destructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-destructive.svg
new file mode 100644 (file)
index 0000000..a52f0fe
--- /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"><style>* { fill: #D11D13 }</style>
+    <path d="M11 9v-2s0-5 4.5-5 4.5 5 4.5 5h-2s0-3-2.5-3-2.5 3-2.5 3v2h3v7c0 1.7-1.3 3-3 3h-10v-10z" id="path726"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-invert.png
new file mode 100644 (file)
index 0000000..b823325
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-invert.svg
new file mode 100644 (file)
index 0000000..814af1d
--- /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"><style>* { fill: #FFFFFF }</style>
+    <path d="M11 9v-2s0-5 4.5-5 4.5 5 4.5 5h-2s0-3-2.5-3-2.5 3-2.5 3v2h3v7c0 1.7-1.3 3-3 3h-10v-10z" id="path726"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-invert.png
new file mode 100644 (file)
index 0000000..03a5687
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-invert.svg
new file mode 100644 (file)
index 0000000..b66ce2a
--- /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"><style>* { fill: #FFFFFF }</style>
+    <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/mediawiki/images/icons/viewCompact-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact-invert.png
new file mode 100644 (file)
index 0000000..8e0abb0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact-invert.svg
new file mode 100644 (file)
index 0000000..ed1913a
--- /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"><style>* { fill: #FFFFFF }</style>
+    <g id="viewCompact">
+        <circle cx="6" cy="6" r="2"/>
+        <circle cx="12" cy="6" r="2"/>
+        <circle cx="18" cy="6" r="2"/>
+        <circle cx="6" cy="12" r="2"/>
+        <circle cx="12" cy="12" r="2"/>
+        <circle cx="18" cy="12" r="2"/>
+        <circle cx="6" cy="18" r="2"/>
+        <circle cx="12" cy="18" r="2"/>
+        <circle cx="18" cy="18" r="2"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.png
new file mode 100644 (file)
index 0000000..35bbc8d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.svg
new file mode 100644 (file)
index 0000000..14e435d
--- /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"><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"/>
+        <circle cx="5.5" cy="16.5" r="2.5"/>
+        <path d="M10 14h12v1H10zM10 16h9v1h-9zM10 18h4v1h-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl-invert.png
new file mode 100644 (file)
index 0000000..c45dd11
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl-invert.svg
new file mode 100644 (file)
index 0000000..f4838fe
--- /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"><style>* { fill: #FFFFFF }</style>
+    <g id="viewDetails">
+        <circle cx="18.5" cy="8.5" r="2.5"/>
+        <path d="M14 6H2v1h12zm0 2H5v1h9zm0 2h-4v1h4z"/>
+        <circle cx="18.5" cy="16.5" r="2.5"/>
+        <path d="M14 14H2v1h12zm0 2H5v1h9zm0 2h-4v1h4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator-invert.png
new file mode 100644 (file)
index 0000000..118e468
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator-invert.svg
new file mode 100644 (file)
index 0000000..ae0d94e
--- /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"><style>* { fill: #FFFFFF }</style>
+    <path d="M0 10v8h2.3c.3.6 1 1 1.7 1h4c1.5 0 2.7-.8 3-2h2c.3 1.2 1.5 2 3 2h4c.7 0 1.4 0 1.7-1H24v-8zm10 6c0 1-.4 2-2 2H4c-.6 0-1-.4-1-1v-3c0-.6.4-1 1-1h5c.6 0 1 .4 1 1zm11 1c0 .6-.4 1-1 1h-4c-1.6 0-2-1-2-2v-2c0-.6.4-1 1-1h5c.6 0 1 .4 1 1z"/>
+</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..847f935 100644 (file)
@@ -1,6 +1,8 @@
-<?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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve"><style>* { fill: #FFFFFF }</style>\r
+<g id="down">\r
+       <path id="arrow" d="M883.3,341H116.7L500,724.3l0,0l0,0L883.3,341"/>\r
+</g>\r
+</svg>\r
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..1738057 100644 (file)
@@ -1,6 +1,8 @@
-<?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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">\r
+<g id="down">\r
+       <path id="arrow" d="M883.3,341H116.7L500,724.3l0,0l0,0L883.3,341"/>\r
+</g>\r
+</svg>\r
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..2a91c02 100644 (file)
@@ -1,6 +1,8 @@
-<?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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-493 495 12 12" enable-background="new -493 495 12 12" xml:space="preserve"><style>* { fill: #FFFFFF }</style>\r
+<g id="ltr">\r
+       <path id="arrow" d="M-489,496v10l5-5h0h0L-489,496"/>\r
+</g>\r
+</svg>\r
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..fb366e6 100644 (file)
@@ -1,6 +1,8 @@
-<?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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-493 495 12 12" enable-background="new -493 495 12 12" xml:space="preserve">\r
+<g id="ltr">\r
+       <path id="arrow" d="M-489,496v10l5-5h0h0L-489,496"/>\r
+</g>\r
+</svg>\r
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..3cce872 100644 (file)
@@ -1,6 +1,8 @@
-<?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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-493 495 12 12" enable-background="new -493 495 12 12" xml:space="preserve"><style>* { fill: #FFFFFF }</style>\r
+<g id="rtl">\r
+       <path id="arrow" d="M-485,506v-10l-5,5h0h0L-485,506"/>\r
+</g>\r
+</svg>\r
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..62b6bb5 100644 (file)
@@ -1,6 +1,8 @@
-<?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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-493 495 12 12" enable-background="new -493 495 12 12" xml:space="preserve">\r
+<g id="rtl">\r
+       <path id="arrow" d="M-485,506v-10l-5,5h0h0L-485,506"/>\r
+</g>\r
+</svg>\r
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..50da8de 100644 (file)
@@ -1,6 +1,8 @@
-<?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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-493 495 12 12" enable-background="new -493 495 12 12" xml:space="preserve"><style>* { fill: #FFFFFF }</style>\r
+<g id="up">\r
+       <path id="arrow" d="M-492,503h10l-5-5v0v0L-492,503"/>\r
+</g>\r
+</svg>\r
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..20e734f 100644 (file)
@@ -1,6 +1,8 @@
-<?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="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"/>
-    </g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        viewBox="-493 495 12 12" enable-background="new -493 495 12 12" xml:space="preserve">\r
+<g id="up">\r
+       <path id="arrow" d="M-492,503h10l-5-5v0v0L-492,503"/>\r
+</g>\r
+</svg>\r
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.png
new file mode 100644 (file)
index 0000000..2840bef
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.svg
new file mode 100644 (file)
index 0000000..f46b1ee
--- /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"><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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.png
new file mode 100644 (file)
index 0000000..df1c61e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.svg
new file mode 100644 (file)
index 0000000..266349e
--- /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.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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.png
new file mode 100644 (file)
index 0000000..665a088
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.svg
new file mode 100644 (file)
index 0000000..bd962d9
--- /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"><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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.png
new file mode 100644 (file)
index 0000000..c9443d7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.svg
new file mode 100644 (file)
index 0000000..5368fd7
--- /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.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"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/indicators.json b/resources/lib/oojs-ui/themes/mediawiki/indicators.json
new file mode 100644 (file)
index 0000000..d83e57e
--- /dev/null
@@ -0,0 +1,29 @@
+{
+       "selectorWithoutVariant": ".oo-ui-indicator-{name}",
+       "selectorWithVariant": ".oo-ui-image-{variant} .oo-ui-indicator-{name}, .oo-ui-image-{variant}.oo-ui-indicator-{name}",
+       "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
+       "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/mediawiki/textures.json b/resources/lib/oojs-ui/themes/mediawiki/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 18dc564..d87183e 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs v1.1.6 optimised for jQuery
+ * OOjs v1.1.7 optimised for jQuery
  * https://www.mediawiki.org/wiki/OOjs
  *
  * Copyright 2011-2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-03-19T00:42:55Z
+ * Date: 2015-04-29T01:13:49Z
  */
 ( function ( global ) {
 
@@ -108,12 +108,12 @@ oo.inheritClass = function ( targetFn, originFn ) {
  *
  * The 'constructor' (whether implicit or explicit) is not copied over.
  *
- * This does not create inheritance to the origin. If inheritance is needed
- * use oo.inheritClass instead.
+ * This does not create inheritance to the origin. If you need inheritance,
+ * use OO.inheritClass instead.
  *
  * Beware: This can redefine a prototype property, call before setting your prototypes.
  *
- * Beware: Don't call before oo.inheritClass.
+ * Beware: Don't call before OO.inheritClass.
  *
  *     function Foo() {}
  *     function Context() {}
@@ -826,12 +826,18 @@ oo.mixinClass( oo.Registry, oo.EventEmitter );
  * @param {Mixed} data
  */
 
+/**
+ * @event unregister
+ * @param {string} name
+ * @param {Mixed} data Data removed from registry
+ */
+
 /* Methods */
 
 /**
  * Associate one or more symbolic names with some data.
  *
- * Only the base name will be registered, overriding any existing entry with the same base name.
+ * Any existing entry with the same name will be overridden.
  *
  * @param {string|string[]} name Symbolic name or list of symbolic names
  * @param {Mixed} data Data to associate with symbolic name
@@ -853,9 +859,31 @@ oo.Registry.prototype.register = function ( name, data ) {
 };
 
 /**
- * Get data for a given symbolic name.
+ * Remove one or more symbolic names from the registry
  *
- * Lookups are done using the base name.
+ * @param {string|string[]} name Symbolic name or list of symbolic names
+ * @fires unregister
+ * @throws {Error} Name argument must be a string or array
+ */
+oo.Registry.prototype.unregister = function ( name ) {
+       var i, len, data;
+       if ( typeof name === 'string' ) {
+               data = this.lookup( name );
+               if ( data !== undefined ) {
+                       delete this.registry[name];
+                       this.emit( 'unregister', name, data );
+               }
+       } else if ( Array.isArray( name ) ) {
+               for ( i = 0, len = name.length; i < len; i++ ) {
+                       this.unregister( name[i] );
+               }
+       } else {
+               throw new Error( 'Name must be a string or array, cannot be a ' + typeof name );
+       }
+};
+
+/**
+ * Get data for a given symbolic name.
  *
  * @param {string} name Symbolic name
  * @return {Mixed|undefined} Data associated with symbolic name
@@ -873,10 +901,8 @@ oo.Registry.prototype.lookup = function ( name ) {
  * @constructor
  */
 oo.Factory = function OoFactory() {
+       // Parent constructor
        oo.Factory.parent.call( this );
-
-       // Properties
-       this.entries = [];
 };
 
 /* Inheritance */
@@ -911,11 +937,33 @@ oo.Factory.prototype.register = function ( constructor ) {
        if ( typeof name !== 'string' || name === '' ) {
                throw new Error( 'Name must be a string and must not be empty' );
        }
-       this.entries.push( name );
 
+       // Parent method
        oo.Factory.parent.prototype.register.call( this, name, constructor );
 };
 
+/**
+ * Unregister a constructor from the factory.
+ *
+ * @param {Function} constructor Constructor to unregister
+ * @throws {Error} Name must be a string and must not be empty
+ * @throws {Error} Constructor must be a function
+ */
+oo.Factory.prototype.unregister = function ( constructor ) {
+       var name;
+
+       if ( typeof constructor !== 'function' ) {
+               throw new Error( 'constructor must be a function, cannot be a ' + typeof constructor );
+       }
+       name = constructor.static && constructor.static.name;
+       if ( typeof name !== 'string' || name === '' ) {
+               throw new Error( 'Name must be a string and must not be empty' );
+       }
+
+       // Parent method
+       oo.Factory.parent.prototype.unregister.call( this, name );
+};
+
 /**
  * Create an object based on a name.
  *
index ff5ff0a..94fdca5 100644 (file)
        /* Public scope */
 
        $.tablesorter = {
-
                        defaultOptions: {
                                cssHeader: 'headerSort',
                                cssAsc: 'headerSortUp',
index 6b33012..56dba70 100644 (file)
@@ -35,7 +35,7 @@
 
                // Add form submission handler
                $( '#editform' ).submit( function () {
-                       allowCloseWindow();
+                       allowCloseWindow.release();
                } );
        } );
 
index f24703a..5074d94 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,
index 3a19e02..0b57907 100644 (file)
@@ -5,7 +5,6 @@
        // wondering, would it be simpler to make it easy to clone the api object,
        // change error handling, and use that instead?
        var defaultOptions = {
-
                        // Query parameters for API requests
                        parameters: {
                                action: 'query',
@@ -21,6 +20,7 @@
                                dataType: 'json'
                        }
                },
+
                // Keyed by ajax url and symbolic name for the individual request
                promises = {};
 
                                        // Error handler
                                        function ( code ) {
                                                if ( code === 'badtoken' ) {
-                                                       // Clear from cache
-                                                       promises[ api.defaults.ajax.url ][ tokenType + 'Token' ] =
-                                                               params.token = undefined;
-
+                                                       api.badToken( tokenType );
                                                        // Try again, once
+                                                       params.token = undefined;
                                                        return api.getToken( tokenType, params.assert ).then( function ( token ) {
                                                                params.token = token;
                                                                return api.post( params, ajaxOptions );
 
                                d = apiPromise
                                        .then( function ( data ) {
-                                               // If token type is not available for this user,
-                                               // key '...token' is either missing or set to boolean false
                                                if ( data.tokens && data.tokens[type + 'token'] ) {
                                                        return data.tokens[type + 'token'];
                                                }
 
+                                               // If token type is not available for this user,
+                                               // key '...token' is either missing or set to boolean false
                                                return $.Deferred().reject( 'token-missing', data );
                                        }, function () {
                                                // Clear promise. Do not cache errors.
                                                delete promiseGroup[ type + 'Token' ];
-
                                                // Pass on to allow the caller to handle the error
                                                return this;
                                        } )
                        }
 
                        return d;
+               },
+
+               /**
+                * Indicate that the cached token for a certain action of the API is bad.
+                *
+                * Call this if you get a 'badtoken' error when using the token returned by #getToken.
+                * You may also want to use #postWithToken instead, which invalidates bad cached tokens
+                * automatically.
+                *
+                * @param {string} type Token type
+                * @since 1.26
+                */
+               badToken: function ( type ) {
+                       var promiseGroup = promises[ this.defaults.ajax.url ];
+                       if ( promiseGroup ) {
+                               delete promiseGroup[ type + 'Token' ];
+                       }
                }
        };
 
index 3366f1e..e947775 100644 (file)
@@ -85,7 +85,7 @@
        column-width: @value;// IE 10+
 }
 
-.column-break-inside-avoid {
+.column-break-inside-avoid() {
        -webkit-column-break-inside: avoid; // Chrome Any, Safari 3+, Opera 11.1+
        page-break-inside: avoid; // Firefox 1.5+
        break-inside: avoid-column; // IE 10+
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..8140d1a 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 {
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 a13ec3c..d245726 100644 (file)
@@ -84,10 +84,13 @@ td#mw-prefixindex-nav-form {
        font-weight: bold;
 }
 
-.mw-specialpages-list {
-       -webkit-columns: 16em 2;
-       -moz-columns: 16em 2;
-       columns: 16em 2;
+.mw-specialpages-table {
+       margin-top: -1em;
+       margin-bottom: 1em;
+}
+
+.mw-specialpages-table td {
+       vertical-align: top;
 }
 
 /* Special:Statistics */
index 4bd747b..8617f7c 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( allowCloseWindow.release() );
+       $( '#mw-prefs-restoreprefs' ).click( allowCloseWindow.release() );
 } );
index eeccda5..d0dfb28 100644 (file)
                } );
 
                $uploadForm.submit( function () {
-                       allowCloseWindow();
+                       allowCloseWindow.release();
                } );
        } );
 }( mediaWiki, jQuery ) );
index ad951b0..5107f8e 100644 (file)
@@ -1,8 +1,5 @@
 @import "mediawiki.mixins";
-
-// Variables
-@iconSize: 1.4em;
-@gutterWidth: 1em;
+@import "mediawiki.ui/variables";
 
 // Mixins
 .mixin-mw-ui-icon-bgimage(@iconSvg, @iconPng) {
@@ -42,7 +39,7 @@
        //
        // Styleguide 6.1.1.
        &.mw-ui-icon-element {
-               @width: @iconSize + ( 2 * @gutterWidth );
+               @width: @iconSize + ( 2 * @iconGutterWidth );
 
                text-indent: -999px;
                overflow: hidden;
@@ -53,7 +50,7 @@
                        left: 0;
                        right: 0;
                        position: absolute;
-                       margin: 0 @gutterWidth;
+                       margin: 0 @iconGutterWidth;
                }
        }
 
@@ -81,7 +78,7 @@
                &:before {
                        position: relative;
                        width: @iconSize;
-                       margin-right: @gutterWidth;
+                       margin-right: @iconGutterWidth;
                }
        }
 
@@ -96,7 +93,7 @@
                        position: relative;
                        float: right;
                        width: @iconSize;
-                       margin-left: @gutterWidth;
+                       margin-left: @iconGutterWidth;
                }
        }
 }
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..0c0095c 100644 (file)
@@ -16,7 +16,7 @@
        mw.cookie = {
 
                /**
-                * Sets or deletes a cookie.
+                * Set or deletes 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 ) {
index 237157c..e556ed8 100644 (file)
@@ -14,6 +14,7 @@
                hasOwn = Object.prototype.hasOwnProperty,
                slice = Array.prototype.slice,
                trackCallbacks = $.Callbacks( 'memory' ),
+               trackHandlers = [],
                trackQueue = [];
 
        /**
                 */
                trackSubscribe: function ( topic, callback ) {
                        var seen = 0;
-
-                       trackCallbacks.add( function ( trackQueue ) {
+                       function handler( trackQueue ) {
                                var event;
                                for ( ; seen < trackQueue.length; seen++ ) {
                                        event = trackQueue[ seen ];
                                                callback.call( event, event.topic, event.data );
                                        }
                                }
+                       }
+
+                       trackHandlers.push( [ handler, callback ] );
+
+                       trackCallbacks.add( handler );
+               },
+
+               /**
+                * Stop handling events for a particular handler
+                *
+                * @param {Function} callback
+                */
+               trackUnsubscribe: function ( callback ) {
+                       trackHandlers = $.grep( trackHandlers, function ( fns ) {
+                               if ( fns[1] === callback ) {
+                                       trackCallbacks.remove( fns[0] );
+                                       // Ensure the tuple is removed to avoid holding on to closures
+                                       return false;
+                               }
+                               return true;
                        } );
                },
 
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 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..c42eb9a 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-session' );
+                       if ( sessionId === null ) {
                                sessionId = mw.user.generateRandomSessionId();
-                               $.cookie( 'mediaWiki.user.sessionId', sessionId, { expires: null, path: '/' } );
+                               mw.cookie.set( 'mwuser-session', 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 }
                                );
                        }
 
diff --git a/resources/src/oojs-ui-local.css b/resources/src/oojs-ui-local.css
new file mode 100644 (file)
index 0000000..ab780fe
--- /dev/null
@@ -0,0 +1,7 @@
+/* HACK: Set sane font-size for OOjs UI dialogs, in the most common case. This should be skin's
+   responsibility, but alas our skins tend to have the weirdest font-sizes on body. This shall be
+   removed when we make the MediaWiki skins bundled with tarball sane. (T91152) */
+body > .oo-ui-windowManager {
+       font-size: 12.8px;
+       font-size: 0.8rem;
+}
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 1a2e0cb..2682ee1 100644 (file)
@@ -84,6 +84,9 @@ $wgAutoloadClasses += array(
        # tests/phpunit/includes/diff
        'FakeDiffOp' => "$testDir/phpunit/includes/diff/FakeDiffOp.php",
 
+       # tests/phpunit/includes/logging
+       'LogFormatterTestCase' => "$testDir/phpunit/includes/logging/LogFormatterTestCase.php",
+
        # tests/phpunit/includes/password
        'PasswordTestCase' => "$testDir/phpunit/includes/password/PasswordTestCase.php",
 
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 00c29ee..a8cffd1 100644 (file)
@@ -80,22 +80,22 @@ class TitleTest extends MediaWikiTestCase {
 
        public static function provideInvalidSecureAndSplit() {
                return array(
-                       array( '' ),
-                       array( ':' ),
-                       array( '__  __' ),
-                       array( '  __  ' ),
+                       array( '', 'title-invalid-empty' ),
+                       array( ':', 'title-invalid-empty' ),
+                       array( '__  __', 'title-invalid-empty' ),
+                       array( '  __  ', 'title-invalid-empty' ),
                        // Bad characters forbidden regardless of wgLegalTitleChars
-                       array( 'A [ B' ),
-                       array( 'A ] B' ),
-                       array( 'A { B' ),
-                       array( 'A } B' ),
-                       array( 'A < B' ),
-                       array( 'A > B' ),
-                       array( 'A | B' ),
+                       array( 'A [ B', 'title-invalid-characters' ),
+                       array( 'A ] B', 'title-invalid-characters' ),
+                       array( 'A { B', 'title-invalid-characters' ),
+                       array( 'A } B', 'title-invalid-characters' ),
+                       array( 'A < B', 'title-invalid-characters' ),
+                       array( 'A > B', 'title-invalid-characters' ),
+                       array( 'A | B', 'title-invalid-characters' ),
                        // URL encoding
-                       array( 'A%20B' ),
-                       array( 'A%23B' ),
-                       array( 'A%2523B' ),
+                       array( 'A%20B', 'title-invalid-characters' ),
+                       array( 'A%23B', 'title-invalid-characters' ),
+                       array( 'A%2523B', 'title-invalid-characters' ),
                        // XML/HTML character entity references
                        // Note: Commented out because they are not marked invalid by the PHP test as
                        // Title::newFromText runs Sanitizer::decodeCharReferencesAndNormalize first.
@@ -103,29 +103,30 @@ class TitleTest extends MediaWikiTestCase {
                        //'A &#233; B',
                        //'A &#x00E9; B',
                        // Subject of NS_TALK does not roundtrip to NS_MAIN
-                       array( 'Talk:File:Example.svg' ),
+                       array( 'Talk:File:Example.svg', 'title-invalid-talk-namespace' ),
                        // Directory navigation
-                       array( '.' ),
-                       array( '..' ),
-                       array( './Sandbox' ),
-                       array( '../Sandbox' ),
-                       array( 'Foo/./Sandbox' ),
-                       array( 'Foo/../Sandbox' ),
-                       array( 'Sandbox/.' ),
-                       array( 'Sandbox/..' ),
+                       array( '.', 'title-invalid-relative' ),
+                       array( '..', 'title-invalid-relative' ),
+                       array( './Sandbox', 'title-invalid-relative' ),
+                       array( '../Sandbox', 'title-invalid-relative' ),
+                       array( 'Foo/./Sandbox', 'title-invalid-relative' ),
+                       array( 'Foo/../Sandbox', 'title-invalid-relative' ),
+                       array( 'Sandbox/.', 'title-invalid-relative' ),
+                       array( 'Sandbox/..', 'title-invalid-relative' ),
                        // Tilde
-                       array( 'A ~~~ Name' ),
-                       array( 'A ~~~~ Signature' ),
-                       array( 'A ~~~~~ Timestamp' ),
-                       array( str_repeat( 'x', 256 ) ),
+                       array( 'A ~~~ Name', 'title-invalid-magic-tilde' ),
+                       array( 'A ~~~~ Signature', 'title-invalid-magic-tilde' ),
+                       array( 'A ~~~~~ Timestamp', 'title-invalid-magic-tilde' ),
+                       // Length
+                       array( str_repeat( 'x', 256 ), 'title-invalid-too-long' ),
                        // Namespace prefix without actual title
-                       array( 'Talk:' ),
-                       array( 'Talk:#' ),
-                       array( 'Category: ' ),
-                       array( 'Category: #bar' ),
+                       array( 'Talk:', 'title-invalid-empty' ),
+                       array( 'Talk:#', 'title-invalid-empty' ),
+                       array( 'Category: ', 'title-invalid-empty' ),
+                       array( 'Category: #bar', 'title-invalid-empty' ),
                        // interwiki prefix
-                       array( 'localtestiw: Talk: # anchor' ),
-                       array( 'localtestiw: Talk:' )
+                       array( 'localtestiw: Talk: # anchor', 'title-invalid-empty' ),
+                       array( 'localtestiw: Talk:', 'title-invalid-empty' )
                );
        }
 
@@ -164,9 +165,14 @@ class TitleTest extends MediaWikiTestCase {
         * @dataProvider provideInvalidSecureAndSplit
         * @note This mainly tests MediaWikiTitleCodec::parseTitle().
         */
-       public function testSecureAndSplitInvalid( $text ) {
+       public function testSecureAndSplitInvalid( $text, $expectedErrorMessage ) {
                $this->secureAndSplitGlobals();
-               $this->assertNull( Title::newFromText( $text ), "Invalid: $text" );
+               try {
+                       Title::newFromTextThrow( $text ); // should throw
+                       $this->assertTrue( false, "Invalid: $text" );
+               } catch ( MalformedTitleException $ex ) {
+                       $this->assertEquals( $expectedErrorMessage, $ex->getErrorMessage(), "Invalid: $text" );
+               }
        }
 
        public static function provideConvertByteClassToUnicodeClass() {
@@ -632,4 +638,26 @@ class TitleTest extends MediaWikiTestCase {
                $title = Title::makeTitle( NS_MAIN, 'Interwiki link', '', 'externalwiki' );
                $this->assertTrue( $title->isAlwaysKnown() );
        }
+
+       /**
+        * @covers Title::exists
+        */
+       public function testExists() {
+               $title = Title::makeTitle( NS_PROJECT, 'New page' );
+               $linkCache = LinkCache::singleton();
+
+               $article = new Article( $title );
+               $page = $article->getPage();
+               $page->doEditContent( new WikitextContent( 'Some [[link]]' ), 'summary' );
+
+               // Tell Title it doesn't know whether it exists
+               $title->mArticleID = -1;
+
+               // Tell the link cache it doesn't exists when it really does
+               $linkCache->clearLink( $title );
+               $linkCache->addBadLinkObj( $title );
+
+               $this->assertEquals( false, $title->exists(), 'exists() should rely on link cache unless GAID_FOR_UPDATE is used' );
+               $this->assertEquals( true, $title->exists( Title::GAID_FOR_UPDATE ), 'exists() should re-query database when GAID_FOR_UPDATE is used' );
+       }
 }
index f2fcb4a..f0d8455 100644 (file)
@@ -106,6 +106,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       ApiResult::setValue( $arr, null, $fh );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add resource(stream) to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                try {
                        $obj->file = $fh;
                        ApiResult::setValue( $arr, 'sub', $obj );
@@ -117,6 +127,17 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $obj->file = $fh;
+                       ApiResult::setValue( $arr, null, $obj );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add resource(stream) to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                fclose( $fh );
 
                try {
@@ -129,6 +150,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       ApiResult::setValue( $arr, null, INF );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add non-finite floats to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                try {
                        ApiResult::setValue( $arr, 'nan', NAN );
                        $this->fail( 'Expected exception not thrown' );
@@ -139,6 +170,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       ApiResult::setValue( $arr, null, NAN );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add non-finite floats to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
 
                $arr = array();
                $result2 = new ApiResult( 8388608 );
@@ -155,10 +196,14 @@ class ApiResultTest extends MediaWikiTestCase {
                ApiResult::setValue( $arr, 'foo', "foo\x80bar" );
                ApiResult::setValue( $arr, 'bar', "a\xcc\x81" );
                ApiResult::setValue( $arr, 'baz', 74 );
+               ApiResult::setValue( $arr, null, "foo\x80bar" );
+               ApiResult::setValue( $arr, null, "a\xcc\x81" );
                $this->assertSame( array(
                        'foo' => "foo\xef\xbf\xbdbar",
                        'bar' => "\xc3\xa1",
                        'baz' => 74,
+                       0 => "foo\xef\xbf\xbdbar",
+                       1 => "\xc3\xa1",
                ), $arr );
        }
 
@@ -288,6 +333,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $result->addValue( null, null, $fh );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add resource(stream) to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                try {
                        $obj->file = $fh;
                        $result->addValue( null, 'sub', $obj );
@@ -299,6 +354,17 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $obj->file = $fh;
+                       $result->addValue( null, null, $obj );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add resource(stream) to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                fclose( $fh );
 
                try {
@@ -311,6 +377,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $result->addValue( null, null, INF );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add non-finite floats to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                try {
                        $result->addValue( null, 'nan', NAN );
                        $this->fail( 'Expected exception not thrown' );
@@ -321,6 +397,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $result->addValue( null, null, NAN );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add non-finite floats to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
 
                $result->reset();
                $result->addParsedLimit( 'foo', 12 );
@@ -374,10 +460,14 @@ class ApiResultTest extends MediaWikiTestCase {
                $result->addValue( null, 'foo', "foo\x80bar" );
                $result->addValue( null, 'bar', "a\xcc\x81" );
                $result->addValue( null, 'baz', 74 );
+               $result->addValue( null, null, "foo\x80bar" );
+               $result->addValue( null, null, "a\xcc\x81" );
                $this->assertSame( array(
                        'foo' => "foo\xef\xbf\xbdbar",
                        'bar' => "\xc3\xa1",
                        'baz' => 74,
+                       0 => "foo\xef\xbf\xbdbar",
+                       1 => "\xc3\xa1",
                        ApiResult::META_TYPE => 'assoc',
                ), $result->getResultData() );
        }
index 0c31b95..7babaed 100644 (file)
@@ -94,6 +94,8 @@ class ApiFormatXmlTest extends ApiFormatTestBase {
                        array( array( "foo\xe3\x80\x80bar" => 1 ), '<?xml version="1.0"?><api _foo.3000.bar="1" />' ),
                        array( array( 'foo:bar' => 1, ApiResult::META_PRESERVE_KEYS => array( 'foo:bar' ) ),
                                '<?xml version="1.0"?><api foo:bar="1" />' ),
+                       array( array( 'a', 'b', ApiResult::META_INDEXED_TAG_NAME => 'foo bar' ),
+                               '<?xml version="1.0"?><api><_foo.20.bar>a</_foo.20.bar><_foo.20.bar>b</_foo.20.bar></api>' ),
 
                        // includenamespace param
                        array( array( 'x' => 'foo' ), '<?xml version="1.0"?><api x="foo" xmlns="http://www.mediawiki.org/xml/api/" />',
index 0dba183..e39c382 100644 (file)
@@ -76,6 +76,19 @@ class RecentChangeTest extends MediaWikiTestCase {
                        ),
                        $this->user_comment
                );
+               # block/block - legacy
+               $this->assertIRCComment(
+                       $this->context->msg( 'blocklogentry', 'SomeTitle', 'duration', '(flags)' )->plain()
+                               . $sep . $this->user_comment,
+                       'block', 'block',
+                       array(
+                               'duration',
+                               'flags',
+                       ),
+                       $this->user_comment,
+                       '',
+                       true
+               );
                # block/unblock
                $this->assertIRCComment(
                        $this->context->msg( 'unblocklogentry', 'SomeTitle' )->plain() . $sep . $this->user_comment,
@@ -332,7 +345,7 @@ class RecentChangeTest extends MediaWikiTestCase {
         * @param string $msg (optional) A message for PHPUnit :-)
         */
        protected function assertIRCComment( $expected, $type, $action, $params,
-               $comment = null, $msg = ''
+               $comment = null, $msg = '', $legacy = false
        ) {
                $logEntry = new ManualLogEntry( $type, $action );
                $logEntry->setPerformer( $this->user );
@@ -341,6 +354,7 @@ class RecentChangeTest extends MediaWikiTestCase {
                        $logEntry->setComment( $comment );
                }
                $logEntry->setParameters( $params );
+               $logEntry->setLegacy( $legacy );
 
                $formatter = LogFormatter::newFromEntry( $logEntry );
                $formatter->setContext( $this->context );
index 645baf1..451d82a 100644 (file)
@@ -1,12 +1,13 @@
 <?php
 
-class MockDatabaseSqlite extends DatabaseSqlite {
+class DatabaseSqliteMock extends DatabaseSqlite {
        private $lastQuery;
 
        public static function newInstance( array $p = array() ) {
                $p['dbFilePath'] = ':memory:';
+               $p['schema'] = false;
 
-               return new self( $p );
+               return DatabaseBase::factory( 'SqliteMock', $p );
        }
 
        function query( $sql, $fname = '', $tempIgnore = false ) {
@@ -29,7 +30,7 @@ class MockDatabaseSqlite extends DatabaseSqlite {
  * @group medium
  */
 class DatabaseSqliteTest extends MediaWikiTestCase {
-       /** @var MockDatabaseSqlite */
+       /** @var DatabaseSqliteMock */
        protected $db;
 
        protected function setUp() {
@@ -38,7 +39,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
                if ( !Sqlite::isPresent() ) {
                        $this->markTestSkipped( 'No SQLite support detected' );
                }
-               $this->db = MockDatabaseSqlite::newInstance();
+               $this->db = DatabaseSqliteMock::newInstance();
                if ( version_compare( $this->db->getServerVersion(), '3.6.0', '<' ) ) {
                        $this->markTestSkipped( "SQLite at least 3.6 required, {$this->db->getServerVersion()} found" );
                }
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 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 ) {
diff --git a/tests/phpunit/includes/logging/BlockLogFormatterTest.php b/tests/phpunit/includes/logging/BlockLogFormatterTest.php
new file mode 100644 (file)
index 0000000..c7dc641
--- /dev/null
@@ -0,0 +1,372 @@
+<?php
+
+class BlockLogFormatterTest extends LogFormatterTestCase {
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideBlockLogDatabaseRows() {
+               return array(
+                       // Current log format
+                       array(
+                               array(
+                                       'type' => 'block',
+                                       'action' => 'block',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               '5::duration' => 'infinite',
+                                               '6::flags' => 'anononly',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'Sysop blocked Logtestuser with an expiry time of indefinite (anonymous users only)',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array( 'anononly' ),
+                                       ),
+                               ),
+                       ),
+
+                       // Old legacy log
+                       array(
+                               array(
+                                       'type' => 'block',
+                                       'action' => 'block',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               'infinite',
+                                               'anononly',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop blocked Logtestuser with an expiry time of indefinite (anonymous users only)',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array( 'anononly' ),
+                                       ),
+                               ),
+                       ),
+
+                       // Old legacy log without flag
+                       array(
+                               array(
+                                       'type' => 'block',
+                                       'action' => 'block',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               'infinite',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop blocked Logtestuser with an expiry time of indefinite',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array(),
+                                       ),
+                               ),
+                       ),
+
+                       // Very old legacy log without duration
+                       array(
+                               array(
+                                       'type' => 'block',
+                                       'action' => 'block',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop blocked Logtestuser with an expiry time of indefinite',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array(),
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideBlockLogDatabaseRows
+        */
+       public function testBlockLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideReblockLogDatabaseRows() {
+               return array(
+                       // Current log format
+                       array(
+                               array(
+                                       'type' => 'block',
+                                       'action' => 'reblock',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               '5::duration' => 'infinite',
+                                               '6::flags' => 'anononly',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'Sysop changed block settings for Logtestuser with an expiry time of'
+                                               . ' indefinite (anonymous users only)',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array( 'anononly' ),
+                                       ),
+                               ),
+                       ),
+
+                       // Old log
+                       array(
+                               array(
+                                       'type' => 'block',
+                                       'action' => 'reblock',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               'infinite',
+                                               'anononly',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop changed block settings for Logtestuser with an expiry time of'
+                                               . ' indefinite (anonymous users only)',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array( 'anononly' ),
+                                       ),
+                               ),
+                       ),
+
+                       // Older log without flag
+                       array(
+                               array(
+                                       'type' => 'block',
+                                       'action' => 'reblock',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               'infinite',
+                                       )
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop changed block settings for Logtestuser with an expiry time of indefinite',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array(),
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideReblockLogDatabaseRows
+        */
+       public function testReblockLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideUnblockLogDatabaseRows() {
+               return array(
+                       // Current log format
+                       array(
+                               array(
+                                       'type' => 'block',
+                                       'action' => 'unblock',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'text' => 'Sysop unblocked Logtestuser',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideUnblockLogDatabaseRows
+        */
+       public function testUnblockLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideSuppressBlockLogDatabaseRows() {
+               return array(
+                       // Current log format
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'block',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               '5::duration' => 'infinite',
+                                               '6::flags' => 'anononly',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'Sysop blocked Logtestuser with an expiry time of indefinite (anonymous users only)',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array( 'anononly' ),
+                                       ),
+                               ),
+                       ),
+
+                       // legacy log
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'block',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               'infinite',
+                                               'anononly',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop blocked Logtestuser with an expiry time of indefinite (anonymous users only)',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array( 'anononly' ),
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideSuppressBlockLogDatabaseRows
+        */
+       public function testSuppressBlockLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideSuppressReblockLogDatabaseRows() {
+               return array(
+                       // Current log format
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'reblock',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               '5::duration' => 'infinite',
+                                               '6::flags' => 'anononly',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'Sysop changed block settings for Logtestuser with an expiry time of'
+                                               . ' indefinite (anonymous users only)',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array( 'anononly' ),
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'reblock',
+                                       'comment' => 'Block comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Logtestuser',
+                                       'params' => array(
+                                               'infinite',
+                                               'anononly',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop changed block settings for Logtestuser with an expiry time of'
+                                               . ' indefinite (anonymous users only)',
+                                       'api' => array(
+                                               'duration' => 'infinite',
+                                               'flags' => array( 'anononly' ),
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideSuppressReblockLogDatabaseRows
+        */
+       public function testSuppressReblockLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
diff --git a/tests/phpunit/includes/logging/DeleteLogFormatterTest.php b/tests/phpunit/includes/logging/DeleteLogFormatterTest.php
new file mode 100644 (file)
index 0000000..28e7efa
--- /dev/null
@@ -0,0 +1,527 @@
+<?php
+
+class DeleteLogFormatterTest extends LogFormatterTestCase {
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideDeleteLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'delete',
+                                       'action' => 'delete',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'text' => 'User deleted page Page',
+                                       'api' => array(),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'delete',
+                                       'action' => 'delete',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User deleted page Page',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideDeleteLogDatabaseRows
+        */
+       public function testDeleteLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideRestoreLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'delete',
+                                       'action' => 'restore',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'text' => 'User restored page Page',
+                                       'api' => array(),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'delete',
+                                       'action' => 'restore',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User restored page Page',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideRestoreLogDatabaseRows
+        */
+       public function testRestoreLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideRevisionLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'delete',
+                                       'action' => 'revision',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '4::type' => 'archive',
+                                               '5::ids' => array( '1', '3', '4' ),
+                                               '6::ofield' => '1',
+                                               '7::nfield' => '2',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User changed visibility of 3 revisions on page Page: edit summary '
+                                               . 'hidden and content unhidden',
+                                       'api' => array(
+                                               'type' => 'archive',
+                                               'ids' => array( '1', '3', '4' ),
+                                               'old' => array(
+                                                       'bitmask' => 1,
+                                                       'content' => true,
+                                                       'comment' => false,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                               'new' => array(
+                                                       'bitmask' => 2,
+                                                       'content' => false,
+                                                       'comment' => true,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'delete',
+                                       'action' => 'revision',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               'archive',
+                                               '1,3,4',
+                                               'ofield=1',
+                                               'nfield=2',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User changed visibility of 3 revisions on page Page: edit summary '
+                                               . 'hidden and content unhidden',
+                                       'api' => array(
+                                               'type' => 'archive',
+                                               'ids' => array( '1', '3', '4' ),
+                                               'old' => array(
+                                                       'bitmask' => 1,
+                                                       'content' => true,
+                                                       'comment' => false,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                               'new' => array(
+                                                       'bitmask' => 2,
+                                                       'content' => false,
+                                                       'comment' => true,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideRevisionLogDatabaseRows
+        */
+       public function testRevisionLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideEventLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'delete',
+                                       'action' => 'event',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '4::ids' => array( '1', '3', '4' ),
+                                               '5::ofield' => '1',
+                                               '6::nfield' => '2',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User changed visibility of 3 log events on Page: edit summary hidden '
+                                               . 'and content unhidden',
+                                       'api' => array(
+                                               'type' => 'logging',
+                                               'ids' => array( '1', '3', '4' ),
+                                               'old' => array(
+                                                       'bitmask' => 1,
+                                                       'content' => true,
+                                                       'comment' => false,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                               'new' => array(
+                                                       'bitmask' => 2,
+                                                       'content' => false,
+                                                       'comment' => true,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'delete',
+                                       'action' => 'event',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '1,3,4',
+                                               'ofield=1',
+                                               'nfield=2',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User changed visibility of 3 log events on Page: edit summary hidden '
+                                               . 'and content unhidden',
+                                       'api' => array(
+                                               'type' => 'logging',
+                                               'ids' => array( '1', '3', '4' ),
+                                               'old' => array(
+                                                       'bitmask' => 1,
+                                                       'content' => true,
+                                                       'comment' => false,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                               'new' => array(
+                                                       'bitmask' => 2,
+                                                       'content' => false,
+                                                       'comment' => true,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideEventLogDatabaseRows
+        */
+       public function testEventLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideSuppressRevisionLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'revision',
+                                       'comment' => 'Suppress comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '4::type' => 'archive',
+                                               '5::ids' => array( '1', '3', '4' ),
+                                               '6::ofield' => '1',
+                                               '7::nfield' => '10',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User secretly changed visibility of 3 revisions on page Page: edit '
+                                               . 'summary hidden, content unhidden and applied restrictions to administrators',
+                                       'api' => array(
+                                               'type' => 'archive',
+                                               'ids' => array( '1', '3', '4' ),
+                                               'old' => array(
+                                                       'bitmask' => 1,
+                                                       'content' => true,
+                                                       'comment' => false,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                               'new' => array(
+                                                       'bitmask' => 10,
+                                                       'content' => false,
+                                                       'comment' => true,
+                                                       'user' => false,
+                                                       'restricted' => true,
+                                               ),
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'revision',
+                                       'comment' => 'Suppress comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               'archive',
+                                               '1,3,4',
+                                               'ofield=1',
+                                               'nfield=10',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User secretly changed visibility of 3 revisions on page Page: edit '
+                                               . 'summary hidden, content unhidden and applied restrictions to administrators',
+                                       'api' => array(
+                                               'type' => 'archive',
+                                               'ids' => array( '1', '3', '4' ),
+                                               'old' => array(
+                                                       'bitmask' => 1,
+                                                       'content' => true,
+                                                       'comment' => false,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                               'new' => array(
+                                                       'bitmask' => 10,
+                                                       'content' => false,
+                                                       'comment' => true,
+                                                       'user' => false,
+                                                       'restricted' => true,
+                                               ),
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideSuppressRevisionLogDatabaseRows
+        */
+       public function testSuppressRevisionLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideSuppressEventLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'event',
+                                       'comment' => 'Suppress comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '4::ids' => array( '1', '3', '4' ),
+                                               '5::ofield' => '1',
+                                               '6::nfield' => '10',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User secretly changed visibility of 3 log events on Page: edit '
+                                               . 'summary hidden, content unhidden and applied restrictions to administrators',
+                                       'api' => array(
+                                               'type' => 'logging',
+                                               'ids' => array( '1', '3', '4' ),
+                                               'old' => array(
+                                                       'bitmask' => 1,
+                                                       'content' => true,
+                                                       'comment' => false,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                               'new' => array(
+                                                       'bitmask' => 10,
+                                                       'content' => false,
+                                                       'comment' => true,
+                                                       'user' => false,
+                                                       'restricted' => true,
+                                               ),
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'event',
+                                       'comment' => 'Suppress comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '1,3,4',
+                                               'ofield=1',
+                                               'nfield=10',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User secretly changed visibility of 3 log events on Page: edit '
+                                               . 'summary hidden, content unhidden and applied restrictions to administrators',
+                                       'api' => array(
+                                               'type' => 'logging',
+                                               'ids' => array( '1', '3', '4' ),
+                                               'old' => array(
+                                                       'bitmask' => 1,
+                                                       'content' => true,
+                                                       'comment' => false,
+                                                       'user' => false,
+                                                       'restricted' => false,
+                                               ),
+                                               'new' => array(
+                                                       'bitmask' => 10,
+                                                       'content' => false,
+                                                       'comment' => true,
+                                                       'user' => false,
+                                                       'restricted' => true,
+                                               ),
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideSuppressEventLogDatabaseRows
+        */
+       public function testSuppressEventLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideSuppressDeleteLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'delete',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'text' => 'User suppressed page Page',
+                                       'api' => array(),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'suppress',
+                                       'action' => 'delete',
+                                       'comment' => 'delete comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User suppressed page Page',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideSuppressDeleteLogDatabaseRows
+        */
+       public function testSuppressDeleteLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
diff --git a/tests/phpunit/includes/logging/LogFormatterTestCase.php b/tests/phpunit/includes/logging/LogFormatterTestCase.php
new file mode 100644 (file)
index 0000000..e58711f
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * @since 1.26
+ */
+abstract class LogFormatterTestCase extends MediaWikiLangTestCase {
+
+       public function doTestLogFormatter( $row, $extra ) {
+               RequestContext::resetMain();
+               $row = $this->expandDatabaseRow( $row, $this->isLegacy( $extra ) );
+
+               $formatter = LogFormatter::newFromRow( $row );
+
+               $this->assertEquals(
+                       $extra['text'],
+                       self::removeSomeHtml( $formatter->getActionText() ),
+                       'Action text is equal to expected text'
+               );
+
+               $this->assertEquals(
+                       $extra['api'],
+                       self::removeApiMetaData( $formatter->formatParametersForApi() ),
+                       'Api log params is equal to expected array'
+               );
+       }
+
+       protected function isLegacy( $extra ) {
+               return isset( $extra['legacy'] ) && $extra['legacy'];
+       }
+
+       protected function expandDatabaseRow( $data, $legacy ) {
+               return array(
+                       // no log_id because no insert in database
+                       'log_type' => $data['type'],
+                       'log_action' => $data['action'],
+                       'log_timestamp' => isset( $data['timestamp'] ) ? $data['timestamp'] : wfTimestampNow(),
+                       'log_user' => isset( $data['user'] ) ? $data['user'] : 0,
+                       'log_user_text' => isset( $data['user_text'] ) ? $data['user_text'] : 'User',
+                       'log_namespace' => isset( $data['namespace'] ) ? $data['namespace'] : NS_MAIN,
+                       'log_title' => isset( $data['title'] ) ? $data['title'] : 'Main_Page',
+                       'log_page' => isset( $data['page'] ) ? $data['page'] : 0,
+                       'log_comment' => isset( $data['comment'] ) ? $data['comment'] : '',
+                       'log_params' => $legacy
+                               ? LogPage::makeParamBlob( $data['params'] )
+                               : LogEntryBase::makeParamBlob( $data['params'] ),
+                       'log_deleted' => isset( $data['deleted'] ) ? $data['deleted'] : 0,
+               );
+       }
+
+       private static function removeSomeHtml( $html ) {
+               return trim( preg_replace( '/<(a|span)[^>]*>([^<]*)<\/\1>/', '$2', $html ) );
+       }
+
+       private static function removeApiMetaData( $val ) {
+               if ( is_array( $val ) ) {
+                       unset( $val['_element'] );
+                       unset( $val['_type'] );
+                       foreach ( $val as $key => $value ) {
+                               $val[$key] = self::removeApiMetaData( $value );
+                       }
+               }
+               return $val;
+       }
+}
diff --git a/tests/phpunit/includes/logging/MergeLogFormatterTest.php b/tests/phpunit/includes/logging/MergeLogFormatterTest.php
new file mode 100644 (file)
index 0000000..5a0b906
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+
+class MergeLogFormatterTest extends LogFormatterTestCase {
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideMergeLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'merge',
+                                       'action' => 'merge',
+                                       'comment' => 'Merge comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               '4::dest' => 'NewPage',
+                                               '5::mergepoint' => '20140804160710',
+                                       ),
+                               ),
+                               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',
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'merge',
+                                       'action' => 'merge',
+                                       'comment' => 'merge comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               'NewPage',
+                                               '20140804160710',
+                                       ),
+                               ),
+                               array(
+                                       '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',
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideMergeLogDatabaseRows
+        */
+       public function testMergeLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
diff --git a/tests/phpunit/includes/logging/MoveLogFormatterTest.php b/tests/phpunit/includes/logging/MoveLogFormatterTest.php
new file mode 100644 (file)
index 0000000..fdc4b7e
--- /dev/null
@@ -0,0 +1,270 @@
+<?php
+
+class MoveLogFormatterTest extends LogFormatterTestCase {
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideMoveLogDatabaseRows() {
+               return array(
+                       // Current format - with redirect
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move',
+                                       'comment' => 'move comment with redirect',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               '4::target' => 'NewPage',
+                                               '5::noredir' => '0',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User moved page OldPage to NewPage',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => false,
+                                       ),
+                               ),
+                       ),
+
+                       // Current format - without redirect
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move',
+                                       'comment' => 'move comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               '4::target' => 'NewPage',
+                                               '5::noredir' => '1',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User moved page OldPage to NewPage without leaving a redirect',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => true,
+                                       ),
+                               ),
+                       ),
+
+                       // legacy format - with redirect
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move',
+                                       'comment' => 'move comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               'NewPage',
+                                               '',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User moved page OldPage to NewPage',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => false,
+                                       ),
+                               ),
+                       ),
+
+                       // legacy format - without redirect
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move',
+                                       'comment' => 'move comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               'NewPage',
+                                               '1',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User moved page OldPage to NewPage without leaving a redirect',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => true,
+                                       ),
+                               ),
+                       ),
+
+                       // old format without flag for redirect suppression
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move',
+                                       'comment' => 'move comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               'NewPage',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User moved page OldPage to NewPage',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => false,
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideMoveLogDatabaseRows
+        */
+       public function testMoveLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideMoveRedirLogDatabaseRows() {
+               return array(
+                       // Current format - with redirect
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move_redir',
+                                       'comment' => 'move comment with redirect',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               '4::target' => 'NewPage',
+                                               '5::noredir' => '0',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User moved page OldPage to NewPage over redirect',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => false,
+                                       ),
+                               ),
+                       ),
+
+                       // Current format - without redirect
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move_redir',
+                                       'comment' => 'move comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               '4::target' => 'NewPage',
+                                               '5::noredir' => '1',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User moved page OldPage to NewPage over a redirect without leaving a redirect',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => true,
+                                       ),
+                               ),
+                       ),
+
+                       // legacy format - with redirect
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move_redir',
+                                       'comment' => 'move comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               'NewPage',
+                                               '',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User moved page OldPage to NewPage over redirect',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => false,
+                                       ),
+                               ),
+                       ),
+
+                       // legacy format - without redirect
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move_redir',
+                                       'comment' => 'move comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               'NewPage',
+                                               '1',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User moved page OldPage to NewPage over a redirect without leaving a redirect',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => true,
+                                       ),
+                               ),
+                       ),
+
+                       // old format without flag for redirect suppression
+                       array(
+                               array(
+                                       'type' => 'move',
+                                       'action' => 'move_redir',
+                                       'comment' => 'move comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'OldPage',
+                                       'params' => array(
+                                               'NewPage',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User moved page OldPage to NewPage over redirect',
+                                       'api' => array(
+                                               'target_ns' => 0,
+                                               'target_title' => 'NewPage',
+                                               'suppressredirect' => false,
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideMoveRedirLogDatabaseRows
+        */
+       public function testMoveRedirLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
diff --git a/tests/phpunit/includes/logging/NewUsersLogFormatterTest.php b/tests/phpunit/includes/logging/NewUsersLogFormatterTest.php
new file mode 100644 (file)
index 0000000..13dd839
--- /dev/null
@@ -0,0 +1,207 @@
+<?php
+
+/**
+ * @group Database
+ */
+class NewUsersLogFormatterTest extends LogFormatterTestCase {
+
+       protected function setUp() {
+               parent::setUp();
+
+               // Register LogHandler, see $wgNewUserLog in Setup.php
+               $this->mergeMwGlobalArrayValue( 'wgLogActionsHandlers', array(
+                       'newusers/newusers' => 'NewUsersLogFormatter',
+                       'newusers/create' => 'NewUsersLogFormatter',
+                       'newusers/create2' => 'NewUsersLogFormatter',
+                       'newusers/byemail' => 'NewUsersLogFormatter',
+                       'newusers/autocreate' => 'NewUsersLogFormatter',
+               ) );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideNewUsersLogDatabaseRows() {
+               return array(
+                       // Only old logs
+                       array(
+                               array(
+                                       'type' => 'newusers',
+                                       'action' => 'newusers',
+                                       'comment' => 'newusers comment',
+                                       'user' => 0,
+                                       'user_text' => 'New user',
+                                       'namespace' => NS_USER,
+                                       'title' => 'New user',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User account New user was created',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideNewUsersLogDatabaseRows
+        */
+       public function testNewUsersLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideCreateLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'newusers',
+                                       'action' => 'create',
+                                       'comment' => 'newusers comment',
+                                       'user' => 0,
+                                       'user_text' => 'New user',
+                                       'namespace' => NS_USER,
+                                       'title' => 'New user',
+                                       'params' => array(
+                                               '4::userid' => '1',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User account New user was created',
+                                       'api' => array(
+                                               'userid' => 1,
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideCreateLogDatabaseRows
+        */
+       public function testCreateLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideCreate2LogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'newusers',
+                                       'action' => 'create2',
+                                       'comment' => 'newusers comment',
+                                       'user' => 0,
+                                       'user_text' => 'User',
+                                       'namespace' => NS_USER,
+                                       'title' => 'UTSysop',
+                                       'params' => array(
+                                               '4::userid' => '1',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User account UTSysop was created by User',
+                                       'api' => array(
+                                               'userid' => 1,
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideCreate2LogDatabaseRows
+        */
+       public function testCreate2LogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideByemailLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'newusers',
+                                       'action' => 'byemail',
+                                       'comment' => 'newusers comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'UTSysop',
+                                       'params' => array(
+                                               '4::userid' => '1',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User account UTSysop was created by Sysop and password was sent by email',
+                                       'api' => array(
+                                               'userid' => 1,
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideByemailLogDatabaseRows
+        */
+       public function testByemailLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideAutocreateLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'newusers',
+                                       'action' => 'autocreate',
+                                       'comment' => 'newusers comment',
+                                       'user' => 0,
+                                       'user_text' => 'New user',
+                                       'namespace' => NS_USER,
+                                       'title' => 'New user',
+                                       'params' => array(
+                                               '4::userid' => '1',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User account New user was created automatically',
+                                       'api' => array(
+                                               'userid' => 1,
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideAutocreateLogDatabaseRows
+        */
+       public function testAutocreateLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
diff --git a/tests/phpunit/includes/logging/PageLangLogFormatterTest.php b/tests/phpunit/includes/logging/PageLangLogFormatterTest.php
new file mode 100644 (file)
index 0000000..226e492
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+
+class PageLangLogFormatterTest extends LogFormatterTestCase {
+
+       protected function setUp() {
+               parent::setUp();
+
+               // Disable cldr extension
+               $this->setMwGlobals( 'wgHooks', array() );
+               // Register LogHandler, see $wgPageLanguageUseDB in Setup.php
+               $this->mergeMwGlobalArrayValue( 'wgLogActionsHandlers', array(
+                       'pagelang/pagelang' => 'PageLangLogFormatter',
+               ) );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function providePageLangLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'pagelang',
+                                       'action' => 'pagelang',
+                                       'comment' => 'page lang comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '4::oldlanguage' => 'en',
+                                               '5::newlanguage' => 'de[def]',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User changed page language for Page from English (en) to Deutsch (de) [default].',
+                                       'api' => array(
+                                               'oldlanguage' => 'en',
+                                               'newlanguage' => 'de[def]'
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider providePageLangLogDatabaseRows
+        */
+       public function testPageLangLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
diff --git a/tests/phpunit/includes/logging/PatrolLogFormatterTest.php b/tests/phpunit/includes/logging/PatrolLogFormatterTest.php
new file mode 100644 (file)
index 0000000..6e1c5ef
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+
+class PatrolLogFormatterTest extends LogFormatterTestCase {
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function providePatrolLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'patrol',
+                                       'action' => 'patrol',
+                                       'comment' => 'patrol comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '4::curid' => 2,
+                                               '5::previd' => 1,
+                                               '6::auto' => 0,
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User marked revision 2 of page Page patrolled',
+                                       'api' => array(
+                                               'curid' => 2,
+                                               'previd' => 1,
+                                               'auto' => false,
+                                       ),
+                               ),
+                       ),
+
+                       // Current format - autopatrol
+                       array(
+                               array(
+                                       'type' => 'patrol',
+                                       'action' => 'patrol',
+                                       'comment' => 'patrol comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '4::curid' => 2,
+                                               '5::previd' => 1,
+                                               '6::auto' => 1,
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User automatically marked revision 2 of page Page patrolled',
+                                       'api' => array(
+                                               'curid' => 2,
+                                               'previd' => 1,
+                                               'auto' => true,
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'patrol',
+                                       'action' => 'patrol',
+                                       'comment' => 'patrol comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '2',
+                                               '1',
+                                               '0',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User marked revision 2 of page Page patrolled',
+                                       'api' => array(
+                                               'curid' => 2,
+                                               'previd' => 1,
+                                               'auto' => false,
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format - autopatrol
+                       array(
+                               array(
+                                       'type' => 'patrol',
+                                       'action' => 'patrol',
+                                       'comment' => 'patrol comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'Page',
+                                       'params' => array(
+                                               '2',
+                                               '1',
+                                               '1',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'User automatically marked revision 2 of page Page patrolled',
+                                       'api' => array(
+                                               'curid' => 2,
+                                               'previd' => 1,
+                                               'auto' => true,
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider providePatrolLogDatabaseRows
+        */
+       public function testPatrolLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
diff --git a/tests/phpunit/includes/logging/RightsLogFormatterTest.php b/tests/phpunit/includes/logging/RightsLogFormatterTest.php
new file mode 100644 (file)
index 0000000..e9577f1
--- /dev/null
@@ -0,0 +1,157 @@
+<?php
+
+class RightsLogFormatterTest extends LogFormatterTestCase {
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideRightsLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'rights',
+                                       'action' => 'rights',
+                                       'comment' => 'rights comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'User',
+                                       'params' => array(
+                                               '4::oldgroups' => array(),
+                                               '5::newgroups' => array( 'sysop', 'bureaucrat' ),
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'Sysop changed group membership for User:User from (none) to '
+                                               . 'administrator and bureaucrat',
+                                       'api' => array(
+                                               'oldgroups' => array(),
+                                               'newgroups' => array( 'sysop', 'bureaucrat' ),
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'rights',
+                                       'action' => 'rights',
+                                       'comment' => 'rights comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'User',
+                                       'params' => array(
+                                               '',
+                                               'sysop, bureaucrat',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop changed group membership for User:User from (none) to '
+                                               . 'administrator and bureaucrat',
+                                       'api' => array(
+                                               'oldgroups' => array(),
+                                               'newgroups' => array( 'sysop', 'bureaucrat' ),
+                                       ),
+                               ),
+                       ),
+
+                       // Really old entry
+                       array(
+                               array(
+                                       'type' => 'rights',
+                                       'action' => 'rights',
+                                       'comment' => 'rights comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'User',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop changed group membership for User:User',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideRightsLogDatabaseRows
+        */
+       public function testRightsLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideAutopromoteLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'rights',
+                                       'action' => 'autopromote',
+                                       'comment' => 'rights comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Sysop',
+                                       'params' => array(
+                                               '4::oldgroups' => array( 'sysop' ),
+                                               '5::newgroups' => array( 'sysop', 'bureaucrat' ),
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'Sysop was automatically promoted from administrator to '
+                                               . 'administrator and bureaucrat',
+                                       'api' => array(
+                                               'oldgroups' => array( 'sysop' ),
+                                               'newgroups' => array( 'sysop', 'bureaucrat' ),
+                                       ),
+                               ),
+                       ),
+
+                       // Legacy format
+                       array(
+                               array(
+                                       'type' => 'rights',
+                                       'action' => 'autopromote',
+                                       'comment' => 'rights comment',
+                                       'user' => 0,
+                                       'user_text' => 'Sysop',
+                                       'namespace' => NS_USER,
+                                       'title' => 'Sysop',
+                                       'params' => array(
+                                               'sysop',
+                                               'sysop, bureaucrat',
+                                       ),
+                               ),
+                               array(
+                                       'legacy' => true,
+                                       'text' => 'Sysop was automatically promoted from administrator to '
+                                               . 'administrator and bureaucrat',
+                                       'api' => array(
+                                               'oldgroups' => array( 'sysop' ),
+                                               'newgroups' => array( 'sysop', 'bureaucrat' ),
+                                       ),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideAutopromoteLogDatabaseRows
+        */
+       public function testAutopromoteLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
diff --git a/tests/phpunit/includes/logging/UploadLogFormatterTest.php b/tests/phpunit/includes/logging/UploadLogFormatterTest.php
new file mode 100644 (file)
index 0000000..12f5161
--- /dev/null
@@ -0,0 +1,166 @@
+<?php
+
+class UploadLogFormatterTest extends LogFormatterTestCase {
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideUploadLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'upload',
+                                       'action' => 'upload',
+                                       'comment' => 'upload comment',
+                                       'namespace' => NS_FILE,
+                                       'title' => 'File.png',
+                                       'params' => array(
+                                               'img_sha1' => 'hash',
+                                               'img_timestamp' => '20150101000000',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User uploaded File:File.png',
+                                       'api' => array(
+                                               'img_sha1' => 'hash',
+                                               'img_timestamp' => '2015-01-01T00:00:00Z',
+                                       ),
+                               ),
+                       ),
+
+                       // Old format without params
+                       array(
+                               array(
+                                       'type' => 'upload',
+                                       'action' => 'upload',
+                                       'comment' => 'upload comment',
+                                       'namespace' => NS_FILE,
+                                       'title' => 'File.png',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'text' => 'User uploaded File:File.png',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideUploadLogDatabaseRows
+        */
+       public function testUploadLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideOverwriteLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'upload',
+                                       'action' => 'overwrite',
+                                       'comment' => 'upload comment',
+                                       'namespace' => NS_FILE,
+                                       'title' => 'File.png',
+                                       'params' => array(
+                                               'img_sha1' => 'hash',
+                                               'img_timestamp' => '20150101000000',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User uploaded a new version of File:File.png',
+                                       'api' => array(
+                                               'img_sha1' => 'hash',
+                                               'img_timestamp' => '2015-01-01T00:00:00Z',
+                                       ),
+                               ),
+                       ),
+
+                       // Old format without params
+                       array(
+                               array(
+                                       'type' => 'upload',
+                                       'action' => 'overwrite',
+                                       'comment' => 'upload comment',
+                                       'namespace' => NS_FILE,
+                                       'title' => 'File.png',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'text' => 'User uploaded a new version of File:File.png',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideOverwriteLogDatabaseRows
+        */
+       public function testOverwriteLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideRevertLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'upload',
+                                       'action' => 'revert',
+                                       'comment' => 'upload comment',
+                                       'namespace' => NS_FILE,
+                                       'title' => 'File.png',
+                                       'params' => array(
+                                               'img_sha1' => 'hash',
+                                               'img_timestamp' => '20150101000000',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User uploaded File:File.png',
+                                       'api' => array(
+                                               'img_sha1' => 'hash',
+                                               'img_timestamp' => '2015-01-01T00:00:00Z',
+                                       ),
+                               ),
+                       ),
+
+                       // Old format without params
+                       array(
+                               array(
+                                       'type' => 'upload',
+                                       'action' => 'revert',
+                                       'comment' => 'upload comment',
+                                       'namespace' => NS_FILE,
+                                       'title' => 'File.png',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'text' => 'User uploaded File:File.png',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideRevertLogDatabaseRows
+        */
+       public function testRevertLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
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 b95316c..d47ffa9 100644 (file)
@@ -36,6 +36,10 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
        }
 
        public static function provideRegisterHooks() {
+               // Format:
+               // Current $wgHooks
+               // Content in extension.json
+               // Expected value of $wgHooks
                return array(
                        // No hooks
                        array(
@@ -64,6 +68,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' ),
+                               ),
+                       ),
                );
        }
 
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 56b0fa9..4bf44b0 100644 (file)
 
        caretSample = 'Some big text that we like to work with. Nothing fancy... you know what I mean?';
 
-/*
-       // @broken: Disabled per bug 34820
+       /* @broken: Disabled per bug 34820
        caretTest({
-       description: 'getCaretPosition with original/empty selection - bug 31847 with IE 6/7/8',
-       text: caretSample,
-       start: [0, caretSample.length], // Opera and Firefox (prior to FF 6.0) default caret to the end of the box (caretSample.length)
-       end: [0, caretSample.length], // Other browsers default it to the beginning (0), so check both.
-       mode: 'get'
+               description: 'getCaretPosition with original/empty selection - bug 31847 with IE 6/7/8',
+               text: caretSample,
+               start: [0, caretSample.length], // Opera and Firefox (prior to FF 6.0) default caret to the end of the box (caretSample.length)
+               end: [0, caretSample.length], // Other browsers default it to the beginning (0), so check both.
+               mode: 'get'
        });
-*/
+       */
 
        caretTest( {
                description: 'set/getCaretPosition with forced empty selection',
index b89526f..4f199bd 100644 (file)
@@ -80,6 +80,7 @@
 
                // Get editToken for local wiki, this should not make
                // a request as it should be retrieved from user.tokens.
+               // This means that this test must run before the #badToken test below.
                api.getToken( 'edit' )
                        .done( function ( token ) {
                                assert.ok( token.length, 'Got a token' );
                assert.equal( this.server.requests.length, 0, 'Requests made' );
        } );
 
+       QUnit.test( 'badToken()', function ( assert ) {
+               QUnit.expect( 2 );
+
+               var api = new mw.Api();
+
+               // Clear the default cached token
+               api.badToken( 'edit' );
+
+               api.getToken( 'edit' )
+                       .done( function ( token ) {
+                               assert.equal( token, '0123abc', 'Got a non-cached token' );
+                       } )
+                       .fail( function ( err ) {
+                               assert.equal( '', err, 'API error' );
+                       } );
+
+               this.server.requests[0].respond( 200, { 'Content-Type': 'application/json' },
+                       '{ "tokens": { "edittoken": "0123abc" } }'
+               );
+
+               assert.equal( this.server.requests.length, 1, 'Requests made' );
+       } );
+
        QUnit.test( 'getToken()', function ( assert ) {
                QUnit.expect( 5 );
 
index 5dcd941..d9fd6a7 100644 (file)
                );
        } );
 
-// Tests that {{-transformation vs. general parsing are done as requested
+       // Tests that {{-transformation vs. general parsing are done as requested
        QUnit.test( 'Curly brace transformation', 16, function ( assert ) {
                var oldUserLang = mw.config.get( 'wgUserLanguage' );
 
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 cdb2624..5329be6 100644 (file)
                        assert.assertTrue( this.timeStamp >= now, 'thisValue has sane timestamp' );
                } );
        } );
+
+       QUnit.test( 'trackUnsubscribe', 1, function ( assert ) {
+               var sequence = [];
+               function unsubber( topic, data ) {
+                       sequence.push( [ topic, data ] );
+               }
+
+               mw.track( 'unsub', { key: 1 } );
+               mw.trackSubscribe( 'unsub', unsubber );
+               mw.track( 'unsub', { key: 2 } );
+               mw.trackUnsubscribe( unsubber );
+               mw.track( 'unsub', { key: 3 } );
+
+               assert.deepEqual( sequence, [
+                       [ 'unsub', { key: 1 } ],
+                       [ 'unsub', { key: 2 } ]
+               ], 'Stop when unsubscribing' );
+       } );
 }( mediaWiki ) );
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 2ea3f07..2079a64 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -502,7 +502,7 @@ function wfExtractThumbParams( $file, $params ) {
        unset( $params['thumbName'] );
 
        // Do the hook first for older extensions that rely on it.
-       if ( !wfRunHooks( 'ExtractThumbParameters', array( $thumbname, &$params ) ) ) {
+       if ( !Hooks::run( 'ExtractThumbParameters', array( $thumbname, &$params ) ) ) {
                // Check hooks if parameters can be extracted
                // Hooks return false if they manage to *resolve* the parameters
                // This hook should be considered deprecated