Merge "Make api nearmatch search work same as 'go' feature"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 5 May 2015 20:41:32 +0000 (20:41 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 5 May 2015 20:41:32 +0000 (20:41 +0000)
547 files changed:
RELEASE-NOTES-1.25
RELEASE-NOTES-1.26
api.php
autoload.php
composer.json
docs/extension.schema.json
docs/hooks.txt
img_auth.php
includes/CategoryFinder.php
includes/DefaultSettings.php
includes/GlobalFunctions.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/ZhConversion.php
includes/actions/HistoryAction.php
includes/actions/InfoAction.php
includes/api/ApiEditPage.php
includes/api/ApiFeedRecentChanges.php
includes/api/ApiFormatXml.php
includes/api/ApiOpenSearch.php
includes/api/ApiParse.php
includes/api/ApiQuery.php
includes/api/ApiQueryAllMessages.php
includes/api/ApiQueryBacklinksprop.php
includes/api/ApiQueryCategories.php
includes/api/ApiQueryCategoryInfo.php
includes/api/ApiQueryContributors.php
includes/api/ApiQueryDeletedRevisions.php
includes/api/ApiQueryDuplicateFiles.php
includes/api/ApiQueryExternalLinks.php
includes/api/ApiQueryFileRepoInfo.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/ApiQueryRevisions.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryStashImageInfo.php
includes/api/ApiQueryTokens.php
includes/api/ApiQueryUserInfo.php
includes/api/ApiResult.php
includes/api/i18n/ast.json [new file with mode: 0644]
includes/api/i18n/cs.json
includes/api/i18n/de.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/ksh.json
includes/api/i18n/ku-latn.json
includes/api/i18n/lb.json
includes/api/i18n/mk.json
includes/api/i18n/pl.json
includes/api/i18n/ta.json
includes/api/i18n/zh-hans.json
includes/api/i18n/zh-hant.json
includes/changetags/ChangeTags.php
includes/content/ContentHandler.php
includes/context/IContextSource.php
includes/db/DBConnRef.php [new file with mode: 0644]
includes/db/Database.php
includes/db/DatabaseMysqlBase.php
includes/db/DatabaseSqlite.php
includes/db/LoadBalancer.php
includes/db/LoadMonitor.php
includes/debug/logger/LegacyLogger.php
includes/diff/TableDiffFormatter.php
includes/exception/BadTitleError.php
includes/filerepo/LocalRepo.php
includes/filerepo/file/LocalFile.php
includes/htmlform/HTMLForm.php
includes/htmlform/VFormHTMLForm.php
includes/installer/i18n/ast.json
includes/installer/i18n/ce.json
includes/installer/i18n/cs.json
includes/installer/i18n/da.json
includes/installer/i18n/en-gb.json
includes/installer/i18n/es.json
includes/installer/i18n/fo.json
includes/installer/i18n/fr.json
includes/installer/i18n/id.json
includes/installer/i18n/ja.json
includes/installer/i18n/nb.json
includes/installer/i18n/nl.json
includes/installer/i18n/tr.json
includes/installer/i18n/vi.json
includes/jobqueue/JobQueueDB.php
includes/jobqueue/JobRunner.php
includes/jobqueue/JobSpecification.php
includes/jobqueue/jobs/ActivityUpdateJob.php [new file with mode: 0644]
includes/jobqueue/jobs/EnqueueJob.php
includes/libs/MultiHttpClient.php
includes/libs/eventrelayer/EventRelayer.php [new file with mode: 0755]
includes/libs/eventrelayer/EventRelayerMCRD.php [new file with mode: 0755]
includes/libs/objectcache/BagOStuff.php
includes/libs/objectcache/ReplicatedBagOStuff.php [new file with mode: 0644]
includes/libs/objectcache/WANObjectCache.php [new file with mode: 0755]
includes/libs/virtualrest/VirtualRESTServiceClient.php
includes/logging/LogEventsList.php
includes/media/DjVu.php
includes/media/FormatMetadata.php
includes/media/SVG.php
includes/objectcache/MemcachedBagOStuff.php
includes/objectcache/ObjectCache.php
includes/objectcache/RedisBagOStuff.php
includes/objectcache/ReplicatedBagOStuff.php [deleted file]
includes/page/Article.php
includes/page/WikiPage.php
includes/parser/ParserCache.php
includes/profiler/ProfileSection.php
includes/profiler/ProfilerSectionOnly.php [changed mode: 0755->0644]
includes/profiler/TransactionProfiler.php
includes/registration/ExtensionProcessor.php
includes/registration/ExtensionRegistry.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderImageModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/search/SearchEngine.php
includes/search/SearchHighlighter.php
includes/site/SiteExporter.php
includes/skins/SkinTemplate.php
includes/specialpage/QueryPage.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialAllMessages.php
includes/specials/SpecialLog.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialSearch.php
includes/specials/SpecialSpecialpages.php
includes/specials/SpecialVersion.php
includes/title/MalformedTitleException.php
includes/title/MediaWikiTitleCodec.php
languages/Names.php
languages/i18n/af.json
languages/i18n/am.json
languages/i18n/an.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/eu.json
languages/i18n/ext.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fo.json
languages/i18n/fr.json
languages/i18n/frp.json
languages/i18n/frr.json
languages/i18n/fur.json
languages/i18n/ga.json
languages/i18n/gan-hans.json
languages/i18n/gan-hant.json
languages/i18n/gd.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/hi.json
languages/i18n/hif-latn.json
languages/i18n/hr.json
languages/i18n/hsb.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/ig.json
languages/i18n/ilo.json
languages/i18n/inh.json
languages/i18n/io.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jv.json
languages/i18n/ka.json
languages/i18n/kab.json
languages/i18n/khw.json
languages/i18n/kk-arab.json
languages/i18n/kk-cyrl.json
languages/i18n/kk-latn.json
languages/i18n/km.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/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/li.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/lv.json
languages/i18n/lzh.json
languages/i18n/mai.json
languages/i18n/mdf.json
languages/i18n/mg.json
languages/i18n/min.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mn.json
languages/i18n/mr.json
languages/i18n/ms.json
languages/i18n/mt.json
languages/i18n/myv.json
languages/i18n/mzn.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/oc.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/qu.json
languages/i18n/rm.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/rue.json
languages/i18n/sa.json
languages/i18n/sah.json
languages/i18n/sc.json
languages/i18n/scn.json
languages/i18n/sco.json
languages/i18n/ses.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/su.json
languages/i18n/sv.json
languages/i18n/sw.json
languages/i18n/szl.json
languages/i18n/ta.json
languages/i18n/te.json
languages/i18n/tg-cyrl.json
languages/i18n/tg-latn.json
languages/i18n/th.json
languages/i18n/tk.json
languages/i18n/tl.json
languages/i18n/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/yi.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]
maintenance/Maintenance.php
maintenance/benchmarks/benchmarkHooks.php
maintenance/convertExtensionToRegistration.php
maintenance/eraseArchivedFile.php
maintenance/generateJsonI18n.php
maintenance/language/checkLanguage.inc
maintenance/language/languages.inc
maintenance/language/zhtable/Makefile.py
maintenance/language/zhtable/toCN.manual
maintenance/language/zhtable/toHK.manual
maintenance/language/zhtable/toTW.manual
maintenance/language/zhtable/toTrad.manual
maintenance/language/zhtable/trad2simp.manual
maintenance/purgeChangedFiles.php
maintenance/refreshLinks.php
maintenance/resources/update-oojs-ui.sh
maintenance/resources/update-oojs.sh
opensearch_desc.php
package.json
resources/Resources.php
resources/lib/jquery/jquery.js
resources/lib/oojs-ui/i18n/fo.json
resources/lib/oojs-ui/i18n/kn.json
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/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-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/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/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/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.view.categoryPage.less
resources/src/mediawiki.api/mediawiki.api.js
resources/src/mediawiki.legacy/wikibits.js
resources/src/mediawiki.less/mediawiki.mixins.less
resources/src/mediawiki.special/mediawiki.special.css
resources/src/mediawiki/mediawiki.js
resources/src/oojs-ui-local.css [new file with mode: 0644]
tests/TestsAutoLoader.php
tests/phpunit/Makefile
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/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/media/FormatMetadataTest.php
tests/phpunit/includes/objectcache/WANObjectCacheTest.php [new file with mode: 0644]
tests/phpunit/install-phpunit.sh [deleted file]
tests/qunit/data/testrunner.js
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.track.test.js
thumb.php

index e74474d..d844be2 100644 (file)
@@ -84,7 +84,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
@@ -376,6 +376,11 @@ 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
@@ -491,8 +496,9 @@ changes to languages because of Bugzilla reports.
     RewriteBase /
     RewriteRule ^(.*)\.php5 $1.php [R=301,L]
 
-* The global importScript and importStylesheet functions, as well as the loadedScripts object,
-  from wikibits.js (deprecated since 1.17) now emit warnings through mw.log.warn when accessed.
+* The global importScriptURI and importStylesheetURI functions, as well as the
+  loadedScripts object, from wikibits.js (deprecated since 1.17) now emit
+  warnings through mw.log.warn when accessed.
 
 
 == Compatibility ==
index 9426635..8a08f02 100644 (file)
@@ -17,12 +17,15 @@ production.
 ==== 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
   tag is meant to be hidden from user interfaces.
 * action=import no longer allows both the namespace= and rootpage= parameters
   to be set. If they are both set, the value of rootpage= will be ignored.
+* prop=revision output in enum mode is now sorted by timestamp rather than
+  revision ID. This usually won't make any difference.
 
 === Action API internal changes in 1.26 ===
 
@@ -32,6 +35,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
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 ddd8254..6c623a3 100644 (file)
@@ -278,7 +278,7 @@ $wgAutoloadLocalClasses = array(
        'CurlHttpRequest' => __DIR__ . '/includes/HttpFunctions.php',
        'DBAccessBase' => __DIR__ . '/includes/dao/DBAccessBase.php',
        'DBAccessError' => __DIR__ . '/includes/db/LBFactory.php',
-       'DBConnRef' => __DIR__ . '/includes/db/LoadBalancer.php',
+       'DBConnRef' => __DIR__ . '/includes/db/DBConnRef.php',
        'DBConnectionError' => __DIR__ . '/includes/db/DatabaseError.php',
        'DBError' => __DIR__ . '/includes/db/DatabaseError.php',
        'DBExpectedError' => __DIR__ . '/includes/db/DatabaseError.php',
@@ -382,6 +382,9 @@ $wgAutoloadLocalClasses = array(
        'EnqueueJob' => __DIR__ . '/includes/jobqueue/jobs/EnqueueJob.php',
        'EraseArchivedFile' => __DIR__ . '/maintenance/eraseArchivedFile.php',
        'ErrorPageError' => __DIR__ . '/includes/exception/ErrorPageError.php',
+       'EventRelayer' => __DIR__ . '/includes/libs/eventrelayer/EventRelayer.php',
+       'EventRelayerMCRD' => __DIR__ . '/includes/libs/eventrelayer/EventRelayerMCRD.php',
+       'EventRelayerNull' => __DIR__ . '/includes/libs/eventrelayer/EventRelayer.php',
        'Exif' => __DIR__ . '/includes/media/Exif.php',
        'ExifBitmapHandler' => __DIR__ . '/includes/media/ExifBitmap.php',
        'ExplodeIterator' => __DIR__ . '/includes/libs/ExplodeIterator.php',
@@ -990,7 +993,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',
@@ -1313,6 +1316,7 @@ $wgAutoloadLocalClasses = array(
        'ViewAction' => __DIR__ . '/includes/actions/ViewAction.php',
        'VirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/VirtualRESTService.php',
        'VirtualRESTServiceClient' => __DIR__ . '/includes/libs/virtualrest/VirtualRESTServiceClient.php',
+       'WANObjectCache' => __DIR__ . '/includes/libs/objectcache/WANObjectCache.php',
        'WaitForSlave' => __DIR__ . '/maintenance/waitForSlave.php',
        'WantedCategoriesPage' => __DIR__ . '/includes/specials/SpecialWantedcategories.php',
        'WantedFilesPage' => __DIR__ . '/includes/specials/SpecialWantedfiles.php',
index 4ea8a4e..6dc72e7 100644 (file)
@@ -20,7 +20,7 @@
                "ext-iconv": "*",
                "leafo/lessphp": "0.5.0",
                "liuggio/statsd-php-client": "1.0.12",
-               "oojs/oojs-ui": "0.10.0",
+               "oojs/oojs-ui": "0.11.1",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/cdb": "1.0.1",
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..6e00363 100644 (file)
@@ -2125,6 +2125,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
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 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 3cfeb8c..51e807c 100644 (file)
@@ -1587,6 +1587,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 +1853,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
@@ -2061,8 +2070,8 @@ $wgCacheDirectory = false;
 
 /**
  * Main cache type. This should be a cache with fast access, but it may have
- * limited space. By default, it is disabled, since the database is not fast
- * enough to make it worthwhile.
+ * limited space. By default, it is disabled, since the stock database cache
+ * is not fast enough to make it worthwhile.
  *
  * The options are:
  *
@@ -2140,6 +2149,52 @@ $wgObjectCaches = array(
        'hash' => array( 'class' => 'HashBagOStuff' ),
 );
 
+/**
+ * Main cache Wide-Area-Network cache type. This should be a cache with fast access,
+ * but it may have limited space. By default, it is disabled, since the basic stock
+ * cache is not fast enough to make it worthwhile. For single data-center setups, this can
+ * simply be pointed to a cache in $wgWANObjectCaches that uses a local $wgObjectCaches
+ * cache with a relayer of type EventRelayerNull.
+ *
+ * The options are:
+ *   - false:            Configure the cache using $wgMainCacheType, without using
+ *                       a relayer (only matters if there are multiple data-centers)
+ *   - CACHE_NONE:       Do not cache
+ *   - (other):          A string may be used which identifies a cache
+ *                       configuration in $wgWANObjectCaches.
+ */
+$wgMainWANCache = false;
+
+/**
+ * Advanced WAN object cache configuration.
+ *
+ * Each WAN cache wraps a registered object cache (for the local cluster)
+ * and it must also be configured to point to a PubSub instance. Subscribers
+ * must be configured to relay purges to the actual cache servers.
+ *
+ * The format is an associative array where the key is a cache identifier, and
+ * the value is an associative array of parameters. The "cacheId" parameter is
+ * a cache identifier from $wgObjectCaches. The "relayerConfig" parameter is an
+ * array used to construct an EventRelayer object. The "pool" parameter is a
+ * string that is used as a PubSub channel prefix.
+ */
+$wgWANObjectCaches = array(
+       CACHE_NONE => array(
+               'class'         => 'WANObjectCache',
+               'cacheId'       => CACHE_NONE,
+               'pool'          => 'mediawiki-main-none',
+               'relayerConfig' => array( 'class' => 'EventRelayerNull' )
+       )
+       /* Example of a simple single data-center cache:
+       'memcached-php' => array(
+               'class'         => 'WANObjectCache',
+               'cacheId'       => 'memcached-php',
+               'pool'          => 'mediawiki-main-memcached',
+               'relayerConfig' => array( 'class' => 'EventRelayerNull' )
+       )
+       */
+);
+
 /**
  * The expiry time for the parser cache, in seconds.
  * The default is 86400 (one day).
@@ -5251,6 +5306,21 @@ $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( 'maxAffected' => 500, 'readQueryTime' => 5, 'writeQueryTime' => 1 ),
+       // Background job runner
+       'JobRunner' => array( 'maxAffected' => 500, 'readQueryTime' => 30, 'writeQueryTime' => 5 ),
+       // Command-line scripts
+       'Maintenance' => array( 'maxAffected' => 1000, 'writeQueryTime' => 5 )
+);
+
 /**
  * Map of string log group names to log destinations.
  *
@@ -6423,6 +6493,7 @@ $wgJobClasses = array(
        'ThumbnailRender' => 'ThumbnailRenderJob',
        'recentChangesUpdate' => 'RecentChangesUpdateJob',
        'refreshLinksPrioritized' => 'RefreshLinksJob', // for cascading protection
+       'activityUpdateJob' => 'ActivityUpdateJob',
        'enqueue' => 'EnqueueJob', // local queue for multi-DC setups
        'null' => 'NullJob'
 );
@@ -6451,6 +6522,21 @@ $wgJobTypesExcludedFromDefaultQueue = array( 'AssembleUploadChunks', 'PublishSta
  */
 $wgJobBackoffThrottling = array();
 
+/**
+ * Make job runners commit changes for slave-lag prone jobs one job at a time.
+ * This is useful if there are many job workers that race on slave lag checks.
+ * If set, jobs taking this many seconds of DB write time have serialized commits.
+ *
+ * Note that affected jobs may have worse lock contention. Also, if they affect
+ * several DBs at once they may have a smaller chance of being atomic due to the
+ * possibility of connection loss while queueing up to commit. Affected jobs may
+ * also fail due to the commit lock acquisition timeout.
+ *
+ * @var float|bool
+ * @since 1.26
+ */
+$wgJobSerialCommitThreshold = false;
+
 /**
  * Map of job types to configuration arrays.
  * This determines which queue class and storage system is used for each job type.
index 0287798..23a8bbb 100644 (file)
@@ -1346,9 +1346,14 @@ function wfReadOnlyReason() {
                }
                // Callers use this method to be aware that data presented to a user
                // may be very stale and thus allowing submissions can be problematic.
-               if ( $wgReadOnly === false && wfGetLB()->getLaggedSlaveMode() ) {
+               try {
+                       if ( $wgReadOnly === false && wfGetLB()->getLaggedSlaveMode() ) {
+                               $wgReadOnly = 'The database has been automatically locked ' .
+                                       'while the slave database servers catch up to the master';
+                       }
+               } catch ( DBConnectionError $e ) {
                        $wgReadOnly = 'The database has been automatically locked ' .
-                               'while the slave database servers catch up to the master';
+                               'until the slave database servers become available';
                }
        }
 
@@ -3750,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 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..8f9f9c6 100644 (file)
@@ -3909,6 +3909,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 596e605..9a91156 100644 (file)
@@ -523,15 +523,25 @@ if ( $wgSecureLogin && substr( $wgServer, 0, 2 ) !== '//' ) {
 
 // Now that GlobalFunctions is loaded, set defaults that depend on it.
 if ( $wgTmpDirectory === false ) {
-       $ps_tmpdir = Profiler::instance()->scopedProfileIn( $fname . '-tempDir' );
        $wgTmpDirectory = wfTempDir();
-       Profiler::instance()->scopedProfileOut( $ps_tmpdir );
 }
 
 // We don't use counters anymore. Left here for extensions still
 // expecting this to exist. Should be removed sometime 1.26 or later.
 $wgDisableCounters = true;
 
+if ( $wgMainWANCache === false ) {
+       // Setup a WAN cache from $wgMainCacheType with no relayer.
+       // Sites using multiple datacenters can configure a relayer.
+       $wgMainWANCache = 'mediawiki-main-default';
+       $wgWANObjectCaches[$wgMainWANCache] = array(
+               'class'         => 'WANObjectCache',
+               'cacheId'       => $wgMainCacheType,
+               'pool'          => 'mediawiki-main-default',
+               'relayerConfig' => array( 'class' => 'EventRelayerNull' )
+       );
+}
+
 Profiler::instance()->scopedProfileOut( $ps_default2 );
 
 $ps_misc = Profiler::instance()->scopedProfileIn( $fname . '-misc1' );
@@ -555,6 +565,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 b0df15f..509fc27 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;
                }
        }
@@ -266,6 +268,32 @@ class Title {
                        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 +315,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 +348,11 @@ class Title {
                }
 
                $t->mDbkeyform = str_replace( ' ', '_', $url );
-               if ( $t->secureAndSplit() ) {
+
+               try {
+                       $t->secureAndSplit();
                        return $t;
-               } else {
+               } catch ( MalformedTitleException $ex ) {
                        return null;
                }
        }
@@ -507,9 +534,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;
                }
        }
@@ -940,7 +969,6 @@ class Title {
        /**
         * Get the page's content model id, see the CONTENT_MODEL_XXX constants.
         *
-        * @throws MWException
         * @param int $flags A bit field; may be Title::GAID_FOR_UPDATE to select for update
         * @return string Content model id
         */
@@ -955,10 +983,6 @@ class Title {
                        $this->mContentModel = ContentHandler::getDefaultModelFor( $this );
                }
 
-               if ( !$this->mContentModel ) {
-                       throw new MWException( 'Failed to determine content model!' );
-               }
-
                return $this->mContentModel;
        }
 
@@ -3310,6 +3334,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() {
@@ -3320,15 +3345,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'] );
@@ -4213,10 +4235,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 c3d4a65..429ae0e 100644 (file)
@@ -2252,8 +2252,6 @@ class User implements IDBAccessObject {
         *   page. Ignored if null or !$val.
         */
        public function setNewtalk( $val, $curRev = null ) {
-               global $wgMemc;
-
                if ( wfReadOnly() ) {
                        return;
                }
@@ -2275,12 +2273,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();
                }
@@ -3455,7 +3447,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 b05c219..ba9f448 100644 (file)
@@ -3000,10 +3000,10 @@ $zh2Hant = array(
 '𫛢' => '鸋',
 '𫛶' => '鶒',
 '𫛸' => '鶗',
-'0出現' => '0出現',
 '0出现' => '0出現',
-'0å\87ºçº¿' => '0å\87ºç·\9a',
+'0å\87ºç\8f¾' => '0å\87ºç\8f¾',
 '0出線' => '0出線',
+'0出线' => '0出線',
 '0只支持' => '0只支持',
 '0只支援' => '0只支援',
 '0周后' => '0周後',
@@ -3219,8 +3219,8 @@ $zh2Hant = array(
 '不吊' => '不弔',
 '不卷' => '不捲',
 '不采' => '不採',
-'不斗膽' => '不斗膽',
 '不斗胆' => '不斗膽',
+'不斗膽' => '不斗膽',
 '不断发' => '不斷發',
 '不每只' => '不每只',
 '不谷' => '不穀',
@@ -3281,16 +3281,15 @@ $zh2Hant = array(
 '丰南' => '丰南',
 '丰姿' => '丰姿',
 '丰容' => '丰容',
-'丰度' => '丰度',
 '丰情' => '丰情',
 '丰标' => '丰標',
-'丰標不凡' => '丰標不凡',
 '丰标不凡' => '丰標不凡',
+'丰標不凡' => '丰標不凡',
 '丰神' => '丰神',
 '丰茸' => '丰茸',
 '丰采' => '丰采',
-'丰韻' => '丰韻',
 '丰韵' => '丰韻',
+'丰韻' => '丰韻',
 '丹棱' => '丹稜',
 '主仆' => '主僕',
 '主干' => '主幹',
@@ -3328,12 +3327,10 @@ $zh2Hant = array(
 '九扎' => '九紮',
 '九只' => '九隻',
 '九余' => '九餘',
-'干上' => '乾上',
 '干干' => '乾乾',
 '干干净净' => '乾乾淨淨',
-'干了' => '乾了',
 '干井' => '乾井',
-'干个' => '乾個',
+'干个够' => '乾個夠',
 '干儿' => '乾兒',
 '干冰' => '乾冰',
 '干冷' => '乾冷',
@@ -3368,7 +3365,6 @@ $zh2Hant = array(
 '干巴' => '乾巴',
 '干式' => '乾式',
 '干弟' => '乾弟',
-'干得' => '乾得',
 '干急' => '乾急',
 '干性' => '乾性',
 '干打雷' => '乾打雷',
@@ -3500,8 +3496,8 @@ $zh2Hant = array(
 '二缶钟惑' => '二缶鐘惑',
 '二老板' => '二老板',
 '二虎相斗' => '二虎相鬥',
-'二里頭' => '二里頭',
 '二里头' => '二里頭',
+'二里頭' => '二里頭',
 '二只' => '二隻',
 '二余' => '二餘',
 '于丹' => '于丹',
@@ -3510,13 +3506,13 @@ $zh2Hant = array(
 '于仲文' => '于仲文',
 '于佳卉' => '于佳卉',
 '于来山' => '于來山',
-'于偉國' => '于偉國',
 '于伟国' => '于偉國',
+'于偉國' => '于偉國',
 '于光新' => '于光新',
 '于光远' => '于光遠',
 '于光遠' => '于光遠',
-'于克-蘭多縣' => '于克-蘭多縣',
 '于克-兰多县' => '于克-蘭多縣',
+'于克-蘭多縣' => '于克-蘭多縣',
 '于克勒' => '于克勒',
 '于再清' => '于再清',
 '于冕' => '于冕',
@@ -3527,18 +3523,18 @@ $zh2Hant = array(
 '于化虎' => '于化虎',
 '于占元' => '于占元',
 '于友泽' => '于友澤',
-'于台煙' => '于台煙',
 '于台烟' => '于台煙',
+'于台煙' => '于台煙',
 '于右任' => '于右任',
 '于吉' => '于吉',
 '于和伟' => '于和偉',
 '于品海' => '于品海',
 '于国桢' => '于國楨',
 '于國楨' => '于國楨',
-'于國治' => '于國治',
 '于国治' => '于國治',
-'äº\8eå \85' => 'äº\8eå \85',
+'äº\8eå\9c\8bæ²»' => 'äº\8eå\9c\8bæ²»',
 '于坚' => '于堅',
+'于堅' => '于堅',
 '于大宝' => '于大寶',
 '于大寶' => '于大寶',
 '于天仁' => '于天仁',
@@ -3550,8 +3546,8 @@ $zh2Hant = array(
 '于娟' => '于娟',
 '于子千' => '于子千',
 '于孔兼' => '于孔兼',
-'于學忠' => '于學忠',
 '于学忠' => '于學忠',
+'于學忠' => '于學忠',
 '于家堡' => '于家堡',
 '于寘' => '于寘',
 '于宝轩' => '于寶軒',
@@ -3561,10 +3557,10 @@ $zh2Hant = array(
 '于小惠' => '于小惠',
 '于少保' => '于少保',
 '于山' => '于山',
-'于山國' => '于山國',
 '于山国' => '于山國',
-'äº\8e帥' => 'äº\8e帥',
+'äº\8eå±±å\9c\8b' => 'äº\8eå±±å\9c\8b',
 '于帅' => '于帥',
+'于帥' => '于帥',
 '于幼军' => '于幼軍',
 '于幼軍' => '于幼軍',
 '于康震' => '于康震',
@@ -3580,16 +3576,16 @@ $zh2Hant = array(
 '于思' => '于思',
 '于慎行' => '于慎行',
 '于慧' => '于慧',
-'于成龙' => '于成龍',
 '于成龍' => '于成龍',
+'于成龙' => '于成龍',
 '于振' => '于振',
 '于振武' => '于振武',
 '于敏' => '于敏',
 '于敏中' => '于敏中',
 '于斌' => '于斌',
 '于斯塔德' => '于斯塔德',
-'于斯纳尔斯贝里' => '于斯納爾斯貝里',
 '于斯納爾斯貝里' => '于斯納爾斯貝里',
+'于斯纳尔斯贝里' => '于斯納爾斯貝里',
 '于斯达尔' => '于斯達爾',
 '于斯達爾' => '于斯達爾',
 '于明涛' => '于明濤',
@@ -3597,8 +3593,8 @@ $zh2Hant = array(
 '于是之' => '于是之',
 '于晨楠' => '于晨楠',
 '于晴' => '于晴',
-'于會泳' => '于會泳',
 '于会泳' => '于會泳',
+'于會泳' => '于會泳',
 '于根伟' => '于根偉',
 '于根偉' => '于根偉',
 '于格' => '于格',
@@ -3606,8 +3602,8 @@ $zh2Hant = array(
 '于楓' => '于楓',
 '于荣光' => '于榮光',
 '于樂' => '于樂',
-'于樹潔' => '于樹潔',
 '于树洁' => '于樹潔',
+'于樹潔' => '于樹潔',
 '于欣' => '于欣',
 '于欣源' => '于欣源',
 '于正昇' => '于正昇',
@@ -3618,25 +3614,25 @@ $zh2Hant = array(
 '于江震' => '于江震',
 '于波' => '于波',
 '于洋' => '于洋',
-'于洪區' => '于洪區',
 '于洪区' => '于洪區',
+'于洪區' => '于洪區',
 '于浩威' => '于浩威',
 '于海' => '于海',
 '于海洋' => '于海洋',
 '于湘兰' => '于湘蘭',
 '于湘蘭' => '于湘蘭',
-'于漢超' => '于漢超',
 '于汉超' => '于漢超',
+'于漢超' => '于漢超',
 '于澄' => '于澄',
-'于澤爾' => '于澤爾',
 '于泽尔' => '于澤爾',
-'äº\8e濤' => 'äº\8e濤',
+'äº\8e澤ç\88¾' => 'äº\8e澤ç\88¾',
 '于涛' => '于濤',
+'于濤' => '于濤',
 '于熙珍' => '于熙珍',
 '于尔岑' => '于爾岑',
 '于爾岑' => '于爾岑',
-'于爾根' => '于爾根',
 '于尔根' => '于爾根',
+'于爾根' => '于爾根',
 '于尔里克' => '于爾里克',
 '于爾里克' => '于爾里克',
 '于特森' => '于特森',
@@ -3656,8 +3652,8 @@ $zh2Hant = array(
 '于謙' => '于謙',
 '于谦' => '于謙',
 '于谨' => '于謹',
-'于贝尔' => '于貝爾',
 '于貝爾' => '于貝爾',
+'于贝尔' => '于貝爾',
 '于贈' => '于贈',
 '于赠' => '于贈',
 '于越' => '于越',
@@ -3666,8 +3662,8 @@ $zh2Hant = array(
 '于道泉' => '于道泉',
 '于远伟' => '于遠偉',
 '于遠偉' => '于遠偉',
-'于都縣' => '于都縣',
 '于都县' => '于都縣',
+'于都縣' => '于都縣',
 '于里察' => '于里察',
 '于阗' => '于闐',
 '于双戈' => '于雙戈',
@@ -3680,10 +3676,10 @@ $zh2Hant = array(
 '于靖' => '于靖',
 '于非暗' => '于非闇',
 '于非闇' => '于非闇',
-'于韦斯屈莱' => '于韋斯屈萊',
 '于韋斯屈萊' => '于韋斯屈萊',
-'äº\8eé£\8eæ\94¿' => 'äº\8e風æ\94¿',
+'äº\8eé\9f¦æ\96¯å±\88è\8e±' => 'äº\8eé\9f\8bæ\96¯å±\88è\90\8a',
 '于風政' => '于風政',
+'于风政' => '于風政',
 '于飞' => '于飛',
 '于飛島' => '于飛島',
 '于飞岛' => '于飛島',
@@ -3692,16 +3688,16 @@ $zh2Hant = array(
 '于魁智' => '于魁智',
 '于凤桐' => '于鳳桐',
 '于鳳桐' => '于鳳桐',
-'于鳳至' => '于鳳至',
 '于凤至' => '于鳳至',
-'äº\8eé»\98奧' => 'äº\8eé»\98奧',
+'äº\8eé³³è\87³' => 'äº\8eé³³è\87³',
 '于默奥' => '于默奧',
+'于默奧' => '于默奧',
 '云乎' => '云乎',
 '云云' => '云云',
 '云何' => '云何',
 '云敞' => '云敞',
-'云為' => '云為',
 '云为' => '云為',
+'云為' => '云為',
 '云然' => '云然',
 '云尔' => '云爾',
 '云:' => '云:',
@@ -3802,8 +3798,8 @@ $zh2Hant = array(
 '作准' => '作準',
 '你夸' => '你誇',
 '佣金' => '佣金',
-'佣钿' => '佣鈿',
 '佣鈿' => '佣鈿',
+'佣钿' => '佣鈿',
 '佣錢' => '佣錢',
 '佣钱' => '佣錢',
 '佳肴' => '佳肴',
@@ -3875,8 +3871,8 @@ $zh2Hant = array(
 '佣仆' => '傭僕',
 '傲游' => '傲遊',
 '傲霜斗雪' => '傲霜鬥雪',
-'傳位于四太子' => '傳位于四太子',
 '传位于四太子' => '傳位于四太子',
+'傳位于四太子' => '傳位于四太子',
 '传于' => '傳於',
 '债累累' => '債纍纍',
 '傻里傻气' => '傻裡傻氣',
@@ -4039,8 +4035,8 @@ $zh2Hant = array(
 '冷面相' => '冷面相',
 '冷面' => '冷麵',
 '准三后' => '准三后',
-'准保護' => '准保護',
 '准保护' => '准保護',
+'准保護' => '准保護',
 '准保释' => '准保釋',
 '准保釋' => '准保釋',
 '凌蒙初' => '凌濛初',
@@ -4081,13 +4077,13 @@ $zh2Hant = array(
 '划不來' => '划不來',
 '划不来' => '划不來',
 '划了一会' => '划了一會',
-'划来划去' => '划來划去',
 '划來划去' => '划來划去',
+'划来划去' => '划來划去',
 '划具' => '划具',
 '划到岸' => '划到岸',
 '划到江心' => '划到江心',
-'划動' => '划動',
 '划动' => '划動',
+'划動' => '划動',
 '划去' => '划去',
 '划子' => '划子',
 '划得來' => '划得來',
@@ -4105,8 +4101,8 @@ $zh2Hant = array(
 '划行' => '划行',
 '划走' => '划走',
 '划起' => '划起',
-'划進' => '划進',
 '划进' => '划進',
+'划進' => '划進',
 '划过' => '划過',
 '划過' => '划過',
 '划龍舟' => '划龍舟',
@@ -4208,8 +4204,8 @@ $zh2Hant = array(
 '十出' => '十齣',
 '千个' => '千個',
 '千只可' => '千只可',
-'千只夠' => '千只夠',
 '千只够' => '千只夠',
+'千只夠' => '千只夠',
 '千只怕' => '千只怕',
 '千只能' => '千只能',
 '千只足够' => '千只足夠',
@@ -4249,7 +4245,6 @@ $zh2Hant = array(
 '印鉴' => '印鑑',
 '危于' => '危於',
 '卵与石斗' => '卵與石鬥',
-'卷发' => '卷髮',
 '卷须' => '卷鬚',
 '厂部' => '厂部',
 '厝薪于火' => '厝薪於火',
@@ -4283,8 +4278,8 @@ $zh2Hant = array(
 '古書云' => '古書云',
 '古柯咸' => '古柯鹹',
 '古朴' => '古樸',
-'古语云' => '古語云',
 '古語云' => '古語云',
+'古语云' => '古語云',
 '古迹' => '古蹟',
 '古钟' => '古鐘',
 '古钟表' => '古鐘錶',
@@ -4303,8 +4298,8 @@ $zh2Hant = array(
 '只身上有' => '只身上有',
 '只身上沒' => '只身上沒',
 '只身上没' => '只身上沒',
-'只身上無' => '只身上無',
 '只身上无' => '只身上無',
+'只身上無' => '只身上無',
 '只身上的' => '只身上的',
 '只身世' => '只身世',
 '只身份' => '只身份',
@@ -4313,19 +4308,19 @@ $zh2Hant = array(
 '只身子' => '只身子',
 '只身形' => '只身形',
 '只身影' => '只身影',
-'只身後' => '只身後',
 '只身后' => '只身後',
+'只身後' => '只身後',
 '只身心' => '只身心',
 '只身旁' => '只身旁',
 '只身材' => '只身材',
 '只身段' => '只身段',
-'只身為' => '只身為',
 '只身为' => '只身為',
+'只身為' => '只身為',
 '只身边' => '只身邊',
 '只身邊' => '只身邊',
 '只身首' => '只身首',
-'只身體' => '只身體',
 '只身体' => '只身體',
+'只身體' => '只身體',
 '只身高' => '只身高',
 '只采声' => '只采聲',
 '叮叮当当' => '叮叮噹噹',
@@ -4391,10 +4386,10 @@ $zh2Hant = array(
 '后丰' => '后豐',
 '后豐' => '后豐',
 '后里' => '后里',
-'后髮FK型星' => '后髮FK型星',
 '后发FK型星' => '后髮FK型星',
-'后髮座' => '后髮座',
+'后髮FK型星' => '后髮FK型星',
 '后发座' => '后髮座',
+'后髮座' => '后髮座',
 '后发星系团' => '后髮星系團',
 '后髮星系團' => '后髮星系團',
 '吐哺捉发' => '吐哺捉髮',
@@ -4411,8 +4406,8 @@ $zh2Hant = array(
 '吹发' => '吹髮',
 '吹胡' => '吹鬍',
 '吾为之范我驰驱' => '吾爲之範我馳驅',
-'呂后' => '呂后',
 '吕后' => '呂后',
+'呂后' => '呂后',
 '呆呆兽' => '呆呆獸',
 '呆致致' => '呆緻緻',
 '呆里呆气' => '呆裡呆氣',
@@ -4472,8 +4467,8 @@ $zh2Hant = array(
 '单单于' => '單單於',
 '单干' => '單幹',
 '单打独斗' => '單打獨鬥',
-'喲喂' => '喲喂',
 '哟喂' => '喲喂',
+'喲喂' => '喲喂',
 '嘉谷' => '嘉穀',
 '嘉肴' => '嘉肴',
 '嘴里' => '嘴裡',
@@ -4516,7 +4511,6 @@ $zh2Hant = array(
 '回旋加速' => '回旋加速',
 '回历' => '回曆',
 '回历史' => '回歷史',
-'回荡' => '回蕩',
 '回复中' => '回覆中',
 '回复你' => '回覆你',
 '回复帖子' => '回覆帖子',
@@ -4606,8 +4600,8 @@ $zh2Hant = array(
 '壸范' => '壼範',
 '壽天里' => '壽天里',
 '寿面' => '壽麵',
-'夏于喬' => '夏于喬',
 '夏于乔' => '夏于喬',
+'夏于喬' => '夏于喬',
 '夏历' => '夏曆',
 '夏历史' => '夏歷史',
 '夏游' => '夏遊',
@@ -4884,8 +4878,8 @@ $zh2Hant = array(
 '尸弃佛' => '尸棄佛',
 '尸祝' => '尸祝',
 '尸禄' => '尸祿',
-'尸羅精舍' => '尸羅精舍',
 '尸罗精舍' => '尸羅精舍',
+'尸羅精舍' => '尸羅精舍',
 '尸臣' => '尸臣',
 '尸谏' => '尸諫',
 '尸魂界' => '尸魂界',
@@ -4988,14 +4982,16 @@ $zh2Hant = array(
 '幸免于难' => '幸免於難',
 '幸于' => '幸於',
 '幸运胡' => '幸運鬍',
+'干上' => '幹上',
 '干下去' => '幹下去',
 '干不了' => '幹不了',
 '干不成' => '幹不成',
+'干了' => '幹了',
 '干事' => '幹事',
 '干些' => '幹些',
 '干人' => '幹人',
 '干什么' => '幹什麼',
-'干个够' => '幹個夠',
+'干个' => '幹個',
 '干劲' => '幹勁',
 '干吏' => '幹吏',
 '干员' => '幹員',
@@ -5005,7 +5001,7 @@ $zh2Hant = array(
 '干坏事' => '幹壞事',
 '干完' => '幹完',
 '干家' => '幹家',
-'干得了' => '幹得了',
+'干得' => '幹得',
 '干性油' => '幹性油',
 '干才' => '幹才',
 '干掉' => '幹掉',
@@ -5053,8 +5049,8 @@ $zh2Hant = array(
 '府干政' => '府干政',
 '府干涉' => '府干涉',
 '府干犯' => '府干犯',
-'府干预' => '府干預',
 '府干預' => '府干預',
+'府干预' => '府干預',
 '府干' => '府幹',
 '座钟' => '座鐘',
 '廍子里' => '廍子里',
@@ -5114,11 +5110,11 @@ $zh2Hant = array(
 '弘历史' => '弘歷史',
 '弱于' => '弱於',
 '弱水三千只取一瓢' => '弱水三千只取一瓢',
-'張三丰' => '張三丰',
 '张三丰' => '張三丰',
+'張三丰' => '張三丰',
 '张勋' => '張勳',
-'張杰' => '張杰',
 '张杰' => '張杰',
+'張杰' => '張杰',
 '张乐于张徐' => '張樂于張徐',
 '强制作用' => '強制作用',
 '强奸' => '強姦',
@@ -5397,8 +5393,8 @@ $zh2Hant = array(
 '意大利面' => '意大利麵',
 '爱困' => '愛睏',
 '感于' => '感於',
-'愿樸' => '愿樸',
 '愿朴' => '愿樸',
+'愿樸' => '愿樸',
 '愿而恭' => '愿而恭',
 '栗冽' => '慄冽',
 '栗栗' => '慄慄',
@@ -5460,21 +5456,21 @@ $zh2Hant = array(
 '扁拟谷盗虫' => '扁擬穀盜蟲',
 '手塚治虫' => '手塚治虫',
 '手折' => '手摺',
-'手表態' => '手表態',
 '手表态' => '手表態',
+'手表態' => '手表態',
 '手表明' => '手表明',
-'手表決' => '手表決',
 '手表决' => '手表決',
+'手表決' => '手表決',
 '手表演' => '手表演',
 '手表现' => '手表現',
 '手表現' => '手表現',
 '手表示' => '手表示',
-'手表達' => '手表達',
 '手表达' => '手表達',
+'手表達' => '手表達',
 '手表露' => '手表露',
 '手表面' => '手表面',
-'手里' => '手裏',
 '手里剑' => '手裏劍',
+'手里' => '手裡',
 '手表' => '手錶',
 '手链' => '手鍊',
 '手松' => '手鬆',
@@ -5504,7 +5500,6 @@ $zh2Hant = array(
 '打斗' => '打鬥',
 '托管国' => '托管國',
 '扛大梁' => '扛大樑',
-'捍御' => '扞禦',
 '扯面' => '扯麵',
 '扶余' => '扶餘',
 '批准的' => '批准的',
@@ -5512,7 +5507,6 @@ $zh2Hant = array(
 '批复' => '批覆',
 '批注' => '批註',
 '批斗' => '批鬥',
-'扼肮' => '扼肮',
 '承制' => '承製',
 '抑制作用' => '抑制作用',
 '抑制剂' => '抑制劑',
@@ -5521,8 +5515,8 @@ $zh2Hant = array(
 '抓斗' => '抓鬥',
 '抗御' => '抗禦',
 '折向往' => '折向往',
-'折子戲' => '折子戲',
 '折子戏' => '折子戲',
+'折子戲' => '折子戲',
 '折戟沈河' => '折戟沈河',
 '折冲' => '折衝',
 '披榛采兰' => '披榛採蘭',
@@ -5588,13 +5582,13 @@ $zh2Hant = array(
 '挑大梁' => '挑大樑',
 '挑斗' => '挑鬥',
 '振荡' => '振蕩',
-'捆扎' => '捆紮',
 '捉奸徒' => '捉奸徒',
 '捉奸细' => '捉奸細',
 '捉奸贼' => '捉奸賊',
 '捉奸党' => '捉奸黨',
 '捉奸' => '捉姦',
 '捉发' => '捉髮',
+'捍御' => '捍禦',
 '捏面人' => '捏麵人',
 '舍不得' => '捨不得',
 '舍入' => '捨入',
@@ -5642,7 +5636,6 @@ $zh2Hant = array(
 '卷纸' => '捲紙',
 '卷缩' => '捲縮',
 '卷舌' => '捲舌',
-'卷铺盖' => '捲舖蓋',
 '卷烟' => '捲菸',
 '卷叶蛾' => '捲葉蛾',
 '卷袖' => '捲袖',
@@ -5650,9 +5643,10 @@ $zh2Hant = array(
 '卷起' => '捲起',
 '卷轴' => '捲軸',
 '卷逃' => '捲逃',
+'卷铺盖' => '捲鋪蓋',
 '卷云' => '捲雲',
 '卷风' => '捲風',
-'卷发器' => '捲髮器',
+'卷发' => '捲髮',
 '捵面' => '捵麵',
 '捶炼' => '捶鍊',
 '扫荡' => '掃蕩',
@@ -5762,6 +5756,7 @@ $zh2Hant = array(
 '损于' => '損於',
 '搏斗' => '搏鬥',
 '捣鬼吊白' => '搗鬼弔白',
+'扼肮' => '搤肮',
 '扼肮拊背' => '搤肮拊背',
 '搬斗' => '搬鬥',
 '搭干铺' => '搭乾鋪',
@@ -5793,8 +5788,8 @@ $zh2Hant = array(
 '拨谷' => '撥穀',
 '撩斗' => '撩鬥',
 '播于' => '播於',
-'扑咚' => '撲鼕',
 '扑冬' => '撲鼕',
+'扑咚' => '撲鼕',
 '扑咚咚' => '撲鼕鼕',
 '擀面' => '擀麵',
 '击扑' => '擊扑',
@@ -5920,9 +5915,9 @@ $zh2Hant = array(
 '于国' => '於國',
 '于坏' => '於坏',
 '于垂' => '於垂',
-'於夫羅' => '於夫羅',
-'於夫罗' => '於夫羅',
 '于夫罗' => '於夫羅',
+'於夫罗' => '於夫羅',
+'於夫羅' => '於夫羅',
 '于她' => '於她',
 '于好' => '於好',
 '于始' => '於始',
@@ -5947,8 +5942,8 @@ $zh2Hant = array(
 '于是' => '於是',
 '于是乎' => '於是乎',
 '于时' => '於時',
-'於梨華' => '於梨華',
 '于梨华' => '於梨華',
+'於梨華' => '於梨華',
 '于乐' => '於樂',
 '于此' => '於此',
 '於氏' => '於氏',
@@ -6083,11 +6078,11 @@ $zh2Hant = array(
 '有回复' => '有回覆',
 '有够赞' => '有夠讚',
 '有征伐' => '有征伐',
-'有征戰' => '有征戰',
 '有征战' => '有征戰',
+'有征戰' => '有征戰',
 '有征服' => '有征服',
-'有征讨' => '有征討',
 '有征討' => '有征討',
+'有征讨' => '有征討',
 '有征' => '有徵',
 '有恒街' => '有恒街',
 '有栖川' => '有栖川',
@@ -6101,8 +6096,8 @@ $zh2Hant = array(
 '望后石' => '望后石',
 '朝乾夕惕' => '朝乾夕惕',
 '朝钟' => '朝鐘',
-'蒙胧' => '朦朧',
 '朦胧' => '朦朧',
+'蒙胧' => '朦朧',
 '木偶戏扎' => '木偶戲紮',
 '木材干馏' => '木材乾餾',
 '木梁' => '木樑',
@@ -6138,10 +6133,10 @@ $zh2Hant = array(
 '杠轂' => '杠轂',
 '杯干' => '杯乾',
 '杯面' => '杯麵',
-'杰倫' => '杰倫',
 '杰伦' => '杰倫',
-'æ\9d°å¨\81ç\88¾' => 'æ\9d°å¨\81ç\88¾',
+'æ\9d°å\80«' => 'æ\9d°å\80«',
 '杰威尔' => '杰威爾',
+'杰威爾' => '杰威爾',
 '东周钟' => '東周鐘',
 '东岳' => '東嶽',
 '東湖里' => '東湖里',
@@ -6263,8 +6258,8 @@ $zh2Hant = array(
 '树干' => '樹榦',
 '树梁' => '樹樑',
 '桥梁' => '橋樑',
-'機械系' => '機械系',
 '机械系' => '機械系',
+'機械系' => '機械系',
 '机械表' => '機械錶',
 '机械钟' => '機械鐘',
 '机械钟表' => '機械鐘錶',
@@ -6343,8 +6338,8 @@ $zh2Hant = array(
 '求知欲' => '求知慾',
 '求签' => '求籤',
 '求道于盲' => '求道於盲',
-'污蔑' => '汙衊',
 '池里' => '池裡',
+'污蔑' => '污衊',
 '汤卤' => '汤滷',
 '汲于' => '汲於',
 '决斗' => '決鬥',
@@ -6395,8 +6390,8 @@ $zh2Hant = array(
 '洒濯' => '洒濯',
 '洒然' => '洒然',
 '洒脱' => '洒脫',
-'洗练' => '洗鍊',
 '洗炼' => '洗鍊',
+'洗练' => '洗鍊',
 '洗发' => '洗髮',
 '洛钟东应' => '洛鐘東應',
 '洞里' => '洞裡',
@@ -6420,18 +6415,18 @@ $zh2Hant = array(
 '浮夸' => '浮誇',
 '浮松' => '浮鬆',
 '海干' => '海乾',
-'海淀山後' => '海淀山後',
 '海淀山后' => '海淀山後',
+'海淀山後' => '海淀山後',
 '浸卤' => '浸滷',
 '涂善妮' => '涂善妮',
 '涂坤' => '涂坤',
-'涂壯勳' => '涂壯勳',
 '涂壮勋' => '涂壯勳',
+'涂壯勳' => '涂壯勳',
 '涂天相' => '涂天相',
 '涂姓' => '涂姓',
 '涂序瑄' => '涂序瑄',
-'涂敏恒' => '涂敏恆',
 '涂敏恆' => '涂敏恆',
+'涂敏恒' => '涂敏恆',
 '涂泽民' => '涂澤民',
 '涂澤民' => '涂澤民',
 '涂绍煃' => '涂紹煃',
@@ -6440,10 +6435,10 @@ $zh2Hant = array(
 '涂谨申' => '涂謹申',
 '涂逢年' => '涂逢年',
 '涂醒哲' => '涂醒哲',
-'涂长望' => '涂長望',
 '涂長望' => '涂長望',
-'æ¶\82鸿é\92¦' => 'æ¶\82鴻欽',
+'æ¶\82é\95¿æ\9c\9b' => 'æ¶\82é\95·æ\9c\9b',
 '涂鴻欽' => '涂鴻欽',
+'涂鸿钦' => '涂鴻欽',
 '涳蒙' => '涳濛',
 '涸干' => '涸乾',
 '凉席' => '涼蓆',
@@ -7088,8 +7083,8 @@ $zh2Hant = array(
 '笑里藏刀' => '笑裡藏刀',
 '第一出现' => '第一出現',
 '第一出現' => '第一出現',
-'第一出线' => '第一出線',
 '第一出線' => '第一出線',
+'第一出线' => '第一出線',
 '第一出' => '第一齣',
 '第七出' => '第七齣',
 '第三出局' => '第三出局',
@@ -7111,15 +7106,15 @@ $zh2Hant = array(
 '筑前' => '筑前',
 '筑北' => '筑北',
 '筑州' => '筑州',
-'筑後' => '筑後',
 '筑后' => '筑後',
+'筑後' => '筑後',
 '筑波' => '筑波',
 '筑紫' => '筑紫',
 '筑肥' => '筑肥',
 '筑西' => '筑西',
 '筑邦' => '筑邦',
-'筑陽' => '筑陽',
 '筑阳' => '筑陽',
+'筑陽' => '筑陽',
 '答复' => '答覆',
 '筵几' => '筵几',
 '个中原因' => '箇中原因',
@@ -7245,6 +7240,7 @@ $zh2Hant = array(
 '丝发' => '絲髮',
 '绑扎' => '綁紮',
 '绥棱' => '綏稜',
+'捆扎' => '綑紮',
 '經有云' => '經有云',
 '经有云' => '經有云',
 '综合征' => '綜合徵',
@@ -7527,8 +7523,8 @@ $zh2Hant = array(
 '范文藤' => '范文藤',
 '范文虎' => '范文虎',
 '范登堡' => '范登堡',
-'范贤惠' => '范賢惠',
 '范賢惠' => '范賢惠',
+'范贤惠' => '范賢惠',
 '茅于軾' => '茅于軾',
 '茅于轼' => '茅于軾',
 '茶几' => '茶几',
@@ -7551,8 +7547,8 @@ $zh2Hant = array(
 '菠棱菜' => '菠稜菜',
 '菠萝干' => '菠蘿乾',
 '华严钟' => '華嚴鐘',
-'萬一只' => '萬一只',
 '万一只' => '萬一只',
+'萬一只' => '萬一只',
 '万个' => '萬個',
 '万周后' => '萬周後',
 '万天后' => '萬天後',
@@ -7634,8 +7630,8 @@ $zh2Hant = array(
 '熏风' => '薰風',
 '熏香' => '薰香',
 '苧悴' => '薴悴',
-'薴烯' => '薴烯',
 '苧烯' => '薴烯',
+'薴烯' => '薴烯',
 '借以' => '藉以',
 '借助' => '藉助',
 '借口' => '藉口',
@@ -7765,13 +7761,13 @@ $zh2Hant = array(
 '夹裙' => '袷裙',
 '裁并' => '裁併',
 '裁制' => '裁製',
-'里勾外连' => '裏勾外連',
 '里水镇' => '裏水鎮',
 '里海' => '裏海',
 '里运河' => '裏運河',
 '补于' => '補於',
 '补注' => '補註',
 '装折' => '裝摺',
+'里勾外连' => '裡勾外連',
 '里屋' => '裡屋',
 '里层' => '裡層',
 '里带' => '裡帶',
@@ -8023,8 +8019,8 @@ $zh2Hant = array(
 '诱奸' => '誘姦',
 '语云' => '語云',
 '语汇' => '語彙',
-'语有云' => '語有云',
 '語有云' => '語有云',
+'语有云' => '語有云',
 '语法里' => '語法裡',
 '语里' => '語裡',
 '诚征' => '誠徵',
@@ -8044,14 +8040,14 @@ $zh2Hant = array(
 '咨询' => '諮詢',
 '诸余' => '諸餘',
 '谋干' => '謀幹',
-'谢杰' => '謝杰',
 '謝杰' => '謝杰',
+'谢杰' => '謝杰',
 '谢华后' => '謝華后',
 '谬采虚声' => '謬採虛聲',
 '谬赞' => '謬讚',
 '謷丑' => '謷醜',
-'谨愿' => '謹愿',
 '謹愿' => '謹愿',
+'谨愿' => '謹愿',
 '谨于心' => '謹於心',
 '哗噪' => '譁噪',
 '哗嚣' => '譁囂',
@@ -8089,6 +8085,7 @@ $zh2Hant = array(
 '豆干' => '豆乾',
 '豆腐干' => '豆腐乾',
 '竖起脊梁' => '豎起脊梁',
+'丰度' => '豐度',
 '丰滨' => '豐濱',
 '丰滨乡' => '豐濱鄉',
 '丰台' => '豐臺',
@@ -8102,15 +8099,15 @@ $zh2Hant = array(
 '买凶' => '買兇',
 '买断发' => '買斷發',
 '贻范' => '貽範',
-'贾后' => '賈后',
 '賈后' => '賈后',
+'贾后' => '賈后',
 '赈饥' => '賑饑',
 '赏赞' => '賞讚',
 '賢后' => '賢后',
 '贤后' => '賢后',
 '卖断发' => '賣斷發',
-'赋范' => '賦范',
 '賦范' => '賦范',
+'赋范' => '賦范',
 '质数里' => '質數裡',
 '质朴' => '質樸',
 '赌后' => '賭后',
@@ -8202,6 +8199,7 @@ $zh2Hant = array(
 '回翔' => '迴翔',
 '回肠' => '迴腸',
 '回肠荡气' => '迴腸盪氣',
+'回荡' => '迴蕩',
 '回诵' => '迴誦',
 '回路' => '迴路',
 '回转' => '迴轉',
@@ -8371,10 +8369,10 @@ $zh2Hant = array(
 '部落发' => '部落發',
 '郭后' => '郭后',
 '都于' => '都於',
-'鄉愿' => '鄉愿',
 '乡愿' => '鄉愿',
-'é\84­å\87±äº\91' => 'é\84­å\87±äº\91',
+'é\84\89æ\84¿' => 'é\84\89æ\84¿',
 '郑凯云' => '鄭凱云',
+'鄭凱云' => '鄭凱云',
 '配制饲料' => '配制飼料',
 '配图里' => '配圖裡',
 '配水干管' => '配水幹管',
@@ -8447,10 +8445,10 @@ $zh2Hant = array(
 '采石之役' => '采石之役',
 '采石之战' => '采石之戰',
 '采石之戰' => '采石之戰',
-'采石磯' => '采石磯',
 '采石矶' => '采石磯',
-'é\87\8c海大學' => 'é\87\8c海大學',
+'é\87\87ç\9f³ç£¯' => 'é\87\87ç\9f³ç£¯',
 '里海大学' => '里海大學',
+'里海大學' => '里海大學',
 '里海崖' => '里海崖',
 '里海茨' => '里海茨',
 '里铺' => '里舖',
@@ -8616,13 +8614,13 @@ $zh2Hant = array(
 '鉴察' => '鑑察',
 '鉴往知来' => '鑑往知來',
 '鉴戒' => '鑑戒',
-'鉴于' => '鑑於',
 '鉴湖' => '鑑湖',
 '鉴藏' => '鑑藏',
 '鉴谅' => '鑑諒',
 '鉴证' => '鑑證',
 '鉴识' => '鑑識',
 '鉴赏' => '鑑賞',
+'鉴于' => '鑒於',
 '长几' => '長几',
 '长于' => '長於',
 '长历' => '長曆',
@@ -8793,8 +8791,8 @@ $zh2Hant = array(
 '面包起' => '面包起',
 '面包办' => '面包辦',
 '面店铺' => '面店鋪',
-'面條目' => '面條目',
 '面条目' => '面條目',
+'面條目' => '面條目',
 '面粉碎' => '面粉碎',
 '面粉红' => '面粉紅',
 '面食饭' => '面食飯',
@@ -8813,8 +8811,8 @@ $zh2Hant = array(
 '頁面' => '頁面',
 '页面' => '頁面',
 '顶凶' => '頂兇',
-'顶多' => '頂多',
 '頂多' => '頂多',
+'顶多' => '頂多',
 '项链' => '項鍊',
 '顺于' => '順於',
 '顺钟向' => '順鐘向',
@@ -8834,8 +8832,8 @@ $zh2Hant = array(
 '额我略历史' => '額我略歷史',
 '颜范' => '顏範',
 '颠干倒坤' => '顛乾倒坤',
-'颠颠仆仆' => '顛顛仆仆',
 '顛顛仆仆' => '顛顛仆仆',
+'颠颠仆仆' => '顛顛仆仆',
 '颤栗' => '顫慄',
 '显示表明' => '顯示表明',
 '显示表格' => '顯示表格',
@@ -9017,8 +9015,8 @@ $zh2Hant = array(
 '马干' => '馬乾',
 '馬占山' => '馬占山',
 '马斯垂克期' => '馬斯垂克期',
-'马格里布' => '馬格里布',
 '馬格里布' => '馬格里布',
+'马格里布' => '馬格里布',
 '驻扎' => '駐紮',
 '骀荡' => '駘蕩',
 '腾格里' => '騰格里',
@@ -9198,13 +9196,13 @@ $zh2Hant = array(
 '斗而铸锥' => '鬥而鑄錐',
 '斗脚' => '鬥腳',
 '斗舰' => '鬥艦',
-'斗艳' => '鬥艷',
 '斗茶' => '鬥茶',
 '斗草' => '鬥草',
 '斗叶儿' => '鬥葉兒',
 '斗叶子' => '鬥葉子',
 '斗蟋蟀' => '鬥蟋蟀',
 '斗话' => '鬥話',
+'斗艳' => '鬥豔',
 '斗起' => '鬥起',
 '斗趣' => '鬥趣',
 '斗闲气' => '鬥閒氣',
@@ -9272,8 +9270,8 @@ $zh2Hant = array(
 '魔表' => '魔錶',
 '鱼干' => '魚乾',
 '鱼松' => '魚鬆',
-'鲜于枢' => '鮮于樞',
 '鮮于樞' => '鮮于樞',
+'鲜于枢' => '鮮于樞',
 '鲸须' => '鯨鬚',
 '鳥栖' => '鳥栖',
 '鸟栖市' => '鳥栖市',
@@ -9367,8 +9365,8 @@ $zh2Hant = array(
 '黄岩区' => '黃巖區',
 '黄岩县' => '黃巖縣',
 '黄历' => '黃曆',
-'黄杰' => '黃杰',
 '黃杰' => '黃杰',
+'黄杰' => '黃杰',
 '黄历史' => '黃歷史',
 '黃詩杰' => '黃詩杰',
 '黄诗杰' => '黃詩杰',
@@ -9379,8 +9377,8 @@ $zh2Hant = array(
 '黄发' => '黃髮',
 '黄曲毒素' => '黃麴毒素',
 '黎克特制' => '黎克特制',
-'黎吉雲' => '黎吉雲',
 '黎吉云' => '黎吉雲',
+'黎吉雲' => '黎吉雲',
 '黑奴吁天录' => '黑奴籲天錄',
 '黑干将' => '黑幹將',
 '黑长发' => '黑長髮',
@@ -9399,8 +9397,8 @@ $zh2Hant = array(
 '霉黧' => '黴黧',
 '鼓里' => '鼓裡',
 '鼓噪' => '鼓譟',
-'咚咚鼓' => '鼕鼕鼓',
 '冬冬鼓' => '鼕鼕鼓',
+'咚咚鼓' => '鼕鼕鼓',
 '鼠曲草' => '鼠麴草',
 '鼻梁儿' => '鼻梁兒',
 '鼻梁' => '鼻樑',
@@ -13245,11 +13243,11 @@ $zh2Hans = array(
 '專著' => '专著',
 '乾一坛' => '乾一坛',
 '乾一壇' => '乾一坛',
-'乾一组' => '乾一组',
 '乾一組' => '乾一组',
+'乾一组' => '乾一组',
 '乾上乾下' => '乾上乾下',
-'乾東' => '乾东',
 '乾东' => '乾东',
+'乾東' => '乾东',
 '乾為天' => '乾为天',
 '乾為陽' => '乾为阳',
 '乾九' => '乾九',
@@ -13264,18 +13262,18 @@ $zh2Hans = array(
 '乾光' => '乾光',
 '乾兴' => '乾兴',
 '乾興' => '乾兴',
-'乾岡' => '乾冈',
 '乾冈' => '乾冈',
-'ä¹¾å\8a\89' => 'ä¹¾å\88\98',
+'乾岡' => 'ä¹¾å\86\88',
 '乾刘' => '乾刘',
-'ä¹¾å\89\9b' => 'ä¹¾å\88\9a',
+'ä¹¾å\8a\89' => 'ä¹¾å\88\98',
 '乾刚' => '乾刚',
-'ä¹¾å\8b\99' => 'ä¹¾å\8a¡',
+'ä¹¾å\89\9b' => 'ä¹¾å\88\9a',
 '乾务' => '乾务',
+'乾務' => '乾务',
 '乾化' => '乾化',
 '乾卦' => '乾卦',
-'乾縣' => '乾县',
 '乾县' => '乾县',
+'乾縣' => '乾县',
 '乾台' => '乾台',
 '乾吉' => '乾吉',
 '乾启' => '乾启',
@@ -13283,16 +13281,16 @@ $zh2Hans = array(
 '乾命' => '乾命',
 '乾和' => '乾和',
 '乾嘉' => '乾嘉',
-'乾圖' => '乾图',
 '乾图' => '乾图',
+'乾圖' => '乾图',
 '乾坤' => '乾坤',
 '乾城' => '乾城',
 '乾基' => '乾基',
 '乾天也' => '乾天也',
 '乾始' => '乾始',
 '乾姓' => '乾姓',
-'乾寧' => '乾宁',
 '乾宁' => '乾宁',
+'乾寧' => '乾宁',
 '乾宅' => '乾宅',
 '乾宇' => '乾宇',
 '乾安' => '乾安',
@@ -13356,36 +13354,36 @@ $zh2Hans = array(
 '乾符' => '乾符',
 '乾策' => '乾策',
 '乾精' => '乾精',
-'乾红' => '乾红',
 '乾紅' => '乾红',
+'乾红' => '乾红',
 '乾綱' => '乾纲',
 '乾纲' => '乾纲',
-'乾纽' => '乾纽',
 '乾紐' => '乾纽',
+'乾纽' => '乾纽',
 '乾絡' => '乾络',
 '乾络' => '乾络',
 '乾統' => '乾统',
 '乾统' => '乾统',
-'乾维' => '乾维',
 '乾維' => '乾维',
+'乾维' => '乾维',
 '乾罗' => '乾罗',
 '乾羅' => '乾罗',
 '乾花' => '乾花',
-'乾蔭' => '乾荫',
 '乾荫' => '乾荫',
+'乾蔭' => '乾荫',
 '乾行' => '乾行',
 '乾衡' => '乾衡',
 '乾西' => '乾西',
 '乾覆' => '乾覆',
 '乾象' => '乾象',
-'乾象歷' => '乾象历',
 '乾象历' => '乾象历',
-'ä¹¾è´\9e' => 'ä¹¾è´\9e',
+'乾象歷' => '乾象å\8e\86',
 '乾貞' => '乾贞',
-'乾贵士' => '乾贵士',
+'ä¹¾è´\9e' => 'ä¹¾è´\9e',
 '乾貴士' => '乾贵士',
-'乾贶' => '乾贶',
+'乾贵士' => '乾贵士',
 '乾貺' => '乾贶',
+'乾贶' => '乾贶',
 '乾車' => '乾车',
 '乾车' => '乾车',
 '乾軸' => '乾轴',
@@ -13395,8 +13393,8 @@ $zh2Hans = array(
 '乾道' => '乾道',
 '乾鉴' => '乾鉴',
 '乾鑒' => '乾鉴',
-'乾钧' => '乾钧',
 '乾鈞' => '乾钧',
+'乾钧' => '乾钧',
 '乾闥' => '乾闼',
 '乾闼' => '乾闼',
 '乾陀' => '乾陀',
@@ -13405,11 +13403,11 @@ $zh2Hans = array(
 '乾音' => '乾音',
 '乾顧' => '乾顾',
 '乾顾' => '乾顾',
-'乾风' => '乾风',
 '乾風' => '乾风',
+'乾风' => '乾风',
 '乾首' => '乾首',
-'乾马' => '乾马',
 '乾馬' => '乾马',
+'乾马' => '乾马',
 '乾鵠' => '乾鹄',
 '乾鹄' => '乾鹄',
 '乾鵲' => '乾鹊',
@@ -13496,8 +13494,8 @@ $zh2Hans = array(
 '復甦' => '复苏',
 '多么' => '多么',
 '大麴' => '大曲',
-'天道為乾' => '天道为乾',
 '天道为乾' => '天道为乾',
+'天道為乾' => '天道为乾',
 '奧區' => '奧区',
 '如瀋' => '如渖',
 '姓么' => '姓幺',
@@ -13511,10 +13509,10 @@ $zh2Hans = array(
 '將軍抽車' => '将军抽車',
 '爾冬陞' => '尔冬升',
 '尼乾陀' => '尼乾陀',
-'跼促' => '局促',
 '侷促' => '局促',
-'跼限' => '局限',
+'跼促' => '局促',
 '侷限' => '局限',
+'跼限' => '局限',
 '山崎闇齋' => '山崎闇斋',
 '岳託' => '岳讬',
 '巨著' => '巨著',
@@ -13528,8 +13526,8 @@ $zh2Hans = array(
 '么鳳' => '幺凤',
 '么半' => '幺半',
 '么半群' => '幺半群',
-'幺厮' => '幺厮',
 '么廝' => '幺厮',
+'幺厮' => '幺厮',
 '么叔' => '幺叔',
 '么女' => '幺女',
 '么媽' => '幺妈',
@@ -13550,13 +13548,13 @@ $zh2Hans = array(
 '么舅' => '幺舅',
 '么蛾子' => '幺蛾子',
 '么謙' => '幺谦',
-'么麽' => '幺麽',
 '么麼' => '幺麽',
+'么麽' => '幺麽',
 '么麽小丑' => '幺麽小丑',
 '慶餘' => '庆馀',
 '康乾' => '康乾',
-'張法乾' => '张法乾',
 '张法乾' => '张法乾',
+'張法乾' => '张法乾',
 '彰明較著' => '彰明较著',
 '待覆' => '待复',
 '後姓' => '後姓',
@@ -13604,23 +13602,23 @@ $zh2Hans = array(
 '觔斗' => '斤斗',
 '新著' => '新著',
 '於世成' => '於世成',
-'於之莹' => '於之莹',
 '於之瑩' => '於之莹',
+'於之莹' => '於之莹',
 '於乎' => '於乎',
 '於乙于同' => '於乙于同',
 '於乙宇同' => '於乙宇同',
 '於于同' => '於于同',
 '於哲' => '於哲',
-'於夫羅' => '於夫罗',
 '於夫罗' => '於夫罗',
+'於夫羅' => '於夫罗',
 '於姓' => '於姓',
 '於宇同' => '於宇同',
 '於崇文' => '於崇文',
 '於志賀' => '於志贺',
 '於志贺' => '於志贺',
 '於戲' => '於戏',
-'於梨華' => '於梨华',
 '於梨华' => '於梨华',
+'於梨華' => '於梨华',
 '於氏' => '於氏',
 '於潜' => '於潜',
 '於潛縣' => '於潜县',
@@ -13676,8 +13674,8 @@ $zh2Hans = array(
 '楈枒' => '楈枒',
 '樊於期' => '樊於期',
 '殘瀋' => '残渖',
-'慇懃' => '殷勤',
 '慇勤' => '殷勤',
+'慇懃' => '殷勤',
 '比較顯著' => '比较显著',
 '毫釐' => '毫厘',
 '氆氌' => '氆氌',
@@ -13702,19 +13700,19 @@ $zh2Hans = array(
 '甚夥' => '甚夥',
 '男为乾' => '男为乾',
 '男為乾' => '男为乾',
-'男性為乾' => '男性为乾',
 '男性为乾' => '男性为乾',
+'男性為乾' => '男性为乾',
 '療效顯著' => '疗效显著',
 '白瀋' => '白渖',
 '皁保' => '皁保',
 '目劄' => '目劄',
 '直昇' => '直升',
 '睹微知著' => '睹微知著',
-'瞭臺' => '瞭台',
 '瞭台' => '瞭台',
+'瞭臺' => '瞭台',
 '瞭望' => '瞭望',
-'矇矓' => '矇眬',
 '矇眬' => '矇眬',
+'矇矓' => '矇眬',
 '石碁' => '石碁',
 '石碁鎮' => '石碁镇',
 '碩託' => '硕讬',
@@ -13741,8 +13739,8 @@ $zh2Hans = array(
 '肉乾乾' => '肉干干',
 '肘手鍊足' => '肘手链足',
 '甦醒' => '苏醒',
-'薴烯' => '苧烯',
 '苧烯' => '苧烯',
+'薴烯' => '苧烯',
 '蘋果' => '苹果',
 '荠苧' => '荠苧',
 '榮陞' => '荣升',
@@ -13789,8 +13787,8 @@ $zh2Hans = array(
 '醉瀋' => '醉渖',
 '醯壶' => '醯壶',
 '醯壺' => '醯壶',
-'醯醬' => '醯酱',
 '醯酱' => '醯酱',
+'醯醬' => '醯酱',
 '醯醋' => '醯醋',
 '醯醢' => '醯醢',
 '醯雞' => '醯鸡',
@@ -13818,10 +13816,10 @@ $zh2Hans = array(
 '阿部正瞭' => '阿部正瞭',
 '陆徵祥' => '陆徵祥',
 '陸徵祥' => '陆徵祥',
-'陳乾生' => '陈乾生',
 '陈乾生' => '陈乾生',
-'陳元扞' => '陈元扞',
+'陳乾生' => '陈乾生',
 '陈元扞' => '陈元扞',
+'陳元扞' => '陈元扞',
 '陈公乾生' => '陈公乾生',
 '陳公乾生' => '陈公乾生',
 '陈遇乾' => '陈遇乾',
@@ -13840,15 +13838,15 @@ $zh2Hans = array(
 '餘慶' => '馀庆',
 '餘瀋' => '馀渖',
 '馬鞌' => '马鞍',
-'高陞' => '高升',
 '高昇' => '高升',
+'高陞' => '高升',
 '鬱姓' => '鬱姓',
 '鬱氏' => '鬱氏',
 '魏徵' => '魏徵',
 '魚乾乾' => '鱼干干',
 '麽氏' => '麽氏',
-'麽麽' => '麽麽',
 '麼麼' => '麽麽',
+'麽麽' => '麽麽',
 '黃麴毒素' => '黄曲毒素',
 '黃潤乾' => '黄润乾',
 '黄润乾' => '黄润乾',
@@ -13880,18 +13878,18 @@ $zh2TW = array(
 '一杆' => '一桿',
 '七杆' => '七桿',
 '三杆' => '三桿',
-'三極管' => '三極體',
 '三极管' => '三極體',
+'三極管' => '三極體',
 '达累斯萨拉姆' => '三蘭港',
 '上落客' => '上下客',
 '落車' => '下車',
-'不来梅' => '不萊梅',
 '不來梅' => '不萊梅',
+'不来梅' => '不萊梅',
 '以太网' => '乙太網',
 '九杆' => '九桿',
 '了結他' => '了結他',
-'二手煙' => '二手菸',
 '二手烟' => '二手菸',
+'二手煙' => '二手菸',
 '二杆' => '二桿',
 '二极管' => '二極體',
 '二極管' => '二極體',
@@ -13915,8 +13913,8 @@ $zh2TW = array(
 '掌上壓' => '伏地挺身',
 '伯明翰' => '伯明罕',
 '服务器' => '伺服器',
-'字节' => '位元組',
 '字節' => '位元組',
+'字节' => '位元組',
 '佛罗伦萨' => '佛羅倫斯',
 '操作系统' => '作業系統',
 '系数' => '係數',
@@ -13924,15 +13922,15 @@ $zh2TW = array(
 '傅里叶' => '傅立葉',
 '光盘' => '光碟',
 '光驱' => '光碟機',
-'克羅地亞' => '克羅埃西亞',
 '克罗地亚' => '克羅埃西亞',
+'克羅地亞' => '克羅埃西亞',
 '克里斯托弗' => '克里斯多福',
 '万维网' => '全球資訊網',
 '八杆' => '八桿',
 '公共交通' => '公共運輸',
 '六杆' => '六桿',
-'嘉芙蓮' => '凱薩琳',
 '凯瑟琳' => '凱薩琳',
+'嘉芙蓮' => '凱薩琳',
 '划着独木舟' => '划著獨木舟',
 '划着竹筏' => '划著竹筏',
 '划着船' => '划著船',
@@ -13947,21 +13945,21 @@ $zh2TW = array(
 '北朝鲜' => '北韓',
 '局域网' => '區域網',
 '十杆' => '十桿',
-'特立尼達和多巴哥' => '千里達托貝哥',
 '特立尼达和托巴哥' => '千里達托貝哥',
+'特立尼達和多巴哥' => '千里達托貝哥',
 '南朝鲜' => '南韓',
 '卡斯特罗' => '卡斯楚',
 '卡塔尔' => '卡達',
 '卡塔爾' => '卡達',
 '铆足' => '卯足',
-'打印機' => '印表機',
 '打印机' => '印表機',
-'厄立特里亞' => '厄利垂亞',
+'打印機' => '印表機',
 '厄利垂亚' => '厄利垂亞',
 '厄立特里亚' => '厄利垂亞',
+'厄立特里亞' => '厄利垂亞',
+'厄瓜多' => '厄瓜多',
 '厄瓜多尔' => '厄瓜多',
 '厄瓜多爾' => '厄瓜多',
-'厄瓜多' => '厄瓜多',
 '源代码' => '原始碼',
 '圆珠笔' => '原子筆',
 '反烟' => '反菸',
@@ -13977,70 +13975,70 @@ $zh2TW = array(
 '斯坦福' => '史丹福',
 '斯皮尔伯格' => '史匹柏',
 '斯特劳斯' => '史特勞斯',
-'斯威士蘭' => '史瓦濟蘭',
 '斯威士兰' => '史瓦濟蘭',
+'斯威士蘭' => '史瓦濟蘭',
 '斯蒂芬' => '史蒂芬',
 '斯大林' => '史達林',
 '結他' => '吉他',
-'乞力马扎罗' => '吉力馬札羅',
 '乞力馬札羅' => '吉力馬札羅',
-'吉布提' => '吉布地',
+'乞力马扎罗' => '吉力馬札羅',
 '吉布堤' => '吉布地',
+'吉布提' => '吉布地',
 '基里巴斯' => '吉里巴斯',
-'圖瓦盧' => '吐瓦魯',
 '图瓦卢' => '吐瓦魯',
-'å\90¸ç\85\99' => 'å\90¸è\8f¸',
+'å\9c\96ç\93¦ç\9b§' => 'å\90\90ç\93¦é­¯',
 '吸烟' => '吸菸',
-'å\91\82å®\8bç\85\99' => 'å\91\82å®\8b菸',
+'å\90¸ç\85\99' => 'å\90¸菸',
 '吕宋烟' => '呂宋菸',
+'呂宋煙' => '呂宋菸',
 '格丁根' => '哥廷根',
 '哥特式' => '哥德式',
-'哥斯達黎加' => '哥斯大黎加',
 '哥斯达黎加' => '哥斯大黎加',
+'哥斯達黎加' => '哥斯大黎加',
 '卡拉奇' => '喀拉蚩',
 '乔治·奥威尔' => '喬治·歐威爾',
-'格魯吉亞' => '喬治亞',
-'佐治亞' => '喬治亞',
 '佐治亚' => '喬治亞',
+'佐治亞' => '喬治亞',
+'格魯吉亞' => '喬治亞',
 '格鲁吉亚' => '喬治亞',
-'單鏡反光機' => '單眼相機',
 '单反相机' => '單眼相機',
+'單鏡反光機' => '單眼相機',
 '嘯咤' => '嘯吒',
 '四杆' => '四桿',
 '图卢兹' => '土魯斯',
 '圖盧茲' => '土魯斯',
 '戛纳' => '坎城',
 '堪培拉' => '坎培拉',
-'坦桑尼亞' => '坦尚尼亞',
 '坦桑尼亚' => '坦尚尼亞',
+'坦桑尼亞' => '坦尚尼亞',
 '端口' => '埠',
 '首席执行官' => '執行長',
 '塞舌尔' => '塞席爾',
 '塞舌爾' => '塞席爾',
-'薩拉熱窩' => '塞拉耶佛',
 '萨拉热窝' => '塞拉耶佛',
+'薩拉熱窩' => '塞拉耶佛',
 '塞尔维亚和黑山' => '塞爾維亞與蒙特內哥羅',
-'塞爾維亞與蒙特內哥羅' => '塞爾維亞與蒙特內哥羅',
 '塞爾維亞和黑山' => '塞爾維亞與蒙特內哥羅',
-'西維爾' => '塞維亞',
+'塞爾維亞與蒙特內哥羅' => '塞爾維亞與蒙特內哥羅',
 '塞维利亚' => '塞維亞',
+'西維爾' => '塞維亞',
 '塞黑' => '塞蒙',
-'英聯邦' => '大英國協',
-'英联邦' => '大英國協',
 '共和联邦' => '大英國協',
+'英联邦' => '大英國協',
+'英聯邦' => '大英國協',
 '太空飛行員' => '太空人',
 '宇航员' => '太空人',
 '穿梭機' => '太空梭',
 '航天飞机' => '太空梭',
 '宇航服' => '太空衣',
 '航天器' => '太空飛行器',
-'尼日利亞' => '奈及利亞',
 '尼日利亚' => '奈及利亞',
+'尼日利亞' => '奈及利亞',
 '忌廉' => '奶油',
 '荷里活' => '好萊塢',
 '威廉姆斯' => '威廉士',
-'威斯特法倫' => '威斯伐倫',
 '威斯特法伦' => '威斯伐倫',
+'威斯特法倫' => '威斯伐倫',
 '威士顿康星' => '威斯康辛',
 '威尔士' => '威爾斯',
 '威爾士' => '威爾斯',
@@ -14048,19 +14046,19 @@ $zh2TW = array(
 '存盘' => '存檔',
 '孟德爾遜' => '孟德爾頌',
 '门德尔松' => '孟德爾頌',
-'安哈爾特' => '安哈特',
 '安哈尔特' => '安哈特',
-'安提瓜和巴布達' => '安地卡及巴布達',
+'安哈爾特' => '安哈特',
 '安提瓜和巴布达' => '安地卡及巴布達',
+'安提瓜和巴布達' => '安地卡及巴布達',
 '洪都拉斯' => '宏都拉斯',
 '密歇根' => '密西根',
 '宽带' => '寬頻',
-'老撾人民民主共和國' => '寮人民民主共和國',
 '老挝人民民主共和国' => '寮人民民主共和國',
-'老撾' => '寮國',
+'老撾人民民主共和國' => '寮人民民主共和國',
 '老挝' => '寮國',
-'老撾語' => '寮語',
+'老撾' => '寮國',
 '老挝语' => '寮語',
+'老撾語' => '寮語',
 '波里活' => '寶萊塢',
 '高峰时段' => '尖峰時段',
 '高峰时间' => '尖峰時間',
@@ -14076,17 +14074,17 @@ $zh2TW = array(
 '发达国家' => '已開發國家',
 '巴塞罗那' => '巴塞隆納',
 '巴塞隆拿' => '巴塞隆納',
-'巴布亞新畿內亞' => '巴布亞紐幾內亞',
 '巴布亚新几内亚' => '巴布亞紐幾內亞',
+'巴布亞新畿內亞' => '巴布亞紐幾內亞',
 '巴士拉' => '巴斯拉',
 '巴巴多斯' => '巴貝多',
 '佈' => '布',
 '布基納法索' => '布吉納法索',
 '布基纳法索' => '布吉納法索',
-'布殊' => '布希',
 '布什' => '布希',
-'å\8b\83è\98­ç\99»å ¡' => 'å¸\83è\98­ç\99»å ¡',
+'å¸\83æ®\8a' => 'å¸\83å¸\8c',
 '勃兰登堡' => '布蘭登堡',
+'勃蘭登堡' => '布蘭登堡',
 '布里斯托尔' => '布里斯托',
 '布隆方丹' => '布隆泉',
 '希拉里' => '希拉蕊',
@@ -14098,49 +14096,49 @@ $zh2TW = array(
 '干着急' => '干著急',
 '干着' => '幹著',
 '畿內亞' => '幾內亞',
-'幾內亞比紹' => '幾內亞比索',
 '几内亚比绍' => '幾內亞比索',
+'幾內亞比紹' => '幾內亞比索',
 '比利牛斯' => '庇里牛斯',
 '库尔德人' => '庫德人',
 '库尔德族' => '庫德族',
 '康涅狄格' => '康乃狄克',
 '约翰斯顿岛' => '強斯頓環礁',
 '汇编' => '彙編',
-'形而上學' => '形上學',
 '形而上学' => '形上學',
-'å¾\97å\85\8bè\96©æ\96¯' => 'å¾·å\85\8bè\96©æ\96¯',
+'å½¢è\80\8cä¸\8aå­¸' => 'å½¢ä¸\8aå­¸',
 '得克萨斯' => '德克薩斯',
-'å¾·ç´¯æ\96¯é¡¿' => 'å¾·å\8b\92æ\96¯ç\99»',
+'å¾\97å\85\8bè\96©æ\96¯' => 'å¾·å\85\8bè\96©æ\96¯',
 '德累斯頓' => '德勒斯登',
+'德累斯顿' => '德勒斯登',
 '德里达' => '德希達',
 '特拉华' => '德拉瓦',
 '特拉華' => '德拉瓦',
-'闪存' => '快閃記憶體',
 '快闪存储器' => '快閃記憶體',
+'闪存' => '快閃記憶體',
 '想象' => '想像',
 '愛德文' => '愛德溫',
 '艾滋' => '愛滋',
 '艾奧瓦' => '愛荷華',
 '爱德华州' => '愛達荷州',
 '应用程序' => '應用程式',
-'戈爾巴喬夫' => '戈巴契夫',
 '戈尔巴乔夫' => '戈巴契夫',
-'æ\88\92ç\85\99' => 'æ\88\92è\8f¸',
+'æ\88\88ç\88¾å·´å\96¬å¤«' => 'æ\88\88å·´å¥\91夫',
 '戒烟' => '戒菸',
+'戒煙' => '戒菸',
 '戴克里先' => '戴克里先',
 '抽烟' => '抽菸',
 '抽煙' => '抽菸',
 '拉普兰' => '拉布蘭',
 '拒烟' => '拒菸',
 '拒煙' => '拒菸',
-'捲煙' => '捲菸',
 '卷烟' => '捲菸',
+'捲煙' => '捲菸',
 '積架' => '捷豹',
 '控件' => '控制項',
 '推杆' => '推桿',
 '第比利斯' => '提比里西',
-'揮杆' => '揮桿',
 '挥杆' => '揮桿',
+'揮杆' => '揮桿',
 '搜索引擎' => '搜尋引擎',
 '摩根士丹利' => '摩根史坦利',
 '台球' => '撞球',
@@ -14149,14 +14147,14 @@ $zh2TW = array(
 '數碼技術' => '數位技術',
 '数码相机' => '數位相機',
 '數碼相機' => '數位相機',
-'數碼訊號' => '數位訊號',
 '数字信号' => '數位訊號',
+'數碼訊號' => '數位訊號',
 '数字电视' => '數位電視',
 '數碼電視' => '數位電視',
 '調制解調器' => '數據機',
 '调制解调器' => '數據機',
-'斯洛文尼亞' => '斯洛維尼亞',
 '斯洛文尼亚' => '斯洛維尼亞',
+'斯洛文尼亞' => '斯洛維尼亞',
 '新罕布什尔' => '新罕布夏',
 '施罗德' => '施洛德',
 '旱烟' => '旱菸',
@@ -14166,28 +14164,28 @@ $zh2TW = array(
 '智能卡' => '智慧卡',
 '智能手机' => '智慧型手機',
 '智能手機' => '智慧型手機',
-'智能電話' => '智慧型電話',
 '智能电话' => '智慧型電話',
+'智能電話' => '智慧型電話',
 '知識產權' => '智慧財產權',
 '知识产权' => '智慧財產權',
-'马恩岛' => '曼島',
 '萌島' => '曼島',
+'马恩岛' => '曼島',
 '木杆' => '木桿',
 '列奥纳多' => '李奧納多',
-'杜塞爾多夫' => '杜塞道夫',
 '杜塞尔多夫' => '杜塞道夫',
+'杜塞爾多夫' => '杜塞道夫',
 '迪拜' => '杜拜',
-'亚细安' => '東協',
 '东盟' => '東協',
+'亚细安' => '東協',
 '东南亚国家联盟' => '東南亞國協',
-'柏林牆' => '柏林圍牆',
 '柏林墙' => '柏林圍牆',
+'柏林牆' => '柏林圍牆',
 '乍得' => '查德',
 '查韦斯' => '查維茲',
-'克林顿' => '柯林頓',
 '克林頓' => '柯林頓',
-'撒切尔' => '柴契爾',
+'克林顿' => '柯林頓',
 '戴卓爾' => '柴契爾',
+'撒切尔' => '柴契爾',
 '格林納達' => '格瑞那達',
 '格林纳达' => '格瑞那達',
 '乒乓' => '桌球',
@@ -14204,8 +14202,8 @@ $zh2TW = array(
 '枪支' => '槍枝',
 '标准杆' => '標準桿',
 '標準杆' => '標準桿',
-'毛里裘斯' => '模里西斯',
 '毛里求斯' => '模里西斯',
+'毛里裘斯' => '模里西斯',
 '机器人' => '機器人',
 '機械人' => '機器人',
 '概率' => '機率',
@@ -14217,31 +14215,31 @@ $zh2TW = array(
 '正在叱咤' => '正在叱咤',
 '文莱' => '汶萊',
 '沙律' => '沙拉',
-'沙特阿拉伯' => '沙烏地阿拉伯',
 '沙地阿拉伯' => '沙烏地阿拉伯',
+'沙特阿拉伯' => '沙烏地阿拉伯',
 '法属圭亚那' => '法屬蓋亞那',
 '波斯尼亚' => '波士尼亞',
 '波斯尼亞' => '波士尼亞',
 '波斯尼亚和黑塞哥维那' => '波士尼亞赫塞哥維納',
 '波斯尼亞黑塞哥維那' => '波士尼亞赫塞哥維納',
-'博茨瓦纳' => '波札那',
 '博茨瓦納' => '波札那',
+'博茨瓦纳' => '波札那',
 '波黑' => '波赫',
 '洋烟' => '洋菸',
 '洋煙' => '洋菸',
 '帕特里克' => '派屈克',
 '海洛英' => '海洛因',
-'侯赛因' => '海珊',
 '侯賽因' => '海珊',
+'侯赛因' => '海珊',
 '鼠标' => '滑鼠',
 '汉诺威' => '漢諾瓦',
 '漢诺威' => '漢諾瓦',
 '烤烟' => '烤菸',
 '烤煙' => '烤菸',
-'無煙日' => '無菸日',
 '无烟日' => '無菸日',
-'無煙環境' => '無菸環境',
+'無煙日' => '無菸日',
 '无烟环境' => '無菸環境',
+'無煙環境' => '無菸環境',
 '烟熏' => '煙燻',
 '首席运营官' => '營運長',
 '熏烤' => '燻烤',
@@ -14249,13 +14247,13 @@ $zh2TW = array(
 '熏黑' => '燻黑',
 '版权信息' => '版權資訊',
 '疯牛症' => '狂牛症',
-'铁托' => '狄托',
 '鐵托' => '狄托',
+'铁托' => '狄托',
 '塞拉利昂' => '獅子山',
 '独联体' => '獨立國協',
 '独立国家联合体' => '獨立國家國協',
-'波利尼西亞' => '玻里尼西亞',
 '波利尼西亚' => '玻里尼西亞',
+'波利尼西亞' => '玻里尼西亞',
 '本傑明' => '班傑明',
 '本杰明' => '班傑明',
 '球杆' => '球桿',
@@ -14263,10 +14261,10 @@ $zh2TW = array(
 '卢塞恩' => '琉森',
 '危地馬拉' => '瓜地馬拉',
 '危地马拉' => '瓜地馬拉',
-'華倫西亞' => '瓦倫西亞',
 '巴伦西亚' => '瓦倫西亞',
-'岡比亞' => '甘比亞',
+'華倫西亞' => '瓦倫西亞',
 '冈比亚' => '甘比亞',
+'岡比亞' => '甘比亞',
 '肯尼迪' => '甘迺迪',
 '留尼汪' => '留尼旺',
 '毕加索' => '畢卡索',
@@ -14274,8 +14272,8 @@ $zh2TW = array(
 '徵狀' => '症狀',
 '勃朗宁' => '白朗寧',
 '百慕大' => '百慕達',
-'盧旺達' => '盧安達',
 '卢旺达' => '盧安達',
+'盧旺達' => '盧安達',
 '睾' => '睪',
 '知识产权局' => '知識產權局',
 '知識產權局' => '知識產權署',
@@ -14288,8 +14286,8 @@ $zh2TW = array(
 '盘片' => '碟片',
 '磁盘' => '磁碟',
 '磁道' => '磁軌',
-'禁煙' => '禁菸',
 '禁烟' => '禁菸',
+'禁煙' => '禁菸',
 '福尔马林' => '福馬林',
 '福爾馬林' => '福馬林',
 '私烟' => '私菸',
@@ -14299,21 +14297,21 @@ $zh2TW = array(
 '空气质量' => '空氣品質',
 '空氣質素' => '空氣品質',
 '突尼斯' => '突尼西亞',
-'蹦极跳' => '笨豬跳',
 '绑紧跳' => '笨豬跳',
+'蹦极跳' => '笨豬跳',
 '短信' => '簡訊',
 '纽黑文' => '紐哈芬',
-'新奧爾良' => '紐奧良',
 '新奥尔良' => '紐奧良',
+'新奧爾良' => '紐奧良',
 '新几内亚' => '紐幾內亞',
-'新西蘭' => '紐西蘭',
 '新西兰' => '紐西蘭',
-'纸烟' => '紙菸',
+'新西蘭' => '紐西蘭',
 '紙煙' => '紙菸',
-'ç´¢è´\8aå°¼è¾\9b' => 'ç´¢å¿\8då°¼è¾\9b',
+'纸ç\83\9f' => 'ç´\99è\8f¸',
 '索尔仁尼琴' => '索忍尼辛',
-'所羅門群島' => '索羅門群島',
+'索贊尼辛' => '索忍尼辛',
 '所罗门群岛' => '索羅門群島',
+'所羅門群島' => '索羅門群島',
 '索馬里' => '索馬利亞',
 '索马里' => '索馬利亞',
 '索馬里蘭' => '索馬利蘭',
@@ -14323,27 +14321,27 @@ $zh2TW = array(
 '弗吉尼亚' => '維吉尼亞',
 '佛得角' => '維德角',
 '维特根斯坦' => '維根斯坦',
-'互联网络' => '網際網路',
-'因特网' => '網際網路',
 '互联网' => '網際網路',
+'互联网络' => '網際網路',
 '互聯網' => '網際網路',
+'因特网' => '網際網路',
 '系着' => '繫著',
 '卢瓦尔' => '羅亞爾',
 '盧瓦爾' => '羅亞爾',
 '卢浮宫' => '羅浮宮',
 '樂行童軍' => '羅浮童軍',
 '意大利' => '義大利',
-'昂山素季' => '翁山蘇姬',
 '昂山素姬' => '翁山蘇姬',
-'聖吉斯納域斯' => '聖克里斯多福及尼維斯',
+'昂山素季' => '翁山蘇姬',
 '圣基茨和尼维斯' => '聖克里斯多福及尼維斯',
-'聖文森特和格林納丁斯' => '聖文森及格瑞那丁',
+'聖吉斯納域斯' => '聖克里斯多福及尼維斯',
 '圣文森特和格林纳丁斯' => '聖文森及格瑞那丁',
+'聖文森特和格林納丁斯' => '聖文森及格瑞那丁',
 '圣赫勒拿' => '聖赫倫那',
-'聖盧西亞' => '聖露西亞',
 '圣卢西亚' => '聖露西亞',
-'聖馬力諾' => '聖馬利諾',
+'聖盧西亞' => '聖露西亞',
 '圣马力诺' => '聖馬利諾',
+'聖馬力諾' => '聖馬利諾',
 '肯尼亚' => '肯亞',
 '氨基酸' => '胺基酸',
 '卧' => '臥',
@@ -14372,37 +14370,37 @@ $zh2TW = array(
 '味美思' => '苦艾酒',
 '毛里塔尼亚' => '茅利塔尼亞',
 '毛里塔尼亞' => '茅利塔尼亞',
-'霍爾木茲' => '荷姆茲',
 '霍尔木兹' => '荷姆茲',
+'霍爾木茲' => '荷姆茲',
 '荷李活道' => '荷李活道',
 '莫桑比克' => '莫三比克',
-'華里沙' => '華勒沙',
 '瓦文萨' => '華勒沙',
+'華里沙' => '華勒沙',
 '瓦格纳' => '華格納',
 '烟具' => '菸具',
 '煙具' => '菸具',
-'煙品' => '菸品',
 '烟品' => '菸品',
-'ç\85\99å\98´' => 'è\8f¸å\98´',
+'ç\85\99å\93\81' => 'è\8f¸å\93\81',
 '烟嘴' => '菸嘴',
-'煙捲' => '菸捲',
+'煙嘴' => '菸嘴',
 '烟卷' => '菸捲',
-'ç\85\99æ\96\97' => 'è\8f¸æ\96\97',
+'ç\85\99æ\8d²' => 'è\8f¸æ\8d²',
 '烟斗' => '菸斗',
-'ç\85\99æ°\91' => 'è\8f¸æ°\91',
+'ç\85\99æ\96\97' => 'è\8f¸æ\96\97',
 '烟民' => '菸民',
+'煙民' => '菸民',
 '烟灰' => '菸灰',
 '煙灰' => '菸灰',
 '烟瘾' => '菸癮',
 '煙癮' => '菸癮',
 '烟丝' => '菸絲',
 '煙絲' => '菸絲',
-'煙草' => '菸草',
 '烟草' => '菸草',
+'煙草' => '菸草',
 '烟叶' => '菸葉',
 '煙葉' => '菸葉',
-'煙蒂' => '菸蒂',
 '烟蒂' => '菸蒂',
+'煙蒂' => '菸蒂',
 '烟袋' => '菸袋',
 '煙袋' => '菸袋',
 '烟农' => '菸農',
@@ -14413,11 +14411,11 @@ $zh2TW = array(
 '煙頭' => '菸頭',
 '烟鬼' => '菸鬼',
 '煙鬼' => '菸鬼',
-'煙鹼' => '菸鹼',
 '烟碱' => '菸鹼',
+'煙鹼' => '菸鹼',
 '万历朝鲜战争' => '萬曆朝鮮戰爭',
-'瓦努阿圖' => '萬那杜',
 '瓦努阿图' => '萬那杜',
+'瓦努阿圖' => '萬那杜',
 '叶利钦' => '葉爾欽',
 '葉利欽' => '葉爾欽',
 '埃里温' => '葉里溫',
@@ -14431,9 +14429,9 @@ $zh2TW = array(
 '格莱美奖' => '葛萊美獎',
 '黑山共和国' => '蒙特內哥羅共和國',
 '黑山共和國' => '蒙特內哥羅共和國',
+'滿地可' => '蒙特婁',
 '蒙特利尔' => '蒙特婁',
 '蒙特利爾' => '蒙特婁',
-'滿地可' => '蒙特婁',
 '普密蓬' => '蒲美蓬',
 '布隆迪' => '蒲隆地',
 '圭亚那' => '蓋亞那',
@@ -14453,20 +14451,20 @@ $zh2TW = array(
 '荧光' => '螢光',
 '荧屏' => '螢屏',
 '屏幕' => '螢幕',
-'移动网络' => '行動網路',
 '流動網絡' => '行動網路',
+'移动网络' => '行動網路',
 '流動電話' => '行動電話',
 '移动电话' => '行動電話',
 '冲着' => '衝著',
 '埃塞俄比亚' => '衣索比亞',
 '埃塞俄比亞' => '衣索比亞',
 '克隆人' => '複製人',
-'國際象棋' => '西洋棋',
-'国际象棋' => '西洋棋',
 '囯际象棋' => '西洋棋',
+'国际象棋' => '西洋棋',
+'國際象棋' => '西洋棋',
 '赫梯' => '西臺',
-'解像度' => '解析度',
 '分辨率' => '解析度',
+'解像度' => '解析度',
 '译码' => '解碼',
 '出租车' => '計程車',
 '约翰逊' => '詹森',
@@ -14474,8 +14472,8 @@ $zh2TW = array(
 '瑙魯' => '諾魯',
 '瑙鲁' => '諾魯',
 '科特迪瓦' => '象牙海岸',
-'贝尔格莱德' => '貝爾格勒',
 '貝爾格萊德' => '貝爾格勒',
+'贝尔格莱德' => '貝爾格勒',
 '伯利兹' => '貝里斯',
 '伯利茲' => '貝里斯',
 '首席财务官' => '財務長',
@@ -14485,10 +14483,10 @@ $zh2TW = array(
 '信息论' => '資訊理論',
 '乔布斯' => '賈伯斯',
 '宾西法尼亚' => '賓夕法尼亞',
-'利比里亞' => '賴比瑞亞',
 '利比里亚' => '賴比瑞亞',
-'萊索托' => '賴索托',
+'利比里亞' => '賴比瑞亞',
 '莱索托' => '賴索托',
+'萊索托' => '賴索托',
 '塞浦路斯' => '賽普勒斯',
 '碧咸' => '贝克漢',
 '赫丘勒·波洛' => '赫丘勒·白羅',
@@ -14526,8 +14524,8 @@ $zh2TW = array(
 '健力士世界纪录' => '金氏世界紀錄',
 '吉尼斯世界纪录' => '金氏世界紀錄',
 '钚' => '鈽',
-'钩' => '鉤',
 '鈎' => '鉤',
+'钩' => '鉤',
 '锎' => '鉲',
 '锫' => '鉳',
 '镅' => '鋂',
@@ -14546,30 +14544,30 @@ $zh2TW = array(
 '阿拉伯联合酋长国' => '阿拉伯聯合大公國',
 '阿拉伯聯合酋長國' => '阿拉伯聯合大公國',
 '亚拉巴马' => '阿拉巴馬',
-'阿聯酋' => '阿聯',
 '阿联酋' => '阿聯',
+'阿聯酋' => '阿聯',
 '罗纳德·里根' => '隆納·雷根',
 '私隱' => '隱私',
 '耶加達' => '雅加達',
-'雅爾塔' => '雅爾達',
 '雅尔塔' => '雅爾達',
+'雅爾塔' => '雅爾達',
 '雅穆苏克雷' => '雅穆索戈',
 '雅穆蘇克雷' => '雅穆索戈',
 '悉尼' => '雪梨',
-'雪茄煙' => '雪茄菸',
 '雪茄烟' => '雪茄菸',
+'雪茄煙' => '雪茄菸',
 '莱特湾' => '雷伊泰灣',
 '萊特灣' => '雷伊泰灣',
 '激光' => '雷射',
 '雷诺阿' => '雷諾瓦',
-'電子煙' => '電子菸',
 '电子烟' => '電子菸',
-'晶體管' => '電晶體',
+'電子煙' => '電子菸',
 '晶体管' => '電晶體',
+'晶體管' => '電晶體',
 '电杆' => '電桿',
 '电线杆' => '電線桿',
-'计算机程序' => '電腦程式',
 '电脑程序' => '電腦程式',
+'计算机程序' => '電腦程式',
 '荷尔斯泰因' => '霍爾斯坦',
 '荷爾斯泰因' => '霍爾斯坦',
 '朝鲜战争' => '韓戰',
@@ -14577,10 +14575,10 @@ $zh2TW = array(
 '缺省' => '預設',
 '导弹' => '飛彈',
 '糊口' => '餬口',
-'香煙' => '香菸',
 '香烟' => '香菸',
-'马é\87\8cå\85±å\92\8cå\9b½' => '馬å\88©å\85±å\92\8cå\9c\8b',
+'é¦\99ç\85\99' => 'é¦\99è\8f¸',
 '馬里共和國' => '馬利共和國',
+'马里共和国' => '馬利共和國',
 '马拉维' => '馬拉威',
 '馬斯特里赫特' => '馬斯垂克',
 '马斯特里赫特' => '馬斯垂克',
@@ -14592,13 +14590,13 @@ $zh2TW = array(
 '斗着' => '鬥著',
 '魯賓斯·巴里切羅' => '魯本·巴瑞切羅',
 '咪高峰' => '麥克風',
-'麦克尔' => '麥可',
 '迈克尔' => '麥可',
-'é\82\81å\87±è¼ª' => '麥æ\8b¿è¼ª',
+'麦å\85\8bå°\94' => '麥å\8f¯',
 '迈凯轮' => '麥拿輪',
+'邁凱輪' => '麥拿輪',
 '马萨诸塞' => '麻薩諸塞',
-'狄安娜' => '黛安娜',
 '戴安娜' => '黛安娜',
+'狄安娜' => '黛安娜',
 '点烟' => '點菸',
 '點煙' => '點菸',
 '霉素' => '黴素',
@@ -14623,8 +14621,8 @@ $zh2HK = array(
 '下著稱' => '下著稱',
 '下著者' => '下著者',
 '下著述' => '下著述',
-'下著錄' => '下著錄',
 '下著录' => '下著錄',
+'下著錄' => '下著錄',
 '不占' => '不佔',
 '不萊梅' => '不來梅',
 '不著痕跡' => '不着痕跡',
@@ -14648,8 +14646,8 @@ $zh2HK = array(
 '葉門' => '也門',
 '事里' => '事裏',
 '二極體' => '二極管',
-'網際網路' => '互聯網',
 '因特网' => '互聯網',
+'網際網路' => '互聯網',
 '井里' => '井裏',
 '亮著' => '亮着',
 '亮著作' => '亮著作',
@@ -14702,31 +14700,31 @@ $zh2HK = array(
 '布於' => '佈於',
 '布施' => '佈施',
 '布景' => '佈景',
-'布滿' => '佈滿',
 '布满' => '佈滿',
+'布滿' => '佈滿',
 '布置' => '佈置',
 '布設' => '佈設',
 '布设' => '佈設',
 '布警' => '佈警',
 '布道' => '佈道',
 '布防' => '佈防',
-'布陣' => '佈陣',
 '布阵' => '佈陣',
+'布陣' => '佈陣',
 '布雷、' => '佈雷、',
 '布雷。' => '佈雷。',
 '布雷封鎖' => '佈雷封鎖',
 '布雷封锁' => '佈雷封鎖',
 '布雷的' => '佈雷的',
 '布雷艇' => '佈雷艇',
-'布雷艦' => '佈雷艦',
 '布雷舰' => '佈雷艦',
+'布雷艦' => '佈雷艦',
 '布雷速度' => '佈雷速度',
 '布雷,' => '佈雷,',
 '布雷;' => '佈雷;',
-'布點' => '佈點',
 '布点' => '佈點',
-'å­\97è\8a\82' => 'ä½\8då\85\83çµ\84',
+'å¸\83é»\9e' => 'ä½\88é»\9e',
 '字節' => '位元組',
+'字节' => '位元組',
 '低著' => '低着',
 '低著作' => '低著作',
 '低著名' => '低著名',
@@ -14783,8 +14781,8 @@ $zh2HK = array(
 '占一' => '佔一',
 '占七' => '佔七',
 '占三' => '佔三',
-'占上风' => '佔上風',
 '占上風' => '佔上風',
+'占上风' => '佔上風',
 '占下' => '佔下',
 '占下風' => '佔下風',
 '占下风' => '佔下風',
@@ -14804,14 +14802,14 @@ $zh2HK = array(
 '占占' => '佔佔',
 '占便宜' => '佔便宜',
 '占俄' => '佔俄',
-'占個' => '佔個',
 '占个' => '佔個',
+'占個' => '佔個',
 '占个位' => '佔個位',
 '占個位' => '佔個位',
 '占亿' => '佔億',
 '占億' => '佔億',
-'占優' => '佔優',
 '占优' => '佔優',
+'占優' => '佔優',
 '占先' => '佔先',
 '占光' => '佔光',
 '占全' => '佔全',
@@ -14834,8 +14832,8 @@ $zh2HK = array(
 '占台' => '佔台',
 '占囁' => '佔囁',
 '占四' => '佔四',
-'占國' => '佔國',
 '占国' => '佔國',
+'占國' => '佔國',
 '占在' => '佔在',
 '占地' => '佔地',
 '占场' => '佔場',
@@ -14860,13 +14858,13 @@ $zh2HK = array(
 '占德' => '佔德',
 '占所有' => '佔所有',
 '占掉' => '佔掉',
-'占據' => '佔據',
 '占据' => '佔據',
+'占據' => '佔據',
 '占整' => '佔整',
 '占新' => '佔新',
 '占有' => '佔有',
-'占東' => '佔東',
 '占东' => '佔東',
+'占東' => '佔東',
 '占查' => '佔查',
 '占次' => '佔次',
 '占比' => '佔比',
@@ -14881,16 +14879,16 @@ $zh2HK = array(
 '占毕' => '佔畢',
 '占畢' => '佔畢',
 '占百' => '佔百',
-'占盡' => '佔盡',
 '占尽' => '佔盡',
+'占盡' => '佔盡',
 '占着' => '佔着',
 '占著' => '佔着',
 '占網' => '佔網',
 '占网' => '佔網',
 '占線' => '佔線',
 '占线' => '佔線',
-'占總' => '佔總',
 '占总' => '佔總',
+'占總' => '佔總',
 '占缺' => '佔缺',
 '占美' => '佔美',
 '占耕' => '佔耕',
@@ -14898,29 +14896,29 @@ $zh2HK = array(
 '占至少' => '佔至少',
 '占臺' => '佔臺',
 '占英' => '佔英',
-'占萬' => '佔萬',
 '占万' => '佔萬',
+'占萬' => '佔萬',
 '占著名' => '佔著名',
 '占著者' => '佔著者',
 '占葡' => '佔葡',
-'占蘇' => '佔蘇',
 '占苏' => '佔蘇',
+'占蘇' => '佔蘇',
 '占西' => '佔西',
 '占資' => '佔資',
 '占资' => '佔資',
 '占起' => '佔起',
-'占超過' => '佔超過',
 '占超过' => '佔超過',
+'占超過' => '佔超過',
 '占过' => '佔過',
 '占過' => '佔過',
 '占道' => '佔道',
 '占零' => '佔零',
 '占領' => '佔領',
 '占领' => '佔領',
-'占頭' => '佔頭',
 '占头' => '佔頭',
-'占頭籌' => '佔頭籌',
+'占頭' => '佔頭',
 '占头筹' => '佔頭籌',
+'占頭籌' => '佔頭籌',
 '占香' => '佔香',
 '占馬' => '佔馬',
 '占马' => '佔馬',
@@ -15074,8 +15072,8 @@ $zh2HK = array(
 '剪彩' => '剪綵',
 '割占' => '割佔',
 '劃著' => '劃着',
-'擊劍' => '劍擊',
 '击剑' => '劍擊',
+'擊劍' => '劍擊',
 '加薩走廊' => '加沙地帶',
 '迦納' => '加納',
 '加彭' => '加蓬',
@@ -15129,9 +15127,9 @@ $zh2HK = array(
 '印著述' => '印著述',
 '印著錄' => '印著錄',
 '瓜地馬拉' => '危地馬拉',
-'厄瓜多爾' => '厄瓜多爾',
-'厄瓜多尔' => '厄瓜多爾',
 '厄瓜多' => '厄瓜多爾',
+'厄瓜多尔' => '厄瓜多爾',
+'厄瓜多爾' => '厄瓜多爾',
 '厄利垂亚' => '厄立特里亞',
 '厄利垂亞' => '厄立特里亞',
 '源代码' => '原始碼',
@@ -15167,8 +15165,8 @@ $zh2HK = array(
 '古柯鹼' => '可卡因',
 '叱吒' => '叱咤',
 '斯坦福' => '史丹福',
-'斯皮尔伯格' => '史匹堡',
 '史匹柏' => '史匹堡',
+'斯皮尔伯格' => '史匹堡',
 '史蒂芬·史匹柏' => '史提芬·史匹堡',
 '斯蒂芬·斯皮尔伯格' => '史提芬·史匹堡',
 '吃不著' => '吃不着',
@@ -15246,13 +15244,13 @@ $zh2HK = array(
 '喝著錄' => '喝著錄',
 '賈伯斯' => '喬布斯',
 '乔治·奥威尔' => '喬治·歐威爾',
-'單眼相機' => '單鏡反光機',
 '单反相机' => '單鏡反光機',
+'單眼相機' => '單鏡反光機',
 '嗅不著' => '嗅不着',
 '嗅得著' => '嗅得着',
 '嗅著' => '嗅着',
-'凱薩琳' => '嘉芙蓮',
 '凯瑟琳' => '嘉芙蓮',
+'凱薩琳' => '嘉芙蓮',
 '嘯吒' => '嘯咤',
 '嘴里' => '嘴裏',
 '嚷著' => '嚷着',
@@ -15332,8 +15330,8 @@ $zh2HK = array(
 '吉里巴斯' => '基里巴斯',
 '场里' => '場裏',
 '塗著' => '塗着',
-'賽普勒斯' => '塞浦路斯',
 '塞普勒斯' => '塞浦路斯',
+'賽普勒斯' => '塞浦路斯',
 '塞爾維亞與蒙特內哥羅' => '塞爾維亞和黑山',
 '塞席爾' => '塞舌爾',
 '境里' => '境裏',
@@ -15375,14 +15373,14 @@ $zh2HK = array(
 '歐巴馬' => '奧巴馬',
 '妆台' => '妝枱',
 '威斯伐倫' => '威斯特法倫',
-'威爾士' => '威爾斯',
 '威尔士' => '威爾斯',
+'威爾士' => '威爾斯',
 '子里' => '子裏',
 '字里行间' => '字裏行間',
 '存著' => '存着',
 '存著名' => '存著名',
-'门德尔松' => '孟德爾遜',
 '孟德爾頌' => '孟德爾遜',
+'门德尔松' => '孟德爾遜',
 '孤著' => '孤着',
 '孤著作' => '孤著作',
 '孤著名' => '孤著名',
@@ -15436,10 +15434,10 @@ $zh2HK = array(
 '寫著錄' => '寫著錄',
 '宝里宝气' => '寶裏寶氣',
 '封面里' => '封面裏',
-'將占' => '將佔',
 '将占' => '將佔',
-'將占卜' => '將占卜',
+'將占' => '將佔',
 '将占卜' => '將占卜',
+'將占卜' => '將占卜',
 '专辑里' => '專輯裏',
 '尋著' => '尋着',
 '尋著作' => '尋著作',
@@ -15536,8 +15534,8 @@ $zh2HK = array(
 '康著述' => '康著述',
 '康著錄' => '康著錄',
 '庙里' => '廟裏',
-'强占' => '強佔',
 '強占' => '強佔',
+'强占' => '強佔',
 '约翰斯顿岛' => '強斯頓環礁',
 '弹子台' => '彈子枱',
 '蹦床' => '彈床',
@@ -15573,8 +15571,8 @@ $zh2HK = array(
 '循著者' => '循著者',
 '循著述' => '循著述',
 '循著錄' => '循著錄',
-'徵占' => '徵佔',
 '征占' => '徵佔',
+'徵占' => '徵佔',
 '德占' => '德佔',
 '得克萨斯' => '德克薩斯',
 '德勒斯登' => '德累斯頓',
@@ -15648,8 +15646,8 @@ $zh2HK = array(
 '想著者' => '想著者',
 '想著述' => '想著述',
 '想著錄' => '想著錄',
-'義占' => '意佔',
 '意占' => '意佔',
+'義占' => '意佔',
 '義大利' => '意大利',
 '艾滋' => '愛滋',
 '愛著' => '愛着',
@@ -15708,10 +15706,10 @@ $zh2HK = array(
 '戏彩娱亲' => '戲綵娛親',
 '戲彩娛親' => '戲綵娛親',
 '戏里' => '戲裏',
-'柴契爾' => '戴卓爾',
 '撒切尔' => '戴卓爾',
-'黛安娜' => '戴安娜',
+'柴契爾' => '戴卓爾',
 '狄安娜' => '戴安娜',
+'黛安娜' => '戴安娜',
 '戴著' => '戴着',
 '戴著作' => '戴著作',
 '戴著名' => '戴著名',
@@ -15886,8 +15884,8 @@ $zh2HK = array(
 '揮著述' => '揮著述',
 '揮著錄' => '揮著錄',
 '搜索引擎' => '搜尋引擎',
-'搶占' => '搶佔',
 '抢占' => '搶佔',
+'搶占' => '搶佔',
 '摟著' => '摟着',
 '摟著作' => '摟著作',
 '摟著名' => '摟著名',
@@ -15922,8 +15920,8 @@ $zh2HK = array(
 '據著述' => '據著述',
 '據著錄' => '據著錄',
 '擡著' => '擡着',
-'擺布' => '擺佈',
 '摆布' => '擺佈',
+'擺布' => '擺佈',
 '擺著' => '擺着',
 '擺著作' => '擺著作',
 '擺著名' => '擺著名',
@@ -15949,8 +15947,8 @@ $zh2HK = array(
 '数字技术' => '數碼技術',
 '數位技術' => '數碼技術',
 '數位相機' => '數碼相機',
-'數碼訊號' => '數碼訊號',
 '数字信号' => '數碼訊號',
+'數碼訊號' => '數碼訊號',
 '数字电视' => '數碼電視',
 '數位電視' => '數碼電視',
 '數著作' => '數著作',
@@ -15985,8 +15983,8 @@ $zh2HK = array(
 '昂著者' => '昂著者',
 '昂著述' => '昂著述',
 '昂著錄' => '昂著錄',
-'星羅棋布' => '星羅棋佈',
 '星罗棋布' => '星羅棋佈',
+'星羅棋布' => '星羅棋佈',
 '映著' => '映着',
 '映著作' => '映著作',
 '映著名' => '映著名',
@@ -16002,8 +16000,8 @@ $zh2HK = array(
 '晃著者' => '晃著者',
 '晃著述' => '晃著述',
 '晃著錄' => '晃著錄',
-'芯片' => '晶片',
 '晶元' => '晶片',
+'芯片' => '晶片',
 '智慧型' => '智能',
 '智慧卡' => '智能卡',
 '智慧手機' => '智能手機',
@@ -16063,8 +16061,8 @@ $zh2HK = array(
 '村里' => '村裏',
 '杜塞道夫' => '杜塞爾多夫',
 '迪拜' => '杜拜',
-'東協' => '東盟',
 '亚细安' => '東盟',
+'東協' => '東盟',
 '板著臉' => '板着臉',
 '枕著' => '枕着',
 '枕著作' => '枕著作',
@@ -16081,18 +16079,18 @@ $zh2HK = array(
 '台面化' => '枱面化',
 '柏林墙' => '柏林圍牆',
 '奧黛莉·朵杜' => '柯德莉·塔圖',
-'奧黛麗·赫本' => '柯德莉·夏萍',
 '奥黛丽·赫本' => '柯德莉·夏萍',
+'奧黛麗·赫本' => '柯德莉·夏萍',
 '哥廷根' => '格丁根',
 '格瑞那達' => '格林納達',
-'葛萊美獎' => '格林美獎',
 '格莱美奖' => '格林美獎',
+'葛萊美獎' => '格林美獎',
 '格鲁吉亚' => '格魯吉亞',
 '框里' => '框裏',
-'撞球' => '桌球',
 '台球' => '桌球',
-'默多克' => '梅鐸',
+'撞球' => '桌球',
 '梅鐸' => '梅鐸',
+'默多克' => '梅鐸',
 '梳著' => '梳着',
 '梳著作' => '梳著作',
 '梳著名' => '梳著名',
@@ -16104,8 +16102,8 @@ $zh2HK = array(
 '桑巴舞' => '森巴舞',
 '森林里' => '森林裏',
 '棺材里' => '棺材裏',
-'榴蓮' => '榴槤',
 '榴莲' => '榴槤',
+'榴蓮' => '榴槤',
 '樂著' => '樂着',
 '樂著作' => '樂著作',
 '樂著名' => '樂著名',
@@ -16135,8 +16133,8 @@ $zh2HK = array(
 '殺著錄' => '殺著錄',
 '壳里' => '殼裏',
 '茅利塔尼亞' => '毛里塔尼亞',
-'毛里求斯' => '毛里裘斯',
 '模里西斯' => '毛里裘斯',
+'毛里求斯' => '毛里裘斯',
 '公厘' => '毫米',
 '公釐' => '毫米',
 '水来汤里去' => '水來湯裏去',
@@ -16182,8 +16180,8 @@ $zh2HK = array(
 '玻里尼西亞' => '波利尼西亞',
 '波士尼亞' => '波斯尼亞',
 '波士尼亞赫塞哥維納' => '波斯尼亞黑塞哥維那',
-'寶萊塢' => '波里活',
 '宝莱坞' => '波里活',
+'寶萊塢' => '波里活',
 '幫浦' => '泵',
 '洞里' => '洞裏',
 '辛巴威' => '津巴布韋',
@@ -16198,8 +16196,8 @@ $zh2HK = array(
 '活著錄' => '活著錄',
 '移动网络' => '流動網絡',
 '行動網路' => '流動網絡',
-'行動電話' => '流動電話',
 '移动电话' => '流動電話',
+'行動電話' => '流動電話',
 '流著' => '流着',
 '流著作' => '流著作',
 '流著名' => '流著名',
@@ -16220,8 +16218,8 @@ $zh2HK = array(
 '浮著錄' => '浮著錄',
 '海上布雷' => '海上佈雷',
 '海洛因' => '海洛英',
-'海灣布雷' => '海灣佈雷',
 '海湾布雷' => '海灣佈雷',
+'海灣布雷' => '海灣佈雷',
 '涵著' => '涵着',
 '涵著作' => '涵著作',
 '涵著名' => '涵著名',
@@ -16357,8 +16355,8 @@ $zh2HK = array(
 '猜著述' => '猜著述',
 '猜著錄' => '猜著錄',
 '狱里' => '獄裏',
-'獨占' => '獨佔',
 '独占' => '獨佔',
+'獨占' => '獨佔',
 '獨著' => '獨着',
 '獨著作' => '獨著作',
 '獨著名' => '獨著名',
@@ -16419,18 +16417,18 @@ $zh2HK = array(
 '畫著稱' => '畫著稱',
 '畫著者' => '畫著者',
 '當著' => '當着',
-'過著作' => '當著作',
 '當著作' => '當著作',
-'過著名' => '當著名',
+'過著作' => '當著作',
 '當著名' => '當著名',
-'過著書' => '當著書',
+'過著名' => '當著名',
 '當著書' => '當著書',
+'過著書' => '當著書',
 '當著稱' => '當著稱',
 '過著稱' => '當著稱',
 '當著者' => '當著者',
 '過著者' => '當著者',
-'過著述' => '當著述',
 '當著述' => '當著述',
+'過著述' => '當著述',
 '當著錄' => '當著錄',
 '過著錄' => '當著錄',
 '几内亚' => '畿內亞',
@@ -16575,16 +16573,16 @@ $zh2HK = array(
 '瞪著錄' => '瞪著錄',
 '智慧財產權' => '知識產權',
 '智財權' => '知識產權',
-'簡訊' => '短訊',
 '短信' => '短訊',
+'簡訊' => '短訊',
 '什勒斯維希' => '石勒蘇益格',
 '硅' => '矽',
 '硅藻' => '硅藻',
 '硬件' => '硬件',
 '硬體' => '硬件',
 '碗里' => '碗裏',
-'贝克漢' => '碧咸',
 '贝克汉姆' => '碧咸',
+'贝克漢' => '碧咸',
 '社里' => '社裏',
 '福馬林' => '福爾馬林',
 '福著' => '福着',
@@ -16597,18 +16595,18 @@ $zh2HK = array(
 '福著錄' => '福著錄',
 '秀发布' => '秀發佈',
 '私下里' => '私下裏',
-'隱私' => '私隱',
 '隐私' => '私隱',
+'隱私' => '私隱',
 '葛摩' => '科摩羅',
 '程序员' => '程式設計師',
 '捷豹' => '積架',
-'穩占' => '穩佔',
 '稳占' => '穩佔',
+'穩占' => '穩佔',
 '穫著' => '穫着',
 '空中布雷' => '空中佈雷',
 '空投布雷' => '空投佈雷',
-'空氣品質' => '空氣質素',
 '空气质量' => '空氣質素',
+'空氣品質' => '空氣質素',
 '空著' => '空着',
 '空著作' => '空著作',
 '空著名' => '空著名',
@@ -16659,8 +16657,8 @@ $zh2HK = array(
 '节目里' => '節目裏',
 '簽著' => '簽着',
 '籃板球' => '籃板球',
-'麦克尔' => '米高',
 '迈克尔' => '米高',
+'麦克尔' => '米高',
 '迈克尔·欧文' => '米高·奧雲',
 '糊里糊涂' => '糊裏糊塗',
 '系列里' => '系列裏',
@@ -16669,10 +16667,10 @@ $zh2HK = array(
 '約占' => '約佔',
 '约占' => '約佔',
 '紐賓士域' => '紐賓士域',
-'索忍尼辛' => '索贊尼辛',
 '索尔仁尼琴' => '索贊尼辛',
-'索馬利里' => '索馬里',
+'索忍尼辛' => '索贊尼辛',
 '索馬利亞' => '索馬里',
+'索馬利里' => '索馬里',
 '紮著' => '紮着',
 '紮著作' => '紮著作',
 '紮著名' => '紮著名',
@@ -16728,8 +16726,8 @@ $zh2HK = array(
 '繞著者' => '繞著者',
 '繞著述' => '繞著述',
 '繞著錄' => '繞著錄',
-'繫著' => '繫着',
 '系着' => '繫着',
+'繫著' => '繫着',
 '纏著' => '纏着',
 '纏著作' => '纏著作',
 '纏著名' => '纏著名',
@@ -16783,8 +16781,8 @@ $zh2HK = array(
 '考著者' => '考著者',
 '考著述' => '考著述',
 '考著錄' => '考著錄',
-'聖克里斯多福及尼維斯' => '聖吉斯納域斯',
 '圣基茨和尼维斯' => '聖吉斯納域斯',
+'聖克里斯多福及尼維斯' => '聖吉斯納域斯',
 '聖文森及格瑞那丁' => '聖文森特和格林納丁斯',
 '聖露西亞' => '聖盧西亞',
 '聖馬利諾' => '聖馬力諾',
@@ -16863,13 +16861,13 @@ $zh2HK = array(
 '好萊塢' => '荷里活',
 '庄里' => '莊裏',
 '莫三比克' => '莫桑比克',
-'瓦倫西亞' => '華倫西亞',
 '巴伦西亚' => '華倫西亞',
 '巴倫西亞' => '華倫西亞',
+'瓦倫西亞' => '華倫西亞',
 '瓦文萨' => '華里沙',
 '華勒沙' => '華里沙',
-'菲利普親王' => '菲臘親王',
 '菲利普亲王' => '菲臘親王',
+'菲利普親王' => '菲臘親王',
 '賴索托' => '萊索托',
 '马恩岛' => '萌島',
 '馬自達' => '萬事得',
@@ -16886,8 +16884,8 @@ $zh2HK = array(
 '葉爾欽' => '葉利欽',
 '葡占' => '葡佔',
 '葫芦里卖甚么药' => '葫蘆裏賣甚麼藥',
-'蒙特婁' => '蒙特利爾',
 '滿地可' => '蒙特利爾',
+'蒙特婁' => '蒙特利爾',
 '蒙著' => '蒙着',
 '蒙著作' => '蒙著作',
 '蒙著名' => '蒙著名',
@@ -17014,8 +17012,8 @@ $zh2HK = array(
 '視著' => '視着',
 '視著名' => '視著名',
 '角落里' => '角落裏',
-'解析度' => '解像度',
 '分辨率' => '解像度',
+'解析度' => '解像度',
 '言里' => '言裏',
 '計畫' => '計劃',
 '記著' => '記着',
@@ -17092,8 +17090,8 @@ $zh2HK = array(
 '負著' => '負着',
 '貢寮國' => '貢寮國',
 '買凶' => '買兇',
-'费占' => '費佔',
 '費占' => '費佔',
+'费占' => '費佔',
 '赌台' => '賭枱',
 '尚比亞' => '贊比亞',
 '西臺人' => '赫梯人',
@@ -17272,8 +17270,8 @@ $zh2HK = array(
 '連著者' => '連著者',
 '連著述' => '連著述',
 '連著錄' => '連著錄',
-'進占' => '進佔',
 '进占' => '進佔',
+'進占' => '進佔',
 '演化論' => '進化論',
 '逼著' => '逼着',
 '逼著作' => '逼著作',
@@ -17311,8 +17309,8 @@ $zh2HK = array(
 '遠著者' => '遠著者',
 '遠著述' => '遠著述',
 '遠著錄' => '遠著錄',
-'還占' => '還佔',
 '还占' => '還佔',
+'還占' => '還佔',
 '邋里邋遢' => '邋裏邋遢',
 '那里' => '那裏',
 '配合著' => '配合着',
@@ -17335,14 +17333,14 @@ $zh2HK = array(
 '醜著者' => '醜著者',
 '醜著述' => '醜著述',
 '醜著錄' => '醜著錄',
-'醯壺' => '醯壺',
 '醯壶' => '醯壺',
+'醯壺' => '醯壺',
 '醯醋' => '醯醋',
 '醯醢' => '醯醢',
-'醯醬' => '醯醬',
 '醯酱' => '醯醬',
-'é\86¯é¸¡' => 'é\86¯é\9b\9e',
+'é\86¯é\86¬' => 'é\86¯é\86¬',
 '醯雞' => '醯雞',
+'醯鸡' => '醯雞',
 '釀著' => '釀着',
 '釀著作' => '釀著作',
 '釀著名' => '釀著名',
@@ -17383,8 +17381,8 @@ $zh2HK = array(
 '開著者' => '開著者',
 '開著述' => '開著述',
 '開著錄' => '開著錄',
-'開誠布公' => '開誠佈公',
 '开诚布公' => '開誠佈公',
+'開誠布公' => '開誠佈公',
 '閑著' => '閑着',
 '閑著作' => '閑著作',
 '閑著名' => '閑著名',
@@ -17478,11 +17476,11 @@ $zh2HK = array(
 '雜著述' => '雜著述',
 '雜著錄' => '雜著錄',
 '鸡蛋里挑骨头' => '雞蛋裏挑骨頭',
-'冰激凌' => '雪糕',
 '冰淇淋' => '雪糕',
+'冰激凌' => '雪糕',
 '雪里' => '雪裏',
-'萊特灣' => '雷伊泰灣',
 '莱特湾' => '雷伊泰灣',
+'萊特灣' => '雷伊泰灣',
 '晶体管' => '電晶體',
 '晶體管' => '電晶體',
 '电梯里' => '電梯裏',
@@ -17500,8 +17498,8 @@ $zh2HK = array(
 '靠著稱' => '靠著稱',
 '靠著者' => '靠著者',
 '靠著述' => '靠著述',
-'靠著錄' => '靠著錄',
 '靠著录' => '靠著錄',
+'靠著錄' => '靠著錄',
 '鞋里' => '鞋裏',
 '鞭辟入里' => '鞭辟入裏',
 '朝鲜战争' => '韓戰',
@@ -17529,8 +17527,8 @@ $zh2HK = array(
 '順著者' => '順著者',
 '順著述' => '順著述',
 '順著錄' => '順著錄',
-'颁布' => '頒佈',
 '頒布' => '頒佈',
+'颁布' => '頒佈',
 '領著' => '領着',
 '領著作' => '領著作',
 '領著名' => '領著名',
@@ -17554,8 +17552,8 @@ $zh2HK = array(
 '餐台' => '餐枱',
 '馆里' => '館裏',
 '糊口' => '餬口',
-'马里兰' => '馬利蘭',
 '馬里蘭' => '馬利蘭',
+'马里兰' => '馬利蘭',
 '马拉特·萨芬' => '馬拉特·沙芬',
 '馬斯垂克' => '馬斯特里赫特',
 '馬爾地夫' => '馬爾代夫',
@@ -17602,8 +17600,8 @@ $zh2HK = array(
 '髭著者' => '髭著者',
 '髭著述' => '髭著述',
 '髭著錄' => '髭著錄',
-'鬥著' => '鬥着',
 '斗着' => '鬥着',
+'鬥著' => '鬥着',
 '鬥著作' => '鬥著作',
 '鬥著名' => '鬥著名',
 '鬥著書' => '鬥著書',
@@ -17612,8 +17610,8 @@ $zh2HK = array(
 '鬥著述' => '鬥著述',
 '鬥著錄' => '鬥著錄',
 '鬧著' => '鬧着',
-'牛轧' => '鳥結',
 '牛軋' => '鳥結',
+'牛轧' => '鳥結',
 '鳩占' => '鳩佔',
 '鸠占' => '鳩佔',
 '麗著' => '麗着',
@@ -17625,16 +17623,16 @@ $zh2HK = array(
 '麗著述' => '麗著述',
 '麗著錄' => '麗著錄',
 '麼著' => '麼着',
-'里氏0' => '黎克特制0',
 '芮氏0' => '黎克特制0',
-'里氏1' => '黎克特制1',
+'里氏0' => '黎克特制0',
 '芮氏1' => '黎克特制1',
-'里氏2' => '黎克特制2',
+'里氏1' => '黎克特制1',
 '芮氏2' => '黎克特制2',
-'里氏3' => '黎克特制3',
+'里氏2' => '黎克特制2',
 '芮氏3' => '黎克特制3',
-'里氏4' => '黎克特制4',
+'里氏3' => '黎克特制3',
 '芮氏4' => '黎克特制4',
+'里氏4' => '黎克特制4',
 '芮氏5' => '黎克特制5',
 '里氏5' => '黎克特制5',
 '芮氏6' => '黎克特制6',
@@ -17643,13 +17641,13 @@ $zh2HK = array(
 '里氏7' => '黎克特制7',
 '芮氏8' => '黎克特制8',
 '里氏8' => '黎克特制8',
-'里氏9' => '黎克特制9',
 '芮氏9' => '黎克特制9',
+'里氏9' => '黎克特制9',
 '芮氏地震規模' => '黎克特制地震震級',
 '里氏地震规模' => '黎克特制地震震級',
-'里氏震级' => '黎克特制震級',
 '芮氏規模' => '黎克特制震級',
 '里氏规模' => '黎克特制震級',
+'里氏震级' => '黎克特制震級',
 '黏著' => '黏着',
 '黏著作' => '黏著作',
 '黏著名' => '黏著名',
@@ -17686,8 +17684,8 @@ $zh2CN = array(
 '下著录' => '下著录',
 '下著錄' => '下著录',
 '下著有' => '下著有',
-'下著稱' => '下著称',
 '下著称' => '下著称',
+'下著稱' => '下著称',
 '下著者' => '下著者',
 '下著述' => '下著述',
 '不著' => '不着',
@@ -17715,8 +17713,8 @@ $zh2CN = array(
 '邱吉爾' => '丘吉尔',
 'C型肝炎' => '丙型肝炎',
 'C肝' => '丙肝',
-'東協' => '东盟',
 '亚细安' => '东盟',
+'東協' => '东盟',
 '臨著' => '临着',
 '臨著書' => '临著书',
 '臨著作' => '临著作',
@@ -17793,8 +17791,8 @@ $zh2CN = array(
 '亮著者' => '亮著者',
 '亮著述' => '亮著述',
 '人工智慧' => '人工智能',
-'甚麽' => '什么',
 '甚麼' => '什么',
+'甚麽' => '什么',
 '仗著' => '仗着',
 '仗著書' => '仗著书',
 '仗著作' => '仗著作',
@@ -17814,8 +17812,8 @@ $zh2CN = array(
 '代表著述' => '代表著述',
 '乙太網' => '以太网',
 '伊莉莎白' => '伊丽莎白',
-'伊利諾伊' => '伊利诺伊',
 '伊利諾' => '伊利诺伊',
+'伊利諾伊' => '伊利诺伊',
 '伊斯蘭瑪巴德' => '伊斯兰堡',
 '伊斯坦堡' => '伊斯坦布尔',
 '伏著' => '伏着',
@@ -17991,8 +17989,8 @@ $zh2CN = array(
 '寫著稱' => '写著称',
 '寫著者' => '写著者',
 '寫著述' => '写著述',
-'衝著' => '冲着',
 '沖著' => '冲着',
+'衝著' => '冲着',
 '沖著。' => '冲著。',
 '沖著《' => '冲著《',
 '沖著,' => '冲著,',
@@ -18008,8 +18006,8 @@ $zh2CN = array(
 '湊合著' => '凑合着',
 '畿內亞' => '几内亚',
 '幾內亞比索' => '几内亚比绍',
-'嘉芙蓮' => '凯瑟琳',
 '凱薩琳' => '凯瑟琳',
+'嘉芙蓮' => '凯瑟琳',
 '份內' => '分内',
 '份外' => '分外',
 '解像度' => '分辨率',
@@ -18021,8 +18019,8 @@ $zh2CN = array(
 '列支敦斯登' => '列支敦士登',
 '賴比瑞亞' => '利比里亚',
 '別著' => '别着',
-'颳著' => '刮着',
 '刮著' => '刮着',
+'颳著' => '刮着',
 '到帳' => '到账',
 '制著' => '制着',
 '制著書' => '制著书',
@@ -18085,8 +18083,8 @@ $zh2CN = array(
 '十進位制' => '十进位制',
 '十進位' => '十进制',
 '公升' => '升',
-'單鏡反光機' => '单反相机',
 '單眼相機' => '单反相机',
+'單鏡反光機' => '单反相机',
 '波札那' => '博茨瓦纳',
 '占著' => '占着',
 '占著作' => '占著作',
@@ -18107,12 +18105,12 @@ $zh2CN = array(
 '印著者' => '印著者',
 '印著述' => '印著述',
 '瓜地馬拉' => '危地马拉',
-'厄瓜多尔' => '厄瓜多尔',
 '厄瓜多' => '厄瓜多尔',
+'厄瓜多尔' => '厄瓜多尔',
 '厄瓜多爾' => '厄瓜多尔',
 '厄利垂亚' => '厄立特里亚',
-'厄立特里亞' => '厄立特里亚',
 '厄利垂亞' => '厄立特里亚',
+'厄立特里亞' => '厄立特里亚',
 '壓著' => '压着',
 '壓著書' => '压著书',
 '壓著作' => '压著作',
@@ -18270,8 +18268,8 @@ $zh2CN = array(
 '因著書' => '因著书',
 '因著作' => '因著作',
 '因著名' => '因著名',
-'因著錄' => '因著录',
 '因著录' => '因著录',
+'因著錄' => '因著录',
 '因著稱' => '因著称',
 '因著者' => '因著者',
 '因著述' => '因著述',
@@ -18297,8 +18295,8 @@ $zh2CN = array(
 '吐瓦魯' => '图瓦卢',
 '原子筆' => '圆珠笔',
 '聖露西亞' => '圣卢西亚',
-'聖吉斯納域斯' => '圣基茨和尼维斯',
 '聖克里斯多福及尼維斯' => '圣基茨和尼维斯',
+'聖吉斯納域斯' => '圣基茨和尼维斯',
 '聖文森及格瑞那丁' => '圣文森特和格林纳丁斯',
 '聖馬利諾' => '圣马力诺',
 '在著' => '在着',
@@ -18330,10 +18328,10 @@ $zh2CN = array(
 '坎培拉' => '堪培拉',
 '塞爾維亞與蒙特內哥羅' => '塞尔维亚和黑山',
 '塞拉利昂' => '塞拉利昂',
-'賽普勒斯' => '塞浦路斯',
 '塞普勒斯' => '塞浦路斯',
-'西維ç\88¾' => 'å¡\9eç»´å\88©äº\9a',
+'è³½æ\99®å\8b\92æ\96¯' => 'å¡\9e浦路æ\96¯',
 '塞維亞' => '塞维利亚',
+'西維爾' => '塞维利亚',
 '塞席爾' => '塞舌尔',
 '音效卡' => '声卡',
 '備著' => '备着',
@@ -18414,8 +18412,8 @@ $zh2CN = array(
 '定著述' => '定著述',
 '波里活' => '宝莱坞',
 '寬頻' => '宽带',
-'密西根' => '密歇根',
 '密执安' => '密歇根',
+'密西根' => '密歇根',
 '對著' => '对着',
 '對著書' => '对著书',
 '對著作' => '对著作',
@@ -18447,8 +18445,8 @@ $zh2CN = array(
 '展著稱' => '展著称',
 '展著者' => '展著者',
 '展著述' => '展著述',
-'華倫西亞' => '巴伦西亚',
 '瓦倫西亞' => '巴伦西亚',
+'華倫西亞' => '巴伦西亚',
 '巴塞隆拿' => '巴塞罗那',
 '巴塞隆納' => '巴塞罗那',
 '巴斯拉' => '巴士拉',
@@ -18907,8 +18905,8 @@ $zh2CN = array(
 '放著' => '放着',
 '放著作' => '放著作',
 '放著名' => '放著名',
-'放著稱' => '放著称',
 '放著称' => '放著称',
+'放著稱' => '放著称',
 '放帳' => '放账',
 '敞著' => '敞着',
 '敞著作' => '敞著作',
@@ -18919,8 +18917,8 @@ $zh2CN = array(
 '敞著述' => '敞著述',
 '數位訊號' => '数字信号',
 '數碼訊號' => '数字信号',
-'數碼技術' => '数字技术',
 '數位技術' => '数字技术',
+'數碼技術' => '数字技术',
 '數位電視' => '数字电视',
 '數碼電視' => '数字电视',
 '資料庫' => '数据库',
@@ -18959,8 +18957,8 @@ $zh2CN = array(
 '紐西蘭' => '新西兰',
 '舊帳' => '旧账',
 '三藩市' => '旧金山',
-'翁山蘇姬' => '昂山素季',
 '昂山素姬' => '昂山素季',
+'翁山蘇姬' => '昂山素季',
 '昂著' => '昂着',
 '昂著書' => '昂著书',
 '昂著作' => '昂著作',
@@ -19105,10 +19103,10 @@ $zh2CN = array(
 '庇里牛斯' => '比利牛斯',
 '畢卡索' => '毕加索',
 '茅利塔尼亞' => '毛里塔尼亚',
-'毛里裘斯' => '毛里求斯',
 '模里西斯' => '毛里求斯',
-'公釐' => '毫米',
+'毛里裘斯' => '毛里求斯',
 '公厘' => '毫米',
+'公釐' => '毫米',
 '胺基酸' => '氨基酸',
 '水份' => '水分',
 '水氣' => '水汽',
@@ -19121,8 +19119,8 @@ $zh2CN = array(
 '求著者' => '求著者',
 '求著述' => '求著述',
 '漢諾瓦' => '汉诺威',
-'沉著' => '沉着',
 '沈著' => '沉着',
+'沉著' => '沉着',
 '沉著書' => '沉著书',
 '沉著作' => '沉著作',
 '沉著名' => '沉著名',
@@ -19303,8 +19301,8 @@ $zh2CN = array(
 '玩著' => '玩着',
 '溫納圖' => '瓦努阿图',
 '萬那杜' => '瓦努阿图',
-'華里沙' => '瓦文萨',
 '華勒沙' => '瓦文萨',
+'華里沙' => '瓦文萨',
 '甜著' => '甜着',
 '甜著書' => '甜著书',
 '甜著作' => '甜著作',
@@ -19530,15 +19528,15 @@ $zh2CN = array(
 '瞪著稱' => '瞪著称',
 '瞪著者' => '瞪著者',
 '瞪著述' => '瞪著述',
-'智財權' => '知识产权',
 '智慧財產權' => '知识产权',
+'智財權' => '知识产权',
 '知識份子' => '知识分子',
 '什勒斯維希' => '石勒苏益格',
-'矽尘' => '矽尘',
 '矽塵' => '矽尘',
+'矽尘' => '矽尘',
 '矽肺' => '矽肺',
-'矽钢' => '矽钢',
 '矽鋼' => '矽钢',
+'矽钢' => '矽钢',
 '矽' => '硅',
 '矽片' => '硅片',
 '矽谷' => '硅谷',
@@ -19561,13 +19559,13 @@ $zh2CN = array(
 '積極份子' => '积极分子',
 '流動電話' => '移动电话',
 '行動電話' => '移动电话',
-'行動網路' => '移动网络',
 '流動網絡' => '移动网络',
+'行動網路' => '移动网络',
 '程式設計師' => '程序员',
 '程式控制' => '程控',
 '空中巴士' => '空中客车',
-'空氣質素' => '空气质量',
 '空氣品質' => '空气质量',
+'空氣質素' => '空气质量',
 '空著' => '空着',
 '空著書' => '空著书',
 '空著作' => '空著作',
@@ -19630,9 +19628,9 @@ $zh2CN = array(
 '糖份' => '糖分',
 '動畫影集' => '系列动画片',
 '繫著' => '系着',
+'索忍尼辛' => '索尔仁尼琴',
 '索贊尼辛' => '索尔仁尼琴',
 '蘇辛尼津' => '索尔仁尼琴',
-'索忍尼辛' => '索尔仁尼琴',
 '索馬利亞' => '索马里',
 '索馬利蘭' => '索马里兰',
 '正體中文' => '繁体中文',
@@ -19740,8 +19738,8 @@ $zh2CN = array(
 '藝著者' => '艺著者',
 '藝著述' => '艺著述',
 '愛滋' => '艾滋',
-'晶片' => '芯片',
 '晶元' => '芯片',
+'晶片' => '芯片',
 '蘇利南' => '苏里南',
 '苦著' => '苦着',
 '苦著書' => '苦著书',
@@ -20187,8 +20185,8 @@ $zh2CN = array(
 '鑀' => '锿',
 '鋂' => '镅',
 '錼' => '镎',
-'孟德爾頌' => '门德尔松',
 '孟德爾遜' => '门德尔松',
+'孟德爾頌' => '门德尔松',
 '快閃記憶體' => '闪存',
 '閉著' => '闭着',
 '閉著書' => '闭著书',
@@ -20198,8 +20196,8 @@ $zh2CN = array(
 '閉著稱' => '闭著称',
 '閉著者' => '闭著者',
 '閉著述' => '闭著述',
-'閒著' => '闲着',
 '閑著' => '闲着',
+'閒著' => '闲着',
 '閑著書' => '闲著书',
 '閑著作' => '闲著作',
 '閑著名' => '闲著名',
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 0dee147..6ab8483 100644 (file)
@@ -497,7 +497,7 @@ class ApiEditPage extends ApiBase {
                                $r['result'] = 'Success';
                                $r['pageid'] = intval( $titleObj->getArticleID() );
                                $r['title'] = $titleObj->getPrefixedText();
-                               $r['contentmodel'] = $titleObj->getContentModel();
+                               $r['contentmodel'] = $articleObject->getContentModel();
                                $newRevId = $articleObject->getLatest();
                                if ( $newRevId == $oldRevId ) {
                                        $r['nochange'] = true;
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 8c03dce..36026c2 100644 (file)
@@ -212,7 +212,7 @@ class ApiOpenSearch extends ApiBase {
                switch ( $this->getFormat() ) {
                        case 'json':
                                // http://www.opensearch.org/Specifications/OpenSearch/Extensions/Suggestions/1.1
-                               $result->addArrayType( null, 'array' );
+                               $result->addArrayType( null, 'BCarray' );
                                $result->addValue( null, 0, strval( $search ) );
                                $terms = array();
                                $descriptions = array();
index fc004cf..a917c54 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 ) {
index 082fccb..bfe3205 100644 (file)
@@ -448,7 +448,7 @@ class ApiQuery extends ApiBase {
                        ApiResult::setArrayType( $pages, 'BCarray' );
 
                        if ( $this->mParams['indexpageids'] ) {
-                               $pageIDs = array_keys( $pages );
+                               $pageIDs = array_keys( ApiResult::stripMetadataNonRecursive( $pages ) );
                                // json treats all map keys as strings - converting to match
                                $pageIDs = array_map( 'strval', $pageIDs );
                                ApiResult::setIndexedTagName( $pageIDs, 'id' );
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 8e271e7..fe77882 100644 (file)
@@ -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 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..4514fa9 100644 (file)
@@ -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 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 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 dd19bf2..1f992f8 100644 (file)
@@ -137,12 +137,12 @@ class ApiQueryPageProps extends ApiQueryBase {
 
        protected function getExamplesMessages() {
                return array(
-                       'action=query&prop=pageprops&titles=Category:Foo'
+                       'action=query&prop=pageprops&titles=Main%20Page|MediaWiki'
                                => 'apihelp-query+pageprops-example-simple',
                );
        }
 
        public function getHelpUrls() {
-               return 'https://www.mediawiki.org/wiki/API:Properties#pageprops_.2F_pp';
+               return 'https://www.mediawiki.org/wiki/API:Pageprops';
        }
 }
index 552ca3b..9e02551 100644 (file)
@@ -91,10 +91,10 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                // Enum mode can only be used when exactly one page is provided.
                // Enumerating revisions on multiple pages make it extremely
                // difficult to manage continuations and require additional SQL indexes
-               $enumRevMode = ( !is_null( $params['user'] ) || !is_null( $params['excludeuser'] ) ||
-                       !is_null( $params['limit'] ) || !is_null( $params['startid'] ) ||
-                       !is_null( $params['endid'] ) || $params['dir'] === 'newer' ||
-                       !is_null( $params['start'] ) || !is_null( $params['end'] ) );
+               $enumRevMode = ( $params['user'] !== null || $params['excludeuser'] !== null ||
+                       $params['limit'] !== null || $params['startid'] !== null ||
+                       $params['endid'] !== null || $params['dir'] === 'newer' ||
+                       $params['start'] !== null || $params['end'] !== null );
 
                $pageSet = $this->getPageSet();
                $pageCount = $pageSet->getGoodTitleCount();
@@ -149,7 +149,7 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                        }
                } else {
                        $this->limit = $this->getParameter( 'limit' ) ?: 10;
-                       $this->addFields( array( 'rev_id', 'rev_page' ) );
+                       $this->addFields( array( 'rev_id', 'rev_timestamp', 'rev_page' ) );
                }
 
                if ( $this->fld_tags ) {
@@ -160,7 +160,7 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                        $this->addFields( 'ts_tags' );
                }
 
-               if ( !is_null( $params['tag'] ) ) {
+               if ( $params['tag'] !== null ) {
                        $this->addTables( 'change_tag' );
                        $this->addJoinConds(
                                array( 'change_tag' => array( 'INNER JOIN', array( 'rev_id=ct_rev_id' ) ) )
@@ -196,58 +196,77 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                }
 
                if ( $enumRevMode ) {
+                       // Indexes targeted:
+                       //  page_timestamp if we don't have rvuser
+                       //  page_user_timestamp if we have a logged-in rvuser
+                       //  page_timestamp or usertext_timestamp if we have an IP rvuser
+
                        // This is mostly to prevent parameter errors (and optimize SQL?)
-                       if ( !is_null( $params['startid'] ) && !is_null( $params['start'] ) ) {
+                       if ( $params['startid'] !== null && $params['start'] !== null ) {
                                $this->dieUsage( 'start and startid cannot be used together', 'badparams' );
                        }
 
-                       if ( !is_null( $params['endid'] ) && !is_null( $params['end'] ) ) {
+                       if ( $params['endid'] !== null && $params['end'] !== null ) {
                                $this->dieUsage( 'end and endid cannot be used together', 'badparams' );
                        }
 
-                       if ( !is_null( $params['user'] ) && !is_null( $params['excludeuser'] ) ) {
+                       if ( $params['user'] !== null && $params['excludeuser'] !== null ) {
                                $this->dieUsage( 'user and excludeuser cannot be used together', 'badparams' );
                        }
 
-                       // Continuing effectively uses startid. But we can't use rvstartid
-                       // directly, because there is no way to tell the client to ''not''
-                       // send rvstart if it sent it in the original query. So instead we
-                       // send the continuation startid as rvcontinue, and ignore both
-                       // rvstart and rvstartid when that is supplied.
-                       if ( !is_null( $params['continue'] ) ) {
-                               $params['startid'] = $params['continue'];
-                               $params['start'] = null;
+                       if ( $params['continue'] !== null ) {
+                               $cont = explode( '|', $params['continue'] );
+                               $this->dieContinueUsageIf( count( $cont ) != 2 );
+                               $op = ( $params['dir'] === 'newer' ? '>' : '<' );
+                               $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                               $continueId = (int)$cont[1];
+                               $this->dieContinueUsageIf( $continueId != $cont[1] );
+                               $this->addWhere( "rev_timestamp $op $continueTimestamp OR " .
+                                       "(rev_timestamp = $continueTimestamp AND " .
+                                       "rev_id $op= $continueId)"
+                               );
                        }
 
-                       // This code makes an assumption that sorting by rev_id and rev_timestamp produces
-                       // the same result. This way users may request revisions starting at a given time,
-                       // but to page through results use the rev_id returned after each page.
-                       // Switching to rev_id removes the potential problem of having more than
-                       // one row with the same timestamp for the same page.
-                       // The order needs to be the same as start parameter to avoid SQL filesort.
-                       if ( is_null( $params['startid'] ) && is_null( $params['endid'] ) ) {
-                               $this->addTimestampWhereRange( 'rev_timestamp', $params['dir'],
-                                       $params['start'], $params['end'] );
-                       } else {
-                               $this->addWhereRange( 'rev_id', $params['dir'],
-                                       $params['startid'], $params['endid'] );
-                               // One of start and end can be set
-                               // If neither is set, this does nothing
-                               $this->addTimestampWhereRange( 'rev_timestamp', $params['dir'],
-                                       $params['start'], $params['end'], false );
+                       // Query optimization: since we're targeting ranges of
+                       // rev_timestamp,rev_id, if we're given an id then extract the
+                       // corresponding timestamp from the DB.
+                       // Note we don't use Revision::getTimestampFromId() since we don't
+                       // have a Title to pass it and there's not any real need to create one.
+                       if ( $params['startid'] !== null ) {
+                               $params['start'] = $db->selectField( 'revision', 'rev_timestamp',
+                                       array( 'rev_id' => $params['startid'] ), __METHOD__ );
+                       }
+                       if ( $params['endid'] !== null ) {
+                               $params['end'] = $db->selectField( 'revision', 'rev_timestamp',
+                                       array( 'rev_id' => $params['endid'] ), __METHOD__ );
                        }
 
+                       $this->addTimestampWhereRange( 'rev_timestamp', $params['dir'],
+                               $params['start'], $params['end'] );
+                       $this->addWhereRange( 'rev_id', $params['dir'],
+                               $params['startid'], $params['endid'] );
+
                        // There is only one ID, use it
                        $ids = array_keys( $pageSet->getGoodTitles() );
                        $this->addWhereFld( 'rev_page', reset( $ids ) );
 
-                       if ( !is_null( $params['user'] ) ) {
-                               $this->addWhereFld( 'rev_user_text', $params['user'] );
-                       } elseif ( !is_null( $params['excludeuser'] ) ) {
-                               $this->addWhere( 'rev_user_text != ' .
-                                       $db->addQuotes( $params['excludeuser'] ) );
+                       if ( $params['user'] !== null ) {
+                               $user = User::newFromName( $params['user'] );
+                               if ( $user && $user->getId() > 0 ) {
+                                       $this->addWhereFld( 'rev_user', $user->getId() );
+                               } else {
+                                       $this->addWhereFld( 'rev_user_text', $params['user'] );
+                               }
+                       } elseif ( $params['excludeuser'] !== null ) {
+                               $user = User::newFromName( $params['excludeuser'] );
+                               if ( $user && $user->getId() > 0 ) {
+                                       $this->addWhere( 'rev_user != ' . $user->getId() );
+                               } else {
+                                       $this->addWhere( 'rev_user_text != ' .
+                                               $db->addQuotes( $params['excludeuser'] ) );
+                               }
                        }
-                       if ( !is_null( $params['user'] ) || !is_null( $params['excludeuser'] ) ) {
+                       if ( $params['user'] !== null || $params['excludeuser'] !== null ) {
                                // Paranoia: avoid brute force searches (bug 17342)
                                if ( !$this->getUser()->isAllowed( 'deletedhistory' ) ) {
                                        $bitmask = Revision::DELETED_USER;
@@ -261,16 +280,20 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                                }
                        }
                } elseif ( $revCount > 0 ) {
+                       // Always targets the PRIMARY index
+
                        $revs = $pageSet->getLiveRevisionIDs();
 
                        // Get all revision IDs
                        $this->addWhereFld( 'rev_id', array_keys( $revs ) );
 
-                       if ( !is_null( $params['continue'] ) ) {
+                       if ( $params['continue'] !== null ) {
                                $this->addWhere( 'rev_id >= ' . intval( $params['continue'] ) );
                        }
                        $this->addOption( 'ORDER BY', 'rev_id' );
                } elseif ( $pageCount > 0 ) {
+                       // Always targets the rev_page_id index
+
                        $titles = $pageSet->getGoodTitles();
 
                        // When working in multi-page non-enumeration mode,
@@ -282,7 +305,7 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                        // Every time someone relies on equality propagation, god kills a kitten :)
                        $this->addWhereFld( 'rev_page', array_keys( $titles ) );
 
-                       if ( !is_null( $params['continue'] ) ) {
+                       if ( $params['continue'] !== null ) {
                                $cont = explode( '|', $params['continue'] );
                                $this->dieContinueUsageIf( count( $cont ) != 2 );
                                $pageid = intval( $cont[0] );
@@ -312,7 +335,8 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
                                if ( $enumRevMode ) {
-                                       $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
+                                       $this->setContinueEnumParameter( 'continue',
+                                               $row->rev_timestamp . '|' . intval( $row->rev_id ) );
                                } elseif ( $revCount > 0 ) {
                                        $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
                                } else {
@@ -344,7 +368,8 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                                $fit = $this->addPageSubItem( $row->rev_page, $rev, 'rev' );
                                if ( !$fit ) {
                                        if ( $enumRevMode ) {
-                                               $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
+                                               $this->setContinueEnumParameter( 'continue',
+                                                       $row->rev_timestamp . '|' . intval( $row->rev_id ) );
                                        } elseif ( $revCount > 0 ) {
                                                $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
                                        } else {
@@ -443,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 b81e993..98c2201 100644 (file)
@@ -867,6 +867,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 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 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 ) ) {
diff --git a/includes/api/i18n/ast.json b/includes/api/i18n/ast.json
new file mode 100644 (file)
index 0000000..9494a7c
--- /dev/null
@@ -0,0 +1,10 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Xuacu"
+               ]
+       },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentación]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Llista d'alderique]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anuncios de la API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Fallos y solicitúes]\n</div>\n<strong>Estau:</strong> Toles carauterístiques qu'apaecen nesta páxina tendríen de funcionar, pero la API inda ta en desendolcu activu, y puede camudar en cualquier momentu. Suscríbete a la [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ llista de corréu mediawiki-api-announce] p'avisos sobro anovamientos.\n\n<strong>Solicitúes incorreutes:</strong> Cuando s'unvíen solicitúes incorreutes a la API, unvíase una cabecera HTTP cola clave \"MediaWiki-API-Error\" y, darréu, tanto'l valor de la cabecera como'l códigu d'error devueltu pondránse al mesmu valor. Pa más información, consulta [[mw:API:Errors_and_warnings|API: Errores y avisos]].",
+       "apihelp-main-param-action": "Qué aición facer.",
+       "apihelp-main-param-format": "El formatu de la salida."
+}
index d6a1fec..8ba597a 100644 (file)
@@ -5,7 +5,8 @@
                        "YjM",
                        "Juandev",
                        "Aktron",
-                       "Cvanca"
+                       "Cvanca",
+                       "Utar"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Dokumentace]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-mailová konference]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Oznámení k API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Chyby a požadavky]\n</div>\n<strong>Stav:</strong> Všechny funkce uvedené na této stránce by měly fungovat, ale API se stále aktivně vyvíjí a může se kdykoli změnit. Upozornění na změny získáte přihlášením se k [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-mailové konferenci mediawiki-api-announce].\n\n<strong>Chybné požadavky:</strong> Pokud jsou do API zaslány chybné požadavky, bude vrácena HTTP hlavička s klíčem „MediaWiki-API-Error“ a hodnota této hlavičky a chybový kód budou nastaveny na stejnou hodnotu. Více informací najdete [[mw:API:Errors_and_warnings|v dokumentaci]].",
        "apihelp-help-example-help": "Nápověda k samotnému modulu nápovědy",
        "apihelp-help-example-query": "Nápověda pro dva podmoduly query",
        "apihelp-imagerotate-description": "Otočit jeden nebo více obrázků.",
+       "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 37a3b97..0ddbd2b 100644 (file)
@@ -9,7 +9,9 @@
                        "Giftpflanze",
                        "Macofe",
                        "Se4598",
-                       "Purodha"
+                       "Purodha",
+                       "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-import-param-interwikipage": "Für Interwiki-Importe: zu importierende Seite.",
        "apihelp-import-param-fullhistory": "Für Interwiki-Importe: importiere die komplette Versionsgeschichte, nicht nur die aktuelle Version.",
        "apihelp-import-param-templates": "Für Interwiki-Importe: importiere auch alle eingebundenen Vorlagen.",
-       "apihelp-import-param-namespace": "Für Interwiki-Importe: importiere in diesen Namensraum.",
-       "apihelp-import-param-rootpage": "Als Unterseite dieser Seite importieren.",
+       "apihelp-import-param-namespace": "In diesen Namensraum importieren. Überschreibt den Parameter <kbd>$1rootpage</kbd>.",
+       "apihelp-import-param-rootpage": "Als Unterseite dieser Seite importieren. Wird ignoriert, falls der Parameter <kbd>$1namespace</kbd> angegeben ist.",
        "apihelp-import-example-import": "Importiere [[meta:Help:Parserfunctions]] mit der kompletten Versionsgeschichte in den Namensraum 100.",
        "apihelp-login-description": "Anmelden und Authentifizierungs-Cookies beziehen.\n\nFalls das Anmelden erfolgreich war, werden die benötigten Cookies im Header der HTTP-Antwort des Servers übermittelt. Bei fehlgeschlagenen Anmeldeversuchen können weitere Versuche gedrosselt werden, um automatische Passwortermittlungsattacken zu verhinden.",
        "apihelp-login-param-name": "Benutzername.",
        "apihelp-rsd-description": "Ein RSD-Schema (Really Simple Discovery) exportieren.",
        "apihelp-rsd-example-simple": "Das RSD-Schema exportieren",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "An allen beobachteten Seiten arbeiten.",
+       "apihelp-tag-param-reason": "Grund für die Änderung.",
        "apihelp-unblock-description": "Einen Benutzer freigeben.",
        "apihelp-unblock-param-reason": "Grund für die Freigabe.",
        "apihelp-unblock-example-id": "Sperrkennung #<kbd>105</kbd> freigeben.",
        "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.",
        "api-help-flag-writerights": "Dieses Modul erfordert Schreibrechte.",
        "api-help-flag-mustbeposted": "Dieses Modul akzeptiert nur POST-Anfragen.",
        "api-help-flag-generator": "Dieses Modul kann als Generator verwendet werden.",
+       "api-help-source": "Quelle: $1",
+       "api-help-source-unknown": "Quelle: <span class=\"apihelp-unknown\">unbekannt</span>",
+       "api-help-license": "Lizenz: [[$1|$2]]",
+       "api-help-license-noname": "Lizenz: [[$1|Siehe Link]]",
+       "api-help-license-unknown": "Lizenz: <span class=\"apihelp-unknown\">unbekannt</span>",
        "api-help-parameters": "{{PLURAL:$1|Parameter}}:",
        "api-help-param-deprecated": "Veraltet.",
        "api-help-param-required": "Dieser Parameter ist erforderlich.",
+       "api-help-datatypes-header": "Datentypen",
        "api-help-param-list": "{{PLURAL:$1|1=Ein Wert|2=Werte (mit <kbd>{{!}}</kbd> trennen)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Muss leer sein|Kann leer sein oder $2}}",
        "api-help-param-limit": "Nicht mehr als $1 erlaubt.",
index bf1fe97..1e88909 100644 (file)
 
        "apihelp-query+pageprops-description": "Get various properties defined in the page content.",
        "apihelp-query+pageprops-param-prop": "Only list these props. Useful for checking whether a certain page uses a certain page prop.",
-       "apihelp-query+pageprops-example-simple": "Get properties for <kbd>Category:Foo</kbd>.",
+       "apihelp-query+pageprops-example-simple": "Get properties for the pages <kbd>Main Page</kbd> and <kbd>MediaWiki</kbd>.",
 
        "apihelp-query+pageswithprop-description": "List all pages using a given page property.",
        "apihelp-query+pageswithprop-param-propname": "Page prop for which to enumerate pages.",
        "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.",
index f42f549..5705c48 100644 (file)
@@ -6,7 +6,8 @@
                        "Alan",
                        "Fitoschido",
                        "JasterTDC",
-                       "Edslov"
+                       "Edslov",
+                       "Carlos Cristia"
                ]
        },
        "apihelp-main-param-action": "Qué acción se realizará.",
        "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-compare-param-fromtitle": "Primer título para 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-createaccount-description": "Crear una nueva cuenta de usuario.",
        "apihelp-createaccount-param-name": "Nombre de usuario.",
        "apihelp-createaccount-param-email": "Dirección de correo electrónico del usuario (opcional).",
@@ -64,6 +69,7 @@
        "apihelp-feedrecentchanges-param-feedformat": "El formato del canal.",
        "apihelp-feedrecentchanges-param-invert": "Todos los espacios de nombres menos el que está seleccionado.",
        "apihelp-feedrecentchanges-param-associated": "Incluir el espacio de nombres asociado (discusión o principal).",
+       "apihelp-feedrecentchanges-param-days": "Días a los que limitar los resultados.",
        "apihelp-feedrecentchanges-param-limit": "Número máximo de resultados que devolver.",
        "apihelp-feedrecentchanges-param-from": "Mostrar los cambios realizados a partir de entonces.",
        "apihelp-feedrecentchanges-param-hideminor": "Ocultar cambios menores.",
        "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).",
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..47f3b57 100644 (file)
@@ -12,7 +12,8 @@
                        "Raulel",
                        "Arkanosis",
                        "Ltrlg",
-                       "Crochet.david"
+                       "Crochet.david",
+                       "0x010C"
                ]
        },
        "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 +87,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.",
index 16c23c8..7882da4 100644 (file)
        "apihelp-import-param-interwikipage": "Para importacións interwiki: páxina a importar.",
        "apihelp-import-param-fullhistory": "Para importacións interwiki: importar o historial completo, non só a versión actual.",
        "apihelp-import-param-templates": "Para importacións interwiki: importar tódolos modelos incluídos.",
-       "apihelp-import-param-namespace": "Para importacións interwiki: importar a este espazo de nomes.",
-       "apihelp-import-param-rootpage": "Importar como subpáxina desta páxina.",
+       "apihelp-import-param-namespace": "Importar a este espazo de nomes. Ignora o parámetro <kbd>$1rootpage</kbd>.",
+       "apihelp-import-param-rootpage": "Importar como subpáxina desta páxina. Ignorado se se proporciona o parámetro <kbd>$1namespace</kbd>.",
        "apihelp-import-example-import": "Importar [[meta:Help:Parserfunctions]] ó espazo de nomes 100 con todo o historial.",
        "apihelp-login-description": "No caso dunha conexión correcta, as cookies necesarias incluiranse nas cabeceiras HTTP de resposta. No caso dunha conexión fallida, os intentos posteriores poden ser reducidos para limitar ataques automaticos de roubo de contrasinais.",
        "apihelp-login-param-name": "Nome de usuario.",
        "apihelp-query+allfileusages-param-to": "Título do ficheiro no que rematar de enumerar.",
        "apihelp-query+allfileusages-param-prefix": "Buscar tódolos títulos de ficheiro que comezan con este valor.",
        "apihelp-query+allfileusages-param-unique": "Mostrar só nomes de ficheiro distintos. Non pode usarse con $1prop=ids.\nCando se usa como xenerador, produce páxinas obxectivo no canto de páxinas fonte.",
-       "apihelp-query+allfileusages-param-prop": "Que partes de información incluír:\n;ids:Engade o ID de páxina usada (non pode usarse con $1unique).\n;title:Engade o nome do ficheiro.",
+       "apihelp-query+allfileusages-param-prop": "Que partes de información incluír:\n;ids:Engade os IDs das páxinas usadas (non pode usarse con $1unique).\n;title:Engade o nome do ficheiro.",
        "apihelp-query+allfileusages-param-limit": "Número total de obxectos a devolver.",
        "apihelp-query+allfileusages-param-dir": "Dirección na cal listar.",
        "apihelp-query+allfileusages-example-B": "Lista títulos de ficheiro, incluíndo os   eliminados, cos IDs de páxina dos que proveñen, comezando en <kbd>B</kbd>.",
        "apihelp-query+blocks-param-users": "Lista de usuarios a buscar (opcional).",
        "apihelp-query+blocks-param-ip": "Obter todos os bloques aplicables a esta IPs ou a este rango CIDR, incluíndo bloques de rangos.\nNon pode usarse xunto con <var>$3users</var>. Os rangos CIDR maiores que IPv4/$1 ou IPv6/$2 non se aceptan.",
        "apihelp-query+blocks-param-limit": "Número máximo de bloques a listar.",
+       "apihelp-query+blocks-param-prop": "Que propiedades obter:\n;id:Engade o identificador do bloqueo.\n;user:Engade o nome de usario do usuario bloqueado.\n;userid:Engade o identificador de usuario do usuario bloqueado.\n;by:Engade o nome de usuario do usuario que fixo o bloqueo.\n;byid:Engade o identificador do usuario que fixo o bloqueo.\n;timestamp:Engade o selo de tempo de cando se realizou o bloqueo.\n;expiry:Engade o selo de tempo de cando remata o bloqueo.\n;reason:Engade a razón dada para o bloqueo.\n;range:Engade o rango de direccións IP afectadas polo bloqueo.\n;flags:Etiqueta o bloqueo con (autoblock, anononly, etc.).",
        "apihelp-query+blocks-param-show": "Só mostrar elementos correspondentes a eses criterios.\nPor exemplo, para ver só bloques indefinidos en direccións IP, ponga <kbd>$1show=ip|!temp</kbd>.",
        "apihelp-query+blocks-example-simple": "Listar bloques.",
        "apihelp-query+blocks-example-users": "Lista de bloques de usuarios <kbd>Alice</kbd> e <kbd>Bob</kbd>.",
        "apihelp-query+deletedrevs-param-excludeuser": "Non listar revisións deste usuario.",
        "apihelp-query+deletedrevs-param-namespace": "Só listar páxinas neste espazo de nomes.",
        "apihelp-query+deletedrevs-param-limit": "Máximo número de revisións a listar.",
+       "apihelp-query+deletedrevs-param-prop": "Que propiedades devolver:\n;revid:Engade o identificador de modificación da modificación borrada.\n;parentid:Engade o identificador de modificación da versión anterior da páxina.\n;user:Engade o usuario que fixo esa modificación.\n;userid:Engade o identificador de usuario que fixo esa modificación.\n;comment:Engade o comentario da modificación.\n;parsedcomment:Engade o comentario analizado da modificación.\n;minor:Indica se a modificación é menor.\n;len:Engade a lonxitude (bytes) da modificación.\n;sha1:Engade o SHA-1 (base 16) da modificación.\n;content:Engade o contido da modificación.\n;token:<span class=\"apihelp-deprecated\">Obsoleto.</span> Devolve o identificador da modificación.\n;tags:Etiquetas da modificación.",
        "apihelp-query+deletedrevs-example-mode1": "Listar as últimas revisións borradas das páxinas <kbd>Main Page</kbd> e <kbd>Talk:Main Page</kbd>, con contido (modo 1).",
        "apihelp-query+deletedrevs-example-mode2": "Listar as últimas 50 contribucións borradas de <kbd>Bob</kbd> (modo 2).",
        "apihelp-query+deletedrevs-example-mode3-main": "Listar as primeiras 50 revisións borradas no espazo de nomes principal (modo 3)",
        "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+pagepropnames-example-simple": "Obter os dez primeiros nomes de propiedade.",
        "apihelp-query+pageprops-description": "Obter varias propiedades definidas no contido da páxina.",
        "apihelp-query+pageprops-param-prop": "Listar só esas propiedades. Útil para verificar se unha páxina concreta usa unha propiedade de páxina determinada.",
-       "apihelp-query+pageprops-example-simple": "Obter as propiedades para <kbd>Category:Foo</kbd>.",
+       "apihelp-query+pageprops-example-simple": "Obter as propiedades para as páxinas <kbd>Main Page</kbd> e <kbd>MediaWiki</kbd>",
        "apihelp-query+pageswithprop-description": "Mostrar a lista de páxinas que empregan unha propiedade determinada.",
        "apihelp-query+pageswithprop-param-propname": "Propiedade de páxina pola que enumerar as páxinas.",
        "apihelp-query+pageswithprop-param-prop": "Que información incluír:\n;ids:Engade o ID da páxina.\n;title:Engade o título e o ID do espazo de nomes da páxina.\n;value:Engade o valor da propiedade da páxina.",
        "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+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+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 8d2d616..a9bcf30 100644 (file)
@@ -30,6 +30,7 @@
        "apihelp-block-param-watchuser": "その利用者またはIPアドレスの利用者ページとトークページをウォッチします。",
        "apihelp-block-example-ip-simple": "IPアドレス <kbd>192.0.2.5</kbd> を <kbd>First strike<kbd> という理由で3日ブロックする",
        "apihelp-block-example-user-complex": "利用者 <kbd>Vandal</kbd> を <kbd>Vandalism</kbd> という理由で無期限ブロックし、新たなアカウント作成とメールの送信を禁止する。",
+       "apihelp-checktoken-description": "<kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> のトークンの妥当性を確認します。",
        "apihelp-checktoken-param-type": "調べるトークンの種類。",
        "apihelp-checktoken-param-token": "調べるトークン。",
        "apihelp-checktoken-example-simple": "<kbd>csrf</kbd> トークンの妥当性を調べる。",
        "apihelp-edit-param-section": "節番号です。先頭の節の場合は <kbd>0</kbd>、新しい節の場合は <kbd>new</kbd>を指定します。",
        "apihelp-edit-param-sectiontitle": "新しい節の名前です。",
        "apihelp-edit-param-text": "ページの本文。",
+       "apihelp-edit-param-tags": "この版に適用する変更タグ。",
        "apihelp-edit-param-minor": "細部の編集",
        "apihelp-edit-param-notminor": "細部の編集ではない。",
+       "apihelp-edit-param-basetimestamp": "編集前の版のタイムスタンプ。編集競合を検出するために使用されます。\n[[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]] で取得できます。",
+       "apihelp-edit-param-starttimestamp": "編集作業を開始したときのタイムスタンプ。編集競合を検出するために使用されます。適切な値は <var>[[Special:ApiHelp/main|curtimestamp]]</var> を使用して編集作業を開始するとき (たとえば、編集するページの本文を読み込んだとき) に取得できます。",
        "apihelp-edit-param-createonly": "すでにそのページが存在する場合は編集を行いません。",
        "apihelp-edit-param-nocreate": "そのページが存在しない場合にエラーを返します。",
        "apihelp-edit-param-watch": "そのページを現在の利用者のウォッチリストに追加します。",
@@ -74,6 +78,7 @@
        "apihelp-edit-example-undo": "版 13579 から 13585 まで要約を自動入力して取り消す。",
        "apihelp-emailuser-description": "利用者に電子メールを送信します。",
        "apihelp-emailuser-param-target": "送信先の利用者名。",
+       "apihelp-emailuser-param-subject": "題名。",
        "apihelp-emailuser-param-text": "電子メールの本文。",
        "apihelp-emailuser-param-ccme": "電子メールの複製を自分にも送信します。",
        "apihelp-emailuser-example-email": "利用者 <kbd>WikiSysop</kbd> に <kbd>Content</kbd> という本文の電子メールを送信。",
        "apihelp-expandtemplates-example-simple": "ウィキテキスト <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd> を展開する。",
        "apihelp-feedcontributions-description": "利用者の投稿記録フィードを返します。",
        "apihelp-feedcontributions-param-feedformat": "フィードの形式。",
+       "apihelp-feedcontributions-param-user": "投稿記録を取得する利用者。",
        "apihelp-feedcontributions-param-namespace": "この名前空間への投稿記録に絞り込む。",
+       "apihelp-feedcontributions-param-year": "この年以前。",
+       "apihelp-feedcontributions-param-month": "この月以前。",
        "apihelp-feedcontributions-param-tagfilter": "このタグが付与された投稿記録に絞り込む。",
        "apihelp-feedcontributions-param-deletedonly": "削除された投稿記録のみ表示します。",
        "apihelp-feedcontributions-param-toponly": "最新版の編集のみ表示します。",
        "apihelp-help-example-recursive": "すべてのヘルプを1つのページに",
        "apihelp-help-example-help": "ヘルプ モジュール自身のヘルプ",
        "apihelp-help-example-query": "2つの下位モジュールのヘルプ",
+       "apihelp-imagerotate-description": "1つ以上の画像を回転させます。",
        "apihelp-imagerotate-example-simple": "<kbd>File:Example.png</kbd> を <kbd>90</kbd> 度回転させる。",
        "apihelp-imagerotate-example-generator": "<kbd>Category:Flip</kbd> 内のすべての画像を <kbd>180</kbd> 度回転させる。",
        "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": "この名前空間に取り込む。<kbd>$1rootpage</kbd>パラメータをオーバーライドします。",
        "apihelp-import-param-rootpage": "このページの下位ページとしてインポートする。",
-       "apihelp-import-example-import": "[[meta:Help:Parserfunctions]] をすべての履歴とともに名前空間100 にインポートする。",
+       "apihelp-import-example-import": "[[meta:Help:Parserfunctions]] をすべての履歴とともに名前空間100に取り込む。",
        "apihelp-login-param-name": "利用者名。",
        "apihelp-login-param-password": "パスワード。",
        "apihelp-login-param-token": "最初のリクエストで取得したログイントークンです。",
        "apihelp-options-example-complex": "すべての個人設定を初期化し、<kbd>skin</kbd> および <kbd> nickname </kbd> を設定する。",
        "apihelp-paraminfo-description": "API モジュールに関する情報を取得します。",
        "apihelp-paraminfo-param-modules": "モジュールの名前のリスト (<var>action</var> および <var>format</var> パラメーターの値, または <kbd>main</kbd>). <kbd>+</kbd> を使用して下位モジュールを指定できます。",
+       "apihelp-paraminfo-example-1": "<kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd>, and <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> に関する情報を表示する。",
        "apihelp-patrol-description": "ページまたは版を巡回済みにします。",
        "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-query+allcategories-param-from": "列挙を開始するカテゴリ。",
        "apihelp-query+allcategories-param-to": "列挙を終了するカテゴリ。",
        "apihelp-query+allcategories-param-prefix": "この値で始まるタイトルのカテゴリを検索します。",
+       "apihelp-query+allcategories-param-limit": "返すカテゴリの数。",
+       "apihelp-query+allcategories-example-generator": "<kbd>List</kbd> で始まるカテゴリページに関する情報を取得する。",
        "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "<var>$3user</var> と同時に使用できません。",
+       "apihelp-query+alldeletedrevisions-param-start": "列挙の始点となるタイムスタンプ。",
+       "apihelp-query+alldeletedrevisions-param-end": "列挙の終点となるタイムスタンプ。",
+       "apihelp-query+alldeletedrevisions-param-from": "列挙の始点となるページ名。",
+       "apihelp-query+alldeletedrevisions-param-to": "列挙の終点となるページ名。",
+       "apihelp-query+alldeletedrevisions-param-prefix": "この値で始まるすべてのページ名を検索する。",
+       "apihelp-query+alldeletedrevisions-param-tag": "このタグが付与された版のみを一覧表示する。",
        "apihelp-query+alldeletedrevisions-param-user": "この利用者による版のみを一覧表示する。",
        "apihelp-query+alldeletedrevisions-param-excludeuser": "この利用者による版を一覧表示しない。",
        "apihelp-query+alldeletedrevisions-param-namespace": "この名前空間に含まれるページのみを一覧表示します。",
+       "apihelp-query+alldeletedrevisions-param-generatetitles": "ジェネレーターとして使用する場合、版IDではなくタイトルを生成します。",
+       "apihelp-query+alldeletedrevisions-example-user": "利用者 <kbd>Example</kbd> による削除された直近の50版を一覧表示する。",
        "apihelp-query+alldeletedrevisions-example-ns-main": "標準名前空間にある削除された最初の50版を一覧表示する。",
+       "apihelp-query+allfileusages-param-from": "列挙を開始するファイルのタイトル。",
+       "apihelp-query+allfileusages-param-to": "列挙を終了するファイルのタイトル。",
+       "apihelp-query+allfileusages-param-prefix": "この値で始まるすべてのファイルのタイトルを検索する。",
+       "apihelp-query+allimages-param-from": "列挙の始点となる画像タイトル。$1sort=name を指定した場合のみ使用できます。",
+       "apihelp-query+allimages-param-to": "列挙の終点となる画像タイトル。$1sort=name を指定した場合のみ使用できます。",
+       "apihelp-query+allimages-param-start": "列挙の始点となるタイムスタンプ。$1sort=timestamp を指定した場合のみ使用できます。",
+       "apihelp-query+allimages-param-end": "列挙の終点となるタイムスタンプ。$1sort=timestamp を指定した場合のみ使用できます。",
+       "apihelp-query+allimages-param-prefix": "この値で始まるすべての画像タイトルを検索する。$1sort=name を指定した場合のみ使用できます。",
+       "apihelp-query+allimages-param-user": "この利用者によりアップロードされたファイルのみを返す。$1sort=timestamp を指定した場合のみ使用できます。 $1filterbots とは同時に使用できません。",
+       "apihelp-query+allimages-param-mime": "検索対象のMIMEタイプ、たとえば <kbd>image/jpeg</kbd>。",
        "apihelp-query+allimages-param-limit": "返す画像の総数。",
+       "apihelp-query+allimages-example-B": "<kbd>B</kbd> で始まるファイルの一覧を表示する。",
+       "apihelp-query+allimages-example-recent": "[[Special:NewFiles]] のように、最近アップロードされたファイルの一覧を表示する。",
        "apihelp-query+allimages-example-mimetypes": "MIMEタイプが <kbd>image/png</kbd> または <kbd>image/gif</kbd> であるファイルの一覧を表示する",
+       "apihelp-query+allimages-example-generator": "<kbd>T</kbd> で始まる4つのファイルに関する情報を表示する。",
        "apihelp-query+alllinks-description": "与えられた名前空間へのすべてのリンクを一覧表示します。",
        "apihelp-query+alllinks-param-from": "列挙を開始するリンクのタイトル。",
        "apihelp-query+alllinks-param-to": "列挙を終了するリンクのタイトル。",
+       "apihelp-query+alllinks-param-prefix": "この値で始まるすべてのリンクされたページを検索する。",
+       "apihelp-query+alllinks-example-B": "<kbd>B</kbd> で始まるリンクされたページ (存在しないページも含む)を、リンク元のページIDとともに表示する。",
        "apihelp-query+allmessages-param-args": "メッセージ中に展開される引数。",
        "apihelp-query+allmessages-param-filter": "この文字列を含んだ名前のメッセージのみを返す。",
        "apihelp-query+allmessages-param-customised": "変更された状態のメッセージのみを返す。",
        "apihelp-query+allpages-param-from": "列挙を開始するページ名。",
        "apihelp-query+allpages-param-to": "列挙を終了するページ名。",
        "apihelp-query+allpages-param-prefix": "この値で始まるすべてのページ名を検索します。",
+       "apihelp-query+allpages-param-prtype": "保護されているページに絞り込む。",
+       "apihelp-query+allpages-param-limit": "返すページの総数。",
        "apihelp-query+allpages-example-B": "<kbd>B</kbd> で始まるページの一覧を表示する。",
        "apihelp-query+allpages-example-generator": "<kbd>T</kbd> で始まる4つのページに関する情報を表示する。",
        "apihelp-query+allpages-example-generator-revisions": "<kbd>Re</kbd> で始まる最初の非リダイレクトの2ページの内容を表示する。",
        "apihelp-query+allredirects-param-from": "列挙を開始するリダイレクトのタイトル。",
        "apihelp-query+allredirects-param-to": "列挙を終了するリダイレクトのタイトル。",
+       "apihelp-query+alltransclusions-param-prefix": "この値で始まるすべてのトランスクルードされているページを検索する。",
+       "apihelp-query+allusers-description": "すべての登録利用者を一覧表示します。",
+       "apihelp-query+allusers-param-from": "列挙を開始する利用者名。",
+       "apihelp-query+allusers-param-to": "列挙を終了する利用者名。",
+       "apihelp-query+allusers-param-prefix": "この値で始まるすべての利用者を検索する。",
+       "apihelp-query+allusers-param-group": "このグループに所属する利用者のみを結果に含める。",
+       "apihelp-query+allusers-param-excludegroup": "このグループに所属する利用者を結果から除外する。",
+       "apihelp-query+allusers-param-limit": "返す利用者名の総数。",
+       "apihelp-query+allusers-param-witheditsonly": "編集履歴のある利用者のみ一覧表示する。",
        "apihelp-query+allusers-param-activeusers": "最近 $1 {{PLURAL:$1|日間}}のアクティブな利用者のみを一覧表示する。",
        "apihelp-query+allusers-example-Y": "<kbd>Y</kbd> で始まる利用者を一覧表示する。",
+       "apihelp-query+backlinks-description": "与えられたページにリンクしているすべてのページを検索します。",
+       "apihelp-query+backlinks-param-title": "検索するページ名。<var>$1pageid</var> とは同時に使用できません。",
+       "apihelp-query+backlinks-param-pageid": "検索するページID。<var>$1title</var>とは同時に使用できません。",
        "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-limit": "一覧表示するブロックの最大数。",
        "apihelp-query+blocks-example-simple": "ブロックを一覧表示する。",
        "apihelp-query+blocks-example-users": "利用者<kbd>Alice</kbd> および <kbd>Bob</kbd> のブロックを一覧表示する。",
+       "apihelp-query+categories-param-limit": "返すカテゴリの数。",
        "apihelp-query+categories-example-simple": "ページ <kbd>Albert Einstein</kbd> が属しているカテゴリの一覧を取得する。",
        "apihelp-query+categories-example-generator": "ページ <kbd>Albert Einstein</kbd> で使われているすべてのカテゴリに関する情報を取得する。",
        "apihelp-query+categoryinfo-description": "与えられたカテゴリに関する情報を返します。",
        "apihelp-query+categoryinfo-example-simple": "<kbd>Category:Foo</kbd> および <kbd>Category:Bar</kbd> に関する情報を取得する。",
+       "apihelp-query+categorymembers-description": "与えられたカテゴリ内のすべてのページを一覧表示します。",
        "apihelp-query+categorymembers-param-title": "一覧表示するカテゴリ (必須)。<kbd>{{ns:category}}:</kbd> 接頭辞を含まなければなりません。<var>$1pageid</var> とは同時に使用できません。",
        "apihelp-query+categorymembers-param-pageid": "一覧表示するカテゴリのページID. <var>$1title</var> とは同時に使用できません。",
        "apihelp-query+categorymembers-param-limit": "返すページの最大数。",
+       "apihelp-query+categorymembers-param-start": "列挙の始点となるタイムスタンプ。<kbd>$1sort=timestamp</kbd>を指定した場合のみ使用できます。",
+       "apihelp-query+categorymembers-param-end": "列挙の終点となるタイムスタンプ。<kbd>$1sort=timestamp</kbd>を指定した場合のみ使用できます。",
+       "apihelp-query+categorymembers-param-startsortkeyprefix": "列挙の始点となるソートキーの接頭辞。<kbd>$1sort=sortkey</kbd>を指定した場合のみ使用できます。<var>$1starthexsortkey</var>をオーバーライドします。",
        "apihelp-query+categorymembers-param-startsortkey": "代わりに $1starthexsortkey を使用してください。",
        "apihelp-query+categorymembers-param-endsortkey": "代わりに $1endhexsortkey を使用してください。",
        "apihelp-query+categorymembers-example-simple": "<kbd>Category:Physics</kbd> に含まれる最初の10ページを取得する。",
        "apihelp-query+categorymembers-example-generator": "<kbd>Category:Physics</kbd> に含まれる最初の10ページのページ情報を取得する。",
+       "apihelp-query+contributors-description": "ページへのログインした投稿者の一覧と匿名投稿者の数を取得します。",
+       "apihelp-query+contributors-param-limit": "返す投稿者の数。",
        "apihelp-query+contributors-example-simple": "<kbd>Main Page</kbd> への投稿者を表示する。",
        "apihelp-query+deletedrevisions-param-tag": "このタグが付与された版のみ表示します。",
        "apihelp-query+deletedrevisions-param-user": "この利用者による版のみを一覧表示。",
        "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+disabled-description": "このクエリ モジュールは無効化されています。",
        "apihelp-query+embeddedin-param-title": "検索するページ名。$1pageid とは同時に使用できません。",
        "apihelp-query+embeddedin-param-pageid": "検索するページID. $1titleとは同時に使用できません。",
        "apihelp-query+embeddedin-example-generator": "<kbd>Template:Stub</kbd> をトランスクルードしているページに関する情報を取得する。",
        "apihelp-query+extlinks-param-protocol": "URLのプロトコル。このパラメータが空であり、かつ<var>$1query</var> が設定されている場合, protocol は <kbd>http</kbd> となります。すべての外部リンクを一覧表示するためにはこのパラメータと <var>$1query</var> の両方を空にしてください。",
        "apihelp-query+extlinks-example-simple": "<kbd>Main Page<kbd> の外部リンクの一覧を取得する。",
        "apihelp-query+exturlusage-description": "与えられたURLを含むページを一覧表示します。",
+       "apihelp-query+exturlusage-example-simple": "<kbd>http://www.mediawiki.org</kbd> にリンクしているページを一覧表示する。",
        "apihelp-query+filearchive-example-simple": "削除されたファイルの一覧を表示する。",
        "apihelp-query+fileusage-example-simple": "[[:File:Example.jpg]] を使用しているページの一覧を取得する。",
        "apihelp-query+fileusage-example-generator": "[[:File:Example.jpg]] を使用しているページの情報を取得する。",
+       "apihelp-query+imageinfo-param-start": "一覧表示の始点となるタイムスタンプ。",
+       "apihelp-query+imageinfo-param-end": "一覧表示の終点となるタイムスタンプ。",
        "apihelp-query+images-description": "与えられたページに含まれるすべてのファイルを返します。",
        "apihelp-query+images-param-limit": "返す画像の数。",
        "apihelp-query+images-example-simple": "[[Main Page]] で使用されているファイルの一覧を取得する。",
        "apihelp-query+info-example-simple": "<kbd>Main Page</kbd> に関する情報を取得する。",
        "apihelp-query+iwbacklinks-example-simple": "[[wikibooks:Test]] へリンクしているページを取得する。",
        "apihelp-query+iwbacklinks-example-generator": "[[wikibooks:Test]] へリンクしているページの情報を取得する。",
+       "apihelp-query+iwlinks-param-limit": "返すウィキ間リンクの数。",
+       "apihelp-query+iwlinks-param-prefix": "この接頭辞のウィキ間リンクのみを返す。",
+       "apihelp-query+iwlinks-param-title": "検索するウィキ間リンク。<var>$1</var> と同時に使用しなければなりません。",
+       "apihelp-query+iwlinks-example-simple": "<kbd>Main Page</kbd> にあるウィキ間リンクを取得する。",
+       "apihelp-query+langbacklinks-param-lang": "言語間リンクの言語。",
+       "apihelp-query+langbacklinks-param-title": "検索する言語間リンク。$1lang と同時に使用しなければなりません。",
+       "apihelp-query+langbacklinks-param-limit": "返すページの総数。",
        "apihelp-query+langbacklinks-example-simple": "[[:fr:Test]] へリンクしているページを取得する。",
        "apihelp-query+langbacklinks-example-generator": "[[:fr:Test]] へリンクしているページの情報を取得する。",
+       "apihelp-query+langlinks-param-limit": "返す言語間リンクの数。",
+       "apihelp-query+langlinks-param-url": "完全なURLを取得するかどうか (<var>$1prop</var>とは同時に使用できません).",
+       "apihelp-query+langlinks-param-lang": "この言語コードの言語間リンクのみを返す。",
+       "apihelp-query+langlinks-param-title": "検索するリンク。<var>$1lang</var>と同時に使用しなければなりません。",
+       "apihelp-query+langlinks-example-simple": "<kbd>Main Page</kbd> にある言語間リンクを取得する。",
+       "apihelp-query+links-description": "ページからのすべてのリンクを返します。",
        "apihelp-query+links-param-namespace": "この名前空間へのリンクのみ表示する。",
        "apihelp-query+links-param-limit": "返すリンクの数。",
        "apihelp-query+links-example-simple": "<kbd>Main Page</kbd> からのリンクを取得する。",
        "apihelp-query+links-example-generator": "<kbd>Main Page</kbd> からリンクされているページに関する情報を取得する。",
        "apihelp-query+links-example-namespaces": "<kbd>Main Page</kbd> からの {{ns:user}} および {{ns:template}} 名前空間へのリンクを取得する。",
+       "apihelp-query+linkshere-example-simple": "[[Main Page]] にリンクしているページの一覧を取得する。",
+       "apihelp-query+linkshere-example-generator": "<kbd>[[Main page]]<kbd> にリンクしているページの情報を取得する。",
+       "apihelp-query+logevents-param-start": "列挙の始点となるタイムスタンプ。",
+       "apihelp-query+logevents-param-end": "列挙の終点となるタイムスタンプ。",
        "apihelp-query+logevents-param-user": "与えられた利用者による記録項目に絞り込む。",
        "apihelp-query+logevents-param-title": "そのページに関連する記録項目に絞り込む。",
        "apihelp-query+logevents-param-namespace": "与えられた名前空間内の記録項目に絞り込む。",
        "apihelp-query+pagepropnames-description": "Wiki内で使用されているすべてのページプロパティ名を一覧表示します。",
        "apihelp-query+pagepropnames-param-limit": "返す名前の最大数。",
        "apihelp-query+pagepropnames-example-simple": "最初の10個のプロパティ名を取得する。",
+       "apihelp-query+pageprops-example-simple": "<kbd>Category:Foo</kbd> のプロパティを取得する。",
        "apihelp-query+pageswithprop-description": "与えられたページプロパティが使用されているすべてのページを一覧表示します。",
        "apihelp-query+pageswithprop-param-limit": "返すページの最大数。",
+       "apihelp-query+pageswithprop-example-simple": "<code>&#123;&#123;DISPLAYTITLE:&#125;&#125;</code> を使用している最初の10ページを一覧表示する。",
+       "apihelp-query+pageswithprop-example-generator": "Get page info about first 10 pages using <code>_&#95;NOTOC_&#95;</code> を使用している最初の10ページのページ情報を取得する。",
        "apihelp-query+prefixsearch-description": "ページ名の先頭一致検索を行います。",
        "apihelp-query+prefixsearch-param-search": "検索文字列。",
        "apihelp-query+prefixsearch-param-namespace": "検索する名前空間。",
        "apihelp-query+protectedtitles-param-namespace": "この名前空間に含まれるページのみを一覧表示します。",
        "apihelp-query+protectedtitles-param-level": "この保護レベルのページのみを一覧表示します。",
        "apihelp-query+protectedtitles-param-limit": "返すページの総数。",
+       "apihelp-query+protectedtitles-param-start": "一覧表示の始点となる保護タイムスタンプ。",
+       "apihelp-query+protectedtitles-param-end": "一覧表示の終点となる保護タイムスタンプ。",
        "apihelp-query+protectedtitles-example-simple": "保護されているページを一覧表示する。",
        "apihelp-query+protectedtitles-example-generator": "標準名前空間にある保護されたページへのリンクを検索する。",
        "apihelp-query+querypage-param-page": "特別ページの名前です。これは大文字小文字を区別することに注意。",
        "apihelp-query+querypage-example-ancientpages": "[[Special:Ancientpages]] の結果を返す。",
        "apihelp-query+random-param-namespace": "この名前空間にあるページのみを返します。",
        "apihelp-query+random-example-simple": "標準名前空間から2つのページを無作為に返す。",
+       "apihelp-query+random-example-generator": "標準名前空間から無作為に選ばれた2つのページのページ情報を返す。",
        "apihelp-query+recentchanges-description": "最近の更新を一覧表示します。",
-       "apihelp-query+recentchanges-param-start": "一覧表示を開始するタイムスタンプ。",
-       "apihelp-query+recentchanges-param-end": "一覧表示を終了するタイムスタンプ。",
+       "apihelp-query+recentchanges-param-start": "列挙の始点となるタイムスタンプ。",
+       "apihelp-query+recentchanges-param-end": "列挙の終点となるタイムスタンプ。",
        "apihelp-query+recentchanges-param-namespace": "この名前空間の変更のみに絞り込む。",
        "apihelp-query+recentchanges-param-user": "この利用者による変更のみを一覧表示する。",
        "apihelp-query+recentchanges-param-excludeuser": "この利用者による変更を一覧表示しない。",
        "apihelp-query+recentchanges-param-tag": "このタグが付与された版のみ一覧表示する。",
        "apihelp-query+recentchanges-param-limit": "返す変更の総数。",
+       "apihelp-query+recentchanges-param-toponly": "最新の版である変更のみを一覧表示する。",
        "apihelp-query+recentchanges-example-simple": "最近の更新を一覧表示する。",
+       "apihelp-query+redirects-description": "ページへのすべての転送を返します。",
+       "apihelp-query+redirects-param-limit": "返す転送の数。",
        "apihelp-query+redirects-example-simple": "[[Main Page]] への転送の一覧を取得する。",
        "apihelp-query+redirects-example-generator": "[[Main Page]] へのすべての転送ページに関する情報を取得する。",
+       "apihelp-query+revisions-param-user": "この利用者による版のみを結果に含める。",
+       "apihelp-query+revisions-param-excludeuser": "この利用者による版を結果に含めない。",
+       "apihelp-query+revisions-param-tag": "このタグが付与された版のみを一覧表示する。",
+       "apihelp-query+revisions-example-content": "ページ<kbd>API</kbd> および <kbd>Main Page</kbd> の最新の版のデータと本文を取得する。",
+       "apihelp-query+revisions-example-last5": "<kbd>Main Page</kbd> の直近の5版を取得する。",
+       "apihelp-query+revisions-example-first5": "<kbd>Main Page</kbd> の最初の5版を取得する。",
+       "apihelp-query+revisions-example-first5-after": "<kbd>Main Page</kbd> の 2006-05-01 以降の最初の5版を取得する。",
+       "apihelp-query+revisions-example-first5-not-localhost": "<kbd>Main Page</kbd> の匿名利用者 <kbd>127.0.0.1</kbd> 以外による最初の5版を取得する。",
+       "apihelp-query+revisions-example-first5-user": "<kbd>Main Page</kbd> の <kbd>MediaWiki default</kbd> による最初の5版を取得する。",
+       "apihelp-query+search-description": "全文検索を行います。",
+       "apihelp-query+search-param-search": "この値を含むすべてのページ名 (または本文) を検索します。",
+       "apihelp-query+search-param-namespace": "この名前空間内のみを検索します。",
+       "apihelp-query+search-param-what": "実行する検索の種類です。",
+       "apihelp-query+search-param-limit": "返すページの総数です。",
+       "apihelp-query+search-example-simple": "<kbd>meaning</kbd> を検索する。",
+       "apihelp-query+search-example-generator": "<kbd>meaning</kbd> の検索で返されたページのページ情報を取得する。",
        "apihelp-query+tags-description": "変更タグを一覧表示します。",
        "apihelp-query+tags-param-limit": "一覧表示するタグの最大数。",
        "apihelp-query+tags-example-simple": "利用可能なタグを一覧表示する。",
        "apihelp-query+templates-example-simple": "<kbd>Main Page</kbd> で使用されているテンプレートを取得する。",
        "apihelp-query+templates-example-generator": "<kbd>Main Page</kbd> で使用されているテンプレートに関する情報を取得する。",
        "apihelp-query+templates-example-namespaces": "<kbd>Main Page</kbd> でトランスクルードされている {{ns:user}} および {{ns:template}} 名前空間のページを取得する。",
+       "apihelp-query+tokens-description": "データ変更操作用のトークンを取得します。",
        "apihelp-query+tokens-param-type": "リクエストするトークンの種類。",
        "apihelp-query+tokens-example-simple": "csrfトークンを取得する (既定)。",
        "apihelp-query+tokens-example-types": "ウォッチトークンおよび巡回トークンを取得する。",
        "apihelp-query+transcludedin-description": "与えられたページをトランスクルードしているすべてのページを検索します。",
+       "apihelp-query+transcludedin-example-simple": "<kbd>Main Page</kbd> をトランスクルードしているページの一覧を取得する。",
+       "apihelp-query+transcludedin-example-generator": "<kbd>Main Page</kbd> をトランスクルードしているページに関する情報を取得する。",
        "apihelp-query+usercontribs-description": "利用者によるすべての編集を取得します。",
        "apihelp-query+usercontribs-param-limit": "返す投稿記録の最大数。",
        "apihelp-query+usercontribs-param-user": "投稿記録を取得する利用者。",
        "apihelp-query+usercontribs-param-tag": "このタグが付与された版のみを一覧表示する。",
        "apihelp-query+usercontribs-param-toponly": "最新の版である変更のみを一覧表示する。",
        "apihelp-query+usercontribs-example-user": "利用者 <kbd>Example</kbd> の投稿記録を表示する。",
+       "apihelp-query+users-param-token": "代わりに <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> を使用してください。",
        "apihelp-query+users-example-simple": "利用者 <kbd>Example</kbd> の情報を返す。",
        "apihelp-query+watchlist-description": "現在の利用者のウォッチリストにあるページへの最近の更新を取得します。",
+       "apihelp-query+watchlist-param-start": "列挙の始点となるタイムスタンプ。",
+       "apihelp-query+watchlist-param-end": "列挙の終点となるタイムスタンプ。",
        "apihelp-query+watchlist-param-namespace": "この名前空間の変更のみに絞り込む。",
        "apihelp-query+watchlist-param-user": "この利用者による変更のみを一覧表示する。",
        "apihelp-query+watchlist-param-excludeuser": "この利用者による変更を一覧表示しない。",
        "apihelp-rollback-param-title": "巻き戻すページ名です。<var>$1pageid</var> とは同時に使用できません。",
        "apihelp-rollback-param-pageid": "巻き戻すページのページIDです。<var>$1title</var> とは同時に使用できません。",
        "apihelp-rollback-example-simple": "利用者 <kbd>Example</kbd> による <kbd>Main Page</kbd> への最後の一連の編集を巻き戻す。",
+       "apihelp-tag-param-reason": "変更の理由。",
        "apihelp-tag-example-log": "<kbd>Wrongly applied</kbd> という理由で <kbd>spam</kbd> タグを 記録項目ID 123 から取り除く",
        "apihelp-tokens-param-type": "リクエストするトークンの種類。",
        "apihelp-tokens-example-edit": "編集トークンを取得する (既定)。",
        "apihelp-unblock-param-user": "ブロックを解除する利用者名、IPアドレスまたはIPレンジ。<var>$1id</var>とは同時に使用できません。",
        "apihelp-unblock-param-reason": "ブロック解除の理由。",
        "apihelp-unblock-example-id": "ブロックID #<kbd>105</kbd> を解除する。",
+       "apihelp-unblock-example-user": "<kbd>Sorry Bob</kbd> という理由で利用者 <kbd>Bob</kbd> のブロックを解除する。",
        "apihelp-undelete-description": "削除されたページの版を復元します。\n\n削除された版の一覧 (タイムスタンプを含む) は[[Special:ApiHelp/query+deletedrevs|list=deletedrevs]]に、また削除されたファイルのID一覧は[[Special:ApiHelp/query+filearchive|list=filearchive]]で見つけることができます。",
        "apihelp-undelete-param-title": "復元するページ名。",
        "apihelp-undelete-param-reason": "復元の理由。",
        "apihelp-undelete-param-timestamps": "復元する版のタイムスタンプ。<var>$1timestamps</var> と <var>$1fileids</var> の両方が空の場合、すべての版が復元されます。",
        "apihelp-undelete-example-page": "<kbd>Main Page</kbd> を復元する。",
        "apihelp-undelete-example-revisions": "<kbd>Main Page</kbd> の2つの版を復元する。",
+       "apihelp-upload-param-watch": "このページをウォッチする。",
+       "apihelp-upload-param-ignorewarnings": "あらゆる警告を無視する。",
        "apihelp-userrights-param-user": "利用者名。",
        "apihelp-userrights-param-userid": "利用者ID。",
        "apihelp-userrights-param-add": "利用者をこのグループに追加します。",
+       "apihelp-userrights-param-reason": "変更の理由。",
+       "apihelp-watch-example-watch": "<kbd>Main Page</kbd> をウォッチする。",
+       "apihelp-watch-example-unwatch": "<kbd>Main Page</kbd> のウォッチを解除する。",
        "apihelp-format-example-generic": "クエリの結果を $1 形式に整形します",
        "apihelp-dbg-description": "データを PHP の <code>var_export()</code> 形式で出力します。",
        "apihelp-dbgfm-description": "データを PHP の <code>var_export()</code> 形式 (HTML に埋め込んだ形式) で出力します。",
index 7d24c4a..a95bc11 100644 (file)
        "apihelp-block-param-anononly": "Bloß de nahmelohse Metmaaacher spärre, alsu donn et nahmelohse Beärbeide vun dä <i lang=\"en\" xml:lang=\"en\" title=\"Internet Protocol\">IP</i>-Addräß uß verhendere.",
        "apihelp-block-param-nocreate": "Et Neu-Aanmelde verbeede",
        "apihelp-block-param-autoblock": "Dun automattesch de läzde <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräß schpärre, di dä Metmaacher jehatt hät, un och all di <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräße, vun wo dä versöhk, jet ze ändere.",
+       "apihelp-block-param-noemail": "Sorresch derför, dat dä Metmaacher \n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> övver et Wiki verscheck. Bruch et Rääsch „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">blockemail</code>“.",
+       "apihelp-block-param-hidename": "Donn däm Metmaacher singe Nahme em Logbohch vum Metmaacher Schpärre verschteische. Bruch et Rääsch „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hideuser</code>“.",
+       "apihelp-block-param-allowusertalk": "Lohß dä Metmaacher sing eije Klaafsigg verändere. Dat hängk aan „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>“.",
        "apihelp-block-param-reblock": "Wann dä Metmaacher als jeschpächd es, donn dat övverschrihve.",
        "apihelp-block-param-watchuser": "Donn de Metmaachersigg un de Klaafsigg dohzoh op mig Oppaßleß säze.",
        "apihelp-block-example-ip-simple": "Donn de <i lang=\"en\" xmL:lang=\"en\" title=\"Internet Protocol\">IP</i>-Addräß <kbd>192.0.2.5</kbd> för drei ääsch schpärre mem Jrond: <kbd>Eestschlaach</kbd>.",
+       "apihelp-checktoken-param-type": "De Zoot Makehrong zom Pröhfe.",
        "apihelp-checktoken-param-token": "De Makehrong zom Pröhve.",
+       "apihelp-checktoken-param-maxtokenage": "Et jrühßte zojelohße Allder fun dä Makehrong en Sekonde.",
+       "apihelp-checktoken-example-simple": "Pröhf de Jöltechkeit vun dä Makehrong „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">csrf</kbd>“.",
+       "apihelp-clearhasmsg-description": "Nemmp de Makehrong „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hasmsg</code>“ fott vum aktoälle Metmaacher.",
+       "apihelp-clearhasmsg-example-1": "Nemm de Makehrong „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hasmsg</code>“ fott vum aktoälle Metmaacher.",
        "apihelp-compare-description": "Donn de Ongerscheide zwesche zwai Sigge beschtemme.\n\nDo moß derför jeweils en Väsjohn, en Övverschreff för di Sigg, odder ener Sigg iehr Kännong aanjävve, för de beide Sigge.",
        "apihelp-compare-param-fromtitle": "Der Tettel vun dä eezte Sigg zom verjlihsche.",
        "apihelp-compare-param-fromid": "De Kännong vun dä eezte Sigg zom verjlihsche.",
@@ -43,6 +51,9 @@
        "apihelp-createaccount-example-pass": "Lääsch dä Metmaacher <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">testuser</kbd> aan, mem Paßwood <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">test123</kbd>.",
        "apihelp-createaccount-example-mail": "Lääsch dä Metmaacher <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">testmailuser</kbd> aan med emem zohfällesch ußjewörfelte Paßwoot un schegg_em dat övver de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">e-mail</i>.",
        "apihelp-delete-description": "Schmieß en Sigg fott.",
+       "apihelp-delete-param-title": "De Övverschreff vun dä Sigg zom fottschmiiße. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</var>“ bruche.",
+       "apihelp-delete-param-pageid": "De Kännong vun dä Sigg zom fottschmiiße. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1title</var>“ bruche.",
+       "apihelp-delete-param-reason": "Der Jrond för et Fottschmiiße. Wann dä nit aanjejovve es, weed ene automattesch usjräschnete Jrond jenumme.",
        "apihelp-delete-param-watch": "Donn di Sigg en däm aktoälle Metmaacher sing Oppaßleß opnämme.",
        "apihelp-delete-param-unwatch": "Schmihß di Sigg us däm aktoälle Metmaacher singe Oppaßless erus.",
        "apihelp-delete-param-oldimage": "Der Nahme vom ahle Beld zom fottschmiiße, wi hä vun [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]] kütt.",
@@ -83,6 +94,7 @@
        "apihelp-expandtemplates-description": "Deiht alle Schablohne en Wikkitäx ömsäze.",
        "apihelp-expandtemplates-param-title": "De Övverschreff vun dä Sigg.",
        "apihelp-expandtemplates-param-text": "Dä Wikitäx zom ömwandelle.",
+       "apihelp-expandtemplates-param-revid": "De Kännong vun dä Väsjohn, för \n„<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\"><nowiki>{{REVISIONID}}</nowiki></code>“ un verwandte Wääte.",
        "apihelp-expandtemplates-param-includecomments": "Ov Aanmärkonge em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Markup Language\">HTML</i>-Fommaht med ußjejovve wähde sulle.",
        "apihelp-expandtemplates-param-generatexml": "Donn ene Boum vum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Paaser opboue. Es dorsch „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=parsetree</code>“ ässäz.",
        "apihelp-feedcontributions-description": "Jidd ene Kannahl met de Beidräsch vun enem Metmaacher uß.",
        "apihelp-filerevert-description": "Säz en Dattei obb en ahle Väsohn zerök.",
        "apihelp-filerevert-param-filename": "De Zih_Dattei, der ohne „{{ne:file}}“ derför.",
        "apihelp-filerevert-param-comment": "Aanmärkong huh lahde.",
+       "apihelp-filerevert-param-archivename": "Dä nahme vum Aschihv vun dä Väsjohn för wider drop zerök ze jon.",
        "apihelp-filerevert-example-revert": "Donn <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Wiki.png</kbd> op di Väsohn vum <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">2011-03-05T15:27:40Z</kbd> zerök säze.",
        "apihelp-help-description": "zeisch Hölp för de aanjejovve Moduhle.",
        "apihelp-help-param-submodules": "Donn Hölp för de Ongermoduhle vun dämm aanjejovve Moduhl enschschlehße.",
        "apihelp-import-param-interwikipage": "För et Empottehre us enem andere Wikki: De Sigg zom Empottehre.",
        "apihelp-import-param-fullhistory": "För et Empottehre us enem andere Wikki: Donn de jannze Verjangeheid empottehre, nit blohß de aktoälle Väsjohn.",
        "apihelp-import-param-templates": "För et Empottehre us enem andere Wikki: Donn all de nühdejje Schablohne met empottehre.",
-       "apihelp-import-param-namespace": "För et Empottehre us enem andere Wikki: Donn ene heh dat Appachtemang empottehre.",
-       "apihelp-import-param-rootpage": "Als Ongersiff vun heh dä Sigg empottehre-",
+       "apihelp-import-param-namespace": "En heh dat Appachtemang emmpotehre. Övverjangk der Parramehter „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1rootpage</kbd>“ derbei.",
+       "apihelp-import-param-rootpage": "Als Ongersigg vun heh dä Sigg empottehre. Weed ävver övverjange, wann dä der Parramehter „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1namespace</kbd>“ derbei aanjejovve es.",
        "apihelp-import-example-import": "Donn di Sigg „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[meta:Help:Parserfunctions]]</code>“ en et Appachtemang 100 empottehre, met alle älldere Väsjohne.",
        "apihelp-login-param-name": "Metmaacher_Nahme.",
        "apihelp-login-param-password": "Paßwoot.",
        "apihelp-login-param-domain": "De Domaijn (kann fott bliehve)",
        "apihelp-login-example-login": "Enlogge.",
+       "apihelp-logout-description": "Donn ußlogge un maach de Dahte övver de Sezong fott.",
        "apihelp-logout-example-logout": "Donn dä aktoälle Metmaacher ußlogge.",
+       "apihelp-managetags-param-reason": "Ene Jrond för et Aanlähje, Fottschmiiße, Aanschallde un Ußschallde vun dä Makehrong, dä mer ävver nit aanjävve moß.",
        "apihelp-managetags-param-ignorewarnings": "Ov alle Warnonge övverjange wöhde sull, die bei dämm Opdracht opkumme.",
        "apihelp-managetags-example-create": "Donn en Makkehrong aanlähje mem Nahme „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">spam</kbd>“ mem Jrond „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">For use in edit patrolling</kbd>“.",
        "apihelp-managetags-example-delete": "Schmiiß de Makkehrong mem Nahme „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">vandlaism</kbd>“ fott mem Jrond „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Misspelt</kbd>“.",
        "apihelp-opensearch-param-search": "Noh wat söhke?",
        "apihelp-opensearch-param-limit": "De hühßte Aanzahl vun Äjeebnesse för zeröck ze jävve",
        "apihelp-opensearch-param-namespace": "En wällschem Appachtemang söhke.",
+       "apihelp-opensearch-param-suggest": "Don nix wann „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var>“ op „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">false</code>“ jesaz es.",
        "apihelp-opensearch-param-redirects": "Wi met Ömleidonge ömjonn?\n;return:Jivv de Ömleidonge sällver uß.\n;resolve:Jiff de Sigg uß, woh de Ömleidong hen jeiht. Dat künnt winnijer wi „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1limit</code>“ Sigge ußjävve.\nTradizonäll es dä Schtandatt „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">return</code>“ för „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1format=json</code>“ un „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">resolve</code>“ för alle anndere.",
        "apihelp-opensearch-param-format": "Et Fommaht zom Ußjävve.",
        "apihelp-opensearch-example-te": "Fengk Sigge, di met <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Te</kbd> aanfange.",
        "apihelp-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+allcategories-param-to": "De Saachjropp, bes woh hen opzälle.",
        "apihelp-query+allcategories-param-dir": "De Reijefollsch zum Zotehre.",
        "apihelp-query+allcategories-param-limit": "Wi vell Saachjroppe ußjävve?",
-       "apihelp-query+allcategories-param-prop": "Which properties to get:\n;size:Adds number of pages in the category.\n;hidden:Tags categories that are hidden with _&#95;HIDDENCAT_&#95;.\n<!-- \nhttps://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Apihelp-query%2Ballcategories-param-prop/ksh\n-->",
+       "apihelp-query+allcategories-param-prop": "Wat för en Eijeschaffte holle: \n;size:Deiht de Aanzahl Sigge en dä Saachjropp derbei.\n;hidden:Makehrt de veschtoche Sachjroppe met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">_&#95;HIDDENCAT_&#95;</code>“.",
        "apihelp-query+alldeletedrevisions-description": "Donn alle fottjeschmeße Väsjohne vun enem Metmaacher udder en enem Appachemang opleßte.",
        "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Kam_mer blohß met <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$3user</var> bruche.",
        "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Kam_mer nit met <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$3user</var> bruche.",
        "apihelp-query+allfileusages-param-to": "De Övverschreff vun dä Dattei, woh de Leß medd ophühre sull.",
        "apihelp-query+allfileusages-param-prefix": "Söhk noh alle Övverschreffte, di met heh däm Täx aanfange.",
        "apihelp-query+allfileusages-param-unique": "Donn blohß ongerscheidlijje Övverschreffte vun Datteije aanzeije. Kammer nit zesamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=ids<code>“ bruche.\nWann als ene  Jenerahtor enjesaz, bräng Zihlsigge un kein Kwällsigge.",
-       "apihelp-query+allfileusages-param-prop": "Wat för en Aanjahbe ennschlehße:\n;ids:Deiht de Kännonge vun dä Sigg derbei, di dat bruche. Kam_mer nit zersamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1unique</code>“ bruche.\n;title:Deiht dä Dattei ehr Övverschreff derbei.",
+       "apihelp-query+allfileusages-param-prop": "Wat för en Aanjahbe ennschlehße:\n;ids:Deiht de Kännonge vun dä Sigge derbei, di dat bruche. Kam_mer nit zersamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1unique</code>“ bruche.\n;title:Deiht dä Dattei ehr Övverschreff derbei.",
        "apihelp-query+allfileusages-param-limit": "Wi vill sulle överhoup aanjezeisch wähde?",
        "apihelp-query+allfileusages-param-dir": "En wälsche Reijefollsch?",
        "apihelp-query+allfileusages-example-B": "Donn Övverschreffte vun Datteije aanzeije, och vun Datteije, di (noch) nit doh sin, zesame met dä Kännonge vun dä Sigge, woh se vun sin, aanjevange vun <kbd>B</kbd>.",
        "apihelp-query+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-query+blocks-param-start": "Et Dattom un de Zigg vun woh aff opjezallt wähde sull.",
        "apihelp-query+blocks-param-end": "Et Dattom un de Zigg bes woh hen opjezallt wähde sull.",
        "apihelp-query+blocks-param-limit": "De hühßde Aanzahl Spärre zom opleste.",
-       "apihelp-query+blocks-param-prop": "Which properties to get:\n;id:Adds the ID of the block.\n;user:Adds the username of the blocked user.\n;userid:Adds the user ID of the blocked user.\n;by:Adds the username of the blocking user.\n;byid:Adds the user ID of the blocking user.\n;timestamp:Adds the timestamp of when the block was given.\n;expiry:Adds the timestamp of when the block expires.\n;reason:Adds the reason given for the block.\n;range:Adds the range of IP addresses affected by the block.\n;flags:Tags the ban with (autoblock, anononly, etc.).\n<!-- \nhttps://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Apihelp-query%2Bblocks-param-prop/ksh\n-->",
+       "apihelp-query+blocks-param-prop": "Wat för en Eijeschaffte holle:\n;id:Deiht dä Spärr iehr Kännonge derbei.\n;user:Deiht dä Nahme vom jeschpächte Metmaacher derbei.\n;userid:Deiht de Kännong vum jeschpächte Metmaacher derbei.\n;by:Deiht dä Nahme vun däm Metmaacher derbei, dä jeschpächt hät.\n;byid:Deiht de Kännong vun däm Metmaacher derbei, dä jeschpächt hät.\n;timestamp:Deihd et Dattum un de Uhrzigg derbei, wann jeschpächt wood.\n;expiry:Deihd et Dattum un de Uhrzigg derbei, wann di Schparr eröm es.\n;reason:Deiht der Jrond för di Schparr derbei.\n;range:Deiht dä Berätt vun <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Internet Protocol\">IP</i>-Adräße för di Schparr derbei.\n;flags:makkehrt di Spärr met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">autoblock</code>“, „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">anononly</code>“, un esu.",
        "apihelp-query+blocks-example-simple": "Schpärre opleßte.",
        "apihelp-query+blocks-example-users": "Donn de Schpärre vun dä Metmaacher <lang=\"en\" xml:lang=\"en\" dir=\"ltr\" kbd>Alice</kbd> un <lang=\"en\" xml:lang=\"en\" dir=\"ltr\" kbd>Bob</kbd> opleßte.",
        "apihelp-query+categories-description": "Donn alle Saachjroppe epleßte, woh di Sigge dren sin.",
-       "apihelp-query+categories-param-prop": "Which additional properties to get for each category:\n;sortkey:Adds the sortkey (hexadecimal string) and sortkey prefix (human-readable part) for the category.\n;timestamp:Adds timestamp of when the category was added.\n;hidden:Tags categories that are hidden with _&#95;HIDDENCAT_&#95;.\n<!-- \nhttps://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Apihelp-query%2Bcategories-param-prop/ksh\n-->",
+       "apihelp-query+categories-param-prop": "Wat för en zohsäzlejje Eijeschaffte holle för jehde Saachjropp:\n;sortkey:Deiht dä Schlößel zom Zottehre vun dä Saachjropp derbei, en lange häxadezimahle Zahl, un der Schlößelvörsaz, woh ene Minsch jät med aanfange kann.\n;timestamp:Deihd en Dattom un en Zigg derbei, wann di Sachjrobb aanjelaat woode es.\n;hidden:Makehrt de veschtoche Sachjroppe met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">_&#95;HIDDENCAT_&#95;</code>“.",
        "apihelp-query+categories-param-show": "Wat för en Zoot Saachjroppe zeije.",
        "apihelp-query+categories-param-limit": "Wi vell Saachjroppe ußjävve?",
        "apihelp-query+categories-param-dir": "En wälsche Reijefollsch?",
        "apihelp-query+deletedrevisions-param-limit": "De hühßde Aanzahl Väsjohne för opzeleßte.",
        "apihelp-query+deletedrevisions-param-prop": "Wat för en Eijeschaffte holle:\n;revid:Deiht de Kännong vun de fottjeschmeße Väsjohn derbei.\n;parentid:Deiht de Kännong vun de vörrejje Väsjohn vun dä Sigg derbei.\n;user:Deiht dä Metmaacher derbei, dä di Väsjohn jemaat hät.\n;userid:Deiht de Kännong vun däm Metmaacher derbei, dä di Väsjohn jemaat hät.\n;comment:Deiht et Väld „{{int:summary}}“ vun dä Väsjohn derbei.\n;parsedcomment:Deiht et jepaaste Väld „{{int:summary}}“ vun dä Väsjohn derbei.\n;minor:Makehronge, wann di Väsjohn en klein Mini_Änderong es.\n;len:Deiht de Läng (Aanzahl <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Bytes</i>) vun dä Väsjohn derbei.\n;sha1:Deiht dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"secure hash algorithm\">SHA-1 (base 16)</i> vun dä Väsjohn derbei.\n;content:Deiht der Ennhalld vun dä Väsjohn derbei.\n;tags:Makehronge för di Väsjohn.",
        "apihelp-query+deletedrevisions-example-revids": "Donn de Aanjahbe för de fottjeschmeße Väsjohn <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">123456</kbd> holle.",
+       "apihelp-query+deletedrevs-param-start": "Et Dattom un de Zigg vun woh aff opjezallt wähde sull.",
+       "apihelp-query+deletedrevs-param-end": "Et Dattom un de Zigg bes woh hen opjezallt wähde sull.",
+       "apihelp-query+deletedrevs-param-from": "Bejenn de Leß bei heh dä Överschreff.",
+       "apihelp-query+deletedrevs-param-to": "Hühr de Leß bei heh dä Överschreff oop.",
+       "apihelp-query+deletedrevs-param-prefix": "Söhk noh Sigge, woh de Övverschrevv esu aanfängk.",
+       "apihelp-query+deletedrevs-param-unique": "Donn blohß ein Väsjohn för jehde Sigg opleßte.",
+       "apihelp-query+deletedrevs-param-tag": "Donn blohß Väsjohne met heh dä Makehrong opleßte.",
+       "apihelp-query+deletedrevs-param-user": "Donn blohß Väsjohne vun heh däm Metmaacher opleßte.",
+       "apihelp-query+deletedrevs-param-excludeuser": "Donn kein Väsjohne vun heh däm Metmaacher opleßte.",
+       "apihelp-query+deletedrevs-param-namespace": "Donn blohß Sigge en heh däm Appachtemang opleßte.",
+       "apihelp-query+deletedrevs-param-limit": "De hühßde Aanzahl Väsjohne för opzeleßte.",
+       "apihelp-query+disabled-description": "Dat Moduhl för Frohre ze schtälle wohd affjeschalldt.",
+       "apihelp-query+duplicatefiles-description": "Donn alle Datteije opleßte, di desällve Prööfsomm han wi de aanjejovve Datteije.",
+       "apihelp-query+duplicatefiles-param-limit": "Wi vell datteije ußjävve.",
        "apihelp-query+duplicatefiles-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+duplicatefiles-param-localonly": "Lohr blohß noh Datteije heh em Wikki.",
+       "apihelp-query+duplicatefiles-example-simple": "Lohr noh Datteije, di dubbelte vun dä Dattei „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:File:Albert Einstein Head.jpg]]</code>“ sin.",
+       "apihelp-query+duplicatefiles-example-generated": "Lohr noh Dubbelte vun alle Datteije.",
+       "apihelp-query+embeddedin-description": "Fengk alle Sigge, di di aanjejovve Dattei enneschlehße.",
        "apihelp-query+embeddedin-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+filearchive-description": "Donn alle fottjeschmeße Datteije der Reih noh opzälle.",
+       "apihelp-query+filearchive-param-from": "De Övverschreff vun däm Beld, woh de Leß medd aanfange sull.",
+       "apihelp-query+filearchive-param-to": "De Övverschreff vun däm Beld, woh de Leß medd ophühre sull.",
+       "apihelp-query+filearchive-param-prefix": "Söhk noh alle Övverschreffte vun Bellder, di met heh dämm Wäät bejenne.",
+       "apihelp-query+filearchive-param-limit": "Wi vell Bellder ensjesamp zeröckjävve.",
        "apihelp-query+filearchive-param-dir": "En wälsche Reijefollsch opleßte.",
+       "apihelp-query+filearchive-example-simple": "Zeijsch en leß met alle fottjeschmeße Datteije.",
        "apihelp-query+images-param-dir": "En wälsche Reijefollsch opleßte.",
        "apihelp-query+imageusage-param-namespace": "Dat Appachtemang zom opzälle.",
        "apihelp-query+imageusage-param-dir": "En wälsche Reijefollsch opleßte.",
        "apihelp-query+links-param-dir": "En wälsche Reihjefollsch opleßte.",
        "apihelp-query+pagepropnames-param-limit": "De jrüüßte Zahl Nahme för ußzejävve.",
        "apihelp-query+pagepropnames-example-simple": "Holl de eezde zehn Nahme vun Eijeschaffte.",
+       "apihelp-query+pageprops-example-simple": "Holl de Eijeschaffte för di Sigge „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ un „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">MediaWiki</kbd>“.",
        "apihelp-query+pageswithprop-param-limit": "De jrüüßte Zahl Sigge för ußzejävve.",
        "apihelp-query+pageswithprop-param-dir": "En wälsche Reihjefollsch opleßte.",
        "apihelp-query+prefixsearch-param-namespace": "En wällschem Appachtemang söhke.",
        "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 a40e4c1..95c7e86 100644 (file)
@@ -4,6 +4,11 @@
                        "George Animal"
                ]
        },
+       "apihelp-block-param-reason": "Sedemê bo astengkirinê.",
+       "apihelp-createaccount-param-name": "Navê bikarhêner.",
        "apihelp-delete-description": "Rûpelekê jê bibe.",
-       "apihelp-expandtemplates-param-title": "Sernavê rûpelê."
+       "apihelp-edit-param-text": "Naveroka rûpelê.",
+       "apihelp-edit-example-edit": "Rûpelekê biguherîne.",
+       "apihelp-expandtemplates-param-title": "Sernavê rûpelê.",
+       "apihelp-tag-param-reason": "Sedemê bo guherandinê."
 }
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 8428b36..6b8b657 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-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-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-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+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+filearchive-example-simple": "Pokaż listę wszystkich usuniętych plików.",
        "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "Dodaje kanoniczny tytuł pliku.",
        "apihelp-query+imageinfo-paramvalue-prop-dimensions": "Alias rozmiaru.",
index c47d254..04e9a43 100644 (file)
@@ -1,9 +1,12 @@
 {
        "@metadata": {
                "authors": [
-                       "AntanO"
+                       "AntanO",
+                       "கலைவாணன்"
                ]
        },
+       "apihelp-import-param-namespace": "இதனைப் பெயர்வெளிக்கு இறக்குமதி செய்யவும். <kbd>$1rootpage</kbd> அளவுருவை மீறச்செய்யும்.",
+       "apihelp-import-param-rootpage": "இப்பக்கத்தின் துணைப்பக்கமாக இறக்குமதி செய்யவும். <kbd>$1namespace</kbd> அளவுரு வழங்கப்பட்டிருந்தால் இது புறக்கணிக்கப்படும்.",
        "api-help-source": "மூலம்: $1",
        "api-help-license": "அனுமதி: [[$1|$2]]",
        "api-help-license-noname": "அனுமதி: [[$1|இணைப்பைப் பார்]]"
index e548643..0b29232 100644 (file)
        "apihelp-import-param-interwikipage": "用于跨wiki导入:导入的页面。",
        "apihelp-import-param-fullhistory": "用于跨wiki导入:完整导入历史,而不只是最新版本。",
        "apihelp-import-param-templates": "用于跨wiki导入:连带导入所有包含的模板。",
-       "apihelp-import-param-namespace": "用于跨wiki导入:导入到此名字空间。",
-       "apihelp-import-param-rootpage": "导入作为此页面的子页面。",
+       "apihelp-import-param-namespace": "导入至此名字空间。重写<kbd>$1rootpage</kbd>参数。",
+       "apihelp-import-param-rootpage": "作为此页面的子页面导入。如果提供<kbd>$1namespace</kbd>参数则忽略。",
        "apihelp-import-example-import": "将页面[[meta:Help:Parserfunctions]]连带完整历史导入至100名字空间。",
        "apihelp-login-description": "登录并获得身份验证Cookie。\n\n在成功登录的情况下,所需的Cookie将包含在HTTP响应头中。在登录失败的情况下,进一步的尝试可能会被自动密码猜解攻击的限制所遏制。",
        "apihelp-login-param-name": "用户名。",
        "apihelp-query+allimages-example-recent": "显示一个最近上传文件的列表,类似[[Special:NewFiles]]。",
        "apihelp-query+allimages-example-mimetypes": "显示带MIME类型<kbd>image/png</kbd>或<kbd>image/gif</kbd>的文件列表",
        "apihelp-query+allimages-example-generator": "显示有关4个以<kbd>T</kbd>开头的文件的信息。",
+       "apihelp-query+alllinks-param-from": "要列举的起始标题链接。",
+       "apihelp-query+alllinks-param-to": "要列举的最终标题链接。",
        "apihelp-query+alllinks-param-namespace": "要列举的名字空间。",
        "apihelp-query+alllinks-param-limit": "总共要返回多少个项目。",
        "apihelp-query+alllinks-param-dir": "列出方向。",
        "apihelp-query+allmessages-param-prefix": "返回带有该前缀的消息。",
        "apihelp-query+allmessages-example-ipb": "显示以<kbd>ipb-</kbd>开始的消息。",
        "apihelp-query+allmessages-example-de": "显示德语版的<kbd>august</kbd>和<kbd>mainpage</kbd>消息。",
+       "apihelp-query+allpages-param-from": "枚举的起始页面标题。",
+       "apihelp-query+allpages-param-to": "枚举的结束页面标题。",
        "apihelp-query+allpages-param-namespace": "要列举的名字空间。",
        "apihelp-query+allpages-param-filterredir": "要列出哪些页面。",
        "apihelp-query+allpages-param-minsize": "限于至少这么多字节的页面。",
        "apihelp-query+allpages-example-generator": "显示有关4个以字母<kbd>T</kbd>开头的页面的信息。",
        "apihelp-query+allpages-example-generator-revisions": "显示前2个以<kbd>Re</kbd>开头的非重定向页面的内容。",
        "apihelp-query+allredirects-description": "列出至一个名字空间的重定向。",
+       "apihelp-query+allredirects-param-from": "要列举的起始重定向标题。",
+       "apihelp-query+allredirects-param-to": "要列举的最终重定向标题。",
        "apihelp-query+allredirects-param-namespace": "要列举的名字空间。",
        "apihelp-query+allredirects-param-limit": "返回的总计项目数。",
        "apihelp-query+allredirects-param-dir": "罗列所采用的方向。",
        "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+pagepropnames-description": "列出wiki中所有使用中的页面属性名称。",
        "apihelp-query+pagepropnames-param-limit": "返回名称的最大数量。",
        "apihelp-query+pagepropnames-example-simple": "获取前10个属性名称。",
-       "apihelp-query+pageprops-example-simple": "è\8e·å¾\97ç\94¨äº\8e<kbd>Category:Foo</kbd>的属性。",
+       "apihelp-query+pageprops-example-simple": "è\8e·å\8f\96ç\94¨äº\8e页é\9d¢<kbd>Main Page</kbd>å\92\8c<kbd>MediaWiki</kbd>的属性。",
        "apihelp-query+pageswithprop-description": "列出所有使用指定页面属性的页面。",
        "apihelp-query+pageswithprop-param-limit": "返回页面的最大数量。",
        "apihelp-query+pageswithprop-param-dir": "排序的方向。",
        "apihelp-query+search-param-search": "搜索所有拥有此值的页面标题(或内容)。",
        "apihelp-query+search-param-namespace": "只在这些名字空间搜索。",
        "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-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:Timestamps may be specified in several formats. ISO 8601 date and time is recommended. All times are in UTC, any included timezone is ignored.\n:* ISO 8601日期和时间,<kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd>(标点和<kbd>Z</kbd>是可选项)\n:* ISO 8601 date and time with (ignored) fractional seconds, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (dashes, colons, and <kbd>Z</kbd> are optional)\n:* MediaWiki格式,<kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Generic numeric format, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (optional timezone of <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, or <kbd>-<var>##</var></kbd> is ignored)\n:* EXIF格式,<kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 2822 format (timezone may be omitted), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 850 format (timezone may be omitted), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* C ctime format, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Seconds since 1970-01-01T00:00:00Z as a 1 to 13 digit integer",
        "api-help-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 43f957c..a0c3cf2 100644 (file)
@@ -382,8 +382,9 @@ class ChangeTags {
         * @return Status
         * @since 1.25
         */
-       public static function addTagsAccompanyingChangeWithChecks( array $tags,
-               $rc_id, $rev_id, $log_id, $params, User $user ) {
+       public static function addTagsAccompanyingChangeWithChecks(
+               array $tags, $rc_id, $rev_id, $log_id, $params, User $user
+       ) {
 
                // are we allowed to do this?
                $result = self::canAddTagsAccompanyingChange( $tags, $user );
@@ -393,7 +394,7 @@ class ChangeTags {
                }
 
                // do it!
-               self::addTags( $tagsToAdd, $rc_id, $rev_id, $log_id, $params );
+               self::addTags( $tags, $rc_id, $rev_id, $log_id, $params );
 
                return Status::newGood( true );
        }
@@ -517,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 ) {
@@ -706,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,
@@ -1219,4 +1220,22 @@ class ChangeTags {
                $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 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 713c5cb..2ca79cd 100644 (file)
@@ -132,7 +132,7 @@ interface IContextSource {
        public function getStats();
 
        /**
-        * Get a Message object with context set
+        * Get a Message object with context set.  See wfMessage for parameters.
         *
         * @return Message
         */
diff --git a/includes/db/DBConnRef.php b/includes/db/DBConnRef.php
new file mode 100644 (file)
index 0000000..7045494
--- /dev/null
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Helper class to handle automatically marking connections as reusable (via RAII pattern)
+ * as well handling deferring the actual network connection until the handle is used
+ *
+ * @ingroup Database
+ * @since 1.22
+ */
+class DBConnRef implements IDatabase {
+       /** @var LoadBalancer */
+       private $lb;
+
+       /** @var DatabaseBase|null */
+       private $conn;
+
+       /** @var array|null */
+       private $params;
+
+       /**
+        * @param LoadBalancer $lb
+        * @param DatabaseBase|array $conn Connection or (server index, group, wiki ID) array
+        */
+       public function __construct( LoadBalancer $lb, $conn ) {
+               $this->lb = $lb;
+               if ( $conn instanceof DatabaseBase ) {
+                       $this->conn = $conn;
+               } else {
+                       $this->params = $conn;
+               }
+       }
+
+       public function __call( $name, $arguments ) {
+               if ( $this->conn === null ) {
+                       list( $db, $groups, $wiki ) = $this->params;
+                       $this->conn = $this->lb->getConnection( $db, $groups, $wiki );
+               }
+
+               return call_user_func_array( array( $this->conn, $name ), $arguments );
+       }
+
+       public function __destruct() {
+               if ( $this->conn !== null ) {
+                       $this->lb->reuseConnection( $this->conn );
+               }
+       }
+}
index 8c1ebf9..5afff91 100644 (file)
@@ -69,6 +69,8 @@ abstract class DatabaseBase implements IDatabase {
        protected $mLBInfo = array();
        protected $mDefaultBigSelects = null;
        protected $mSchemaVars = false;
+       /** @var array */
+       protected $mSessionVars = array();
 
        protected $preparedArgs;
 
@@ -813,15 +815,17 @@ 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;
@@ -926,6 +930,7 @@ abstract class DatabaseBase implements IDatabase {
                        $p['password'] = isset( $p['password'] ) ? $p['password'] : false;
                        $p['dbname'] = isset( $p['dbname'] ) ? $p['dbname'] : false;
                        $p['flags'] = isset( $p['flags'] ) ? $p['flags'] : 0;
+                       $p['variables'] = isset( $p['variables'] ) ? $p['variables'] : array();
                        $p['tablePrefix'] = isset( $p['tablePrefix'] ) ? $p['tablePrefix'] : 'get from global';
                        $p['schema'] = isset( $p['schema'] ) ? $p['schema'] : $defaultSchemas[$dbType];
                        $p['foreign'] = isset( $p['foreign'] ) ? $p['foreign'] : false;
@@ -2480,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 );
                        }
@@ -4235,7 +4240,7 @@ abstract class DatabaseBase implements IDatabase {
        }
 
        /**
-        * Check to see if a named lock is available. This is non-blocking.
+        * Check to see if a named lock is available (non-blocking)
         *
         * @param string $lockName Name of lock to poll
         * @param string $method Name of method calling us
@@ -4249,8 +4254,7 @@ abstract class DatabaseBase implements IDatabase {
        /**
         * Acquire a named lock
         *
-        * Abstracted from Filestore::lock() so child classes can implement for
-        * their own needs.
+        * Named locks are not related to transactions
         *
         * @param string $lockName Name of lock to aquire
         * @param string $method Name of method calling us
@@ -4262,7 +4266,9 @@ abstract class DatabaseBase implements IDatabase {
        }
 
        /**
-        * Release a lock.
+        * Release a lock
+        *
+        * Named locks are not related to transactions
         *
         * @param string $lockName Name of lock to release
         * @param string $method Name of method calling us
@@ -4275,6 +4281,16 @@ abstract class DatabaseBase implements IDatabase {
                return true;
        }
 
+       /**
+        * Check to see if a named lock used by lock() use blocking queues
+        *
+        * @return bool
+        * @since 1.26
+        */
+       public function namedLocksEnqueue() {
+               return false;
+       }
+
        /**
         * Lock specific tables
         *
index aac95a8..561c811 100644 (file)
@@ -132,6 +132,15 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                if ( is_string( $wgSQLMode ) ) {
                        $set[] = 'sql_mode = ' . $this->addQuotes( $wgSQLMode );
                }
+               // Set any custom settings defined by site config
+               // (e.g. https://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html)
+               foreach ( $this->mSessionVars as $var => $val ) {
+                       // Escape strings but not numbers to avoid MySQL complaining
+                       if ( !is_int( $val ) && !is_float( $val ) ) {
+                               $val = $this->addQuotes( $val );
+                       }
+                       $set[] = $this->addIdentifierQuotes( $var ) . ' = ' . $val;
+               }
 
                if ( $set ) {
                        // Use doQuery() to avoid opening implicit transactions (DBO_TRX)
@@ -873,6 +882,10 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                return ( $row->lockstatus == 1 );
        }
 
+       public function namedLocksEnqueue() {
+               return true;
+       }
+
        /**
         * @param array $read
         * @param array $write
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 624f46b..2ea2487 100644 (file)
@@ -845,8 +845,9 @@ class LoadBalancer {
 
        /**
         * @return int
+        * @since 1.26
         */
-       private function getWriterIndex() {
+       public function getWriterIndex() {
                return 0;
        }
 
@@ -1272,49 +1273,3 @@ class LoadBalancer {
                $this->mProcCache->clear( 'slave_lag' );
        }
 }
-
-/**
- * Helper class to handle automatically marking connections as reusable (via RAII pattern)
- * as well handling deferring the actual network connection until the handle is used
- *
- * @ingroup Database
- * @since 1.22
- */
-class DBConnRef implements IDatabase {
-       /** @var LoadBalancer */
-       private $lb;
-
-       /** @var DatabaseBase|null */
-       private $conn;
-
-       /** @var array|null */
-       private $params;
-
-       /**
-        * @param LoadBalancer $lb
-        * @param DatabaseBase|array $conn Connection or (server index, group, wiki ID) array
-        */
-       public function __construct( LoadBalancer $lb, $conn ) {
-               $this->lb = $lb;
-               if ( $conn instanceof DatabaseBase ) {
-                       $this->conn = $conn;
-               } else {
-                       $this->params = $conn;
-               }
-       }
-
-       public function __call( $name, $arguments ) {
-               if ( $this->conn === null ) {
-                       list( $db, $groups, $wiki ) = $this->params;
-                       $this->conn = $this->lb->getConnection( $db, $groups, $wiki );
-               }
-
-               return call_user_func_array( array( $this->conn, $name ), $arguments );
-       }
-
-       public function __destruct() {
-               if ( $this->conn !== null ) {
-                       $this->lb->reuseConnection( $this->conn );
-               }
-       }
-}
index 91840dd..3d853cb 100644 (file)
@@ -115,10 +115,10 @@ class LoadMonitorMySQL implements LoadMonitor {
                }
 
                # Cache key missing or expired
-               if ( $cache->add( "$memcKey:lock", 1, 10 ) ) {
+               if ( $cache->lock( $memcKey, 0, 10 ) ) {
                        # Let this process alone update the cache value
                        $unlocker = new ScopedCallback( function () use ( $cache, $memcKey ) {
-                               $cache->delete( $memcKey );
+                               $cache->unlock( $memcKey );
                        } );
                } elseif ( is_array( $times ) ) {
                        # Could not acquire lock but an old cache exists, so use it
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..4710022 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();
+                               $titleText = $msg->getTitleText();
+                               if ( $titleText ) {
+                                       $errorMessageParams[] = $titleText;
+                               }
+                               parent::__construct( 'badtitle', $errorMessage, $errorMessageParams );
+                       }
+               } else {
+                       parent::__construct( 'badtitle', $msg, $params );
+               }
        }
 
        /**
@@ -47,5 +62,4 @@ class BadTitleError extends ErrorPageError {
                $wgOut->setStatusCode( 400 );
                parent::report();
        }
-
 }
index 926fd0b..e7e4c75 100644 (file)
@@ -90,7 +90,7 @@ class LocalRepo extends FileRepo {
                foreach ( $storageKeys as $key ) {
                        $hashPath = $this->getDeletedHashPath( $key );
                        $path = "$root/$hashPath$key";
-                       $dbw->begin( __METHOD__ );
+                       $dbw->startAtomic( __METHOD__ );
                        // Check for usage in deleted/hidden files and preemptively
                        // lock the key to avoid any future use until we are finished.
                        $deleted = $this->deletedFileHasKey( $key, 'lock' );
@@ -106,7 +106,7 @@ class LocalRepo extends FileRepo {
                                wfDebug( __METHOD__ . ": $key still in use\n" );
                                $status->successCount++;
                        }
-                       $dbw->commit( __METHOD__ );
+                       $dbw->endAtomic( __METHOD__ );
                }
 
                return $status;
index b4cced3..d368d90 100644 (file)
@@ -844,23 +844,6 @@ class LocalFile extends File {
        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 );
-               }
        }
 
        /**
@@ -1667,7 +1650,6 @@ class LocalFile extends File {
                $this->purgeOldThumbnails( $archiveName );
                if ( $status->isOK() ) {
                        $this->purgeDescription();
-                       $this->purgeHistory();
                }
 
                if ( $wgUseSquid ) {
@@ -2565,7 +2547,6 @@ class LocalFileRestoreBatch {
                        } else {
                                wfDebug( __METHOD__ . " restored {$status->successCount} as archived versions\n" );
                                $this->file->purgeDescription();
-                               $this->file->purgeHistory();
                        }
                }
 
index 39ed24f..ce14003 100644 (file)
@@ -357,6 +357,7 @@ class HTMLForm extends ContextSource {
         * @return bool
         */
        public function isVForm() {
+               wfDeprecated( __METHOD__, '1.25' );
                return false;
        }
 
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 62f0f03..5680c35 100644 (file)
@@ -47,7 +47,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.",
index 1178a1a..0488914 100644 (file)
@@ -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 b9de2cf..802c819 100644 (file)
@@ -4,9 +4,18 @@
                        "Peter Alberti",
                        "Christian List",
                        "Tjernobyl",
-                       "Thomsen"
+                       "Thomsen",
+                       "MGA73"
                ]
        },
+       "config-desc": "Installationsprogrammet til MediaWiki",
+       "config-title": "Installation af MediaWiki $1",
+       "config-information": "Information",
+       "config-localsettings-upgrade": "En <code>LocalSettings.php</code>-fil er blevet fundet.\nFor at opgradere imstallationen, skriv venligst værdien af <code>$wgUpgradeKey</code> i boksen nedenfor.\nDu finder denne i <code>LocalSettings.php</code>.",
+       "config-localsettings-cli-upgrade": "En <code>LocalSettings.php</code>-fil er blevet fundet.\nFor at opgradere installationen skal du køre <code>update.php</code> i stedet for",
+       "config-localsettings-key": "Opgraderingsnøgle:",
+       "config-localsettings-badkey": "Den nøgle du indtastede er forkert.",
+       "config-upgrade-key-missing": "En eksisterende installation af MediaWiki er blevet fundet.\nFor at opgradere denne installation skal du tilføje følgende linje i bunden af din <code>LocalSettings.php</code>:\n\n$1",
        "config-page-language": "Sprog",
        "config-page-welcome": "Velkommen til MediaWiki!",
        "config-page-dbconnect": "Forbind til database",
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 a983651..593a303 100644 (file)
        "config-install-database": "Configurando la base de datos",
        "config-install-schema": "Creando el esquema",
        "config-install-pg-schema-not-exist": "El esquema PostgreSQL no existe.",
-       "config-install-pg-schema-failed": "La creación de las tablas ha fallado.\nAsegúrate de que el usuario \"$1\" puede escribir en el esquema \"$2\".",
+       "config-install-pg-schema-failed": "Falló la creación de las tablas.\nAsegúrate de que la cuenta «$1» tiene permiso de escritura para el esquema «$2».",
        "config-install-pg-commit": "Validando los cambios",
        "config-install-pg-plpgsql": "Comprobación de lenguaje PL/pgSQL",
        "config-pg-no-plpgsql": "Necesita instalar el lenguaje PL/pgSQL en la base de datos $1",
index d40c45a..0a147d2 100644 (file)
        "config-help-restart": "Ynskir tú at sletta øll goymd dáta sum tú hevur skrivað og byrja umaftur at installera?",
        "config-restart": "Ja, byrja umaftur",
        "config-env-php": "PHP $1 er innstallerað.",
-       "config-env-php-toolow": "PHP $1 er installerað.\nMen, MediaWiki krevur PHP $2 ella hægri.",
+       "config-env-hhvm": "HHVM $1 er lagt inn.",
+       "config-unicode-using-intl": "Brúkar [http://pecl.php.net/intl intl PECL ískoytið] til Unicode normalisering.",
+       "config-unicode-pure-php-warning": "<strong>Ávaring:</strong> [http://pecl.php.net/intl intl PECL ískoytið] er ikki tøkt at handfara Unicode normalisering, fellur aftur til eina spakuligari reina-PHP verkseting.\nUm tú koyrir eina netsíðu við høgari ferðslu, so eigur tú at lesa eitt sindur um [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalisering].",
+       "config-unicode-update-warning": "<strong>Ávaring:</strong> Tann innlagda versjónin av Unicode normalisering wrapper nýtir eina eldri versjón av [http://site.icu-project.org/ bókasavninum hjá ICU verkætlanini].\nTú eigur at [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations fremja uppstigning] um tú stúrir fyri at nýta Unicode.",
+       "config-diff3-bad": "GNU diff3 ikki funnið.",
+       "config-git": "Fann Git version control forritið: <code>$1</code>.",
+       "config-git-bad": "Git version control forritið varð ikki funnið.",
+       "config-imagemagick": "Fann ImageMagick: <code>$1</code>.\nTað at velja smámynd verður gjørt virkið um tú aktiverar møgulleikan at leggja myndir út.",
+       "config-using-server": "Brúkar servaranavnið \"<nowiki>$1</nowiki>\".",
+       "config-using-uri": "Nýtir servara URL \"<nowiki>$1$2</nowiki>\".",
+       "config-db-type": "Slag av dátugrunni:",
+       "config-db-host": "Dátugrunn vertur:",
+       "config-db-username": "Dátugrunn brúkaranavn:",
+       "config-db-password": "Dátugrunn loyniorð:",
        "mainpagetext": "'''Innlegging av Wiki-ritbúnaði væleydnað.'''"
 }
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 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 dedc3c2..a1ca9d2 100644 (file)
@@ -59,7 +59,6 @@
        "config-env-bad": "環境を確認しました。\nMediaWiki のインストールはできません。",
        "config-env-php": "PHP $1がインストールされています。",
        "config-env-hhvm": "HHVM $1 がインストールされています。",
-       "config-unicode-using-utf8": "Unicode正規化に、Brion Vibberのutf8_normalize.soを使用。",
        "config-unicode-using-intl": "Unicode正規化に[http://pecl.php.net/intl intl PECL 拡張機能]を使用。",
        "config-unicode-pure-php-warning": "<strong>警告:</strong> Unicode 正規化の処理に [http://pecl.php.net/intl intl PECL 拡張機能]を利用できないため、処理が遅いピュア PHP の実装を代わりに使用しています。\n高トラフィックのサイトを運営する場合は、[//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode 正規化]をお読みください。",
        "config-unicode-update-warning": "<strong>警告:</strong> インストールされているバージョンの Unicode 正規化ラッパーは、[http://site.icu-project.org/ ICU プロジェクト]のライブラリの古いバージョンを使用しています。\nUnicode を少しでも利用する可能性がある場合は、[//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations アップグレード]してください。",
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 e9b05cf..5ebf803 100644 (file)
@@ -8,7 +8,9 @@
                        "Trncmvsr",
                        "Sayginer",
                        "Trockya",
-                       "Aşilleus"
+                       "Aşilleus",
+                       "Nighteagle2000",
+                       "Sadrettin"
                ]
        },
        "config-desc": "MediaWiki yükleyicisi",
@@ -53,7 +55,7 @@
        "config-env-good": "Ortam kontrol edildi.\nMediaWiki'yi kurabilirsiniz.",
        "config-env-bad": "Ortam kontrol edildi.\nMediaWiki'yi kuramazsınız.",
        "config-env-php": "PHP $1 kurulu.",
-       "config-unicode-using-utf8": "Unikod normalleştirmesi için Brion Vibber'in utf8_normalize.so kullanılıyor.",
+       "config-env-hhvm": "HHVM $1 kuruldu",
        "config-unicode-using-intl": "Unikod normalleştirmesi için [http://pecl.php.net/intl intl PECL uzantısı] kullanılıyor.",
        "config-xml-bad": "PHP 'nin XML modülü eksik.\nMediaWiki bu modüldeki fonksiyonlara ihtiyaç duyar ve şimdiki kurulumda çalışmayacaktır.\nMandrake kullanıyorsanız php-xml paketini yükleyin.",
        "config-pcre-old": "<strong>Ağır hata:</strong> PCRE $1 veya daha üst versiyon gerekli.\nSizin PHP kurulumunuz PCRE $2 ile bağlı.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Daha fazla bilgi].",
@@ -90,6 +92,7 @@
        "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-mssql": "Microsoft SQL Server",
        "config-header-mysql": "MySQL ayarları",
        "config-header-postgres": "PostgreSQL ayarları",
        "config-header-sqlite": "SQLite ayarları",
        "config-advanced-settings": "Gelişmiş yapılandırma",
        "config-memcached-servers": "Memcached sunucuları:",
        "config-extensions": "Uzantılar",
+       "config-skins": "Görünümler",
        "config-install-step-done": "Yapıldı",
        "config-install-step-failed": "Başarısız",
        "config-install-database": "Veritabanı ayarlama",
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 320b1b1..b1b650b 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 );
@@ -569,7 +551,7 @@ class JobQueueDB extends JobQueue {
         * @return void
         */
        protected function doFlushCaches() {
-               foreach ( array( 'empty', 'size', 'acquiredcount' ) as $type ) {
+               foreach ( array( 'size', 'acquiredcount' ) as $type ) {
                        $this->cache->delete( $this->getCacheKey( $type ) );
                }
        }
@@ -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 9425423..0948092 100644 (file)
@@ -35,6 +35,11 @@ class JobRunner implements LoggerAwareInterface {
        /** @var callable|null Debug output handler */
        protected $debug;
 
+       /**
+        * @var LoggerInterface $logger
+        */
+       protected $logger;
+
        /**
         * @param callable $debug Optional debug output handler
         */
@@ -42,13 +47,9 @@ class JobRunner implements LoggerAwareInterface {
                $this->debug = $debug;
        }
 
-       /**
-        * @var LoggerInterface $logger
-        */
-       protected $logger;
-
        /**
         * @param LoggerInterface $logger
+        * @return void
         */
        public function setLogger( LoggerInterface $logger ) {
                $this->logger = $logger;
@@ -88,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' );
 
@@ -120,7 +121,7 @@ class JobRunner implements LoggerAwareInterface {
                // Catch huge single updates that lead to slave lag
                $trxProfiler = Profiler::instance()->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.
@@ -183,7 +184,7 @@ class JobRunner implements LoggerAwareInterface {
                                        ++$jobsRun;
                                        $status = $job->run();
                                        $error = $job->getLastError();
-                                       wfGetLBFactory()->commitMasterChanges();
+                                       $this->commitMasterChanges( $job );
                                } catch ( Exception $e ) {
                                        MWExceptionHandler::rollbackMasterChangesAndLog( $e );
                                        $status = false;
@@ -304,7 +305,6 @@ class JobRunner implements LoggerAwareInterface {
         * @return array Map of (job type => backoff expiry timestamp)
         */
        private function loadBackoffs( array $backoffs, $mode = 'wait' ) {
-
                $file = wfTempDir() . '/mw-runJobs-backoffs.json';
                if ( is_file( $file ) ) {
                        $noblock = ( $mode === 'nowait' ) ? LOCK_NB : 0;
@@ -342,7 +342,6 @@ class JobRunner implements LoggerAwareInterface {
         * @return array The new backoffs account for $backoffs and the latest file data
         */
        private function syncBackoffDeltas( array $backoffs, array &$deltas, $mode = 'wait' ) {
-
                if ( !$deltas ) {
                        return $this->loadBackoffs( $backoffs, $mode );
                }
@@ -409,4 +408,65 @@ class JobRunner implements LoggerAwareInterface {
                        call_user_func_array( $this->debug, array( wfTimestamp( TS_DB ) . " $msg\n" ) );
                }
        }
+
+       /**
+        * Commit any DB master changes from a job on all load balancers
+        *
+        * @param Job $job
+        * @throws DBError
+        */
+       private function commitMasterChanges( Job $job ) {
+               global $wgJobSerialCommitThreshold;
+
+               $lb = wfGetLB( wfWikiID() );
+               if ( $wgJobSerialCommitThreshold !== false ) {
+                       // Generally, there is one master connection to the local DB
+                       $dbwSerial = $lb->getAnyOpenConnection( $lb->getWriterIndex() );
+               } else {
+                       $dbwSerial = false;
+               }
+
+               if ( !$dbwSerial
+                       || !$dbwSerial->namedLocksEnqueue()
+                       || $dbwSerial->pendingWriteQueryDuration() < $wgJobSerialCommitThreshold
+               ) {
+                       // Writes are all to foreign DBs, named locks don't form queues,
+                       // or $wgJobSerialCommitThreshold is not reached; commit changes now
+                       wfGetLBFactory()->commitMasterChanges();
+                       return;
+               }
+
+               $ms = intval( 1000 * $dbwSerial->pendingWriteQueryDuration() );
+               $msg = $job->toString() . " COMMIT ENQUEUED [{$ms}ms of writes]";
+               $this->logger->info( $msg );
+               $this->debugCallback( $msg );
+
+               // Wait for an exclusive lock to commit
+               if ( !$dbwSerial->lock( 'jobrunner-serial-commit', __METHOD__, 30 ) ) {
+                       // This will trigger a rollback in the main loop
+                       throw new DBError( $dbwSerial, "Timed out waiting on commit queue." );
+               }
+               // Wait for the generic slave to catch up
+               $pos = $lb->getMasterPos();
+               if ( $pos ) {
+                       $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 ) use ( $fname ) {
+                       $lb->forEachOpenConnection( function( DatabaseBase $conn ) use ( $fname ) {
+                               if ( $conn->writesOrCallbacksPending() ) {
+                                       $conn->query( "SELECT 1", $fname );
+                               }
+                       } );
+               } );
+
+               // Actually commit the DB master changes
+               wfGetLBFactory()->commitMasterChanges();
+
+               // Release the lock
+               $dbwSerial->unlock( 'jobrunner-serial-commit', __METHOD__ );
+       }
 }
index 84cfd47..327a18f 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
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 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.
diff --git a/includes/libs/eventrelayer/EventRelayer.php b/includes/libs/eventrelayer/EventRelayer.php
new file mode 100755 (executable)
index 0000000..a3d214f
--- /dev/null
@@ -0,0 +1,64 @@
+<?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
+ */
+
+/**
+ * Base class for reliable event relays
+ */
+abstract class EventRelayer {
+       /**
+        * @param array $params
+        */
+       public function __construct( array $params ) {}
+
+       /**
+        * @param string $channel
+        * @param array $event Event data map
+        * @return bool Success
+        */
+       final public function notify( $channel, $event ) {
+               return $this->doNotify( $channel, array( $event ) );
+       }
+
+       /**
+        * @param string $channel
+        * @param array $events List of event data maps
+        * @return bool Success
+        */
+       final public function notifyMulti( $channel, $events ) {
+               return $this->doNotify( $channel, $events );
+       }
+
+       /**
+        * @param string $channel
+        * @param array $events List of event data maps
+        * @return bool Success
+        */
+       abstract protected function doNotify( $channel, array $events );
+}
+
+/**
+ * No-op class for publishing messages into a PubSub system
+ */
+class EventRelayerNull extends EventRelayer {
+       public function doNotify( $channel, array $events ) {
+               return true;
+       }
+}
diff --git a/includes/libs/eventrelayer/EventRelayerMCRD.php b/includes/libs/eventrelayer/EventRelayerMCRD.php
new file mode 100755 (executable)
index 0000000..1e8b2a4
--- /dev/null
@@ -0,0 +1,66 @@
+<?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
+ */
+
+/**
+ * Relayed that uses the mcrelaypushd server
+ */
+class EventRelayerMCRD extends EventRelayer {
+       /** @var MultiHttpClient */
+       protected $http;
+       /** @var string */
+       protected $baseUrl;
+
+       /**
+        * Additional params include 'mcrdConfig', which is a map of:
+        *   - url : The base URL of the service (without paths)
+        * @param array $params
+        */
+       public function __construct( array $params ) {
+               parent::__construct( $params );
+
+               $this->baseUrl = $params['mcrdConfig']['url'];
+
+               $httpConfig = isset( $params['httpConfig'] ) ? $params['httpConfig'] : array();
+               if ( !isset( $httpConfig['connTimeout'] ) ) {
+                       $httpConfig['connTimeout'] = 1;
+               }
+               if ( !isset( $httpConfig['reqTimeout'] ) ) {
+                       $httpConfig['reqTimeout'] = .25;
+               }
+
+               $this->http = new MultiHttpClient( $httpConfig );
+       }
+
+       protected function doNotify( $channel, array $events ) {
+               if ( !count( $events ) ) {
+                       return true;
+               }
+
+               $response = $this->http->run( array(
+                       'url'     => "{$this->baseUrl}/relayer/api/v1.0/" . rawurlencode( $channel ),
+                       'method'  => 'POST',
+                       'body'    => json_encode( array( 'events' => $events ) ),
+                       'headers' => array( 'content-type' => 'application/json' )
+               ) );
+
+               return $response['code'] == 201;
+       }
+}
index 150a7ce..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
  */
@@ -119,10 +119,11 @@ abstract class BagOStuff implements LoggerAwareInterface {
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @param int $attempts The amount of times to attempt a merge in case of failure
         * @return bool Success
+        * @throws InvalidArgumentException
         */
        public function merge( $key, $callback, $exptime = 0, $attempts = 10 ) {
                if ( !is_callable( $callback ) ) {
-                       throw new Exception( "Got invalid callback." );
+                       throw new InvalidArgumentException( "Got invalid callback." );
                }
 
                return $this->mergeViaLock( $key, $callback, $exptime, $attempts );
@@ -166,6 +167,7 @@ abstract class BagOStuff implements LoggerAwareInterface {
         * @param mixed $value
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @return bool Success
+        * @throws Exception
         */
        protected function cas( $casToken, $key, $value, $exptime = 0 ) {
                throw new Exception( "CAS is not implemented in " . __CLASS__ );
@@ -205,7 +207,7 @@ abstract class BagOStuff implements LoggerAwareInterface {
 
        /**
         * @param string $key
-        * @param int $timeout Lock wait timeout [optional]
+        * @param int $timeout Lock wait timeout; 0 for non-blocking [optional]
         * @param int $expiry Lock expiry [optional]
         * @return bool Success
         */
@@ -385,6 +387,24 @@ abstract class BagOStuff implements LoggerAwareInterface {
                $this->lastError = $err;
        }
 
+       /**
+        * Modify a cache update operation array for EventRelayer::notify()
+        *
+        * This is used for relayed writes, e.g. for broadcasting a change
+        * to multiple data-centers. If the array contains a 'val' field
+        * then the command involves setting a key to that value. Note that
+        * for simplicity, 'val' is always a simple scalar value. This method
+        * is used to possibly serialize the value and add any cache-specific
+        * key/values needed for the relayer daemon (e.g. memcached flags).
+        *
+        * @param array $event
+        * @return array
+        * @since 1.26
+        */
+       public function modifySimpleRelayEvent( array $event ) {
+               return $event;
+       }
+
        /**
         * @param string $text
         */
diff --git a/includes/libs/objectcache/ReplicatedBagOStuff.php b/includes/libs/objectcache/ReplicatedBagOStuff.php
new file mode 100644 (file)
index 0000000..99b03ed
--- /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.25
+ */
+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();
+       }
+}
diff --git a/includes/libs/objectcache/WANObjectCache.php b/includes/libs/objectcache/WANObjectCache.php
new file mode 100755 (executable)
index 0000000..7f55456
--- /dev/null
@@ -0,0 +1,603 @@
+<?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
+ */
+
+/**
+ * Multi-datacenter aware caching interface
+ *
+ * All operations go to the local cache, except the delete()
+ * and touchCheckKey(), which broadcast to all clusters.
+ * This class is intended for caching data from primary stores.
+ * If the get() method does not return a value, then the caller
+ * should query the new value and backfill the cache using set().
+ * When the source data changes, the delete() method should be called.
+ * Since delete() is expensive, it should be avoided. One can do so if:
+ *   - a) The object cached is immutable; or
+ *   - b) Validity is checked against the source after get(); or
+ *   - c) Using a modest TTL is reasonably correct and performant
+ * Consider using getWithSetCallback() instead of the get()/set() cycle.
+ *
+ * Instances of this class must be configured to point to a valid
+ * PubSub endpoint, and there must be listeners on the cache servers
+ * that subscribe to the endpoint and update the caches.
+ *
+ * Broadcasted operations like delete() and touchCheckKey() are done
+ * synchronously in the local cluster, but are relayed asynchronously.
+ * This means that callers in other datacenters will see older values
+ * for a however many milliseconds the datacenters are apart. As with
+ * any cache, this should not be relied on for cases where reads are
+ * used to determine writes to source (e.g. non-cache) data stores.
+ *
+ * All values are wrapped in metadata arrays. Keys use a "WANCache:" prefix
+ * to avoid collisions with keys that are not wrapped as metadata arrays. The
+ * prefixes are as follows:
+ *   - a) "WANCache:v" : used for regular value keys
+ *   - b) "WANCache:s" : used for temporarily storing values of tombstoned keys
+ *   - c) "WANCache:t" : used for storing timestamp "check" keys
+ *
+ * @ingroup Cache
+ * @since 1.26
+ */
+class WANObjectCache {
+       /** @var BagOStuff The local cluster cache */
+       protected $cache;
+       /** @var string Cache pool name */
+       protected $pool;
+       /** @var EventRelayer */
+       protected $relayer;
+
+       /** @var int */
+       protected $lastRelayError = self::ERR_NONE;
+
+       /** Seconds to tombstone keys on delete() */
+       const HOLDOFF_TTL = 10;
+       /** Seconds to keep dependency purge keys around */
+       const CHECK_KEY_TTL = 31536000; // 1 year
+       /** Seconds to keep lock keys around */
+       const LOCK_TTL = 5;
+
+       /** Cache format version number */
+       const VERSION = 1;
+
+       /** Fields of value holder arrays */
+       const FLD_VERSION = 0;
+       const FLD_VALUE = 1;
+       const FLD_TTL = 2;
+       const FLD_TIME = 3;
+
+       /** Possible values for getLastError() */
+       const ERR_NONE = 0; // no error
+       const ERR_NO_RESPONSE = 1; // no response
+       const ERR_UNREACHABLE = 2; // can't connect
+       const ERR_UNEXPECTED = 3; // response gave some error
+       const ERR_RELAY = 4; // relay broadcast failed
+
+       const VALUE_KEY_PREFIX = 'WANCache:v:';
+       const STASH_KEY_PREFIX = 'WANCache:s:';
+       const TIME_KEY_PREFIX = 'WANCache:t:';
+
+       const PURGE_VAL_PREFIX = 'PURGED:';
+
+       /**
+        * @param array $params
+        *   - cache   : BagOStuff object
+        *   - pool    : pool name
+        *   - relayer : EventRelayer object
+        */
+       public function __construct( array $params ) {
+               $this->cache = $params['cache'];
+               $this->pool = $params['pool'];
+               $this->relayer = $params['relayer'];
+       }
+
+       /**
+        * Fetch the value of a key from cache
+        *
+        * If passed in, $curTTL is set to the remaining TTL (current time left):
+        *   - a) INF; if the key exists and has no TTL
+        *   - b) float (>=0); if the key exists and has a TTL
+        *   - c) float (<0); if the key is tombstoned or expired by $checkKeys
+        *   - d) null; if the key does not exist and is not tombstoned
+        *
+        * If a key is tombstoned, $curTTL will reflect the time since delete().
+        *
+        * The timestamp of $key will be checked against the last-purge timestamp
+        * of each of $checkKeys. Those $checkKeys not in cache will have the last-purge
+        * initialized to the current timestamp. If any of $checkKeys have a timestamp
+        * greater than that of $key, then $curTTL will reflect how long ago $key
+        * became invalid. Callers can use $curTTL to know when the value is stale.
+        * The $checkKeys parameter allow mass invalidations by updating a single key:
+        *   - a) Each "check" key represents "last purged" of some source data
+        *   - b) Callers pass in relevant "check" keys as $checkKeys in get()
+        *   - c) When the source data that "check" keys represent changes,
+        *        the touchCheckKey() method is called on them
+        *
+        * For keys that are hot/expensive, consider using getWithSetCallback() instead.
+        *
+        * @param string $key Cache key
+        * @param mixed $curTTL Approximate TTL left on the key if present [returned]
+        * @param array $checkKeys List of "check" keys
+        * @return mixed Value of cache key or false on failure
+        */
+       final public function get( $key, &$curTTL = null, array $checkKeys = array() ) {
+               $curTTLs = array();
+               $values = $this->getMulti( array( $key ), $curTTLs, $checkKeys );
+               $curTTL = isset( $curTTLs[$key] ) ? $curTTLs[$key] : null;
+
+               return isset( $values[$key] ) ? $values[$key] : false;
+       }
+
+       /**
+        * Fetch the value of several keys from cache
+        *
+        * @see WANObjectCache::get()
+        *
+        * @param array $keys List of cache keys
+        * @param array $curTTLs Map of (key => approximate TTL left) for existing keys [returned]
+        * @param array $checkKeys List of "check" keys
+        * @return array Map of (key => value) for keys that exist
+        */
+       final public function getMulti(
+               array $keys, &$curTTLs = array(), array $checkKeys = array()
+       ) {
+               $result = array();
+               $curTTLs = array();
+
+               $vPrefixLen = strlen( self::VALUE_KEY_PREFIX );
+               $valueKeys = self::prefixCacheKeys( $keys, self::VALUE_KEY_PREFIX );
+               $checkKeys = self::prefixCacheKeys( $checkKeys, self::TIME_KEY_PREFIX );
+
+               // Fetch all of the raw values
+               $wrappedValues = $this->cache->getMulti( array_merge( $valueKeys, $checkKeys ) );
+               $now = microtime( true );
+
+               // Get/initialize the timestamp of all the "check" keys
+               $checkKeyTimes = array();
+               foreach ( $checkKeys as $checkKey ) {
+                       $timestamp = isset( $wrappedValues[$checkKey] )
+                               ? self::parsePurgeValue( $wrappedValues[$checkKey] )
+                               : false;
+                       if ( !is_float( $timestamp ) ) {
+                               // Key is not set or invalid; regenerate
+                               $this->cache->add( $checkKey,
+                                       self::PURGE_VAL_PREFIX . $now, self::CHECK_KEY_TTL );
+                               $timestamp = $now;
+                       }
+
+                       $checkKeyTimes[] = $timestamp;
+               }
+
+               // Get the main cache value for each key and validate them
+               foreach ( $valueKeys as $vKey ) {
+                       if ( !isset( $wrappedValues[$vKey] ) ) {
+                               continue; // not found
+                       }
+
+                       $key = substr( $vKey, $vPrefixLen ); // unprefix
+
+                       list( $value, $curTTL ) = $this->unwrap( $wrappedValues[$vKey], $now );
+                       if ( $value !== false ) {
+                               $result[$key] = $value;
+                               foreach ( $checkKeyTimes as $checkKeyTime ) {
+                                       // Force dependant keys to be invalid for a while after purging
+                                       // to reduce race conditions involving stale data getting cached
+                                       $safeTimestamp = $checkKeyTime + self::HOLDOFF_TTL;
+                                       if ( $safeTimestamp >= $wrappedValues[$vKey][self::FLD_TIME] ) {
+                                               $curTTL = min( $curTTL, $checkKeyTime - $now );
+                                       }
+                               }
+                       }
+
+                       $curTTLs[$key] = $curTTL;
+               }
+
+               return $result;
+       }
+
+       /**
+        * Set the value of a key from cache
+        *
+        * Simply calling this method when source data changes is not valid because
+        * the changes do not replicate to the other WAN sites. In that case, delete()
+        * should be used instead. This method is intended for use on cache misses.
+        *
+        * @param string $key Cache key
+        * @param mixed $value
+        * @param integer $ttl Seconds to live [0=forever]
+        * @return bool Success
+        */
+       final public function set( $key, $value, $ttl = 0 ) {
+               $key = self::VALUE_KEY_PREFIX . $key;
+               $wrapped = $this->wrap( $value, $ttl );
+
+               $func = function ( $cache, $key, $cWrapped ) use ( $wrapped ) {
+                       return ( is_string( $cWrapped ) )
+                               ? false // key is tombstoned; do nothing
+                               : $wrapped;
+               };
+
+               return $this->cache->merge( $key, $func, $ttl, 1 );
+       }
+
+       /**
+        * Purge a key from all clusters
+        *
+        * This instantiates a hold-off period where the key cannot be
+        * written to avoid race conditions where dependent keys get updated
+        * with a stale value (e.g. from a DB slave).
+        *
+        * This should only be called when the underlying data (being cached)
+        * changes in a significant way. If called twice on the same key, then
+        * the last TTL takes precedence.
+        *
+        * @param string $key Cache key
+        * @param integer $ttl How long to block writes to the key [seconds]
+        * @return bool True if the item was purged or not found, false on failure
+        */
+       final public function delete( $key, $ttl = self::HOLDOFF_TTL ) {
+               $key = self::VALUE_KEY_PREFIX . $key;
+               // Update the local cluster immediately
+               $ok = $this->cache->set( $key, self::PURGE_VAL_PREFIX . microtime( true ), $ttl );
+               // Publish the purge to all clusters
+               return $this->relayPurge( $key, $ttl ) && $ok;
+       }
+
+       /**
+        * Fetch the value of a timestamp "check" key
+        *
+        * @param string $key
+        * @return float|bool TS_UNIX timestamp of the key; false if not present
+        */
+       final public function getCheckKeyTime( $key ) {
+               return self::parsePurgeValue( $this->cache->get( self::TIME_KEY_PREFIX . $key ) );
+       }
+
+       /**
+        * Purge a "check" key from all clusters, invalidating keys that use it
+        *
+        * This should only be called when the underlying data (being cached)
+        * changes in a significant way, and it is impractical to call delete()
+        * on all keys that should be changed. When get() is called on those
+        * keys, the relevant "check" keys must be supplied for this to work.
+        *
+        * The "check" key essentially represents a last-modified field.
+        * It is set in the future a few seconds when this is called, to
+        * avoid race conditions where dependent keys get updated with a
+        * stale value (e.g. from a DB slave).
+        *
+        * @see WANObjectCache::get()
+        *
+        * @param string $key Cache key
+        * @return bool True if the item was purged or not found, false on failure
+        */
+       final public function touchCheckKey( $key ) {
+               $key = self::TIME_KEY_PREFIX . $key;
+               // Update the local cluster immediately
+               $ok = $this->cache->set( $key,
+                       self::PURGE_VAL_PREFIX . microtime( true ), self::CHECK_KEY_TTL );
+               // Publish the purge to all clusters
+               return $this->relayPurge( $key, self::CHECK_KEY_TTL ) && $ok;
+       }
+
+       /**
+        * Method to fetch/regenerate cache keys
+        *
+        * On cache miss, the key will be set to the callback result.
+        * 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.
+        *
+        * 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 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:
+        *   a) Pass $key into $checkKeys
+        *   b) Use touchCheckKey( $key ) instead of delete( $key )
+        * Following this pattern lets the old cache be used until a
+        * single thread updates it as needed. Also consider tweaking
+        * the 'lowTTL' parameter.
+        *
+        * Example usage:
+        * @code
+        *     $key = wfMemcKey( 'cat-recent-actions', $catId );
+        *     // Function that derives the new key value given the old value
+        *     $callback = function( $cValue ) { ... };
+        *     // 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 );
+        * @endcode
+        *
+        * Example usage:
+        * @code
+        *     $key = wfMemcKey( 'cat-state', $catId );
+        *     // The "check" keys that represent things the value depends on;
+        *     // Calling touchCheckKey() on them invalidates "cat-state"
+        *     $checkKeys = array(
+        *         wfMemcKey( 'water-bowls', $houseId ),
+        *         wfMemcKey( 'food-bowls', $houseId ),
+        *         wfMemcKey( 'people-present', $houseId )
+        *     );
+        *     // Function that derives the new key value
+        *     $callback = function() { ... };
+        *     // 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, $checkKeys, $opts );
+        * @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 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)
+        *               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.
+        *   - 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
+        *               may result in stale values.
+        * @return mixed Value to use for the key
+        */
+       final public function getWithSetCallback(
+               $key, $callback, $ttl, array $checkKeys = array(), array $opts = array()
+       ) {
+               $lowTTL = isset( $opts['lowTTL'] ) ? $opts['lowTTL'] : min( 10, $ttl );
+               $lockTSE = isset( $opts['lockTSE'] ) ? $opts['lockTSE'] : -1;
+               $tempTTL = isset( $opts['tempTTL'] ) ? $opts['tempTTL'] : 5;
+
+               // Get the current key value
+               $curTTL = null;
+               $cValue = $this->get( $key, $curTTL, $checkKeys ); // current value
+               $value = $cValue; // return value
+
+               // Determine if a regeneration is desired
+               if ( $value !== false && $curTTL > 0 && !$this->worthRefresh( $curTTL, $lowTTL ) ) {
+                       return $value;
+               }
+
+               if ( !is_callable( $callback ) ) {
+                       throw new InvalidArgumentException( "Invalid cache miss callback provided." );
+               }
+
+               // 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 ) {
+                       // Acquire a cluster-local non-blocking lock
+                       if ( $this->cache->lock( $key, 0, self::LOCK_TTL ) ) {
+                               // Lock acquired; this thread should update the key
+                               $locked = true;
+                       } 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;
+                               }
+                       }
+               }
+
+               // Generate the new value from the callback...
+               $value = call_user_func( $callback, $cValue );
+               // 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 ) ) {
+                       $this->cache->set( self::STASH_KEY_PREFIX . $key, $value, $tempTTL );
+               }
+
+               if ( $locked ) {
+                       $this->cache->unlock( $key );
+               }
+
+               if ( $value !== false ) {
+                       // Update the cache; this will fail if the key is tombstoned
+                       $this->set( $key, $value, $ttl );
+               }
+
+               return $value;
+       }
+
+       /**
+        * Get the "last error" registered; clearLastError() should be called manually
+        * @return int ERR_* constant for the "last error" registry
+        */
+       final public function getLastError() {
+               if ( $this->lastRelayError ) {
+                       // If the cache and the relayer failed, focus on the later.
+                       // An update not making it to the relayer means it won't show up
+                       // in other DCs (nor will consistent re-hashing see up-to-date values).
+                       // On the other hand, if just the cache update failed, then it should
+                       // eventually be applied by the relayer.
+                       return $this->lastRelayError;
+               }
+
+               $code = $this->cache->getLastError();
+               switch ( $code ) {
+                       case BagOStuff::ERR_NONE:
+                               return self::ERR_NONE;
+                       case BagOStuff::ERR_NO_RESPONSE:
+                               return self::ERR_NO_RESPONSE;
+                       case BagOStuff::ERR_UNREACHABLE:
+                               return self::ERR_UNREACHABLE;
+                       default:
+                               return self::ERR_UNEXPECTED;
+               }
+       }
+
+       /**
+        * Clear the "last error" registry
+        */
+       final public function clearLastError() {
+               $this->cache->clearLastError();
+               $this->lastRelayError = self::ERR_NONE;
+       }
+
+       /**
+        * Do the actual async bus purge of a key
+        *
+        * This must set the key to "PURGED:<UNIX timestamp>"
+        *
+        * @param string $key Cache key
+        * @param integer $ttl How long to keep the tombstone [seconds]
+        * @return bool Success
+        */
+       protected function relayPurge( $key, $ttl ) {
+               $event = $this->cache->modifySimpleRelayEvent( array(
+                       'cmd' => 'set',
+                       'key' => $key,
+                       'val' => 'PURGED:$UNIXTIME$',
+                       'ttl' => max( $ttl, 1 ),
+                       'sbt' => true, // substitute $UNIXTIME$ with actual microtime
+               ) );
+
+               $ok = $this->relayer->notify( "{$this->pool}:purge", $event );
+               if ( !$ok ) {
+                       $this->lastRelayError = self::ERR_RELAY;
+               }
+
+               return $ok;
+       }
+
+       /**
+        * Check if a key should be regenerated (using random probability)
+        *
+        * This returns false if $curTTL >= $lowTTL. Otherwise, the chance
+        * of returning true increases steadily from 0% to 100% as the $curTTL
+        * moves from $lowTTL to 0 seconds. This handles widely varying
+        * levels of cache access traffic.
+        *
+        * @param float|INF $curTTL Approximate TTL left on the key if present
+        * @param float $lowTTL Consider a refresh when $curTTL is less than this
+        * @return bool
+        */
+       protected function worthRefresh( $curTTL, $lowTTL ) {
+               if ( $curTTL >= $lowTTL ) {
+                       return false;
+               } elseif ( $curTTL <= 0 ) {
+                       return true;
+               }
+
+               $chance = ( 1 - $curTTL / $lowTTL );
+
+               return mt_rand( 1, 1e9 ) <= 1e9 * $chance;
+       }
+
+       /**
+        * Do not use this method outside WANObjectCache
+        *
+        * @param mixed $value
+        * @param integer $ttl [0=forever]
+        * @return string
+        */
+       protected function wrap( $value, $ttl ) {
+               return array(
+                       self::FLD_VERSION => self::VERSION,
+                       self::FLD_VALUE => $value,
+                       self::FLD_TTL => $ttl,
+                       self::FLD_TIME => microtime( true )
+               );
+       }
+
+       /**
+        * Do not use this method outside WANObjectCache
+        *
+        * @param array|string|bool $wrapped
+        * @param float $now Unix Current timestamp (preferrable pre-query)
+        * @return array (mixed; false if absent/invalid, current time left)
+        */
+       protected function unwrap( $wrapped, $now ) {
+               // Check if the value is a tombstone
+               $purgeTimestamp = self::parsePurgeValue( $wrapped );
+               if ( is_float( $purgeTimestamp ) ) {
+                       // Purged values should always have a negative current $ttl
+                       $curTTL = min( -0.000001, $purgeTimestamp - $now );
+                       return array( false, $curTTL );
+               }
+
+               if ( !is_array( $wrapped ) // not found
+                       || !isset( $wrapped[self::FLD_VERSION] ) // wrong format
+                       || $wrapped[self::FLD_VERSION] !== self::VERSION // wrong version
+               ) {
+                       return array( false, null );
+               }
+
+               if ( $wrapped[self::FLD_TTL] > 0 ) {
+                       // Get the approximate time left on the key
+                       $age = $now - $wrapped[self::FLD_TIME];
+                       $curTTL = max( $wrapped[self::FLD_TTL] - $age, 0.0 );
+               } else {
+                       // Key had no TTL, so the time left is unbounded
+                       $curTTL = INF;
+               }
+
+               return array( $wrapped[self::FLD_VALUE], $curTTL );
+       }
+
+       /**
+        * @param array $keys
+        * @param string $prefix
+        * @return string[]
+        */
+       protected static function prefixCacheKeys( array $keys, $prefix ) {
+               $res = array();
+               foreach ( $keys as $key ) {
+                       $res[] = $prefix . $key;
+               }
+
+               return $res;
+       }
+
+       /**
+        * @param string $value String like "PURGED:<timestamp>"
+        * @return float|bool UNIX timestamp or false on failure
+        */
+       protected static function parsePurgeValue( $value ) {
+               $m = array();
+               if ( is_string( $value ) &&
+                       preg_match( '/^' . self::PURGE_VAL_PREFIX . '([^:]+)$/', $value, $m )
+               ) {
+                       return (float)$m[1];
+               } else {
+                       return false;
+               }
+       }
+}
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 1b0eb49..011fb2a 100644 (file)
@@ -137,31 +137,12 @@ class DjVuHandler extends ImageHandler {
        function doTransform( $image, $dstPath, $dstUrl, $params, $flags = 0 ) {
                global $wgDjvuRenderer, $wgDjvuPostProcessor;
 
-               // Fetch XML and check it, to give a more informative error message than the one which
-               // normaliseParams will inevitably give.
-               $xml = $image->getMetadata();
-               if ( !$xml ) {
-                       $width = isset( $params['width'] ) ? $params['width'] : 0;
-                       $height = isset( $params['height'] ) ? $params['height'] : 0;
-
-                       return new MediaTransformError( 'thumbnail_error', $width, $height,
-                               wfMessage( 'djvu_no_xml' )->text() );
-               }
-
                if ( !$this->normaliseParams( $image, $params ) ) {
                        return new TransformParameterError( $params );
                }
                $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(
index 7246072..2ae5af3 100644 (file)
@@ -1003,28 +1003,6 @@ class FormatMetadata extends ContextSource {
                return $obj->flattenArrayReal( $vals, $type, $noHtml );
        }
 
-       /**
-        * Flatten an array, using the user language for any messages.
-        *
-        * @param array $vals Array of values
-        * @param string $type Type of array (either lang, ul, ol).
-        *   lang = language assoc array with keys being the lang code
-        *   ul = unordered list, ol = ordered list
-        *   type can also come from the '_type' member of $vals.
-        * @param bool $noHtml If to avoid returning anything resembling HTML.
-        *   (Ugly hack for backwards compatibility with old MediaWiki).
-        * @param bool|IContextSource $context
-        * @return string Single value (in wiki-syntax).
-        */
-       public static function flattenArray( $vals, $type = 'ul', $noHtml = false, $context = false ) {
-               $obj = new FormatMetadata;
-               if ( $context ) {
-                       $obj->setContext( $context );
-               }
-
-               return $obj->flattenArrayReal( $vals, $type, $noHtml );
-       }
-
        /**
         * A function to collapse multivalued tags into a single value.
         * This turns an array of (for example) authors into a bulleted list.
@@ -1626,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 );
                }
@@ -1822,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.
@@ -1846,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 83bee70..eeca9b1 100644 (file)
@@ -183,4 +183,12 @@ class MemcachedBagOStuff extends BagOStuff {
        protected function debugLog( $text ) {
                $this->logger->debug( $text );
        }
+
+       public function modifySimpleRelayEvent( array $event ) {
+               if ( array_key_exists( 'val', $event ) ) {
+                       $event['flg'] = 0; // data is not serialized nor gzipped (for memcached driver)
+               }
+
+               return $event;
+       }
 }
index 2e47e24..5da22f0 100644 (file)
@@ -29,7 +29,10 @@ use MediaWiki\Logger\LoggerFactory;
  * @ingroup Cache
  */
 class ObjectCache {
+       /** @var Array Map of (id => BagOStuff) */
        public static $instances = array();
+       /** @var Array Map of (id => WANObjectCache) */
+       public static $wanInstances = array();
 
        /**
         * Get a cached instance of the specified type of cache object.
@@ -48,11 +51,30 @@ class ObjectCache {
                return $object;
        }
 
+       /**
+        * Get a cached instance of the specified type of cache object.
+        *
+        * @param string $id
+        *
+        * @return WANObjectCache
+        * @since 1.26
+        */
+       static function getWANInstance( $id ) {
+               if ( isset( self::$wanInstances[$id] ) ) {
+                       return self::$wanInstances[$id];
+               }
+
+               $object = self::newWANCacheFromId( $id );
+               self::$wanInstances[$id] = $object;
+               return $object;
+       }
+
        /**
         * Clear all the cached instances.
         */
        static function clear() {
                self::$instances = array();
+               self::$wanInstances = array();
        }
 
        /**
@@ -167,4 +189,42 @@ class ObjectCache {
        static function newMemcached( $params ) {
                return new MemcachedPhpBagOStuff( $params );
        }
+
+       /**
+        * Create a new cache object of the specified type
+        *
+        * @param string $id
+        *
+        * @throws MWException
+        * @return WANObjectCache
+        * @since 1.26
+        */
+       static function newWANCacheFromId( $id ) {
+               global $wgWANObjectCaches;
+
+               if ( !isset( $wgWANObjectCaches[$id] ) ) {
+                       throw new MWException( "Invalid object cache type \"$id\" requested. " .
+                               "It is not present in \$wgWANObjectCaches." );
+               }
+
+               $params = $wgWANObjectCaches[$id];
+               $class = $params['relayerConfig']['class'];
+               $params['relayer'] = new $class( $params['relayerConfig'] );
+               $params['cache'] = self::newFromId( $params['cacheId'] );
+               $class = $params['class'];
+
+               return new $class( $params );
+       }
+
+       /**
+        * Get the main WAN cache object
+        *
+        * @return WANObjectCache
+        * @since 1.26
+        */
+       static function getMainWANInstance() {
+               global $wgMainWANCache;
+
+               return self::getWANInstance( $wgMainWANCache );
+       }
 }
index 23c8b6d..9d5d0ef 100644 (file)
@@ -331,6 +331,14 @@ class RedisBagOStuff extends BagOStuff {
                return $this->mergeViaCas( $key, $callback, $exptime, $attempts );
        }
 
+       public function modifySimpleRelayEvent( array $event ) {
+               if ( array_key_exists( 'val', $event ) ) {
+                       $event['val'] = serialize( $event['val'] ); // this class uses PHP serialization
+               }
+
+               return $event;
+       }
+
        /**
         * @param mixed $data
         * @return string
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..25bf844 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>" );
+               }
        }
 
        /**
index 752565d..e938ca8 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 );
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 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
         */
old mode 100755 (executable)
new mode 100644 (file)
index f02d66f..5f2a57a 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
@@ -268,7 +294,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 a5349fb..4b9a754 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';
@@ -269,6 +270,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..74d49bc 100644 (file)
@@ -114,6 +114,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 f8d8d2f..7da3aec 100644 (file)
@@ -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,18 +801,18 @@ 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)
                        }
-                       $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;
                        }
+                       // Send content type and cache headers
+                       $this->sendResponseHeaders( $context, $ts, false );
+                       $response = $fileCache->fetchText();
                        // Remove the output buffer and output the response
                        ob_end_clean();
                        echo $response . "\n/* Cached {$ts} */";
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 ed16521..d1b024f 100644 (file)
@@ -520,6 +520,12 @@ abstract class ResourceLoaderModule {
 
                wfDebugLog( 'resourceloader', __METHOD__ . ": New definition for module "
                        . "{$this->getName()} in context \"{$context->getHash()}\"" );
+               // WMF logging for T94810
+               global $wgRequest;
+               if ( isset( $wgRequest ) && $context->getUser() ) {
+                       wfDebugLog( 'resourceloader', __METHOD__ . ": Request with user parameter in "
+                       . "context \"{$context->getHash()}\" from " . $wgRequest->getRequestURL() );
+               }
 
                $timestamp = time();
                $cache->set( $key, $timestamp );
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 61aad92..d7e0132 100644 (file)
@@ -421,17 +421,11 @@ class SkinTemplate extends Skin {
                $realBodyAttribs = array( 'id' => 'mw-content-text' );
 
                # Add a mw-content-ltr/rtl class to be able to style based on text direction
-               # when the content is different from the UI language, 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)
-               if ( !in_array( $title->getNamespace(), array( NS_SPECIAL, NS_FILE ) ) &&
-                       Action::getActionName( $this ) === 'view' &&
-                       ( $title->exists() || $title->getNamespace() == NS_MEDIAWIKI ) ) {
-                       $pageLang = $title->getPageViewLanguage();
-                       $realBodyAttribs['lang'] = $pageLang->getHtmlCode();
-                       $realBodyAttribs['dir'] = $pageLang->getDir();
-                       $realBodyAttribs['class'] = 'mw-content-' . $pageLang->getDir();
-               }
+               # when the content is different from the UI language
+               $pageLang = $title->getPageViewLanguage();
+               $realBodyAttribs['lang'] = $pageLang->getHtmlCode();
+               $realBodyAttribs['dir'] = $pageLang->getDir();
+               $realBodyAttribs['class'] = 'mw-content-' . $pageLang->getDir();
 
                $out->mBodytext = Html::rawElement( 'div', $realBodyAttribs, $out->mBodytext );
                $tpl->setRef( 'bodytext', $out->mBodytext );
index 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 5e2ee1c..047e941 100644 (file)
@@ -267,21 +267,24 @@ class SpecialActiveUsers extends SpecialPage {
                $out->wrapWikiMsg( "<div class='mw-activeusers-intro'>\n$1\n</div>",
                        array( 'activeusers-intro', $this->getLanguage()->formatNum( $days ) ) );
 
-               // Get the timestamp of the last cache update
+               // Mention the level of cache staleness...
                $dbr = wfGetDB( DB_SLAVE, 'recentchanges' );
-               $cTime = $dbr->selectField( 'querycache_info',
-                       'qci_timestamp',
-                       array( 'qci_type' => 'activeusers' )
-               );
-
-               $secondsOld = $cTime
-                       ? time() - wfTimestamp( TS_UNIX, $cTime )
-                       : $days * 86400; // fully stale :)
-
-               if ( $secondsOld > 0 ) {
-                       // Mention the level of staleness
-                       $out->addWikiMsg( 'cachedspecial-viewing-cached-ttl',
+               $rcMax = $dbr->selectField( 'recentchanges', 'MAX(rc_timestamp)' );
+               if ( $rcMax ) {
+                       $cTime = $dbr->selectField( 'querycache_info',
+                               'qci_timestamp',
+                               array( 'qci_type' => 'activeusers' )
+                       );
+                       if ( $cTime ) {
+                               $secondsOld = wfTimestamp( TS_UNIX, $rcMax ) - wfTimestamp( TS_UNIX, $cTime );
+                       } else {
+                               $rcMin = $dbr->selectField( 'recentchanges', 'MIN(rc_timestamp)' );
+                               $secondsOld = time() - wfTimestamp( TS_UNIX, $rcMin );
+                       }
+                       if ( $secondsOld > 0 ) {
+                               $out->addWikiMsg( 'cachedspecial-viewing-cached-ttl',
                                $this->getLanguage()->formatDuration( $secondsOld ) );
+                       }
                }
 
                $up = new ActiveUsersPager( $this->getContext(), null, $par );
index 5211e30..91eade1 100644 (file)
@@ -29,7 +29,7 @@
  */
 class SpecialAllMessages extends SpecialPage {
        /**
-        * @var AllmessagesTablePager
+        * @var AllMessagesTablePager
         */
        protected $table;
 
@@ -61,7 +61,7 @@ class SpecialAllMessages extends SpecialPage {
                $out->addModuleStyles( 'mediawiki.special' );
                $out->addHelpLink( 'Help:System message' );
 
-               $this->table = new AllmessagesTablePager(
+               $this->table = new AllMessagesTablePager(
                        $this,
                        array(),
                        wfGetLangObj( $request->getVal( 'lang', $par ) )
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 1387988..7dc1158 100644 (file)
@@ -233,14 +233,21 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                        return false;
                }
 
-               // rc_new is not an ENUM, but adding a redundant rc_new IN (0,1) gives mysql enough
-               // knowledge to use an index merge if it wants (it may use some other index though).
+               // array_merge() is used intentionally here so that hooks can, should
+               // they so desire, override the ORDER BY / LIMIT condition(s); prior to
+               // MediaWiki 1.26 this used to use the plus operator instead, which meant
+               // that extensions weren't able to change these conditions
+               $query_options = array_merge( array(
+                       'ORDER BY' => 'rc_timestamp DESC',
+                       'LIMIT' => $opts['limit'] ), $query_options );
                $rows = $dbr->select(
                        $tables,
                        $fields,
+                       // rc_new is not an ENUM, but adding a redundant rc_new IN (0,1) gives mysql enough
+                       // knowledge to use an index merge if it wants (it may use some other index though).
                        $conds + array( 'rc_new' => array( 0, 1 ) ),
                        __METHOD__,
-                       array( 'ORDER BY' => 'rc_timestamp DESC', 'LIMIT' => $opts['limit'] ) + $query_options,
+                       $query_options,
                        $join_conds
                );
 
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..ed3ad5b 100644 (file)
@@ -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 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..e747778 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 (since MW 1.26)
+        */
+       public function __construct( $errorMessage = null, $titleText = null, $errorMessageParameters = array() ) {
+               $this->errorMessage = $errorMessage;
+               $this->titleText = $titleText;
+               $this->errorMessageParameters = $errorMessageParameters;
+       }
+
+       /**
+        * @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 fb6f0eb..3c65eac 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
@@ -62,6 +62,7 @@
        'ast' => 'asturianu',   # Asturian
        'av' => 'авар',     # Avar
        'avk' => 'Kotava', # Kotava
+       'awa' => 'अवधी',        # Awadhi
        'ay' => 'Aymar aru',    # Aymara
        'az' => 'azərbaycanca',        # Azerbaijani
        'azb' => 'تورکجه',        # South Azerbaijani
@@ -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
index 291c936..78b5e06 100644 (file)
        "pool-queuefull": "Die poel se wagtou is vol",
        "pool-errorunknown": "Onbekende fout",
        "pool-servererror": "Die \"pool counter\"-diens is nie beskikbaar nie ($1).",
+       "poolcounter-usage-error": "Gebruiksfout: $1",
        "aboutsite": "Inligting oor {{SITENAME}}",
        "aboutpage": "Project:Omtrent",
        "copyright": "Inhoud is onderhewig aan $1, tensy anders vermeld",
        "disclaimers": "Voorbehoud",
        "disclaimerpage": "Project:Voorwaardes",
        "edithelp": "Wysigingshulp",
+       "helppage-top-gethelp": "Hulp",
        "mainpage": "Tuisblad",
        "mainpage-description": "Tuisblad",
        "policy-url": "Project:Beleid",
        "readonly_lag": "Die databasis is outomaties gesluit terwyl die slaafdatabasisse met die meester gesinchroniseer word",
        "internalerror": "Interne fout",
        "internalerror_info": "Interne fout: $1",
+       "internalerror-fatal-exception": "Fatale fout van tipe \"$1\"",
        "filecopyerror": "Kon nie lêer van \"$1\" na \"$2\" kopieer nie.",
        "filerenameerror": "Kon nie lêernaam van \"$1\" na \"$2\" wysig nie.",
        "filedeleteerror": "Kon nie lêer \"$1\" skrap nie.",
        "directorycreateerror": "Kon nie gids \"$1\" skep nie.",
+       "directoryreadonlyerror": "Gids \"$1\" is lees-alleen.",
+       "directorynotreadableerror": "Gids \"$1\" is nie leesbaar nie.",
        "filenotfound": "Kon nie lêer \"$1\" vind nie.",
        "unexpected": "Onverwagte waarde: \"$1\"=\"$2\".",
        "formerror": "Fout: kon vorm nie stuur nie",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "content-json-empty-object": "Leë objek",
+       "content-json-empty-array": "Leë reeks",
        "duplicate-args-category": "Bladsye met dubbele sjabloonparameters",
        "expensive-parserfunction-warning": "Waarskuwing: Die bladsy gebruik te veel duur ontlederfunksies.\n\nDaar is {{PLURAL:$1|$1 funksie|$1 funksies}}, terwyl die bladsy minder as $2 moet hê.",
        "expensive-parserfunction-category": "Bladsye wat te veel duur ontlederfunkies gebruik",
        "notextmatches": "Geen artikelteks resultate nie",
        "prevn": "vorige {{PLURAL:$1|$1}}",
        "nextn": "volgende {{PLURAL:$1|$1}}",
+       "prev-page": "vorige bladsy",
+       "next-page": "volgende bladsy",
        "prevn-title": "Vorige {{PLURAL:$1|resultaat|$1 resultate}}",
        "nextn-title": "Volgende {{PLURAL:$1|resultaat|$1 resultate}}",
        "shown-title": "$1 {{PLURAL:$1|resultaat|resultate}} per bladsy",
        "prefs-personal": "Gebruikersdata",
        "prefs-rc": "Onlangse wysigings",
        "prefs-watchlist": "Dophoulys",
+       "prefs-editwatchlist": "Wysig dophoulys",
        "prefs-watchlist-days": "Aantal dae om in dophoulys te wys:",
        "prefs-watchlist-days-max": "Maksimum $1 {{PLURAL:$1|dag|dae}}",
        "prefs-watchlist-edits": "Aantal wysigings om in uitgebreide dophoulys te wys:",
        "import-interwiki-history": "Kopieer ook volledige geskiedenis van hierdie bladsy",
        "import-interwiki-templates": "Sluit alle sjablone in",
        "import-interwiki-submit": "Importeer",
-       "import-interwiki-namespace": "Doelnaamruimte:",
-       "import-interwiki-rootpage": "Basisblad van bestemming (opsioneel):",
        "import-upload-filename": "Lêernaam:",
        "import-comment": "Opmerking:",
        "importtext": "Gebruik die [[Special:Export|eksport-funksie]] van die wiki waar die inligting vandaan kom.\nStoor die afvoer op u eie rekenaar, en laai dit hier op.",
index 0a96eef..5716334 100644 (file)
        "importinterwiki": "ከሌላ ዊኪ ማስገባት",
        "import-interwiki-history": "ለዚህ ገጽ የታሪክ ዕትሞች ሁሉ ለመቅዳት",
        "import-interwiki-submit": "ለማስገባት",
-       "import-interwiki-namespace": "መድረሻ ክፍለ-ዊኪ:",
        "import-upload-filename": "የፋይሉ ስም፦",
        "import-comment": "ማጠቃለያ፦",
        "importstart": "ገጾችን በማስገባት ላይ ነው...",
index 5658641..2f9e747 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",
        "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 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..e61f4a8 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 f6b68ae..2d591cb 100644 (file)
        "hidden-category-category": "Categoríes anubríes",
        "category-subcat-count": "{{PLURAL:$2|Esta categoría tien namái la subcategoría siguiente.|Esta categoría tien {{PLURAL:$1|la siguiente subcategoría|les siguientes $1 subcategoríes}}, d'un total de $2.}}",
        "category-subcat-count-limited": "Esta categoría tien {{PLURAL:$1|la subcategoría siguiente|les $1 subcategoríes siguientes}}.",
-       "category-article-count": "{{PLURAL:$2|Esta categoría contién namái la páxina siguiente.|{{PLURAL:$1|La páxina siguiente ta|Les $1 páxines siguientes tán}} nesta categoría, d'un total de $2.}}",
+       "category-article-count": "{{PLURAL:$2|Esta categoría contien namái la páxina siguiente.|{{PLURAL:$1|La páxina siguiente ta|Les $1 páxines siguientes tán}} nesta categoría, d'un total de $2.}}",
        "category-article-count-limited": "{{PLURAL:$1|La páxina siguiente ta|Les $1 páxines siguientes tán}} na categoría actual.",
-       "category-file-count": "{{PLURAL:$2|Esta categoría contién namái'l ficheru siguiente.|{{PLURAL:$1|El ficheru siguiente ta|Los $1 ficheros siguientes tán}} nesta categoría, d'un total de $2.}}",
+       "category-file-count": "{{PLURAL:$2|Esta categoría contien namái el ficheru siguiente.|{{PLURAL:$1|El ficheru siguiente ta|Los $1 ficheros siguientes tán}} nesta categoría, d'un total de $2.}}",
        "category-file-count-limited": "{{PLURAL:$1El ficheru siguiente ta|Los $1 ficheeros siguientes tán}} na categoría actual.",
        "listingcontinuesabbrev": "cont.",
        "index-category": "Páxines indexaes",
        "translateinterface": "P'amestar o camudar les traducciones pa toles wikis, usa [//translatewiki.net/ translatewiki.net], el proyeutu de traducción de MediaWiki.",
        "cascadeprotected": "Esta páxina ta protexida d'ediciones porque ta inxerta {{PLURAL:$1|na siguiente páxina, protexida|nes siguientes páxines, protexíes}} cola opción «en cascada» activada:\n$2",
        "namespaceprotected": "Nun tienes permisu pa editar páxines nel espaciu de nomes '''$1'''.",
-       "customcssprotected": "Nun tienes permisu pa editar esta páxina CSS porque contién preferencies personales d'otru usuariu.",
-       "customjsprotected": "Nun tienes permisu pa editar esta páxina de JavaScript porque contién preferencies personales d'otru usuariu.",
+       "customcssprotected": "Nun tienes permisu pa editar esta páxina CSS porque contien preferencies personales d'otru usuariu.",
+       "customjsprotected": "Nun tienes permisu pa editar esta páxina de JavaScript porque contien preferencies personales d'otru usuariu.",
        "mycustomcssprotected": "Nun tien permisu pa editar esta páxina CSS.",
        "mycustomjsprotected": "Nun tien permisu pa editar esta páxina JavaScript.",
        "myprivateinfoprotected": "Nun tien permisu pa editar la so información privada.",
        "editingsection": "Editando $1 (seición)",
        "editingcomment": "Editando $1 (seición nueva)",
        "editconflict": "Conflictu d'edición: $1",
-       "explainconflict": "Daquién más camudó esta páxina dende qu'empecipiasti a editala.\nL'área de testu d'arriba contién el testu de la páxina como ta nestos momentos.\nLos tos cambios s'amuesen nel área de testu d'abaxo.\nVas tener que fusionar los tos cambios dientro del testu esistente.\n'''Namái''' va guardase'l testu del área d'arriba cuando calques \"{{int:savearticle}}\".",
+       "explainconflict": "Daquién más camudó esta páxina dende qu'empecipiasti a editala.\nL'área de testu d'arriba contien el testu de la páxina como ta nestos momentos.\nLos tos cambios s'amuesen nel área de testu d'abaxo.\nVas tener que fusionar los tos cambios dientro del testu esistente.\n'''Namái''' va guardase'l testu del área d'arriba cuando calques \"{{int:savearticle}}\".",
        "yourtext": "El to testu",
        "storedversion": "Versión almacenada",
        "nonunicodebrowser": "'''Avisu: El to navegador nun cumple la norma Unicode.''' Hai un sistema alternativu que te permite editar páxines de forma segura: los caráuteres non-ASCII apaecerán nel cuadru d'edición como códigos hexadecimales.",
        "content-json-empty-object": "Oxetu baleru",
        "content-json-empty-array": "Matriz balera",
        "duplicate-args-category": "Páxines con argumentos duplicaos nes llamaes a plantíes",
-       "duplicate-args-category-desc": "La páxina contién llamaes a plantíes qu'usen argumentos duplicaos, como <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
-       "expensive-parserfunction-warning": "'''Avisu:''' Esta páxina contién demasiaes llamaes costoses a funciones d'análisis sintáuticu.\n\nHabría tener menos de $2 {{PLURAL:$2|llamada|llamaes}}, y agora tien $1 {{PLURAL:$1|llamada|llamaes}}.",
+       "duplicate-args-category-desc": "La páxina contien llamaes a plantíes qu'usen argumentos duplicaos, como <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
+       "expensive-parserfunction-warning": "'''Avisu:''' Esta páxina contien demasiaes llamaes costoses a funciones d'análisis sintácticu.\n\nHabría tener menos de $2 {{PLURAL:$2|llamada|llamaes}}, y agora tien $1 {{PLURAL:$1|llamada|llamaes}}.",
        "expensive-parserfunction-category": "Páxines con demasiaes llamaes costoses a funciones analítiques",
        "post-expand-template-inclusion-warning": "'''Avisu:''' El tamañu de les plantíes incluyíes ye demasiao grande.\nDelles plantíes nun se van incluir.",
        "post-expand-template-inclusion-category": "Páxines con escesu d'inclusiones de plantíes",
-       "post-expand-template-argument-warning": "'''Avisu:''' Esta páxina contién polo menos un parámetru de plantía que tien un tamañu d'espansión demasiao llargu.\nEstos parámetros s'omitieron.",
+       "post-expand-template-argument-warning": "<strong>Avisu:</strong> Esta páxina contien polo menos un parámetru de plantía que tien un tamañu d'espansión demasiao llargu.\nEstos parámetros s'omitieron.",
        "post-expand-template-argument-category": "Páxines con parámetros de plantía omitíos",
        "parser-template-loop-warning": "Deteutóse un bucle de plantíes: [[$1]]",
        "parser-template-recursion-depth-warning": "Se pasó la llende de fondura recursiva de les plantíes ($1)",
        "ignorewarning": "Inorar l'avisu y grabar l'archivu de toes formes",
        "ignorewarnings": "Inorar tolos avisos",
        "minlength1": "Los nomes d'archivu han tener a lo menos una lletra.",
-       "illegalfilename": "El nome d'archivu \"$1\" contién carauteres non permitíos en títulos de páxina. Por favor renoma l'archivu y xúbilu otra vuelta.",
+       "illegalfilename": "El nome del ficheru \"$1\" contien caráuteres non permitíos en títulos de páxina. Por favor renoma l'archivu ya intenta xubilu otra vuelta.",
        "filename-toolong": "Los nomes de ficheru nun puen tener más de 240 bytes.",
        "badfilename": "Nome de la imaxe camudáu a \"$1\".",
        "filetype-mime-mismatch": "La estensión de ficheru \".$1\" nun casa cola triba MIME detectada del ficheru ($2).",
        "copyuploaddisabled": "Xubir por URL ta desactivao.",
        "uploaddisabledtext": "Les xubíes de ficheros tán desactivaes.",
        "php-uploaddisabledtext": "Les xubíes de ficheros tan desactivaes en PHP.\nPor favor, comprueba la configuración de file_uploads.",
-       "uploadscripted": "Esti ficheru contién códigu HTML o scripts que se puen interpretar equivocadamente por un navegador.",
-       "uploadscriptednamespace": "Esti ficheru SVG contién l'espaciu de nomes illegal «$1»",
+       "uploadscripted": "Esti ficheru contien códigu HTML o scripts que pueden interpretase de mou equivocáu por un navegador.",
+       "uploadscriptednamespace": "Esti ficheru SVG contien l'espaciu de nomes illegal «$1»",
        "uploadinvalidxml": "Nun pudo interpretase'l XML del ficheru cargáu.",
        "uploadvirus": "¡El ficheru tien un virus!\nDetalles: $1",
-       "uploadjava": "El ficheru ye un archivu ZIP que contién un ficheru .class de Java.\nXubir ficheros Java nun ta permitío, porque puen facer que se salten les torgues de seguridá.",
+       "uploadjava": "El ficheru ye un archivu ZIP que contien un ficheru .class de Java.\nXubir ficheros Java nun ta permitío, porque puede facer que se salten les torgues de seguridá.",
        "upload-source": "Ficheru orixe",
        "sourcefilename": "Nome d'orixe:",
        "sourceurl": "URL d'orixe:",
        "pageswithprop-prophidden-long": "valor de propiedá de testu llargu tapecíu ($1)",
        "pageswithprop-prophidden-binary": "valor de propiedá binaria tapecíu ($1)",
        "doubleredirects": "Redireiciones dobles",
-       "doubleredirectstext": "Esta páxina llista páxines que redireicionen a otres páxines de redireición.\nCada filera contién enllaces a la primer y segunda redireición, asina como al oxetivu de la segunda redireición, que de vezu ye la páxina oxetivu \"real\", onde tendría d'empobinar la primer redireición.\nLes entraes <del>tachaes</del> tan resueltes.",
+       "doubleredirectstext": "Esta páxina llista páxines que redireicionen a otres páxines de redireición.\nCada filera contien enllaces a la primera y segunda redireición, asina como al oxetivu de la segunda redireición, que de vezu ye la páxina oxetivu \"real\", onde tendría d'empobinar la primera redireición.\nLes entraes <del>tachaes</del> tan resueltes.",
        "double-redirect-fixed-move": "[[$1]] treslladóse.\nAnovóse automáticamente y agora redirixe haza [[$2]].",
        "double-redirect-fixed-maintenance": "Iguando automáticamente la doble redireición de [[$1]] a [[$2]] nuna xera de mantenimientu.",
        "double-redirect-fixer": "Iguador de redireiciones",
        "trackingcategories-msg": "Categoría de siguimientu",
        "trackingcategories-name": "Nome del mensaxe",
        "trackingcategories-desc": "Criterios d'inclusión de categoría",
-       "noindex-category-desc": "La páxina contién una pallabra máxica <code><nowiki>__NOINDEX__</nowiki></code> (y ta nun espaciu de nomes nel que se permite esta marca) y, poro, los robots nun la indexarán.",
-       "index-category-desc": "La páxina contién una pallabra máxica <code><nowiki>__INDEX__</nowiki></code> (y ta nun espaciu de nomes nel que se permite esta marca) y, poro, los robots la indexarán anque normalmente nun lo faigan.",
+       "noindex-category-desc": "La páxina contien una pallabra máxica <code><nowiki>__NOINDEX__</nowiki></code> (y ta nun espaciu de nomes nel que se permite esta marca) y, poro, los robós nun la indexarán.",
+       "index-category-desc": "La páxina contien una pallabra máxica <code><nowiki>__INDEX__</nowiki></code> (y ta nun espaciu de nomes nel que se permite esta marca) y, poro, los robós la indexarán anque normalmente nun lo faigan.",
        "post-expand-template-inclusion-category-desc": "El tamañu de la páxina ye mayor que <code>$wgMaxArticleSize</code> después de espander toles plantíes, de mou qu'algunes plantíes nun s'espandieron.",
        "post-expand-template-argument-category-desc": "La páxina ye mayor que <code>$wgMaxArticleSize</code> después d'espander l'argumentu d'una plantía (daqué ente llaves triples, como <code>{{{Daqué}}}</code>).",
        "expensive-parserfunction-category-desc": "La páxina usa demasiaes funciones analítiques costoses (como <code>#ifexist</code>). Llei [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "move-watch": "Vixilar esta páxina",
        "movepagebtn": "Treslladar la páxina",
        "pagemovedsub": "Treslláu correctu",
-       "movepage-moved": "'''\"$1\" treslladóse a \"$2\"'''",
+       "movepage-moved": "<strong>«$1» treslladóse a «$2»</strong>",
        "movepage-moved-redirect": "Creóse una redireición.",
        "movepage-moved-noredirect": "Desaniciose la creación d'una redireición.",
        "articleexists": "Yá hai una páxina con esi nome, o'l nome qu'escoyisti nun ye válidu. Por favor, escueyi otru nome.",
        "import-interwiki-history": "Copiar toles versiones d'historial d'esta páxina",
        "import-interwiki-templates": "Incluyir toles plantíes",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Espaciu de nomes de destín:",
-       "import-interwiki-rootpage": "Páxina raíz de destín (opcional):",
+       "import-mapping-default": "Importar a los llugares predeterminaos",
+       "import-mapping-namespace": "Importar a un espaciu de nomes:",
+       "import-mapping-subpage": "Importar como subpáxines de la páxina siguiente:",
        "import-upload-filename": "Nome del ficheru:",
        "import-comment": "Comentariu:",
        "importtext": "Por favor, esporta'l ficheru dende la wiki d'orixe usando la [[Special:Export|ferramienta d'esportación]].\nGuárdalu nel ordenador y xúbilu equí.",
        "spamprotectiontext": "La páxina que queríes guardar foi bloquiada pol filtru de spam.\nProbablemente tea causao por un enllaz a un sitiu esternu de la llista prieta.",
        "spamprotectionmatch": "El testu siguiente foi'l qu'activó'l nuesu filtru de spam: $1",
        "spambot_username": "Llimpieza de spam de MediaWiki",
-       "spam_reverting": "Revirtiendo a la cabera versión que nun contién enllaces a $1",
+       "spam_reverting": "Revirtiendo a la cabera versión que nun contien enllaces a $1",
        "spam_blanking": "Toles revisiones teníen enllaces a $1; dexando en blanco",
        "spam_deleting": "Toles revisiones teníen enllaces a $1, desaniciando",
        "simpleantispam-label": "Comprobación anti-spam.\n¡'''NUN''' rellenes esto!",
        "feedback-thanks-title": "¡Gracies!",
        "feedback-useragent": "Axente d'usuariu:",
        "searchsuggest-search": "Buscar",
-       "searchsuggest-containing": "que contién...",
+       "searchsuggest-containing": "que contien...",
        "api-error-badaccess-groups": "Nun tienes permisu pa xubir ficheros a esta wiki.",
        "api-error-badtoken": "Fallu internu: token incorreutu.",
        "api-error-copyuploaddisabled": "Xubir d'una URL ta desactivao nesti sirvidor.",
        "api-error-stashfailed": "Fallu internu: el sirvidor nun pudo guardar el ficheru temporal.",
        "api-error-publishfailed": "Fallu internu: el sirvidor nun pudo espublizar el ficheru temporal.",
        "api-error-stasherror": "Hebo un error al xubir el ficheru al almacén.",
+       "api-error-stashedfilenotfound": "Nun s'alcontró'l ficheru na reserva al intentar cargalu dende allí.",
+       "api-error-stashpathinvalid": "El camín onde tenía qu'alcontrase'l ficheru de la reserva ye inválidu.",
        "api-error-stashfilestorage": "Hebo un error al atroxar el ficheru nel depósitu.",
        "api-error-stashzerolength": "El sirvidor nun pudo atroxar el ficheru nel depósitu porque tien tamañu cero.",
        "api-error-stashnotloggedin": "Tienes d'aniciar sesión p'atroxar ficheros nel depósitu de carga.",
        "expand_templates_generate_xml": "Amosar l'árbole d'análisis sintáuticu XML",
        "expand_templates_generate_rawhtml": "Ver el HTML en bruto",
        "expand_templates_preview": "Vista previa",
+       "expand_templates_preview_fail_html": "<em>Como {{SITENAME}} tien activáu el códigu HTML puru y hebo una perda de datos de la sesión, la vista previa ta tapecida como precaución escontra ataques de JavaScript.</em>\n\n<strong>Si esti ye un intentu llexítimu d'accesu a la vista previa, vuelvi a intentalo.</strong>\nSi inda nun funciona, intenta [[Special:UserLogout|salir]] y volver a entrar na to cuenta.",
+       "expand_templates_preview_fail_html_anon": "<em>Como {{SITENAME}} tien activáu el códigu HTML puru y nun aniciasti sesión, la vista previa ta tapecida como precaución escontra ataques de JavaScript.</em>\n\n<strong>Si esti ye un intentu llexítimu d'accesu a la vista previa, intenta [[Special:UserLogin|entrar]] y vuelvi a intentalo.</strong>",
        "pagelanguage": "Selector de llingua de la páxina",
        "pagelang-name": "Páxina",
        "pagelang-language": "Llingua",
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 741e455..c5158a4 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इसे अपने संगणक पर सँजो के यहाँ चढ़ा दें।",
        "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 997fed0..2cc69b6 100644 (file)
        "no-null-revision": "Немагчыма стварыць нулявую вэрсію для старонкі «$1»",
        "badtitle": "Няслушная назва",
        "badtitletext": "Запытаная назва старонкі няслушная ці пустая, альбо няслушна ўказаная міжмоўная ці інтэрвікі-назва. Яна можа ўтрымліваць сымбалі, якія нельга ўжываць у назвах.",
+       "title-invalid-empty": "Запытаная назва старонкі пустая або ўтрымлівае толькі прастору назваў.",
        "perfcached": "Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі. У кэшы {{PLURAL:$1|даступны|даступныя}} ня больш за $1 {{PLURAL:$1|вынік|вынікі|вынікаў}}.",
        "perfcachedts": "Наступныя зьвесткі кэшаваныя і апошні раз былі абноўленыя $1. У кэшы {{PLURAL:$4|даступны|даступныя}} ня больш за $4 {{PLURAL:$4|вынік|вынікі|вынікаў}}.",
        "querypage-no-updates": "Абнаўленьні гэтай старонкі цяпер адключаныя. Зьвесткі ня будуць абнаўляцца.",
        "viewyourtext": "Вы можаце праглядзець і скапіяваць крынічны тэкст <strong>вашых рэдагаваньняў</strong> на гэтай старонцы:",
        "protectedinterface": "Гэтая старонка ўтрымлівае інтэрфэйснае паведамленьне праграмнага забесьпячэньня, і яе зьмена забаронена. Каб дадаць ці зьмяніць пераклад ва ўсіх праектах, зьвярніцеся на [//translatewiki.net/ translatewiki.net], праект для перакладу MediaWiki.",
        "editinginterface": "<strong>Увага:</strong> Вы рэдагуеце старонку, якая ўтрымлівае тэкст інтэрфэйсу праграмнага забесьпячэньня.\nЯе зьмена паўплывае на вонкавы выгляд інтэрфэйсу іншых удзельнікаў у гэтай вікі.",
-       "translateinterface": "Каб дадаць ці зьмяніць пераклады для ўсіх вікі, калі ласка, крыстаецеся [//translatewiki.net/ translatewiki.net], лякалізацыйным праектам MediaWiki.",
+       "translateinterface": "Каб дадаць ці зьмяніць пераклады для ўсіх вікі, калі ласка, карыстайцеся [//translatewiki.net/ translatewiki.net], лякалізацыйным праектам MediaWiki.",
        "cascadeprotected": "Гэтая старонка абароненая ад рэдагаваньня, таму што яна ўключаная ў {{PLURAL:$1|1=наступную старонку, якая была абароненая|наступныя старонкі, якія былі абароненыя}} з актывізаванай опцыяй «каскаднай абароны»:\n$2",
        "namespaceprotected": "Вы ня маеце правоў на рэдагаваньне старонак у прасторы назваў <strong>$1</strong>.",
        "customcssprotected": "Вы ня маеце правоў на рэдагаваньне гэтай CSS-старонкі, таму што яна ўтрымлівае пэрсанальныя налады іншага ўдзельніка.",
        "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": "Вы ня выбралі мэтавую вэрсію (ці вэрсіі) для выкананьня гэтай функцыі, выбранай вэрсіі не існуе альбо Вы спрабуеце схаваць цяперашнюю вэрсію.",
+       "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 {{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-interwiki-namespace": "Мэтавая прастора назваў:",
-       "import-interwiki-rootpage": "Мэтавая карнявая старонка (неабавязкова):",
+       "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": "Колькасьць файлаў",
        "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",
        "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; Калі вы толькі што ўсталявалі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code>skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобных тэмаў з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code dir=\"ltr\">skins/</code> вашай усталёўкі MediaWiki.\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча.\n\n; Калі вы толькі што абнавілі MediaWiki:\n: MediaWiki вэрсіі 1.24 і навейшыя больш не падключаюць тэмы афармленьня аўтаматычна (глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Інструкцыя:Аўтаматычнае выяўленьне тэмаў афармленьня]). Вы можаце дадаць наступныя радкі ў <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Вашае ўсталяваньне, падобна, уключае {{PLURAL:$4|наступную тэму афармленьне|наступныя тэмы афармленьня}}. Глядзіце старонку [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць {{PLURAL:$4|яе|іх і абраць тэму па змоўчаньні}}.\n\n$2\n\n; Калі вы толькі што ўсталявалі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code>skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобных тэмаў з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code dir=\"ltr\">skins/</code> вашай усталёўкі MediaWiki.\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча.\n\n; Калі вы толькі што абнавілі MediaWiki:\n: MediaWiki вэрсіі 1.24 і навейшыя больш не падключаюць тэмы афармленьня аўтаматычна (глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Інструкцыя:Аўтаматычнае выяўленьне тэмаў афармленьня]). Вы можаце дадаць {{PLURAL:$5|наступны радок у|наступныя радкі ў}} <code>LocalSettings.php</code>, каб падключыць {{PLURAL:$5|усталяваную тэму|усе ўсталяваныя тэмы}} афармленьня:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Калі вы толькі што зьмянілі <code>LocalSettings.php</code>:\n: Пераправерце назвы тэмаў афармленьня на наяўнасьць памылак.",
        "default-skin-not-found-no-skins": "Упс! Тэма афармленьня па змоўчаньні для вашай вікі, вызначаная ў <code>$wgDefaultSkin</code> як <code>$1</code>, недаступная.\n\nВы ня маеце ўсталяваных тэмаў афармленьня.\n\n; Калі вы толькі што ўсталявалі або абнавілі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. MediaWiki вэрсіі 1.24 і навейшыя ня ўтрымліваюць тэмы афармленьня ў галоўным сховішчы. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code dir=\"ltr\">skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобны тэмаў афармленьня з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code>skins/</code> вашай усталёўкі MediaWiki.\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча. Глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць іх і абраць тэму па змоўчаньні.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (уключана)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''адключана''')",
index 6389670..e3b6658 100644 (file)
        "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": "Новы пароль паўторна:",
        "showpreview": "Як будзе",
        "showdiff": "Розніца",
        "blankarticle": "<strong>Увага:</strong> Вы ствараеце пустую старонку.\nКалі вы націсніце \"{{int:savearticle}}\" яшчэ раз, будзе створана старонка без аніякага зместу.",
-       "anoneditwarning": "Вы не ўвайшлі ў сістэму. Таму, калі вы запішаце старонку, у яе гісторыю трапіць ваш адрас IP.",
+       "anoneditwarning": "<strong>Увага!</strong> Вы не аўтарызаваліся на сайце. Ваш IP-адрас будзе публічна бачным, калі вы будзеце ўносіць любыя праўкі. Калі вы <strong>[$1 ўвойдзеце]</strong> ці <strong>[$2 створыце ўліковы запіс]</strong>, праўкі замест гэтага будуць звязаны з вашым імем карыстальніка, а таксама ў вас з'явяцца іншыя перавагі.",
        "anonpreviewwarning": "''Вы не прайшлі ідэнтыфікацыю Захаванне будзе запісана з вашым IP адрасам у гісторыі правак гэтай старонкі.''",
        "missingsummary": "<strong>Нагадваем:</strong> вы не ўпісалі тлумачэння для сваёй праўкі. Калі націснуць \"{{int:savearticle}}\" яшчэ раз, праўка будзе замацавана без тлумачэння.",
        "missingcommenttext": "Калі ласка, увядзіце ніжэй каментарый.",
        "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}}}} журнале сціранняў].",
        "searchall": "усе",
        "showingresults": "Ніжэй паказаны да {{PLURAL:$1|'''$1''' выніку|'''$1''' вынікаў}}, пачынаючы з нумару '''$2'''.",
        "showingresultsinrange": "Ніжэй паказаны да {{PLURAL:$1|<strong>1</strong> выніку|<strong>$1</strong> вынікаў}} у дыяпазоне ад #<strong>$2</strong> да #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Вынік <strong>$1</strong> з <strong>$3</strong>|Вынікі <strong>$1 — $2</strong> з <strong>$3</strong>}}",
        "search-nonefound": "Нічога не было знойдзена.",
        "powersearch-legend": "Падрабязны пошук",
        "powersearch-ns": "Шукаць у прасторах назваў:",
        "querypage-disabled": "Гэта адмысловая старонка адключана для павышэння прадукцыйнасці.",
        "booksources": "Кнігі",
        "booksources-search-legend": "Знайсці, дзе купіць кнігі",
+       "booksources-search": "Пошук",
        "booksources-text": "Ніжэй паказаны пералік спасылак на іншыя сеціўныя пляцоўкі, якія прадаюць новыя і б/у кнігі, і, магчыма, маюць больш звестак пра кнігі, якіх вы шукаеце:",
        "booksources-invalid-isbn": "Гэты ISBN не выглядае правільным; праверце правільнасць капіравання з арыгіналу.",
        "specialloguserlabel": "Выканаўца:",
        "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": "нельга правіць уласную размову",
        "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-ca-talk": "Размовы пра змест гэтай старонкі",
        "tooltip-ca-edit": "Старонку можна правіць. Перш чым запісаць свае змены, паглядзіце на вынік, націснуўшы кнопку папярэдняга прагляду.",
        "tooltip-ca-addsection": "Дадаць новы раздзел",
        "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 b51ddbf..9d33a6f 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": "За достъп до избраното действие или страница е необходимо влизане в системата.",
        "preview": "Предварителен преглед",
        "showpreview": "Предварителен преглед",
        "showdiff": "Показване на промените",
-       "anoneditwarning": "'''Внимание:''' Не сте влезли в системата. В историята на страницата ще бъде записан вашият IP-адрес.",
+       "anoneditwarning": "<strong>Внимание:</strong> Не сте влезли в системата. Ако направите редакция IP-адресът Ви ще бъде публично видим. Ако <strong>[$1 влезете]</strong> или си <strong>[$2 създадете акаунт]</strong>, редакциите Ви ще бъдат свързани с потребителското Ви име, заедно с други преимущества.",
        "anonpreviewwarning": "Внимание: Не сте влезли в системата. Ако съхраните редакцията си, тя ще бъде записана в историята на страницата с вашият IP-адрес.",
        "missingsummary": "'''Напомняне:''' Не е въведено кратко описание на промените. При повторно натискане на бутона „Съхраняване“, редакцията ще бъде съхранена без резюме.",
        "missingcommenttext": "По-долу въведете вашето съобщение.",
        "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|резултат|резултата}} на страница",
        "viewprevnext": "Преглед ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''Съществува страница с името „[[:$1]]“ в това уики.'''",
-       "searchmenu-new": "'''Създаване на страницата „[[:$1]]“ в това уики!'''",
+       "searchmenu-new": "<strong>Създаване на страницата „[[:$1]]“ в това уики!</strong> {{PLURAL:$2|0=|Вижте също страницата, която е резултат от търсенето.|Вижте също резултатите от търсенето.}}",
        "searchprofile-articles": "Съдържателни страници",
        "searchprofile-images": "Мултимедия",
        "searchprofile-everything": "Всичко",
        "searchrelated": "свързани",
        "searchall": "всички",
        "showingresults": "Показване на до {{PLURAL:$1|'''1''' резултат|'''$1''' резултата}}, като се започва от номер '''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Резултат <strong>$1</strong> от <strong>$3</strong>|Резултати <strong>$1 - $2</strong> от <strong>$3</strong>}}",
        "search-nonefound": "Няма резултати, които да отговарят на заявката.",
        "powersearch-legend": "Разширено търсене",
        "powersearch-ns": "Търсене в именни пространства:",
        "prefs-personal": "Потребителски данни",
        "prefs-rc": "Последни промени",
        "prefs-watchlist": "Списък за наблюдение",
+       "prefs-editwatchlist": "Редактиране на списъка за наблюдение",
+       "prefs-editwatchlist-label": "Редактиране на записи от списъка за наблюдение:",
+       "prefs-editwatchlist-edit": "Преглед и премахване на заглавия от списъка за наблюдение",
+       "prefs-editwatchlist-raw": "Редактиране на необработения списък за наблюдение",
+       "prefs-editwatchlist-clear": "Изчистване на списъка за наблюдение",
        "prefs-watchlist-days": "Брой дни, които да се показват в списъка за наблюдение:",
        "prefs-watchlist-days-max": "Най-много $1 {{PLURAL:$1|ден|дни}}",
        "prefs-watchlist-edits": "Брой редакции, които се показват в разширения списък за наблюдение:",
        "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 заявка.",
        "nolicense": "Нищо не е избрано",
        "license-nopreview": "(Не е наличен предварителен преглед)",
        "upload_source_url": " (правилен, публично достъпен интернет-адрес)",
-       "upload_source_file": " (файл на вашия компютър)",
+       "upload_source_file": "(файл на вашия компютър)",
        "listfiles-delete": "изтриване",
        "listfiles-summary": "Тази специална страница показва всички качени файлове.",
        "listfiles_search_for": "Търсене по име на файла:",
+       "listfiles-userdoesnotexist": "Няма регистрирана потребителска сметка за „$1“.",
        "imgfile": "файл",
        "listfiles": "Списък на файловете",
        "listfiles_thumb": "Миникартинка",
        "uploadnewversion-linktext": "Качване на нова версия на файла",
        "shared-repo-from": "от $1",
        "shared-repo": "споделено хранилище",
+       "upload-disallowed-here": "Не можете да препокриете файла.",
        "filerevert": "Възвръщане на $1",
        "filerevert-legend": "Възвръщане на файла",
        "filerevert-intro": "Възвръщане на '''[[Media:$1|$1]]''' към [$4 версията от $3, $2].",
        "ninterwikis": "$1 {{PLURAL:$1|междууики|междууикита}}",
        "nlinks": "$1 {{PLURAL:$1|препратка|препратки}}",
        "nmembers": "$1 {{PLURAL:$1|член|члена}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|член|члена}}",
        "nrevisions": "$1 {{PLURAL:$1|версия|версии}}",
        "nviews": "$1 {{PLURAL:$1|преглед|прегледа}}",
        "nimagelinks": "Използва се в $1 {{PLURAL:$1|страница|страници}}",
        "pager-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": "Незащитимо именно пространство",
        "import-interwiki-history": "Копиране на всички версии на страницата",
        "import-interwiki-templates": "Включване на всички шаблони",
        "import-interwiki-submit": "Внасяне",
-       "import-interwiki-namespace": "Целево именно пространство:",
-       "import-interwiki-rootpage": "Целева основна страница (незадължително):",
        "import-upload-filename": "Име на файл:",
        "import-comment": "Коментар:",
        "importtext": "Изнесете файла от изходното уики чрез „[[Special:Export|инструмента за изнасяне]]“. Съхранете го на твърдия диск на компютъра си и го качете тук.",
        "tooltip-pt-mycontris": "Списък на вашите приноси",
        "tooltip-pt-login": "Насърчаваме ви да влезете, въпреки че не е задължително.",
        "tooltip-pt-logout": "Излизане от {{SITENAME}}",
+       "tooltip-pt-createaccount": "Насърчаваме Ви да си създадете сметка и да влезете, въпреки че не е задължително.",
        "tooltip-ca-talk": "Беседа относно страницата",
        "tooltip-ca-edit": "Можете да редактирате страницата. Използвайте бутона за предварителен преглед преди да съхраните.",
        "tooltip-ca-addsection": "Започване на нов раздел",
        "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",
        "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": "скрито резюме на редакцията",
        "logentry-rights-rights": "$1 {{GENDER:$2|промени}} потребителската група на $3 от $4 на $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|промени}} потребителската група на $3",
        "logentry-rights-autopromote": "$1 е автоматично {{GENDER:$2|повишен|повишена}} от $4 до $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|качи}} $3",
        "rightsnone": "(никакви)",
        "revdelete-summary": "резюме",
        "feedback-adding": "Добавяне на коментар към страницата...",
        "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 637a2e5..2ab85d2 100644 (file)
        "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|نتیجه|نتیجه}} بی هر تاکدیمی تا",
        "listfiles-delete": "پاک کورتین",
        "listfiles-summary": "ای خاصین تاکدیم موچین بُرز بوته ئین فایلانه نشان ئه دنت.",
        "listfiles_search_for": "گشتین په میڈیا نام ئا:",
+       "listfiles-userdoesnotexist": "\"$1\" ئی کارمرزوکین هیساب راجیستر نه بوته.",
        "imgfile": "فایل",
        "listfiles": "فایل لیست",
        "listfiles_thumb": "ناحُننک",
        "morelinkstoimage": "ای فایلئ [[Special:WhatLinksHere/$1|دیگرین لینکانا]] بگیندیت.",
        "linkstoimage-redirect": "$1 (فایلی تغیرمسیر) $2",
        "duplicatesoffile": "جهلگی{{PLURAL:$1|فایل|فایلان}} تکرارین نخسه شه ای فایلا  {{PLURAL:$1|است|هستنت}} ([[Special:FileDuplicateSearch/$2|گیشتیرین مئلومات]]):",
+       "sharedupload": "ای ورَق بئ $1 تا اینت و مومکن اینت که دیگه پروژه ئانی تا هم ایستیپاده بیت.",
        "sharedupload-desc-here": "ای فایل بئ $1 ئی تا قرار داریت و ممکن اینت که بئ دیگه پروژه‌هانئ تا هم استفاده بیئت.\nموجودین شرح بئ [$2 فایلی دیمی شرح بئ آ جای تا]، جهلگا نشان داته بوته.",
        "filepage-nofile": "فایلی گۆ ای ناما موجود نه اینت.",
        "filepage-nofile-link": "فایلی گۆ ای ناما موجود نه اینت، اما شما ئه توانیت آیرا [$1 بُرز کنیت].",
        "import-interwiki-history": "ای تاکدیمی موچین تاریخچه ئی نخسه انتقال داته بوتنت",
        "import-interwiki-templates": "موچین تراشوانانا شامل بیئت",
        "import-interwiki-submit": "بێ تێ کورتین",
-       "import-interwiki-namespace": "نامی فضای مخصد:",
-       "import-interwiki-rootpage": "مخصدی دیمی ریشگ (اختیاری):",
        "import-upload-filename": "فایلئ نام:",
        "import-comment": "کومنیت:",
        "importstart": "تاکدیمانی بي  تئ ریتینی حالا...",
        "importnopages": "هیچ تاکدیمی په ایمپورت ئا نه اینت.",
        "importfailed": "ایمپورت شکست وارت: <nowiki>$1</nowiki>",
        "importunknownsource": "بُنریچی ئی رقم مئلوم نه اینت",
+       "importcantopen": "تاکدیمانی درون ریچی ئی ورَق پاچ نه بوت",
        "importbadinterwiki": "بدئین انتیرویکی ئی لینک",
        "importsuccess": "بي تی ریتین یا ایمپورت بوت!",
+       "import-parse-failure": "ختا بئ بُرز بوته ئین اکس ام ال ئی تجزیه یی تا",
+       "import-noarticle": "هیچ تاکدیمی په ایمپورت ئا نه اینت.",
        "import-upload": "اکس ام ال ئی دیتای بُرز کورتین",
        "importlogpage": "ایمپورت لوگ",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|نسخه|نسخه}} وارد بوته",
        "exif-ycbcrpositioning-1": "مانجین بوتگ",
        "exif-ycbcrpositioning-2": "اشتراکی",
        "exif-dc-contributor": "شراکت کنۆک ئان",
+       "exif-dc-coverage": "رسانگ ئی زمانین یا مکانین محدوده",
        "exif-dc-date": "تاریخ(ئان)",
        "exif-dc-publisher": "ناشر",
        "exif-dc-relation": "مربوتین میڈیاهان",
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 42acaf6..ba9e38e 100644 (file)
        "right-move-rootuserpages": "root ব্যবহারকারীর পাতাগুলো সরিয়ে ফেলুন",
        "right-move-categorypages": "বিষয়শ্রেণী পাতাসমূহ স্থানান্তর করুন",
        "right-movefile": "ফাইল স্থানান্তর",
-       "right-suppressredirect": "পাতা স্থানান্তরের সময় মূল পাতায় রিডাইরেক্ট তৈরী করছে না",
+       "right-suppressredirect": "পাতা স্থানান্তরের সময় মূল পাতা থেকে পুনর্নির্দেশ তৈরী করছে না",
        "right-upload": "ফাইল আপলোড করুন",
        "right-reupload": "বিদ্যমান ফাইল প্রতিস্থাপন করো",
        "right-reupload-own": "কারও আপলোডকৃত ফাইল ওভাররাইট করুন",
        "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}}]]) দ্বারা সম্পাদিত।",
        "pagemovedsub": "সরিয়ে নেওয়া হয়েছে",
        "movepage-moved": "'''\"$1\"-কে \"$2\" শিরোনামে স্থানান্তর করা হয়েছে'''",
        "movepage-moved-redirect": "একটি পুনর্নির্দেশনা তৈরি হয়েছে।",
-       "movepage-moved-noredirect": "রিডাà¦\87রà§\87à¦\95à§\8dà¦\9f তৈরীতে বাধা দেয়া হয়েছে।",
+       "movepage-moved-noredirect": "পà§\81নরà§\8dনিরà§\8dদà§\87শ তৈরীতে বাধা দেয়া হয়েছে।",
        "articleexists": "এই শিরোনামে একটি পাতা ইতোমধ্যে সৃষ্টি হয়ে গেছে, অথবা আপনি যে শিরোনামটি পছন্দ করেছেন তা গ্রহণযোগ্য নয়। দয়া করে অন্য একটি শিরোনাম দিয়ে চেষ্টা করুন।",
        "cantmove-titleprotected": "আপনি এই অবস্থানে পাতাটিকে স্থানান্তর করতে পারেন না, কারণ এই নতুন শিরোনামটি সৃষ্টি করা থেকে সুরক্ষিত।",
        "movetalk": "সংশ্লিষ্ট আলাপের পাতা সরিয়ে নাও",
        "import-interwiki-history": "এই পাতার সমস্ত ইতিহাসের সংস্করণের অনুলিপি করা হোক",
        "import-interwiki-templates": "সকল টেম্পলেট অন্তর্ভুক্ত",
        "import-interwiki-submit": "আমদানি",
-       "import-interwiki-namespace": "গন্তব্য নামস্থান:",
-       "import-interwiki-rootpage": "মূল পাতা (ঐচ্ছিক):",
+       "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 সফল!",
+       "importsuccess": "à¦\86মদানি সফল!",
        "importnosources": "কোন আন্তঃউইকি আমদানি উৎস সংজ্ঞায়িত করা হয়নি এবং সরাসরি ইতিহাস আপলোডের ক্ষমতা নিষ্ক্রিয় করা হয়েছে।",
        "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": "মূল পাতার ভুল শিরনাম দেয়া হয়েছে।",
        "version-license-not-found": "এই এক্সটেনশনের জন্য কোনো বিস্তারিত লাইসেন্স তথ্য পাওয়া যায়নি।",
        "version-credits-title": "$1-এর জন্য কৃতিত্ব",
        "version-credits-not-found": "এই এক্সটেনশনটির জন্য কোনো বিস্তারিত কৃতিত্ব তথ্য পাওয়া যায়নি।",
-       "version-poweredby-credits": "এইক উইকিটি পরিচালিত হচ্ছে '''[https://www.mediawiki.org/ মিডিয়াউইকি]'''-এর মাধ্যমে, কপিরাইট © ২০০১-$1 $2।",
+       "version-poweredby-credits": "এই উইকিটি পরিচালিত হচ্ছে <strong>[https://www.mediawiki.org/ মিডিয়াউইকি]</strong> -এর মাধ্যমে, কপিরাইট © ২০০১-$1 $2।",
        "version-poweredby-others": "অন্যান্য",
        "version-poweredby-translators": "translatewiki.net অনুবাদকগণ",
        "version-credits-summary": "[[Special:Version|মিডিয়াউইকি]] সফটওয়্যারে অবদানের জন্য আমরা এই ব্যক্তিকে স্বীকৃতি দিতে চাই।",
-       "version-license-info": "মিডিয়াউইকি এ++++কটি ফ্রি সফটওয়্যার, আপনি এটি বিতরণ করতে পারবেন এবং/অথবা সম্পদানা করতে পারবেন, এক্ষেত্রে ফ্রি সফটওয়্যার ফাউন্ডেশনের প্রকাশিত গনু জেনারেল পাবলিক লাইসেন্সের ২য় অথবা সাম্প্রতিকতম কোনো সংস্করণ মেনে চলতে হবে। \n\nসকলের উপকারের লক্ষ্যে এটি বিতরণ করা হয়ে থাকে, কিন্তু এক্ষেত্রে কোনো ওয়ারেন্টি দেয়া হয় না, এমনকি বিশেষ কোনো কার্যক্ষেত্রে ব্যবহারের জন্যও তথাকথিত ওয়ারেন্টি দেয়া হয় না। বিস্তারিত জানতে দেখুন গনু জেনারেল পাবলিক লাইসেন্স। \n\nএই সফটওয়্যারের সাথে [{{SERVER}}{{SCRIPTPATH}}/COPYING গনু জেনারেল পাবলিক লাইসেন্সের একটি কপি] থাকার কথা; যদি আপনি না পেয়ে থাকেন তাহলে অনুগ্রহ করে ফ্রি সফটওয়্যার ফাউন্ডেশনকে জানান এই ঠিকানায়, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA অথবা [//www.gnu.org/licenses/old-licenses/gpl-2.0.html অনলাইনে দেখুন]।",
+       "version-license-info": "মিডিয়াউইকি একটি ফ্রি সফটওয়্যার, আপনি এটি বিতরণ করতে পারবেন এবং/অথবা সম্পদানা করতে পারবেন, এক্ষেত্রে ফ্রি সফটওয়্যার ফাউন্ডেশনের প্রকাশিত গনু জেনারেল পাবলিক লাইসেন্সের ২য় অথবা সাম্প্রতিকতম কোনো সংস্করণ মেনে চলতে হবে। \n\nসকলের উপকারের লক্ষ্যে এটি বিতরণ করা হয়ে থাকে, কিন্তু এক্ষেত্রে কোনো ওয়ারেন্টি দেয়া হয় না, এমনকি বিশেষ কোনো কার্যক্ষেত্রে ব্যবহারের জন্যও তথাকথিত ওয়ারেন্টি দেয়া হয় না। বিস্তারিত জানতে দেখুন গনু জেনারেল পাবলিক লাইসেন্স। \n\nএই সফটওয়্যারের সাথে [{{SERVER}}{{SCRIPTPATH}}/COPYING গনু জেনারেল পাবলিক লাইসেন্সের একটি কপি] থাকার কথা; যদি আপনি না পেয়ে থাকেন তাহলে অনুগ্রহ করে ফ্রি সফটওয়্যার ফাউন্ডেশনকে জানান এই ঠিকানায়, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA অথবা [//www.gnu.org/licenses/old-licenses/gpl-2.0.html অনলাইনে দেখুন]।",
        "version-software": "ইনস্টলকৃত সফটওয়্যার",
        "version-software-product": "পণ্য",
        "version-software-version": "সংস্করণ",
        "tags-deactivate-reason": "কারণ:",
        "tags-deactivate-submit": "নিষ্ক্রিয়",
        "tags-edit-title": "ট্যাগ সম্পাদনা করুন",
+       "tags-edit-reason": "কারণ:",
        "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|স্থানান্তর}} করেছেন",
        "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 086f06a..cc56895 100644 (file)
        "searchrelated": "povezano",
        "searchall": "sve",
        "showingresults": "Dolje {{PLURAL:$1|je prikazan '''1''' rezultat|su prikazana '''$1''' rezultata|je prikazano '''$1''' rezultata}} počev od '''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Rezultat <strong>$1</strong> od <strong>$3</strong>|Rezultati <strong>$1 - $2</strong> od <strong>$3</strong>}}",
        "search-nonefound": "Nisu pronađeni rezultati koji odgovaraju upitu.",
        "powersearch-legend": "Napredna pretraga",
        "powersearch-ns": "Pretraga u imenskim prostorima:",
        "import-interwiki-history": "Kopiraj sve verzije historije za ovu stranicu",
        "import-interwiki-templates": "Uključi sve šablone",
        "import-interwiki-submit": "Uvoz",
-       "import-interwiki-namespace": "Odredišni imenski prostor:",
-       "import-interwiki-rootpage": "Odredišna osnovna stranica (opcionalno):",
        "import-upload-filename": "Naziv datoteke:",
        "import-comment": "Komentar:",
        "importtext": "Molimo Vas da izvezete datoteku iz izvornog wikija koristeći [[Special:Export|alat za izvoz]].\nSačuvajte je na Vašem računaru i pošaljite ovdje.",
        "tooltip-pt-mycontris": "Spisak vašeg doprinosa",
        "tooltip-pt-login": "Predlažemo da se prijavite, ali nije obvezno.",
        "tooltip-pt-logout": "Odjava sa projekta {{SITENAME}}",
+       "tooltip-pt-createaccount": "Ohrabrujemo vas da otvorite nalog i prijavite se, međutim to nije obavezno",
        "tooltip-ca-talk": "Razgovor o sadržaju",
        "tooltip-ca-edit": "Možete uređivati ovaj članak. Molimo Vas, koristite dugme \"Prikaži izgled\" prije spašavanja izmjena.",
        "tooltip-ca-addsection": "Započnite novu sekciju.",
        "logentry-rights-rights": "$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3 iz $4 u $5",
        "logentry-rights-rights-legacy": "$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|uploaded}} $3",
        "rightsnone": "(nema)",
        "revdelete-summary": "sažetak",
        "feedback-adding": "Dodajem povratne informacije na stranicu...",
index 9c7f094..910f0ba 100644 (file)
        "mergelogpagetext": "A sota hi ha una llista de les fusions més recents d'una pàgina d'historial en una altra.",
        "history-title": "«$1»: Historial de revisions",
        "difference-title": "Diferència entre revisions de la pàgina «$1»",
-       "difference-title-multipage": "$1 i $2: Diferència entre les pàgines",
+       "difference-title-multipage": "Diferència entre les pàgines «$1» i «$2»",
        "difference-multipage": "(Diferència entre pàgines)",
        "lineno": "Línia $1:",
        "compareselectedversions": "Compara les versions seleccionades",
        "import-interwiki-history": "Copia totes les versions de l'historial d'aquesta pàgina",
        "import-interwiki-templates": "Inclou totes les plantilles",
        "import-interwiki-submit": "Importa",
-       "import-interwiki-namespace": "Espai de noms de destinació:",
-       "import-interwiki-rootpage": "Pàgina arrel de destí (opcional):",
        "import-upload-filename": "Nom de fitxer:",
        "import-comment": "Comentari:",
        "importtext": "Exporteu el fitxer des del wiki d'origen utilitzant l'[[Special:Export|eina d'exportació]].\nDeseu-lo al vostre ordinador i carregueu-ne una còpia ací.",
        "tags-update-add-not-allowed-one": "No es permet afegir manualment l'etiqueta «$1».",
        "tags-edit-title": "Modifica les etiquetes",
        "tags-edit-manage-link": "Gestiona les etiquetes",
+       "tags-edit-existing-tags": "Etiquetes existents:",
+       "tags-edit-new-tags": "Etiquetes noves:",
        "tags-edit-reason": "Motiu:",
        "comparepages": "Comparar pàgines",
        "compare-page1": "Pàgina 1",
index dc2ee15..fdc7105 100644 (file)
        "qbfind": "Лахар",
        "qbbrowse": "Хьажар",
        "qbedit": "Нисъе",
-       "qbpageoptions": "Агlо нисйар",
+       "qbpageoptions": "АгӀона гӀирс нисбар",
        "qbmyoptions": "Хьан нисдарш",
        "faq": "СиХХ",
        "faqpage": "Project:СиХХ",
        "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": "Бахьна:",
        "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",
        "summary-preview": "Цуьнах лаьцна хирду:",
        "subject-preview": "Коьрта могӀа хира бу:",
        "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|гайтина юккъера цхьа верси|гайтина юккъера цхьа версеш}} оьцу декъашхочун)",
        "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": "КуьгтаӀор",
        "rightslog": "Декъашхочун бакъона тéптар",
        "rightslogtext": "Декъашхойн бакъонаш хийцар долу тептар.",
        "action-read": "хӀара агӀо ешар",
-       "action-edit": "нисйа хlара агlо",
+       "action-edit": "хӀара агӀо таяр",
        "action-createpage": "агӀонаш кхолла",
        "action-createtalk": "дийцаре агӀонаш кхоллар",
        "action-createaccount": "хӀара декъашхочун дӀаяздар кхоллар",
        "specialloguserlabel": "Декъашхо:",
        "speciallogtitlelabel": "Ӏалашо (цӀе я декъашхо):",
        "log": "Тéптарш",
-       "all-logs-page": "Деригге тléкхочучéхь долу тéптарш",
+       "all-logs-page": "Дерриге тӀекхочучехь долу тептарш",
        "alllogstext": "Массо тéптар могӀам. {{SITENAME}}.\nШуьга харжалур бу хилам оцу тептаре хьаьжжина, декъашхочун цӀе (дӀаяздар диц а цадеш) я цо хьейина агӀонаш (ишта дӀаяздар а диц цадеш).",
        "logempty": "Тептарш чохь хӀокху агӀона дӀаяздарш дац.",
        "log-title-wildcard": "ХӀокху символашца болалуш болу кортанаш карабе",
        "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}}}} кхечу декъашхочунга кехат дахьийтар",
        "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Ишта чу ханчохь, ахьа дехьа яккха йезар ю йа куьйга хӀоттайар, нагахь иза хьашт йалахь.",
        "nonfile-cannot-move-to-file": "АгӀонийн цӀераш хийца йиш яц",
        "imagetypemismatch": "Файлан керла шоръелла оцунна тайпанца йогӀуш яц",
        "imageinvalidfilename": "Файлан цӀе гӀалате ю",
+       "fix-double-redirects": "Хьалхара цӀе йолу дӀасахьажорг нисъян",
        "move-leave-redirect": "Ӏадйита дӀасахьажораг",
        "protectedpagemovewarning": "'''ДӀахьедар.''' ХӀара агӀо гӀаролла йина ю; цӀе хийца я нисйа а бакъо йолуш куьйгалхой бе бац.\nЛахахьа тептаро балийна тӀаьхьаралера дӀаязбина хаам:",
        "semiprotectedpagemovewarning": "'''ДӀахьедо.''' ХӀара агӀо гӀаролла йина ю; дӀабазбиначу декъашхошка бе цӀе хийцалуш яц.\nЛахахьа тептаро балийна тӀаьхьаралера дӀаязбина хаам:",
        "import-interwiki-history": "ХӀокху агӀона ерриг хийцаман истори копи ян",
        "import-interwiki-templates": "Юкъайихка массо кепаш",
        "import-interwiki-submit": "Импорт ян",
-       "import-interwiki-namespace": "Коьрта цӀерийн ана:",
-       "import-interwiki-rootpage": "Коьрта агӀо (тӀехь дац):",
        "import-upload-filename": "Файлан цӀе:",
        "import-comment": "Билгалдаккхар:",
        "importstart": "АгӀонаш импорт яр…",
        "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": "Къастам бé хӀокху хийцамна кӀеззиг болуш санна",
        "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": "Кхочушдé",
        "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 2eecb5c..051c7de 100644 (file)
        "permalink": "بەستەری ھەمیشەیی",
        "print": "چاپ",
        "view": "بینین",
+       "view-foreign": "لە $1دا بیبینە",
        "edit": "دەستکاری",
        "create": "دروستکردن",
        "editthispage": "دەستکاری ئەم پەڕەیە بکە‌",
        "mycustomjsprotected": "دەسەڵاتی دەستکارییکردنی ئەم پەڕەی JavaScript ـەت نییە.",
        "myprivateinfoprotected": "دەسەڵاتی دەستکارییکردنی زانیارییە تایبەتییەکانی خۆتت نییە.",
        "mypreferencesprotected": "دەسەڵاتی دەستکارییکردنی هەڵبژاردنەکانی خۆتت نییە.",
-       "ns-specialprotected": "تۆ ناتوانی لاپەڕە تایبەتەکان دەستکاریی بکەی.",
+       "ns-specialprotected": "پەڕە تایبەتەکان دەستکاری ناکرێن.",
        "titleprotected": "ئەم سەرناوە پارێزراوە لە دروستکران لە لایەن [[User:$1|$1]].\nھۆکاری ئەمە بریتیە لە \"''$2''\".",
        "invalidtitle-knownnamespace": "سەردێڕی نادروست بە بۆشایی ناوی «$2» و دەقی «$3»",
        "invalidtitle-unknownnamespace": "سەردێڕی هەڵە لەگەڵ ناوەبۆشایی نەناسراوی ژمارە $1 و دەقی \"$2\"",
        "preview": "پێشبینین",
        "showpreview": "پێشبینین نیشان بدە",
        "showdiff": "گۆڕانکارییەکان نیشان بدە",
-       "anoneditwarning": "'''ھۆشیار بە:''' نەچوویتە ژوورەوە.\nناونیشانی IPی تۆ لە مێژووی دەستکارییەکانی ئەم پەڕەیەدا تۆماردەکرێت.",
+       "anoneditwarning": "<strong>ھۆشیار بە:</strong> نەڕۆیشتووتەتە ژوورەوە. ھەر دەستکارییەک بکەیت ناونیشانی IPیەکەت بۆ ھەموو کەسێک دیار دەبێت. بەڵام ئەگەر <strong>[$1 بچیتە ژوورەوە]</strong> یان <strong>[$2 ھەژمارێک دروست بکەیت]</strong>، دەستکارییەکانت بە ناوی بەکارھێنەرییەکەتەوە بڵاو دەبێتەوە و لە چەند قازانجی تریشی ھەیە.",
        "anonpreviewwarning": "«نەڕۆشتوویتە ژوورەوە. پاشەکەوتکردن، ئەدرەسی IPەکەت لە مێژووی دەستکاریی ئەم پەڕە تۆمار دەکات.»",
        "missingsummary": "'''وە بیر خستنەوە:''' پوختەیەکت نەنووسیوە بۆ چۆنیەتی گۆڕانکارییەکەت.\nئەگەر جارێکی تر پاشکەوت کردن لێبدەی، بێ پوختە تۆمار دەکرێ.",
        "missingcommenttext": "تکایە لە خوارەوە شرۆڤەیەک بنووسە.",
        "userrights-unchangeable-col": "ئەو گرووپانەی ناتوانی بیگۆڕی",
        "group": "گرووپ:",
        "group-user": "بەکارھێنەران",
-       "group-autoconfirmed": "بەکارھێنەرانی پەسندکراوی خۆگەڕ",
+       "group-autoconfirmed": "بەکارھێنەرە خۆبەخۆ پەسندکراوەکان",
        "group-bot": "بۆتەکان",
        "group-sysop": "بەڕێوەبەران",
        "group-bureaucrat": "بیوروکراتەکان",
        "group-suppress": "چاودێرەکان",
        "group-all": "(ھەموو)",
        "group-user-member": "{{GENDER:$1|بەکارھێنەر}}",
-       "group-autoconfirmed-member": "{{GENDER:$1|بەکارھێنەرانی پەسندکراوی خۆگەڕ}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|بەکارھێنەرە خۆبەخۆ پەسندکراوەکان}}",
        "group-bot-member": "بۆت",
        "group-sysop-member": "{{GENDER:$1|بەڕێوەبەر}}",
        "group-bureaucrat-member": "{{GENDER:$1|بیوروکرات}}",
        "group-suppress-member": "{{GENDER:$1|چاودێر}}",
        "grouppage-user": "{{ns:project}}:بەکارھێنەران",
-       "grouppage-autoconfirmed": "{{ns:project}}:بەکارھێنەرانی پەسندکراوی خۆگەڕ",
+       "grouppage-autoconfirmed": "{{ns:project}}:بەکارھێنەرە خۆبەخۆ پەسندکراوەکان",
        "grouppage-bot": "{{ns:project}}:بۆت",
        "grouppage-sysop": "{{ns:project}}:بەڕێوەبەران",
        "grouppage-bureaucrat": "{{ns:project}}:بیوروکراتەکان",
        "action-deleterevision": "سڕینەوەی ئەم پێداچوونەوەیە",
        "action-deletedhistory": "دیتنی مێژووی سڕاوەی ئەم پەڕەیە",
        "action-browsearchive": "گەران لە نێو لاپەڕە سڕاوەکان",
-       "action-undelete": "گەڕانەوەی ئەم لاپەڕە",
+       "action-undelete": "گەڕاندنەوەی ئەم پەڕەیە",
        "action-suppressrevision": "چاوپێداخشان و هاردنوەی ئەم لاپەڕە شاراوە",
        "action-suppressionlog": "دیتنی ئەم لۆگە ئەهلیە",
        "action-block": "بەربەست کردنی ئەم بەکارهێنەرە بۆ دەستکاری‌کردن",
        "rcshowhideanons": "بەکارھێنەرە نەناسراوەکان $1",
        "rcshowhideanons-show": "نیشان بدە",
        "rcshowhideanons-hide": "بشارەوە",
-       "rcshowhidepatr": "گۆرانکارییە پاس دراوەکان $1",
+       "rcshowhidepatr": "دەستکارییە پشکێنراوەکان $1",
        "rcshowhidepatr-show": "نیشان بدە",
        "rcshowhidepatr-hide": "بیشارەوە",
        "rcshowhidemine": "دەستکارییەکانم $1",
        "hide": "بشارەوە",
        "show": "نیشان بدە",
        "minoreditletter": "ب",
-       "newpageletter": "ن",
-       "boteditletter": "بۆ",
+       "newpageletter": "نوێ",
+       "boteditletter": "بۆت",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|بەکارھێنەر}}ی چاودێر]",
        "rc_categories": "بەرتەسک‌کردنەوە بە هاوپۆلەکان (به «|» جیای بکەوە‌)",
        "rc_categories_any": "هەرکام",
        "protectedpages-page": "پەڕە",
        "protectedpages-params": "پارامەترەکانی پاراستن",
        "protectedpages-reason": "ھۆکار",
-       "protectedtitles": "سەردێڕە پارێزراوەکان",
+       "protectedtitles": "سەرناوە پارێزراوەکان",
        "protectedtitlesempty": "ھیچ سەرناوێک بەم سنوورانەوە ئێستا نەپارێزراوە.",
        "listusers": "پێرستی بەکارھێنەران",
        "listusers-editsonly": "تەنیا ئەو بەکارھێنەرانە نیشان بدە کە دەستکارییان کردووە",
        "suppress": "چاودێری",
        "booksources": "سەرچاوەکانی کتێب",
        "booksources-search-legend": "بۆ سەرچاوەی کتێب بگەڕێ",
+       "booksources-search": "بگەڕێ",
        "booksources-text": "لە خوارەوە لیستێک لە بەستەر بۆ ماڵپەڕهایەک کە کتێبی نوێ و بەکارهێنراو دەفرۆشێت و لەوانەیە لەوێ زانیاریی زیاترت دەست‌کەوێت سەبارەت بەو کتێبانەی لە دووی دەگەڕیت:",
        "booksources-invalid-isbn": "ISBN دراو لەوە ناچی بەکار بێت، سەرنج بدە لە کاتی کۆپی کردن لە سەرچاوە تووشی هەڵە نوبوبێت.",
        "specialloguserlabel": "بەجێھێنەر:",
        "listusers-submit": "نیشانیبدە",
        "listusers-noresult": "ھیچ بەکارھێنەرێک نەدۆزرایەوە.",
        "listusers-blocked": "(بەربەست کراوە)",
-       "activeusers": "پێرستی بەکارھێنەرانی چالاک",
+       "activeusers": "پێرستی بەکارھێنەرە چالاکەکان",
        "activeusers-intro": "ئەمە لیستێکی ئەو بەکارھێنەرانەیە کە لە  $1 {{PLURAL:$1|ڕۆژ|ڕۆژ}}ی ڕابردوودا بە جۆرێک چالاکییەکیان ھەبووە.",
        "activeusers-count": "$1 {{PLURAL:$1|کردەوە}} لە دوایین {{PLURAL:$3|ڕۆژ|$3 ڕۆژ}}دا",
        "activeusers-from": "نیشاندانی بەکارھێنەران بە دەستپێکردن لە:",
        "ipusubmit": "لابردنی ئەم بەربەستە",
        "unblocked": "[[User:$1|$1]] لە بەربەست دەرهێنرا",
        "unblocked-id": "بەربەستی $1 لابرا",
-       "blocklist": "بەکارھێنەرانی بەربەسراو",
+       "blocklist": "بەکارھێنەرە بەربەستکراوەکان",
        "ipblocklist": "بەکارھێنەرە بەربەستکراوەکان",
        "ipblocklist-legend": "دۆزینەوەی بەکارهێنەرێکی بەربەست‌کراو",
        "blocklist-userblocks": "ھەژمارە بەربەستکراوەکان بشارەوە",
        "proxyblockreason": "ناونیشانی ئای‌پی تۆ بەربەست‌کراوە لەبەر ئەوەی پرۆکسیەکی کراوەیە.\nتکایە پەیوەندی بکە بە دابینکەری خزمەتی ئینتەرنەتی خۆت یان پاڵپشتی تەکنیکی و ئاگادریان کەوە لەو کێشە ئەمنیە گرینگە.",
        "sorbsreason": "ناونیشانی ئای‌پی تۆ لە DNSBLدا کە {{SITENAME}} کەڵکی لێ‌وەر دەگرێ، وەک پرۆکسیەکی کراوە لیست کراوە.",
        "sorbs_create_account_reason": "ناونیشانی ئای‌پی تۆ لە DNSBLدا کە {{SITENAME}} کەڵکی لێ‌وەر دەگرێ، وەک پرۆکسیەکی کراوە لیست کراوە.\nبۆیە ناتوانی هەژمارە درووست‌بکەی.",
-       "ipbblocked": "ناتوانی بەکارھێنەرانی تر بەربەست بکەی یان بکەیەوە، چون خۆت بەربەست کراوی.",
+       "ipbblocked": "ناتوانی بەکارھێنەرانی تر بەربەست بکەیت یان بکەیتەوە، چونکوو خۆت بەربەست کراوی.",
        "lockdb": "داخستنی بنکەدراوە",
        "unlockdb": "کردنەوەی بنکەدراوە",
        "lockdbtext": "داخستنی بنکەدراوە ئەبێتە هۆی ڕاگرتنی توانای هەموو بەکارهێنەران بۆ دەستکاری لاپەڕەکان، گۆڕانی هەڵبژاردەکانیان، دەستکاری لیستی چاودێرییەکانیان و هەموو ئەموو ئەو شتانە وا پێویستی بە گۆرانکاری لە بنکەدراوە هەیە.\nتکایە ئەرخەیان بە ئەمە هەر ئەوەیە کە دەتەوێ بیکەی و دوای چاکسازیەکەت لەیادت بێ کە بنکەدراوەکە بکەیتەوە.",
        "delete_and_move_confirm": "بەڵێ، پەڕەکە بسڕەوه",
        "delete_and_move_reason": "سڕایەوە بۆ کردنەوەی ڕیگە بۆ گواستنەوە لە «[[$1]]»ەوە",
        "selfmove": "سەردێڕەکانی سەرچاوە و مەبەست یەکێکن؛\nناکرێ لاپەڕەیەک بۆ سەر خۆی‌ بگوازرێتەوە.",
-       "immobile-source-namespace": "گواستنەوەی لاپەڕە لە بۆشایی‌ناو \"$1\" ناکرێت.",
+       "immobile-source-namespace": "پەڕەکان لە بۆشاییی ناوی \"$1\"دا ناگوێزرێنەوە.",
        "immobile-target-namespace": "گواستنەوەی لاپەڕە بۆناو بۆشایی‌ناو \"$1\" ناکرێت.",
        "immobile-target-namespace-iw": "بەستەرێکی نێوان‌ویکی ئامانجێکی گونجاو نیە بۆ گواستنەوەی لاپەڕە.",
        "immobile-source-page": "ئەمە لاپەڕە بۆ گواستنەوە نابێت.",
        "import-interwiki-history": "هەموو مێژووی پێداچوونەوەکانی ئەم پەڕەیە کۆپی بکە",
        "import-interwiki-templates": "ھەموو داڕێژەکان لەخۆبگرێتەوە",
        "import-interwiki-submit": "هاوردە بکە",
-       "import-interwiki-namespace": "بۆشاییی ناوی مەبەست:",
-       "import-interwiki-rootpage": "پەڕەی بنەڕەتیی مەبەست (دڵخوازانە):",
        "import-upload-filename": "ناوی پەڕگە‌:",
        "import-comment": "بۆچوون:",
        "importtext": "تکایە پەڕگەکە لە ویکی سەرچاوەوە بە کەڵک وەرگرتن لە [[Special:Export|ئامێری ھەناردن]] ھەناردە بکە.\nلەسەر کۆمپیۆتەرەکەت پاشەکەوتی بکە و لێرە باری بكە.",
        "spamprotectionmatch": "ئەم دەقە ئەوەیە کە پاڵێوی سپامەکە دەبزوێنێ: $1",
        "spambot_username": "خاوێنکردنەوەی سپامی میدیاویکی",
        "spam_reverting": "گەڕانەوە بۆ دوایین پێداچوونەوە کە بەستەری لەخۆگرتووە بۆ $1",
+       "simpleantispam-label": "پشکنینی دژەھەرزە.\nئەمە پڕ <strong>مەکەرەوە</strong>!",
        "pageinfo-title": "زانیاری بۆ «$1»",
        "pageinfo-header-basic": "زانیاریی سەرەتایی",
        "pageinfo-header-edits": "مێژووی دەستکاری",
        "metadata-fields": "کێڵگەکانی میتاداتای وێنە کە لەم پەیامەدا بەڕیزکراون کاتێک خشتەی میتاداتا کۆکراوەش بێت لە پەڕەی وێنەدا نیشان دەدرێن.\nکێڵگەکانی تر لە حاڵەتی بنەڕەتیدا شاراوەن.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "پانی",
        "exif-imagelength": "بەرزی",
+       "exif-orientation": "ئاڕاستە",
        "exif-ycbcrpositioning": "شوێنی Y و C",
        "exif-datetime": "ڕێکەوتی و کاتی گۆڕانی پەڕگە",
        "exif-imagedescription": "ناونیشانی وێنە",
+       "exif-make": "بەرھەمھێنەری کامێرا",
        "exif-model": "جۆری کامێرا",
        "exif-software": "نەرمەواڵەی بەکارهاتوو",
        "exif-artist": "نووسەر",
        "exif-pixelxdimension": "بەرزی وێنە",
        "exif-usercomment": "بۆچوونەکانی بەکارهێنەر",
        "exif-relatedsoundfile": "فایلی ده‌نگی لێکچوو",
+       "exif-datetimedigitized": "ڕێکەوت و کاتی بە دیجیتاڵی کردن",
        "exif-exposuretime-format": "$1 چرکە ($2)",
        "exif-fnumber": "ڕێژەی ئێف",
        "exif-lightsource": "سەرچاوەی ڕووناکی",
        "tag-filter-submit": "پاڵاوتن",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|تاگ|تاگەکان}}]]: $2)",
        "tags-title": "تاگەکان",
-       "tags-intro": "ئÛ\95Ù\85 Ù\84اپÛ\95Ú\95Û\95 Ø¦Û\95Ù\88 ØªØ§Ú¯Ø§Ù\86Û\95Û\8c Ù\84Û\8cست Ø¯Û\95کات Ú©Û\95 Ù\84Û\95Ù\88اÙ\86Û\95Û\8cÛ\95 Ù\86Û\95رÙ\85اÙ\85Û\8eر Ø¯Û\95ستکارÛ\8cÛ\95Ú©Û\8c Ø¨Û\86 Ù\86Û\8cشاÙ\86 Ø¨Ú©Ø§Øª Ù\88 Ù\85Û\95بÛ\95ستÛ\8c Ù\86Û\8cشاÙ\86 Ø¨Ø¯ات.",
+       "tags-intro": "ئÛ\95Ù\85 Ù¾Û\95Ú\95Û\95Û\8cÛ\95 Ù¾Û\8eرستÛ\8c Ù\86اÙ\88 Ù\88 Ù\85اÙ\86اÛ\8c Ø¦Û\95Ù\88 ØªØ§Ú¯Ø§Ù\86Û\95Û\8cÛ\95 Ú©Û\95 Ù\86Û\95رÙ\85اÙ\85Û\8eر Ù\84Û\95Ù\88اÙ\86Û\95Û\8cÛ\95 Ø¯Û\95ستکارÛ\8cÛ\8cÛ\95Ú©Û\8c Ù¾Û\8eÙ\88Û\95 Ø¯Û\8cارÛ\8c Ø¨Ú©ات.",
        "tags-tag": "ناوی تاگ",
-       "tags-display-header": "دÛ\8cÙ\85Û\95Ù\86 Ù\84Û\95سÛ\95ر Ù\84Û\8cستÛ\95کاÙ\86Û\8c Ú¯Û\86Ú\95اÙ\86",
-       "tags-description-header": "Ù¾Û\8eÙ\86اسÛ\95Û\8c ØªÛ\95Ù\88اÙ\88Û\8c Ù\85Û\95بÛ\95ست",
+       "tags-display-header": "دÛ\95رکÛ\95Ù\88تÙ\86Û\8c Ù\84Û\95 Ù¾Û\8eرستÛ\95کاÙ\86Û\8c Ú¯Û\86Ú\95اÙ\86کارÛ\8c",
+       "tags-description-header": "Ù\88Û\95سÙ\81Û\8c Ù\85اÙ\86اکÛ\95Û\8c Ø¨Û\95 ØªÛ\95Ù\88اÙ\88Û\8c",
        "tags-hitcount-header": "گۆڕانکاریە تاگ‌کراوەکان",
        "tags-active-yes": "بەڵێ",
        "tags-active-no": "نا",
index 1901c2f..f44d81f 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“",
        "import-interwiki-history": "Zkopírovat všechny historické verze této stránky",
        "import-interwiki-templates": "Zahrnout všechny šablony",
        "import-interwiki-submit": "Importovat",
-       "import-interwiki-namespace": "Cílový jmenný prostor:",
-       "import-interwiki-rootpage": "Cílová kořenová stránka (nepovinné):",
+       "import-mapping-default": "Importovat do implicitních umístění",
+       "import-mapping-namespace": "Importovat do jmenného prostoru:",
+       "import-mapping-subpage": "Importovat jako podstránky následující stránky:",
        "import-upload-filename": "Jméno souboru:",
        "import-comment": "Zdůvodnění:",
        "importtext": "Prosím exportujte soubor ze zdrojové wiki pomocí [[Special:Export|exportního nástroje]].\nUložte jej na svůj disk a nahrajte ho sem.",
index 6513c61..958a504 100644 (file)
        "faqpage": "Project:ЫйХу",
        "variants": "Вариантсем",
        "errorpagetitle": "Йăнăш",
-       "returnto": "$1 Ñ\81Ñ\82Ñ\80аниÑ\86Ä\83на Ñ\82авÑ\80Ä\83н.",
-       "tagline": "{{GRAMMAR:genitive|{{SITENAME}}}}ри материал",
+       "returnto": "$1 таврăн.",
+       "tagline": "{{SITENAME}}",
        "help": "Пулăшу",
        "search": "Шырамалли",
        "searchbutton": "Шыра",
        "createacct-realname": "Чăн-чăн ят (пулсан)",
        "createacct-submit": "Аккаунт ту",
        "createacct-benefit-body1": "{{PLURAL:$1|тӳрлетни|тӳрлетнисем}}",
-       "createacct-benefit-body2": "{{PLURAL:$1|страница|страницасем}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|страницă|страницăсем}}",
        "badretype": "Эсир кăтартнă парольсем пĕр пек мар.",
        "userexists": "Эсир усă курас теекен ята йышăннă. Тархасшăн, урăх ят суйласа илĕр.",
        "loginerror": "Хутшăнакана палласа илеймерĕмĕр",
        "search-result-size": "$1 ({{PLURAL:$2|1 сăмах|$2 сăмах}})",
        "search-category": "(категори $1)",
        "search-interwiki-caption": "Тăван проектсем",
+       "search-interwiki-more": "(тата)",
        "search-relatedarticle": "Çыхăнă",
        "searchrelated": "çыхăнă",
        "showingresults": "Аяларах эсир <strong>$2</strong> пуçласа кăтартнă <strong>$1</strong> йĕркене куратăр.",
        "recentchanges": "Улшăнусем",
        "recentchanges-legend": "Çĕнĕ улшăнусен ĕнерлевĕ",
        "recentchanges-label-bot": "Ку улшăнăва бот тунă",
-       "recentchanges-legend-newpage": "$1 — çĕнĕ страница",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (пăхăр [[Special:NewPages|çĕнĕ страницăсен списокĕ]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rclistfrom": "Юлашки улшăнусене $3 $2 вăхăтран пуçласа кăтартнă",
        "rcshowhideminor": "пĕчĕк тӳрлетнисене $1",
+       "rcshowhideminor-show": "кăтартмалла",
+       "rcshowhideminor-hide": "кăтартмалла мар",
        "rcshowhidebots": "ботсене $1",
-       "rcshowhidebots-show": "Кăтарт",
+       "rcshowhidebots-show": "кăтартмалла",
+       "rcshowhidebots-hide": "кăтартмалла мар",
        "rcshowhideliu": "сайта кĕнисене $1",
-       "rcshowhideanons": "ячĕсене палăртманскерсене $1",
+       "rcshowhideliu-show": "кăтартмалла",
+       "rcshowhideliu-hide": "кăтартмалла мар",
+       "rcshowhideanons": "Паллă маррисене $1",
+       "rcshowhideanons-show": "кăтартмалла",
+       "rcshowhideanons-hide": "кăтартмалла мар",
        "rcshowhidepatr": "тĕрĕсленĕ тӳрлетӳсене $1",
+       "rcshowhidepatr-show": "кăтартмалла",
+       "rcshowhidepatr-hide": "кăтартмалла мар",
        "rcshowhidemine": "хăвăн тӳрлетнисене $1",
+       "rcshowhidemine-show": "кăтартмалла",
+       "rcshowhidemine-hide": "кăтартмалла мар",
        "rclinks": "Юлашки $2 кун хушшинче тунă $1 улшăнусене кăтартмалла<br />$3",
        "diff": "танл.",
        "hist": "ист",
        "show": "Кăтартмалла",
        "minoreditletter": "п",
        "newpageletter": "Ç",
+       "boteditletter": "б",
+       "unpatrolledletter": "!",
        "rc_categories_any": "Кашни",
        "newsectionsummary": "/* $1 */ Çĕнĕ тема",
        "recentchangeslinked": "Çыхăннă улшăнусем",
        "nbytes": "$1 {{PLURAL:$1|байт|байтсем}}",
        "ncategories": "$1 {{PLURAL:$1|категори|категорисем}}",
        "nlinks": "$1 {{PLURAL:$1|1=каçă|каçă}}",
+       "nmembers": "$1 {{PLURAL:$1|тĕл|тĕлте}}",
        "nviews": "$1 {{PLURAL:$1|пăхни|пăхнисем}}",
        "specialpage-empty": "Ку страница пушă",
        "lonelypages": "Тăлăх страницăсем",
        "import": "Страницăсене импортласси",
        "importinterwiki": "Вики хушшинчи импорт",
        "import-interwiki-submit": "Импортирла",
-       "import-interwiki-namespace": "Страницăсене çак ят уçлăхне вырнаçтар:",
        "import-upload-filename": "Файл ячĕ:",
        "importnopages": "Импортламалли страницăсем çук.",
        "importnofile": "Импортламалли файла тиемен",
        "tooltip-watch": "Çак страницăна пăхса тăмаллисем шутне хуш",
        "tooltip-summary": "Кĕскĕн ăнлантарса парăр",
        "anonymous": "{{GRAMMAR:genitive|{{SITENAME}}}} анонимлă хутшăнакансем",
-       "lastmodifiedatby": "Ку страницăна юлашки хут $2, $1 вăхăтра $3 хутшăнакан улăштарнă.",
+       "siteuser": "{{SITENAME}} усă куракан $1",
+       "lastmodifiedatby": "Ку страницăна юлашки хут $2, $1 вăхăтра $3 улăштарнă.",
        "othercontribs": "$1 ĕçĕ çинче никĕсленнĕ.",
        "others": "ыттисем",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|усă куракан|усă куракансем}} $1",
        "creditspage": "Пархатарлăх",
        "spambot_username": "MediaWiki спамран тасатни",
        "pageinfo-title": "\"$1\" çинчен",
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 6f3ab07..d936714 100644 (file)
        "searcharticle": "Gå til",
        "history": "Historik",
        "history_short": "Historik",
-       "updatedmarker": "opdateret siden sidste besøg",
+       "updatedmarker": "opdateret siden seneste besøg",
        "printableversion": "Udskriftsvenlig udgave",
        "permalink": "Permanent henvisning",
        "print": "Udskriv",
        "toolbox": "Værktøjer",
        "userpage": "Se brugersiden",
        "projectpage": "Se projektsiden",
-       "imagepage": "Se filsiden",
+       "imagepage": "Se filside",
        "mediawikipage": "Vise indholdsside",
        "templatepage": "Vise skabelonside",
        "viewhelppage": "Vise hjælpeside",
        "jumptonavigation": "Navigation",
        "jumptosearch": "Søgning",
        "view-pool-error": "Beklager, men serverne er i øjeblikket overbelastede.\nFor mange brugere prøver at se denne side.\nVent et øjeblik, før du prøver at besøge denne side igen.\n\n$1",
+       "generic-pool-error": "Beklager, men serverne er i øjeblikket overbelastede.\nFor mange brugere prøver at se denne side.\nVent et øjeblik før du prøver at besøge denne side igen.",
        "pool-timeout": "Timeout mens man venter på låsningen",
        "pool-queuefull": "Pool køen er fuld",
        "pool-errorunknown": "Ukendt fejl",
+       "poolcounter-usage-error": "Brugsfejl: $1",
        "aboutsite": "Om {{SITENAME}}",
        "aboutpage": "Project:Om",
        "copyright": "Indholdet er udgivet under $1 medmindre andet er angivet.",
        "readonly_lag": "Databasen er automatisk blevet låst mens slave database serverne synkronisere med master databasen",
        "internalerror": "Intern fejl",
        "internalerror_info": "Intern fejl: $1",
+       "internalerror-fatal-exception": "Alvorlig undtagelse af typen \"$1\"",
        "filecopyerror": "Kunne ikke kopiere filen \"$1\" til \"$2\".",
        "filerenameerror": "Kunne ikke omdøbe filen \"$1\" til \"$2\".",
        "filedeleteerror": "Kunne ikke slette filen \"$1\".",
        "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.",
        "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.'''",
+       "querypage-no-updates": "Opdateringer til denne side er deaktiveret for øjeblikket. Dataene bliver indtil videre ikke fornyet.",
        "viewsource": "Vis kildetekst",
        "viewsource-title": "Se kildekoden til $1",
        "actionthrottled": "Begrænsning af handling",
        "viewsourcetext": "Du kan se og kopiere kildekoden til siden:",
        "viewyourtext": "Du kan se og kopiere kildekoden for '''dine redigeringer''' til denne side:",
        "protectedinterface": "Denne side indeholder teksten i brugergrænsefladen til softwaren på denne wiki, og er beskyttet for at forhindre misbrug.\nHvis du vil tilføje eller ændre oversættelser for alle wiki-websteder, så brug venligst [//translatewiki.net/ translatewiki.net], projektet for oversættelse af MediaWiki.",
-       "editinginterface": "'''Advarsel:''' Du redigerer en side som bruges i programmets grænseflade. Ændringer på denne side vil påvirke udseendet af grænsefladen for andre brugere af denne wiki.\nFor at tilføje eller ændre oversættelser på alle wikier bedes du benytte [//translatewiki.net/ translatewiki.net], projektet for oversættelse af MediaWiki.",
+       "editinginterface": "<strong>Advarsel:</strong> Du redigerer en side, som bruges til at give interface-tekst til softwaren.\nÆndringer på denne side vil påvirke udseendet af brugergrænsefladen for andre brugere på denne wiki.",
+       "translateinterface": "For at tilføje eller ændre oversættelser for alle wikier, skal du bruge [//translatewiki.net/ translatewiki.net], der er MediaWikis lokaliseringsprojekt.",
        "cascadeprotected": "Denne side er skrivebeskyttet, da den er indeholdt i nedenstående {{PLURAL:$1|side|sider}}, som er skrivebeskyttet med tilvalg af \"nedarvende sidebeskyttelse\":\n$2",
        "namespaceprotected": "Du har ikke rettigheder til at redigere sider i $1-navnerummet.",
        "customcssprotected": "Du har ikke tilladelse til at redigere denne CSS-side, da den indeholder en anden brugers personlige indstillinger.",
        "invalidtitle-knownnamespace": "Ugyldig titel med navnerummet \"$2\" og teksten \"$3\"",
        "invalidtitle-unknownnamespace": "Ugyldig titel med ukendt navnerum nummer $1 og tekst \"$2\"",
        "exception-nologin": "Ikke logget på",
-       "exception-nologin-text": "Du skal [[Special:Userlogin|logge på]] for at få adgang til denne side eller handling.",
+       "exception-nologin-text": "Du skal logge på for at få adgang til denne side eller handling.",
        "exception-nologin-text-manual": "Du skal $1 for at få adgang til denne side eller handling.",
        "virus-badscanner": "Konfigurationsfejl: ukendt virus-scanner: ''$1''",
        "virus-scanfailed": "virus-scan fejlede med fejlkode $1",
        "loginerror": "Logon mislykket",
        "createacct-error": "Fejl ved kontooprettelse",
        "createaccounterror": "Kunne ikke oprette brugerkonto: $1",
-       "nocookiesnew": "Din brugerkonto er nu oprettet, men du er ikke logget på. {{SITENAME}} bruger cookies til at logge brugere på. Du har slået cookies fra. Vær venlig at slå cookies til, og derefter kan du logge på med dit nye brugernavn og adgangskode.",
+       "nocookiesnew": "Din brugerkonto er nu oprettet, men du er ikke logget på. {{SITENAME}} bruger cookies til at logge brugere på.\nDu har slået cookies fra. \nVær venlig at slå cookies til og log derefter på med dit nye brugernavn og adgangskode.",
        "nocookieslogin": "{{SITENAME}} bruger cookies til at logge brugere på. Du har slået cookies fra. Slå dem venligst til og prøv igen.",
        "nocookiesfornew": "Denne brugerkonto er ikke oprettet, da vi ikke kunne bekræfte dens kilde.\nSørg for, at du har aktivereret cookies, genindlæs siden og prøv igen.",
        "noname": "Du har ikke angivet et gyldigt brugernavn.",
        "createaccount-text": "Nogen har oprettet en konto for din e-mailadresse på {{SITENAME}} ($4) med navnet \"$2\". Adgangskoden er \"$3\".\nDu opfordres til at logge på og ændre adgangskoden med det samme.\n\nDu kan ignorere denne besked hvis kontoen blev oprettet ved en fejl.",
        "login-throttled": "Du har forsøgt at logge på for mange gange.\nVent venligst $1, før du prøver igen.",
        "login-abort-generic": "Det lykkedes dig ikke at logge på - afbrudt",
+       "login-migrated-generic": "Din konto er blevet globaliseret, og dit brugernavn eksisterer ikke længere på denne wiki.",
        "loginlanguagelabel": "Sprog: $1",
        "suspicious-userlogout": "Din anmodning om at logge af blev nægtet, fordi det ser ud som den blev sendt af en ødelagt browser eller caching proxy.",
        "createacct-another-realname-tip": "Angivelse af rigtigt navn er valgfrit.\nHvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit arbejde.",
        "resetpass-submit-cancel": "Annuller",
        "resetpass-wrong-oldpass": "Ugyldig midlertidig eller gældende adgangskode.\nDu har muligvis allerede skiftet din adgangskode eller anmodet om en ny midlertidig kode.",
        "resetpass-recycled": "Vær venlig at ændre din adgangskode til noget andet end din nuværende adgangskode.",
-       "resetpass-temp-emailed": "Du loggede på med en midlertidig kode tilsendt på e-mail.\nFor at afslutte indlogning, skal du oprette en nyt adgangskode:",
+       "resetpass-temp-emailed": "Du loggede på med en midlertidig kode tilsendt på e-mail.\nFor at afslutte indlogning skal du angive en ny adgangskode her:",
        "resetpass-temp-password": "Midlertidig adgangskode",
        "resetpass-abort-generic": "Ændring af adgangskode er blevet afbrudt af en udvidelse",
        "resetpass-expired": "Din adgangskode er udløbet. Angiv en ny adgangskode for at logge på.",
        "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": "'''Advarsel:''' Du er ikke logget på. I stedet for brugernavn vises din IP-adresse i versionshistorikken.",
+       "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.",
        "missingcommenttext": "Skriv venligst en kommentar nedenfor.",
        "missingcommentheader": "'''Bemærk:''' Du har ikke angivet en overskrift/emne for denne kommentar. Hvis du trykker \"{{int:savearticle}}\" én gang til, gemmes dine ændringer uden overskrift/emne.",
        "summary-preview": "Forhåndsvisning af beskrivelsen:",
        "subject-preview": "Forhåndsvisning af emnet:",
+       "previewerrortext": "Der opstod en fejl under forsøget på at lave en forhåndsvisning af dine ændringer.",
        "blockedtitle": "Du eller din IP-adresse er blokeret",
        "blockedtext": "'''Dit brugernavn eller din IP-adresse er blevet blokeret.'''\n\nBlokeringen er foretaget af $1.\nDen anførte grund er ''$2''.\n\nBlokeringen starter: $8\nBlokeringen udløber: $6\nBlokeringen er rettet mod: $7\n\nDu kan kontakte $1 eller en af de andre [[{{MediaWiki:Grouppage-sysop}}|administratorer]] for at diskutere blokeringen.\nDu kan ikke bruge funktionen 'e-mail til denne bruger' medmindre der er angivet en gyldig e-mailadresse i dine\n[[Special:Preferences|kontoindstillinger]], og du ikke er blevet blokeret fra at bruge den.\n\nDin nuværende IP-adresse er $3, og blokerings-id er #$5.\nAngiv venligst alle ovenstående detaljer ved henvendelser om blokeringen.",
        "autoblockedtext": "Din IP-adresse er blevet blokeret automatisk fordi den blev brugt af en anden bruger som er blevet blokeret af $1.\nBegrundelsen for det er:\n\n:''$2''\n\n* Blokeringsperiodens start: $8\n* Blokeringen udløber: $6\n* Blokeringen er ment for: $7\n\nDu kan kontakte $1 eller en af de andre [[{{MediaWiki:Grouppage-sysop}}|administratorer]] for at diskutere blokeringen.\n\nBemærk at du ikke kan bruge funktionen \"e-mail til denne bruger\" medmindre du har en gyldig e-mailadresse registreret i din [[Special:Preferences|brugerindstilling]], og du ikke er blevet blokeret fra at bruge den.\n\nDin nuværende IP-adresse er $3, og blokerings-id'et er #$5.\nAngiv venligst alle de ovenstående detaljer ved eventuelle henvendelser.",
        "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.",
        "import-interwiki-history": "Importer alle versioner af denne side",
        "import-interwiki-templates": "Inkluder alle skabeloner",
        "import-interwiki-submit": "Importer",
-       "import-interwiki-namespace": "Importer til navnerum:",
-       "import-interwiki-rootpage": "Destinationens stamside (valgfri):",
        "import-upload-filename": "Filnavn:",
        "import-comment": "Kommentar:",
        "importtext": "Eksportér filen fra kilde-wiki'en ved hjælp af [[Special:Export|eksporterings værktøjet]], gem den på din harddisk og upload den her.",
        "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 c1991a3..8237090 100644 (file)
                        "לערי ריינהארט",
                        "✓",
                        "XenonX3",
-                       "Brackenheim"
+                       "Brackenheim",
+                       "Robby",
+                       "Andreasburmeister"
                ]
        },
        "tog-underline": "Links unterstreichen:",
        "tog-hideminor": "Kleine Änderungen in den „Letzten Änderungen“ ausblenden",
        "tog-hidepatrolled": "Kontrollierte Änderungen in den „Letzten Änderungen“ ausblenden",
        "tog-newpageshidepatrolled": "Kontrollierte Seiten bei den „Neuen Seiten“ ausblenden",
-       "tog-extendwatchlist": "Alle, und nicht nur die aktuellsten Änderungen in der Beobachtungsliste anzeigen",
+       "tog-extendwatchlist": "In der Beobachtungsliste alle Änderungen anzeigen, nicht nur die aktuellsten",
        "tog-usenewrc": "Änderungen auf „Letzte Änderungen“ und der Beobachtungsliste nach Seite gruppieren",
        "tog-numberheadings": "Überschriften automatisch nummerieren",
        "tog-showtoolbar": "Bearbeiten-Werkzeugleiste anzeigen",
        "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.",
        "import-interwiki-history": "Alle Versionen dieser Seite importieren",
        "import-interwiki-templates": "Alle Vorlagen einschließen",
        "import-interwiki-submit": "Importieren",
-       "import-interwiki-namespace": "Zielnamensraum:",
-       "import-interwiki-rootpage": "Zielstammseite (optional):",
+       "import-mapping-default": "Zu den Standard-Speicherorten importieren",
+       "import-mapping-namespace": "In einen Namensraum importieren:",
+       "import-mapping-subpage": "Als Unterseiten der folgenden Seite importieren:",
        "import-upload-filename": "Dateiname:",
        "import-comment": "Grund:",
        "importtext": "Bitte die Datei über die Spezialseite [[Special:Export|Exportfunktion]] aus dem Quellwiki exportieren.\nDiese auf dem lokalen Rechner speichern und danach hier hochladen.",
index e4f40e8..88d3493 100644 (file)
        "otherlanguages": "Zıwananê binan de",
        "redirectedfrom": "(Pele da $1 ra heteneyê)",
        "redirectpagesub": "Pela berdışi",
+       "redirectto": "Beno hetê:",
        "lastmodifiedat": "Ena pele tewr peyên roca $2, $1 de biya rocaniye.",
        "viewcount": "Ena pele {{PLURAL:$1|rae|$1 rey}} vêniya.",
        "protectedpage": "Pela pawıtiye",
        "preview": "Verqayt",
        "showpreview": "Verqayti bımocne",
        "showdiff": "Vurnayışan bımocne",
-       "anoneditwarning": "İqaz!: Şı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.",
        "searchall": "pêro",
        "showingresults": "#<strong>$2</strong> netican ra {{PLURAL:$1|<strong>1</strong> netice cêr dero|<strong>$1</strong> neticey cêr derê}}.",
        "showingresultsinrange": "{{PLURAL:$1|<strong>1</strong> netice|<strong>$1</strong> neticey}} be mabeynê #<strong>$2</strong> ra be #<strong>$3</strong> cêr asenê.",
+       "search-showingresults": "{{PLURAL:$4|Netice <strong>$1</strong> be <strong>$3</strong>|Neticeyi <strong>$1 - $2</strong> be <strong>$3</strong>}}",
        "search-nonefound": "Zey perskerdışê şıma netice nêvêniya.",
        "powersearch-legend": "Cıgeyrayışo hera",
        "powersearch-ns": "Cayanê nameyan de cıgeyrayış:",
        "import-interwiki-history": "Qeydanê pele pêrune kopya ke",
        "import-interwiki-templates": "Şablonan pêro zerre ke",
        "import-interwiki-submit": "Zerre ke",
-       "import-interwiki-namespace": "Hedefê cayê nameyi:",
-       "import-interwiki-rootpage": "Hedef pelaya reçi (opsiyonel):",
        "import-upload-filename": "Nameyê dosyayi:",
        "import-comment": "Mışewre:",
        "importtext": "Kerem ke dosyay, çımeyê wiki ra pê [[Special:Export|kırıştışê teberdayişi]] bıdê teber, Komputerê xo de qeyd kerê u bar kerê tiya.",
        "logentry-rights-rights": "$1 qandê $3 rê ezayiya grube $4 ra $5 {{GENDER:$2|vuriye}}",
        "logentry-rights-rights-legacy": "$1 qandê $3 rê ezayiya grube {{GENDER:$2|vuriye}}",
        "logentry-rights-autopromote": "$1 otomatikmen $4 ra $5 {{GENDER:$2|terfi bi}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|bar kerd}} $3",
        "rightsnone": "(çıniyo)",
        "revdelete-summary": "kılmvatışê vuriyayişi",
        "feedback-adding": "Pela rê peyxeberdar defêno...",
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 81a622b..ac0a415 100644 (file)
        "history-feed-description": "Stòria 'd la pàgina in sém a cól sî ché",
        "history-feed-item-nocomment": "$1 al $2",
        "history-feed-empty": "La pàgina serchêda l'an gh'é mìa; la pré èser stēda scanşlêda dal sît o gh'é stê cambiê nòm. Verifichêr cun [[Special:Search|pàgina 'd sèirca]] se gh'é dal pàgini nōvi.",
+       "history-edit-tags": "Mudéfica 'l j etichèti dal versiòun sgnêdi",
        "rev-deleted-comment": "(argumèint ed la mudéfica armôs)",
        "rev-deleted-user": "(nòm utèint armôs)",
        "rev-deleted-event": "(particulêr dal log armôs)",
        "right-sendemail": "Spidés pôsta eletrônica a êter utèint",
        "right-passwordreset": "A vèd i mesâg 'd arnōv ed la cêva 'ed ingrès",
        "right-managechangetags": "Fà e tó via i [[Special:Tags|tag]] dal databêş",
+       "right-applychangetags": "Tâca dal [[Special:Tags|tichèti]] al tō mudéfichi",
+       "right-changetags": "Zûta e tó via [[Special:Tags|tichèti]] precîşi só versiòun ónichi o vōş ed regéster",
        "newuserlogpage": "Utèint nōv",
        "newuserlogpagetext": "Ché sòt a gh' é la lésta di nōv utèint.",
        "rightslog": "Diré ed j utèint",
        "action-editmyprivateinfo": "mudéfica al tō infurmasiòun personêli",
        "action-editcontentmodel": "câmbia al mudèl dèinter a 'na pàgina",
        "action-managechangetags": "fà e tó via i tag dal databêş",
+       "action-applychangetags": "tachêr dal tichèti al tō mudéfichi",
+       "action-changetags": "zuntêr o tōr via tichèti precîşi só versiòun ónichi o vōş ed regéster",
        "nchanges": "$1\n{{PLURAL:$1|mudéfica|mudéfichi}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|da l'ûltma vîşita}}",
        "enhancedrc-history": "stòria",
        "backend-fail-backup": "An n'é mìa pusébil fêr 'na côpia 'd sicurèsa dal file $1.",
        "backend-fail-notexists": "Al file $1 al gh'é mìa.",
        "backend-fail-hashes": "An n'é mìa pusébil utgnîr la divisiòun di file per cunfrûnt.",
+       "backend-fail-notsame": "A gh'é bèle un file mìa cumpâgn a \"$1\"",
+       "backend-fail-invalidpath": "\"$1\" an n'é mìa un percōrs vâlid per archiviêr.",
+       "backend-fail-delete": "An n'é mìa pusébil scanşlêr al file \"$1\".",
+       "backend-fail-describe": "Imposébil mudifichêr al j infurmasiòun dal file \"$1\".",
+       "backend-fail-alreadyexists": "Al file \"$1\" al gh'é bèle.",
+       "backend-fail-store": "Impusébil mèter in memôria al file \"$1\" in \"$2\".",
+       "backend-fail-copy": "An n'é mìa pusébil cupiêr al file \"$1\" in \"$2\".",
+       "backend-fail-move": "An n'é mìa pusébil spustêr al file \"$1\" in \"$2\".",
+       "backend-fail-opentemp": "L'é impusébil arvîr un file pruvişôri.",
+       "backend-fail-writetemp": "L'é impusébil fêr al file pruvişôri.",
+       "backend-fail-closetemp": "L'é impusébil sarêr un file pruvişôri.",
+       "backend-fail-read": "An n'é mìa pusébil lēzer al file \"$1\".",
+       "backend-fail-create": "An n'é mìa pusébil fêr al file \"$1\".",
+       "backend-fail-maxsize": "L'é impusébil fêr al file \"$1\" perché l'é pió grôs ed {{PLURAL:$2|un|$2}} byte.",
+       "backend-fail-readonly": "Al prugrâma 'd memôria \"$1\" adèsa a 's pōl sōl lēzer. La ragiòun dêda l'é: \"$2\".",
+       "backend-fail-synced": "Al file \"$1\" l'é in un stêt mìa lôgich cun al sistēma 'd la memôria intêrna.",
+       "backend-fail-connect": "Impusébil coleghêres al sistēma 'd memôria \"$1\".",
+       "backend-fail-internal": "É sucès un erōr mìa cgnusû int al sistēma  ed memôria \"$1\".",
+       "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..3b9fba1 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 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 f02869f..a09c0f6 100644 (file)
        "import-interwiki-history": "Kopiu ĉiujn historiajn versiojn por ĉi tiu pago.",
        "import-interwiki-templates": "Inkluzivi ĉiujn ŝablonojn",
        "import-interwiki-submit": "Importi",
-       "import-interwiki-namespace": "Cela nomspaco:",
-       "import-interwiki-rootpage": "Ircela radikopaĝo (laŭvola):",
        "import-upload-filename": "Dosiernomo:",
        "import-comment": "Komento:",
        "importtext": "Bonvolu eksporti la dosieron el la fonta vikio per la [[Special:Export|eksportilo]]. Konservu ĝin sur via persona komputilo kaj poste alŝutu ĝin tien ĉi.",
index 95087cf..d010560 100644 (file)
        "noarticletext": "En este momento no hay texto en esta página.\nPuedes [[Special:Search/{{PAGENAME}}|buscar el título de esta página]] en otras páginas,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los registros relacionados],\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} editar esta página]</span>.",
        "noarticletext-nopermission": "Actualmente no hay texto en esta página.\nPuedes [[Special:Search/{{PAGENAME}}|buscar este título de página]] en otras páginas, o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los registros relacionados]</span>, pero no tienes permiso para crear esta página.",
        "missing-revision": "La revisión n.º $1 de la página «{{FULLPAGENAME}}» no existe.\n\nEsto suele ocurrir cuando se sigue un enlace de historial obsoleto que apunta a una página ya borrada.\nPuedes encontrar detalles en el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].",
-       "userpage-userdoesnotexist": "El usuario «$1» no está registrado. Por favor, asegúrate de que realmente quieres crear o editar esta página.",
+       "userpage-userdoesnotexist": "El usuario «$1» no está registrado. Asegúrate de que realmente quieres crear o editar esta página.",
        "userpage-userdoesnotexist-view": "El usuario «$1» no está registrado.",
        "blocked-notice-logextract": "Este usuario se encuentra actualmente bloqueado.\nA continuación se muestra la última entrada del registro de bloqueos para más información:",
        "clearyourcache": "<strong>Nota:</strong> tras guardar, quizás necesites actualizar la caché de tu navegador para ver los cambios.\n* <strong>Firefox/Safari:</strong> Mantén presionada la tecla <em>Mayús</em> mientras pulsas el botón <em>Actualizar</em>, o presiona <em>Ctrl+F5</em> o <em>Ctrl+R</em> (<em>⌘+R</em> en Mac)\n* <strong>Google Chrome:</strong> presiona <em>Ctrl+Shift+R</em> (<em>⌘+Mayús+R</em> en Mac)\n* <strong>Internet Explorer:</strong> mantén presionada <em>Ctrl</em> mientras pulsas <em>Actualizar</em>, o presiona <em>Ctrl+F5</em>\n* <strong>Opera:</strong> vacía la caché en <em>Herramientas → Preferencias</em>",
        "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-success": "Se ha cambiado con éxito la visibilidad de las revisiones.",
        "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 ha podido cambiar la visibilidad de los eventos:'''\n$1",
-       "revdel-restore": "mostrar/ocultar",
+       "logdelete-failure": "No se pudo cambiar la visibilidad de los eventos:\n$1",
+       "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)",
        "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",
        "allmessagesname": "Nombre",
        "allmessagesdefault": "Texto predeterminado",
        "allmessagescurrent": "Texto actual",
-       "allmessagestext": "Esta es una lista de mensajes del sistema disponibles en el espacio de nombres MediaWiki.\nPor favor, visita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localización MediaWiki] y [//translatewiki.net translatewiki.net] si deseas contribuir a la localización genérica de MediaWiki.",
+       "allmessagestext": "Esta es una lista de mensajes del sistema disponibles en el espacio de nombres MediaWiki.\nVisita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localización MediaWiki] y [//translatewiki.net translatewiki.net] si deseas contribuir a la localización genérica de MediaWiki.",
        "allmessagesnotsupportedDB": "Esta página no está disponible porque '''$wgUseDatabaseMessages''' está deshabilitado.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtrar por estado de personalización:",
        "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-interwiki-namespace": "Espacio de nombres de destino:",
-       "import-interwiki-rootpage": "Página raíz del destino (opcional):",
        "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í.",
index cd7475f..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.",
        "revdelete-unsuppress": "Eemalda taastatud redaktsioonidelt piirangud",
        "revdelete-log": "Põhjus:",
        "revdelete-submit": "Rakenda valitud {{PLURAL:$1|redaktsiooni|redaktsioonide}} suhtes",
-       "revdelete-success": "Redaktsiooni nähtavus edukalt värskendatud.'''",
+       "revdelete-success": "Redaktsiooni nähtavus edukalt värskendatud.",
        "revdelete-failure": "'''Redaktsiooni nähtavust ei saanud värskendada:'''\n$1",
        "logdelete-success": "'''Logi nähtavus edukalt muudetud.'''",
        "logdelete-failure": "'''Logi nähtavust ei saanud paika:'''\n$1",
        "import-interwiki-history": "Kopeeri selle lehekülje kogu ajalugu",
        "import-interwiki-templates": "Liida kõik mallid",
        "import-interwiki-submit": "Impordi",
-       "import-interwiki-namespace": "Sihtkoha nimeruum:",
-       "import-interwiki-rootpage": "Sihtkoha juurlehekülg (valikuline):",
+       "import-mapping-default": "Impordi vaikeasukohta",
+       "import-mapping-namespace": "Impordi järgmisesse nimeruumi:",
+       "import-mapping-subpage": "Impordi järgmise lehekülje alamlehekülgedeks:",
        "import-upload-filename": "Failinimi:",
        "import-comment": "Kommentaar:",
        "importtext": "Palun kasuta faili allikvikist eksportimiseks [[Special:Export|ekspordivahendit]].\nSalvesta see oma arvutisse ja laadi siia üles.",
index 98f3bf2..d30230a 100644 (file)
        "import-interwiki-history": "Orrialde honen historiako bertsio guztiak kopiatu",
        "import-interwiki-templates": "Txantiloi guztiak sartu",
        "import-interwiki-submit": "Inportatu",
-       "import-interwiki-namespace": "Helburuko izen-tartea:",
-       "import-interwiki-rootpage": "Helburuko oinarri orrialdea (aukerazkoa):",
        "import-upload-filename": "Fitxategiaren izena:",
        "import-comment": "Iruzkina:",
        "importtext": "Mesedez, jatorrizko wikitik orrialdea esportatzeko [[Special:Export|esportazio tresna]] erabil ezazu, zure diskoan gorde eta jarraian hona igo.",
        "tooltip-pt-mycontris": "Nire ekarpenen zerrenda",
        "tooltip-pt-login": "Izen ematera gonbidatzen zaitugu.",
        "tooltip-pt-logout": "Saioa itxi",
+       "tooltip-pt-createaccount": "Kontu bat sortu eta horrekin saioa hastea eskatu nahi genizuke; ez da ezinbestekoa, ordea.",
        "tooltip-ca-talk": "Artikuluari buruzko eztabaida",
        "tooltip-ca-edit": "Artikulu hau aldatu dezakezu. Mesedez, aurrebista botoia erabil ezazu gorde baino lehen.",
        "tooltip-ca-addsection": "Iruzkin berria erantsi",
        "revdelete-uname-unhid": "lankide ezkutua erakutsi",
        "revdelete-restricted": "administratzaileentzako mugak ezarri dira",
        "revdelete-unrestricted": "administratzaileentzako mugak kendu dira",
-       "logentry-block-block": "administratzaileak $1 {{GENDER:$2|blocked}} {{GENDER:$4|$3}} blokeatu du. Iraupena: $5 $6",
+       "logentry-block-block": "$1 {{GENDER:$2|administratzaileak}} {{GENDER:$4|$3}} blokeatu du. Iraupena: $5 $6",
        "logentry-block-reblock": "$1 administratzaileak {{GENDER:$4|$3}} wikilariaren blokeoa {{GENDER:$2|aldatu du}}. Blokeoaldia: $5 $6",
-       "logentry-suppress-block": "administratzaileak $1 {{GENDER:$2|blocked}} {{GENDER:$4|$3}} blokeatu du. Iraupena: $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|administratzaileak}} {{GENDER:$4|$3}} blokeatu du. Iraupena: $5 $6",
        "logentry-suppress-reblock": "$1 administratzaileak {{GENDER:$4|$3}} wikilariaren blokeoa {{GENDER:$2|aldatu du}}. Blokeoaldia: $5 $6",
        "logentry-move-move": "$1 {{GENDER:$2|wikilariak}} «$3» orria «$4» izenera aldatu du",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|wikilariak}} «$3» orria «$4» izenera aldatu du, birzuzenketarik utzi gabe",
        "logentry-newusers-newusers": "$1 erabiltzaile kontua sortu da",
        "logentry-newusers-create": "$1 erabiltzaile kontua sortu da",
        "logentry-newusers-create2": "$1 wikilariak $3 erabiltzaile kontua sortu du",
+       "logentry-upload-upload": "$1(e)k $3 {{GENDER:$2|igo du}}",
        "rightsnone": "(bat ere ez)",
        "revdelete-summary": "aldaketaren laburpena",
        "feedback-adding": "Orriari feedbacka gehitzen...",
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 4ad8846..23c8f8f 100644 (file)
        "february-gen": "فوریهٔ",
        "march-gen": "مارس",
        "april-gen": "آوریل",
-       "may-gen": "مه",
+       "may-gen": "مهٔ",
        "june-gen": "ژوئن",
        "july-gen": "ژوئیهٔ",
        "august-gen": "اوت",
        "import-interwiki-history": "تمام نسخه‌های تاریخچهٔ این صفحه انتقال داده شود",
        "import-interwiki-templates": "تمام الگوها را شامل شود",
        "import-interwiki-submit": "درون‌ریزی شود",
-       "import-interwiki-namespace": "فضای نام مقصد:",
-       "import-interwiki-rootpage": "ریشهٔ صفحهٔ مقصد (اختیاری):",
        "import-upload-filename": "نام پرونده:",
        "import-comment": "توضیح:",
        "importtext": "لطفاً پرونده را از ویکی منبع با کمک [[Special:Export|ابزار برون‌بری]] دریافت کنید.\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-reason": "دلیل:",
        "tags-deactivate-not-allowed": "غیرفعال‌سازی تگ «$1» ممکن نیست.",
        "tags-deactivate-submit": "غیرفعال‌سازی",
+       "tags-edit-title": "ویرایش برچسب‌ها",
+       "tags-edit-manage-link": "مدیریت برچسب‌ها",
+       "tags-edit-existing-tags": "برچسب‌های موجود:",
+       "tags-edit-existing-tags-none": "\"هیچکدام\"",
+       "tags-edit-new-tags": "برچسب جدید:",
+       "tags-edit-add": "افزودن این برچسب‌ها:",
+       "tags-edit-remove": "حذف این برچسب‌ها:",
+       "tags-edit-remove-all-tags": "(حذف همهٔ برچسب‌ها)",
+       "tags-edit-chosen-placeholder": "انتخاب تعدادی برچسب",
+       "tags-edit-chosen-no-results": "برچسبی برای انتخاب یافت نشد",
+       "tags-edit-reason": "دلیل:",
        "comparepages": "مقایسهٔ صفحات",
        "compare-page1": "صفحهٔ ۱",
        "compare-page2": "صفحهٔ ۲",
        "logentry-managetags-delete": "$1 برچسب را از \"$4\" {{GENDER:$2|حذف کرد}} (حذف شده از $5 {{PLURAL:$5|نسخه یا ورودی سیاهه|نسخه یا/و ورودی سیاهه}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|برچسب}} فعال شده \"$4\" برای کاربران و ربات‌ها",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|برچسب}} غیرفعال شده \"$4\" برای کاربران و ربات‌ها",
+       "log-name-tag": "سیاهه برچسب",
        "rightsnone": "(هیچ)",
        "revdelete-summary": "خلاصه ویرایش",
        "feedback-adding": "افزودن بازخورد به صفحه...",
index cc3107f..16b3f98 100644 (file)
        "import-interwiki-history": "Kopioi sivun koko historia ja kaikki versiot",
        "import-interwiki-templates": "Ota mukaan kaikki mallineet",
        "import-interwiki-submit": "Tuo",
-       "import-interwiki-namespace": "Kohdenimiavaruus:",
-       "import-interwiki-rootpage": "Kohteessa oleva perussivu (valinnainen):",
+       "import-mapping-default": "Tuonti vakiokohteisiin",
+       "import-mapping-namespace": "Tuonti nimiavaruuteen:",
+       "import-mapping-subpage": "Tuonti seuraavan sivun alasivuiksi:",
        "import-upload-filename": "Tiedostonimi:",
        "import-comment": "Kommentti:",
        "importtext": "Vie sivuja lähdewikistä käyttäen [[Special:Export|vientityökalua]].\nTallenna tiedot koneellesi ja tuo ne tällä sivulla.",
        "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 ce80478..319c398 100644 (file)
        "preview": "Forskoðan",
        "showpreview": "Forskoðan",
        "showdiff": "Sýn broytingar",
-       "anoneditwarning": "'''Ávaring:''' Tú hevur ikki ritað inn.\nTín IP-adressa verður goymd í rættisøguni fyri hesa síðuna.",
+       "anoneditwarning": "<strong>Ávaring:</strong> Tú ert ikki innritað/ur. Tín IP adressa verður alment sjónlig um tú gert rættingar. Um tú <strong>[$1 ritar inn]</strong> ella <strong>[$2 upprættar eina konto]</strong>, so verða tínar rættingar ognaðar tínum brúkaranavni, umframt aðrir fyrimunir.",
        "anonpreviewwarning": "''Tú ert ikki innritað/ur. Um tú goymir nú, so verður tín IP adressa goymd í rættingar søguni hjá hesi síðu. ''",
        "missingsummary": "'''Áminning:''' Tú hevur ikki givið nakran rættingar samandrátt.\nUm tú trýstir á \"{{int:savearticle}}\" enn einaferð, so verða tínar rættingar goymdar uttan samandrátt.",
        "missingcommenttext": "Vinarliga skriva eina viðmerking niðanfyri.",
        "showhideselectedversions": "Vís/fjal valdu versjónir",
        "editundo": "afturstilla",
        "diff-empty": "(Ongin munur)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Ein millumliggjandi broyting|$1 millumliggjandi broytingar}} av sama brúkara ikki víst/ar)",
        "diff-multi-manyusers": "({{PLURAL:$1|Ein versjón sum liggur ímillum|$1 versjónir sum liggja ímillum}} skrivaðar av meira enn $2 {{PLURAL:$2|brúkara|brúkarum}} ikki víst)",
        "searchresults": "Leitúrslit",
        "searchresults-title": "Leiti úrslit fyri \"$1\"",
        "searchall": "alt",
        "showingresults": "Niðanfyri standa upp til {{PLURAL:$1|'''$1''' úrslit, sum byrjar|'''$1''' úrslit, sum byrja}} við #<b>$2</b>.",
        "showingresultsinrange": "Niðanfyri verða víst upp til {{PLURAL:$1|<strong>1</strong> úrslit|<strong>$1</strong> úrslit}} í økinum #<strong>$2</strong> til #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Úrslit <strong>$1</strong> av <strong>$3</strong>|Úrslit <strong>$1 - $2</strong> av <strong>$3</strong>}}",
        "search-nonefound": "Leitingin gav onki úrslit.",
        "powersearch-legend": "Víðkað leitan",
        "powersearch-ns": "Leita í navnaøkinum:",
        "undelete-show-file-submit": "Ja",
        "namespace": "Navnarúm:",
        "invert": "Umvend val",
+       "tooltip-invert": "Set kross í henda rútin fyri at fjala broytingar á síðum ið hoyra til tað valda navnarúmið (og tilhoyrandi navnarúm, um krossur er settur í)",
        "namespace_association": "Tilknýtt navnarúm",
        "tooltip-namespace_association": "Set kross í henda kassan soleiðis at kjak- ella evnisnavnarúm, sum hava samband við tað valda navnarúmið, eisini vera tikin við",
        "blanknamespace": "(Greinir)",
        "import-interwiki-history": "Avrita alla versjónssøguna fyri hesa síðu",
        "import-interwiki-templates": "Tak allar fyrimyndir við",
        "import-interwiki-submit": "Innflyta",
-       "import-interwiki-namespace": "Innflyt til navnarúm:",
        "import-upload-filename": "Fílunavn",
        "import-comment": "Viðmerking:",
        "importtext": "Útflyt fíluna frá kelduwiki'ini við at nýta [[Special:Export|útflutningstólið]].\nGoym hana á tínari teldu og legg hana so út her.",
        "tooltip-pt-mycontris": "Yvirlit yvir títt íkast",
        "tooltip-pt-login": "Vit mæla til at tú ritar inn, tað er tó ikki eitt krav.",
        "tooltip-pt-logout": "Rita út",
+       "tooltip-pt-createaccount": "Vit mæla tær til at upprætta eina konto, tað er tó ikki eitt krav.",
        "tooltip-ca-talk": "Kjak um innihaldssíðuna",
        "tooltip-ca-edit": "Tú kanst broyta hesa síðuna. Vinarliga nýt forskoðanarknøttin áðrenn tú goymir.",
        "tooltip-ca-addsection": "Byrja eitt nýtt brot",
        "exif-imagewidth": "Breidd",
        "exif-imagelength": "Hædd",
        "exif-bitspersample": "Bits per komponent",
+       "exif-orientation": "Rætningur",
+       "exif-xresolution": "Vatnrøtt upploysn",
+       "exif-yresolution": "Loddrøtt upploysn",
+       "exif-datetime": "Broytingartíð",
+       "exif-make": "Framleiðari av myndatólinum",
        "exif-model": "Slag av myndatóli",
+       "exif-software": "Forrit brúkt",
        "exif-artist": "Rithøvundur",
        "exif-copyright": "Upphavsrætt haldari",
+       "exif-exifversion": "Exif versión",
+       "exif-colorspace": "Litrúm",
        "exif-usercomment": "Viðmerkingar frá brúkarum",
+       "exif-datetimeoriginal": "Nær myndin bleiv tikin",
+       "exif-datetimedigitized": "Tíðspunkt fyri talgildan",
        "exif-exposuretime-format": "$1 sek ($2)",
        "exif-flash": "Blits",
        "exif-jpegfilecomment": "JPEG-fíluviðmerking",
        "external_image_whitelist": "↓  #Lat hesa linjuna vera júst sum hon er<pre>\n#Skriva partar av vanligum orðingum (bert partin sum er ímillum //) niðanfyri\n#Hesar verða samanbornar við URL'ar á eksternum (hotlinkaðum) myndum\n#Tey sum passa saman verða víst sum myndir, í øðrum lagi verður bert ein slóð til myndina víst\n#Linjur sum byrja við # verða viðfarin sum viðmerkingar\n#Hetta er ikki følsamt fyri stórir og lítlir bókstavir\n\n#Skriva allar vanligar málberingar omanfyri hesa linju. Lat hesa linjuna verða júst sum hon er</pre>",
        "tag-filter": "[[Special:Tags|Tag]] filtur:",
        "tag-filter-submit": "Filtur",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Merki|Merkir}}]]: $2)",
        "tags-title": "Lyklaorð",
        "tags-edit": "rætta",
        "tags-hitcount": "$1 {{PLURAL:$1|broyting|broytingar}}",
        "compare-rev1": "Versjón 1",
        "compare-rev2": "Versjón 2",
        "compare-submit": "Samanber",
+       "logentry-delete-delete": "$1 {{GENDER:$2|slettaði}} síðuna $3",
+       "logentry-move-move": "$1 {{GENDER:$2|flutti}} síðuna $3 til $4",
        "logentry-newusers-create": "Brúkarakonta $1 varð {{GENDER:$2|upprættað}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|legði út}} $3",
        "rightsnone": "(ongin)",
        "revdelete-summary": "yvirlit yvir broytingar",
        "searchsuggest-search": "Leita",
index 953d696..9c13d6e 100644 (file)
                        "Yzelf",
                        "0x010C",
                        "Thibaut120094",
-                       "NemesisIII"
+                       "NemesisIII",
+                       "Housterdam"
                ]
        },
        "tog-underline": "Souligner les liens :",
        "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.",
        "history-feed-description": "Historique pour cette page sur le wiki",
        "history-feed-item-nocomment": "$1 le $2",
        "history-feed-empty": "La page demandée n'existe pas.\nElle a peut-être été effacée ou renommée.\nEssayez de [[Special:Search|rechercher sur le wiki]] pour trouver des pages en rapport.",
+       "history-edit-tags": "Modifier les balises des révisions sélectionnées",
        "rev-deleted-comment": "(résumé de modification retiré)",
        "rev-deleted-user": "(nom d'utilisateur retiré)",
        "rev-deleted-event": "(détails de l’entrée retirée)",
        "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.",
        "import-interwiki-history": "Copier toutes les versions de l’historique de cette page",
        "import-interwiki-templates": "Inclure tous les modèles",
        "import-interwiki-submit": "Importer",
-       "import-interwiki-namespace": "Espace de noms de destination :",
-       "import-interwiki-rootpage": "Page racine de destination (optionnelle) :",
+       "import-mapping-default": "Importer aux emplacements par défaut",
+       "import-mapping-namespace": "Importer vers un espace de noms :",
+       "import-mapping-subpage": "Importer comme sous-pages de la page suivante :",
        "import-upload-filename": "Nom du fichier :",
        "import-comment": "Commentaire :",
        "importtext": "Veuillez exporter le fichier depuis le wiki d'origine en utilisant son [[Special:Export|outil d'exportation]].\nSauvegardez-le sur votre disque dur puis importez-le ici.",
        "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-apply-no-permission": "Vous n’avez pas le droit d’appliquer des balises de changement avec vos modifications.",
        "tags-apply-not-allowed-one": "La balise « $1 » n’est pas autorisée à être appliquée manuellement.",
        "tags-apply-not-allowed-multi": "{{PLURAL:$2|La balise suivante n’est pas autorisée à être appliquée|Les balises suivantes ne sont pas autorisées à être appliquées}} manuellement : $1",
+       "tags-update-no-permission": "Vous n’avez pas le droit d’ajouter ou de supprimer des balises de modification des révisions individuelles ou des entrées de journal.",
+       "tags-update-add-not-allowed-one": "La balise « $1 » ne peut pas être ajoutée manuellement.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|La balise suivante ne peut pas être ajoutée|Les balises suivantes ne peuvent pas être ajoutées}} manuellement : $1",
+       "tags-update-remove-not-allowed-one": "La balise « $1 » ne peut pas être enlevée.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|La balise suivante ne peut pas être enlevée|Les balises suivantes ne peuvent pas être enlevées}} manuellement : $1",
+       "tags-edit-title": "Modifier les balises",
+       "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..616650f 100644 (file)
        "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 8f68f90..366ace0 100644 (file)
        "import-interwiki-history": "Aal a werjuunen faan det sidj importiare",
        "import-interwiki-templates": "Mä aal a föörlaagen",
        "import-interwiki-submit": "Import",
-       "import-interwiki-namespace": "Tu hün nöömrüm:",
-       "import-interwiki-rootpage": "Tu hün sidj (optional):",
        "import-upload-filename": "Dateinööm:",
        "import-comment": "Komentaar:",
        "importtext": "Wees so gud an eksportiare det datei mä det spezial-sidj [[Special:Export|Eksport]] ütj det ööder Wiki. Det seekerst dü üüb dan reegner an schüürst det do heer huuch.",
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 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 c13e35d..e82593c 100644 (file)
        "import-interwiki-history": "Dèan lethbhreac de dh'eachdraidh nam mùthaidhean slàna airson na duilleige seo",
        "import-interwiki-templates": "Gabh a-steach na teamplaidean uile",
        "import-interwiki-submit": "Ion-phortaich",
-       "import-interwiki-namespace": "Ainm-spàs-uidhe:",
-       "import-interwiki-rootpage": "Duilleag freumha a' chinn-uidhe (roghainneil):",
        "import-upload-filename": "Ainm an fhaidhle:",
        "import-comment": "Beachd:",
        "importtext": "Às-phortaich am faidhle on uicidh tùsail le [[Special:Export|goireas an às-phortachaidh]].\nSàbhail e air a' choimpiutair agad is luchdaich suas e an-seo.",
        "tooltip-pt-mycontris": "Liosta na h-obrach a rinn thu",
        "tooltip-pt-login": "Mholamaidh dhut logadh a-steach; ge-tà, cha leig thu leas seo a dhèanamh",
        "tooltip-pt-logout": "Log a-mach",
+       "tooltip-pt-createaccount": "Ged nach eil e riatanach, tha e nas fhearr ma chruthaicheas tu cunntas agus ma logas tu air.",
        "tooltip-ca-talk": "Deasbad mu dhuilleag na susbainte",
        "tooltip-ca-edit": "'S urrainn dhut an duilleag seo a dheasachadh. Saoil an cleachd thu an ro-shealladh mus sàbhail thu?",
        "tooltip-ca-addsection": "Tòisich air earrann ùr",
index 83b38df..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á.",
        "revertmerge": "Desfacer a fusión",
        "mergelogpagetext": "A continuación hai unha lista coas fusións máis recentes do historial dunha páxina co doutra.",
        "history-title": "Historial de revisións de \"$1\"",
-       "difference-title": "Diferenzas entre revisións de «$1»",
-       "difference-title-multipage": "Diferenzas entre as páxinas «$1» e «$2»",
+       "difference-title": "Diferenzas entre revisións de \"$1\"",
+       "difference-title-multipage": "Diferenzas entre as páxinas \"$1\" e \"$2\"",
        "difference-multipage": "(Diferenzas entre páxinas)",
        "lineno": "Liña $1:",
        "compareselectedversions": "Comparar as versións seleccionadas",
        "import-interwiki-history": "Copiar todas as versións que hai no historial desta páxina",
        "import-interwiki-templates": "Incluír todos os modelos",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Espazo de nomes de destino:",
-       "import-interwiki-rootpage": "Páxina raíz de destino (opcional):",
+       "import-mapping-default": "Importar aos lugares predeterminados",
+       "import-mapping-namespace": "Importar a un espazo de nomes:",
+       "import-mapping-subpage": "Importar como subpáxinas da seguinte páxina:",
        "import-upload-filename": "Nome do ficheiro:",
        "import-comment": "Comentario:",
        "importtext": "Por favor, exporte o ficheiro do wiki de orixe usando a [[Special:Export|ferramenta de exportación]].\nGárdeo no seu disco duro e cárgueo aquí.",
        "tags-source-manual": "Aplicado manualmente por usuarios e bots",
        "tags-source-none": "Xa non está en uso",
        "tags-edit": "editar",
-       "tags-delete": "Borrar",
+       "tags-delete": "borrar",
        "tags-activate": "activar",
-       "tags-deactivate": "Reactivar",
+       "tags-deactivate": "desactivar",
        "tags-hitcount": "$1 {{PLURAL:$1|modificación|modificacións}}",
        "tags-manage-no-permission": "Non ten os permisos necesarios para modificar etiquetas.",
        "tags-create-heading": "Crear unha nova etiqueta",
        "tags-create-explanation": "Por defecto, as etiquetas creadas recentemente poderán ser empregadas polos usuarios e os bots.",
-       "tags-create-tag-name": "Nome da páxina:",
+       "tags-create-tag-name": "Nome da etiqueta:",
        "tags-create-reason": "Motivo:",
        "tags-create-submit": "Crear",
        "tags-create-no-name": "Debe especificar unha páxina.",
        "tags-create-already-exists": "A páxina \"$1\" xa existe.",
        "tags-create-warnings-above": "{{PLURAL:$2|Atopouse o seguinte erro|Atopáronse os seguintes erros}} ao intentar crear a etiqueta \"$1\":",
        "tags-create-warnings-below": "Desexa continuar creando a etiqueta?",
-       "tags-delete-title": "Borrar etiqueta",
+       "tags-delete-title": "Borrar unha etiqueta",
        "tags-delete-explanation-initial": "Está a piques de borrar a etiqueta \"$1\" da base de datos.",
        "tags-delete-explanation-in-use": "Ha eliminarse {{PLURAL:$2|dunha revisión ou entrada|das $2 revisións e/ou entradas}} de rexistro {{PLURAL:$2|á|ás}} que actualmente se aplica.",
        "tags-delete-explanation-warning": "Esta acción é <strong>irreversible</strong> e nin sequera os administradores da base de datos poderán desfacela. Asegúrese de que é esta a etiqueta que desexa borrar.",
        "tags-delete-not-found": "A páxina \"$1\" non existe.",
        "tags-delete-too-many-uses": "A etiqueta \"$1\" aplícase a máis de $2 {{PLURAL:$2|revisión|revisións}}; isto significa que non se pode borrar.",
        "tags-delete-warnings-after-delete": "A etiqueta \"$1\" borrouse correctamente; con todo, {{PLURAL:$2|atopouse o seguinte erro|atopáronse os seguintes erros}}:",
-       "tags-activate-title": "Activar etiqueta",
+       "tags-activate-title": "Activar unha etiqueta",
        "tags-activate-question": "Está a piques de activar a etiqueta\"$1\".",
        "tags-activate-reason": "Motivo:",
        "tags-activate-not-allowed": "Non é posible activar a páxina \"$1\".",
        "tags-activate-not-found": "A páxina \"$1\" non existe.",
        "tags-activate-submit": "Activar",
-       "tags-deactivate-title": "Desactivar etiqueta",
+       "tags-deactivate-title": "Desactivar unha etiqueta",
        "tags-deactivate-question": "Está a piques de desactivar a etiqueta \"$1\".",
        "tags-deactivate-reason": "Motivo:",
        "tags-deactivate-not-allowed": "Non é posible reactivar a páxina \"$1\".",
-       "tags-deactivate-submit": "Reactivar",
+       "tags-deactivate-submit": "Desactivar",
        "tags-apply-no-permission": "Non ten permisos para aplicar etiquetas de cambios xunto cos seus tus cambios.",
        "tags-apply-not-allowed-one": "A etiqueta \"$1\" non se puede aplicar manualmente.",
        "tags-apply-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta non se pode|As seguintes etiquetas non se poden}} aplicar manualmente: $1",
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 535cec2..f66f21f 100644 (file)
@@ -23,7 +23,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Vyom",
-                       "Macofe"
+                       "Macofe",
+                       "Arbhatt"
                ]
        },
        "tog-underline": "કડીઓની નીચે લીટી (અંડરલાઇન):",
        "personaltools": "વ્યક્તિગત સાધનો",
        "articlepage": "લેખનું પાનું જુઓ",
        "talk": "ચર્ચા",
-       "views": "દેખાવ",
+       "views": "દેખાવ",
        "toolbox": "સાધનો",
        "userpage": "સભ્યનું પાનું જુઓ",
        "projectpage": "પ્રકલ્પનું પાનું જુઓ",
        "copyrightpage": "{{ns:project}}:પ્રકાશનાધિકાર",
        "currentevents": "વર્તમાન ઘટનાઓ",
        "currentevents-url": "Project:વર્તમાન ઘટનાઓ",
-       "disclaimers": "àª\9cાહà«\87ર ઇનકાર",
-       "disclaimerpage": "Project:સામાનà«\8dય àª\9cાહà«\87ર ઇનકાર",
+       "disclaimers": "દાવà«\87દારà«\80 ઇનકાર",
+       "disclaimerpage": "Project:સરà«\8dવસાધારણ àª¦àª¾àªµà«\87દારà«\80 ઇનકાર",
        "edithelp": "ફેરફારો માટે મદદ",
        "mainpage": "મુખપૃષ્ઠ",
        "mainpage-description": "મુખપૃષ્ઠ",
        "viewsourceold": "સ્રોત જુઓ",
        "editlink": "ફેરફાર",
        "viewsourcelink": "સ્રોત જુઓ",
-       "editsectionhint": "પરિચ્છેદ ફેરફાર કરો: $1",
+       "editsectionhint": "પરિચ્છેદમાં ફેરફાર કરો: $1",
        "toc": "અનુક્રમણિકા",
        "showtoc": "બતાવો",
        "hidetoc": "છુપાવો",
        "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)",
        "gotaccount": "પહેલેથી ખાતું ખોલેલું છે? '''$1'''.",
        "gotaccountlink": "પ્રવેશ કરો",
        "userlogin-resetlink": "પોતાની પ્રવેશ માહિતી ભૂલી ગયા છો?",
-       "userlogin-resetpassword-link": "તમારà«\8b àªªàª¾àª¸àªµàª°à«\8dડ ભૂલી ગયા છો?",
+       "userlogin-resetpassword-link": "તમારà«\8b àª\97à«\81પà«\8dત àª¸àª\82àª\9cà«\8dàª\9eા (પાસવરà«\8dડ) ભૂલી ગયા છો?",
        "userlogin-helplink2": "પ્રવેશ કરવા માટે મદદ",
        "userlogin-loggedin": "તમે પહેલેથી {{GENDER:$1|$1}} તરીકે પ્રવેશ કરેલો જ છે.\nબીજા સભ્ય તરીકે પ્રવેશ કરવા માટે નીચેનું ફોર્મ વાપરો.",
        "userlogin-createanother": "બીજું ખાતું બનાવો",
        "createacct-imgcaptcha-ph": "તમે જે લખાણ જુઓ છો તે દાખલ કરો",
        "createacct-submit": "તમારું ખાતું બનાવો",
        "createacct-another-submit": "બીજું ખાતું બનાવો",
-       "createacct-benefit-heading": "{{SITENAME}} એ તમારા જેવા લોકો વડે બનાવેલ છે.",
+       "createacct-benefit-heading": "{{SITENAME}} એ તમારા જેવા લોકો બનાવેલ છે.",
        "createacct-benefit-body1": "{{PLURAL:$1|ફેરફાર|ફેરફારો}}",
        "createacct-benefit-body2": "{{PLURAL:$1|પાનું|પાનાં}}",
        "createacct-benefit-body3": "તાજેતરના {{PLURAL:$1|યોગદાનકર્તા|યોગદાનકર્તાઓ}}",
        "watchthis": "આ પાનાને ધ્યાનમાં રાખો",
        "savearticle": "પાનું સાચવો",
        "preview": "પૂર્વાવલોકન",
-       "showpreview": "àª\9dલàª\95 àª¦àª°à«\8dશાવો",
+       "showpreview": "àª\9dલàª\95 àª\9cà«\81વો",
        "showdiff": "ફેરફારો દર્શાવો",
        "anoneditwarning": "<strong>ચેતવણી:</strong> તમે તમારા સભ્ય નામથી પ્રવેશ કર્યો નથી.\nઆ પાનાનાં ઇતિહાસમાં તમારૂં આઇ.પી. (IP) એડ્રેસ નોંધવામાં આવશે અને તમારૂં આઈ.પી. લોકો જાહેર રીતે જોઈ શકશે. માટે <strong>[$1 પ્રવેશ કરો]</strong> અથવા તમે <strong>[$2 ખાતું બનાવો]</strong> તો ફેરફારો તમારા સભ્યનામ હેઠળ થશે અને અન્ય ફાયદાઓ પણ મળશે.",
        "anonpreviewwarning": "તમે સભ્યનામથી પ્રવેશ કર્યો નથી,આ પાનું ઈતિહાસમાંતમારા IP સરનામાના નામે  સાચવવામાં આવશે",
        "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આને છુપાવી નહીં શકાય.",
        "showhideselectedversions": "પસંદ કરેલા બતાવો / સંતાડો",
        "editundo": "રદ કરો",
        "diff-empty": "(કોઇ ભેદ નહી)",
+       "diff-multi-sameuser": "(સમાન સભ્ય દ્વારા {{PLURAL:$1|કરાયેલ એક પુનરાવર્તન| કરાયેલા $1 પુનરાવર્તનો}} દર્શાવેલ નથી)",
        "diff-multi-manyusers": "{{PLURAL:$2|એક સભ્યએ કરેલું|$2 સભ્યોએ કરેલા}} ({{PLURAL:$1|વચગાળાનું એક પુનરાવર્તન દર્શાવ્યં|વચગાળાનાં $1 પુનરાવર્તનો દર્શાવ્યાં}} નથી.)",
        "searchresults": "પરિણામોમાં શોધો",
        "searchresults-title": "પરિણામોમાં \"$1\" શોધો",
        "searchrelated": "શોધ સંબંધિત",
        "searchall": "બધા",
        "showingresults": " {{PLURAL:$1|'''1''' પરિણામ|'''$1''' પરિણામો}} સુધી #'''$2''' થી શરૂ  કરી",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong>નું પરિણામ <strong>$1</strong>|<strong>$3</strong>નાં પરિણામો <strong>$1 - $2</strong>}}",
        "search-nonefound": "તમે આપેલી માહિતી ને મળતાં આવતાં કોઈ પરિણામો નથી",
        "powersearch-legend": "વધુ પર્યાયો સાથે શોધો",
        "powersearch-ns": "નામસ્થળોમાં શોધો:",
        "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": "સભ્યના ઇ-મેલ મોકલવા પર પ્રતિબંધ મૂકો",
        "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": "નવા ખાતાના સભ્યોનું યોગદાન",
        "sp-contributions-toponly": "માત્ર છેલ્લી આવૃત્તિના ફેરફારો જ દર્શાવો",
        "sp-contributions-submit": "શોધો",
        "whatlinkshere": "અહી શું જોડાય છે",
-       "whatlinkshere-title": "\"$1\" àª¸àª¾àª¥à«\87 àª\9cà«\8bડાયà«\87લાàª\82 પાનાં",
+       "whatlinkshere-title": "\"$1\" àª¨à«\87 àª\9cà«\8bડતા પાનાં",
        "whatlinkshere-page": "પાનું:",
        "linkshere": "નીચેના પાનાઓ '''[[:$1]]''' સાથે જોડાય છે:",
        "nolinkshere": "'''[[:$1]]'''ની સાથે કોઇ પાના જોડાતા નથી.",
        "import-interwiki-history": "આ પાનું બધા ફેરફારોના ઇતિહાસ સાથે આયાત કરો",
        "import-interwiki-templates": "બધા ઢાંચા શામિલ કરો",
        "import-interwiki-submit": "આયાત કરો",
-       "import-interwiki-namespace": "લક્ષ્ય નામ સ્થળ",
        "import-upload-filename": "ફાઇલ નામ",
        "import-comment": "ટિપ્પણી:",
        "importtext": "કૃપયા [[Special:Export|export utility]] વાપરી વિકિ સ્રોત પરથી ફાઇલ નિકાસ કરો.\nતેને તમારા કૉમ્પ્યુટર પર સાચવો અને અહીં ચડાવો.",
        "tooltip-pt-watchlist": "તમે દેખરેખ રાખી રહ્યાં હોવ તેવા પાનાઓની યાદી",
        "tooltip-pt-mycontris": "તમારા યોગદાનની યાદી",
        "tooltip-pt-login": "આપને પ્રવેશ કરવા ભલામણ કરવામાં આવે છે, જોકે તે આવશ્યક નથી",
-       "tooltip-pt-logout": "બહાર નીકળો/લૉગ આઉટ કરો",
-       "tooltip-pt-createaccount": "તમનà«\87 àª\96ાતà«\81àª\82 àª¬àª¨àª¾àªµà«\80નà«\87 àªªà«\8dરવà«\87શ àª\95રવા àª®àª¾àª\9fà«\87 àª\86મàª\82તà«\8dરણ àª\9bà«\87; àª¤à«\87મ àª\95રવà«\81àª\82 àª\9cà«\8bàª\95à«\87, àª\9cરà«\82રà«\80 àª¨àª¥à«\80.",
+       "tooltip-pt-logout": "બહાર નીકળો",
+       "tooltip-pt-createaccount": "તમનà«\87 àª\96ાતà«\81àª\82 àª¬àª¨àª¾àªµà«\80નà«\87 àªªà«\8dરવà«\87શ àª\95રવા àª®àª¾àª\9fà«\87 àª\86મàª\82તà«\8dરણ àª\9bà«\87; àª¤à«\87મ àª\95રવà«\81àª\82 àª\9cà«\8bàª\95à«\87, àª\86વશà«\8dયàª\95 àª¨àª¥à«\80",
        "tooltip-ca-talk": "અનુક્રમણિકાનાં પાના વિષે ચર્ચા",
        "tooltip-ca-edit": "આપ આ પાનામાં ફેરફાર કરી શકો છો, કાર્ય સુરક્ષિત કરતાં પહેલાં 'ઝલક' બટન ઉપર ક્લિક કરીને જોઇ લેશો",
        "tooltip-ca-addsection": "ચર્ચાનો નવો મુદ્દો ઉમેરો.",
        "tooltip-t-recentchangeslinked": "આ પાના પરની કડીઓ વાળા લેખોમાં તાજેતરમાં થયેલા ફેરફારો",
        "tooltip-feed-rss": "આ પાના માટે આર.એસ.એસ. ફીડ",
        "tooltip-feed-atom": "આ પાના માટે એટોમ ફીડ",
-       "tooltip-t-contributions": "આ સભ્યનાં યોગદાનોની યાદી જુઓ",
+       "tooltip-t-contributions": "આ સભ્યનાં યોગદાનોની યાદી",
        "tooltip-t-emailuser": "આ સભ્યને ઇ-મેલ મોકલો",
        "tooltip-t-upload": "ફાઇલ ચડાવો",
        "tooltip-t-specialpages": "બધા ખાસ પાનાંઓની યાદી",
        "tooltip-ca-nstab-main": "સૂચિ વાળું પાનુ જુઓ",
        "tooltip-ca-nstab-user": "સભ્યનું પાનું જુઓ",
        "tooltip-ca-nstab-media": "મિડિયાનું પાનું જુઓ",
-       "tooltip-ca-nstab-special": "àª\86 àª\96ાસ àªªàª¾àª¨à«\81àª\82 àª\9bà«\87, àª¤àª®à«\87 àª¤à«\87માàª\82 àª«à«\87રફાર àª¨àª¾ àª\95રà«\80 àª¶àª\95à«\8b",
-       "tooltip-ca-nstab-project": "પરિયોજનાનું પાનું",
+       "tooltip-ca-nstab-special": "àª\86 àª\96ાસ àªªàª¾àª¨à«\81àª\82 àª\9bà«\87, àª¤àª®à«\87 àª¤à«\87માàª\82 àª«à«\87રફાર àª\95રà«\80 àª¶àª\95શà«\8b àª¨àª¹à«\80",
+       "tooltip-ca-nstab-project": "પરિયોજનાનું પાનું જુવો",
        "tooltip-ca-nstab-image": "ફાઇલ વિષેનું પાનું જુઓ",
        "tooltip-ca-nstab-mediawiki": "તંત્ર સંદેશ જુઓ",
        "tooltip-ca-nstab-template": "ઢાંચો જુઓ",
        "filedelete-current-unregistered": "જણાવેલ ફાઇલ  \"$1\" માહિતીસંચમાં નથી",
        "filedelete-archive-read-only": "ઐતિહાસિક ડાયરેક્ટરી ($1) એ વેબ બ્રાઉઝર દ્વારા લેખન યોગ્ય નથી.",
        "previousdiff": "← પહેલાનો ફેરફાર",
-       "nextdiff": "પàª\9bà«\80નà«\8b ફેરફાર →",
+       "nextdiff": "નવા ફેરફાર →",
        "mediawarning": "'''ચેતવણી''': આ ફાઇલમાં દુષ્ટ સોચનાઓ હોઇ શકે.\nતેને ચલવતા, તમારા સંગણકને ભય છે.",
        "imagemaxsize": "ચિત્રના કદની મર્યાદા:<br />''(for file description pages)''",
        "thumbsize": "લઘુચિત્ર કદ",
        "file-info": "ફાઇલ કદ : $1, MIME પ્રકાર: $2",
        "file-info-size": "$1 × $2 પીક્સલ, ફાઇલનું કદ: $3, MIME પ્રકાર: $4",
        "file-info-size-pages": "$1 × $2 પીક્સલ, ફાઈલ કદ: $3, MIME પ્રકાર: $4, $5 {{PLURAL:$5|પાનું|પાના}}",
-       "file-nohires": "àª\86થà«\80 àªµàª§à«\81 àª\86વરà«\8dતન ઉપલબ્ધ નથી.",
+       "file-nohires": "àª\86થà«\80 àªµàª§à«\81 àª\98નતà«\8dવ ઉપલબ્ધ નથી.",
        "svg-long-desc": "SVG ફાઇલ, માત્ર $1 × $2 પીક્સલ, ફાઇલનું કદ: $3",
        "svg-long-error": "અયોગ્ય SVG ફાઇલ: $1",
        "show-big-image": "મૂળભુત ફાઇલ",
        "show-big-image-preview": "આ મહાવરા દ્રશ્યનું માપ: $1.",
        "show-big-image-other": "અન્ય {{PLURAL:$2|આવર્તન|આવર્તનો}}: $1.",
-       "show-big-image-size": "$1 Ã\97 $2 àªªà«\80àª\95à«\8dસલ",
+       "show-big-image-size": "$1 Ã\97 $2 àªªàª¿àª\95à«\8dસà«\87લ",
        "file-info-gif-looped": "આવર્તન  (લુપ)",
        "file-info-gif-frames": " $1 {{PLURAL:$1|છબી|છબીઓ}}",
        "file-info-png-looped": "આવર્તન",
        "metadata-help": "આ માધ્યમ સાથે વધુ માહિતિ સંકળાયેલી છે, જે સંભવતઃ માધ્યમ (ફાઇલ) બનાવવા માટે ઉપયોગમાં લેવાયેલા ડિજીટલ કેમેરા કે સ્કેનર દ્વારા ઉમેરવામાં આવી હશે.\n<br />જો માધ્યમને તેના મુળ રૂપમાંથી ફેરફાર કરવામાં આવશે તો શક્ય છે કે અમુક માહિતિ પુરેપુરી હાલમાં છે તેવી રીતે ના જળવાઇ રહે.",
        "metadata-expand": "વિસ્તૃત કરેલી વિગતો બતાવો",
        "metadata-collapse": "વિસ્તૃત કરેલી વિગતો છુપાવો",
-       "metadata-fields": "જ્યારે મૅટાડેટાનો કોઠો વિલિન થઇ જતો હશે ત્યારે આ સંદેશામાં સુચવેલી મૅટાડેટા માહિતી ચિત્રના પાનાની દૃશ્ય આવૃત્તિમાં ઉમેરવામાં આવશે.\nઅન્ય આપોઆપ જ છુપાઇ જશે.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "જ્યારે મૅટાડેટાનો કોઠો વિલિન થઇ જતો હશે ત્યારે આ સંદેશામાં સુચવેલી મૅટાડેટા માહિતી ચિત્રના પાનાની દૃશ્ય આવૃત્તિમાં ઉમેરવામાં આવશે.\nઅન્ય આપોઆપ જ છુપાઇ જશે.\n* બનાવટ\n* મોડલ\n* મુળતારીખ\n* એક્ષપોઝરસમય\n* એફનંબર\n* એઇએસઓસ્પીડસેટિંગ્સ\n* ફોકલલેંથ\n* કલાકાર\n* કોપીરાઇટ\n* ચિત્રનું વર્ણન\n* જીપીએસરેખાંશ\n* જીપીએસઅક્ષાંશ\n* જીપીએસઉંચાઈ",
        "exif-imagewidth": "પહોળાઈ",
        "exif-imagelength": "ઊંચાઈ",
        "exif-bitspersample": "બીટ્સ પ્રતિ ભાગ",
        "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": "માહિતી છુપાવી",
        "logentry-newusers-create": "સભ્ય ખાતું $1 {{GENDER:$2|બનાવવામાં આવ્યું}}",
        "logentry-newusers-create2": "સભ્ય ખાતું $3 $1 વડે {{GENDER:$2|બનાવવામાં આવ્યું હતું}}",
        "logentry-newusers-autocreate": "વપરાશકર્તા ખાતું $1 આપમેળે {{GENDER:$2|બનાવવામાં આવ્યું હતું}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|દ્વારા ચડાવેલ}} $3",
        "rightsnone": "(કંઈ નહી)",
        "revdelete-summary": "સંપાદનનો સંક્ષિપ્ત અહેવાલ",
        "feedback-adding": "પ્રતિભાવ આ પાના પર ઉમેરાઈ રહ્યો છે.",
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 d468d32..4ae303d 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": "העדכונים לדף זה כרגע מופסקים, והמידע לא יעודכן באופן שוטף.",
        "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": "נא לייצא את הקובץ מאתר המקור באמצעות ב[[Special:Export|כלי הייצוא]].\nשמרו אותו למחשב שלכם והעלו אותו לכאן.",
index 7e86a58..48f709b 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 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 78103cf..012a86f 100644 (file)
        "import-interwiki-history": "Wšě wersije ze stawiznow tuteje strony kopěrować",
        "import-interwiki-templates": "Wšě předłohi zapřijeć",
        "import-interwiki-submit": "Importować",
-       "import-interwiki-namespace": "Cilowy mjenowy rum:",
-       "import-interwiki-rootpage": "Cilowa korjenjowa strona (opcionalna):",
        "import-upload-filename": "Datajowe mjeno:",
        "import-comment": "Přičina:",
        "importtext": "Prošu eksportuj dataju ze žórłoweho wikija z pomocu funkcije [[Special:Export|Strony eksportować]]. Składuj ju na swojim ličaku a nahraj ju tu.",
index 59a7930..028189f 100644 (file)
        "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.",
        "import-interwiki-history": "A lap összes előzményváltozatainak másolása",
        "import-interwiki-templates": "Az összes sablon hozzáadása",
        "import-interwiki-submit": "Importálás",
-       "import-interwiki-namespace": "Célnévtér:",
-       "import-interwiki-rootpage": "Cél gyökér lap (opcionális):",
        "import-upload-filename": "Fájlnév:",
        "import-comment": "Megjegyzés:",
        "importtext": "Exportáld a fájlt a forráswikiből az [[Special:Export|exportáló eszköz]] segítségével.\nMentsd el a számítógépedre, majd töltsd fel ide.",
        "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 30d972b..dc8d70f 100644 (file)
@@ -19,7 +19,9 @@
                        "아라",
                        "Lilitik22",
                        "GrigorGB",
-                       "Աշոտ1997"
+                       "Աշոտ1997",
+                       "GeoO",
+                       "Դավիթ Սարոյան"
                ]
        },
        "tog-underline": "ընդգծել հղումները՝",
        "edit": "Խմբագրել",
        "edit-local": "Խմբագրել տեղական նկարագրությունը",
        "create": "Ստեղծել",
+       "create-local": "Ավելացնել տեղային նկարագիր",
        "editthispage": "Խմբագրել այս էջը",
        "create-this-page": "Ստեղծել այս էջը",
        "delete": "Ջնջել",
        "createaccount-text": "Ինչ-որ մեկը ստեղծել է «$2» անվանմամբ մասնակցային հաշիվ «$3» գաղտնաբառով {{SITENAME}} ($4) նախագծում՝ նշելով ձեր էլ-հասցեն։ Ձեզ անհրաժեշտ է մտնել համակարգ և փոխել գաղտնաբառը։\n\nԿարող եք անտեսել այս հաղորդագրությունը, եթե հաշիվը ստեղծվել է սխալմամբ։",
        "login-throttled": "Դուք կատարել եք չափից շատ մուտքի փորձ։\nԽնդրում ենք սպասել որոշ ժամանակ կրկին փորձելուց առաջ։",
        "loginlanguagelabel": "Լեզու՝ $1",
-       "pt-login": "Õ\84Õ¿Õ¶ել",
+       "pt-login": "Õ\84Õ¸Ö\82Õ¿Ö\84 Õ£Õ¸Ö\80Õ®ել",
        "pt-login-button": "Մտնել",
-       "pt-createaccount": "Õ\8dÕ¿Õ¥Õ²Õ®Õ¥Õ¬ Õ´Õ¡Õ½Õ¶Õ¡Õ¯Ö\81Õ« հաշիվ",
+       "pt-createaccount": "Õ\8dÕ¿Õ¥Õ²Õ®Õ¥Õ¬ Õ´Õ¡Õ½Õ¶Õ¡Õ¯Ö\81Õ¡ÕµÕ«Õ¶ հաշիվ",
        "pt-userlogout": "Դուրս գալ",
        "php-mail-error-unknown": "Անհայտ սխալ PHP-ի mail() ֆունկցիայում",
        "user-mail-no-addy": "Փորձվեց ուղարկել էլ․ նամակ առանց էլ․ հասցեի։",
        "preview": "Նախադիտում",
        "showpreview": "Նախադիտել",
        "showdiff": "Կատարված փոփոխությունները",
-       "anoneditwarning": "'''Ուշադրություն.''' Դուք չեք մտել համակարգ։\nՁեր IP հասցեն կգրանցվի այս էջի խմբագրումների պատմության մեջ։",
+       "anoneditwarning": "<strong>Ուշադրություն,</strong> Դուք չեք մտել համակարգ։ Ցանկացած խմբագրման դեպքում Ձեր IP հասցեն կդառնա բոլորին տեսանելի։ Եթե դուք <strong>[$1 մուտք գործեք]</strong> կամ <strong>[$2 ստեղծեք մասնակցային հաշիվ]</strong>, Ձեր կատարած խմբագրումները կկավեն Ձեր մասնակցային անվան հետ և Դուք կունենաք այլ առավելություններ։",
        "anonpreviewwarning": "<em>Դուք չեք մտել համակարգ։\nՀիշելով Ձեր կատարած խմբագրումը, այն կպահանվի Ձեր IP հասցեի հետ միասին այս էջի խմբագրումների պատմության մեջ։</em>",
        "missingsummary": "'''Հիշեցում.''' Դուք չեք տվել խմբագրման ամփոփում։ «Հիշել» կոճակի կրկնակի մատնահարման դեպքում փոփոխությունները կհիշվեն առանց ամփոփման։",
        "missingcommenttext": "Խնդրում ենք մեկնաբանություն ավելացնել ստորև։",
        "newarticletext": "Դուք հղվել եք դեռևս գոյություն չունեցող էջի։ \nՆոր էջ ստեղծելու համար ստորև գտնվող խմբագրման դաշտում ավելացրեք տեքստ, այնուհետև սեղմեք '''Հիշել էջը''' (այցելեք [$1 օգնության էջը]՝ մանրամասն տեղեկությունների համար)։ \n\nԵթե դուք սխալմամբ եք այստեղ հայտնվել, ապա սեղմեք ձեր դիտարկչի '''հետ''' (back) կոճակը։",
        "anontalkpagetext": "----\n''Այս քննարկման էջը պատկանում է անանուն մասնակցին, որը դեռ չի ստեղծել մասնակցային հաշիվ կամ չի մտել համակարգ մասնակցի անունով։''\nԱյդ իսկ պատճառով օգտագործվում է թվային IP-հասցեն։\nՆման IP-հասցեից կարող են օգտվել մի քանի մասնակիցներ։\nԵթե դուք անանուն մասնակից եք, բայց կարծում եք, որ ուրիշներին վերաբերող դիտողությունները արվում են ձեր հասցեով, ապա խնդրում ենք պարզապես [[Special:UserLogin/signup|գրանցվել]] կամ [[Special:UserLogin|մտնել համակարգ]], որպեսզի հետագայում ձեզ չշփոթեն այլ անանուն մասնակիցների հետ։",
        "noarticletext": "Ներկայումս այս էջում որևէ տեքստ չկա։\nԴուք կարող եք [[Special:Search/{{PAGENAME}}|որոնել այս անվանումը]] այլ էջերում, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} որոնել համապատասխան տեղեկամատյանները] կամ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ստեղծել նոր էջ այս անվանմամբ]</span>։",
-       "noarticletext-nopermission": "Ներկայումս այս էջում որևէ տեքստ չկա։\nԴուք կարող եք [[Special:Search/{{PAGENAME}}|որոնել այս անվանունը]] այլ էջերում կամ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} որոնել այն տեղեկամատյաններում]</span>։",
+       "noarticletext-nopermission": "Ներկայումս այս էջում որևէ տեքստ չկա։\nԴուք կարող եք [[Special:Search/{{PAGENAME}}|որոնել այս անվանունը]] այլ էջերում կամ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} որոնել այն տեղեկամատյաններում]</span>։ Դուք չունեք թույլտվություն ստեղծել այս էջը։",
        "userpage-userdoesnotexist": "«<nowiki>$1</nowiki>» անվանմամբ մասնակից գոյություն չունի։\nԽնդրում ենք հավաստիանալ նրանում, թե արդյոք ուզում եք ստեղծել/խմբագրել այս էջը։",
        "userpage-userdoesnotexist-view": "«$1» անվանմամբ գրանցված մասնակից չկա։",
        "blocked-notice-logextract": "Այս մասնակիցը ներկա պահին արգելափակված է։\nՍտորև ներկայացված է արգելափակման տեղեկամատյանի վերջին գրառումը.",
        "token_suffix_mismatch": "'''Ձեր խմբագրումը մերժվել է, քանի որ ձեր օգտագործած ծրագիրը աղավաղել է կետադրության նշանները խմբագրման դաշտում։ Խմբագրումը մերժվել է էջի տեքստի խաթարումը կանխելու նպատակով։ Սա երբեմն պայմանավորված է սխալներ պարունակող անանվանեցնող վեբ-փոխարինորդ (proxy) ծառայության օգտագործմամբ։'''",
        "editing": "Խմբագրվում է՝ $1 էջը",
        "creating": "Ստեղծվում է՝ $1 էջը",
-       "editingsection": "Խմբագրվում է՝ $1 էջի (բաժինը)",
+       "editingsection": "Խմբագրվում է $1 բաժինը",
        "editingcomment": "Խմբագրվում է՝ $1 էջի (նոր բաժինը)",
        "editconflict": "Խմբագրման ընդհարում. $1",
        "explainconflict": "Մեկ այլ մասնակից փոփոխել է այս տեքստը ձեր խմբագրման ընթացքում։\nՎերին խմբագրման դաշտում ընդգրկված է ընթացիկ տեքստը, որն ենթակա է հիշման։\nՁեր խմբագրումներով տեքստը գտնվում է ստորին դաշտում։\nՈրպեսզի ձեր փոփոխությունները հիշվեն, միաձուլեք դրանք վերին տեքստի մեջ։\n«{{int:savearticle}}» կոճակին սեղմելով կհիշվի '''միայն''' վերևվի դաշտի տեքստը:",
        "nextn": "հաջորդ {{PLURAL:$1|$1}}",
        "prevn-title": "Նախկին $1 {{PLURAL:$1|արդյունքը|արդյունքները}}",
        "nextn-title": "Հաջորդ $1 {{PLURAL:$1|արդյունքը|արդյունքները}}",
+       "shown-title": "Յուրաքանչյուր էջում ցույց տալ $1 {{PLURAL:$1|գրառում|գրառումներ}}",
        "viewprevnext": "Դիտել ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Այս վիքիում, գոյություն ունի \"[[:$1]]\" անվանումով էջը։'''",
-       "searchmenu-new": "'''Ստեղծե՛լ \"[[:$1]]\" էջը այս վիքիում'''",
+       "searchmenu-new": "<strong>Ստեղծել «[[:$1]]» էջը այս վիքիում։</strong> {{PLURAL:$2|0=|Տես նաև քո որոնած բառով գտնված էջը|Տես նաև որոնման արդյունքները։}}",
        "searchprofile-articles": "Հիմնական էջեր",
        "searchprofile-images": "Մուլտիմեդիա",
        "searchprofile-everything": "Ամենուրեք",
        "searchrelated": "հարակից",
        "searchall": "բոլոր",
        "showingresults": "Ստորև բերված է մինչև {{PLURAL:$1|'''1''' արդյունք|'''$1''' արդյունք}}՝ սկսած №&nbsp;<strong>$2</strong>-ից։",
+       "search-showingresults": "{{PLURAL:$4|<strong>$1</strong> արդյունք <strong>$3</strong>-ից|<strong>$1 - $2</strong> արդյունքներ <strong>$3</strong>-ից}}",
        "search-nonefound": "Որոնմանը համապատասխանող արդյունքներ չեն գտնվել։",
        "powersearch-legend": "Ընդլայնված որոնում",
        "powersearch-ns": "Որոնել անվանատարածքում.",
        "recentchanges-label-bot": "Այս խմբագրումը կատարվել է բոտի կողմից",
        "recentchanges-label-unpatrolled": "Այս խմբագրումը դեռ չի պարեկվել",
        "recentchanges-label-plusminus": "Էջի չափսը փոփոխվեց այսքան բայթով",
+       "recentchanges-legend-heading": "'''Լեգենդ՝'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (տես նաև՝  [[Special:NewPages|նոր էջերի ցանկ]])",
        "rcnotefrom": "Ստորև բերված են փոփոխությունները սկսած՝ '''$2''' (մինչև՝ '''$1''')։",
        "rclistfrom": "Ցույց տալ նոր փոփոխությունները սկսած $3 $2",
        "undelete-show-file-submit": "Այո",
        "namespace": "Անվանատարածք.",
        "invert": "Շրջել ընտրությունը",
+       "tooltip-invert": "Նշեք` տվյալ անվանատարածքի և կից անվանատարածքների (եթե նշված է) էջերի փոփոխությունները թաքցնելու համար։",
        "namespace_association": "Կից անվանատարածք",
+       "tooltip-namespace_association": "Նշեք տվյալ անվանատարածքի հետ կապված քննարկումների անվանատարածքը նույնպես ներառելու համար։",
        "blanknamespace": "(Գլխավոր)",
        "contributions": "{{GENDER:$1|Մասնակցի}} ներդրում",
        "contributions-title": "$1 մասնակցի ներդրումը",
        "nolinkshere-ns": "Ընտրված անվանատարածքում '''[[:$1]]''' էջին հղվող էջեր չկան։",
        "isredirect": "վերահղման էջ",
        "istemplate": "ներառում",
-       "isimage": "պատկերի հղումներ",
+       "isimage": "ֆայլի հղում",
        "whatlinkshere-prev": "{{PLURAL:$1|նախորդ|նախորդ $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|հաջորդ|հաջորդ $1}}",
        "whatlinkshere-links": "← հղումներ",
        "import-interwiki-text": "Նշեք վիքի և ներմուծվող էջի անվանումը։\nՓոփոխումների ժամանակները և խմբագրողների անունները կպահպանվեն։\nԲոլոր միջվիքի ներմուծման գործողությունները գրանցվում են [[Special:Log/import|ներմուծման տեղեկամատյանում]]։",
        "import-interwiki-history": "Պատճենել այս էջի փոփոխումների լրիվ պատմությունը",
        "import-interwiki-submit": "Ներմուծել",
-       "import-interwiki-namespace": "Տեղադրել էջերը անվանատարածքում.",
        "import-upload-filename": "Նիշքի անուն․",
        "import-comment": "Մեկնաբանություն.",
        "importtext": "Խնդրում ենք արտածեք էջը ելակետային վիքիից օգտագործելով [[Special:Export|արտածման գործիք]], հիշեք այն նիշքի տեսքով ձեր համակարգչի վրա և այնուհետև, բեռնեք այն այստեղ։",
        "tooltip-pt-mycontris": "Ձեր ներդրումների ցանկը",
        "tooltip-pt-login": "Կոչ ենք անում մտնել համակարգ, սակայն դա պարտադիր չէ",
        "tooltip-pt-logout": "Դուրս գալ համակարգից",
+       "tooltip-pt-createaccount": "Խորհուրդ է տրվում ստեղծել մասնակցային հաշիվ և մուտք գործել համակարգ, սակայն դա անելը պարտադիր չէ։",
        "tooltip-ca-talk": "Քննարկումներ այս էջի բովանդակության մասին",
        "tooltip-ca-edit": "Դուք կարող էք խմբագրել այս էջը։ Խնդրում ենք օգտագործել նախադիտման կոճակը հիշելուց առաջ։",
        "tooltip-ca-addsection": "Ստեղծել նոր բաժին",
        "svg-long-desc": "SVG-նիշք, անվանապես $1 × $2 փիքսել, նիշքի չափը՝ $3",
        "show-big-image": "Սկզբնական նիշք",
        "show-big-image-preview": "Նախադիտման չափ՝ $1։",
+       "show-big-image-other": "Այլ {{PLURAL:$2|1=թույլտվություն|թույլտվությաններ}}: $1.",
        "show-big-image-size": "$1 × $2 պիքսել",
        "newimages": "Նոր նիշքերի սրահ",
        "imagelisttext": "Ստորև բերված է '''$1''' {{PLURAL:$1|նիշքի}} ցանկ՝ դասավորված ըստ $2։",
        "metadata-help": "Նիշքը պարունակում է ընդարձակ տվյալները, հավանաբար ավելացված թվային լուսանկարչական ապարատի կամ սկաների կողմից, որոնք օգտագործվել են նկարը ստեղծելու կամ թվայնացնելու համար։\nԵթե նիշքը ձևափոխվել է ստեղծումից ի վեր, ապա որոշ տվյալները կարող են չհամապատասխանել ձևափոխված նիշքին։",
        "metadata-expand": "Ցուց տալ ընդարձակ տվյալները",
        "metadata-collapse": "Թաքցնել ընդարձակ տվյլաները",
-       "metadata-fields": "EXIF Õ´Õ¥Õ¿Õ¡Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80Õ« Õ¡ÕµÕ¶ Õ¤Õ¡Õ·Õ¿Õ¥Ö\80Õ¨, Õ¸Ö\80Õ¸Õ¶Ö\84 Õ¶Õ·Õ¾Õ¡Õ® Õ¥Õ¶Ö\84 Õ¡ÕµÕ½ Õ¸Ö\82Õ²Õ¥Ö\80Õ±Õ« Õ´Õ¥Õ», Õ¯Ö\81Õ¸Ö\82Ö\81Õ¡Õ¤Ö\80Õ¾Õ¥Õ¶ ÕºÕ¡Õ¿Õ¯Õ¥Ö\80Õ« Õ§Õ»Õ¸Ö\82Õ¶ Õ¬Õ¼Õ¸Ö\82Õ©ÕµÕ¡Õ´Õ¢։ Այլ տվյալները լռությամբ կթաքցվեն։\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": "EXIF Õ´Õ¥Õ¿Õ¡Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80Õ« Õ¡ÕµÕ¶ Õ¤Õ¡Õ·Õ¿Õ¥Ö\80Õ¨, Õ¸Ö\80Õ¸Õ¶Ö\84 Õ¶Õ·Õ¾Õ¡Õ® Õ¥Õ¶Ö\84 Õ¡ÕµÕ½ Õ¸Ö\82Õ²Õ¥Ö\80Õ±Õ« Õ´Õ¥Õ», Õ¯Ö\81Õ¸Ö\82Ö\81Õ¡Õ¤Ö\80Õ¾Õ¥Õ¶ ÕºÕ¡Õ¿Õ¯Õ¥Ö\80Õ« Õ§Õ»Õ¸Ö\82Õ´, Õ¥Ö\80Õ¢ Õ´Õ¥Õ¿Õ¡Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80Õ« Õ¡Õ²ÕµÕ¸Ö\82Õ½Õ¡Õ¯Õ¨ Õ®Õ¡Õ¬Õ¾Õ¡Õ® Õ§։ Այլ տվյալները լռությամբ կթաքցվեն։\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Լայնք",
        "exif-imagelength": "Բարձրություն",
        "exif-orientation": "Դիրք",
        "exif-xresolution": "Հորիզոնական կետաչափ",
        "exif-yresolution": "Ուղղահայաց կետաչափ",
+       "exif-datetime": "Ֆայի փոփոխման ամսաթիվը և ժամանակը",
        "exif-make": "Խցիկի արտադրող",
        "exif-model": "Խցիկի մոդել",
        "exif-software": "Օգտագործված ծրագիր",
        "dberr-problems": "Այս կայքում առաջացել են տեխնիկական խնդիրներ։ Հայցում ենք ձեր ներողությունը։",
        "dberr-again": "Փորձեք մի քանի րոպե սպասել և վերաբեռնել էջը։",
        "htmlform-submit": " \nՀաշվել",
-       "logentry-delete-delete": "$1 ջնջեց էջը $3",
+       "logentry-delete-delete": "$1 {{GENDER:$2|ջնջեց}} $3 էջը",
        "logentry-delete-restore": "$1 վերականգնեց էջը $3",
        "logentry-delete-event": "$1 փոխեց տեղեկամատյանի {{PLURAL:$5|1 գրանցման|$5 գրանցումների}} տեսանելությունը $3-ում. $4",
        "logentry-delete-revision": "$1 փոխեց {{PLURAL:$5|1 խմբագրման|$5 խմբագրումների}} տեսանելությունը $3 էջում. $4",
index d8bb042..8754712 100644 (file)
        "import-interwiki-history": "Copiar tote le versiones del historia de iste pagina",
        "import-interwiki-templates": "Includer tote le patronos",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Spatio de nomines de destination:",
-       "import-interwiki-rootpage": "Pagina radice de destination (optional):",
        "import-upload-filename": "Nomine del file:",
        "import-comment": "Commento:",
        "importtext": "Per favor exporta le file del wiki de origine con le [[Special:Export|facilitate de exportation]].\nSalveguarda lo in tu computator e incarga lo hic.",
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 044c4af..b95a058 100644 (file)
        "import-interwiki-history": "Kopiaen amin dagiti rebision ti pakasaritaan daytoy a panid",
        "import-interwiki-templates": "Iraman amin dagiti plantilia",
        "import-interwiki-submit": "Agala",
-       "import-interwiki-namespace": "Pangipanan a nagan ti espasio:",
-       "import-interwiki-rootpage": "Papanan a ramut ti panid (pagpilian):",
        "import-upload-filename": "Nagan ti papeles:",
        "import-comment": "Komentario:",
        "importtext": "Pangngaasi nga ipanmo ti papeles manipud ti nagtaudan a wiki nga agusar ti [[Special:Export|ramit ti panagipan]].\nIdulinmo iti bukodmo a kompiuter ken ikarga ditoy.",
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 cdaaeb1..a6b8a8f 100644 (file)
        "import-interwiki-history": "Afrita allar breytingar þessarar síðu",
        "import-interwiki-templates": "Innifala öll snið með",
        "import-interwiki-submit": "Flytja inn",
-       "import-interwiki-namespace": "Ákvörðunarnafnrými:",
-       "import-interwiki-rootpage": "Markmóðursíða (valfrjáls):",
        "import-upload-filename": "Skráarnafn:",
        "import-comment": "Athugasemdir:",
        "importtext": "Vinsamlegast fluttu út skránna frá upprunalegum wiki með því að nota [[Special:Export|Flytja út síður]].\nVistaðu skránna á tölvunni þinni og hladdu henni inn hér.",
        "revdelete-uname-unhid": "notandanafn birt",
        "revdelete-restricted": "hömlur settar á stjórnendur",
        "revdelete-unrestricted": "fjarlægja hömlur á stjórnendur",
+       "logentry-block-block": "$1 {{GENDER:$2|bannaði}} {{GENDER:$4|$3}}, rennur út eftir $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|bannaði}} {{GENDER:$4|$3}}, rennur út eftir $5 $6",
        "logentry-move-move": "$1 {{GENDER:$2|færði}} $3 á $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|færði}} $3 á $4 án þess að skilja eftir tilvísun",
index 096a490..c0de184 100644 (file)
        "import-interwiki-history": "Copia l'intera cronologia di questa pagina",
        "import-interwiki-templates": "Includi tutti i template",
        "import-interwiki-submit": "Importa",
-       "import-interwiki-namespace": "Namespace di destinazione:",
-       "import-interwiki-rootpage": "Pagina principale di destinazione (opzionale):",
+       "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-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-success": "Le modifiche sono state applicate correttamente.",
+       "tags-edit-failure": "Non è stato possibile effettuare le seguenti modifiche:\n$1",
+       "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",
index 2be4063..35cfe7d 100644 (file)
        "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": "(記録の詳細は除去されています)",
        "logempty": "該当する記録はありません。",
        "log-title-wildcard": "この文字列で始まるページ名を検索",
        "showhideselectedlogentries": "選択した記録項目を表示/非表示",
+       "log-edit-tags": "選択した記録項目のタグを編集",
        "allpages": "全ページ",
        "nextpage": "次のページ ($1)",
        "prevpage": "前のページ ($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それをコンピューターに保存した後、こちらへアップロードしてください。",
        "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-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 e509ee2..da6a59d 100644 (file)
@@ -22,7 +22,8 @@
                        "לערי ריינהארט",
                        "გიორგიმელა",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "SHOTHA"
                ]
        },
        "tog-underline": "ბმულების ხაზგასმა:",
        "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": "შეცდომა: ფორმის გაგზავნა ვერ მოხერხდა.",
        "preview": "წინასწარი გადახედვა",
        "showpreview": "წინასწარი გადახედვა",
        "showdiff": "ცვლილებების ჩვენება",
-       "anoneditwarning": "'''გაფრთხილება:''' თქვენ არ ხართ რეგისტრირებული. თქვენი IP მისამართი ჩაიწერება ამ გვერდის რედაქტირების ისტორიაში.",
+       "anoneditwarning": "<strong>გაფრთხილება:</strong> თქვენ არ ხართ ავტორიზირებული. თქვენი IP მისამართი საჯაროდ ხილული იქნება, თუკი განახორციელებთ რედაქტირებას. თუ თქვენ გაივლით <strong>[$1 ავტორიზაციას]</strong> ან <strong>[$2 შექმნით ანგარიშს]</strong>, სხვა უპირატესობებთან ერთად, თქვენი რედაქტირებები დაუკავშირდება თქვენს მომხმარებლის სახელს.",
        "anonpreviewwarning": "''თქვენ არ შესულხართ სისტემაში. თქვენი IP მისამართი შეინახება გვერდის ისტორიაში. ''",
        "missingsummary": "'''შეხსენება:''' თქვენ არ მიგითითებიათ რედაქტირების რეზიუმე.\nთუ ისევ დააწკაპუნებთ შენახვაზე, თქვენი რედაქტირება რეზიუმეს გარეშე დამახსოვრდება.",
        "missingcommenttext": "გთხოვთ კომენტარი შეიყვანოთ ქვემოთ.",
        "history-feed-empty": "თქვენს მიერ მოძიებული გვერდი არ არსებობს.\nშესაძლოა იგი წაშლილ იქნა ვიკიდან, ან მისი სათაური შეიცვალა.\nსცადეთ [[Special:Search|searching on the wiki]] მსგავსი გვერდების სანახავად.",
        "rev-deleted-comment": "(რეზიუმე წაიშალა)",
        "rev-deleted-user": "(მომხმარებლის სახელი წაიშალა)",
-       "rev-deleted-event": "(á\83\9fá\83£á\83 á\83\9cá\83\90á\83\9aá\83\98á\83¡ á\83©á\83\90á\83\9cá\83\90á\83¬á\83\94á\83 ი წაშლილია)",
+       "rev-deleted-event": "(á\83\9fá\83£á\83 á\83\9cá\83\90á\83\9aá\83\98á\83¡ á\83\93á\83\94á\83¢á\83\90á\83\9aá\83\94á\83\91ი წაშლილია)",
        "rev-deleted-user-contribs": "[მომხმარებლის სახელი ან IP დამალულია. რეაქტირება ასევე დამალულია]",
        "rev-deleted-text-permission": "გვერდის ეს ჩასწორება '''წაიშალა'''.\nგანმარტება შესაძლოა მოცემული იყოს [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} წაშლათა ჟურნალში].",
        "rev-deleted-text-unhide": "გვერდის ეს ვერსია '''წაიშალა'''.\nახსნა-განმარტება მოცემულია [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლის ჟურნალში].\nსურვილის შემთხვევაში თქვენ შეგიძლიათ [$1 იხილოთ აღნიშნული ვერსია].",
        "revdelete-legend": "შეზღუდვის დაყენება",
        "revdelete-hide-text": "შეცვლილი ტექსტი",
        "revdelete-hide-image": "ფაილის შინაარსის დამალვა",
-       "revdelete-hide-name": "á\83\93á\83\90á\83\9bá\83\90á\83\9aá\83\94á\83\97 á\83\9bá\83\9dá\83¥á\83\9bá\83\94á\83\93á\83\94á\83\91á\83\90 á\83\93á\83\90 á\83\9bá\83\98á\83¡á\83\98 á\83\9dá\83\91á\83\98á\83\94á\83¥á\83¢ი",
+       "revdelete-hide-name": "á\83\93á\83\90á\83\9bá\83\90á\83\9aá\83\94á\83\97 á\83¡á\83\90á\83\9bá\83\98á\83\96á\83\9cá\83\94 á\83\93á\83\90 á\83\9eá\83\90á\83 á\83\90á\83\9bá\83\94á\83¢á\83 á\83\94á\83\91ი",
        "revdelete-hide-comment": "რედაქტირების კომენტარი",
        "revdelete-hide-user": "რედაქტორის მომხმარებლის სახელი/IP-მისამართი",
        "revdelete-hide-restricted": "დამალეთ მონაცემები ადმინისტრატორთაგან",
        "search-result-category-size": "{{PLURAL:$1|$1 ელემენტი|$1 ელემენტი|$1 ელემენტები}} ({{PLURAL:$2|$2 ქვეკატეგორია|$2 ქვეკატეგორიები|$2 ქვეკატეგორიები}}, {{PLURAL:$3|$3 ფაილი|$3 ფაილი|$3 ფაილი}})",
        "search-redirect": "(გადამისამართება $1)",
        "search-section": "(სექცია $1)",
+       "search-category": "(კატეგორია $1)",
        "search-file-match": "(ემთხვევა ფაილის შინაარსს)",
        "search-suggest": "ხომ არ იგულისხმეთ: $1?",
        "search-interwiki-caption": "დობილი პროექტები",
        "gender-female": "ის (მდედრობითი) არედაქტირებს ვიკი-გვერდებს",
        "prefs-help-gender": "ამ პარამეტრის დაყენება არასავალდებულოა.\nპროგრამული უზრუნველყოფა ამ ინფორმაციას იყენებს მხოლოდ სწორი გრამატიკული სქესით მომართვისათვის.\nეს ინფორმაცია საჯარო იქნება ყველასათვის.",
        "email": "ელ. ფოსტა",
-       "prefs-help-realname": "á\83\9cá\83\90á\83\9bá\83\93á\83\95á\83\98á\83\9aá\83\98 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\98á\83¡ á\83\9bá\83\98á\83\97á\83\98á\83\97á\83\94á\83\91á\83\90 á\83\90á\83£á\83ªá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\9aá\83\98 á\83\90á\83  á\83\90á\83 á\83\98á\83¡, á\83\9bá\83\90á\83\92á\83 á\83\90á\83\9b á\83\97á\83£ á\83\9bá\83\98á\83£á\83\97á\83\98á\83\97á\83\94á\83\91á\83\97 á\83\98á\83¡ á\83\92á\83\90á\83\9bá\83\9dá\83§á\83\94á\83\9cá\83\94á\83\91á\83£á\83\9aá\83\98 á\83\98á\83¥á\83\9cá\83\94á\83\91á\83\90 á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 á\83\9cá\83\90á\83\9bá\83£á\83¨á\83\94á\83\95á\83 á\83\98á\83¡ á\83\90á\83¦á\83¡á\83\90á\83\9cá\83\98á\83¨á\83\9cá\83\90á\83\95á\83\90á\83\93.",
+       "prefs-help-realname": "á\83\9cá\83\90á\83\9bá\83\93á\83\95á\83\98á\83\9aá\83\98 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\98á\83¡ á\83\9bá\83\98á\83\97á\83\98á\83\97á\83\94á\83\91á\83\90 á\83\9cá\83\94á\83\91á\83\90á\83§á\83\9dá\83¤á\83\9aá\83\9dá\83\91á\83\98á\83\97á\83\98á\83\90.\ná\83\97á\83£ á\83\97á\83¥á\83\95á\83\94á\83\9c á\83\9bá\83\90á\83¡ á\83\9bá\83\98á\83£á\83\97á\83\98á\83\97á\83\94á\83\91á\83\97 á\83\98á\83¡ á\83¨á\83\94á\83¡á\83\90á\83«á\83\9aá\83\9dá\83\90 á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 á\83\9cá\83\90á\83\9bá\83£á\83¨á\83\94á\83\95á\83 á\83\98á\83¡ á\83\90á\83¦á\83¡á\83\90á\83\9cá\83\98á\83¨á\83\9cá\83\90á\83\95á\83\90á\83\93 á\83\98á\83¥á\83\9cá\83\90á\83¡ á\83\92á\83\90á\83\9bá\83\9dá\83§á\83\94á\83\9cá\83\94á\83\91á\83£á\83\9aá\83\98.",
        "prefs-help-email": "ელ. ფოსტის მისამართი არ არის სავალდებულო, მაგრამ მისი მითითება იძლევა ახალი პაროლის გამოგზავნის საშუალებას თქვენი პაროლის დავიწყების შემთხვევაში.",
        "prefs-help-email-others": "ის აგრეთვე მისცემს საშუალებას სხვა მომხმარებლებს, დაგიკავშირდნენ თქვენს პირად გვერდზე მითითებული ბმულის მეშვეობით. თქვენი ელ. ფოსტის მისამართი არ იქნება გამხელილი, როდესაც სხვა მომხმარებლები დაგიკავშირდებიან.",
        "prefs-help-email-required": "თქვენი ელ-ფოსტის მისამართი აუცილებელია.",
        "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": "ფაილის სახელი",
        "wlheader-enotif": "ელ.ფოსტით შეტყობინება ჩართულია.",
        "wlheader-showupdated": "თქვენი ბოლო ვიზიტის შემდეგ შეცვლილი გვერდები, აღნიშნულია '''მუქად'''.",
        "wlnote": "ქვემოთ {{PLURAL:$1|ნაჩვენებია ბოლო ცვლილება|ნაჩვენებია ბოლო '''$1''' ცვლილება}} უკანასკნელი {{PLURAL:$2|საათის|'''$2''' საათის}} მანძილზე, $3, $4 მდგომარეობით.",
-       "wlshowlast": "á\83\90á\83©á\83\95á\83\94á\83\9cá\83\94 á\83\91á\83\9dá\83\9aá\83\9d $1 á\83¡á\83\90á\83\90á\83\97á\83\98á\83¡ $2 á\83\93á\83¦á\83\98á\83¡",
+       "wlshowlast": "á\83\91á\83\9dá\83\9aá\83\9d $1 á\83¡á\83\90á\83\90á\83\97á\83\98á\83¡ $2 á\83\93á\83¦á\83\98á\83¡ á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\90",
        "watchlist-options": "კონტროლის სიის პარამეტრები",
        "watching": "კონტროლებადი...",
        "unwatching": "არაკონტროლირებადი...",
        "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დაბლოკვათა ჟურნალი ქვემოთ მოყვანილია:",
        "thumbnail_gd-library": "ბიბლიოთეკა GD-ს არასწორი კონფიგურაცია: $1 ფუნქცია არ არის აღმოჩენილი",
        "thumbnail_image-missing": "სავარაუდოდ $1 ფაილი არ არსებობს",
        "import": "გვერდების იმპორტი",
-       "importinterwiki": "á\83¢á\83 á\83\90á\83\9cá\83¡á\83\95á\83\98á\83\99á\83\98 იმპორტი",
+       "importinterwiki": "á\83¡á\83®á\83\95á\83\90 á\83\95á\83\98á\83\99á\83\98á\83\93á\83\90á\83\9c იმპორტი",
        "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|შესაბამისი ხელსაწყოს]] გამოყენებით. ფაილი შეინახეთ დისკზე, ხოლო შემდეგ ატვირთეთ აქ.",
        "import-rootpage-nosubpage": "სახელტა სივრცეში მითითებულ ძირეულ გვერდში „$1“ ქვეგვერდები დაუშვებელია.",
        "importlogpage": "იმპორტის ჟურნალი",
        "importlogpagetext": "ადმინისტრატორთა მიერ გვერდების იმპორტირება  ცვლილებების ჩათვლით სხვა ვიკიდან.",
-       "import-logentry-upload-detail": "$1 ცვლილება",
-       "import-logentry-interwiki-detail": "$1 ცვლილება $2-დან",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|ვერსია|ვერსია}} იმპორტირებულია",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ვერსია|ვერსია}} იმპორტირებულია $2-დან",
        "javascripttest": "JavaScript-ის ტესტირება",
        "javascripttest-pagetext-noframework": "ეს გვერდი დარეგისტრირებულია JavaScript-ის ტესტების გასაშვებად.",
        "javascripttest-pagetext-unknownframework": "„$1-ის“ ტესტირების უცნობი გარემო.",
        "tooltip-pt-mycontris": "თქვენი წვლილის სია",
        "tooltip-pt-login": "სასურველია დარეგისტრირდეთ, თუმცა აუცილებელია არაა.",
        "tooltip-pt-logout": "გასვლა",
+       "tooltip-pt-createaccount": "ჩვენ გთავაზობთ, შექმნათ ანგარიში და შეხვიდეთ სისტემაში; თუმცა ეს არ არის აუცილებელი",
        "tooltip-ca-talk": "შიგთავსის გვერდის განხილვა",
        "tooltip-ca-edit": "თქვენ შეგიძლიათ ამ გვერდის რედაქტირება. გთხოვთ გამოიყენოთ  წინასწარი ხედვის ღილაკი სანამ გვერდს შეინახავთ.",
        "tooltip-ca-addsection": "ახალი სექციის შექმნა",
        "autosumm-replace": "შინაარსი შეიცვალა „$1“-ით",
        "autoredircomment": "გადამისამართება [[$1]]-ზე",
        "autosumm-new": "ახალი გვერდი: $1",
+       "autosumm-newblank": "ცარიელი გვერდი შეიქმნა",
        "size-bytes": "$1 ბ",
        "size-kilobytes": "$1 კბ",
        "size-megabytes": "$1 მბ",
        "duplicate-defaultsort": "'''ყურადღება.'''სორტირების გასაღებს «$2»-ს გააჭრის წინა გასაღებს «$1»-ს.",
        "version": "ვერსია",
        "version-extensions": "დაყენებული გაფართოებები",
-       "version-skins": "á\83\98á\83\94á\83 á\83¡á\83\90á\83®á\83\94",
+       "version-skins": "á\83\93á\83\90á\83§á\83\94á\83\9cá\83\94á\83\91á\83£á\83\9aá\83\98 á\83\97á\83\94á\83\9bá\83\94á\83\91á\83\98",
        "version-specialpages": "სპეციალური გვერდები",
        "version-parserhooks": "სინტაქსური ანალიზატორის ჰუკები",
        "version-variables": "ცვალებადი",
        "tags": "ცვლილებათა მოქმედი მონიშვნები",
        "tag-filter": "[[Special:Tags|მონიშვნათა]] ფილტრი",
        "tag-filter-submit": "გაფილტვრა",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|იარლიყი|იარლიყები}}]]: $2)",
        "tags-title": "მონიშვნები",
        "tags-intro": "ამ გვერდზე წარმოდგენილია მონიშვნათა სია, რომლითაც პროგრამული უზრუნველყოფა მონიშნავს შესწორებებს, ასევე ამ მონიშვნათა მნიშვნელობა.",
        "tags-tag": "ტეგის სახელი",
        "tags-deactivate-title": "ტეგის დეაქტივაცია",
        "tags-deactivate-reason": "მიზეზი:",
        "tags-deactivate-submit": "დეაქტივაცია",
+       "tags-edit-reason": "მიზეზი:",
        "comparepages": "გვერდების შედარება",
        "compare-page1": "1 გვერდი",
        "compare-page2": "2 გვერდი",
        "compare-revision-not-exists": "თქვენ მიერ მითითებული ვერსია არ არსებობს.",
        "dberr-problems": "ბოდიში! საიტზე დროებითი ტექნიკური პრობლემებია",
        "dberr-again": "ეცადეთ რამდენიმე წუთით დაცდა და ამ გვერდის გადატვირთვა",
-       "dberr-info": "ვერ მოხერხდა ინფორმაციის $1 სერვერთან დაკავშირება",
-       "dberr-info-hidden": "(á\83\9bá\83\9dá\83\9cá\83\90á\83ªá\83\94á\83\9bá\83\97á\83\90 á\83\91á\83\90á\83\96á\83\98á\83¡ á\83¡á\83\94á\83 á\83\95á\83\94á\83 á\83\97á\83\90á\83\9c á\83\93á\83\90á\83\99á\83\90á\83\95á\83¨á\83\98á\83 á\83\94á\83\91á\83\90 á\83¨á\83\94á\83£á\83«á\83\9aá\83\94á\83\91á\83\94á\83\9aá\83\98á\83\90)",
+       "dberr-info": "(მონაცემთა ბაზებთან კავშირი არ არის: $1)",
+       "dberr-info-hidden": "(á\83\9bá\83\9dá\83\9cá\83\90á\83ªá\83\94á\83\9bá\83\97á\83\90 á\83\91á\83\90á\83\96á\83\94á\83\91á\83\97á\83\90á\83\9c á\83\99á\83\90á\83\95á\83¨á\83\98á\83 á\83\98 á\83\90á\83  á\83\90á\83 á\83\98á\83¡)",
        "dberr-usegoogle": "ამ დროს კი  შეგიძლიათ Google-ით ძიება",
        "dberr-outofdate": "გაითვალისწინეთ, რომ თქვენი კონტენტის ინდექსები შეიძლება შეუსაბამო იყოს",
        "dberr-cachederror": "ეს არის მოთხოვნილი გვერდის კეშირებული ვერსია, და შესაძლება მოძველდა.",
        "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-block": "მომხმარებელმა $1 {{GENDER:$2|დაბლოკა}} {{GENDER:$4|$3}} ბლოკირების ვადაა $5 $6",
+       "logentry-suppress-reblock": "მომხმარებელმა $1 {{GENDER:$2|შეცვალა}} ბლოკირების პარამეტრები {{GENDER:$4|$3}}-თვის  ბლოკირების ვადაა $5 $6",
        "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“ გადამისამართებაზე",
        "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": "თქვენ არ გაქვთ ამ ვიკიში ფაილების ატვირთვის უფლება.",
        "log-description-pagelang": "ეს არის გვერდის ენის ცვლილებების ჟურნალი",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ჩართულია)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''გამორთულია''')",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 ბაიტი|$1 ბაიტი}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME-ტიპი",
+       "mediastatistics-table-extensions": "შესაძლო გაფართოებები",
+       "mediastatistics-table-count": "ფაილების რაოდენობა",
+       "mediastatistics-header-unknown": "უცნობი",
+       "mediastatistics-header-audio": "აუდიო",
+       "mediastatistics-header-video": "ვიდეოები",
+       "mediastatistics-header-office": "ოფისი",
+       "mediastatistics-header-text": "ტექსტური",
+       "json-error-syntax": "სინტაქსის შეცდომა",
        "headline-anchor-title": "ბმული ამ სექციაზე",
        "special-characters-group-latin": "ლათინური",
        "special-characters-group-latinextended": "ლათინური გაფართოება",
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 4c4a69c..e06f053 100644 (file)
        "yourtext": "تہ تحریر",
        "storedversion": "ذخیرہ شدہ نظرثانی",
        "yourdiff": "تضادات",
-       "templatesused": "ھیہ صفحا استعمال باک {{PLURAL:$1|سانچہ|سانچہ}}:",
+       "templatesused": "ھیہ صفحہا استعمال باک {{PLURAL:$1|سانچہ|سانچا}}:",
        "templatesusedpreview": " ھیہ پیش منظرا مستعمل {{PLURAL:$1|سانچہ|سانچے}}:",
        "template-protected": "(محفوظ شدہ)",
        "template-semiprotected": "(نیم محفوظ)",
        "enhancedrc-history": "تاریخچہ",
        "recentchanges": "تازہ تبدیلی",
        "recentchanges-legend": "حالیہ تبدیلیان اختیارات",
-       "recentchanges-summary": "ھیہ صفحا کھوار ویکیپیڈیا باک تازہ تریں تبدیلیان مشاہدہ کورے",
+       "recentchanges-summary": "ھیہ صفحا ویکیپیڈیا باک تازہ تریں تبدیلیان لوڑے",
        "recentchanges-feed-description": "کھوارا ترجمہ",
        "recentchanges-label-newpage": "ھیہ ترمیم نوغ صفحہ تخلیق آریر",
        "recentchanges-label-minor": "ھیہ ای معمولی ترمیم شیر",
        "pageinfo-toolboxlink": "معلومات صفحہ",
        "previousdiff": " ← پرانو تدوین",
        "nextdiff": "صفحہو نم:",
-       "file-info-size": "$1 × $2 پکسلز, فل سایز: $3, MIME ٹایپ: $4",
-       "file-nohires": "ھموغاری لوٹ ریزولیوشن دستیاب نیکی.",
+       "file-info-size": "$1 × $2 پکسلز, فل سائز: $3, MIME ٹائپ: $4",
+       "file-nohires": "ھموغاری لوٹ ریزولیوشن موجود نیکی.",
        "svg-long-desc": "SVG فایل, nominally $1 × $2 پکسلز, فایل سایز: $3",
        "show-big-image": "اصل فائل",
        "show-big-image-preview": "ھیہ نمائشو حجم:$1",
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 8ff679e..caf8107 100644 (file)
        "querypage-disabled": "Бұл арнайы бет өнімділік себептері үшін өшірілген",
        "booksources": "Кітап қайнарлары",
        "booksources-search-legend": "Кітап қайнарларын іздеу",
+       "booksources-search": "Іздеу",
        "booksources-text": "Төменде жаңа және қолданған кітаптар сататын тораптарының сілтемелері тізімделген және ізделген кітаптар туралы қосымша ақпарат болуы мүмкін:",
        "specialloguserlabel": "Орындаушы:",
        "speciallogtitlelabel": "Нысана (атауы немесе қатысушы):",
        "import-interwiki-history": "Бұл беттің барлық тарихи нұсқаларын көшіру",
        "import-interwiki-templates": "Кірістірілген барлық үлгілер",
        "import-interwiki-submit": "Сырттан алу",
-       "import-interwiki-namespace": "Беттерді мына есім кеңістігіне апару:",
        "import-upload-filename": "Файл атауы:",
        "import-comment": "Пікірі:",
        "importtext": "Қайнар уикиден [[Special:Export|export utility]]  қолданып файлды сыртқа беріңіз.\nКомьпютеріңізге сақтаңыз да мында жүктеп беріңіз.",
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 cbd155a..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": "ಮೇ",
        "broken-file-category": "ಕಡತ ಕೊಂಡಿಗಳು ಮುರಿದಿರುವ ಪುಟಗಳು",
        "about": "ನಮ್ಮ ಬಗ್ಗೆ",
        "article": "ಲೇಖನ ಪುಟ",
-       "newwindow": "(ಹà³\8aಸ à²\95ಿà²\9fà²\95ಿಯನà³\8dನà³\81 ತೆರೆಯುತ್ತದೆ)",
-       "cancel": "ವà²\9cಾ à²®à²¾à²¡à²¿",
+       "newwindow": "(ಹà³\8aಸ à²\95ಿà²\9fà²\95ಿಯಲà³\8dಲಿ ತೆರೆಯುತ್ತದೆ)",
+       "cancel": "ರದà³\8dದà³\81ಮಾಡà³\81",
        "moredotdotdot": "ಇನ್ನಷ್ಟು...",
        "morenotlisted": "ಈ ಪಟ್ಟಿ ಪೂರ ಇಲ್ಲ.",
        "mypage": "ಪುಟ",
        "searchbutton": "ಹುಡುಕು",
        "go": "ಹೋಗು",
        "searcharticle": "ಹೋಗು",
-       "history": "ಪà³\81à²\9fದ à²\9aರಿತà³\8dರà³\86",
+       "history": "ಪà³\81à²\9fದ à²\87ತಿಹಾಸ",
        "history_short": "ಇತಿಹಾಸ",
        "updatedmarker": "ನನ್ನ ಕೊನೆಯ ವೀಕ್ಷಣೆಯ ನಂತರ ಬದಲಾಗಿರುವವು",
        "printableversion": "ಪ್ರಿಂಟ್ ಆವೃತ್ತಿ",
        "viewhelppage": "ಸಹಾಯ ಪುಟ ತೋರು",
        "categorypage": "ವರ್ಗ ಪುಟ ತೋರು",
        "viewtalkpage": "ಚರ್ಚೆಯನ್ನು ವೀಕ್ಷಿಸಿ",
-       "otherlanguages": "à²\87ತರ à²­à²¾à²·à³\86à²\97ಳà³\81",
+       "otherlanguages": "à²\87ತರ à²­à²¾à²·à³\86à²\97ಳಲà³\8dಲಿ",
        "redirectedfrom": "($1 ಇಂದ ಪುನರ್ನಿರ್ದೇಶಿತ)",
        "redirectpagesub": "ಪುನರ್ನಿರ್ದೇಶನ ಪುಟ",
        "redirectto": "ಪುನರ್ನಿರ್ದೇಶನ ಇದಕ್ಕೆ:",
        "aboutpage": "Project:ನಮ್ಮ ಬಗ್ಗೆ",
        "copyright": "ವಿಶೇಷವಾಗಿ ಹೇಳಲಲ್ಲಿದರೆ ಇದು \"$1\" ಕಾಪಿರೈಟ್ ಅಲ್ಲಿ ಲಭ್ಯ ಉಂಟು",
        "copyrightpage": "{{ns:project}}:ಕೃತಿಸ್ವಾಮ್ಯತೆಗಳು",
-       "currentevents": "ಪ್ರಚಲಿತ",
-       "currentevents-url": "Project:ಪ್ರಚಲಿತ",
+       "currentevents": "ಪ್ರಚಲಿತ ಸಂಗತಿಗಳು",
+       "currentevents-url": "Project:ಪ್ರಚಲಿತ ಸಂಗತಿಗಳು",
        "disclaimers": "ಅಬಾಧ್ಯತೆಗಳು",
        "disclaimerpage": "Project:ಸಾಮಾನ್ಯ ಅಬಾಧ್ಯತೆಗಳು",
        "edithelp": "ಸಂಪಾದನೆಗೆ ಸಹಾಯ",
        "newmessageslinkplural": "{{PLURAL:$1|ಒಂದು ಹೊಸ ಸಂದೇಶ|999=ಹೊಸ ಸಂದೇಶಗಳು}}",
        "newmessagesdifflinkplural": "ಇತ್ತೀಚಿನ {{PLURAL:$1|ಬದಲಾವಣೆ|999=ಬದಲಾವಣೆಗಳು}}",
        "youhavenewmessagesmulti": "$1 ಅಲ್ಲಿ ನಿಮಗೆ ಹೊಸ ಸಂದೇಶಗಳಿವೆ",
-       "editsection": "ಬದಲಾಯಿಸಿ",
+       "editsection": "ಸà²\82ಪಾದಿಸಿ",
        "editold": "ಬದಲಾಯಿಸಿ",
        "viewsourceold": "ಮೂಲವನ್ನು ನೋಡು",
        "editlink": "ಸಂಪಾದಿಸಿ",
        "viewsourcelink": "ಮೂಲವನ್ನು ವೀಕ್ಷಿಸಿ",
-       "editsectionhint": "$1 ವಿಭಾಗ ಸಂಪಾದಿಸಿ",
+       "editsectionhint": "ವಿಭಾಗ ಸಂಪಾದಿಸಿ: $1",
        "toc": "ಪರಿವಿಡಿ",
        "showtoc": "ತೋರಿಸು",
        "hidetoc": "ಅಡಗಿಸು",
        "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": "ವಿವರಗಳನ್ನು ಅಡಗಿಸು",
        "thumbnail_error": "ಮುನ್ನೋಟ ಚಿತ್ರವನ್ನು ಸೃಷ್ಟಿಸುವಲ್ಲಿ ದೋಷ: $1",
        "import": "ಪುಟಗಳನ್ನು ಅಮದು ಮಾಡಿ",
        "import-interwiki-submit": "ಆಮದು",
-       "import-interwiki-namespace": "ಪುಟಗಳನ್ನು ಈ ಪುಟಪ್ರಬೇಧಕ್ಕೆ ವರ್ಗಾಯಿಸು:",
        "import-comment": "ಟಿಪ್ಪಣಿ :",
        "importstart": "ಪುಟಗಳು ಆಮದಾಗುತ್ತಿದೆ...",
        "import-revision-count": "$1 {{PLURAL:$1|ಬದಲಾವಣೆ|ಬದಲಾವಣೆಗಳು}}",
        "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": "ಹೊಸ ವಿಭಾಗವನ್ನು ಪ್ರಾರಂಭಿಸಿ",
        "tooltip-upload": "ಅಪ್ಲೋಡ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸು",
        "tooltip-rollback": "ಕೊನೆ ಸಂಪಾದಕರ ಎಲ್ಲಾ ಸಂಪಾದನೆಗಳನ್ನು ಅಳಿಸುಹಾಕುತ್ತದೆ",
        "tooltip-undo": "\"ವಜಾ ಮಾಡಿ\" ಈ ಸಂಪಾದನೆಯನ್ನು ನಿಷ್ಕ್ರಿಯ ಗೊಳಿಸಿ ಸಂಪಾದನಾ ಪುಟವನ್ನು ಮುನ್ನೋಟದೊಂದಿಗೆ ತೆರೆಯುತ್ತದೆ.\nಇಲ್ಲಿ ಸಾರಾಂಶದಲ್ಲಿ ಕಾರಣವನ್ನು ಸೇರಿಸುವ ಅನುಮತಿ ಇದೆ.",
-       "tooltip-summary": "ಸನà³\8dನ à²\92ಪà³\8dಪಿà²\97à³\86 à²\87ಲà³\8dಲಿ à²¹à²\95ಿ",
+       "tooltip-summary": "à²\9aಿà²\95à³\8dà²\95 à²¸à²¾à²°à²¾à²\82ಶ à²\92à²\82ದನà³\8dನà³\81 à²¸à³\87ರಿಸಿ",
        "anonymous": "{{SITENAME}} ತಾಣದ ಅನಾಮಧೇಯ {{PLURAL:$1|ಬಳಕೆದಾರ|ಬಳಕೆದಾರರು}}",
        "siteuser": "{{SITENAME}} ಬಳಕೆದಾರ $1",
        "othercontribs": "$1 ರ ಕೆಲಸವನ್ನು ಆಧರಿಸಿ.",
index 04ac009..1a7617f 100644 (file)
        "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": "(기록 정보가 제거됨)",
        "logempty": "일치하는 항목이 없습니다.",
        "log-title-wildcard": "다음 글로 시작하는 제목 검색",
        "showhideselectedlogentries": "선택한 기록 항목 보이기/숨기기",
+       "log-edit-tags": "선택한 기록 항목의 태그를 편집",
        "allpages": "모든 문서 목록",
        "nextpage": "다음 문서 ($1)",
        "prevpage": "이전 문서 ($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그리고 당신의 컴퓨터에 저장해 둔 후 여기에 올려주세요.",
        "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-revision-legend": "{{PLURAL:$1|이 판|$1개 판 모두}}에 태그를 추가하거나 제거",
+       "tags-edit-existing-tags": "기존 태그:",
+       "tags-edit-new-tags": "새 태그:",
+       "tags-edit-add": "다음 태그를 추가:",
+       "tags-edit-remove": "다음 태그를 제거:",
+       "tags-edit-remove-all-tags": "(모든 태그를 제거)",
+       "tags-edit-chosen-placeholder": "태그를 선택하세요",
+       "tags-edit-reason": "이유:",
+       "tags-edit-revision-submit": "{{PLURAL:$1|이 판|$1개 판}}에 수정 사항을 적용",
+       "tags-edit-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": "태그 기록",
        "rightsnone": "(없음)",
        "revdelete-summary": "편집 요약",
        "feedback-adding": "문서에 피드백을 올리는 중...",
index 2c3b40c..50bd507 100644 (file)
        "showhideselectedversions": "Сайланнган версияланы кёргюз/джашыр",
        "editundo": "ызына алыу",
        "diff-empty": "(башхалыкъ джокъ)",
+       "diff-multi-sameuser": "(бу къошулуучу этген {{PLURAL:$1|бир аралы версия|$1 аралы версия}} кёргюзюлмегенди)",
        "diff-multi-manyusers": "($2 {{PLURAL:$2|къошулуучудан}} кёб этген {{PLURAL:$1|бир аралыкъ тюрлениу|$1 аралыкъ тюрлениу}} кёргюзюлмегенди)",
        "difference-missing-revision": "Бу тенглешдириу ($1) ючюн {{PLURAL:$2|бир версия|$2 версия}} {{PLURAL:$2|табылмады}}.\n\n\nБу, эскирген джибериу бла кетерилген бетни версияларын тенглешдириуге кёчген сагъатда кёбюсюне болады.\nТолуракъ информация [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} кетериулени журналында] болургъа боллукъду.",
        "searchresults": "Излеуню эсеби",
        "uploadnewversion-linktext": "Бу файлны джангы версиясын джюклеу",
        "shared-repo-from": "$1-дан",
        "shared-repo": "Ортакъ сакълау джер",
+       "upload-disallowed-here": "Бу файлны юсюню джазаргъа болмайды.",
        "filerevert": "$1 файлны эски халына къайтыу",
        "filerevert-legend": "Файлны эски халына къайтар",
        "filerevert-intro": "'''[[Media:$1|$1]]''' медиясыны [$4 $3, $2 замандагъы версиясы]ны ызына къайтарыгъыз.",
        "undelete-show-file-submit": "Хоу",
        "namespace": "Атла алам:",
        "invert": "Сайланнганны айландыр",
+       "tooltip-invert": "Батледе тюрлениулени джашырыр ючюн: сайланнган ат аламда (неда, белгиленнген эсе, байланнган ат аламлада) бу энни салыгъыз",
        "namespace_association": "Байламлы ат алам",
+       "tooltip-namespace_association": "Сайланнган ат алам бла байламлы сюзюу атланы аламын да къошар ючюн бу энни салыгъын",
        "blanknamespace": "(Баш)",
        "contributions": "{{GENDER:$1|Къошулуучуну}} къошуму",
        "contributions-title": "$1 къошулуучуну къошагъы",
        "import-interwiki-history": "Бу бетни бютеу тюрлениу тарихин копия эт",
        "import-interwiki-templates": "Бютеу шаблонланы ичине сал",
        "import-interwiki-submit": "Импорт",
-       "import-interwiki-namespace": "Нюзюр ат алам:",
        "import-upload-filename": "Файлны аты:",
        "import-comment": "Эсгериу:",
        "importtext": "Бетни къайнакъ викиден [[Special:Export|адырны хайырландырыб]] эскпорт этигиз. Файлны дискде сакълагъыз эм былайгъа джюклегиз.",
index ae07379..43e3837 100644 (file)
        "import-interwiki-history": "All de Versione vun dä Sigg heh kopeere",
        "import-interwiki-templates": "All Schablone metnämme",
        "import-interwiki-submit": "Huhlade!",
-       "import-interwiki-namespace": "Dun de Sigge emporteere en dat Appachtemeng:",
-       "import-interwiki-rootpage": "De Aanfangssigg (kann läddesch bliive):",
+       "import-mapping-default": "Aan de schtanndattmähßeje Pläz emmpottehre:",
+       "import-mapping-namespace": "En heh dat Appachtemang emmpotehre:",
+       "import-mapping-subpage": "Als Ongersigge vun heh dä emmpottehre:",
        "import-upload-filename": "Dä Name fun dä Dattei:",
        "import-comment": "Jrond:",
        "importtext": "Dun de Daate met däm „[[Special:Export|Export]]“ vun doh vun enem Wiki Exporteere un - etwa bei Dir om Rechner - avspeichere, un dann heh wider huhlade.",
index 3551085..132fb77 100644 (file)
@@ -14,7 +14,8 @@
                        "The Evil IP address",
                        "Welathêja",
                        "아라",
-                       "Bikarhêner"
+                       "Bikarhêner",
+                       "Uygar"
                ]
        },
        "tog-underline": "Xetekê di bin girêdanê de çêke:",
        "tog-extendwatchlist": "Lîsteya şopandinê berfireh bike ji bo dîtina hemû guherandinan, ne tenê yên nû",
        "tog-usenewrc": "Weşandina zêdetir (JavaScript pêwîst e)",
        "tog-numberheadings": "Sernavan otomatîk bihejmêre",
-       "tog-showtoolbar": "Tiştên guherandinê bibîne (JavaScript bibîne)",
-       "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-showtoolbar": "Çoyê sererastkirinê nîşan bide",
+       "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ên min jêbirin, 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",
        "tog-shownumberswatching": "Nîşan bide, çiqas bikarhêner dişopînin",
        "tog-oldsig": "Pêşdîtina îmzeya heye:",
        "tog-fancysig": "Di îmzeyê de girêdana otomatîk a bikarhêner betal bike",
-       "tog-uselivepreview": "Pêşdîtina \"zindî\" bi kar bîne (JavaScript pêwîst e) (ceribandinî)",
+       "tog-uselivepreview": "Pêşdîtina \"zindî\" bi kar bîne",
        "tog-forceeditsummary": "Hinga kurteyeke vala hate tomarkirin min agahdar bike",
        "tog-watchlisthideown": "Guherandinên min ji lîsteya şopandinê veşêre",
        "tog-watchlisthidebots": "Guherandinên bot'an ji lîsteya şopandinê veşêre",
        "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î",
        "jumpto": "Here cem:",
        "jumptonavigation": "navîgasyon",
        "jumptosearch": "lêgerîn",
-       "view-pool-error": "Bibore, server niha zêde barkirî ne. Gelek bikarhêner niha hewl didin ku vê rûpelê bibînin. Ji kerema xwe kêlîkekê bisekine, berî ku tu dîsa hewl bidî rûpelê bibînî.",
+       "view-pool-error": "Bibore, server niha zêde barkirî ne. Gelek bikarhêner niha hewl didin ku vê rûpelê bibînin. Ji kerema xwe kêlîkekê bisekine, berî ku tu dîsa hewl bidî rûpelê bibînî.\n\n$1",
        "pool-errorunknown": "Çewtiyeke nenas",
+       "poolcounter-usage-error": "Çewtîyê bikaranînê: $1",
        "aboutsite": "Der barê {{SITENAME}} de",
        "aboutpage": "Project:Der barê",
        "copyright": "Naverok di $1 de derbasdar e.",
        "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-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:",
        "createacct-emailoptional": "E-name",
        "createacct-email-ph": "E-nameya xwe binivîse",
        "createacct-another-email-ph": "E-nameya xwe têkeve",
-       "createaccountmail": "Use a temporary random password and send it to the email address specified below",
+       "createaccountmail": "Şîfreyek ji bo ji bo demeke kin bikarbînin û ji navnîşana hatiye diyarkirin re e-nameyek bişînin.",
        "createacct-realname": "Navê te ya rast (Ko tu bixwazi bikeve, pêdivî nîne)",
        "createaccountreason": "Sedem:",
        "createacct-reason": "Sedem",
+       "createacct-reason-ph": "Çima hesabek din çedikîy",
+       "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 çêke",
        "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.",
        "throttled-mailpassword": "Berî {{PLURAL:$1|saetekê|$1 saetan}} şîfreyeke nû hate xwestin. Ji bo şaşbûn bi vê fonksiyonê çênebin, serê her {{PLURAL:$1|saetekê|$1 saetan}} tenê şîfreyeke nû dikare were xwestin.",
        "mailerror": "Şaşbûnek li cem şandina e-nameyekê: $1",
        "acct_creation_throttle_hit": "Bibexşe! Te hesabê bikarhêneriyê $1 vekiriye. Tu êdî nikarî hesabên din vekî.",
-       "emailauthenticated": "Adresa e-nameya te hate naskirin: $1.",
-       "emailnotauthenticated": "Adresa e-nameyan yê te hên nehatîye naskirin. Fonksyonên e-nameyan piştî naskirina te dikarin ji te werin kirin.",
+       "emailauthenticated": "Adresa e-nameya te ji $2 $3ê hate rastandin.",
+       "emailnotauthenticated": "Adresa e-nameya te hêj nehatîye naskirin. Fonksyonên e-nameyan piştî naskirina te dikarin ji te werin kirin.",
        "noemailprefs": "'''Te hên adresa e-nameyan nenivîsandîye''', fonksyonên e-nameyan hên ji te ra ne tên qebûlkirin.",
        "emailconfirmlink": "E-Mail adresê xwe nasbike",
        "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.",
        "createaccount-title": "Çêkirina hesabekî ji {{SITENAME}}",
        "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",
        "blockednoreason": "sedem nehatiye gotin",
        "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",
+       "nosuchsectiontitle": "Beşek wisa tune ye",
        "nosuchsectiontext": "Te dixast beşekê biguherînê yê tune ye.",
        "loginreqtitle": "Têketin pêwîst e",
        "loginreqlink": "têkeve",
        "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",
        "semiprotectedpagewarning": "'''Hişyarî:''' Ev rûpel tê parastin, lewma tenê bikarhênerên tomarkirî dikarin vê biguherînin.\nGuhertina herî dawî bi referansa li jêr hatiye piştrastkirin:",
        "templatesused": "{{PLURAL:$1|Şablona|Şablonên}} ku li ser vê rûpelê {{PLURAL:$1|tê|tên}} bikaranîn:",
        "templatesusedpreview": "{{PLURAL:$1|Şablona|Şablonên}} di vê pêşdîtinê de {{PLURAL:$1|tê|tên}} bikaranîn:",
-       "templatesusedsection": "Şablonên ku di vê parçeyê de tên bikaranîn:",
+       "templatesusedsection": "{{PLURAL:$1|Şablona ku di vê beşê de tê bikaranîn|Şablonên ku di vê beşê de tên bikaranîn}}:",
        "template-protected": "(tê parastin)",
        "template-semiprotected": "(nîv-parastî)",
        "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-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",
        "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-user": "Navê bikarhêner/IP'yê 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": "Erê",
-       "revdelete-radio-unset": "Na",
+       "revdelete-radio-set": "Veşartî",
+       "revdelete-radio-unset": "Xuya",
        "revdelete-suppress": "Sedema jêbirinê ji rêveberan re jî veşêre",
        "revdelete-log": "Sedem",
        "revdel-restore": "xuyakirinê biguherîne",
        "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:",
        "search-external": "Lêgerrîna derveyî",
        "searchdisabled": "<p>Tu dikarî li {{SITENAME}} bi Google an Yahoo! bigere. Têbînî: Dibe ku encamen lêgerîne ne yên herî nû ne.\n</p>",
        "preferences": "Tercîhên min",
-       "mypreferences": "Tercihên min",
+       "mypreferences": "Hevyazên min",
        "prefs-edits": "Hejmarê guherandinan:",
        "prefs-skin": "Pêste",
        "skin-preview": "Pêşdîtin",
        "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:",
        "timezoneregion-indian": "Okyanûsa Hindî",
        "timezoneregion-pacific": "Okyanûsa Mezin",
        "allowemail": "Ji bikarhênerên dî e-nameyan qebûl bike",
-       "prefs-searchoptions": "Tercihên lêgerînê",
+       "prefs-searchoptions": "Lê bigere",
        "prefs-namespaces": "Valahiyên nav",
        "default": "asayî",
        "prefs-files": "Dosya",
        "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",
        "badsig": "Îmzeya ne derbasdar! Li HTML binêre ka sedema şaşbûnê çiye.",
        "badsiglength": "Navê te zêde dirêj e; pêwîst e di bin {{PLURAL:$1|nîşanekê|nîşanan}} de be.",
        "yourgender": "Zayend:",
-       "gender-unknown": "Veşartî",
-       "gender-male": "Nêr",
+       "gender-unknown": "Ez negotin çêtir dibinim",
+       "gender-male": "Ew rûpelên wîkiyê diguherîne",
        "gender-female": "Mê",
        "email": "E-name",
        "prefs-help-realname": "Navê rastî ne pêwîst e. Heke tu navê xwe binivisî, ewê ji bo karê te were bikaranîn.",
        "prefs-signature": "Îmze",
        "prefs-dateformat": "Formata dîrokê",
        "prefs-timeoffset": "Cudahiya demê",
-       "prefs-advancedediting": "Vebijarkên berfireh",
+       "prefs-advancedediting": "Vebijarkên gelemperî",
        "prefs-editor": "Edîtor",
        "prefs-preview": "Pêşdîtin",
        "prefs-advancedrc": "Vebijarkên berfireh",
        "group-sysop": "Rêveber",
        "group-bureaucrat": "Burokrat",
        "group-all": "(hemû)",
-       "group-user-member": "Bikarhêner",
+       "group-user-member": "{{GENDER:$1|bikarhêner}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|rêveber}}",
        "group-bureaucrat-member": "{{GENDER:$1|burokrat}}",
        "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î",
        "number_of_watching_users_pageview": "[{{PLURAL:$1|bikarhênerek|$1 bikarhêner}} vê rûpelê {{PLURAL:$1|dişopîne|dişopînin}}.]",
        "rc_categories_any": "Hîç",
        "newsectionsummary": "/* $1 */ beşeke nû",
-       "rc-enhanced-expand": "Hûragahiyan nîşan bide (JavaScript pêdivî ye)",
+       "rc-enhanced-expand": "Hûragahiyan nîşan bide",
        "rc-enhanced-hide": "Kitûmatan veşêre",
        "recentchangeslinked": "Guherandinên têkilîdar",
        "recentchangeslinked-feed": "Guherandinên peywend",
        "uploadbtn": "Wêneyekî bar bike",
        "reuploaddesc": "Barkirinê biskîne û dîsa here rûpela barkirinê.",
        "uploadnologin": "Xwe tomar nekir",
-       "uploadnologintext": "Ji bo barkirina wêneyan divê ku tu [[Special:UserLogin|têkevî]].",
+       "uploadnologintext": "Ji kerema xwe re ji bo barkirina dosyeyan $1 dake.",
        "uploaderror": "Çewtiya barkirinê",
        "upload-recreate-warning": "'''Agahdarî: Peleke bi vî navî hatiye jêbirin an jî raguhestin.'''",
        "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-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",
        "filedelete-reason-otherlist": "Sedemên din",
        "filedelete-reason-dropdown": "*Sedemên jêbirina wêneyan\n** wêneyekî nebaş e\n** kopiyek e",
        "filedelete-edit-reasonlist": "Sedemên jêbirinê biguherîne",
-       "mimesearch": "Gerrîna li MIME",
+       "mimesearch": "Lêgerîna li MIME",
        "download": "daxistin",
        "unwatchedpages": "Rûpelên nayên şopandin",
        "listredirects": "Lîsteya beralîkirinan",
        "mostlinked": "Rûpelên bi bêhtirîn girêdan",
        "mostlinkedcategories": "Kategoriyên bi bêhtirîn girêdan",
        "mostcategories": "Rûpelên bi pir kategorî",
+       "mostinterwikis": "Rûpelên bi bêhtirîn girêdanên înterwîkiyê",
        "prefixindex": "Hemû rûpelên bi pêşbendik",
        "shortpages": "Rûpelên kurt",
        "longpages": "Rûpelên dirêj",
        "deadendpages": "Rûpelên bê dergeh",
        "protectedpages": "Rûpelên parastî",
+       "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-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",
        "all-logs-page": "Hemû têketin",
        "alllogstext": "Hemû têketinên {{SITENAME}} li jêr tên nîşandan.\nTu dikarî ji xwe re têketinekê hilbijêrî, navê bikarhêneriyê an navê rûpelekê binivîse û agahiyan li ser wê bibîne.",
        "logempty": "Tiştek di vir de nîne.",
-       "log-title-wildcard": "Li sernavan bigere, yê bi vê destpêdikin",
+       "log-title-wildcard": "Li sernavên bi vê dest pê dikin bigere",
        "allpages": "Hemû rûpel",
        "nextpage": "Rûpela pêşî ($1)",
        "prevpage": "Rûpelê berî vê ($1)",
        "contributions-title": "Beşdariyên ji bo $1",
        "mycontris": "Beşdariyên min",
        "contribsub2": "Ji bo $1 ($2)",
-       "uctop": "(ser)",
+       "uctop": "(rojane)",
        "month": "Ji meha (û zûtir):",
        "year": "Ji sala (û zûtir):",
        "sp-contributions-newbies": "Tenê beşdariyên bikarhênerên nû nîşan bide",
        "unblockip": "IP'yekê dîsa veke",
        "unblockiptext": "Nivîsara jêr bikarwîne ji bo qebûlkirina nivîsandinê bikarhênerekî ya IP'yeka berê astengkirî.",
        "ipusubmit": "Vê astengkirinê rake",
-       "unblocked": "[[User:$1|$1]] niha vê astengkirinê ye",
+       "unblocked": "[[User:$1|$1]] hatiye astengkirin.",
        "unblocked-range": "$1 hat astengkirin.",
        "unblocked-id": "$1 dîsa vê astengkirinê ye",
        "blocklist": "Bikarhênerên astengkirî",
        "importlogpage": "Têketina tevlîkirinê",
        "javascripttest": "JavaScript tê testkirin",
        "tooltip-pt-userpage": "Rûpela min",
-       "tooltip-pt-anonuserpage": "The user page for the ip you",
+       "tooltip-pt-anonuserpage": "Rûpela bikarhênerê ji bo navnîşana ÎP ku tu sererast dikî wekî",
        "tooltip-pt-mytalk": "Gotûbêja min",
        "tooltip-pt-preferences": "Tercîhên min",
        "tooltip-pt-watchlist": "The list of pages you",
        "tooltip-feed-atom": "Atom feed'ên ji bo vê rûpelê",
        "tooltip-t-contributions": "Lîsteya beşdariyên bikarhêner bibîne",
        "tooltip-t-emailuser": "Jê re name bişîne",
+       "tooltip-t-info": "Bêhtir agahî di derbarê vê rûpelê de",
        "tooltip-t-upload": "Wêneyan bar bike",
        "tooltip-t-specialpages": "Lîsteya hemû rûpelên taybetî",
        "tooltip-t-print": "Versiyona çapkirinê ya vê rûpelê",
        "spamprotectiontitle": "Parastina spam",
        "spamprotectiontext": "Rûpela ku tu dixwazî tomar bikî ji ber parastina spamê hate astengkirin.\nJi ber ku girêdaneke derve di wê rûpelê de heye ev pirsgirêk pêk hat.",
        "spamprotectionmatch": "Ev nivîsa parastinê spam vêxist: $1",
-       "pageinfo-header-edits": "Guherandin",
+       "pageinfo-header-basic": "Agahiyên sereke",
+       "pageinfo-header-edits": "Dîrokê biguherîne",
        "pageinfo-header-restrictions": "Parastina rûpelê",
+       "pageinfo-header-properties": "Taybetmendiyên rûpelê",
        "pageinfo-watchers": "Hejmara kesên dişopînin",
        "pageinfo-subpages-name": "Binrûpelên vê rûpelê",
        "pageinfo-edits": "Hejmara guherandinan",
        "pageinfo-redirectsto-info": "agahî",
        "pageinfo-contentpage-yes": "Erê",
        "pageinfo-protect-cascading-yes": "Erê",
+       "pageinfo-category-info": "Agahiyên kategoriyê",
        "pageinfo-category-pages": "hejmara rûpelan",
        "pageinfo-category-subcats": "Hejmara binkategoriyan",
        "markaspatrolleddiff": "Wek serrastkirî nîşan bide",
        "file-info-size": "$1 × $2 pixel, mezinbûnê data: $3, MIME-typ: $4",
        "file-nohires": "Versyonekî jê mezintir tune.",
        "svg-long-desc": "Daneya SVG, mezinbûna rast: $1 × $2 pixel; mezinbûna daneyê: $3",
-       "show-big-image": "Mezînbûn",
+       "show-big-image": "Dosyeya orjînal",
        "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.",
        "confirmemail_loggedin": "Navnîşana te ya E-Nameyê hate qebûlkirin.",
        "confirmemail_body": "Kesek, dibê tu, bi IP adressê $1, xwe li {{SITENAME}} bi vê navnîşana e-name tomar kir (\"$2\") .\n\nEger ev rast qeydkirinê te ye û di dixwazî bikaranîna e-nama ji te ra çêbibe li {{SITENAME}}, li vê lînkê bitikîne:\n\n$3\n\nLê eger ev *ne* tu bû, li lînkê netikîne. Ev e-nameya di rojê $4 da netê qebûlkirin.",
        "scarytranscludefailed": "[Anîna şablona $1 biserneket; biborîne]",
-       "scarytranscludetoolong": "[URL zêde dirêj e; bibore]",
+       "scarytranscludetoolong": "[URL zêde dirêj e]",
        "deletedwhileediting": "'''Hişyarî:''' Piştî te dest bi guherandinê kir ev rûpel hate jêbirin!",
        "confirmrecreate": "Piştî te dest bi guherandinê kir, bikarhêner [[User:$1|$1]] ([[User talk:$1|gotûbêj]]) ev rûpel jê bir. Sedema jêbirinê ev bû:\n: ''$2''\nJi kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
        "recreate": "Dîsa çêke",
        "table_pager_first": "Rûpela pêşîn",
        "table_pager_last": "Rûpela dawî",
        "table_pager_limit_submit": "Here",
-       "autosumm-blank": "Rûpel hate 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\"",
        "version-specialpages": "Rûpelên taybet",
        "version-other": "yên din",
        "version-version": "($1)",
-       "version-license": "Destûr",
+       "version-license": "Lîsansa MediaWiki",
        "version-software-product": "Berhem",
        "version-software-version": "Guherto",
        "version-entrypoints-header-url": "URL",
        "specialpages": "Rûpelên taybet",
        "specialpages-note": "* Rûpelên taybetî ji her kesan ra\n* <strong class=\"mw-specialpagerestricted\">Rûpelên taybetî ji bikarhêneran bi mafên zêdetir ra</strong>",
        "specialpages-group-other": "Rûpelên taybetî yên din",
-       "specialpages-group-login": "Têkeve",
+       "specialpages-group-login": "Têkeve / hesabekî nû çêke",
        "specialpages-group-changes": "Guherandinên dawî û têketin",
        "specialpages-group-media": "Nameyên medyayan û barkirinan",
        "specialpages-group-users": "Bikarhêner û maf",
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 77734a2..ed289f8 100644 (file)
@@ -29,7 +29,7 @@
        "tog-hideminor": "Celare recensiones minores in indice nuper mutatorum",
        "tog-hidepatrolled": "Redactiones censae inter nuper mutatas celandae",
        "tog-newpageshidepatrolled": "Paginae censae inter nouissime creatas celandae",
-       "tog-extendwatchlist": "Indicem paginarum obseruandarum cunctas mutatas praeter nouissimas includere decet",
+       "tog-extendwatchlist": "Extendere indicem paginarum observatarum ut omnes emendationes monstrentur, non solum emendationes recentissimae",
        "tog-usenewrc": "Indice nuper mutatarum excelsa uti",
        "tog-numberheadings": "Subtituli numeris adornandi",
        "tog-showtoolbar": "Affigere trabem redigentem",
        "actions": "Actiones",
        "namespaces": "Spatia nominalia",
        "variants": "Variantes",
+       "navigation-heading": "Tabula navigationis",
        "errorpagetitle": "Erratum",
        "returnto": "Redire ad $1.",
        "tagline": "E {{grammar:ablative|{{SITENAME}}}}",
        "mimesearch": "Quaerere per MIME",
        "mimetype": "Typus MIME:",
        "download": "depromere",
-       "unwatchedpages": "Paginae incustoditae",
+       "unwatchedpages": "Paginae non observatae",
        "listredirects": "Redirectiones",
        "unusedtemplates": "Formulae non in usu",
        "unusedtemplateswlh": "nexus alii",
        "import": "Paginas importare",
        "importinterwiki": "Adportatio transvici",
        "import-interwiki-submit": "Importare",
-       "import-interwiki-namespace": "Spatium nominale destinatum:",
        "import-upload-filename": "Nomen fasciculi:",
        "import-comment": "Sententia:",
        "importstart": "Adportare paginas...",
        "tooltip-pt-mycontris": "Index conlationum tuarum",
        "tooltip-pt-login": "Te conventum aperire hortamur, non autem requisitum",
        "tooltip-pt-logout": "Conventum concludere",
+       "tooltip-pt-createaccount": "Hortamur ut conventum crees, sed non est necesse",
        "tooltip-ca-talk": "Disputatio de hac pagina",
        "tooltip-ca-edit": "Hanc paginam recensere potes. Quaesumus praevisum inspice antequam servas.",
        "tooltip-ca-addsection": "Novam partem creare",
        "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 5b7c081..543e8ef 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:",
        "import-interwiki-history": "Importéier all d'Versioune vun dëser Säit",
        "import-interwiki-templates": "Mat alle Schablounen",
        "import-interwiki-submit": "Import",
-       "import-interwiki-namespace": "Zil-Nummraum:",
-       "import-interwiki-rootpage": "Zil-Stamm-Säit (fakultativ):",
        "import-upload-filename": "Numm vum Fichier:",
        "import-comment": "Bemierkung:",
        "importtext": "Exportéiert de Fichier w.e.g. vun der Source-Wiki mat der [[Special:Export|Export-Funktioun]].\nSpäichert en op Ärem Computer of a luet en hei nees erop.",
        "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",
        "special-characters-group-arabic": "Arabesch",
        "special-characters-group-arabicextended": "Arabesch, erweidert",
        "special-characters-group-persian": "Persesch",
-       "special-characters-group-hebrew": "Hebräisch",
+       "special-characters-group-hebrew": "Hebräesch",
        "special-characters-group-bangla": "Bangalesch",
        "special-characters-group-tamil": "Tamilesch",
        "special-characters-group-telugu": "Telugu",
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 e2cb656..66a5e66 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 f552593..3d7cb68 100644 (file)
        "import-interwiki-history": "Kopijuoti visas istorijos versijas šiam puslapiui",
        "import-interwiki-templates": "Įtraukti visus šablonus",
        "import-interwiki-submit": "Importuoti",
-       "import-interwiki-namespace": "Paskirties vardų sritis:",
-       "import-interwiki-rootpage": "Paskirties namų puslapis (pasirinktinai):",
        "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.",
index cafbea4..69e59e3 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",
        "thu": "Ce",
        "fri": "Pk",
        "sat": "Se",
-       "january": "Janvāris",
-       "february": "Februāris",
-       "march": "Marts",
-       "april": "Aprīlis",
-       "may_long": "Maijs",
-       "june": "Jūnijs",
-       "july": "Jūlijs",
-       "august": "Augusts",
-       "september": "Septembris",
-       "october": "Oktobris",
-       "november": "Novembris",
-       "december": "Decembris",
+       "january": "janvārī,",
+       "february": "februārī,",
+       "march": "martā,",
+       "april": "aprīlī,",
+       "may_long": "maijā,",
+       "june": "jūnijā,",
+       "july": "jūlijā,",
+       "august": "augustā,",
+       "september": "septembrī,",
+       "october": "oktobrī,",
+       "november": "novembrī,",
+       "december": "decembrī,",
        "january-gen": "Janvāra",
        "february-gen": "Februāra",
        "march-gen": "Marta",
        "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",
        "querypage-disabled": "Šī īpašā lapā ir atspējota veiktspējas iemeslu dēļ.",
        "booksources": "Grāmatu avoti",
        "booksources-search-legend": "Meklēt grāmatu avotus",
+       "booksources-search": "Meklēt",
        "specialloguserlabel": "Izpildītājs:",
        "speciallogtitlelabel": "Mērķis (nosaukums vai lietotājs):",
        "log": "Reģistri",
        "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-interwiki-namespace": "Mērķa vārdtelpa:",
        "import-upload-filename": "Faila nosaukums:",
        "import-comment": "Komentārs:",
        "importstart": "Importē lapas...",
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 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 f02af70..0072654 100644 (file)
        "import-interwiki-history": "Handika ny santiônan'ny tantaran'ity pejy ity",
        "import-interwiki-templates": "Ataovy ao ny endrika rehetra",
        "import-interwiki-submit": "Hampiditra",
-       "import-interwiki-namespace": "Anaran-tsehatra tanjona :",
-       "import-interwiki-rootpage": "Foto-pejy tanjona (azo tsy fenoina):",
        "import-upload-filename": "Anaran-drakitra :",
        "import-comment": "Resaka :",
        "importstart": "Am-pampidirana ny pejy…",
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 3179cbe..e02ba2e 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Податоците овде во моментов нема да се подновуваат.",
        "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": "Извезете ја податотеката од изворното вики користејќи ја [[Special:Export|алатката за извоз]].\nЗачувајте ја на вашиот сметач и подигнете ја овде.",
index be60e36..9c892db 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 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 3c55d64..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).",
        "currentrev": "Reviżjoni kurrenti",
        "currentrev-asof": "Reviżjoni kurrenti ta' $1",
        "revisionasof": "Reviżjoni ta' $1",
-       "revision-info": "Reviżjoni ta' $1 minn $2",
+       "revision-info": "Reviżjoni ta' $1 minn {{GENDER:$6|$2}}$7",
        "previousrevision": "←Reviżjoni eqdem",
        "nextrevision": "Reviżjoni iġded→",
        "currentrevisionlink": "Reviżjoni kurrenti",
        "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-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\"",
        "shown-title": "Uri {{PLURAL:$1|riżultat|$1 riżultati}} kull paġna",
        "viewprevnext": "Ara ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Hemm paġna bl-isem ta' \"[[:$1]]\" fuq din il-wiki'''",
-       "searchmenu-new": "'''Oħloq il-paġna \"[[:$1]]\" fuq din il-wiki!'''",
+       "searchmenu-new": "<strong>Oħloq il-paġna \"[[:$1]]\" fuq din il-wiki!</strong> \n{{PLURAL:$2|0=|Ara wkoll l-paġna li sibt bit-tfittxija tiegħek.|Ara wkoll ir-riżultati li sibt.}}",
        "searchprofile-articles": "Paġni ta' kontenut",
        "searchprofile-images": "Multimedja",
        "searchprofile-everything": "Kollox",
        "searchrelated": "relatati",
        "searchall": "kollha",
        "showingresults": "Hawn taħt ġie inkluż massimu ta' {{PLURAL:$1|riżultat '''1''' li jibda|'''$1''' riżultat li jibdew}} bin-numru '''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Riżultat <strong>$1</strong> ta' <strong>$3</strong>|Riżultati <strong>$1 - $2</strong> ta' <strong>$3</strong>}}",
        "search-nonefound": "It-tfittxija ma tat l-ebda riżultat.",
        "powersearch-legend": "Tfittxija avvanzata",
        "powersearch-ns": "Fittex fl-ispazju tal-isem:",
        "action-siteadmin": "timblokka jew tiżblokka d-databażi",
        "action-sendemail": "ibgħat l-ittri-e",
        "nchanges": "{{PLURAL:$1|modifika $1 |$1 modifiki}}",
-       "recentchanges": "Tibdil riċenti",
+       "enhancedrc-history": "kronoloġija",
+       "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.",
        "recentchanges-label-bot": "Din il-modifika ġiet effettwata minn bot",
        "recentchanges-label-unpatrolled": "Din il-modifika għadha ma ġietx verifikata",
        "recentchanges-label-plusminus": "Id-daqs tal-paġna nbidel b'dan in-numru ta' bytes",
+       "recentchanges-legend-heading": "'''Leġenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ara wkoll il-[[Special:NewPages|lista tal-paġni l-ġodda]])",
        "rcnotefrom": "Ħawn taħt jinsabu l-modifiki minn '''$2''' (sa '''$1''').",
        "rclistfrom": "Uri l-modifiki ġodda li jibdew minn $3 $2",
        "rcshowhideminor": "$1 modifiki żgħar",
        "rcshowhideminor-show": "Uri",
+       "rcshowhideminor-hide": "Aħbi",
        "rcshowhidebots": "$1 bot",
        "rcshowhidebots-show": "Uri",
-       "rcshowhideliu": "Utenti reġistrati: $1",
+       "rcshowhidebots-hide": "Aħbi",
+       "rcshowhideliu": "$1 utenti reġistrati",
        "rcshowhideliu-show": "Uri",
+       "rcshowhideliu-hide": "Aħbi",
        "rcshowhideanons": "Utenti anonimi: $1",
        "rcshowhideanons-show": "Uri",
+       "rcshowhideanons-hide": "Aħbi",
        "rcshowhidepatr": "$1 modifiki kontrollati",
        "rcshowhidepatr-show": "Uri",
        "rcshowhidemine": "$1 modifiki tiegħi",
        "rcshowhidemine-show": "Uri",
+       "rcshowhidemine-hide": "Aħbi",
        "rclinks": "Uri l-aħħar $1 modifiki fl-aħħar $2 ġranet<br />$3",
        "diff": "diff",
        "hist": "kron",
        "delete-warning-toobig": "Din il-paġna għandha kronoloġija ta' modifikar kbira, l-fuq minn $1 {{PLURAL:$1|reviżjoni|reviżjonijiet}}.\nTħassara tista' toħloq problema ta' funżjoni fid-database ta' {{SITENAME}}; moħħok hemm.",
        "rollback": "Ħassar il-modifiki",
        "rollbacklink": "rollback",
+       "rollbacklinkcount": "Erġa' lura $1 {{PLURAL:$1|modifika|modifiki}}",
        "rollbackfailed": "Rollback ma ħadmitx",
        "cantrollback": "Impossibli tħassar il-modifiki; l-utent li wettaqhom huwa l-unika li għamel kontributi lil din il-paġna.",
        "alreadyrolled": "Mhuwiex possibbli li tneħħi l-modifiki ta' [[User:$2|$2]] ([[User talk:$2|diskussjoni]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) fil-paġna [[:$1]]; utent ieħor diġà immodifika din il-paġna jew inkella reġġa' lura.\n\nL-iktar modifika riċenti fuq dil-paġna saret minn [[User:$3|$3]] ([[User talk:$3|diskussjoni]]).",
        "import-interwiki-history": "Kopja l-verżjonijiet tal-kronoloġija kollha għal din il-paġna",
        "import-interwiki-templates": "Inkludi l-mudelli kollha",
        "import-interwiki-submit": "Importa",
-       "import-interwiki-namespace": "Ittrasferixxi l-paġni fl-ispazju tal-isem:",
        "import-upload-filename": "Isem tal-fajl:",
        "import-comment": "Kumment:",
        "importtext": "Jekk jogħġbok esporta l-fajl mis-sit wiki tal-oriġini bil-funzjoni [[Special:Export|funzjoni ta' esportazzjoni]], salvah fuq id-diska tiegħek u imbagħad tellgħu hawn.",
        "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-ca-talk": "Diskussjoni dwar il-kontenut tal-paġna",
+       "tooltip-pt-createaccount": "Nagħtuk parir toħloq kont u tidħol fih; però dan mhux obligatorju.",
+       "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",
        "spam_reverting": "Erġa' lura għall-aħħar verżjoni li m'għandiex link għal $1",
        "spam_blanking": "Paġna svojtjata, kull verżjoni kellu link għal $1",
        "spam_deleting": "Paġna mħassra, ir-reviżjonijiet kollha kellhom ħoloq lejn $1",
+       "simpleantispam-label": "Konroll anti-spam.\n<strong>TIMLIHIEX</strong> din!",
        "pageinfo-title": "Informazzjoni għal \"$1\"",
        "pageinfo-not-current": "Jiddispjaċina, imma huwa impossibbli li tingħata informazzjoni fuq reviżjonijiet qodma.",
        "pageinfo-header-basic": "Informazzjoni bażika",
        "file-info-size-pages": "$1 × $2 pixels, daqs tal-fajl: $3, tip MIME: $4, $5 {{PLURAL:$5|paġna|paġni}}",
        "file-nohires": "Mhux disponibli verżjonijiet b'risoluzzjoni akbar.",
        "svg-long-desc": "Fajl fil-format SVG, dimensjoni nominali $1 × $2 pixel, dimensjoni tal-fajl: $3",
-       "show-big-image": "Verżjoni b'risoluzzjoni sħiħa",
+       "show-big-image": "Fajl oriġinali",
        "show-big-image-preview": "Daqs tad-dehra proviżorja: $1.",
        "show-big-image-other": "{{PLURAL:$2|Riżoluzzjoni|Riżoluzzjonijiet}} oħra: $1",
        "show-big-image-size": "$1 × $2 pixels",
        "tags": "Tikketti ta' modifika validi",
        "tag-filter": "Iffilitra skont it-[[Special:Tags|tikketta]]:",
        "tag-filter-submit": "Filtru",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
        "tags-title": "Tikketti",
        "tags-intro": "Din il-paġna telenka t-tikketti li s-softwer jista' jassoċja ma' modifika u t-tifsira tagħhom.",
        "tags-tag": "Isem tat-tikketta",
        "htmlform-selectorother-other": "Oħrajn",
        "sqlite-has-fts": "$1 bil-possibilità ta' tfittxija kompluta fit-test",
        "sqlite-no-fts": "$1 mingħajr il-possibilità ta' tfittxija kompluta fit-test",
-       "logentry-delete-delete": "$1 ħassar il-paġna $3",
+       "logentry-delete-delete": "$1 {{GENDER:$2|ħassar|ħassret}} il-paġna $3",
        "logentry-delete-restore": "$1 reġġa' lura l-paġna $3",
        "logentry-delete-event": "$1 biddel il-viżibilità ta' {{PLURAL:$5|azzjoni tar-reġistru|$5 azzjonijiet tar-reġistru}} ta' $3: $4",
        "revdelete-content-hid": "kontenut moħbi",
        "revdelete-uname-unhid": "isem tal-utent muri mill-ġdid",
        "revdelete-restricted": "limiti applikati 'l amministraturi",
        "revdelete-unrestricted": "neħħi l-limiti 'l amministraturi",
-       "logentry-move-move": "$1 mexxa l-paġna $3 għal $4",
+       "logentry-move-move": "$1 {{GENDER:$2|mexxa l|mexxiet il}}-paġna $3 għal $4",
        "logentry-move-move-noredirect": "$1 mexxa l-paġna $3 għal $4 mingħajr ma ħalla rindirizz",
        "logentry-move-move_redir": "$1 mexxa l-paġna $3 għal $4 fuq rindrizz",
        "logentry-move-move_redir-noredirect": "$1 mexxa l-paġna $3 għal $4 fuq rindirizz mingħajr ma ħalla rindirizz",
        "logentry-newusers-newusers": "Il-kont $1 ġie maħluq",
-       "logentry-newusers-create": "Il-kont $1 ġie maħluq",
+       "logentry-newusers-create": "Inħoloq il-kont $1",
        "logentry-newusers-create2": "Il-kont $3 ġie maħluq minn $1",
        "logentry-newusers-autocreate": "Il-kont $1 ġie maħluq awtomatikament",
        "logentry-rights-rights": "$1 {{GENDER:$2|biddel|biddlet}} is-sħubija ta' $3 minn $4 għal $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|biddel|biddlet}} is-sħubija fil-gruppi ta' $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|ġie|ġiet}} awtomatikament {{GENDER:$2|promoss|promossa}} minn $4 għal $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|tella'|tellgħet}} $3",
        "rightsnone": "(xejn)",
        "revdelete-summary": "Taqsira tal-modifika",
        "feedback-bugcheck": "Tajjeb ħafna! Ivverifika li mhux diġà fost id-[$1 difetti magħrufa].",
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 696438b..291d243 100644 (file)
        "import-interwiki-history": "Copia tutt' 'a storia d' 'e verziune 'e sta paggena",
        "import-interwiki-templates": "Include tutt' 'e template",
        "import-interwiki-submit": "Mpurta",
-       "import-interwiki-namespace": "Namespace 'e destinazione:",
-       "import-interwiki-rootpage": "Paggena princepale 'e destinazione (opzionale):",
+       "import-mapping-default": "Importa a pizze prescigliute",
+       "import-mapping-namespace": "Importa a nu namespace:",
+       "import-mapping-subpage": "Importa comme fossero subpaggene d' 'a paggena ccà:",
        "import-upload-filename": "Nomme d' 'o file",
        "import-comment": "Commento:",
        "importtext": "Pe' piacere spurtate 'o file d' 'a wiki surgente ausanno l'[[Special:Export|utilità 'e sportazione]].\nScarrecatevella dint' 'o computer d' 'o vuosto e carrecate n'ata vota ccà.",
index 2e761fc..98f487f 100644 (file)
        "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)",
        "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",
        "import-interwiki-history": "Kopier all historikk for denne siden",
        "import-interwiki-templates": "Inkluder alle maler",
        "import-interwiki-submit": "Importer",
-       "import-interwiki-namespace": "Målnavnerom:",
-       "import-interwiki-rootpage": "Destinasjonens grunnside (valgfri):",
        "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.",
        "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",
index 640e2c2..721933a 100644 (file)
        "preview": "Naokieken",
        "showpreview": "Bewarking naokieken",
        "showdiff": "Verschil bekieken",
-       "anoneditwarning": "'''Waorschuwing:''' je bin niet an-emeld.\nJoew IP-adres zal op-esleugen wörden a'j wiezigingen op disse zied anbrengen.",
+       "anoneditwarning": "<strong>Waorschuwing:</strong> je bin niet an-emeld.\nJoew IP-adres zal op-esleugen wörden a'j wiezigingen op disse zied anbrengen. A'j je eigen <strong>[$1 anmelden]</strong> of <strong>[$2 inschrieven]</strong> dan koemen joew bewarkingen onder joew gebrukersnaam te staon, samen mit aandere veurdelen.",
        "anonpreviewwarning": "''Je bin niet an-emeld.''\n''Deur de bewarking op te slaon wörden joew IP-adres op-esleugen in de ziedgeschiedenisse.''",
        "missingsummary": "'''Herinnering:''' je hebben gien samenvatting op-egeven veur de bewarking. A'j noen weer op ''Opslaon'' klikken wörden de bewarking zonder samenvatting op-esleugen.",
        "missingcommenttext": "Plaots joew opmarking hieronder.",
        "showhideselectedversions": "Ekeuzen versies bekieken/verbargen",
        "editundo": "weerummedreien",
        "diff-empty": "(Gien verschil)",
+       "diff-multi-sameuser": "({{PLURAL:$1|n Tussenliggende versie|$1 tussenliggende versies}} deur de zelfde gebruker is verbörgen)",
        "diff-multi-manyusers": "($1 tussenliggende {{PLURAL:$1|versie|versies}} deur meer as $2 {{PLURAL:$2|gebruker|gebrukers}} niet weeregeven)",
        "difference-missing-revision": "{{PLURAL:$2|Eén versie|$2 versies}} van disse verschillen ($1) {{PLURAL:$2|is|bin}} niet evunnen.\n\nDit kömp meestentieds deur t volgen van n verouwerde verwiezing naor n zied die vortedaon is.\nWaorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].",
        "searchresults": "Zeukresultaoten",
        "searchrelated": "verwaant",
        "searchall": "alles",
        "showingresults": "Hieronder {{PLURAL:$1|steet '''1''' resultaot|staon '''$1''' resultaoten}}  <b>$1</b> vanaof nummer <b>$2</b>.",
+       "search-showingresults": "{{PLURAL:$4|Resultaot <strong>$1</strong> van <strong>$2</strong>|Resultaoten <strong>$1 - $2</strong> van <strong>$3</strong>}}",
        "search-nonefound": "Der bin gien resultaoten veur de zeukopdrachte.",
        "powersearch-legend": "Uutgebreid zeuken",
        "powersearch-ns": "Zeuken in naamruumten:",
        "recentchanges-label-bot": "Disse bewarking is uutevoerd deur n bot",
        "recentchanges-label-unpatrolled": "Disse bewarking is nog niet nao-ekeken",
        "recentchanges-label-plusminus": "Disse ziedgrootte is mit dit antal bytes ewiezigd",
+       "recentchanges-legend-heading": "'''Legenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (zie oek de [[Special:NewPages|lieste mit nieje ziejen]])",
        "rcnotefrom": "Dit bin de wiezigingen sinds <strong>$2</strong> (maximum van <strong>$1</strong> wiezigingen).",
        "rclistfrom": "Bekiek wiezigingen vanaof $3 $2",
        "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",
        "querypage-disabled": "Disse spesiale zied is uutezet um prestasieredens.",
        "booksources": "Boekinformasie",
        "booksources-search-legend": "Zeuk informasie over n boek",
+       "booksources-search": "Zeuken",
        "booksources-text": "Hieronder steet n lieste mit verwiezingen naor aandere websteeën die nieje of wat ouwere boeken verkopen, en daor hebben ze warschienlik meer informasie over t boek da'j zeuken:",
        "booksources-invalid-isbn": "De op-egeven ISBN klop niet; kiek effen nao o'j gien fout emaakt hebben bie de invoer.",
        "specialloguserlabel": "Uutvoerende gebruker:",
        "import-interwiki-history": "Kopieer de hele geschiedenisse veur disse zied",
        "import-interwiki-templates": "Alle mallen opnemen",
        "import-interwiki-submit": "Invoeren",
-       "import-interwiki-namespace": "Doelnaamruumte:",
-       "import-interwiki-rootpage": "Baosiszied veur doel (opsioneel):",
        "import-upload-filename": "Bestaandsnaam:",
        "import-comment": "Opmarkingen:",
        "importtext": "Gebruuk de [[Special:Export|uutvoerfunksie]] in de wiki waor de informasie vandaon kömp.\nSlao t op joew eigen systeem op, en stuur t daornao hier op.",
        "tooltip-pt-mycontris": "Liest van oew biejdraegen",
        "tooltip-pt-login": "Iej wördt van harte oetneugd um oe an te melden as gebroeker, mer t is nich verplicht",
        "tooltip-pt-logout": "Ofmaelden",
+       "tooltip-pt-createaccount": "Schrief je eigen veural in en meld je an, mer t is niet verplicht.",
        "tooltip-ca-talk": "Loat n oaverlegtekst oaver disse ziede zeen",
        "tooltip-ca-edit": "Bewaerk disse ziede",
        "tooltip-ca-addsection": "Niej oonderwaerp tovogen",
        "logentry-rights-rights": "$1 {{GENDER:$2|hef}} groepslidmaotschap veur $3 ewiezigd van $4 naor $5",
        "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}}",
        "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 3d6735d..3020f99 100644 (file)
        "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)",
        "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",
        "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",
        "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",
        "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)",
        "import-interwiki-history": "Volledige geschiedenis van deze pagina ook kopiëren",
        "import-interwiki-templates": "Alle sjablonen opnemen",
        "import-interwiki-submit": "Importeren",
-       "import-interwiki-namespace": "Doelnaamruimte:",
-       "import-interwiki-rootpage": "Basispagina voor doel (optioneel):",
+       "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-already-exists": "Het label \"$1\" bestaat al.",
        "tags-delete-title": "Label verwijderen",
        "tags-delete-reason": "Reden:",
+       "tags-delete-submit": "Deze tag onomkeerbaar verwijderen",
        "tags-delete-not-found": "Het label \"$1\" bestaat niet.",
        "tags-activate-title": "Label activeren",
        "tags-activate-reason": "Reden:",
        "tags-deactivate-question": "U staat op het punt om het label \"$1\" te deactiveren.",
        "tags-deactivate-reason": "Reden:",
        "tags-deactivate-submit": "Deactiveren",
+       "tags-edit-title": "Labels bewerken",
+       "tags-edit-manage-link": "Labels beheren",
+       "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-reason": "Reden:",
        "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-upload-overwrite": "$1 {{GENDER:$2|heeft}} een nieuwe versie van $3 geüpload",
        "logentry-upload-revert": "$1 heeft $3 {{GENDER:$2|geupload}}",
        "logentry-managetags-create": "$1 heeft het label \"$4\" {{GENDER:$2|aangemaakt}}",
+       "log-name-tag": "Labellogboek",
+       "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-error-title": "Fout",
        "feedback-error1": "Fout: onbekend resultaat uit de API",
        "feedback-error2": "Fout: de bewerking is mislukt",
index b9aa6fb..66f7f1e 100644 (file)
        "preview": "Førehandsvising",
        "showpreview": "Førehandsvis",
        "showdiff": "Sjå skilnader",
-       "anoneditwarning": "'''Åtvaring:''' Du er ikkje innlogga.\nIP-adressa di vert lagra i endringshistorikken til sida.",
+       "anoneditwarning": "'''Åtvaring:''' Du er ikkje innlogga.\nIP-adressa di vil verta lagra i den offentlege endringshistorikken til sida. Om du <strong>[$1 loggar inn]</strong> eller <strong>[$2 lager ein konto]</strong>, vil endringane dine knyttast til brukarnamnet ditt, saman med andre fordelar.",
        "anonpreviewwarning": "''Du er ikkje innlogga. Lagrar du vil IP-adressa di verta ført opp i endringshistorikken til denne sida.''",
        "missingsummary": "'''Påminning:''' Du har ikkje skrive noko endringssamandrag. Dersom du trykkjer «Lagre» ein gong til, vert endringa di lagra utan.",
        "missingcommenttext": "Ver venleg og skriv ein kommentar nedanfor.",
        "shown-title": "Syn $1 {{PLURAL:$1|resultat|resultat}} for kvar side",
        "viewprevnext": "Vis ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "* Sida '''[[$1]]'''",
-       "searchmenu-new": "'''Opprett sida «[[:$1|$1]]» på denne wikien.'''",
+       "searchmenu-new": "'''Opprett sida «[[:$1|$1]]» på denne wikien.''' {{PLURAL:$2|0=|Sjå også sida som vart funnen med søket ditt.|Sjå også søkeresultata som blei funne.}}",
        "searchprofile-articles": "Innhaldssider",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Alt",
        "searchrelated": "relatert",
        "searchall": "alle",
        "showingresults": "Nedanfor er opp til {{PLURAL:$1|'''eitt'''|'''$1'''}} resultat som byrjar med nummer '''$2''' vist{{PLURAL:$1||e}}.",
+       "search-showingresults": "Resultat <strong>{{PLURAL:$4|$1|$1–$2}}</strong> av <strong>$3</strong>",
        "search-nonefound": "Ingen resultat svarte til førespurnaden.",
        "powersearch-legend": "Avansert søk",
        "powersearch-ns": "Søk i namnerom:",
        "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",
        "import-interwiki-history": "Kopier all historikken for denne sida",
        "import-interwiki-templates": "Inkluder alle malar",
        "import-interwiki-submit": "Importer",
-       "import-interwiki-namespace": "Målnamnerom:",
-       "import-interwiki-rootpage": "Målrotside (valfri):",
        "import-upload-filename": "Filnamn:",
        "import-comment": "Kommentar:",
        "importtext": "Lagre fila frå kjeldewikien med [[Special:Export|eksporteringsverktøyet]] på din eigen datamaskin, og last henne så opp her.",
        "tooltip-pt-mycontris": "Liste over bidraga dine",
        "tooltip-pt-login": "Det er ikkje obligatorisk å logga inn, men medfører mange fordelar.",
        "tooltip-pt-logout": "Logg ut",
+       "tooltip-pt-createaccount": "Me oppfordrar til at du oppretter ein konto og loggar inn, men det er ikkje påkravd.",
        "tooltip-ca-talk": "Diskusjon om innhaldssida",
        "tooltip-ca-edit": "Du kan endre denne sida. Bruk førehandsvisings-knappen før du lagrar.",
        "tooltip-ca-addsection": "Start ein ny bolk",
index 6a6098b..cad960e 100644 (file)
        "import-interwiki-history": "Copiar totas las versions de l'istoric d'aquesta pagina",
        "import-interwiki-templates": "Enclure totes los modèls",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Espaci de noms de destinacion :",
-       "import-interwiki-rootpage": "Pagina raiç de destinacion (opcionala):",
        "import-upload-filename": "Nom del fichièr :",
        "import-comment": "Comentari :",
        "importtext": "Exportatz lo fichièr dempuèi lo wiki d’origina en utilizant [[Special:Export|aisina d'exportacion]].\nSalvatz-lo sus vòstre disc dur puèi importatz-lo aicí.",
index a89a229..fd53485 100644 (file)
@@ -15,9 +15,9 @@
                        "Macofe"
                ]
        },
-       "tog-underline": "ତଳà­\87 à¬¥à¬¿à¬¬à¬¾ à¬²à¬¿à¬\99à­\8dà¬\95:",
+       "tog-underline": "ଲିà¬\99à­\8dà¬\95ତଳà­\87à¬\97ାର à¬\9fାଣିବା:",
        "tog-hideminor": "ନିକଟରେ ହୋଇଥିବା ଛୋଟ ବଦଳସବୁକୁ ଲୁଚାଇବେ",
-       "tog-hidepatrolled": "ନà¬\97ଦ à¬¬à¬¦à¬³à¬°à­\87 à¬¥à¬¿à¬¬à¬¾ à¬\9cà¬\97ାହà­\8bଇଥିବା ବଦଳ ସବୁକୁ ଲୁଚାଇବେ",
+       "tog-hidepatrolled": "ନà¬\97ଦ à¬¬à¬¦à¬³à¬°à­\87 à¬¨à¬¿à¬°à¬¿à¬\95à­\8dଷଣ à¬\95ରାଯାଇଥିବା ବଦଳ ସବୁକୁ ଲୁଚାଇବେ",
        "tog-newpageshidepatrolled": "ନୂଆ ପୃଷ୍ଠାତାଲିକାରୁ ଜଗାହୋଇଥିବା ବଦଳସବୁକୁ ଲୁଚାଇବେ",
        "tog-extendwatchlist": "କେବଳ ନଗଦ ହିଁ ନୁହେଁ, ସବୁଯାକ ବଦଳକୁ ଦେଖାଇବା ପାଇଁ ଦେଖଣାତାଲିକାକୁ ପୂରା ଦେଖାଇବେ",
        "tog-usenewrc": "ନଗଦ ବଦଳରେ ପୃଷ୍ଠା ଅନୁଯାୟୀ ଗୋଷ୍ଠୀ ବଦଳ ଏବଂ ଦେଖଣା",
@@ -40,7 +40,7 @@
        "tog-shownumberswatching": "ଦେଖୁଥିବା ବ୍ୟବହାରକାରୀଙ୍କ ସଂଖ୍ୟା ଦେଖାନ୍ତୁ",
        "tog-oldsig": "ଏବେକାର ଦସ୍ତଖତ:",
        "tog-fancysig": "ଦସ୍ତଖତକୁ ଉଇକିଟେକ୍ସଟ ଭାବରେ ଗଣିବେ (ଆପେଆପେ ଥିବା ଲିଙ୍କ ବିନା)",
-       "tog-uselivepreview": "ସାଥେ ସାଥେ ଚାଲିଥିବା ଦେଖଣା ବ୍ୟବହାର କରିବେ (ପରୀକ୍ଷାରେ ଅଛି)",
+       "tog-uselivepreview": "ସାଥେ ସାଥେ ଚାଲିଥିବା ଦେଖଣା ବ୍ୟବହାର କରିବେ",
        "tog-forceeditsummary": "ଖାଲି ସମ୍ପାଦନା ସାରକଥାକୁ ଯିବା ବେଳେ ମୋତେ ଜଣାଇବେ",
        "tog-watchlisthideown": "ମୋ ଦେଖଣା ତାଲିକାରେ ମୋ ନିଜର ସମ୍ପାଦନାଗୁଡ଼ିକ ଲୁଚାଇବେ",
        "tog-watchlisthidebots": "ଦେଖଣା ତାଲିକାରେ ସ୍ୱୟଂଚାଳକ (Bot)ର ସମ୍ପାଦନାମାନ ଲୁଚାଇବେ",
        "lastmodifiedat": "ଏହି ପୃଷ୍ଠାଟି $1 ତାରିଖ $2 ବେଳେ ବଦଳାଯାଇଥିଲା ।",
        "viewcount": "ଏହି ପୃଷ୍ଠାଟି {{PLURAL:$1|ଥରେ|$1 ଥର}} ଖୋଲାଯାଇଛି ।",
        "protectedpage": "କିଳାଯାଇଥିବା ପୃଷ୍ଠା",
-       "jumpto": "ଡà­\87à¬\87à¬\81ଯିବେ",
+       "jumpto": "ସିଧାସଳà¬\96 ଯିବେ",
        "jumptonavigation": "ଦିଗବାରେଣିକୁ",
        "jumptosearch": "ଖୋଜିବେ",
        "view-pool-error": "କ୍ଷମା କରିବେ, ସର୍ଭରସବୁ ଏବେ ମନ୍ଦ ହୋଇଯାଇଅଛନ୍ତି ।\nଅନେକ ସଭ୍ୟ ଏହି ଏକା ପୃଷ୍ଠାଟି ଦେଖିବାକୁ ଚେଷ୍ଟାକରୁଅଛନ୍ତି ।\nଏହି ପୃଷ୍ଠାକୁ ଆଉଥରେ ଖୋଲିବା ଆଗରୁ ଦୟାକରି କିଛି କ୍ଷଣ ଅପେକ୍ଷା କରନ୍ତୁ ।\n$1",
        "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:ନୀତି",
        "site-rss-feed": "$1 ଆରଏସଏସ ଫିଡ଼",
        "site-atom-feed": "$1 ଆଟମ ଫିଡ଼",
        "page-rss-feed": "$1 ଟି ଆରେସେସ ଫିଡ଼",
-       "page-atom-feed": "$1 ଟି ଆଟମ ଫିଡ଼",
+       "page-atom-feed": "\"$1\" ଆଟମ ଫିଡ଼",
        "red-link-title": "$1 (ପୃଷ୍ଠାଟି ନାହିଁ)",
        "sort-descending": "ବଡ଼ରୁ ସାନ କ୍ରମେ ସଜାନ୍ତୁ",
        "sort-ascending": "ସାନରୁ ବଡ଼ କ୍ରମେ ସଜାନ୍ତୁ",
        "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": "ଭୁଲ: ଫର୍ମଟି ପଠାଇ ପାରିଲୁଁ ନାହିଁ",
        "viewsourcetext": "ଆପଣ ଏହି ପୃଷ୍ଠାର ଲେଖା ଦେଖିପାରିବେ ଓ ନକଲ କରିପାରିବେ:",
        "viewyourtext": "ଆପଣ '''ଆପଣଙ୍କ ସମ୍ପାଦିତ ''' ଅଧରଟିକୁ ଦେଖିପାରିବେ ଓ ଏହି ପୃଷ୍ଠାକୁ ନକଲ କରି ପାରିବେ",
        "protectedinterface": "ଏହି ପୃଷ୍ଠାଟି ଏହି ଉଇକିରେ ଥିବା ସଫ୍ଟୱେର ନିମନ୍ତେ ଇଣ୍ଟରଫେସ ଲେଖା ଯୋଗାଇଥାଏ ଓ ଏହା ଅପବ୍ୟବହାରକୁ ରୋକିବା ନିମନ୍ତେ କିଳାଯାଇଅଛି । ସମସ୍ତ ଉଇକିର ଅନୁବାଦକୁ ଯୋଡ଼ିବା ଏବଂ ବଦଳାଇବା ପାଇଁ ମେଡ଼ିଆଉଇକିର ସ୍ଥାନୀୟ ପ୍ରକଳ୍ପରେ ଥିବା [//translatewiki.net/ translatewiki.net]କୁ ବ୍ୟବହାର କରନ୍ତୁ ।",
-       "editinginterface": "'''ଚେତାବନୀ:''' ଆପଣ ସଫ୍ଟୱେରର ଇଣ୍ଟରଫେସ ଲେଖା ଯୋଗାଇବା ନିମନ୍ତେ ବ୍ୟବହାର କରାଯାଉଥିବା ଏକ ପୃଷ୍ଠାର ସମ୍ପାଦନା କରୁଅଛନ୍ତି ।\nଏହି ଉଇକିପୃଷ୍ଠାର କିଛି ବି ବଦଳ ବାକି ସଭ୍ୟମାନଙ୍କ ଇଣ୍ଟରଫେସର ଦେଖଣାକୁ ପ୍ରଭାବିତ କରିବ ।\nସମସ୍ତ ଉଇକିର ଅନୁବାଦ ନିମନ୍ତେ, ଦୟାକରି ମିଡ଼ିଆଉଇକିର ସ୍ଥାନୀୟକରଣ ପ୍ରକଳ୍ପ [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] ବ୍ୟବହାର କରନ୍ତୁ ।",
+       "editinginterface": "'''ଚେତାବନୀ:''' ଆପଣ ସଫ୍ଟୱେରର ଇଣ୍ଟରଫେସ ଲେଖା ଯୋଗାଇବା ନିମନ୍ତେ ବ୍ୟବହାର କରାଯାଉଥିବା ଏକ ପୃଷ୍ଠାର ସମ୍ପାଦନା କରୁଅଛନ୍ତି ।\nଏହି ଉଇକିପୃଷ୍ଠାର କିଛି ବି ବଦଳ ବାକି ସଭ୍ୟମାନଙ୍କ ଇଣ୍ଟରଫେସର ଦେଖଣାକୁ ପ୍ରଭାବିତ କରିବ ।",
+       "translateinterface": "ସମସ୍ତ ଉଇକିରେ ଅନୁବାଦ ଯୋଡିବା ପାଇଁ କିମ୍ବା ବଦଳାଇବା ପାଇଁ ମେଡିଆଉଇକିର ଅଞ୍ଚଳିକୀକରଣ ପ୍ରକଳ୍ପ  [//translatewiki.net/ translatewiki.net] ବ୍ୟବହାର କରନ୍ତୁ ।",
        "cascadeprotected": "ଏହି ପୃଷ୍ଠା ସମ୍ପାଦନା କରିବାରୁ କିଳାଯାଇଅଛି, କାରଣ ଏଥିରେ ତଳଲିଖିତ {{PLURAL:$1|ପୃଷ୍ଠାଟିଏ ଅଛି|ଟି ପୃଷ୍ଠା ଅଛି}} ଯାହା \"କ୍ୟାସକେଡ଼ କରା\" ସୁବିଧା ଦେଇ କିଳାଯାଇଅଛି ।:\n$2",
        "namespaceprotected": "ଆପଣଙ୍କୁ ଏହି '''$1''' ନେମସ୍ପେସ ଥିବା ପୃଷ୍ଠାରେ ସମ୍ପାଦନା କରିବା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ ।",
        "customcssprotected": "ଆପଣଙ୍କୁ ଏହି CSS ପୃଷ୍ଠାର ସମ୍ପାଦନା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ, କାରଣ ଏଥିରେ ଆଉଜଣେ ସଭ୍ୟଙ୍କର ବ୍ୟକ୍ତିଗତ ସଜାଣି ରହିଅଛି ।",
        "createacct-another-username-ph": "ଆପଣଙ୍କ ଇଉଜର ନାମ ଟାଇପ କରନ୍ତୁ",
        "yourpassword": "ପାସୱାର୍ଡ଼",
        "userlogin-yourpassword": "ପାସୱାର୍ଡ଼",
-       "userlogin-yourpassword-ph": "à¬\86ପଣà¬\99à­\8dà¬\95 à¬ªà¬¾à¬¸à­±à¬¾à¬°à­\8dଡ଼ à¬¨à¬¿à¬¬à­\87ଶ à¬\95ରନ୍ତୁ",
-       "createacct-yourpassword-ph": "ପାସୱରà­\8dଡ଼ à¬¨à¬¿à¬¬à­\87ଶ à¬\95ରନ୍ତୁ",
+       "userlogin-yourpassword-ph": "à¬\86ପଣà¬\99à­\8dà¬\95 à¬ªà¬¾à¬¸à­±à¬¾à¬°à­\8dଡ଼ à¬¦à¬¿à¬\85ନ୍ତୁ",
+       "createacct-yourpassword-ph": "ପାସୱରà­\8dଡ଼ à¬¦à¬¿à¬\85ନ୍ତୁ",
        "yourpasswordagain": "ପାସୱାର୍ଡ଼ ଆଉଥରେ:",
        "createacct-yourpasswordagain": "ପାସୱର୍ଡ଼ ନିଶ୍ଚିତ କରିବେ",
-       "createacct-yourpasswordagain-ph": "ପà­\81ଣି à¬ªà¬¾à¬¸à­±à¬°à­\8dଡ଼ à¬¨à¬¿à¬¬à­\87ଶ à¬\95ରନ୍ତୁ",
+       "createacct-yourpasswordagain-ph": "à¬\86à¬\89ଥରà­\87 à¬ªà¬¾à¬¸à­±à¬°à­\8dଡ଼ à¬¦à¬¿à¬\85ନ୍ତୁ",
        "remembermypassword": "ଏହି ବ୍ରାଉଜରରେ (ସବୁଠୁ ଅଧିକ ହେଲେ $1 {{PLURAL:$1|day|ଦିନ}}) ପାଇଁ ମୋ ଲଗଇନ ମନେ ରଖିଥିବେ",
        "userlogin-remembermypassword": "ମୋତେ ଲଗ-ଇନ କରି ରଖିଥାନ୍ତୁ",
        "userlogin-signwithsecure": "ନିରାପଦ କନେକସନ ବ୍ୟବ‌ହାର କରନ୍ତୁ",
        "userlogin-createanother": "ଆଉ ଏକ ଖାତା ତିଆରି କରନ୍ତୁ",
        "createacct-emailrequired": "ଇମେଲ ଠିକଣା",
        "createacct-emailoptional": "ଇମେଲ ଠିକଣା (ଇଚ୍ଛାଧୀନ)",
-       "createacct-email-ph": "à¬\86ପଣà¬\99à­\8dà¬\95 à¬\87ମà­\87ଲ à¬ à¬¿à¬\95ଣା à¬¨à¬¿à¬¬à­\87ଶ à¬\95ରନ୍ତୁ",
+       "createacct-email-ph": "à¬\86ପଣà¬\99à­\8dà¬\95 à¬\87ମà­\87ଲ à¬ à¬¿à¬\95ଣା à¬¦à¬¿à¬\85ନ୍ତୁ",
        "createacct-another-email-ph": "ଆପଣଙ୍କ ଇ-ମେଲ ଠିକଣା ଦିଅନ୍ତୁ",
        "createaccountmail": "ଏକ ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ ବ୍ୟବହାର କରନ୍ତୁ ଏବଂ ଏହାକୁ ତଳେ ଦିଆଯାଇଥିବା ଇ-ମେଲ ଠିକଣାକୁ ପଠେଇ ଦିଅନ୍ତୁ",
        "createacct-realname": "ପ୍ରକୃତ ନାମ (ଇଚ୍ଛାଧୀନ)",
        "createacct-reason": "କାରଣ",
        "createacct-reason-ph": "ଆପଣ ଅନ୍ୟଏକ ଖାତା କାହିଁକି ତିଆରି କରୁଛନ୍ତି",
        "createacct-captcha": "ନିରାପତ୍ତା ଯାଞ୍ଚ",
-       "createacct-imgcaptcha-ph": "à¬\89ପରà­\87 à¬²à­\87à¬\96ାଥିବା à¬²à­\87à¬\96ାà¬\9fି ଲେଖନ୍ତୁ",
+       "createacct-imgcaptcha-ph": "à¬\89ପରà­\87 à¬²à­\87à¬\96ାଥିବା à¬\85à¬\95à­\8dଷରà¬\95à­\81 ଲେଖନ୍ତୁ",
        "createacct-submit": "ନିଜର ନୂଆ ଖାତାଟିଏ ଖୋଲନ୍ତୁ",
        "createacct-another-submit": "ଆଉ ଏକ ଖାତା ଖୋଲନ୍ତୁ",
        "createacct-benefit-heading": "{{SITENAME}} ଆପଣଙ୍କ ଭଳି ଲୋକମାନଙ୍କ ଦ୍ୱାରା ଗଢ଼ା ।",
        "wrongpassword": "ଦିଆଯାଇଥିବା ପାସୱାର୍ଡ଼ଟି ଭୁଲ ଅଟେ  ।\nଦୟାକରି ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।",
        "wrongpasswordempty": "ଦିଆଯାଇଥିବା ପାସବାର୍ଡ଼ଟି ଖାଲି ଛଡ଼ାଯାଇଛି ।\nଦୟାକରି ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।",
        "passwordtooshort": "ପାସୱାର୍ଡ଼ଟି ଅତି କମରେ {{PLURAL:$1|ଗୋଟିଏ ଅକ୍ଷର|$1ଟି ଅକ୍ଷର}}ର ହୋଇଥିବା ଲୋଡ଼ା ।",
+       "passwordtoolong": "ପସସ୍ୱାର୍ଡଟି {{PLURAL:$1|1 ଅକ୍ଷର|$1 ଅକ୍ଷରଗୁଡିକ}}ଠାରୁ ଅଧିକ ହୋଇ ପାରିବ ନାହିଁ ।",
        "password-name-match": "ଆପଣଙ୍କ ପାସୱାର୍ଡ଼ଟି ଆପଣଙ୍କ ଇଉଜର ନାମ ଠାରୁ ଅଲଗା ହେବା ଉଚିତ ।",
        "password-login-forbidden": "ଏହି ଇଉଜର ନାମ ଓ ପାସୱାର୍ଡ଼ର ବ୍ୟବହାରକୁ ବାରଣ କରାଯାଇଅଛି ।",
        "mailmypassword": "ପାସୱାର୍ଡ଼ଟି ରିସେଟ କରିବେ",
        "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": "ସ୍ୱୟଂଚାଳକ&nbsp;(Bot)&nbsp;ର&nbsp;ସମ୍ପାଦନା $1",
+       "rcshowhidebots": "$1 ବଟଗୁଡିକ",
        "rcshowhidebots-show": "ଦେଖାଇବେ",
        "rcshowhidebots-hide": "ଲୁଚାଇବେ",
        "rcshowhideliu": "ପଞ୍ଜୀକୃତ ସଭ୍ୟ $1",
        "rc-enhanced-expand": "ସବିଶେଷ ଦେଖାନ୍ତୁ",
        "rc-enhanced-hide": "ବେଶି କଥାସବୁ ଲୁଚାଇଦିଅ",
        "rc-old-title": "ପ୍ରକୃତରେ \"$1\" ଭାବେ ତିଆରି କରାଯାଇକଥିଲା",
-       "recentchangeslinked": "à¬\8fà¬\87ମାତà­\8dର à¬¬à¬¦à¬³à¬¾à¬¯à¬¾à¬\87ଥିବା à¬ªà­\83ଷà­\8dଠାର à¬²à¬¿à¬\99à­\8dà¬\95",
+       "recentchangeslinked": "ସମà­\8dପରà­\8dà¬\95ିତ à¬¬à¬¦à¬³",
        "recentchangeslinked-feed": "ସମ୍ପର୍କିତ ବଦଳ",
        "recentchangeslinked-toolbox": "ସମ୍ପର୍କିତ ବଦଳ",
        "recentchangeslinked-title": "\"$1\" ସହ ସମ୍ବନ୍ଧିତ ବଦଳ",
        "whatlinkshere": "ଏଠାରେ ଥିବା ଲିଙ୍କ",
        "whatlinkshere-title": "\"$1\" କୁ ପୃଷ୍ଠା ଲିଙ୍କ",
        "whatlinkshere-page": "ପୃଷ୍ଠା:",
-       "linkshere": "ଏହି ପୃଷ୍ଠା ସବୁ  '''[[:$1]]''' ସହ ଯୋଡା ଯାଇଅଛି:",
+       "linkshere": "ଏହି ପୃଷ୍ଠା ସବୁ  <strong>[[:$1]]</strong> ସହ ଯୋଡା ଯାଇଅଛି:",
        "nolinkshere": "'''[[:$1]]''' ସହିତ କୌଣସିଟି ପୃଷ୍ଠା ଯୋଡ଼ାଯାଇନାହିଁ ।",
        "nolinkshere-ns": "ବଛା ଯାଇଥିବା ନେମସ୍ପେସରେ '''[[:$1]]''' ନାଆଁ ସହ କୌଣସି ବି ପୃଷ୍ଠା ଯୋଡ଼ାଯାଇନାହିଁ ।",
        "isredirect": "ଆଉଥରେ ଫେରିବା ପୃଷ୍ଠା",
        "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-ca-talk": "ଏହି ପୃଷ୍ଠାଟି ଉପରେ ଆଲୋଚନା",
        "tooltip-ca-edit": "ଆପଣ ଏହି ପୃଷ୍ଠାଟିରେ ଅଦଳ ବଦଳ କରିପାରିବେ, ତେବେ ସାଇତିବା ଆଗରୁ ଦେଖଣା ଦେଖନ୍ତୁ ।",
        "tooltip-ca-addsection": "ନୂଆ ବିଭାଗଟିଏ ଆରମ୍ଭ କରିବେ",
        "tooltip-t-recentchangeslinked": "ଏହି ପୃଷ୍ଠା ସଙ୍ଗେ ଯୋଡ଼ା ଫରଦଗୁଡ଼ିକରେ ଏବେ ଏବେ କରାଯାଇଥିବା ଅଦଳବଦଳ",
        "tooltip-feed-rss": "ଏହି ପୃଷ୍ଠାଟି ପାଇଁ RSS ଫିଡ଼",
        "tooltip-feed-atom": "ଏହି ପୃଷ୍ଠାଟି ପାଇଁ ଆଟମ ଫିଡ଼",
-       "tooltip-t-contributions": "à¬\8fହି à¬\87à¬\89à¬\9cରà¬\99à­\8dà¬\95ର à¬¦à­\87à¬\87 à¬\95ରାଯାà¬\87ଥିବା à¬¸à¬¬à­\81ଯାà¬\95 à¬¦à¬¾à¬¨ à¬¦à­\87à¬\96ାà¬\87ବା",
+       "tooltip-t-contributions": "à¬\8fହି à¬\87à¬\89à¬\9cରà¬\99à­\8dà¬\95ର à¬¦à­\8dଵାରା à¬¹à­\8bà¬\87ଥିବା à¬¬à¬¦à¬³ à¬¤à¬¾à¬²à¬¿à¬\95ା",
        "tooltip-t-emailuser": "ଏହି ସଭ୍ୟଙ୍କୁ ଇ-ମେଲଟିଏ ପଠାଇବେ",
        "tooltip-t-upload": "ଫାଇଲ ଅପଲୋଡ଼ କରିବେ",
        "tooltip-t-specialpages": "ବିଶେଷ ପୃଷ୍ଠାମାନଙ୍କର ଏକ ତାଲିକା",
        "tooltip-ca-nstab-category": "ଶ୍ରେଣୀ ପୃଷ୍ଠାଟିକୁ ଦେଖାଇବେ",
        "tooltip-minoredit": "ଏହାକୁ ଏକ ସାମାନ୍ୟ ସମ୍ପାଦନା ଭାବେ ଗଣିବେ",
        "tooltip-save": "ବଦଳଗୁଡ଼ିକ ସାଇତିବେ",
-       "tooltip-preview": "ସାଇତିବା ଆଗରୁ ନିଜର ସମ୍ପାଦନା ପରଖିନିଅନ୍ତୁ!",
+       "tooltip-preview": "ଦà­\9fାà¬\95ରି à¬¸à¬¾à¬\87ତିବା à¬\86à¬\97ରà­\81 à¬¨à¬¿à¬\9cର à¬¸à¬®à­\8dପାଦନା à¬ªà¬°à¬\96ିନିà¬\85ନà­\8dତà­\81!",
        "tooltip-diff": "ଏହି ଲେଖାରେ ଆପଣ କରିଥିବା ବଦଳଗୁଡିକୁ ଦେଖନ୍ତୁ ।",
        "tooltip-compareselectedversions": "ଏହି ଫରଦର ଦୁଇଟି ବଛାଯାଇଥିବା ସଁକଳନକୁ ତଉଲିବା",
        "tooltip-watch": "ଆପଣଙ୍କ ଦେଖାତାଲିକାରେ ଏଇ ପୃଷ୍ଠାଟି ମିଶାଇବେ",
index 89ef183..281f27f 100644 (file)
        "history_short": "Истори",
        "updatedmarker": "ноггонд мæ фæстаг æрбахызтæй",
        "printableversion": "Мыхурæн",
-       "permalink": "УдгаÑ\81 æрвитæн",
+       "permalink": "Ð\98Ñ\83гæндзон æрвитæн",
        "print": "Мыхуыр",
        "view": "Кæсын",
        "edit": "Ивын",
        "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}}}} акканты тыххæй",
        "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 a630011..094b703 100644 (file)
        "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-interwiki-namespace": "Docelowa przestrzeń nazw:",
-       "import-interwiki-rootpage": "Docelowa strona główna (opcjonalna):",
+       "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 04b979d..eaf8552 100644 (file)
        "history-feed-description": "Stòria dla pàgina ansima a sto sit-sì",
        "history-feed-item-nocomment": "$1 al $2",
        "history-feed-empty": "La pàgina che a l'ha ciamà a-i é pa; a podrìa esse stàita scancelà da 'nt ël sit, ò pura tramudà a n'àutr nòm.\n\nChe a verìfica con la [[Special:Search|pàgina d'arserca]] se a-i fusso mai dj'àutre pàgine che a podèisso andeje bin.",
+       "history-edit-tags": "Modifiché le tichëtte dle revision selessionà",
        "rev-deleted-comment": "(resumé dla modìfica gavà)",
        "rev-deleted-user": "(stranòm gavà)",
        "rev-deleted-event": "(detaj dël registr gavà)",
        "rev-showdeleted": "Mostra",
        "revisiondelete": "Scancela/disdëscancela revision",
        "revdelete-nooldid-title": "Version nen spessificà",
-       "revdelete-nooldid-text": "A l'ha nen spessificà na version ëd la pàgina për aplicheje costa fonsion, la version spessificà a esist pa, o a preuva a stërmé la version corenta.",
+       "revdelete-nooldid-text": "A l'ha nen spessificà na version ëd la pàgina për aplicheje costa fonsion, la version spessificà a esist pa, opura a l'é an camin ch'a preuva a stërmé la version corenta.",
        "revdelete-no-file": "L'archivi sërcà a-i é pa.",
        "revdelete-show-file-confirm": "É-lo sigur ëd vorèj vëdde na vërsion scancelà dl'archivi \"<nowiki>$1</nowiki>\" da $2 a $3?",
        "revdelete-show-file-submit": "Bò!",
        "right-sendemail": "Mandé un mëssagi an pòsta eletrònica a j'àutri utent",
        "right-passwordreset": "Vëdde ij mëssagi ëd pòsta eletrònica ëd riampostassion dle ciav",
        "right-managechangetags": "Creé e dëscancelé dle [[Special:Tags|tichëtte]] da la base ëd dàit",
+       "right-applychangetags": "Apliché [[Special:Tags|le tichëtte]] con soe pròpie modìfiche",
+       "right-changetags": "Gionté e gavé dle [[Special:Tags|tichëtte]] qualsëssìa an s'dle revision andividuaj e dle vos d'argistr",
        "newuserlogpage": "Registr dla creassion dj'utent",
        "newuserlogpagetext": "Sossì a l'é un registr andova ch'as marco le creassion dj'utent.",
        "rightslog": "Argistr dij drit ëd j'utent",
        "action-editmyprivateinfo": "modifiché soe anformassion përsonaj",
        "action-editcontentmodel": "modifiché ël model ëd contnù ëd na pàgina",
        "action-managechangetags": "creé e dëscancelé dle tichëtte da la base ëd dàit",
+       "action-applychangetags": "apliché le tichëtte con soe modìfiche",
+       "action-changetags": "gionté e gavé dle tichëtte qualsëssìa an s'dle revision andividuaj e dle vos d'argistr",
        "nchanges": "$1 {{PLURAL:$1|modìfica|modìfiche}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|da l'ùltima visita}}",
        "enhancedrc-history": "stòria",
        "listfiles-delete": "scancelé",
        "listfiles-summary": "Sta pàgina special-sì a smon tuti j'archivi ch'a son ëstàit carià.",
        "listfiles_search_for": "Arserché un nòm d'archivi multimojen:",
+       "listfiles-userdoesnotexist": "Ël cont utent «$1» a l'é nen argistrà.",
        "imgfile": "archivi",
        "listfiles": "Lista d'archivi",
        "listfiles_thumb": "Miniadura",
        "logempty": "Pa gnun element parèj che a sia trovasse ant ij registr.",
        "log-title-wildcard": "Sërché ant ij tìtoj ch'as anandio për",
        "showhideselectedlogentries": "Smon-e/stërmé le vos ëd registr selessionà",
+       "log-edit-tags": "Modiché le tichëtte dle vos d'argistr selessionà",
        "allpages": "Tute le pàgine",
        "nextpage": "Pàgina che a-i ven ($1)",
        "prevpage": "Pàgina anans ($1)",
        "import-interwiki-history": "Copié tute le revision ëd la stòria ëd costa pàgina",
        "import-interwiki-templates": "Anserì tùit jë stamp",
        "import-interwiki-submit": "Amporté",
-       "import-interwiki-namespace": "Spassi nominal ëd destinassion:",
-       "import-interwiki-rootpage": "Pàgina prinsipal ëd destinassion (opsional):",
+       "import-mapping-default": "Amporté ant le locassion ëstàndard",
+       "import-mapping-namespace": "Amporté vers në spassi nominal:",
+       "import-mapping-subpage": "Amporté coma sot-pàgine ëd costa pàgina:",
        "import-upload-filename": "Nòm ëd l'archivi:",
        "import-comment": "Oget:",
        "importtext": "Për piasì, che as espòrta l'archivi da 'nt la sorgiss wiki ën dovrand l'[[Special:Export|utiss d'esportassion]]. \nChe as lo salva ansima a sò ordinator e peui che a lo caria ambelessì.",
        "pageinfo-protect-cascading-yes": "É!",
        "pageinfo-protect-cascading-from": "Le protession a son a cascada da",
        "pageinfo-category-info": "Anformassion an sla categorìa",
+       "pageinfo-category-total": "Nùmer total ëd mèmber",
        "pageinfo-category-pages": "Nùmer ëd pàgine",
        "pageinfo-category-subcats": "Nùmer ëd sot-categorìe",
        "pageinfo-category-files": "Nùmer d'archivi",
        "patrol-log-page": "Registr dij contròj",
        "patrol-log-header": "Cost-sì a l'é un registr ëd le revision controlà.",
        "log-show-hide-patrol": "$1 registr verificà",
+       "log-show-hide-tag": "tichëtta d'argistr $1",
        "deletedrevision": "Veja version scancelà $1",
        "filedeleteerror-short": "Eror ën scanceland l'archivi: $1",
        "filedeleteerror-long": "A-i son ësta-ie dj'eror ën scanceland l'archivi:\n\n$1",
        "tags-deactivate-reason": "Rason:",
        "tags-deactivate-not-allowed": "A l'é nen possìbil disativé la tichëtta «$1».",
        "tags-deactivate-submit": "Disativé",
+       "tags-apply-no-permission": "A l'ha nen ël drit d'apliché dle tichëtte ëd modìfica ansema a soe modìfiche.",
+       "tags-apply-not-allowed-one": "La tichëtta «$1» a peul nen esse aplicà a man.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|La tichëtta sì-dapress a peul|Le tichëtte sì dapress a peulo}} nen esse aplicà a man: $1",
+       "tags-update-no-permission": "A l'ha nen ël drit ëd gionté o gavé dle tichëtte ëd modìfica da dle revision andividuaj o dle vos d'argistr.",
+       "tags-update-add-not-allowed-one": "La tichëtta «$1» a peul nen esse giontà a man.",
+       "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 90a9efa..cce9a83 100644 (file)
        "statistics-users-active-desc": "هغه کارنان چې په {{PLURAL:$1|وروستۍ ورځ|وروستيو $1 ورځو}} کې فعاله ونډه لرلې",
        "pageswithprop": "د مخ ځانتياو څخه برخمن مخونه",
        "pageswithprop-legend": "د مخ ځانتياو څخه برخمن مخونه",
+       "pageswithprop-text": "په دې مخ کې د يوې ځانگړې مخ ځانتيا کارېدونکو مخونو لړليک راغلی.",
        "pageswithprop-prop": "د ځانتيا نوم:",
        "pageswithprop-submit": "ورځه",
        "doubleredirects": "دوه ځلي ورگرځېدنې",
        "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": "ناڅرگنده کارن",
        "import-interwiki-history": "د دې مخ د پېښليک ټولې بڼې لمېسل",
        "import-interwiki-templates": "ټولې کينډۍ نغاړل",
        "import-interwiki-submit": "رالېږدول",
-       "import-interwiki-namespace": "د موخې نوم-تشيال:",
        "import-upload-filename": "د دوتنې نوم:",
        "import-comment": "تبصره:",
        "import-revision-count": "$1 {{PLURAL:$1|بڼه|بڼې}}",
        "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 مياشتې}}",
        "api-error-unknownerror": "ناڅرګنده تېروتنه: \"$1\".",
        "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|کال|کالونه}}",
        "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-count": "د دوتنو شمېر",
index 6fbc172..e51d30f 100644 (file)
        "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.",
        "right-sendemail": "Enviar email a outros usuários",
        "right-passwordreset": "Ver todos os e-mails de reposição de senhas",
        "right-managechangetags": "Criar e apagar [[Special:Tags|tags]] na base de dados",
+       "right-applychangetags": "Aplicar [[Especial:Etiquetas|etiquetas]] juntamente com as alterações de alguém",
+       "right-changetags": "Adicionar e remover [[Especial:Etiquetas|etiquetas]] arbitrárias em revisões e ''logs'' individuais",
        "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",
        "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-interwiki-namespace": "Domínio de destino:",
-       "import-interwiki-rootpage": "Página raiz de destino (opcional):",
+       "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",
        "tags-activate-submit": "Ativar",
        "tags-deactivate-title": "Desativar etiqueta",
        "tags-deactivate-submit": "Desativar",
+       "tags-edit-manage-link": "Gerenciar etiquetas",
+       "tags-edit-existing-tags": "Etiquetas existentes:",
+       "tags-edit-new-tags": "Novas etiquetas:",
+       "tags-edit-add": "Adicionar estas etiquetas:",
+       "tags-edit-remove": "Remover estas etiquetas:",
+       "tags-edit-chosen-placeholder": "Selecionar algumas etiquetas",
        "comparepages": "Comparar páginas",
        "compare-page1": "Página 1",
        "compare-page2": "Página 2",
index 2c28c8c..5d64a78 100644 (file)
        "import-interwiki-history": "Copiar todo o histórico de revisões desta página",
        "import-interwiki-templates": "Incluir todas as predefinições",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Domínio de destino:",
-       "import-interwiki-rootpage": "Raiz da página de destino (opcional):",
        "import-upload-filename": "Nome do ficheiro:",
        "import-comment": "Comentário:",
        "importtext": "Exporte o ficheiro da wiki de origem utilizando a página especial [[Special:Export|exportação de páginas]].\nGrave o ficheiro no seu computador e importe-o aqui.",
index f4d1e40..fd58eea 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}}",
        "redirect-text": "Inside fieldset for [[Special:Redirect]]",
        "redirect-summary": "Shown at top of [[Special:Redirect]]",
        "redirect-submit": "Button label in [[Special:Redirect]].\n{{Identical|Go}}",
-       "redirect-lookup": "First field label in [[Special:Redirect]].\n\nFollowed by the select box which has the following options:\n* {{msg-mw|Redirect-user}}\n* {{msg-mw|Redirect-page}}\n* {{msg-mw|Redirect-revision}}\n* {{msg-mw|Redirect-file}}",
+       "redirect-lookup": "First field label in [[Special:Redirect]].\n\nFollowed by the select box which has the following options:\n* {{msg-mw|Redirect-user}}\n* {{msg-mw|Redirect-page}}\n* {{msg-mw|Redirect-revision}}\n* {{msg-mw|Redirect-file}}\n{{Identical|Lookup}}",
        "redirect-value": "Second field label in [[Special:Redirect]]\n{{Identical|Value}}",
        "redirect-user": "Description of lookup type for [[Special:Redirect]].\n{{Identical|User ID}}",
        "redirect-page": "Description of lookup type for [[Special:Redirect]].\n{{Identical|Page ID}}",
index d91d094..8d4a1e8 100644 (file)
        "querypage-disabled": "Kay sapaq p'anqamanqa ama nisqam allinta llamk'anapaq.",
        "booksources": "Liwrukunapi pukyukuna",
        "booksources-search-legend": "Liwrukunapi pukyukunata maskay",
+       "booksources-search": "Maskay",
        "booksources-text": "Kay qatiqpiqa huk llika tiyaykunaman t'inkikunatam rikunki, musuq icha mawk'a liwrukunata qhatuq, maskasqayki liwrukunamantachá astawan willaq:",
        "booksources-invalid-isbn": "ISBN huchhaqa manachá allinchu; pantasqata llanchiriy qallariy qillqamanta iskaychamuspa.",
        "specialloguserlabel": "Rurapuq:",
        "import-interwiki-history": "Kay p'anqapaq tukuy wiñay kawsaynintinta iskaychay",
        "import-interwiki-templates": "Tukuy plantillakunapas",
        "import-interwiki-submit": "Hawamanta chaskiy",
-       "import-interwiki-namespace": "Kay suti k'itiman churay:",
-       "import-interwiki-rootpage": "Taripana saphi p'anqa (akllanalla):",
        "import-upload-filename": "Willañiqip sutin:",
        "import-comment": "Willayniyki:",
        "importtext": "Ama hina kaspa, willañiqita qallariy wikimanta [[Special:Export|hawaman quna llamk'anawan]] hawaman quy antañiqiqniykipi waqaychaspa, chaymantataq kaypi churkuy.",
        "tooltip-pt-mycontris": "Llamk'apusqaykikuna",
        "tooltip-pt-login": "Kallpachaykiku yaykunaykiqa allinmi nispa, mana manu kanayki kaptinpas",
        "tooltip-pt-logout": "Llamk'apuy tiyaymanta lluqsiy",
+       "tooltip-pt-createaccount": "Rakiquna kamarispayki yaykunaykiqa allinchá kanman, hinaspapas ruranayki manam tiyanchu.",
        "tooltip-ca-talk": "Qillqasqap samiqninmanta rimanakuna p'anqa",
        "tooltip-ca-edit": "Kay p'anqata llamk'apuytam atinki. Ama hina kaspa, manaraq waqaychaspa ñawpaqta qhawarillay.",
        "tooltip-ca-addsection": "Musuq rakita qallariy",
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 0295c66..e85c1f7 100644 (file)
        "import-interwiki-history": "Copiază toate versiunile istoricului acestei pagini",
        "import-interwiki-templates": "Includeți toate formatele",
        "import-interwiki-submit": "Importă",
-       "import-interwiki-namespace": "Transferă către spațiul de nume:",
-       "import-interwiki-rootpage": "Pagina rădăcină de destinație (opțional):",
+       "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.",
index 71f0c18..ca615f0 100644 (file)
        "searchrelated": "colleghete",
        "searchall": "tutte",
        "showingresults": "Stoche a fazze vedè aqquà sotte {{PLURAL:$1|'''1''' resultete|'''$1''' resultete}} ca accumenzene cu #'''$2'''.",
+       "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",
        "powersearch-ns": "Cirche jndr'à le namespace:",
        "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-hide": "Scunne",
        "rcshowhidebots": "$1 bot",
+       "rcshowhidebots-show": "Fà vedè",
        "rcshowhideliu": "$1 utinde reggistrate",
+       "rcshowhideliu-hide": "Scunne",
        "rcshowhideanons": "$1 utende scanusciute",
+       "rcshowhideanons-hide": "Scunne",
        "rcshowhidepatr": "$1 cangiaminde condrollete",
        "rcshowhidemine": "$1 cangiaminde mie",
+       "rcshowhidemine-hide": "Scunne",
        "rclinks": "Vide l'urteme $1 cangiaminde jndr'à l'urteme $2 sciurne<br />$3",
        "diff": "diff",
        "hist": "cunde",
        "import-interwiki-history": "Copie tutte 'a sotrie de le versiune de sta pàgene",
        "import-interwiki-templates": "Inglude tutte le template",
        "import-interwiki-submit": "'Mborte",
-       "import-interwiki-namespace": "Namespace de destinazione:",
-       "import-interwiki-rootpage": "Pàgena prengepàale de destinazione (opzionale):",
        "import-upload-filename": "Nome d'u file:",
        "import-comment": "Commende:",
        "importtext": "Pe piacere esporte 'u file da 'a Uicchi sorgende ausanne l'[[Special:Export|utilità de esportazione]].\nReggistrele sus a 'u combiuter tune e carechele aqquà.",
index 67e9d27..d436b51 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": "(детали журнала удалены)",
        "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": "Да",
        "protect-othertime": "Другое время:",
        "protect-othertime-op": "другое время",
        "protect-existing-expiry": "Текущее время окончания: $2, $3",
-       "protect-existing-expiry-infinity": "Текущее время окончания: бесконечно",
+       "protect-existing-expiry-infinity": "Текущее время окончания: бессрочно",
        "protect-otherreason": "Другая причина/дополнение:",
        "protect-otherreason-op": "Другая причина",
        "protect-dropdown": "* Типовые причины защиты\n** частый вандализм\n** чрезмерный спам\n** непродуктивная война правок\n** популярная страница",
        "import-interwiki-history": "Копировать всю историю изменений этой страницы",
        "import-interwiki-templates": "Включить все шаблоны",
        "import-interwiki-submit": "Импортировать",
-       "import-interwiki-namespace": "Целевое пространство имён:",
-       "import-interwiki-rootpage": "Корневая страница (необязательно):",
+       "import-mapping-namespace": "Импортировать в пространство имён:",
        "import-upload-filename": "Имя файла:",
        "import-comment": "Примечание:",
        "importtext": "Пожалуйста, экспортируйте страницу из исходной вики, используя [[Special:Export|соответствующий инструмент]]. Сохраните файл на диск, а затем загрузите его сюда.",
        "pageinfo-protect-cascading-yes": "Да",
        "pageinfo-protect-cascading-from": "Каскадная защита от",
        "pageinfo-category-info": "Информация о категории",
+       "pageinfo-category-total": "Общее число членов",
        "pageinfo-category-pages": "Количество страниц",
        "pageinfo-category-subcats": "Количество подкатегорий",
        "pageinfo-category-files": "Количество файлов",
        "tags-edit-remove-all-tags": "(удалить все метки)",
        "tags-edit-chosen-placeholder": "Выберите один или несколько тэгов",
        "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-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": "Добавление отзыва на страницу…",
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 9cdc9f0..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": "सञ्चिका आरोप्यताम्",
        "querypage-disabled": "समाचरणकारणेन एतद्विशेषपुटं निष्क्रियम् ।",
        "booksources": "ग्रन्थस्रोतः",
        "booksources-search-legend": "ग्रन्थस्रोतः अन्विष्यताम्",
+       "booksources-search": "अन्विष्यताम्",
        "booksources-text": "अधस्था आवली नूतनप्राचीनपुस्तकानां विक्रयकेन्द्रस्य अनुबन्धान् सूचयति । यत्र ते  आवश्यकाः अन्यविषयाः अपि उपलभ्याः ।",
        "booksources-invalid-isbn": "दत्तं ISBN मान्यम् इति  न भाति । मूलस्रोततः प्रतिकृतीः कर्तुं परिशीलयतु ।",
        "specialloguserlabel": "आचारी :",
        "import-interwiki-history": "एतत्पुटार्थं सर्वेतिहासान् पुनरावृत्तीः च प्रकृतीः करोतु ।",
        "import-interwiki-templates": "प्राकृतीः अनर्भावयतु ।",
        "import-interwiki-submit": "आयातं करोतु ।",
-       "import-interwiki-namespace": "लक्षितनामस्थानानि ।",
-       "import-interwiki-rootpage": "लक्षितमूलपुटम् । (ऐच्छिकम्)",
        "import-upload-filename": "सञ्चिकानाम",
        "import-comment": "टिप्पणी:",
        "importtext": "[[Special:Export|export utility]] एतेनानुबन्धेन स्रोतविकितः सञ्चिकानां निर्यातं करोतु । भवदीयसङ्गणके सुरक्ष्य अत्र उत्तारयतु ।",
        "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": "अङ्कननाम",
        "revdelete-uname-unhid": "योजकस्य नाम न लोपितम्",
        "revdelete-restricted": "प्रबन्धकानां प्रतिबन्धनानि आरोपितानि",
        "revdelete-unrestricted": "प्रबन्धकानां प्रतिबन्धनानि निष्कासितानि",
-       "logentry-move-move": "$1 इति प्रयोक्त्रा $3 इत्येतत् $4 इत्येतत् प्रति चालितम्",
+       "logentry-move-move": "$1 {{GENDER:$2|moved}} $3 पुटं $4 प्रति चालितम्",
        "logentry-move-move-noredirect": "$1 इति प्रयोक्त्रा $3 इति पृष्ठम् $4 इत्येतत् प्रति चालितं, अनुप्रेषणेन विना",
        "logentry-move-move_redir": "↓\n$1 इत्यनेन $3 इति पृष्ठम् $4 इत्येतत् प्रति चालितं, अनुप्रेषणम् अतिक्रम्य",
        "logentry-move-move_redir-noredirect": "$1 इति प्रयोक्त्रा $3 इति पृष्ठं $4 इत्येतत् प्रति चालितम्, अनुप्रेषणम् अतिक्रम्य, अनुप्रेषणमोचनेन च विना।",
        "logentry-rights-rights": "$1 इत्ययं $3 इत्यस्य समूहसदस्यतां $4 इत्यतः परिवर्त्य $5 इत्यकरोत्",
        "logentry-rights-rights-legacy": "$1, $3 इत्यस्मै समूहसदस्यतां पर्यवर्तयत्",
        "logentry-rights-autopromote": "$1 इत्ययं स्वचालितरूपेण $4 इत्यतः $5 इति यावत् पदोन्नतः",
+       "logentry-upload-upload": "$1 {{GENDER:$2|निवेशितम्}} $3",
        "rightsnone": "(कतम)",
        "revdelete-summary": "सम्पादनसांक्षेपिक",
        "feedback-adding": "पृष्ठे प्रतिस्पन्दः योजनीयः ...",
index 9b286de..86f7d25 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 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 11d3f2f..4a7696d 100644 (file)
        "import-interwiki-history": "Copia la ntera cronoluggìa di sta pàggina",
        "import-interwiki-templates": "Includi tutti li template",
        "import-interwiki-submit": "Mporta",
-       "import-interwiki-namespace": "Trasfirisci li pàggini ntô namespace:",
-       "import-interwiki-rootpage": "Pàggina ràdica di distinazzioni (facultativu):",
        "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à.",
index 6056a1d..c337c98 100644 (file)
        "import-interwiki-history": "Copie aw histerie reveesions fer this page",
        "import-interwiki-templates": "Incluid aw templates",
        "import-interwiki-submit": "Import",
-       "import-interwiki-namespace": "Desteenation namespace:",
-       "import-interwiki-rootpage": "Desteenation ruit page (aen optie):",
        "import-upload-filename": "Filename:",
        "import-comment": "Comment:",
        "importtext": "Please export the file fae the soorce wiki uising the [[Special:Export|export utilitie]].\nHain it til yer computer n uplaid it here.",
index cae219a..abe5406 100644 (file)
        "import-interwiki-history": "Taariki fillawey kul bere moɲoo woo se",
        "import-interwiki-templates": "Leetey kul dam",
        "import-interwiki-submit": "Dam",
-       "import-interwiki-namespace": "Toodoo maafarru:",
-       "import-interwiki-rootpage": "Toodoo linji moo (suuba-haya):",
        "import-upload-filename": "Tukumaa:",
        "import-comment": "Daara:",
        "importtext": "Tukoo fattandi ka hum aššil wiki ga nda [[Special:Export|fattandi goyjinaa]].\nA gaabu war ordinateroo ga nd'a zijandi ne.",
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..27b1838 100644 (file)
        "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\" සඳහා ගවේෂණ ප්‍රතිඵල",
        "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": "විස්තර සඟවන්න",
        "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-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": "සංස්කරණ",
        "tags": "නීතික ලෙසින් වෙනස් කල හැකි ටැගයන්",
        "tag-filter": "[[Special:Tags|ටැග]] පෙරහන:",
        "tag-filter-submit": "පෙරහන",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ටැගය|ටැග}}]]: $2)",
        "tags-title": "ටැගයන්",
        "tags-intro": "මෘදුකාංගය විසින් සංස්කරණයක් සිදුකල හැකි ටැගයන් මෙම පිටුවෙහි ලැයිස්තුගත කොට ඒවායේ තේරුම් දක්වා ඇත.",
        "tags-tag": " ටැග් නම",
        "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": "ප්‍රතිචාරය පිටුවට එක් කරමින් ...",
index b1eeec0..b5c989e 100644 (file)
@@ -29,7 +29,8 @@
                        "아라",
                        "Matthew Greg",
                        "Ата",
-                       "Macofe"
+                       "Macofe",
+                       "TomášPolonec"
                ]
        },
        "tog-underline": "Podčiarkovať odkazy:",
@@ -56,7 +57,7 @@
        "tog-shownumberswatching": "Zobraziť počet používateľov sledujúcich stránku",
        "tog-oldsig": "Súčasný podpis:",
        "tog-fancysig": "Považovať podpisy za wikitext (bez automatických odkazov)",
-       "tog-uselivepreview": "Používať živý náhľad (experimentálna funkcia)",
+       "tog-uselivepreview": "Používať živý náhľad",
        "tog-forceeditsummary": "Upozoriť ma, keď nevyplním zhrnutie úprav",
        "tog-watchlisthideown": "Skryť moje úpravy zo zoznamu sledovaných",
        "tog-watchlisthidebots": "Skryť úpravy botov zo zoznamu sledovaných",
        "october-date": "$1. októbra",
        "november-date": "$1. novembra",
        "december-date": "$1. decembra",
-       "pagecategories": "{{PLURAL:$1|Kategória|Kategórie|Kategórie}}",
+       "pagecategories": "{{PLURAL:$1|Kategória|Kategórie|Kategórií}}",
        "category_header": "Stránky v kategórii „$1“",
        "subcategories": "Podkategórie",
        "category-media-header": "Multimediálne súbory v kategórii „$1“",
        "personaltools": "Osobné nástroje",
        "articlepage": "Zobraziť stránku",
        "talk": "Diskusia",
-       "views": "Zobrazení",
+       "views": "Zobrazenia",
        "toolbox": "Nástroje",
        "userpage": "Zobraziť stránku používateľa",
        "projectpage": "Zobraziť projektovú stránku",
        "pool-queuefull": "Front je plný",
        "pool-errorunknown": "Neznáma chyba",
        "pool-servererror": "Služba riadiaca prístup k serverom nieje dostupná ($1).",
+       "poolcounter-usage-error": "Chyba použitia: $1",
        "aboutsite": "O {{GRAMMAR:lokál|{{SITENAME}}}}",
        "aboutpage": "Project:Úvod",
        "copyright": "Obsah je dostupný pod $1, pokiaľ nie je uvedené inak.",
        "disclaimers": "Vylúčenie zodpovednosti",
        "disclaimerpage": "Project:Vylúčenie zodpovednosti",
        "edithelp": "Ako upravovať stránku",
+       "helppage-top-gethelp": "Pomoc",
        "mainpage": "Hlavná stránka",
        "mainpage-description": "Hlavná stránka",
        "policy-url": "Project:Zásady a smernice",
        "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",
        "readonly_lag": "Databáza bola automaticky zamknutá pokým záložné databázové servery nedoženú hlavný server",
        "internalerror": "Vnútorná chyba",
        "internalerror_info": "Vnútorná chyba: $1",
+       "internalerror-fatal-exception": "Kritická výnimka typu „$1“",
        "filecopyerror": "Nebolo možné skopírovať súbor „$1“ na „$2“.",
        "filerenameerror": "Nebolo možné premenovať súbor „$1“ na „$2“.",
        "filedeleteerror": "Nebolo možné vymazať súbor „$1“.",
        "directorycreateerror": "Nebolo možné vytvoriť adresár „$1“.",
+       "directoryreadonlyerror": "Adresár \"$1\" je iba na čítanie.",
+       "directorynotreadableerror": "Adresár \"$1\" sa nedá čítať.",
        "filenotfound": "Nebolo možné nájsť súbor „$1“.",
        "unexpected": "Neočakávaná hodnota: „$1“=„$2“.",
        "formerror": "Chyba: nepodarilo sa odoslať formulár",
        "viewyourtext": "Môžete si prehliadnuť a skopírovať zdrojový kód <strong>vašich úprav</strong> tejto stránky:",
        "protectedinterface": "Táto stránka poskytuje text používateľského rozhrania tejto wiki a je zamknutá, aby sa predišlo jej zneužitiu.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
        "editinginterface": "'''Upozornenie:''' Upravujete stránku, ktorá poskytuje text používateľského rozhrania.\nZmeny tejto stránky ovplyvnia vzhľad používateľského rozhrania ostatným používateľom.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
+       "translateinterface": "Na pridanie a zmeny prekladov pre všetky wiki použite [//translatewiki.net/ translatewiki.net], projekt na lokalizáciu MediaWiki.",
        "cascadeprotected": "Táto stránka bola zamknutá proti úpravám, pretože je použitá na {{PLURAL:$1|nasledovnej stránke, ktorá je zamknutá|nasledovných stránkach, ktoré sú zamknuté}} voľbou „kaskádového zamknutia“:\n$2",
        "namespaceprotected": "Nemáte povolenie upravovať stránky v mennom priestore '''$1'''.",
        "customcssprotected": "Nemáte právo upravovať túto CSS stránku, pretože obsahuje osobné nastavenie iného používateľa.",
        "currentrev": "Aktuálna verzia",
        "currentrev-asof": "Aktuálna revízia z $1",
        "revisionasof": "Verzia zo dňa a času $1",
-       "revision-info": "Revízia z $1; $2",
+       "revision-info": "Verzia z $1, ktorú {{GENDER:$6|vytvoril|vytvorila}} $2$7",
        "previousrevision": "← Staršia verzia",
        "nextrevision": "Novšia verzia →",
        "currentrevisionlink": "Aktuálna úprava",
        "showhideselectedversions": "Zobraziť/skryť vybrané revízie",
        "editundo": "vrátiť",
        "diff-empty": "(Žiaden rozdiel)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Jedna medziľahlá úprava|$1 medziľahlé úpravy|$1 medziľahlých úprav}} od rovnakého používateľa.)",
        "diff-multi-manyusers": "({{PLURAL:$1|$1 medziľahlá revízia|$1 medziľahlé revízie|$1 medziľahlých revízií}} od viac ako {{PLURAL:$2|$2 používateľa|$2 používateľov}} {{PLURAL:$1|nie je zobrazená|nie sú zobrazené|nie je zobrazených}})",
        "difference-missing-revision": "{{PLURAL:$2|$2 revízia|$2 revízie|$2 revízií}} pre požadovaný rozdiel ($1) {{PLURAL:$2|neexistuje|neexistujú|neexistuje}}.\n\nPravdepodobne ste nasledovali zastaraný odkaz na rozdiel revízií, z ktorých niektorá bola medzičasom odstránená.\nPodrobnosti nájdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} zázname zmazaní].",
        "searchresults": "Výsledky vyhľadávania",
        "searchrelated": "súvisiace",
        "searchall": "všetko",
        "showingresults": "Nižšie {{PLURAL:$1|je zobrazený jeden výsledok|sú zobrazené '''1''' výsledky|je zobrazených '''$1''' výsledkov}}, počnúc od  #<b>$2</b>.",
+       "search-showingresults": "{{PLURAL:$4|Výsledok <strong>$1</strong> z <strong>$3</strong>|Výsledky <strong>$1 - $2</strong> z <strong>$3</strong>}}",
        "search-nonefound": "Vyhľadávanie nenašlo žiadne výsledky.",
        "powersearch-legend": "Pokročilé hľadanie",
        "powersearch-ns": "Hľadať v menných priestoroch:",
        "import-interwiki-history": "Skopírovať všetky historické revízie tejto stránky",
        "import-interwiki-templates": "Vložiť všetky šablóny",
        "import-interwiki-submit": "Importovať",
-       "import-interwiki-namespace": "Cieľový menný priestor:",
-       "import-interwiki-rootpage": "Koreňová stránka cieľa (nepovinné):",
        "import-upload-filename": "Názov súboru:",
        "import-comment": "komentár:",
        "importtext": "Prosím, exportujte súbor zo zdrojovej wiki použitím [[Special:Export|nástroja na export]].\nUložte ho na svoj disk a nahrajte sem.",
        "tooltip-pt-mycontris": "Zoznam vašich príspevkov",
        "tooltip-pt-login": "Odporúčame vám prihlásiť sa, nie je to však povinné.",
        "tooltip-pt-logout": "Odhlásiť",
+       "tooltip-pt-createaccount": "Odporúčame vytvoriť si vlastný účet a prihlásiť sa, nie je to však povinné.",
        "tooltip-ca-talk": "Diskusia o obsahu stránky",
        "tooltip-ca-edit": "Môžete upravovať túto stránku. Prosím, pred uložením použite tlačidlo Zobraziť náhľad.",
        "tooltip-ca-addsection": "Začať novú sekciu",
        "tooltip-search": "Vyhľadávanie na {{GRAMMAR:datív|{{SITENAME}}}}",
        "tooltip-search-go": "Prejsť na stránku s presne takýmto názvom, ak existuje",
        "tooltip-search-fulltext": "Hľadať tento text na stránkach",
-       "tooltip-p-logo": "Navštívte Hlavnú stránku",
+       "tooltip-p-logo": "Navštív Hlavnú stránku",
        "tooltip-n-mainpage": "Navštíviť Hlavnú stránku",
        "tooltip-n-mainpage-description": "Navštíviť hlavnú stránku",
        "tooltip-n-portal": "O projekte, ako môžete prispieť, kde čo nájsť",
        "tooltip-n-currentevents": "Aktuálne udalosti a ich pozadie",
-       "tooltip-n-recentchanges": "Zoznam posledných úprav na wiki.",
+       "tooltip-n-recentchanges": "Zoznam posledných úprav na wiki",
        "tooltip-n-randompage": "Zobraziť náhodnú stránku",
        "tooltip-n-help": "Miesto, kde sa môžete dozvedieť",
        "tooltip-t-whatlinkshere": "Zoznam všetkých wiki stránok, ktoré sem odkazujú",
        "metadata-help": "Tento súbor obsahuje ďalšie informácie, pravdepodobne pochádzajúce z digitálneho fotoaparátu či skenera, ktorý ho vytvoril alebo digitalizoval. Ak bol súbor zmenený, niektoré podrobnosti sa nemusia plne zhodovať so zmeneným súborom.",
        "metadata-expand": "Zobraziť detaily EXIF",
        "metadata-collapse": "Skryť detaily EXIF",
-       "metadata-fields": "Metadáta obrázka uvedené v tejto správe budú zahrnuté na stránke obrázka, keď je tabuľka metadát zbalená.\nOstatné budú predvolene skryté.\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": "Metadáta obrázka uvedené v tejto správe budú zahrnuté na stránke obrázka, keď bude tabuľka metadát zbalená.\nOstatné budú predvolene skryté.\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": "Šírka",
        "exif-imagelength": "Výška",
        "exif-bitspersample": "Bitov na zložku",
        "logentry-rights-rights": "$1 zmenil členstvo $3 v skupinách z $4 na $5",
        "logentry-rights-rights-legacy": "$1 zmenil členstvo $3 v skupinách",
        "logentry-rights-autopromote": "$1 bol automaticky povýšený z $4 na $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|pridal|pridala}} $3",
        "rightsnone": "(žiadne)",
        "revdelete-summary": "zhrnutie úprav",
        "feedback-adding": "Pridáva sa komentár na stránku...",
index 1f7efc7..e99bc7a 100644 (file)
@@ -9,7 +9,8 @@
                        "Vadgt",
                        "Yerpo",
                        "아라",
-                       "MaGa"
+                       "MaGa",
+                       "Skalcaa"
                ]
        },
        "tog-underline": "Podčrtavanje povezav:",
        "import-interwiki-history": "Kopiraj vse dosedanje redakcije te strani",
        "import-interwiki-templates": "Vključi vse predloge",
        "import-interwiki-submit": "Uvozi",
-       "import-interwiki-namespace": "Prenesi strani v imenski prostor:",
-       "import-interwiki-rootpage": "Ciljna korenska stran (neobvezno):",
+       "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:",
        "import-comment": "Komentar:",
        "importtext": "Prosimo, izvozite datoteko z izvornega wikija s pomočjo [[Special:Export|orodja za izvoz]].\nShranite jo na vaš računalnik in naložite tukaj.",
        "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 79b7d88..a6c9c59 100644 (file)
        "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|резултат|резултата|резултата}} по страници",
        "import-interwiki-history": "Копирај све верзије историје за ову страницу",
        "import-interwiki-templates": "Укључи све шаблоне",
        "import-interwiki-submit": "Увези",
-       "import-interwiki-namespace": "Одредишни именски простор:",
-       "import-interwiki-rootpage": "Одредишна основна страница (необавезно):",
        "import-upload-filename": "Назив датотеке:",
        "import-comment": "Коментар:",
        "importtext": "Извезите датотеку с изворног викија користећи [[Special:Export|извоз]].\nСачувајте је на рачунар и пошаљите овде.",
        "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..1ad6b7e 100644 (file)
        "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 db56461..17bdc05 100644 (file)
        "import-interwiki-history": "Salin sakabéh vérsi jujutan pikeun ieu kaca",
        "import-interwiki-templates": "Kaasup sakabéh citakan",
        "import-interwiki-submit": "Impor",
-       "import-interwiki-namespace": "Spasi ngaran tujuan:",
        "import-upload-filename": "Ngaran berkas:",
        "import-comment": "Ringkesan:",
        "importtext": "Mangga ékspor koropakna ti sumber nu dipaké ku wiki migunakeun fungsi Special:Export, simpen na piringan anjeun, teras muatkeun di dieu.",
index ab0b0da..f54e92c 100644 (file)
        "logempty": "Inga matchande träffar i loggen.",
        "log-title-wildcard": "Sök efter sidtitlar som börjar med texten",
        "showhideselectedlogentries": "Visa/Dölj markerade loggposter",
+       "log-edit-tags": "Redigera märken i valda loggposter",
        "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-interwiki-namespace": "Målnamnrymd:",
-       "import-interwiki-rootpage": "Destinationens grundsida (valfri):",
+       "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": "Du uppmuntras att logga in, men det är inte nödvändigt",
+       "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-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 märken 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-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",
index 878be69..a46d488 100644 (file)
        "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 c4be101..812277b 100644 (file)
        "import-interwiki-text": "Wybjer wiki i nmjano zajty do importowańo.\nDaty a tyž mjana autorůw bydům zachowane.\nWšyjstke uoperacyje importu transwiki sům uodnotowywane w [[Special:Log/import|rejeře importu]].",
        "import-interwiki-history": "Kopjuj couko historja sprowjyń tyi zajty",
        "import-interwiki-submit": "Importuj",
-       "import-interwiki-namespace": "Docelowo przestrzyń mjan:",
        "import-upload-filename": "Mjano plika:",
        "import-comment": "Kůmyntorz:",
        "importtext": "Używajůnc werkcojga [[Special:Export|eksportuj]] wyeksportuj plik ze zdrzůdłowyj wiki, naszkryflej go na swojym dysku, a potym wćepńij go tukej.",
index 2cfe460..6befde3 100644 (file)
@@ -37,7 +37,8 @@
                        "Kalyanasundar",
                        "தமிழ்த்தம்பி",
                        "Macofe",
-                       "AntanO"
+                       "AntanO",
+                       "கலைவாணன்"
                ]
        },
        "tog-underline": "இணைப்புகளுக்கு அடிக்கோடிடு",
        "otherlanguages": "மற்ற மொழிகளில்",
        "redirectedfrom": "($1 இலிருந்து வழிமாற்றப்பட்டது)",
        "redirectpagesub": "பக்கவழிமாற்றுப் பக்கம்",
+       "redirectto": "வழிமாற்றவும்:",
        "lastmodifiedat": "இப்பக்கம் கடைசியாக $1, $2 மணிக்குத் திருத்தப்பட்டது.",
        "viewcount": "இப்பக்கம் {{PLURAL:$1|ஒரு முறை|$1 முறைகள்}} அணுகப்பட்டது.",
        "protectedpage": "காக்கப்பட்ட பக்கம்",
        "suspicious-userlogout": "உங்கள் விடுபதிகை கோரிக்கை மறுக்கப்பட்டது ஏனென்றால் அது அறுபட்ட உலாவி அல்லது மாற்று இடைக்கிடங்கியால் அனுப்பப்பட்டுள்ளது.",
        "createacct-another-realname-tip": "உண்மையான பெயர் கட்டாயமற்றது.\nநீங்கள் இதை கொடுத்தால் உங்கள் ஆக்கங்களுக்கான உரிமையளிப்புகளின் போது இது பயன்படும்.",
        "pt-login": "புகுபதிகை",
+       "pt-login-button": "புகுபதிகை",
        "pt-createaccount": "புதிய கணக்கை உருவாக்கவும்",
        "pt-userlogout": "விடுபதிகை",
        "php-mail-error-unknown": "PHP 's mail() செயல்பாட்டில் அறியப்படாத பிழை.",
        "preview": "முன்தோற்றம்",
        "showpreview": "முன்தோற்றம் காட்டு",
        "showdiff": "மாற்றங்களைக் காட்டு",
-       "anoneditwarning": "'''எச்சரிக்கை:''' நீங்கள் புகுபதிகை செய்யவில்லை.\nஉங்கள் ஐ.பி. முகவரி இப்பக்கத்தின் தொகுப்பு வரலாற்றில் பதிவு செய்யப்படும்.",
+       "anoneditwarning": "<strong>எச்சரிக்கை:</strong> நீங்கள் புகுபதிகை செய்யவில்லை. நீங்கள் தொகுத்தால் உங்கள் ஐ.பி. முகவரி எல்லோருக்கும் தெரியும்படி இருக்கும். நீங்கள் <strong>[$1 புகுபதிகை செய்தாலோ]</strong> அல்லது <strong>[$2 புதிய கணக்கு உருவாக்கினாலோ]</strong>, பிற பயன்களோடு நீங்கள் செய்யும் தொகுப்புகள் உங்கள் பயனர் பெயரோடு தொடர்புப்படுத்திக்காட்டப்படும்.",
        "anonpreviewwarning": "நீங்கள் புகுபதிகை செய்யவில்லை. இந்த பக்கத்தை சேமித்தால் உஙகள் ஐ.பி. முகவரி இதன் வரலாற்றுப் பக்கத்தில் பதிவாகும்.",
        "missingsummary": "'''நினைவூட்டல்:''' நீர் தொகுப்புச் சுருக்கமொன்றைக் கொடுக்கவில்லை.\nஇன்னொரு முறை பக்கத்தை சேமி என்பதை அழுத்தினால் உங்கள் தொகுப்பு சுருக்கமெதுவுமில்லாமல் சேமிக்கப்படும்.",
        "missingcommenttext": "கீழே சுருக்கமொன்றக் குறிப்பிடவும்.",
        "currentrev": "நடைமுறையிலுள்ள திருத்தம்",
        "currentrev-asof": "$1 இல் கடைசித் திருத்தம்",
        "revisionasof": "$1 இல் நிலவும் திருத்தம்",
-       "revision-info": "$2 பயனரால் செய்யப்பட்ட $1 அன்றிருந்தவாரான திருத்தம்",
+       "revision-info": "{{GENDER:$6|$2}} பயனரால் செய்யப்பட்ட $1 அன்றிருந்தவாரான திருத்தம்$7",
        "previousrevision": "←முந்தைய தொகுப்பு",
        "nextrevision": "புதிய தொகுப்பு→",
        "currentrevisionlink": "நடப்பிலுள்ள திருத்தம்",
        "shown-title": "ஒரு பக்கத்திற்கு $1 {{PLURAL:$1|முடிவு|முடிவுகள்}} காட்டவும்",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) பக்கங்களைப் பார்.",
        "searchmenu-exists": "'''\"[[:$1]]\" என்னும் பெயருடைய பக்கம் இந்த விக்கியில் உள்ளது'''",
-       "searchmenu-new": "'''\"[[:$1]]\" பக்கத்தை இந்த விக்கியில் உருவாக்கவும்!'''",
+       "searchmenu-new": "<strong>\"[[:$1]]\" பக்கத்தை இந்த விக்கியில் உருவாக்கவும்!</strong> {{PLURAL:$2|0=|உங்கள் தேடல் மூலம் கண்டுபிடிக்கப்பட்டப்பக்கத்தைக் காண்க.| தேடல் முடிவுகளை காண்க.}}",
        "searchprofile-articles": "உள்ளடக்கப் பக்கங்களின் பட்டியல்",
        "searchprofile-images": "பல்லூடகம்",
        "searchprofile-everything": "எல்லாம்\n\nஅத்தனையும்",
        "action-editmywatchlist": "உங்கள் கவனிப்பு பட்டியலை தொகு",
        "action-viewmywatchlist": "உங்கள் கவனிப்பு பட்டியலை பார்",
        "nchanges": "{{PLURAL:$1|ஓர் மாற்றம்|$1 மாற்றங்கள்}}",
+       "enhancedrc-history": "வரலாறு",
        "recentchanges": "அண்மைய மாற்றங்கள்",
        "recentchanges-legend": "அண்மைய மாற்றங்களின் தேர்வுகள்",
        "recentchanges-summary": "இந்த விக்கிக்கு மிக அண்மையில் செய்யப்பட்ட மாற்றங்களை, இந்தப் பக்கத்தில் காணலாம்.",
        "recentchanges-label-minor": "இது ஒரு சிறு தொகுப்பு",
        "recentchanges-label-bot": "இந்த தொகுப்பானது ஒரு தானியங்கியால் செய்யப்பட்டதாகும்",
        "recentchanges-label-unpatrolled": "இந்த  தொகுப்பு  இன்னும் ரோந்திடப்படவில்லை",
-       "recentchanges-legend-newpage": "$1 - புதிய பக்கம்",
+       "recentchanges-label-plusminus": "இத்தனை பைட்டுகளுக்கு பக்கத்தின் அளவு மாற்றப்பட்டுள்ளது",
+       "recentchanges-legend-heading": "'''குறியீட்டு விளக்கம்:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|புதிய பக்கங்கள் பட்டியலையும்]] காணவும்)",
        "rcnotefrom": "கீழே காணப்படுவது '''$2''' இலிருந்து செய்யப்பட்ட மாற்றங்களாகும் ('''$1''' வரைக் காட்டப்பட்டுள்ளது).",
        "rclistfrom": "$3 $2 தொடக்கம் செய்யப்பட்ட புதிய மாற்றங்களைக் காட்டவும்",
        "rcshowhideminor": "சிறிய தொகுப்புகளை $1",
+       "rcshowhideminor-show": "காட்டு",
+       "rcshowhideminor-hide": "மறை",
        "rcshowhidebots": "தானியங்கிகளை $1",
-       "rcshowhideliu": "புகுபதிகை செய்த பயனர்களை $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": "வேறுபாடு",
        "hist": "வரலாறு",
        "import-interwiki-history": "இப்பக்கத்தின் அனைத்து வரலாற்றுப் பதிப்புகளையும் நகலெடு",
        "import-interwiki-templates": "அனைத்து வார்ப்புருக்களையும் சேர்",
        "import-interwiki-submit": "இறக்கு",
-       "import-interwiki-namespace": "பின்வரும் பெயர்வெளிக்கு மாற்று:",
+       "import-mapping-default": "வழக்கமான இடங்களுக்கு இறக்குமதி செய்யவும்",
+       "import-mapping-namespace": "ஏதேனும் ஓர் பெயர்வெளிக்கு இறக்குமதி செய்யவும்:",
+       "import-mapping-subpage": "பின் வரும் பக்கத்தை துணை பக்கங்களாக இறக்குமதி செய்யவும்:",
        "import-upload-filename": "கோப்புப்பெயர்:",
        "import-comment": "கருத்து:",
        "importtext": "தயவுசெய்து மூல விக்கியிலிருந்து [[Special:Export|ஏற்றுமதி அம்சத்தைப்]] பயன்படுத்தி கோப்பை ஏற்றுமதி செய்யவும்.\nஉங்கள் கணினியில் இதை சேமித்து பிறகு அக்கோப்பை இங்கே பதிவேற்றவும்.",
        "tooltip-pt-mycontris": "உங்கள் பங்களிப்புக்களின் பட்டியல்",
        "tooltip-pt-login": "நீங்கள் புகுபதிகை செய்ய ஊக்குவிக்கப்படுகிறீர்கள், ஆனால் இது கட்டாயமன்று.",
        "tooltip-pt-logout": "விடுபதிகை",
+       "tooltip-pt-createaccount": "நீங்கள் ஒரு பயனர் கணக்கைத் துவங்கி உள்புக வரவேற்கப்படுகிறீர்கள்; எனினும் இது கட்டாயம் அல்ல.",
        "tooltip-ca-talk": "உள்ளடக்கப் பக்கம் தொடர்பான உரையாடல் பக்கம்",
        "tooltip-ca-edit": "நீங்கள் இப்பக்கத்தைத் தொகுக்க முடியும். \"முன்தோற்றம் காட்டு\" பொத்தானைப் பயன்படுத்திய பின்னர் உங்கள் மாற்றங்களை சேமிக்கவும்.",
        "tooltip-ca-addsection": "புதிய பகுதியைத் தொடங்கு",
        "revdelete-uname-unhid": "பயனர் பெயர் மறைக்கப்பட்டது நீக்கப்பட்டுள்ளது.",
        "revdelete-restricted": "நிர்வாகிகளுக்கு கட்டுப்பாடுகள் விதிக்கப்பட்டது",
        "revdelete-unrestricted": "நிர்வாகிகளின் கட்டுப்பாடுகள் நீக்கப்பட்டது",
-       "logentry-move-move": "$1 à®ªà®¯à®©à®°à®¾à®²à¯\8d $3, $4 à®\8eனà¯\8dà®± à®¤à®²à¯\88பà¯\8dபà¯\81à®\95à¯\8dà®\95à¯\81 à®¨à®\95à®°à¯\8dதà¯\8dதபà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளதà¯\81.",
+       "logentry-move-move": "$1 à®ªà®\95à¯\8dà®\95à®®à¯\8d $3-à®\90 $4à®\95à¯\8dà®\95à¯\81 {{GENDER:$2|நà®\95à®°à¯\8dதà¯\8dதினாரà¯\8d}}",
        "logentry-move-move-noredirect": "$1, $3 பக்கத்தை $4 என்ற தலைப்புக்கு வழிமாற்று இன்றி நகர்த்தியுள்ளார்",
        "logentry-move-move_redir": "$1 பக்கம் $3 ஐ $4 க்கு முன்னிருந்த வழிமாற்றின் மேலாக நகர்த்தியுள்ளார்",
        "logentry-move-move_redir-noredirect": "$1 பக்கம் $3 ஐ $4 க்கு முன்னிருந்த வழிமாற்றின் மேலாக, இன்னொரு வழிமாற்றின்றி நகர்த்தியுள்ளார்",
        "logentry-patrol-patrol": "பக்கம் $3 இன்  திருத்தம் $4 ஐ  $1 பார்வையிட்டுக் குறிக்கப்பட்டது. .",
        "logentry-patrol-patrol-auto": "தானாக  பக்கம்  $3  ன் பரிசீலனை  $4   ஆனது ரோந்து செய்யப்பட்டது என $1 குறியிடப்பட்டது. .",
        "logentry-newusers-newusers": "பயனர் கணக்கு $1 உருவாக்கப்பட்டது",
-       "logentry-newusers-create": "$1 à®\92à®°à¯\81 à®ªà¯\81திய à®ªà®¯à®©à®°à¯\8d à®\95ணà®\95à¯\8dà®\95à¯\88 à®\89à®°à¯\81வாà®\95à¯\8dà®\95ியà¯\81ளà¯\8dளாரà¯\8d.",
+       "logentry-newusers-create": "$1 à®ªà¯\81திய à®ªà®¯à®©à®°à¯\8d à®\95ணà®\95à¯\8dà®\95à¯\81 à®\89à®°à¯\81வாà®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளதà¯\81.",
        "logentry-newusers-create2": "$3 பயனர் கணக்கினை $1 உருவாக்கினார்",
        "logentry-newusers-autocreate": "பயனர் கணக்கு $1 தானாக உருவாக்கப்பட்டது",
+       "logentry-upload-upload": "$1 $3ஐ {{GENDER:$2|பதிவேற்றினார்}}",
        "rightsnone": "(எதுவுமில்லை)",
        "revdelete-summary": "தொகுப்பு சுருக்கத்தை",
        "feedback-adding": "பக்கத்தில் கருத்தைச் சேர்க்கிறது...",
index ebcdbfb..80b656d 100644 (file)
        "revdelete-submit": "ఎంచుకున్న {{PLURAL:$1|కూర్పుకు|కూర్పులకు}} ఆపాదించు",
        "revdelete-success": "కూర్పు కనబడే విధానాన్ని జయప్రదంగా తాజాకరించాం.",
        "revdelete-failure": "కూర్పు కనబడే పద్ధతిని తాజాపరచలేకపోయాం:\n$1",
-       "logdelete-success": "à°\98à°\9fà°¨ à°\95నబడà±\87 à°µà°¿à°§à°¾à°¨à°¾à°¨à±\8dని à°\9cయపà±\8dà°°à°¦à°\82à°\97à°¾ à°¸à±\86à°\9fà±\8d à°\9aà±\87à°¸ాం.",
+       "logdelete-success": "à°\98à°\9fà°¨ à°\95నబడà±\87 à°µà°¿à°§à°¾à°¨à°¾à°¨à±\8dని à°\9cయపà±\8dà°°à°¦à°\82à°\97à°¾ à°\85మరà±\8dà°\9aాం.",
        "logdelete-failure": "'''చిట్టా కనబడే పద్ధతిని అమర్చలేకపోయాం:'''\n$1",
        "revdel-restore": "దృశ్యతని మార్చు",
        "pagehist": "పేజీ చరిత్ర",
        "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 076825a..a337bdd 100644 (file)
        "import-interwiki-text": "Як вики ва як номи саҳифаро интихоб кунед, то иттилоот аз он ворид шавад.\nТаърихи нусхаҳо ва номҳои вироишкунандагон сабт хоҳанд монд.\nИттилооти марбут ба ворид кардани саҳифаҳо дар [[Special:Log/import|гузоришҳои воридот]] сабт хоҳад шуд.",
        "import-interwiki-history": "Тамоми таърихи нусхаҳои ин саҳифа интиқол дода шавад",
        "import-interwiki-submit": "Ворид шавад",
-       "import-interwiki-namespace": "Фазои номи мақсад:",
        "import-upload-filename": "Номи парванда:",
        "import-comment": "Тавзеҳ:",
        "importtext": "Лутфан парвандаро аз вики манбаъ содир кунед, аз тариқи саҳифа [[Special:Export|абзори содирот]].\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 987b155..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": "(หลัก)",
        "import-interwiki-history": "คัดลอกประวัติทั้งหมดในหน้านี้",
        "import-interwiki-templates": "รวมแม่แบบทั้งหมด",
        "import-interwiki-submit": "นำเข้า",
-       "import-interwiki-namespace": "เนมสเปซปลายทาง:",
        "import-upload-filename": "ชื่อไฟล์:",
        "import-comment": "ความเห็น:",
        "importtext": "กรุณาส่งออกไฟล์จากวิกิต้นทางโดยใช้[[Special:Export|เครื่องมือส่งออก]]\nบันทึกลงคอมพิวเตอร์ของคุณ และอัปโหลดที่นี่",
        "pageinfo-protect-cascading-yes": "ใช่",
        "pageinfo-protect-cascading-from": "การล็อกสืบทอดจาก",
        "pageinfo-category-info": "สารสนเทศหมวดหมู่",
+       "pageinfo-category-total": "จำนวนสมาชิกรวม",
        "pageinfo-category-pages": "จำนวนหน้า",
        "pageinfo-category-subcats": "จำนวนหมวดหมู่ย่อย",
        "pageinfo-category-files": "จำนวนไฟล์",
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 63528e3..93bc155 100644 (file)
                        "Ayrıntılı Bilgi",
                        "Gokalpselamet",
                        "Macofe",
-                       "Nighteagle2000"
+                       "Nighteagle2000",
+                       "Watermelon juice",
+                       "Ömer Berkay"
                ]
        },
        "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": "Geridönüş 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",
        "wrongpassword": "Parolayı yanlış girdiniz. Lütfen tekrar deneyiniz.",
        "wrongpasswordempty": "Boş parola girdiniz. Lütfen tekrar deneyiniz.",
        "passwordtooshort": "Parolalar en az {{PLURAL:$1|1 karakter|$1 karakter}} uzunluğunda olmalı.",
+       "passwordtoolong": "Parolalar en az {{PLURAL:$1|1 karakter|$1 karakter}} uzunluğunda olmalı.",
        "password-name-match": "Şifreniz kullanıcı adınızdan farklı olmalıdır.",
        "password-login-forbidden": "Bu kullanıcı adı ve şifre kullanımı yasaklanmıştır",
        "mailmypassword": "Parolayı sıfırla",
        "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",
        "missingcommentheader": "'''Hatırlatma:''' Bu yorum için bir konu/başlık sunmadınız. Eğer \"{{int: savearticle}}\" tuşuna tekrar basarsanız, değişikliğiniz konu/başlık olmadan kaydedilecektir.",
        "summary-preview": "Ön izleme özeti:",
        "subject-preview": "Konu/Başlık ön izlemesi:",
+       "previewerrortext": "Yaptığınız değişikliklerin önizlemesi sırasında bir hata oluştu.",
        "blockedtitle": "Kullanıcı erişimi engellendi.",
        "blockedtext": "'''Kullanıcı adı veya IP adresiniz engellenmiştir.'''\n\nSizi engelleyen hizmetli: $1.<br />\nEngelleme sebebi: ''$2''.\n\n* Engellenmenin başlangıcı: $8\n* Engellenmenin bitişi: $6\n* Engellenme süresi: $7\n\nBelirtilen nedene göre engellenmenizin uygun olmadığını düşünüyorsanız, $1 ya da başka bir [[{{MediaWiki:Grouppage-sysop}}|hizmetli]] ile bu durumu görüşebilirsiniz. [[Special:Preferences|Tercihlerim]] kısmında geçerli bir e-posta adresi girmediyseniz \"Kullanıcıya e-posta gönder\" özelliğini kullanamazsınız, tercihlerinize e-posta adresinizi eklediğinizde e-posta gönderme hakkına sahip olacaksınız.\n<br />Şu anki IP adresiniz $3, engellenme numaranız #$5.\n<br />Bir hizmetliden durumunuz hakkında bilgi almak istediğinizde veya herhangi bir sorguda bu bilgiler gerekecektir, lütfen not ediniz.",
        "autoblockedtext": "IP adresiniz otomatik olarak engellendi, çünkü $1 tarafından engellenmiş başka bir kullanıcı tarafından kullanılmaktaydı.\nBelirtilen sebep şudur:\n\n:''$2''\n\n* Engellemenin başlangıcı: $8\n* Engellemenin bitişi: $6\n* Bloke edilmesi istenen: $7\n\nEngelleme hakkında tartışmak için $1 ile veya diğer [[{{MediaWiki:Grouppage-sysop}}|hizmetlilerden]] biriyle irtibata geçebilirsiniz.\n\nNot, [[Special:Preferences|kullanıcı tercihlerinize]] geçerli bir e-posta adresi kaydetmediyseniz  \"kullanıcıya e-posta gönder\" özelliğinden faydalanamayabilirsiniz ve bu özelliği kullanmaktan engellenmediniz.\n\nŞu anki IP numaranız $3 ve engellenme ID'niz #$5.\nLütfen yapacağınız herhangi bir sorguda yukarıdaki bütün detayları bulundurun.",
        "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:",
        "prefs-rc": "Son değişiklikler",
        "prefs-watchlist": "İzleme listesi",
        "prefs-editwatchlist": "İzleme listesini düzenle",
-       "prefs-editwatchlist-label": "İzleme listesinizdeki girişleri düzenle",
-       "prefs-editwatchlist-edit": "İzleme listesini gör ve düzenle",
+       "prefs-editwatchlist-label": "İzleme listenizdeki girişleri düzenleyin:",
+       "prefs-editwatchlist-edit": "İzleme listenizdeki başlıkları görüntüleyin ve düzenleyin",
        "prefs-editwatchlist-raw": "Ham izleme listesini düzenle",
-       "prefs-editwatchlist-clear": "İzleme listesini temizle",
+       "prefs-editwatchlist-clear": "İzleme listenizi temizleyin",
        "prefs-watchlist-days": "İzleme listesinde görüntülenecek gün sayısı:",
        "prefs-watchlist-days-max": "en fazla $1 {{PLURAL:$1|gün|gün}}",
        "prefs-watchlist-edits": "Genişletilmiş izleme listesinde gösterilecek değişiklik sayısı:",
        "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).",
+       "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",
        "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-removegroup-self": "Kendi hesabından {{PLURAL:$2|grup|grupları}} çıkarabilir: $1",
        "listgrouprights-addgroup-self-all": "Kendi hesabına tüm grupları ekleyebilir",
        "listgrouprights-removegroup-self-all": "Kendi hesabından tüm grupları çıkarabilir",
+       "listgrouprights-namespaceprotection-header": "Ad kısıtlamaları",
+       "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",
        "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",
        "sp-contributions-newbies-title": "Yeni hesaplar için kullanıcı katkıları",
        "sp-contributions-blocklog": "Engel kaydı",
+       "sp-contributions-suppresslog": "Silinen kullanıcı katkıları",
        "sp-contributions-deleted": "silinen kullanıcı katkıları",
        "sp-contributions-uploads": "yüklenenler",
        "sp-contributions-logs": "kayıtlar",
        "unblocked": "[[User:$1|$1]] - engelleme kaldırıldı",
        "unblocked-range": "$1 engeli kaldırıldı",
        "unblocked-id": "$1 engeli çıkarıldı",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] engellenmiştir.",
        "blocklist": "Engellenmiş kullanıcılar",
        "ipblocklist": "Engellenmiş kullanıcılar",
        "ipblocklist-legend": "Engellenen kullanıcı ara",
        "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-interwiki-namespace": "Hedef ad alanı:",
-       "import-interwiki-rootpage": "Hedeflenen kaynak sayfası (isteğe bağlı):",
+       "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.",
        "pageinfo-protect-cascading-yes": "Evet",
        "pageinfo-protect-cascading-from": "Korumalar üzerinden geçiş",
        "pageinfo-category-info": "Kategori bilgileri",
+       "pageinfo-category-total": "Üye sayısı",
        "pageinfo-category-pages": "Sayfa sayısı",
        "pageinfo-category-subcats": "Alt kategori sayısı",
        "pageinfo-category-files": "Dosya sayısı",
        "patrol-log-page": "Kontrol kaydı",
        "patrol-log-header": "Bu gözlenmiş revizyonların günlüğüdür.",
        "log-show-hide-patrol": "Gözetim günlüğünü $1",
+       "log-show-hide-tag": "$1 Etiket günlüğü",
        "deletedrevision": "$1 sayılı eski sürüm silindi.",
        "filedeleteerror-short": "$1 dosyanın silinmesinde hata oldu",
        "filedeleteerror-long": "Dosyayı silerken hatalarla karşılaşıldı:\n\n$1",
        "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ü",
        "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-tag": "Etiket adı",
        "tags-display-header": "Değişiklik listelerindeki görünüm",
        "tags-description-header": "Anlamının tam açıklaması",
+       "tags-source-header": "Kaynak",
        "tags-active-header": "Etkin?",
        "tags-hitcount-header": "Etiketli değişiklikler",
+       "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-activate": "Etkinleştir",
+       "tags-deactivate": "Devre dışı bırakma",
        "tags-hitcount": "$1 {{PLURAL:$1|değişiklik|değişiklik}}",
+       "tags-manage-no-permission": "Yeni sayfalar oluşturmaya yetkiniz yok.",
+       "tags-create-heading": "Yeni bir öge oluştur",
+       "tags-create-explanation": "Varsayılan olarak, Yeni oluşturulan etiketlerin hazır hale getirilmesi kullanıcılar ve botlar tarafından yapılacaktır.",
+       "tags-create-tag-name": "Etiket adı:",
+       "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",
        "compare-page2": "Sayfa 2",
        "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",
        "searchsuggest-search": "Ara",
        "searchsuggest-containing": "içeren...",
        "api-error-badaccess-groups": "Bu wiki için dosya yüklemenize izin verilmiyor.",
        "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ışı''')",
        "mediastatistics": "Medya istatistikleri",
        "mediastatistics-summary": "Karşıya yüklenen dosya türlerine ilişkin istatistikler. Bu yalnızca bir dosyanın en son sürümünü içerir. Eski veya silinen dosyala sürümleri hariç tutulur.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 byte}} ($2; $3%)",
        "special-characters-group-gujarati": "Gücerat",
        "special-characters-group-thai": "Tay",
        "special-characters-group-lao": "Lao",
-       "special-characters-group-khmer": "Kmer"
+       "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 e3d1e0e..26e9bc8 100644 (file)
        "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": "(запис журналу вилучений)",
        "right-viewsuppressed": "Перегляд змін, приховаих від усіх користувачів",
        "right-suppressionlog": "перегляд приватних журналів",
        "right-block": "заборона редагувань для інших дописувачів",
-       "right-blockemail": "Блокувати користувача від надсилання електронної",
+       "right-blockemail": "Блокування користувача від надсилання електронної пошти",
        "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-interwiki-namespace": "Цільовий простір назв:",
-       "import-interwiki-rootpage": "Коренева сторінка (необов'язково):",
+       "import-mapping-namespace": "Імпортувати до простору назв:",
        "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-not-allowed-one": "Мітку «$1» не можна додавати вручну.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Таку мітку|Такі мітки}} не можна додавати вручну: $1",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Таку мітку|Такі мітки}} не можна додавати вручну: $1",
+       "tags-update-remove-not-allowed-one": "Мітку «$1» не дозволено вилучати.",
+       "tags-edit-title": "Редагувати мітки",
+       "tags-edit-revision-legend": "Додати або вилучити мітки з {{PLURAL:$1|цієї версії|усіх $1 версій}}",
+       "tags-edit-existing-tags": "Існуючі мітки:",
+       "tags-edit-new-tags": "Нові мітки:",
+       "tags-edit-add": "Додати ці мітки:",
+       "tags-edit-remove": "Видалити ці мітки:",
+       "tags-edit-reason": "Причина:",
        "tags-edit-success": "Зміни успішно застосовано",
+       "tags-edit-none-selected": "Будь ласка, оберіть принаймні одну мітку, щоб додати або вилучити.",
        "comparepages": "Порівняння сторінок",
        "compare-page1": "Сторінка 1",
        "compare-page2": "Сторінка 2",
index 87dd1a9..f391f1d 100644 (file)
@@ -22,7 +22,8 @@
                        "Calak",
                        "عرفان ارشد",
                        "Obaid Raza",
-                       "عثمان خان شاہ"
+                       "عثمان خان شاہ",
+                       "Syedalinaqinaqvi"
                ]
        },
        "tog-underline": "ربط کی خط کشیدگی:",
        "moredotdotdot": "اور...",
        "morenotlisted": "یہ فہرست مکمل نہیں ہے۔",
        "mypage": "میرا صفحہ",
-       "mytalk": "میری گفتگو",
+       "mytalk": "تبادلۂ خیال",
        "anontalk": "اس IP کیلیے بات چیت",
        "navigation": "رہنمائی",
        "and": "&#32;اور",
        "pool-errorunknown": "نامعلوم خطا",
        "poolcounter-usage-error": "استعمال میں خامی: $1",
        "aboutsite": "تعارف {{SITENAME}}",
-       "aboutpage": "منصوبہ:تعارف",
+       "aboutpage": "Project:تعارف",
        "copyright": "تمام مواد $1 کے تحت میسر ہے، جب تک کوئی دوسری وجہ نا ہو۔",
        "copyrightpage": "{{ns:project}}:حقوق تصانیف",
        "currentevents": "حالیہ واقعات",
        "disclaimers": "اعلانات",
        "disclaimerpage": "Project:عام اعلان",
        "edithelp": "معاونت براۓ ترمیم",
-       "mainpage": "صفحہ اول",
+       "helppage-top-gethelp": "مدد",
+       "mainpage": "صفحۂ اول",
        "mainpage-description": "صفحہ اول",
        "policy-url": "Project:حکمتِ عملی",
        "portal": "دیوان عام",
        "badarticleerror": "اس صفحہ پر یہ عمل انجام نہیں دیا جاسکتا۔",
        "cannotdelete": "صفحہ یا ملف $1 کو حذف نہیں کیا جاسکتا.\nہوسکتا ہے کہ اسے پہلے ہی کسی نے حذف کردیا ہو.",
        "cannotdelete-title": "صفحہ ھذف نہیں کیا جا سکتا \"$1\"",
+       "delete-hook-aborted": "حذف شدگی روک دی گئی\nوضاحت نہیں کی گئی",
        "badtitle": "خراب عنوان",
        "badtitletext": "درخواست شدہ صفحہ کا عنوان ناقص، خالی، یا کوئی غلط ربط شدہ بین لسانی یا بین ویکی عنوان ہے.\nشاید اِس میں ایک یا زیادہ ایسے حروف موجود ہوں جو عنوانات میں استعمال نہیں ہوسکتے.",
        "perfcached": "ذیلی ڈیٹا ابطن شدہ (cached) ہے اور اِس کے پُرانے ہونے کا امکان ہے. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
        "gotaccountlink": "داخل ہوجائیے",
        "userlogin-resetlink": "داخلِ نوشتہ ہونے کی تفاصیل بھول گئے ہیں؟",
        "userlogin-resetpassword-link": "کلمہ شناخت بھول گئے؟",
+       "userlogin-helplink2": "داخل ہو کر ہماری مدد کریں",
        "createacct-emailrequired": "ای میل پتہ",
        "createacct-emailoptional": "ای میل ایڈریس (اختیاری)",
        "createacct-email-ph": "اپنا برقی پتہ لکھیں",
+       "createacct-another-email-ph": "برقی پتہ لکھیں",
        "createaccountmail": "بذریعۂ برقی ڈاک",
        "createacct-realname": "اصلی نام (اختیاری)",
        "createaccountreason": "وجہ:",
        "createacct-reason": "وجہ",
+       "createacct-reason-ph": "آپ دوسرا کھاتہ کیوں تخلیق کررہے ہیں",
        "createacct-captcha": "حفاظتی تدبیر",
        "createacct-imgcaptcha-ph": "آپ اوپر دیکھ متن داخل کریں",
        "createacct-submit": "آپ کا کھاتا بنائیں",
+       "createacct-another-submit": "دوسرا کھاتہ تخلیق کریں",
        "createacct-benefit-heading": "{{SITENAME}} آپ جیسے لوگوں کی طرف سے بنایا گیا ہے ۔",
-       "createacct-benefit-body1": "ترمیم",
+       "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": "داخلے میں غلطی",
        "wrongpasswordempty": "کلمۂ شناخت ندارد۔ دوبارہ کوشش کریں۔",
        "passwordtooshort": "آپکا منتخب کردہ پارلفظ مختصر ہے. پارلفظ کم از کم {{PLURAL:$1|1 محرف|$1 محارف}} ہونا چاہئے.",
        "password-name-match": "آپکا پارلفظ آپکے اسمِ صارف سے مختلف ہونا چاہئے.",
+       "password-login-forbidden": "اس صارف نام یا کلمۂ شناخت (پاسورڈ) کا استعمال ممنوع ہے",
        "mailmypassword": "نیا پارلفظ برقی ڈاک میں بھیجو",
        "passwordremindertitle": "نیا عارضی کلمۂ شناخت برائے {{SITENAME}}",
        "passwordremindertext": "(IP پتہ $1 سے) کسی (یا شاید آپ) نے {{SITENAME}} ($4)\nکیلئے نئی کلمۂ شناخت کیلئے التماس کیا. ایک عارضی کلمۂ شناخت \"$3\"\nبرائے صارف \"$2\" تخلیق کیا گیا ہے. اگر یہ آپ کا ارادہ تھا، تو آپ\nکو چاہئے کہ داخلِ نوشتہ ہونے کے بعد نئے کلمۂ شناخت کا انتخاب کریں.\nآپ کا کلمۂ شناخت {{PLURAL:$5|ایک دِن|$5 دِن}} کے بعد ناکارہ ہوجائے گا.\n\nاگر کسی اَور نے یہ التماس کیا ہے، یا آپ کو اپنا کلمۂ شناخت یاد آگیا ہے،\nاور آپ اسے تبدیل نہیں کرنا چاہتے، تو آپ یہ پیغام نظر انداز کرسکتے ہیں اور\nآپنا پُرانا کلمۂ شناخت کا استعمال جاری رکھ سکتے ہیں.",
        "noemailprefs": "اِن خصائص کو کام میں لانے کیلئے اپنے ترجیحات میں برقی ڈاک کا پتہ متعین کیجئے.",
        "emailconfirmlink": "اپنے برقی پتہ کی تصدیق کیجئے",
        "invalidemailaddress": "برقی پتہ قبول نہیں کیا جاسکتا کیونکہ یہ غلط شکل میں ہے.\nبراہِ کرم! ایک برقی پتہ صحیح شکل میں درج کیجئے یا جگہ کو خالی چھوڑ دیجئے.",
+       "emaildisabled": "اس سائٹ سے برقی خط نہیں بھیجے جاسکتے",
        "accountcreated": "تخلیقِ کھاتہ",
        "accountcreatedtext": "تخیلقِ کھاتۂ صارف براۓ $1۔",
        "createaccount-title": "کھاتہ سازی برائے {{SITENAME}}",
        "pt-createaccount": "کھاتا بنائیں",
        "pt-userlogout": "خارج ہوجائیں",
        "user-mail-no-addy": "برقی ڈاک بھیجنے کی کوشش بغیر برقی ڈاک پتہ",
+       "user-mail-no-body": "خالی یا بہت ہی مختصر برقی خط بھیجنے کی کوشش",
        "changepassword": "کلمۂ شناخت تبدیل کریں",
        "resetpass_announce": "آپ ایک برقی ارسال کردہ عارضی رمز کے ساتھ داخل ہوئے ہیں.\nداخلِ نوشتہ کے عمل کو مکمل کرنے کیلئے آپ کو یہاں نیا پارلفظ متعین کرنا ہوگا:",
        "resetpass_header": "کھاتہ کا پارلفظ تبدیل کریں",
        "resetpass-submit-loggedin": "پارلفظ کی تبدیلی",
        "resetpass-submit-cancel": "منسوخ",
        "resetpass-wrong-oldpass": "عارضی یا موجودہ پارلفظ ناقص ہے.\nآپ یا تو پہلے ہی سے آپنا پارلفظ کامیابی سے تبدیل کرچکے ہیں اور یا آپ نے نئے عارضی پارلفظ کی درخواست کی ہے.",
+       "resetpass-recycled": "براہ کرم اپنے موجودہ کلمۂ شناخت (پاسورڈ) سے مختلف کلمۂ شناخت سے بازترتیب (ری‌سیٹ) کریں",
+       "resetpass-temp-emailed": "آپ عارضی برقی خط سے بھیجے گئے کوڈ سے لاگ ان ہیں\nمکمل طور پر لاگ ان ہونے کے لیے آپ کو نیا پاسورڈ سیٹ کرنا پڑے گا",
        "resetpass-temp-password": "عارضی پارلفظ:",
        "passwordreset": "پارلفظ کی بازتعینی",
        "passwordreset-username": "اسمِ صارف:",
        "mergelog": "نوشتہ کا انضمام",
        "revertmerge": "غیر ضم",
        "history-title": "\"$1\" کا نظرثانی تاریخچہ",
+       "difference-title": "\"$1\" کے اعادوں کے درمیان فرق",
        "difference-multipage": "(فرق مابین صفحات)",
        "lineno": "لکیر $1:",
        "compareselectedversions": "منتخب متـن کا موازنہ",
        "editundo": "استرجع",
+       "diff-multi-sameuser": "({{PLURAL: $1 | ایک متوسط نظرثانی | $1 کئی متوسط نظرثانیاں}}ایک ہی صارف کی جانب سے نہیں دکھائی گئی)",
        "searchresults": "تلاش کا نتیجہ",
        "searchresults-title": "نتائجِ تلاش برائے \"$1\"",
        "notextmatches": "کوئی بھی مماثل متن موجود نہیں",
        "search-external": "بیرونی تلاش",
        "searchdisabled": "{{SITENAME}} تلاش غیرفعال.\nآپ فی الحال گوگل کے ذریعے تلاش کرسکتے ہیں.\nیاد رکھئے کہ اُن کے {{SITENAME}} اشاریے ممکناً پرانے ہوسکتے ہیں.",
        "preferences": "ترجیحات",
-       "mypreferences": "میری ترجیہات",
+       "mypreferences": "ترجیحات",
        "prefs-edits": "تدوینات کی تعداد:",
        "prefs-skin": "جِلد",
        "skin-preview": "پیش منظر",
        "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": "تصویر کا حجم",
        "emailmessage": "پیغام:",
        "emailsend": "بھیجیں",
        "watchlist": "میری زیرنظرفہرست",
-       "mywatchlist": "میری زیرنظرفہرست",
+       "mywatchlist": "زیرنظرفہرست",
        "watchlistfor2": "براۓ $1 ($2)",
        "addedwatchtext": "یہ صفحہ \"<nowiki>$1</nowiki>\" آپکی [[Special:Watchlist|زیرنظر]] فہرست میں شامل کردیا گیا ہے۔ اب مستقل میں اس صفحے اور اس سے ملحقہ تبادلہ خیال کا صفحے میں کی جانے والی تبدیلوں کا اندراج کیا جاتا رہے گا، اور ان صفحات کی شناخت کو سہل بنانے کے لیۓ [[Special:حالیہ تبدیلیاں|حالیہ تبدیلیوں کی فہرست]] میں انکو '''مُتَجَل''' (bold) تحریر کیا جاۓ گا۔ <p> اگر آپ کسی وقت اس صفحہ کو زیرنظرفہرست سے خارج کرنا چاہیں تو اوپر دیۓ گۓ \"زیرنظرمنسوخ\" پر ٹک کیجیۓ۔",
        "removedwatchtext": "صفحہ \"[[:$1]]\" آپ کی زیر نظر فہرست سے خارج کر دیا گیا۔",
        "deletereasonotherlist": "دوسری وجہ",
        "rollback": "ترمیمات سابقہ حالت پرواپس",
        "rollbacklink": "واپس سابقہ حالت",
+       "rollbacklinkcount": "استرجع $1 {{PLURAL:$1|ترمیم|ترامیم}}",
        "rollbackfailed": "سابقہ حالت پر واپسی ناکام",
        "cantrollback": "تدوین ثانی کا اعادہ نہیں کیا جاسکتا؛ کیونکہ اس میں آخری بار حصہ لینے والا ہی اس صفحہ کا واحد کاتب ہے۔",
        "protectlogpage": "نوشتۂ محفوظ شدگی",
        "blanknamespace": "(مرکز)",
        "contributions": "{{جنس:$1|صارف}} شراکتیں",
        "contributions-title": "مساہماتِ صارف برائے $1",
-       "mycontris": "میرا حصہ",
+       "mycontris": "شراکت",
        "contribsub2": "براۓ $1 ($2)",
        "uctop": " (اوپر)",
        "month": "مہینہ (اور اُس سے قبل):",
        "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..9b3c6be 100644 (file)
        "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..30cb04f 100644 (file)
        "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.",
        "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",
        "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-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",
        "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-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-existing-tags": "Thẻ đã có:",
+       "tags-edit-new-tags": "Thẻ mới:",
+       "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-success": "Các thay đổi được áp dụng thành công.",
+       "tags-edit-failure": "Những thay đổi này có thể không được áp dụng: $1",
+       "tags-edit-nooldid-title": "Kiểm tra các mục tiêu không hợp lệ",
        "comparepages": "So sánh trang",
        "compare-page1": "Trang 1",
        "compare-page2": "Trang 2",
        "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 d51a5fc..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",
        "createaccountmail": "me pot leäktronik",
        "createaccountreason": "Kod:",
        "createacct-reason": "Kod",
+       "createacct-imgcaptcha-ph": "Penolöd vödemi, keli logol löpo",
        "createacct-submit": "Jafön kali olik",
        "createacct-benefit-body1": "{{PLURAL:$1|redakam|redakams}}",
        "createacct-benefit-body2": "{{PLURAL:$1|pad|pads}}",
        "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",
        "viewprevnext": "Logön padis ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''Dabinon pad labü nem: \"[[:$1]]\" su vük at'''",
-       "searchmenu-new": "'''Jafolös padi: \"[[:$1]]\" su vük at!'''",
+       "searchmenu-new": "<strong>Jafolös padi: \"[[:$1]]\" su vük at!</strong> {{PLURAL:$2|0=|Logolös i padi me suk olik petuvöli.|Logolös i sukasekis petuvöl.}}",
        "searchprofile-articles": "Ninädapads",
        "searchprofile-images": "Mödamedäd",
        "searchprofile-everything": "Valikos",
        "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",
        "delete-warning-toobig": "Pad at labon jenotemi lunik: {{PLURAL:$1|revid|revids}} plu $1.\nPrudö! Moükam onik ba osäkädükon jäfidi nünodema: {{SITENAME}}.",
        "rollback": "Sädunön redakamis",
        "rollbacklink": "sädunön vali",
+       "rollbacklinkcount": "sädunön {{PLURAL:$1|redakami|redakamis}} $1",
        "rollbackfailed": "Sädunam no eplöpon",
        "cantrollback": "Redakam no kanon pasädunön; keblünan lätik binon lautan teik pada at.",
        "alreadyrolled": "No eplöpos ad sädunön redakami lätik pada: [[:$1]] fa geban: [[User:$2|$2]] ([[User talk:$2|Bespikapad]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); ek ya eredakon oni ud esädunon redakami ona.\n\nRedakam lätik päjenükon fa geban: [[User:$3|$3]] ([[User talk:$3|Bespikapad]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "import-interwiki-history": "Kopiedön fomamis valik jenotema pada at",
        "import-interwiki-templates": "Keninükön samafomotis valik",
        "import-interwiki-submit": "Nüveigön",
-       "import-interwiki-namespace": "Ini nemaspad:",
        "import-upload-filename": "Ragivanem:",
        "import-comment": "Küpet:",
        "importtext": "Seveigolös ragivi se fonätavük me [[Special:Export|stum seveiga]].\nDakipolös oni su nünöm olik e löpükolös oni isio.",
        "expand_templates_ok": "Baiced",
        "expand_templates_remove_comments": "Moükön küpetis",
        "expand_templates_generate_xml": "Jonön bimi: XML",
-       "expand_templates_preview": "Büologed"
+       "expand_templates_preview": "Büologed",
+       "special-characters-group-ipa": "LFB",
+       "special-characters-group-greek": "Grikänapük"
 }
index a65ac57..042ebb1 100644 (file)
        "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",
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 6b95e78..1a3764c 100644 (file)
@@ -12,7 +12,8 @@
                        "Malafaya",
                        "Reedy",
                        "გიორგიმელა",
-                       "아라"
+                       "아라",
+                       "Silovan"
                ]
        },
        "tog-underline": "რცხუეფიშ ათოღაზუა:",
@@ -25,6 +26,8 @@
        "tog-showtoolbar": "რედაქტირაფაშ ხეჭკუდეფიშ ძირაფა (ითხინს JavaScript-ის)",
        "tog-editondblclick": "ხასჷლეფიშ რედაქტირაფა ჟირმანგი გეწკანტაფათ (ითხინს JavaScript-ის)",
        "tog-editsectiononrightclick": "ჩართი სექციაშ რედაქტირაფა სექციაშ ჯოხოშა მარძგვან გეწკანტაფათ (ითხინს JavaScript-ის)\"",
+       "tog-watchcreations": "ქიგუძინი ჩქიმ კონტროლიშ ერკბულს ჩქიმ დუნარცხუა ხასჷლეფი დო ეხარგელი ფაილეფი",
+       "tog-shownumberswatching": "მაკონტროლაფარი მახვარებუეფიშ მუდანობაშ ძირაფა",
        "tog-showhiddencats": "ქაძირი ფულირი კატეგორიეფი",
        "underline-always": "ირო",
        "underline-never": "შურო",
@@ -34,7 +37,7 @@
        "monday": "თუთაშხა",
        "tuesday": "თახაშხა",
        "wednesday": "ჯუმაშხა",
-       "thursday": "ცაშხა",
+       "thursday": "á\83ªá\83\90á\83\90á\83¨á\83®á\83\90",
        "friday": "ობიშხა",
        "saturday": "შურიშხა",
        "sun": "ჟაშ.",
@@ -56,7 +59,7 @@
        "october": "გჷმათუთა",
        "november": "გერგობათუთა",
        "december": "ქირსეთუთა",
-       "january-gen": "ღურთუთა",
+       "january-gen": "ღურთუთა",
        "february-gen": "ფურთუთაშ",
        "march-gen": "მელახიშ",
        "april-gen": "პირელიშ",
        "actions": "მოქმედალეფი",
        "namespaces": "ჯოხოეფიშ ოფირჩა",
        "variants": "ვარიანტეფი",
+       "navigation-heading": "ნავიგაციაშ მენიუ",
        "errorpagetitle": "ჩილათა",
        "returnto": "დირთი $1-შა",
        "tagline": "{{SITENAME}} ხასჷლაშე",
        "searchbutton": "გორუა",
        "go": "სტატია",
        "searcharticle": "გინულა",
-       "history": "á\83®á\83\90á\83¡á\83\98ლაშ ისტორია",
+       "history": "á\83®á\83\90á\83¡á\83·ლაშ ისტორია",
        "history_short": "ისტორია",
        "printableversion": "ობეშტალი ვერსია",
        "permalink": "პერმანენტული რცხუ",
        "print": "დობეშტი",
+       "view": "ძირაფა",
+       "view-foreign": "ქოძირით $1-ის",
        "edit": "რედაქტირაფა",
        "create": "დორსხუაფა",
+       "create-local": "ლოკალურ ეჭარუაშ გეძინა",
        "editthispage": "ხასჷლაშ რედაქტირაფა",
        "delete": "ლასუა",
        "deletethispage": "დოლასი თე ხასჷლა",
        "personaltools": "პერსონალური ხეჭკუდეფი",
        "talk": "სხუნუა",
        "views": "ძირაფეფი",
-       "toolbox": "á\83\98á\83\9cá\83¡á\83¢á\83 á\83£á\83\9bá\83\94á\83\9cá\83¢ეფი",
+       "toolbox": "á\83®á\83\94á\83­á\83\99á\83£á\83\93ეფი",
        "otherlanguages": "შხვა ნინეფს",
        "redirectedfrom": "(გინოწურაფილი რე $1-შე)",
        "redirectpagesub": "ხასჷლაშა გინოწურაფა",
-       "lastmodifiedat": "თე ხასილაქ ეკონიას გეახალუ $2-ს, $1-ის.",
+       "redirectto": "გინოღალა:",
+       "lastmodifiedat": "თე ხასჷლაქ ეკონიას გეახალუ $2-ს, $1-ის.",
        "jumpto": "გეგნორთი:",
        "jumptonavigation": "ნავიგაცია",
        "jumptosearch": "გორუა",
        "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": "თქვა შეილებუნა ქოძირათ თე ხასჷლაშ დაჭყაფური ფაილი დო ქუდარსხუათ თიშ მანგი:",
        "yourname": "მახვარებუშ ჯოხო:",
+       "userlogin-yourname": "მახვარებუშ ჯოხო",
+       "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": "რუმე ტექსტი",
        "bold_tip": "რუმე ტექსტ",
        "italic_sample": "ელართელი ტექსტი",
        "subject": "თემა/დუდლანდარი:",
        "minoredit": "თენა რე ჭიჭე რედაქტირაფა",
        "watchthis": "თე ხასჷლაშ კონტროლი",
-       "savearticle": "á\83\93á\83\9dá\83©á\83\95á\83\98 á\83®á\83\90á\83¡á\83\98ლა",
+       "savearticle": "á\83\93á\83\9dá\83©á\83\95á\83\98 á\83®á\83\90á\83¡á\83·ლა",
        "preview": "გიწოთოლორაფა",
        "showpreview": "ქაძირე გიწოთოლორაფა",
        "showdiff": "თირაფეფიშ ძირაფა",
-       "anoneditwarning": "'''á\83\92á\83£á\83 á\83\98 á\83\92á\83£á\83©á\83\98á\83\97:''' á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90á\83 á\83\94á\83\97 á\83 á\83\94á\83\92á\83\98á\83¡á\83¢á\83 á\83\98á\83 á\83\94á\83\91á\83£ლი. თქვან IP ოწურაფუ ინოჭარილი იჸი თე ხასჷლაშ რედაქტირაფაშ ისტორიას.",
+       "anoneditwarning": "'''á\83\92á\83£á\83 á\83\98 á\83\92á\83£á\83©á\83\98á\83\97:''' á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90á\83 á\83\94á\83\97 á\83 á\83\94á\83\92á\83\98á\83¡á\83¢á\83 á\83\98á\83 á\83\90á\83¤á\83\98ლი. თქვან IP ოწურაფუ ინოჭარილი იჸი თე ხასჷლაშ რედაქტირაფაშ ისტორიას.",
        "summary-preview": "რეზიუმეშ გიწოთოლორაფა",
        "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": "გოუქვაფა",
-       "searchresults": "გორუაშ მოღალირობეფ",
-       "searchresults-title": "\"$1\"–იშ გორუაშ მოღალირობეფ",
+       "searchresults": "გორუაშ მოღალირობეფ",
+       "searchresults-title": "\"$1\"–იშ გორუაშ მოღალირობეფ",
        "notextmatches": "ნამთინ ხასილაშ ტექსტი ვა უხუჯანს",
        "prevn": "წოხლენ $1",
        "nextn": "უკულიან {{PLURAL:$1|$1}}",
        "searchprofile-advanced": "გაუჯგუშებული",
        "searchprofile-articles-tooltip": "დოგორი $1-ს",
        "searchprofile-images-tooltip": "დოგორი ფაილეფი",
-       "searchprofile-everything-tooltip": "á\83\92á\83\9dá\83 á\83£á\83\90 á\83\90á\83 á\83«á\83\9d á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¡ (á\83\9dá\83©á\83\98á\83\94á\83\91á\83\94á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98á\83¨ á\83\9bá\83\94á\83\99á\83\9dá\83 á\83\9dá\83ªá\83®á\83\98á\83\9aო)",
+       "searchprofile-everything-tooltip": "á\83\90á\83 á\83«á\83\9d á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¡ á\83\92á\83\9dá\83 á\83£á\83\90 (á\83\9dá\83¡á\83®á\83£á\83\9cá\83£á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98á\83¨á\83\90á\83\9bო)",
        "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)",
        "search-interwiki-more": "(უმოს)",
        "searchrelated": "მათანგეფ",
        "searchall": "არძო",
+       "search-showingresults": "{{PLURAL:$4|მოღალირობა <strong>$1</strong> შე <strong>$3</strong>|მოღალირობა <strong>$1 - $2</strong> შე <strong>$3</strong>}}",
        "search-nonefound": "თქვანი მოგორაფილიშ მუთუნნერ მანგი მოღალუქ ვეძირჷ.",
        "powersearch-legend": "გოძინელ გორუა",
        "powersearch-ns": "დოგორ ჯოხოეფიშ ოფირჩას:",
        "rightslog": "მახვარებუშ ნებეფიშ ჟურნალ",
        "action-edit": "თე ხასილაშ რედაქტირაფა",
        "nchanges": "$1 {{PLURAL:$1|თირაფა|თირაფეფ}}",
+       "enhancedrc-history": "ისტორია",
        "recentchanges": "ასეიანი თირაფეფი",
        "recentchanges-legend": "ასერდენ თირაფეფიშ ოფციეფ",
        "recentchanges-summary": "თე ხასჷლას ქაძირი ვიკიშა მიშაღალირ არძოშ უახალაშ თირაფეფი.",
        "recentchanges-label-minor": "თენა რე ციქა რედაქტირაფა",
        "recentchanges-label-bot": "თე რედაქტირაფა ბოტიშ ნაღოლემი რე",
        "recentchanges-label-unpatrolled": "თე რედაქტირაფა დიო ხოლო ვა რე პატრულირაფირი",
+       "recentchanges-label-plusminus": "თირაფეფიშ ზჷმა ბაიტეფს",
+       "recentchanges-legend-heading": "'''ლეგენდა:'''",
        "rcnotefrom": "თუდო მოჸუნაფილიე თირაფეფ, ”’$2””-შე (ძირაფილიე ”’$1”’)",
        "rclistfrom": "ახალ თირაფეფიშ ძირაფა დოჭყაფილ $3 $2-შე",
-       "rcshowhideminor": "$1 ჭიჭე რედაქტირაფეფ",
+       "rcshowhideminor": "$1 ჭიჭე რედაქტირაფეფი",
+       "rcshowhideminor-show": "ძირაფა",
+       "rcshowhideminor-hide": "ტყობინაფა",
        "rcshowhidebots": "ბოტეფიშ  $1",
+       "rcshowhidebots-show": "ძირაფა",
+       "rcshowhidebots-hide": "ტყობინაფა",
        "rcshowhideliu": "$1 მიშულირ მახვარებუეფ",
-       "rcshowhideanons": "$1 ანონიმურ მახვარებუეფ",
+       "rcshowhideliu-hide": "ტყობინაფა",
+       "rcshowhideanons": "$1 ანონიმურ მახვარებუეფი",
+       "rcshowhideanons-show": "ძირაფა",
+       "rcshowhideanons-hide": "ტყობინაფა",
        "rcshowhidepatr": "გოკონტროლაფირ თირაფეფიშ $1",
        "rcshowhidemine": "ჩქიმ რედაქტირაფეფიშ $1",
+       "rcshowhidemine-show": "ძირაფა",
+       "rcshowhidemine-hide": "ტყობინაფა",
        "rclinks": "ეკონია $2 დღას ღოლამირ ეკონია $1 თირაფეფიშ ძირაფა <br />$3",
        "diff": "შხვანერობა",
        "hist": "ისტ.",
        "minoreditletter": "ჭ.რ.",
        "newpageletter": "ახ.",
        "boteditletter": "ბ",
+       "rc-change-size-new": "ზჷმა თირუაშ უკული რე: {{PLURAL:$1|ბაიტი|ბაიტი}}",
        "rc-enhanced-expand": "დეტალეფიშ ძირაფა (ითხინს ჯავასქრიფთის)",
        "rc-enhanced-hide": "დეტალეფიშ ტყობინაფა",
        "recentchangeslinked": "აკოხვალამირ თირაფეფ",
        "recentchangeslinked-feed": "აკოხვალამირ თირაფეფ",
-       "recentchangeslinked-toolbox": "აკოხვალამირ თირაფეფ",
+       "recentchangeslinked-toolbox": "აკოხვალამირ თირაფეფ",
        "recentchangeslinked-title": "\"$1\"-შა მებუნაფილ თირაფეფი",
-       "recentchangeslinked-summary": "á\83\97á\83\94á\83\9cá\83\90 á\83 á\83\94 á\83\9bá\83\94á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¬á\83\99á\83£á\83\9bá\83\90 (á\83\95á\83\90á\83 á\83\90 á\83\9bá\83\94á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83\99á\83\90á\83¢á\83\94á\83\92á\83\9dá\83 á\83\98á\83\90á\83¨ á\83\9bá\83\90á\83\99á\83\90á\83\97á\83£á\83 á\83\94á\83¤á\83¬á\83\99á\83£á\83\9bá\83\90) á\83\92á\83\98á\83\9cá\83\9dá\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤á\83¡ á\83\94á\83\99á\83\9dá\83\9cá\83\98á\83\90 á\83\91á\83\9dá\83 á\83¯á\83\98á\83¡ á\83¦á\83\9dá\83\9aá\83\90á\83\9bá\83\98á\83 á\83\98 á\83\97á\83\98á\83 á\83\90á\83¤á\83\94á\83¤á\83\98á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9a. á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤á\83\98 [[Special:Watchlist|your watchlist]] á\83\92á\83\98მორთილი რე '''ფსქელას'''.\"",
+       "recentchangeslinked-summary": "á\83\97á\83\94á\83\9cá\83\90 á\83 á\83\94 á\83\9bá\83\94á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¬á\83\99á\83·á\83\9bá\83\90 (á\83\95á\83\90á\83 á\83\90 á\83\9bá\83\94á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83\99á\83\90á\83¢á\83\94á\83\92á\83\9dá\83 á\83\98á\83\90á\83¨ á\83\9bá\83\90á\83\99á\83\90á\83\97á\83£á\83 á\83\94á\83¤á\83¬á\83\99á\83·á\83\9bá\83\90) á\83\9bá\83\94á\83 á\83¡á\83®á\83£á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83¡ á\83\94á\83\99á\83\9dá\83\9cá\83\98á\83\90 á\83\91á\83\9dá\83 á\83¯á\83\98á\83¡ á\83¦á\83\9dá\83\9aá\83\90á\83\9bá\83\98á\83 á\83\98 á\83\97á\83\98á\83 á\83\90á\83¤á\83\94á\83¤á\83\98á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83\98. á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98 [[Special:Watchlist|á\83\97á\83¥á\83\95á\83\90á\83\9cá\83\98 á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83¡]] á\83\92á\83·მორთილი რე '''ფსქელას'''.\"",
        "recentchangeslinked-page": "ხასილაშ ჯოხო:",
        "recentchangeslinked-to": "მანგიერო ქაძირე ათე ხასილაშა მერცხილ ხასილეფშა მიშაღალირ თირაფეფ",
        "upload": "ფაილიშ ეხარგუა",
        "filedesc": "რეზიუმე",
        "license": "ლიცენზირაფა:",
        "license-header": "ლიცენზირაფა",
+       "imgfile": "ფაილი",
        "listfiles": "სურათეფიშ ერკებულ",
        "listfiles_name": "სახელ",
        "file-anchor-link": "ფაილი",
        "filehist": "ფაილიშ ისტორია",
        "filehist-help": "ქიგუნჭირით რიცხვის/ბორჯის თიშო, ნამდა ქოძირათ ფაილი თი რედაქციათ, მუ რედაქციას თი რიცხვის/ბორჯის რდუნ.",
        "filehist-revert": "დართინე",
-       "filehist-current": "მიმალ",
-       "filehist-datetime": "á\83 á\83\98á\83ªá\83®á\83\95á\83\98/ბორჯი",
+       "filehist-current": "მიმალ",
+       "filehist-datetime": "á\83 á\83\98á\83ªá\83®á\83£/ბორჯი",
        "filehist-thumb": "ჭკუდი",
        "filehist-thumbtext": "ჭკუდი $1-შო რსებულ ვერსიაშო",
        "filehist-user": "მახვარებუ",
-       "filehist-dimensions": "განზომილებეფ",
+       "filehist-dimensions": "განზომილებეფ",
        "filehist-filesize": "ფაილიშ ზომა",
-       "filehist-comment": "კომენტარ",
+       "filehist-comment": "კომენტარ",
        "imagelinks": "ფაილი გჷმორინაფილი რე",
        "linkstoimage": "გეყ’ვენჯი {{PLURAL:$1|ხასილა|ხასილეფ}} მერცხილ რე თე ფაილშა",
-       "nolinkstoimage": "á\83\95á\83\90 á\83 á\83\94 á\83\97á\83\94 á\83¤á\83\90á\83\98á\83\9aá\83¬á\83\99á\83£á\83\9bá\83\90 á\83\9bá\83\94á\83 á\83¡á\83®á\83\98á\83\9a á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤.",
+       "nolinkstoimage": "á\83\95á\83\90 á\83 á\83\94 á\83\97á\83\94 á\83¤á\83\90á\83\98á\83\9aá\83¬á\83\99á\83·á\83\9bá\83\90 á\83\9bá\83\94á\83 á\83¡á\83®á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98.",
        "sharedupload": "თე ფაილ რე $1-შე დო შილებე თენა შხვა პროექტეფც ხოლო გიმირინაუფუდასინ",
        "sharedupload-desc-here": "თე ფაილი რე $1-შე დო შილებე გჷმორნაფილქ იჸუას შხვა პროექტეფს. თეშ ეჭარუა [$2 ფაილიშ ეჭარუაშ ხასჷლა] თუდოლე რე მოჩამილი.",
        "uploadnewversion-linktext": "გეშახარგე ათე ფაილიშ ახალ ვერსია",
+       "upload-disallowed-here": "თქვა ვა შეილებუნა თე ფაილიშ გჷნოჭაუა.",
        "mimesearch": "MIME გორუა",
-       "randompage": "á\83\9cá\83\90á\83\9bá\83\93á\83\92á\83\90á\83 á\83\94á\83\9c á\83®á\83\90á\83¡á\83\98ლა",
+       "randompage": "á\83\9cá\83\90á\83\9bá\83\93á\83\92á\83\90á\83 á\83\94á\83\9c á\83®á\83\90á\83¡á\83·ლა",
        "statistics": "სტატისტიკა",
        "withoutinterwiki": "ხასილეფ ნინაშ რსხილეფიშ გარეშე",
        "nbytes": "$1 ბაიტი",
        "nlinks": "$1 რსხილ",
-       "nmembers": "$1 {{PLURAL:$1|მაკათურ|მაკათურეფ}}",
+       "nmembers": "$1 {{PLURAL:$1|მაკათური|მაკათური}}",
        "uncategorizedpages": "უკატეგორიე ხასილეფ",
        "uncategorizedcategories": "კატეგორიეფ კატეგორიეფიშ გარეშე",
        "uncategorizedimages": "სურათეფ კატეგორიაშ უმიშო",
        "shortpages": "ჭიჭე ხასილეფ",
        "longpages": "გინძე ხასილეფ",
        "usercreated": "{{GENDER:$3|დირსხუ}} $2-ის $1-ს",
-       "newpages": "á\83\90á\83®á\83\90á\83\9a á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤",
+       "newpages": "á\83\90á\83®á\83\90á\83\9a á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98",
        "ancientpages": "ჯვეშ ხასილეფ",
        "move": "გინოღალა",
        "movethispage": "თე გვერდიშ გინოღალა",
        "pager-newer-n": "{{PLURAL:$1|უახალაშ 1|უახალაშ $1}}",
        "pager-older-n": "{{PLURAL:$1|უმოს ჯვეში 1|უმოს ჯვეში $1}}",
-       "booksources": "წინგიშ წყუეფ",
+       "booksources": "წინგიშ წყუეფ",
        "booksources-search-legend": "წიგნიშ წყუშ გორუა",
+       "booksources-search": "გორუა",
        "specialloguserlabel": "მახვარებუ:",
        "speciallogtitlelabel": "სათაურ:",
-       "log": "ჟურნალეფ",
+       "log": "ჟურნალეფ",
        "all-logs-page": "ირ ჟურნალ",
        "allpages": "არძა ხასილა",
        "nextpage": "უკულ ხასილა ($1)",
        "deleteotherreason": "შხვა/გეძინელ სამანჯელ:",
        "deletereasonotherlist": "შხვა სამანჯელ",
        "rollbacklink": "დორთა",
+       "rollbacklinkcount": "$1 {{PLURAL:$1|თირაფაშ|თირაფაშ}} გოუქვაფა",
        "protectlogpage": "თხილუაშ ისტორია",
        "protectedarticle": "თხილერი რე \"[[$1]]\"",
        "modifiedarticleprotection": "დოთირეთ თხილუაშ დონე \\\"[[$1]]\\-შო",
        "undeleteviewlink": "ძირაფა",
        "undelete-search-submit": "გორუა",
        "namespace": "ჯოხოეფიშ ოფირჩა:",
-       "invert": "á\83\90á\83 á\83«á\83\90, á\83\9bá\83\94á\83¦á\83\90á\83\9cá\83\99á\83\98á\83\9aá\83\98á\83¨ á\83\92á\83£á\83\9bá\83\9dá\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83\9d",
+       "invert": "á\83\90á\83 á\83«á\83\9d, á\83\9bá\83\94á\83 á\83©á\83¥á\83\98á\83\9cá\83\94á\83\9aá\83\98á\83¨ á\83\9bá\83\9dá\83®",
        "blanknamespace": "(დუდ)",
        "contributions": "მახვარებუშ მიშაღალირ თია",
        "contributions-title": "$1-შა მახვარებუშ მიშაღალირ თია",
        "sp-contributions-username": "IP მიოწურაფუ ვარა მახვარებუშ ჯოხო:",
        "sp-contributions-toponly": "ქაძირი ხვალე ეკონია რევიზიეფი რენ ფერი რედაქტირაფეფი",
        "sp-contributions-submit": "გორუა",
-       "whatlinkshere": "á\83¡á\83\9dá\83\95á\83 á\83\94á\83¨á\83\94 á\83 á\83\94 á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90 á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9a",
-       "whatlinkshere-title": "á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤, ნამუთ გინორცხილ რე $1-შა",
+       "whatlinkshere": "á\83¡á\83\9dá\83\95á\83 á\83\94á\83¨á\83\94 á\83 á\83\94 á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90 á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98",
+       "whatlinkshere-title": "á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98, ნამუთ გინორცხილ რე $1-შა",
        "whatlinkshere-page": "ხასჷლა:",
        "linkshere": "გეყ’ვენჯ ხასილეფ გინარცხუაფუ '''[[:$1]]'''-ეფს",
        "nolinkshere": "ნამთინ ხასილა ვა რე გინორცხილ '''[[:$1]]'''-შა.",
-       "isredirect": "á\83\92á\83\98á\83\9cá\83\9dá\83¬á\83£á\83 á\83\90á\83¤á\83\90á\83¨ á\83®á\83\90á\83¡á\83\98ლა",
+       "isredirect": "á\83\92á\83\98á\83\9cá\83\9dá\83¬á\83£á\83 á\83\90á\83¤á\83\90á\83¨ á\83®á\83\90á\83¡á\83·ლა",
        "istemplate": "ტრანსკლუზია",
        "isimage": "ფაილიშ რცხი",
        "whatlinkshere-prev": "{{PLURAL:$1|წოხოლენ|წოხოლენ $1}}",
        "blocklink": "ბლოკირაფა",
        "unblocklink": "ბლოკიშ მონწყუმა",
        "change-blocklink": "ბლოკიშ თირუა",
-       "contribslink": "ნახანდ",
+       "contribslink": "ნახანდ",
        "blocklogpage": "ბლოკირეფიშ ერკებულ",
        "blocklogentry": "ბლოკირ რე [[$1]] ბლოკირაფაშ ვადაშ ათე გულა ბორჯით: $2 $3.",
        "unblocklogentry": "$1-შა ბლოკიშ მონწყუმა",
        "movelogpage": "ორეგისტრაციე ჟურნალიშ გინოღალა",
        "movereason": "სამანჯელი:",
        "revertmove": "გოუქვაფა",
-       "export": "á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤á\83\98á\83¨ á\83\94á\83¥á\83¡á\83\9eá\83\9dá\83 á\83¢",
+       "export": "á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98á\83¨ á\83\94á\83¥á\83¡á\83\9eá\83\9dá\83 á\83¢á\83\98",
        "allmessages": "ირ სისტემურ შეტყვინაფა",
        "allmessagesname": "ჯოხო",
        "allmessagesdefault": "შატყვინაფაშ სტანდარტულ ტექსტი",
        "thumbnail-more": "მორდი",
        "thumbnail_error": "ესკიზიშ ქიმინუაშ ჩილათა: $1",
        "importlogpage": "იმპორტიშ ჟურნალ",
-       "tooltip-pt-userpage": "á\83\97á\83¥á\83\95á\83\90á\83\9cá\83\98 á\83\9bá\83\90á\83®á\83\95á\83\90á\83 á\83\94á\83\91á\83£á\83¨ á\83®á\83\90á\83¡á\83\98ლა",
+       "tooltip-pt-userpage": "á\83\97á\83¥á\83\95á\83\90á\83\9cá\83\98 á\83\9bá\83\90á\83®á\83\95á\83\90á\83 á\83\94á\83\91á\83£á\83¨ á\83®á\83\90á\83¡á\83·ლა",
        "tooltip-pt-mytalk": "თქვანი სხუნუაშ ხასილა",
        "tooltip-pt-preferences": "ჩქიმ კონფიგურაციეფ",
        "tooltip-pt-watchlist": "ხასილეფიშ ერკებულ, ნამუთუშ მონიტორინგის ორთუთ თირაფაშ მიზანით",
        "tooltip-pt-mycontris": "თქვანი მიშნაღელ თიეფიშ ერკებულ",
-       "tooltip-pt-login": "á\83¯á\83\92á\83\98á\83  á\83\98á\83¸á\83\98 á\83\92á\83\94á\83\9bá\83¨á\83£á\83 á\83\97á\83£â\80\93á\83\93á\83\90, á\83\9bá\83\90á\83 á\83\90 á\83\97á\83\94á\83\9cá\83\90 á\83\95á\83\90 á\83 á\83\94 á\83¡á\83\90á\83\95á\83\90á\83\9aá\83\93á\83\94á\83\91á\83£á\83\9aო",
+       "tooltip-pt-login": "á\83¯á\83\92á\83\98á\83  á\83\98á\83¸á\83\98 á\83\92á\83\94á\83\9bá\83¨á\83£á\83 á\83\97á\83£â\80\93á\83\93á\83\90, á\83\9bá\83\90á\83 á\83\90 á\83\97á\83\94á\83\9cá\83\90 á\83\95á\83\90 á\83 á\83\94 á\83£á\83ªá\83\98ო",
        "tooltip-pt-logout": "გიშულა",
-       "tooltip-ca-talk": "დინორეშ ხასილაშ სხუნუა",
-       "tooltip-ca-edit": "თქვა შეილებნა თე ხასილაშ რედაქტირაფა. რთხინთ, გეუნჭირით გიწოთოლორაფაშ კონჭის სოიშახ ხასილას ჩუანდათინ",
+       "tooltip-pt-createaccount": "ჩქი გიზალუთ, გონწყათ ანგარიში დაო გენშართათ სისტემაშა; მარა თენა ვა რე უციო",
+       "tooltip-ca-talk": "დინორეშ ხასჷლაშ სხუნუა",
+       "tooltip-ca-edit": "თქვა შეილებნა თე ხასჷლაშ რედაქტირაფა. რთხინთ, გეუნჭირით გიწოთოლორაფაშ კონჭის სოიშახ ხასჷლას ჩუანდათინ",
        "tooltip-ca-addsection": "ქიდიჭყით ახალ სექცია",
-       "tooltip-ca-viewsource": "á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90 á\83\97á\83®á\83\98á\83\9aá\83\94á\83  რე. \nშეგილებუნა ძირათ თეშ წყუ.",
-       "tooltip-ca-history": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨á\83\90 á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83  á\83\97á\83\98á\83 á\83\90á\83¤á\83\94á\83¤",
+       "tooltip-ca-viewsource": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90 á\83\97á\83®á\83\98á\83\9aá\83\94á\83 á\83\98 რე. \nშეგილებუნა ძირათ თეშ წყუ.",
+       "tooltip-ca-history": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨á\83\90 á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83 á\83\98 á\83\97á\83\98á\83 á\83\90á\83¤á\83\94á\83¤á\83\98",
        "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-watch": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨ á\83\92á\83\94á\83«á\83\98á\83\9cá\83\90 á\83\97á\83¥á\83\95á\83\90á\83\9c á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83 á\83\94á\83\91á\83£á\83\9a á\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": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨ á\83\92á\83\94á\83«á\83\98á\83\9cá\83\90 á\83\97á\83¥á\83\95á\83\90á\83\9c á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83 á\83\94á\83\91á\83£á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·ლეფიშ ერკებულშა",
        "tooltip-ca-unwatch": "მონწყით თე ხასილა თქვან კონტროლებულ ხასილეფიშ ერკებულშე",
        "tooltip-search": "გორუა {{SITENAME}}",
        "tooltip-search-go": "გეგნორთი წორას ათე ჯოხოშ ხასილაშა შურო ქო რენ-და",
        "tooltip-search-fulltext": "დოგორი ხასილეფი, ნამუთ თე ტექსტის იკათუანან",
        "tooltip-p-logo": "დუდხასჷლაშ ძირაფა",
-       "tooltip-n-mainpage": "დუდ ხასილაშ ძირაფა",
+       "tooltip-n-mainpage": "დუდხასჷლაშ ძირაფა",
        "tooltip-n-mainpage-description": "დუდ ხასილაშა გინოზოჯუა",
        "tooltip-n-portal": "პროექტიშენი, მუშ ქიმინუა შეილებუნა, სოდე შილებე გორათინ",
-       "tooltip-n-currentevents": "á\83\93á\83\9dá\83\92á\83\9dá\83 á\83\98á\83\97 á\83 á\83¡á\83£á\83\9aá\83\98 á\83\98á\83\9cá\83¤á\83\9dá\83 á\83\9bá\83\90á\83ªá\83\98á\83\90 á\83\90á\83¡á\83\94á\83\98á\83\90á\83\9c á\83\9bá\83\9dá\83\9aá\83\98á\83\9cá\83\94á\83¤á\83\98á\83¨á\83\94á\83\9c",
-       "tooltip-n-recentchanges": "ვიკიშა ეკონია ბორჯის მიშაღალირ თირაფეფიშ ერკებულ",
+       "tooltip-n-currentevents": "á\83\93á\83\9dá\83\92á\83\9dá\83 á\83\98á\83\97 á\83 á\83¡á\83£á\83\9aá\83\98 á\83\98á\83\9cá\83¤á\83\9dá\83 á\83\9bá\83\90á\83ªá\83\98á\83\90 á\83\90á\83¡á\83\94á\83\98á\83\90á\83\9c á\83\9bá\83\9dá\83\9aá\83\98á\83\9cá\83\94á\83¤á\83¨á\83\94á\83\9cá\83\98",
+       "tooltip-n-recentchanges": "ვიკიშა ეკონია ბორჯის მიშაღალირი თირაფეფიშ ერკებული",
        "tooltip-n-randompage": "ქუმოძირ ნამუდგარდასინ ხასილა",
        "tooltip-n-help": "\"ხასილა, სოდეთ გარკვიენთინ",
        "tooltip-t-whatlinkshere": "არძო ვიკი ხასილაშ ერკებულ, ნამუდგა თაქ იწურუანსინ",
-       "tooltip-t-recentchangeslinked": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¬á\83\99á\83£á\83\9bá\83\90 á\83\92á\83\98á\83\9cá\83\9dá\83 á\83ªá\83®á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤á\83¨á\83\90 á\83\90á\83¡á\83\94á\83 á\83\93á\83\94 á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83  თირაფეფი",
+       "tooltip-t-recentchangeslinked": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¬á\83\99á\83·á\83\9bá\83\90 á\83\9bá\83\94á\83 á\83¡á\83®á\83\98á\83\9a á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83¨á\83\90 á\83\90á\83¡á\83\94á\83 á\83\93á\83\94 á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83 á\83\98 თირაფეფი",
        "tooltip-feed-rss": "მოჩამილი ხასილაშ RSS არხიშ ტრანსლაცია",
        "tooltip-feed-atom": "ათე ხასილაშ ატომ არხიშ ტრანსლაცია",
        "tooltip-t-contributions": "თე მახვარებუშ მიშაღალირ თიაშ ერკებულიშ ძირაფა",
        "tooltip-t-emailuser": "მიდუჯღონით ელ.ფოშტა ათე მახვარებუს",
        "tooltip-t-upload": "გეხარგე ფაილი",
-       "tooltip-t-specialpages": "á\83\90á\83 á\83«á\83\9d á\83¡á\83\9eá\83\94á\83ªá\83\98á\83\90á\83\9aá\83£á\83  á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9a",
-       "tooltip-t-print": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლაშ ობეშტალი ვერსია",
+       "tooltip-t-specialpages": "á\83\90á\83 á\83«á\83\9d á\83¡á\83\9eá\83\94á\83ªá\83\98á\83\90á\83\9aá\83£á\83  á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83\98",
+       "tooltip-t-print": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლაშ ობეშტალი ვერსია",
        "tooltip-t-permalink": "პერმანენტულ რცხი ხასილაშ თე ვერსიაშა",
-       "tooltip-ca-nstab-main": "á\83\93á\83\98á\83\9cá\83\9dá\83 á\83\94á\83¨ á\83®á\83\90á\83¡á\83\98ლაშ ძირაფა",
-       "tooltip-ca-nstab-user": "á\83\9bá\83\90á\83®á\83\95á\83\90á\83 á\83\94á\83\91á\83£á\83¨ á\83®á\83\90á\83¡á\83\98ლაშ ძირაფა",
-       "tooltip-ca-nstab-special": "á\83\97á\83¥á\83\95á\83\90 á\83\90á\83¡á\83\94 á\83 á\83\94á\83\97 á\83¡á\83\9eá\83\94á\83ªá\83\98á\83\90á\83\9aá\83£á\83  á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¡, á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90 á\83¨á\83\94á\83\98á\83\9aá\83\94á\83\91á\83£á\83\9cá\83\90 á\83\90á\83\97á\83\94 á\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\98ლაშ ძირაფა",
-       "tooltip-ca-nstab-image": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¨ á\83®á\83\90á\83¡á\83\98ლაშ ძირაფა",
+       "tooltip-ca-nstab-main": "á\83\93á\83\98á\83\9cá\83\9dá\83 á\83\94á\83¨ á\83®á\83\90á\83¡á\83·ლაშ ძირაფა",
+       "tooltip-ca-nstab-user": "á\83\9bá\83\90á\83®á\83\95á\83\90á\83 á\83\94á\83\91á\83£á\83¨ á\83®á\83\90á\83¡á\83·ლაშ ძირაფა",
+       "tooltip-ca-nstab-special": "á\83\97á\83¥á\83\95á\83\90 á\83\90á\83¡á\83\94 á\83 á\83\94á\83\97 á\83¡á\83\9eá\83\94á\83ªá\83\98á\83\90á\83\9aá\83£á\83  á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¡, á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90 á\83¨á\83\94á\83\98á\83\9aá\83\94á\83\91á\83£á\83\9cá\83\90 á\83\90á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლაშ რედაქტირაფა",
+       "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": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¨ á\83®á\83\90á\83¡á\83·ლაშ ძირაფა",
        "tooltip-ca-nstab-template": "თანგიშ ძირაფა",
        "tooltip-ca-nstab-help": "ქოძირეთ დახვარებაშ გვერდ",
        "tooltip-ca-nstab-category": "ხასილაშ კატეგორიაშ ძირაფა",
        "tooltip-rollback": "\"დორთინა\" ათე ხასილაშა ეკონია გინმახანდეშ ნაღოლემ თირაფას(ეფს) გოუქვენს ართ გენჭირათ",
        "tooltip-undo": "\"გოუქვაფა\" მიშაღალირ თირაფეფს გოუქვენს დო გუთმონწყუნს რედაქტირაფაშ ფორმას გიწოთოლორაფაშ რეჟიმს. თენა შესაძლებლობას ირძენს რეზიუმეს სამანჯელქ იყ’უას დაკონკრეტებულქინ.",
        "tooltip-summary": "კუნტა რეზიუმეშ მიშაჸონაფა",
-       "previousdiff": "← წოხოლენი თირაფეფ",
+       "simpleantispam-label": "სპამიშ სააწმარენჯო შემოწმაფა.\nთენა '''ვა''' შეამსათ!",
+       "pageinfo-toolboxlink": "ხასჷლაშ ინფორმაცია",
+       "previousdiff": "← წოხოლენ თირაფეფი",
        "nextdiff": "უახალაშ თირაფა →",
        "file-info-size": "$1 × $2 პიქსელ, ფაილიშ ზომა: $3, MIME ტიპ: $4",
        "file-nohires": " უმოს მაღალ გიშაგორანჯალა ვა რე შელებუან.",
        "svg-long-desc": "SVG ფაილ, ნომინალურო $1 × $2 პიქსელ, ფაილიშ ზიმა: $3",
        "show-big-image": "რსული გიშაგორანჯალა",
+       "show-big-image-preview": "ზჷმა გიწოთოლორაფაშ ბორჯის: $1.",
+       "show-big-image-size": "$1 × $2 პიქსელი",
        "newimages": "ახალ სურათეფ",
        "ilsubmit": "გორუა",
        "bad_image_list": "ფორმატ რე უკულიანიშნერო:\\n\\n ხვალე ერკებულშე გიშნაგორეფ (ლაწკარეფ, ნამუთ იჭყაფუ *-ით) ისხუნუ.\nლაწკარიშ პირველ რცხი ოკო რდას რცხი გლახა ფაილშა.\nკინ თი ლაწკარს რინელ ნამდგაინ უკულიან რცხი კილესხუნუ მუჭოთ გიმნარკეში, ნამუთ ნიშნენს  ხასილეფს, სოდგა ფაილეფ შილებე რდას ღოზეფს შკას დინოხუნაფილ.",
-       "metadata": "á\83\9bá\83\94á\83¢á\83\90á\83\9bá\83\9dá\83©á\83\90á\83\9bá\83\98á\83\9aá\83\9dá\83¤á\83\94á\83¤",
+       "metadata": "á\83\9bá\83\94á\83¢á\83\90á\83\9bá\83£á\83\9cá\83\90á\83©á\83\94á\83\9bá\83\94á\83¤á\83\98",
        "metadata-help": "თე ფაილს ოხოლუ გეძინელ ინფორმაცია, ნამუთ ოეგებიეთ თი ციფრულ კამერაშე ვარა სკანერშე რე გეძინელ, ნამუთ რდუ გუმორინაფილ თე ფაილიშ ოქიმინჯალო ვარა დაციფრებელო. ფაილიშ ორიგინალ თირელ ქორენ-და, შილებე კანკალე დეტალ ვა გიშაძირუანდას ფაილშა მიშაღალირ თირაფეფს.",
        "metadata-expand": "დეტალეფიშ გოძინელ ძირაფა",
        "metadata-collapse": "გოძინელ დეტალეფიშ ტყობინაფა",
        "metadata-fields": "ათე მესიჯის შინაფილ მეტა მოჩამილოფეფიშ ოფირჩეფ ეკოროცხილ იჸი ნახანტიშ ხასილაშ დისფლეის მუჟამსით მეტა მოჩამილოფეფიშ ერკებულ იჸი გითოფაჩილინ \nშხვეფ, მუჭოთ წესინ, ტყობინაფილ იყ’ი.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "სიგანე",
        "exif-imagelength": "სიმაღალე",
+       "exif-datetime": "ფაილიშ თირუაშ რიცხუ დო ბორჯი",
+       "exif-software": "გჷმორინაფილი პროგრამა",
+       "exif-exifversion": "ვერსია Exif",
+       "exif-colorspace": "ფერეფიშ პალიტრა",
+       "exif-orientation-1": "ნორმალური",
        "namespacesall": "არძა",
        "monthsall": "არძა",
        "watchlisttools-view": "მერცხილ თირაფეფიშ ძირაფა",
        "watchlisttools-edit": "ოკონტროლებელ ხასილეფიშ ძირაფა დო რედაქტირაფა",
        "watchlisttools-raw": "კონტროლიშ ერკებულიშ რედაქტირაფა ტექსტიშ ფორმატის",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|სხუნუა]])",
        "duplicate-defaultsort": "''გური ქუჩით:''' სტანდარტული დანწყუალაშ კილა \"$2\"-შო გინარჯგინანს ორდონი დონწყუალაშ კილა \"$1\"-ს.",
        "version": "ვერსია",
        "specialpages": "გჷშაკერძაფილი ხასჷლეფი",
        "external_image_whitelist": "\"#ქჷდიტე თე ღოზი კოკობო მუჭო რენ თეში<pre>\n#ქინახუნე რეგულარული გამოსახულებაშ ფრაგმენტეფი (თი ნაწილი ნამუთ თეშ // შქას ინოდოხოდ) თუდოლე\n#თენეფი მეზჷმაფილ იჸე გალენ (hotlinked) სურათეფიშ URL-ეფშა.\n#ნამუთ მიორენ თინა სურათეფო გაგშარჩქინდჷ, ვარ-და ხვალე სურათიშ რცხუ ირწყებედასიი.\n#ღოზეფი #-თ დოჭყაფილი კომენტარო რე მერჩქინელი.\n#თენა გჷნაფულენს ასოეფიშ რეგისტრის.\n\n#ქინახუნე არძო regex ფრაგმენტეფი თე ღოზიშ ჟი. ქჷდიტე თე ღოზი კოკობო მუჭო რენ თეში</pre>\"",
        "tag-filter": "[[Special:Tags|ხინტკეფიშ]] ტკიბირი:",
-       "searchsuggest-search": "გორუა"
+       "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 629b9f5..09ab08c 100644 (file)
        "wrongpassword": "אומריכטיגע פאסווארט אריינגעלייגט.\nביטע פרובירט נאכאמאל.",
        "wrongpasswordempty": "פאסווארט אריינגעלייגט איז געווען ליידיג.\nביטע פרובירט נאכאמאל.",
        "passwordtooshort": "פאַסווערטער מוזן זײַן כאטש {{PLURAL:$1|איין כאַראַקטער|$1 כאַראַקטערס}}.",
+       "passwordtoolong": "פאַסווערטער טארן נישט זיין לענגער וויי {{PLURAL:$1|איין כאַראַקטער|$1 כאַראַקטערס}}.",
        "password-name-match": "אײַער פאַסווארט מוז זײַן אנדערש פון אײַער באַניצער נאָמען.",
        "password-login-forbidden": "באַניצן דעם נאָמען און שפּריכוואָרט איז פאַרבאָטן.",
        "mailmypassword": "צוריקשטעלן פאַסווארט",
        "missingcommentheader": "'''דערמאַנונג:''' איר האט נישט אַרײַנגעשטעלט א טעמע/קעפל פאר דער אנמערקונג. אויב וועט איר דרוקן נאכאמאל אויפן \"{{int:savearticle}}\", וועט אייער ענדערונג ווערן אפגעהיטן אן דעם.",
        "summary-preview": "סך-הכל פאראויסדיגע ווייזונג:",
        "subject-preview": "טעמע/קעפל פאראויסדיגע ווייזונג:",
+       "previewerrortext": "א פעלער האט פאסירט ביים פרובירן פארויסקוקן אײַערע ענדערונגען.",
        "blockedtitle": "באַניצער איז בלאקירט",
        "blockedtext": "'''אייער באניצער נאמען אדער IP אדרעס איז געווארן בלאקירט.'''\n\nדעם בלאק האט $1 געמאכט פון וועגן ''$2''.\n\n* בלאקירן הייבט אן: $8\n* בלאקירן גייט אויס: $6\n* בלאק מכוון צו: $7\n\nאיר קענט זיך ווענדן צו $1 אדער צו אנדערע [[{{MediaWiki:Grouppage-sysop}}|אדמיניסטראטארן]] אדורכצורעדן דעם בלאק.\n\nגיט אכט אז איר קענט נישט ניצן די \"שיקט דעם באניצער א ע-פאסט\" אייגנקייט אויב האט איר נישט איינגעשטעלט אין אייערע [[Special:Preferences|קונטע פרעפערענצן]] א גילטיקן בליצפאסט אדרעסדאס אדער איר זענט בלאקירט פון שיקן בליצפאסט.\n\nאייער IP אדרעס איז $3, און דער בלאק האט נומער #$5. ביטע שיקט איינעם פון די צוויי (אדער זיי ביידע) ווען איר ווענדט זיך צו די אדמיניסטראטורן.",
        "autoblockedtext": "אײַער [[IP אדרעס|אײַ־פּי־אַדרעס]] איז בלאָקירט געװאָרן אױטאָמאַטיש, צוליב דעם װאָס אַן אַנדער באַניצער װאָס איז בלאָקירט געװאָרן דורך $1 האָט זיך געניצט דעם דאָזיקן אײַ־פּי.\nדי אורזאַך פֿון דער בלאָקירונג איז:\n\n:'''$2'''\n\n* אנהייב פון דער בלאקירונג: $8\n* ענדע פון דער בלאָקירונג: $6\n* וועמען בלאקירט: ִ$7\n\nאיר קענט זיך פֿאַרבינדן דורכן בליצבריװ מיט $1 אָדער מיט יעדן אַנדערן [[{{MediaWiki:Grouppage-sysop}}|סיסאָפּ]] צו דיסקוטירן װעגן דער בלאָקירונג.\n\nאױב האָט איר ניט אַרײַנגעקלאַפּט אײַער בליצפּאָסט־אַדרעס אין אײַערע [[Special:Preferences|פּרעפֿערענצן]] אדער איר זענט בלאקירט פון שיקן בליצפאסט, קענט איר זיך ''נישט'' ניצן די אפציע \"שיקט דעם באניצער אן ע-פאסט\".\n\nאייער יעצטיגער IP אדרעס איז $3, און דער בלאָקירונג־נומער איז #$5.\nביטע צײכנט עס אָן בשעת איר װענדט זיך צו די סיסאָפּן.",
        "import-interwiki-history": "קאפירן אלע היסטאריע ווערסיעס פאר דעם בלאט",
        "import-interwiki-templates": "איינשילסן אלע מוסטערן",
        "import-interwiki-submit": "אימפארט",
-       "import-interwiki-namespace": "ציל נאמענטייל:",
-       "import-interwiki-rootpage": "ציל שטאמבלאט (אפציאנאל):",
        "import-upload-filename": "טעקע נאמען:",
        "import-comment": "הערה:",
        "importtext": "ביטע עקספארטירט די טעקע פון דער מקור וויקי ניצנדיג דאס [[Special:Export|עקספארט הילפמיטל]], שפייכלט אײַן אויף אײַער קאמפיוטער און לאדט אַרויף דא.",
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 57fa7b1..9214790 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": "所请求的网页标题太长。标题不能超过$1个字节。",
+       "title-invalid-leading-colon": "请求的页面标题开头包含一个无效的冒号。",
        "perfcached": "以下是缓存的数据,可能不是最新的数据。缓存中最多有{{PLURAL:$1|$1条结果}}。",
        "perfcachedts": "以下是缓存的数据,最后更新于$1。缓存中最多有{{PLURAL:$4|$4条结果}}。",
        "querypage-no-updates": "该页面的更新目前停用。这里的数据不会马上刷新。",
        "cannotchangeemail": "本wiki不允许对账户的电子邮件地址进行更改。",
        "emaildisabled": "该网站无法发送电子邮件。",
        "accountcreated": "已建立账户",
-       "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]])的账户已创建。",
+       "accountcreatedtext": "[[{{ns:User}}:$1|$1]]([[{{ns:User talk}}:$1|对话]])的账户已创建。",
        "createaccount-title": "在{{SITENAME}}创建新账户",
        "createaccount-text": "有人在{{SITENAME}}中利用您的邮箱创建了一个名为 \"$2\" 的新帐户($4),密码是 \"$3\" 。您应该立即登录并更改密码。\n\n如果该账户创建错误的话,您可以忽略此信息。",
        "login-throttled": "你最近尝试登录的次数过多。请等待$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": "请使用[[Special:Export|导出功能]]从源 wiki 导出文件,\n保存到您的电脑并上传到这里。",
index 8426fbe..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-interwiki-namespace": "目標命名空間:",
-       "import-interwiki-rootpage": "目標根頁面 (選填):",
+       "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 f97f6dc..50b8a01 100644 (file)
@@ -603,7 +603,7 @@ abstract class Maintenance {
         * Activate the profiler (assuming $wgProfiler is set)
         */
        protected function activateProfiler() {
-               global $wgProfiler;
+               global $wgProfiler, $wgTrxProfilerLimits;
 
                $output = $this->getOption( 'profiler' );
                if ( $output && is_array( $wgProfiler ) && isset( $wgProfiler['class'] ) ) {
@@ -617,8 +617,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 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 = '';
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 71641ef..4ab57d4 100755 (executable)
@@ -203,13 +203,16 @@ def customRules( path ):
     fp = open( path, 'r', encoding = 'U8' )
     ret = dict()
     for line in fp:
-        elems = line.split( '#' )[0].split()
+        line = line.rstrip( '\r\n' )
+        if '#' in line:
+            line = line.split( '#' )[0].rstrip()
+        elems = line.split( '\t' )
         if len( elems ) > 1:
             ret[elems[0]] = elems[1]
     return ret
 
 def dictToSortedList( src_table, pos ):
-    return sorted( src_table.items(), key = lambda m: m[pos] )
+    return sorted( src_table.items(), key = lambda m: ( m[pos], m[1 - pos] ) )
 
 def translate( text, conv_table ):
     i = 0
@@ -229,7 +232,7 @@ def manualWordsTable( path, conv_table, reconv_table ):
     reconv_table = {}
     wordlist = [line.split( '#' )[0].strip() for line in fp]
     wordlist = list( set( wordlist ) )
-    wordlist.sort( key = len, reverse = True )
+    wordlist.sort( key = lambda w: ( len(w), w ), reverse = True )
     while wordlist:
         word = wordlist.pop()
         new_word = translate( word, conv_table )
@@ -241,7 +244,7 @@ def manualWordsTable( path, conv_table, reconv_table ):
 
 def defaultWordsTable( src_wordlist, src_tomany, char_conv_table, char_reconv_table ):
     wordlist = list( src_wordlist )
-    wordlist.sort( key = len, reverse = True )
+    wordlist.sort( key = lambda w: ( len(w), w ), reverse = True )
     word_conv_table = {}
     word_reconv_table = {}
     conv_table = char_conv_table.copy()
@@ -276,7 +279,7 @@ def PHPArray( table ):
 def main():
     #Get Unihan.zip:
     url = 'http://www.unicode.org/Public/%s/ucd/Unihan.zip' % UNIHAN_VER
-    han_dest = 'Unihan.zip'
+    han_dest = 'Unihan-%s.zip' % UNIHAN_VER
     download( url, han_dest )
     
     # Get scim-tables-$(SCIM_TABLES_VER).tar.gz:
index 4a2d9fb..3b5f3dd 100644 (file)
@@ -2718,4 +2718,4 @@ A型肝炎        甲型肝炎
 賈伯斯      乔布斯
 波里活      宝莱坞
 庫德族      库尔德族
-庫德人      库尔德人
\ No newline at end of file
+庫德人      库尔德人
index a4e4901..f765873 100644 (file)
@@ -3064,4 +3064,4 @@ IP地址  IP位址
 宝莱坞      波里活
 寶萊塢      波里活
 庫德族      库爾德族
-庫德人      库爾德人
\ No newline at end of file
+庫德人      库爾德人
index bcd8492..b0be071 100644 (file)
@@ -743,4 +743,4 @@ IP地址    IP位址
 乔布斯      賈伯斯
 波里活      寶萊塢
 库尔德族   庫德族
-库尔德人   庫德人
\ No newline at end of file
+库尔德人   庫德人
index 9157e3f..a82dd1e 100644 (file)
 灵昆 靈崑
 龙岩 龍巖
 扑冬 撲鼕
-冬冬鼓      鼕鼕鼓
\ No newline at end of file
+冬冬鼓      鼕鼕鼓
index f202c9d..5a0c6c3 100644 (file)
@@ -790,4 +790,4 @@ U+26548𦕈|U+07707眇|
 U+26D4F𦵏|U+0846C葬|
 U+28F7B𨽻|U+096B6隶|
 U+294D0𩓐|U+08116脖|
-U+295D7𩗗|U+098D3飓|
\ No newline at end of file
+U+295D7𩗗|U+098D3飓|
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 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 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..b32dd33 100644 (file)
@@ -1730,6 +1730,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 +1753,144 @@ 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',
+               'position' => 'top',
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
+       ),
+       'oojs-ui.styles.indicators' => array(
+               'class' => 'ResourceLoaderImageModule',
+               'position' => 'top',
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'indicators.json',
+       ),
+       'oojs-ui.styles.textures' => array(
+               'class' => 'ResourceLoaderImageModule',
+               'position' => 'top',
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'textures.json',
+       ),
        'oojs-ui.styles.icons-alerts' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-alerts.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-content' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-content.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-editing-advanced' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-editing-advanced.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-editing-core' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-editing-core.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-editing-list' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-editing-list.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-editing-styling' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-editing-styling.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-interactions' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-interactions.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-layout' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-layout.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-location' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-location.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-media' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-media.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-moderation' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-moderation.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-movement' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-movement.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-user' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-user.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-wikimedia' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               '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 ) ) {
index b84df25..6230cc9 100644 (file)
@@ -6,5 +6,14 @@
        },
        "ooui-outline-control-move-down": "Flyt lutin niður",
        "ooui-outline-control-move-up": "Flyt lutin upp",
-       "ooui-toolbar-more": "Meira"
+       "ooui-outline-control-remove": "Tak ein lut burtur",
+       "ooui-toolbar-more": "Meira",
+       "ooui-toolgroup-expand": "Meira",
+       "ooui-toolgroup-collapse": "Færri",
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Avbrót",
+       "ooui-dialog-process-error": "Okkurt gekk galið",
+       "ooui-dialog-process-dismiss": "Lat aftur",
+       "ooui-dialog-process-retry": "Royn aftur",
+       "ooui-dialog-process-continue": "Halt fram"
 }
index b003e8c..982a3cd 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Vikassy",
                        "Nayvik",
-                       "Omshivaprakash"
+                       "Omshivaprakash",
+                       "Pavanaja"
                ]
        },
        "ooui-outline-control-move-down": "ವಸ್ತುವನ್ನು ಕೆಳಗೆ ಸರಿಸು",
@@ -14,7 +15,7 @@
        "ooui-toolgroup-collapse": "ಕೆಲವೇ ಕೆಲವು",
        "ooui-dialog-message-accept": "ಸರಿ",
        "ooui-dialog-message-reject": "ರದ್ದುಮಾಡು",
-       "ooui-dialog-process-error": "à²\8eನೋ ಎಡವಟ್ಟಾಗಿದೆ....",
+       "ooui-dialog-process-error": "à²\8fನೋ ಎಡವಟ್ಟಾಗಿದೆ....",
        "ooui-dialog-process-dismiss": "ತೆಗೆದುಹಾಕು",
        "ooui-dialog-process-retry": "ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ",
        "ooui-dialog-process-continue": "ಮುಂದುವರೆಸು"
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 37012b2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 b48bbdf..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 a61f630..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 42c2b14..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 4fe87ca..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 6990522..0000000
+++ /dev/null
@@ -1,495 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 e310e39..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 76f456d..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 2842e3b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 82df52f..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 6b5befd..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 5161f0a..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 2ea8adf..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 fbafe17..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-.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 54be6b4..297739d 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.10.0
+ * OOjs UI v0.11.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-23T00:54:33Z
+ * Date: 2015-05-05T00:40:57Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
 .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 {
        margin: 0;
 }
 .oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle {
-       height: 1.5em;
-       padding: 0.25em;
+       height: 1.875em;
+       padding: 0.3125em;
 }
 .oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
+       height: 1.875em;
+       width: 1.875em;
        opacity: 0.8;
 }
 .oo-ui-toolGroupTool > .oo-ui-popupToolGroup.oo-ui-labelElement > .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
 .oo-ui-toolGroup {
        display: inline-block;
        vertical-align: middle;
-       margin: 0.3em;
+       margin: 0.375em;
 }
 .oo-ui-toolGroup-empty {
        display: none;
        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.3125em;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
+       height: 1.875em;
+       width: 1.875em;
        opacity: 0.8;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-tool-title {
        line-height: 2.1em;
-       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-popupToolGroup {
        position: relative;
-       height: 2em;
-       min-width: 2em;
+       height: 2.5em;
+       min-width: 2.5em;
 }
 .oo-ui-popupToolGroup-handle {
        display: block;
        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-right: 1.75em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-       width: 0.75em;
-       height: 0.75em;
-       margin: 0.625em;
+       width: 0.9375em;
+       height: 0.9375em;
+       margin: 0.78125em;
        top: 0;
        right: 0;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-       right: -0.25em;
+       right: -0.3125em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       width: 1.5em;
-       height: 1.5em;
-       margin: 0.25em;
+       width: 1.875em;
+       height: 1.875em;
+       margin: 0.3125em;
        top: 0;
-       left: 0.25em;
+       left: 0.3125em;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
        left: 0;
 }
 .oo-ui-popupToolGroup-header {
        line-height: 2.6em;
-       font-size: 0.8em;
        margin: 0 0.6em;
        font-weight: bold;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-       top: 2em;
+       top: 2.5em;
        background-color: white;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link {
-       padding: 0.25em 0 0.25em 0.25em;
+       padding: 0.3125em 0 0.3125em 0.3125em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       min-width: 1.5em;
+       height: 1.875em;
+       width: 1.875em;
+       min-width: 1.875em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
        padding-left: 0.5em;
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel,
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
        line-height: 2em;
-       font-size: 0.8em;
 }
 .oo-ui-listToolGroup .oo-ui-tool {
        display: block;
        cursor: default;
 }
 .oo-ui-listToolGroup .oo-ui-tool {
-       padding: 0 0.75em 0 0.25em;
+       padding: 0 0.9375em 0 0.3125em;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
        background-color: #eeeeee;
        opacity: 0.2;
 }
 .oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-       padding: 0.25em 0 0.25em 0;
+       padding: 0.3125em 0 0.3125em 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);
+       border-radius: 0.25em;
+       box-shadow: inset 0 -0.25em 0 0 rgba(0, 0, 0, 0.2), 0 0.125em 0 0 rgba(0, 0, 0, 0.1);
 }
 .oo-ui-menuToolGroup {
        border: 1px solid #cccccc;
-       border-radius: 0.1em;
+       border-radius: 0.125em;
 }
 .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;
+       min-width: 8.125em;
 }
 .oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
        margin-left: -1px;
-       padding: 0.25em 0 0.25em 0;
+       padding: 0.3125em 0 0.3125em 0;
        border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
+       border-radius: 0.25em;
        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);
+       box-shadow: inset 0 -0.25em 0 0 rgba(0, 0, 0, 0.2), 0 0.125em 0 0 rgba(0, 0, 0, 0.1);
 }
 .oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
        border-color: #aaaaaa;
        border-color: #aaaaaa;
 }
 .oo-ui-menuToolGroup .oo-ui-tool {
-       padding: 0 1em 0 0.25em;
+       padding: 0 1.25em 0 0.3125em;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
        background-image: none;
 .oo-ui-buttonGroupWidget:last-child {
        margin-right: 0;
 }
-.oo-ui-buttonGroupWidget .oo-ui-buttonWidget {
+.oo-ui-buttonGroupWidget .oo-ui-buttonElement {
        margin-right: 0;
 }
-.oo-ui-buttonGroupWidget .oo-ui-buttonWidget:last-child {
+.oo-ui-buttonGroupWidget .oo-ui-buttonElement:last-child {
        margin-right: 0;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .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;
        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;
        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:hover {
+       background-color: rgba(255, 255, 255, 0.3);
+}
+.oo-ui-tabOptionWidget: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 17ab620..0000000
+++ /dev/null
@@ -1,3062 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * 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-23T00:54:33Z
- */
-@-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-buttonWidget {
-       margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonWidget: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-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 a03734a..b013b1a 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.10.0
+ * OOjs UI v0.11.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-23T00:54:26Z
+ * Date: 2015-05-05T00:40:50Z
  */
 /**
  * @class
index 1011949..f6d6128 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.10.0
+ * OOjs UI v0.11.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-23T00:54:26Z
+ * Date: 2015-05-05T00:40:50Z
  */
 ( 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.
@@ -1809,7 +1841,7 @@ OO.ui.Window = function OoUiWindow( config ) {
        this.$overlay.addClass( 'oo-ui-window-overlay' );
        this.$content
                .addClass( 'oo-ui-window-content' )
-               .attr( 'tabIndex', 0 );
+               .attr( 'tabindex', 0 );
        this.$frame
                .addClass( 'oo-ui-window-frame' )
                .append( this.$content );
@@ -5338,9 +5370,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.
@@ -6399,6 +6431,7 @@ OO.ui.ClippableElement.prototype.clip = function () {
  * @extends OO.ui.Widget
  * @mixins OO.ui.IconElement
  * @mixins OO.ui.FlaggedElement
+ * @mixins OO.ui.TabIndexedElement
  *
  * @constructor
  * @param {OO.ui.ToolGroup} toolGroup
@@ -6418,10 +6451,6 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        // Parent constructor
        OO.ui.Tool.super.call( this, config );
 
-       // Mixin constructors
-       OO.ui.IconElement.call( this, config );
-       OO.ui.FlaggedElement.call( this, config );
-
        // Properties
        this.toolGroup = toolGroup;
        this.toolbar = this.toolGroup.getToolbar();
@@ -6431,6 +6460,11 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        this.$link = $( '<a>' );
        this.title = null;
 
+       // Mixin constructors
+       OO.ui.IconElement.call( this, config );
+       OO.ui.FlaggedElement.call( this, config );
+       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$link } ) );
+
        // Events
        this.toolbar.connect( this, { updateState: 'onUpdateState' } );
 
@@ -6447,7 +6481,6 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        this.$link
                .addClass( 'oo-ui-tool-link' )
                .append( this.$icon, this.$title, this.$accel )
-               .prop( 'tabIndex', 0 )
                .attr( 'role', 'button' );
        this.$element
                .data( 'oo-ui-tool', this )
@@ -6464,6 +6497,7 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
 OO.inheritClass( OO.ui.Tool, OO.ui.Widget );
 OO.mixinClass( OO.ui.Tool, OO.ui.IconElement );
 OO.mixinClass( OO.ui.Tool, OO.ui.FlaggedElement );
+OO.mixinClass( OO.ui.Tool, OO.ui.TabIndexedElement );
 
 /* Events */
 
@@ -6670,7 +6704,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *     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
  *
@@ -6830,7 +6864,7 @@ OO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {
        // Events
        this.$element
                .add( this.$bar ).add( this.$group ).add( this.$actions )
-               .on( 'mousedown', this.onPointerDown.bind( this ) );
+               .on( 'mousedown keydown', this.onPointerDown.bind( this ) );
 
        // Initialization
        this.$group.addClass( 'oo-ui-toolbar-tools' );
@@ -7065,14 +7099,18 @@ OO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {
        this.exclude = config.exclude || [];
        this.promote = config.promote || [];
        this.demote = config.demote || [];
-       this.onCapturedMouseUpHandler = this.onCapturedMouseUp.bind( this );
+       this.onCapturedMouseKeyUpHandler = this.onCapturedMouseKeyUp.bind( this );
 
        // Events
        this.$element.on( {
-               mousedown: this.onPointerDown.bind( this ),
-               mouseup: this.onPointerUp.bind( this ),
-               mouseover: this.onMouseOver.bind( this ),
-               mouseout: this.onMouseOut.bind( this )
+               mousedown: this.onMouseKeyDown.bind( this ),
+               mouseup: this.onMouseKeyUp.bind( this ),
+               keydown: this.onMouseKeyDown.bind( this ),
+               keyup: this.onMouseKeyUp.bind( this ),
+               focus: this.onMouseOverFocus.bind( this ),
+               blur: this.onMouseOutBlur.bind( this ),
+               mouseover: this.onMouseOverFocus.bind( this ),
+               mouseout: this.onMouseOutBlur.bind( this )
        } );
        this.toolbar.getToolFactory().connect( this, { register: 'onToolFactoryRegister' } );
        this.aggregate( { disable: 'itemDisable' } );
@@ -7155,57 +7193,64 @@ OO.ui.ToolGroup.prototype.updateDisabled = function () {
 };
 
 /**
- * Handle mouse down events.
+ * Handle mouse down and key down events.
  *
- * @param {jQuery.Event} e Mouse down event
+ * @param {jQuery.Event} e Mouse down or key down event
  */
-OO.ui.ToolGroup.prototype.onPointerDown = function ( e ) {
-       if ( !this.isDisabled() && e.which === 1 ) {
+OO.ui.ToolGroup.prototype.onMouseKeyDown = function ( e ) {
+       if (
+               !this.isDisabled() &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
                this.pressed = this.getTargetTool( e );
                if ( this.pressed ) {
                        this.pressed.setActive( true );
-                       this.getElementDocument().addEventListener(
-                               'mouseup', this.onCapturedMouseUpHandler, true
-                       );
+                       this.getElementDocument().addEventListener( 'mouseup', this.onCapturedMouseKeyUpHandler, true );
+                       this.getElementDocument().addEventListener( 'keyup', this.onCapturedMouseKeyUpHandler, true );
                }
+               return false;
        }
-       return false;
 };
 
 /**
- * Handle captured mouse up events.
+ * Handle captured mouse up and key up events.
  *
- * @param {Event} e Mouse up event
+ * @param {Event} e Mouse up or key up event
  */
-OO.ui.ToolGroup.prototype.onCapturedMouseUp = function ( e ) {
-       this.getElementDocument().removeEventListener( 'mouseup', this.onCapturedMouseUpHandler, true );
-       // onPointerUp may be called a second time, depending on where the mouse is when the button is
+OO.ui.ToolGroup.prototype.onCapturedMouseKeyUp = function ( e ) {
+       this.getElementDocument().removeEventListener( 'mouseup', this.onCapturedMouseKeyUpHandler, true );
+       this.getElementDocument().removeEventListener( 'keyup', this.onCapturedMouseKeyUpHandler, true );
+       // onMouseKeyUp may be called a second time, depending on where the mouse is when the button is
        // released, but since `this.pressed` will no longer be true, the second call will be ignored.
-       this.onPointerUp( e );
+       this.onMouseKeyUp( e );
 };
 
 /**
- * Handle mouse up events.
+ * Handle mouse up and key up events.
  *
- * @param {jQuery.Event} e Mouse up event
+ * @param {jQuery.Event} e Mouse up or key up event
  */
-OO.ui.ToolGroup.prototype.onPointerUp = function ( e ) {
+OO.ui.ToolGroup.prototype.onMouseKeyUp = function ( e ) {
        var tool = this.getTargetTool( e );
 
-       if ( !this.isDisabled() && e.which === 1 && this.pressed && this.pressed === tool ) {
+       if (
+               !this.isDisabled() && this.pressed && this.pressed === tool &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
                this.pressed.onSelect();
+               this.pressed = null;
+               return false;
        }
 
        this.pressed = null;
-       return false;
 };
 
 /**
- * Handle mouse over events.
+ * Handle mouse over and focus events.
  *
- * @param {jQuery.Event} e Mouse over event
+ * @param {jQuery.Event} e Mouse over or focus event
  */
-OO.ui.ToolGroup.prototype.onMouseOver = function ( e ) {
+OO.ui.ToolGroup.prototype.onMouseOverFocus = function ( e ) {
        var tool = this.getTargetTool( e );
 
        if ( this.pressed && this.pressed === tool ) {
@@ -7214,11 +7259,11 @@ OO.ui.ToolGroup.prototype.onMouseOver = function ( e ) {
 };
 
 /**
- * Handle mouse out events.
+ * Handle mouse out and blur events.
  *
- * @param {jQuery.Event} e Mouse out event
+ * @param {jQuery.Event} e Mouse out or blur event
  */
-OO.ui.ToolGroup.prototype.onMouseOut = function ( e ) {
+OO.ui.ToolGroup.prototype.onMouseOutBlur = function ( e ) {
        var tool = this.getTargetTool( e );
 
        if ( this.pressed && this.pressed === tool ) {
@@ -9081,7 +9126,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 ) {
@@ -9119,210 +9164,802 @@ 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
  */
-OO.ui.PageLayout.prototype.getName = function () {
-       return this.name;
-};
 
 /**
- * Check if page is active.
- *
- * Pages become active when they are shown in a {@link OO.ui.BookletLayout booklet layout} that is configured to display
- * only one page at a time. Additional CSS is applied to the page's outline item to reflect the active state.
+ * A 'remove' event is emitted when cards are {@link #clearCards cleared} or
+ * {@link #removeCards removed} from the index.
  *
- * @return {boolean} Page is active
+ * @event remove
+ * @param {OO.ui.CardLayout[]} cards Removed cards
  */
-OO.ui.PageLayout.prototype.isActive = function () {
-       return this.active;
-};
+
+/* Methods */
 
 /**
- * Get outline item.
- *
- * The outline item allows users to access the page from the booklet's outline
- * navigation. The outline item itself can be customized (with a label, level, etc.) using the #setupOutlineItem method.
+ * Handle stack layout focus.
  *
- * @return {OO.ui.OutlineOptionWidget|null} Outline option widget
+ * @private
+ * @param {jQuery.Event} e Focusin event
  */
-OO.ui.PageLayout.prototype.getOutlineItem = function () {
-       return this.outlineItem;
+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;
+               }
+       }
 };
 
 /**
- * Set or unset the outline item.
- *
- * Specify an {@link OO.ui.OutlineOptionWidget outline option} to set it,
- * or `null` to clear the outline item. To customize the outline item itself (e.g., to set a label or outline
- * level), use #setupOutlineItem instead of this method.
+ * Handle stack layout set events.
  *
- * @param {OO.ui.OutlineOptionWidget|null} outlineItem Outline option widget, null to clear
- * @chainable
+ * @private
+ * @param {OO.ui.PanelLayout|null} card The card panel that is now the current panel
  */
-OO.ui.PageLayout.prototype.setOutlineItem = function ( outlineItem ) {
-       this.outlineItem = outlineItem || null;
-       if ( outlineItem ) {
-               this.setupOutlineItem();
+OO.ui.IndexLayout.prototype.onStackLayoutSet = function ( card ) {
+       var layout = this;
+       if ( card ) {
+               card.scrollElementIntoView( { complete: function () {
+                       if ( layout.autoFocus ) {
+                               layout.focus();
+                       }
+               } } );
        }
-       return this;
 };
 
 /**
- * Set up the outline item.
+ * Focus the first input in the current card.
  *
- * Use this method to customize the outline item (e.g., to add a label or outline level). To set or unset
- * the outline item itself (with an {@link OO.ui.OutlineOptionWidget outline option} or `null`), use
- * the #setOutlineItem method instead.
- *
- * @param {OO.ui.OutlineOptionWidget} outlineItem Outline option widget to set up
- * @chainable
+ * 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.PageLayout.prototype.setupOutlineItem = function () {
-       return this;
+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();
+               }
+       }
 };
 
 /**
- * Set the page to its 'active' state.
- *
- * Pages become active when they are shown in a booklet layout that is configured to display only one page at a time. Additional
- * CSS is applied to the outline item to reflect the page's active state. Outside of the booklet
- * context, setting the active state on a page does nothing.
- *
- * @param {boolean} value Page is active
- * @fires active
+ * Find the first focusable input in the index layout and focus
+ * on it.
  */
-OO.ui.PageLayout.prototype.setActive = function ( active ) {
-       active = !!active;
+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;
+                       }
+               };
 
-       if ( active !== this.active ) {
-               this.active = active;
-               this.$element.toggleClass( 'oo-ui-pageLayout-active', active );
-               this.emit( 'active', this.active );
+       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 );
        }
 };
 
 /**
- * StackLayouts contain a series of {@link OO.ui.PanelLayout panel layouts}. By default, only one panel is displayed
- * at a time, though the stack layout can also be configured to show all contained panels, one after another,
- * by setting the #continuous option to 'true'.
+ * Handle tab widget select events.
  *
- *     @example
- *     // A stack layout with two panels, configured to be displayed continously
- *     var myStack = new OO.ui.StackLayout( {
- *         items: [
- *             new OO.ui.PanelLayout( {
+ * @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;
+};
+
+/**
+ * Check if page is active.
+ *
+ * Pages become active when they are shown in a {@link OO.ui.BookletLayout booklet layout} that is configured to display
+ * only one page at a time. Additional CSS is applied to the page's outline item to reflect the active state.
+ *
+ * @return {boolean} Page is active
+ */
+OO.ui.PageLayout.prototype.isActive = function () {
+       return this.active;
+};
+
+/**
+ * Get outline item.
+ *
+ * The outline item allows users to access the page from the booklet's outline
+ * navigation. The outline item itself can be customized (with a label, level, etc.) using the #setupOutlineItem method.
+ *
+ * @return {OO.ui.OutlineOptionWidget|null} Outline option widget
+ */
+OO.ui.PageLayout.prototype.getOutlineItem = function () {
+       return this.outlineItem;
+};
+
+/**
+ * Set or unset the outline item.
+ *
+ * Specify an {@link OO.ui.OutlineOptionWidget outline option} to set it,
+ * or `null` to clear the outline item. To customize the outline item itself (e.g., to set a label or outline
+ * level), use #setupOutlineItem instead of this method.
+ *
+ * @param {OO.ui.OutlineOptionWidget|null} outlineItem Outline option widget, null to clear
+ * @chainable
+ */
+OO.ui.PageLayout.prototype.setOutlineItem = function ( outlineItem ) {
+       this.outlineItem = outlineItem || null;
+       if ( outlineItem ) {
+               this.setupOutlineItem();
+       }
+       return this;
+};
+
+/**
+ * Set up the outline item.
+ *
+ * Use this method to customize the outline item (e.g., to add a label or outline level). To set or unset
+ * the outline item itself (with an {@link OO.ui.OutlineOptionWidget outline option} or `null`), use
+ * the #setOutlineItem method instead.
+ *
+ * @param {OO.ui.OutlineOptionWidget} outlineItem Outline option widget to set up
+ * @chainable
+ */
+OO.ui.PageLayout.prototype.setupOutlineItem = function () {
+       return this;
+};
+
+/**
+ * Set the page to its 'active' state.
+ *
+ * Pages become active when they are shown in a booklet layout that is configured to display only one page at a time. Additional
+ * CSS is applied to the outline item to reflect the page's active state. Outside of the booklet
+ * context, setting the active state on a page does nothing.
+ *
+ * @param {boolean} value Page is active
+ * @fires active
+ */
+OO.ui.PageLayout.prototype.setActive = function ( active ) {
+       active = !!active;
+
+       if ( active !== this.active ) {
+               this.active = active;
+               this.$element.toggleClass( 'oo-ui-pageLayout-active', active );
+               this.emit( 'active', this.active );
+       }
+};
+
+/**
+ * StackLayouts contain a series of {@link OO.ui.PanelLayout panel layouts}. By default, only one panel is displayed
+ * at a time, though the stack layout can also be configured to show all contained panels, one after another,
+ * by setting the #continuous option to 'true'.
+ *
+ *     @example
+ *     // A stack layout with two panels, configured to be displayed continously
+ *     var myStack = new OO.ui.StackLayout( {
+ *         items: [
+ *             new OO.ui.PanelLayout( {
  *                 $content: $( '<p>Panel One</p>' ),
  *                 padded: true,
  *                 framed: true
@@ -9575,6 +10212,7 @@ OO.ui.BarToolGroup.static.name = 'bar';
  * @mixins OO.ui.LabelElement
  * @mixins OO.ui.TitledElement
  * @mixins OO.ui.ClippableElement
+ * @mixins OO.ui.TabIndexedElement
  *
  * @constructor
  * @param {OO.ui.Toolbar} toolbar
@@ -9594,23 +10232,26 @@ OO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {
        // Parent constructor
        OO.ui.PopupToolGroup.super.call( this, toolbar, config );
 
+       // Properties
+       this.active = false;
+       this.dragging = false;
+       this.onBlurHandler = this.onBlur.bind( this );
+       this.$handle = $( '<span>' );
+
        // Mixin constructors
        OO.ui.IconElement.call( this, config );
        OO.ui.IndicatorElement.call( this, config );
        OO.ui.LabelElement.call( this, config );
        OO.ui.TitledElement.call( this, config );
        OO.ui.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );
-
-       // Properties
-       this.active = false;
-       this.dragging = false;
-       this.onBlurHandler = this.onBlur.bind( this );
-       this.$handle = $( '<span>' );
+       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );
 
        // Events
        this.$handle.on( {
-               mousedown: this.onHandlePointerDown.bind( this ),
-               mouseup: this.onHandlePointerUp.bind( this )
+               keydown: this.onHandleMouseKeyDown.bind( this ),
+               keyup: this.onHandleMouseKeyUp.bind( this ),
+               mousedown: this.onHandleMouseKeyDown.bind( this ),
+               mouseup: this.onHandleMouseKeyUp.bind( this )
        } );
 
        // Initialization
@@ -9640,6 +10281,7 @@ OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.IndicatorElement );
 OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.LabelElement );
 OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.TitledElement );
 OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.ClippableElement );
+OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.TabIndexedElement );
 
 /* Static Properties */
 
@@ -9660,9 +10302,9 @@ OO.ui.PopupToolGroup.prototype.setDisabled = function () {
 /**
  * Handle focus being lost.
  *
- * The event is actually generated from a mouseup, so it is not a normal blur event object.
+ * The event is actually generated from a mouseup/keyup, so it is not a normal blur event object.
  *
- * @param {jQuery.Event} e Mouse up event
+ * @param {jQuery.Event} e Mouse up or key up event
  */
 OO.ui.PopupToolGroup.prototype.onBlur = function ( e ) {
        // Only deactivate when clicking outside the dropdown element
@@ -9674,33 +10316,44 @@ OO.ui.PopupToolGroup.prototype.onBlur = function ( e ) {
 /**
  * @inheritdoc
  */
-OO.ui.PopupToolGroup.prototype.onPointerUp = function ( e ) {
+OO.ui.PopupToolGroup.prototype.onMouseKeyUp = function ( e ) {
        // Only close toolgroup when a tool was actually selected
-       if ( !this.isDisabled() && e.which === 1 && this.pressed && this.pressed === this.getTargetTool( e ) ) {
+       if (
+               !this.isDisabled() && this.pressed && this.pressed === this.getTargetTool( e ) &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
                this.setActive( false );
        }
-       return OO.ui.PopupToolGroup.super.prototype.onPointerUp.call( this, e );
+       return OO.ui.PopupToolGroup.super.prototype.onMouseKeyUp.call( this, e );
 };
 
 /**
- * Handle mouse up events.
+ * Handle mouse up and key up events.
  *
- * @param {jQuery.Event} e Mouse up event
+ * @param {jQuery.Event} e Mouse up or key up event
  */
-OO.ui.PopupToolGroup.prototype.onHandlePointerUp = function () {
-       return false;
+OO.ui.PopupToolGroup.prototype.onHandleMouseKeyUp = function ( e ) {
+       if (
+               !this.isDisabled() &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
+               return false;
+       }
 };
 
 /**
- * Handle mouse down events.
+ * Handle mouse down and key down events.
  *
- * @param {jQuery.Event} e Mouse down event
+ * @param {jQuery.Event} e Mouse down or key down event
  */
-OO.ui.PopupToolGroup.prototype.onHandlePointerDown = function ( e ) {
-       if ( !this.isDisabled() && e.which === 1 ) {
+OO.ui.PopupToolGroup.prototype.onHandleMouseKeyDown = function ( e ) {
+       if (
+               !this.isDisabled() &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
                this.setActive( !this.active );
+               return false;
        }
-       return false;
 };
 
 /**
@@ -9714,6 +10367,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
                this.active = value;
                if ( value ) {
                        this.getElementDocument().addEventListener( 'mouseup', this.onBlurHandler, true );
+                       this.getElementDocument().addEventListener( 'keyup', this.onBlurHandler, true );
 
                        // Try anchoring the popup to the left first
                        this.$element.addClass( 'oo-ui-popupToolGroup-active oo-ui-popupToolGroup-left' );
@@ -9728,6 +10382,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
                        }
                } else {
                        this.getElementDocument().removeEventListener( 'mouseup', this.onBlurHandler, true );
+                       this.getElementDocument().removeEventListener( 'keyup', this.onBlurHandler, true );
                        this.$element.removeClass(
                                'oo-ui-popupToolGroup-active oo-ui-popupToolGroup-left  oo-ui-popupToolGroup-right'
                        );
@@ -9846,16 +10501,18 @@ OO.ui.ListToolGroup.prototype.getExpandCollapseTool = function () {
 /**
  * @inheritdoc
  */
-OO.ui.ListToolGroup.prototype.onPointerUp = function ( e ) {
-       var ret = OO.ui.ListToolGroup.super.prototype.onPointerUp.call( this, e );
-
+OO.ui.ListToolGroup.prototype.onMouseKeyUp = function ( e ) {
        // Do not close the popup when the user wants to show more/fewer tools
-       if ( $( e.target ).closest( '.oo-ui-tool-name-more-fewer' ).length ) {
-               // Prevent the popup list from being hidden
-               this.setActive( true );
+       if (
+               $( e.target ).closest( '.oo-ui-tool-name-more-fewer' ).length &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
+               // HACK: Prevent the popup list from being hidden. Skip the PopupToolGroup implementation (which
+               // hides the popup list when a tool is selected) and call ToolGroup's implementation directly.
+               return OO.ui.ListToolGroup.super.super.prototype.onMouseKeyUp.call( this, e );
+       } else {
+               return OO.ui.ListToolGroup.super.prototype.onMouseKeyUp.call( this, e );
        }
-
-       return ret;
 };
 
 OO.ui.ListToolGroup.prototype.updateCollapsibleState = function () {
@@ -10176,7 +10833,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
@@ -10866,7 +11523,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.
@@ -11801,10 +12458,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;
 };
@@ -12003,9 +12657,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
@@ -12054,6 +12710,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
@@ -12070,7 +12727,7 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
                this.$input.attr( 'autofocus', 'autofocus' );
        }
        if ( config.required ) {
-               this.$input.attr( 'required', 'true' );
+               this.$input.attr( 'required', 'required' );
        }
        if ( this.label || config.autosize ) {
                this.installParentChangeDetector();
@@ -12159,25 +12816,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;
 };
 
 /**
@@ -12362,15 +13008,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 ] || /.*/;
@@ -12383,6 +13029,11 @@ OO.ui.TextInputWidget.prototype.setValidation = function ( validate ) {
 OO.ui.TextInputWidget.prototype.setValidityFlag = function () {
        var widget = this;
        this.isValid().done( function ( valid ) {
+               if ( !valid ) {
+                       widget.$input.attr( 'aria-invalid', 'true' );
+               } else {
+                       widget.$input.removeAttr( 'aria-invalid' );
+               }
                widget.setFlags( { invalid: !valid } );
        } );
 };
@@ -12393,10 +13044,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();
+       }
 };
 
 /**
@@ -13372,6 +14032,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.
@@ -13400,9 +14092,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
@@ -13444,7 +14140,12 @@ 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';
+       // Validate alignment and transform deprecated values
+       if ( [ 'left', 'right', 'force-left', 'force-right', 'backwards', 'forwards', 'center' ].indexOf( config.align ) > -1 ) {
+               this.align = { left: 'force-right', right: 'force-left' }[ config.align ] || config.align;
+       } else {
+               this.align = 'center';
+       }
        this.closeButton = new OO.ui.ButtonWidget( { framed: false, icon: 'close' } );
        this.onMouseDownHandler = this.onMouseDown.bind( this );
        this.onDocumentKeyDownHandler = this.onDocumentKeyDown.bind( this );
@@ -13660,6 +14361,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 ) {
@@ -13674,8 +14376,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;
@@ -14420,6 +15132,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.
@@ -15103,7 +15831,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
@@ -15134,6 +15862,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..948ae6c
--- /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" },
+               "undo": { "file": {
+                       "ltr": "images/icons/arched-arrow-rtl.svg",
+                       "rtl": "images/icons/arched-arrow-ltr.svg"
+               } },
+               "window": { "file": "images/icons/window.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/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..dfcfb7f
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..d17622c
--- /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="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>
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>
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/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>
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 f01115b..387b020 100644 (file)
@@ -2,7 +2,7 @@
 
 .mw-category {
        .column-count(3);
-       .column-width(25em);
+       .column-width(24em);
        .mw-category-group {
                li {
                        .column-break-inside-avoid;
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 f5aeb3f..32cd79a 100644 (file)
         * Wikipage import methods
         *
         * See https://www.mediawiki.org/wiki/ResourceLoader/Legacy_JavaScript#wikibits.js
-        *
-        * @deprecated since 1.17 Use mw.loader instead. Warnings added in 1.26.
         */
 
        function importScript( page ) {
                return importScriptURI( uri );
        }
 
+       /**
+        * @deprecated since 1.17 Use mw.loader instead. Warnings added in 1.25.
+        */
        function importScriptURI( url ) {
                if ( loadedScripts[url] ) {
                        return null;
                return importStylesheetURI( uri );
        }
 
+       /**
+        * @deprecated since 1.17 Use mw.loader instead. Warnings added in 1.25.
+        */
        function importStylesheetURI( url, media ) {
                var l = document.createElement( 'link' );
                l.rel = 'stylesheet';
 
        msg = 'Use mw.loader instead.';
        mw.log.deprecate( win, 'loadedScripts', loadedScripts, msg );
-       mw.log.deprecate( win, 'importScript', importScript, msg );
        mw.log.deprecate( win, 'importScriptURI', importScriptURI, msg );
-       mw.log.deprecate( win, 'importStylesheet', importStylesheet, msg );
        mw.log.deprecate( win, 'importStylesheetURI', importStylesheetURI, msg );
+       // Not quite deprecated yet.
+       win.importScript = importScript;
+       win.importStylesheet = importStylesheet;
 
 }( mediaWiki, jQuery ) );
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 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 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/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 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 3f4c6f9..a33b86a 100644 (file)
@@ -1,4 +1,4 @@
-.PHONY: help test phpunit install coverage warning destructive parser noparser safe databaseless list-groups
+.PHONY: help test phpunit coverage warning destructive parser noparser safe databaseless list-groups
 .DEFAULT: warning
 
 SHELL = /bin/sh
@@ -35,9 +35,6 @@ destructive: phpunit
 phpunit:
        ${PU}
 
-install:
-       ./install-phpunit.sh
-
 tap:
        ${PU} --tap
 
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" );
                }
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 54758f9..b666c83 100644 (file)
@@ -36,39 +36,6 @@ class FormatMetadataTest extends MediaWikiMediaTestCase {
                        'File with invalid date metadata (bug 29471)' );
        }
 
-       /**
-        * @param string $filename
-        * @param int $expected Total image area
-        * @dataProvider provideFlattenArray
-        * @covers FormatMetadata::flattenArray
-        */
-       public function testFlattenArray( $vals, $type, $noHtml, $ctx, $expected ) {
-               $actual = FormatMetadata::flattenArray( $vals, $type, $noHtml, $ctx );
-               $this->assertEquals( $expected, $actual );
-       }
-
-       public static function provideFlattenArray() {
-               return array(
-                       array(
-                               array( 1, 2, 3 ), 'ul', false, false,
-                               "<ul><li>1</li>\n<li>2</li>\n<li>3</li></ul>",
-                       ),
-                       array(
-                               array( 1, 2, 3 ), 'ol', false, false,
-                               "<ol><li>1</li>\n<li>2</li>\n<li>3</li></ol>",
-                       ),
-                       array(
-                               array( 1, 2, 3 ), 'ul', true, false,
-                               "\n*1\n*2\n*3",
-                       ),
-                       array(
-                               array( 1, 2, 3 ), 'ol', true, false,
-                               "\n#1\n#2\n#3",
-                       ),
-                       // TODO: more test cases
-               );
-       }
-
        /**
         * @param mixed $input
         * @param mixed $output
diff --git a/tests/phpunit/includes/objectcache/WANObjectCacheTest.php b/tests/phpunit/includes/objectcache/WANObjectCacheTest.php
new file mode 100644 (file)
index 0000000..3161d18
--- /dev/null
@@ -0,0 +1,243 @@
+<?php
+
+class WANObjectCacheTest extends MediaWikiTestCase {
+       /** @var WANObjectCache */
+       private $cache;
+
+       protected function setUp() {
+               parent::setUp();
+
+               if ( $this->getCliArg( 'use-wanobjectcache' ) ) {
+                       $name = $this->getCliArg( 'use-wanobjectcache' );
+
+                       $this->cache = ObjectCache::getWANInstance( $name );
+               } else {
+                       $this->cache = new WANObjectCache( array(
+                               'cache'   => new HashBagOStuff(),
+                               'pool'    => 'testcache-hash',
+                               'relayer' => new EventRelayerNull( array() )
+                       ) );
+               }
+       }
+
+       /**
+        * @dataProvider provider_testSetAndGet
+        * @covers WANObjectCache::set()
+        * @covers WANObjectCache::get()
+        * @param mixed $value
+        * @param integer $ttl
+        */
+       public function testSetAndGet( $value, $ttl ) {
+               $key = wfRandomString();
+               $this->cache->set( $key, $value, $ttl );
+
+               $curTTL = null;
+               $this->assertEquals( $value, $this->cache->get( $key, $curTTL ) );
+               if ( is_infinite( $ttl ) || $ttl == 0 ) {
+                       $this->assertTrue( is_infinite( $curTTL ), "Current TTL is infinite" );
+               } else {
+                       $this->assertGreaterThan( 0, $curTTL, "Current TTL > 0" );
+                       $this->assertLessThanOrEqual( $ttl, $curTTL, "Current TTL < nominal TTL" );
+               }
+       }
+
+       public static function provider_testSetAndGet() {
+               return array(
+                       array( 14141, 3 ),
+                       array( 3535.666, 3 ),
+                       array( array(), 3 ),
+                       array( null, 3 ),
+                       array( '0', 3 ),
+                       array( (object)array( 'meow' ), 3 ),
+                       array( INF, 3 ),
+                       array( '', 3 ),
+                       array( 'pizzacat', INF ),
+               );
+       }
+
+       public function testGetNotExists() {
+               $key = wfRandomString();
+               $curTTL = null;
+               $value = $this->cache->get( $key, $curTTL );
+
+               $this->assertFalse( $value, "Non-existing key has false value" );
+               $this->assertNull( $curTTL, "Non-existing key has null current TTL" );
+       }
+
+       public function testSetOver() {
+               $key = wfRandomString();
+               for ( $i=0; $i<3; ++$i ) {
+                       $value = wfRandomString();
+                       $this->cache->set($key, $value, 3);
+
+                       $this->assertEquals( $this->cache->get( $key ), $value );
+               }
+       }
+
+       /**
+        * @covers WANObjectCache::getWithSetCallback()
+        */
+       public function testGetWithSetCallback() {
+               $cache = $this->cache;
+
+               $key = wfRandomString();
+               $value = wfRandomString();
+               $cKey1 = wfRandomString();
+               $cKey2 = wfRandomString();
+
+               $wasSet = 0;
+               $func = function() use ( &$wasSet, $value ) { ++$wasSet; return $value; };
+
+               $wasSet = 0;
+               $v = $cache->getWithSetCallback( $key, $func, 30, array(), array( 'lockTSE' => 5 ) );
+               $this->assertEquals( $v, $value );
+               $this->assertEquals( 1, $wasSet, "Value regenerated" );
+
+               $wasSet = 0;
+               $v = $cache->getWithSetCallback( $key, $func, 30, array(), array( 'lockTSE' => 5 ) );
+               $this->assertEquals( $v, $value );
+               $this->assertEquals( 0, $wasSet, "Value not regenerated" );
+
+               $priorTime = microtime( true );
+               usleep( 1 );
+               $wasSet = 0;
+               $v = $cache->getWithSetCallback( $key, $func, 30, array( $cKey1, $cKey2 ) );
+               $this->assertEquals( $v, $value );
+               $this->assertEquals( 1, $wasSet, "Value regenerated due to check keys" );
+               $t1 = $cache->getCheckKeyTime( $cKey1 );
+               $this->assertGreaterThanOrEqual( $priorTime, $t1, 'Check keys generated on miss' );
+               $t2 = $cache->getCheckKeyTime( $cKey2 );
+               $this->assertGreaterThanOrEqual( $priorTime, $t2, 'Check keys generated on miss' );
+
+               $priorTime = microtime( true );
+               $wasSet = 0;
+               $v = $cache->getWithSetCallback( $key, $func, 30, array( $cKey1, $cKey2 ) );
+               $this->assertEquals( $v, $value );
+               $this->assertEquals( 1, $wasSet, "Value regenerated due to still-recent check keys" );
+               $t1 = $cache->getCheckKeyTime( $cKey1 );
+               $this->assertLessThanOrEqual( $priorTime, $t1, 'Check keys did not change again' );
+               $t2 = $cache->getCheckKeyTime( $cKey2 );
+               $this->assertLessThanOrEqual( $priorTime, $t2, 'Check keys did not change again' );
+
+               $curTTL = null;
+               $v = $cache->get( $key, $curTTL, array( $cKey1, $cKey2 ) );
+               $this->assertEquals( $v, $value );
+               $this->assertLessThanOrEqual( 0, $curTTL, "Value has current TTL < 0 due to check keys" );
+       }
+
+       /**
+        * @covers WANObjectCache::getMulti()
+        */
+       public function testGetMulti() {
+               $cache = $this->cache;
+
+               $value1 = array( 'this' => 'is', 'a' => 'test' );
+               $value2 = array( 'this' => 'is', 'another' => 'test' );
+
+               $key1 = wfRandomString();
+               $key2 = wfRandomString();
+               $key3 = wfRandomString();
+
+               $cache->set( $key1, $value1, 5 );
+               $cache->set( $key2, $value2, 10 );
+
+               $curTTLs = array();
+               $this->assertEquals(
+                       array( $key1 => $value1, $key2 => $value2 ),
+                       $cache->getMulti( array( $key1, $key2, $key3 ), $curTTLs )
+               );
+
+               $this->assertEquals( 2, count( $curTTLs ), "Two current TTLs in array" );
+               $this->assertGreaterThan( 0, $curTTLs[$key1], "Key 1 has current TTL > 0" );
+               $this->assertGreaterThan( 0, $curTTLs[$key2], "Key 2 has current TTL > 0" );
+
+               $cKey1 = wfRandomString();
+               $cKey2 = wfRandomString();
+               $curTTLs = array();
+               $this->assertEquals(
+                       array( $key1 => $value1, $key2 => $value2 ),
+                       $cache->getMulti( array( $key1, $key2, $key3 ), $curTTLs ),
+                       'Result array populated'
+               );
+
+               $priorTime = microtime( true );
+               usleep( 1 );
+               $curTTLs = array();
+               $this->assertEquals(
+                       array( $key1 => $value1, $key2 => $value2 ),
+                       $cache->getMulti( array( $key1, $key2, $key3 ), $curTTLs, array( $cKey1, $cKey2 ) ),
+                       "Result array populated even with new check keys"
+               );
+               $t1 = $cache->getCheckKeyTime( $cKey1 );
+               $this->assertGreaterThanOrEqual( $priorTime, $t1, 'Check key 1 generated on miss' );
+               $t2 = $cache->getCheckKeyTime( $cKey2 );
+               $this->assertGreaterThanOrEqual( $priorTime, $t2, 'Check key 2 generated on miss' );
+               $this->assertEquals( 2, count( $curTTLs ), "Current TTLs array set" );
+               $this->assertLessThanOrEqual( 0, $curTTLs[$key1], 'Key 1 has current TTL <= 0' );
+               $this->assertLessThanOrEqual( 0, $curTTLs[$key2], 'Key 2 has current TTL <= 0' );
+
+               usleep( 1 );
+               $curTTLs = array();
+               $this->assertEquals(
+                       array( $key1 => $value1, $key2 => $value2 ),
+                       $cache->getMulti( array( $key1, $key2, $key3 ), $curTTLs, array( $cKey1, $cKey2 ) ),
+                       "Result array still populated even with new check keys"
+               );
+               $this->assertEquals( 2, count( $curTTLs ), "Current TTLs still array set" );
+               $this->assertLessThan( 0, $curTTLs[$key1], 'Key 1 has negative current TTL' );
+               $this->assertLessThan( 0, $curTTLs[$key2], 'Key 2 has negative current TTL' );
+       }
+
+       /**
+        * @covers WANObjectCache::delete()
+        */
+       public function testDelete() {
+               $key = wfRandomString();
+               $value = wfRandomString();
+               $this->cache->set( $key, $value );
+
+               $curTTL = null;
+               $v = $this->cache->get( $key, $curTTL );
+               $this->assertEquals( $value, $v, "Key was created with value" );
+               $this->assertGreaterThan( 0, $curTTL, "Existing key has current TTL > 0" );
+
+               $this->cache->delete( $key );
+
+               $curTTL = null;
+               $v = $this->cache->get( $key, $curTTL );
+               $this->assertFalse( $v, "Deleted key has false value" );
+               $this->assertLessThan( 0, $curTTL, "Deleted key has current TTL < 0" );
+
+               $this->cache->set( $key, $value . 'more' );
+               $this->assertFalse( $v, "Deleted key is tombstoned and has false value" );
+               $this->assertLessThan( 0, $curTTL, "Deleted key is tombstoned and has current TTL < 0" );
+       }
+
+       /**
+        * @covers WANObjectCache::touchCheckKey()
+        * @covers WANObjectCache::getCheckKeyTime()
+        */
+       public function testTouchKeys() {
+               $key = wfRandomString();
+
+               $t0 = $this->cache->getCheckKeyTime( $key );
+               $this->assertFalse( $t0, 'Check key time is false' );
+
+               $priorTime = microtime( true );
+               usleep( 1 );
+               $this->cache->touchCheckKey( $key );
+               $t1 = $this->cache->getCheckKeyTime( $key );
+               $this->assertGreaterThanOrEqual( $priorTime, $t1, 'Check key created' );
+
+               $t2 = $this->cache->getCheckKeyTime( $key );
+               $this->assertEquals( $t1, $t2, 'Check key time did not change' );
+
+               usleep( 1 );
+               $this->cache->touchCheckKey( $key );
+               $t3 = $this->cache->getCheckKeyTime( $key );
+               $this->assertGreaterThan( $t2, $t3, 'Check key time increased' );
+
+               $t4 = $this->cache->getCheckKeyTime( $key );
+               $this->assertEquals( $t3, $t4, 'Check key time did not change' );
+       }
+}
\ No newline at end of file
diff --git a/tests/phpunit/install-phpunit.sh b/tests/phpunit/install-phpunit.sh
deleted file mode 100755 (executable)
index 022f998..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-
-has_binary () {
-    if [ -z `which $1` ]; then
-        return 1
-    fi
-    return 0
-}
-
-if [ `id -u` -ne 0 ]; then
-    echo '*** ERROR: Must be root to run'
-    exit 1
-fi
-
-if ( has_binary phpunit ); then
-    echo PHPUnit already installed
-else if ( has_binary pear ); then
-    echo Installing phpunit with pear
-    pear channel-discover pear.phpunit.de
-    pear channel-discover components.ez.no
-    pear channel-discover pear.symfony.com
-    pear update-channels
-    #Temporary fix for 64597
-    pear install --alldeps phpunit/PHPUnit-3.7.35
-else if ( has_binary apt-get ); then
-    echo Installing phpunit with apt-get
-    apt-get install phpunit
-else if ( has_binary yum ); then
-    echo Installing phpunit with yum
-    yum install phpunit
-else if ( has_binary port ); then
-    echo Installing phpunit with macports
-    port install php5-unit
-fi
-fi
-fi
-fi
-fi
index 3dd2af6..7c3d699 100644 (file)
                mwTester = new CompletenessTest( mw, mwTestIgnore );
        }
 
-       /**
-        * Test environment recommended for all QUnit test modules
-        *
-        * Whether to log environment changes to the console
-        */
-       QUnit.config.urlConfig.push( 'mwlogenv' );
-
        /**
         * Reset mw.config and others to a fresh copy of the live config for each test(),
         * and restore it back to the live one afterwards.
         * </code>
         */
        QUnit.newMwEnvironment = ( function () {
-               var warn, error, log, liveConfig, liveMessages,
+               var warn, error, liveConfig, liveMessages,
                        ajaxRequests = [];
 
                liveConfig = mw.config.values;
                        ajaxRequests.push( { xhr: jqXHR, options: ajaxOptions } );
                }
 
-               log = QUnit.urlParams.mwlogenv ? mw.log : function () {};
-
                return function ( localEnv ) {
                        localEnv = $.extend( {
                                // QUnit
 
                        return {
                                setup: function () {
-                                       log( 'MwEnvironment> SETUP    for "' + QUnit.config.current.module
-                                               + ': ' + QUnit.config.current.testName + '"' );
 
                                        // Greetings, mock environment!
                                        mw.config.values = freshConfigCopy( localEnv.config );
 
                                teardown: function () {
                                        var timers, active;
-                                       log( 'MwEnvironment> TEARDOWN for "' + QUnit.config.current.module
-                                               + ': ' + QUnit.config.current.testName + '"' );
 
                                        localEnv.teardown.call( this );
 
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 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 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