Merge "Also support skin.json for updating JSON AutoloadClasses"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 25 Jun 2015 07:18:14 +0000 (07:18 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 25 Jun 2015 07:18:14 +0000 (07:18 +0000)
567 files changed:
.gitattributes
RELEASE-NOTES-1.26
composer.json
docs/hooks.txt
docs/linkcache.txt
docs/sitelist.txt
includes/DefaultSettings.php
includes/EditPage.php
includes/FileDeleteForm.php
includes/GlobalFunctions.php
includes/MediaWiki.php
includes/OutputPage.php
includes/ProtectionForm.php
includes/User.php
includes/WebRequest.php
includes/api/ApiQuery.php
includes/api/ApiQuerySiteinfo.php
includes/api/i18n/de.json
includes/api/i18n/en.json
includes/api/i18n/fr.json
includes/api/i18n/ja.json
includes/api/i18n/mk.json
includes/api/i18n/qqq.json
includes/api/i18n/ru.json
includes/cache/HTMLFileCache.php
includes/content/ContentHandler.php
includes/htmlform/HTMLFormFieldWithButton.php
includes/htmlform/HTMLSelectNamespaceWithButton.php
includes/htmlform/HTMLTextFieldWithButton.php
includes/installer/i18n/fr.json
includes/installer/i18n/ku-latn.json
includes/installer/i18n/mg.json
includes/jobqueue/jobs/RefreshLinksJob.php
includes/libs/objectcache/ReplicatedBagOStuff.php
includes/media/Bitmap.php
includes/media/ExifBitmap.php
includes/media/Jpeg.php
includes/media/tinyrgb.icc [new file with mode: 0644]
includes/objectcache/ObjectCacheSessionHandler.php
includes/objectcache/SqlBagOStuff.php
includes/page/Article.php
includes/page/ImagePage.php
includes/page/WikiPage.php
includes/parser/ParserCache.php
includes/profiler/Profiler.php
includes/profiler/SectionProfiler.php
includes/specials/SpecialBlock.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialTags.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialWantedfiles.php
languages/Names.php
languages/i18n/ast.json
languages/i18n/bcc.json
languages/i18n/be-tarask.json
languages/i18n/bgn.json
languages/i18n/bn.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/cs.json
languages/i18n/de.json
languages/i18n/dty.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/gl.json
languages/i18n/gu.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hr.json
languages/i18n/hu.json
languages/i18n/id.json
languages/i18n/ilo.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/ka.json
languages/i18n/km.json
languages/i18n/ko.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/la.json
languages/i18n/lad.json
languages/i18n/lb.json
languages/i18n/lrc.json
languages/i18n/luz.json
languages/i18n/lv.json
languages/i18n/mk.json
languages/i18n/mn.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/ne.json
languages/i18n/nn.json
languages/i18n/or.json
languages/i18n/pa.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sa.json
languages/i18n/sah.json
languages/i18n/sdh.json [new file with mode: 0644]
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/tr.json
languages/i18n/uz.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesDty.php [new file with mode: 0644]
languages/messages/MessagesEn.php
maintenance/copyFileBackend.php
maintenance/dictionary/mediawiki.dic
maintenance/jsduck/categories.json
resources/Resources.php
resources/lib/oojs-ui/i18n/be-tarask.json
resources/lib/oojs-ui/i18n/cs.json
resources/lib/oojs-ui/i18n/ilo.json
resources/lib/oojs-ui/i18n/luz.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/roa-tara.json
resources/lib/oojs-ui/oojs-ui-apex-noimages.css
resources/lib/oojs-ui/oojs-ui-apex.js
resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json
resources/lib/oojs-ui/themes/mediawiki/icons-content.json
resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json
resources/lib/oojs-ui/themes/mediawiki/icons-editing-list.json
resources/lib/oojs-ui/themes/mediawiki/icons-editing-styling.json
resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json
resources/lib/oojs-ui/themes/mediawiki/icons-location.json
resources/lib/oojs-ui/themes/mediawiki/icons-media.json
resources/lib/oojs-ui/themes/mediawiki/icons-moderation.json
resources/lib/oojs-ui/themes/mediawiki/icons-movement.json
resources/lib/oojs-ui/themes/mediawiki/icons-user.json
resources/lib/oojs-ui/themes/mediawiki/icons-wikimedia.json
resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bell-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bell-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/beta-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/beta-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/clock-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/clock-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/eye-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/eye-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/heart-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/heart-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/language-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/language-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/move-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/move-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-ltr-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-ltr-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-rtl-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-rtl-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/star-constructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/star-constructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-constructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-constructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-a-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-a-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.svg [new file with mode: 0644]
resources/src/jquery/jquery.accessKeyLabel.js
resources/src/jquery/jquery.highlightText.js
resources/src/jquery/jquery.mwExtension.js
resources/src/jquery/jquery.tablesorter.js
resources/src/mediawiki.legacy/shared.css
resources/src/mediawiki.page/mediawiki.page.watch.ajax.js
resources/src/mediawiki.skinning/elements.css
resources/src/mediawiki.special/mediawiki.special.upload.js
resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css
resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js
resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.RegExp.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.Title.js
resources/src/mediawiki/mediawiki.Uri.js
resources/src/mediawiki/mediawiki.htmlform.js
resources/src/mediawiki/mediawiki.inspect.js
resources/src/mediawiki/mediawiki.userSuggest.js
resources/src/mediawiki/mediawiki.util.js
tests/TestsAutoLoader.php
tests/parser/preprocess/All_system_messages.expected
tests/parser/preprocess/All_system_messages.txt
tests/phpunit/data/media/srgb.jpg [new file with mode: 0644]
tests/phpunit/data/media/tinyrgb.icc [new file with mode: 0644]
tests/phpunit/data/media/tinyrgb.jpg [new file with mode: 0644]
tests/phpunit/includes/GlobalFunctions/GlobalTest.php
tests/phpunit/includes/MediaWikiTest.php [new file with mode: 0644]
tests/phpunit/includes/UserTest.php
tests/phpunit/includes/api/query/ApiQueryContinueTestBase.php
tests/phpunit/includes/api/query/ApiQueryTestBase.php
tests/phpunit/includes/media/ExifBitmapTest.php
tests/phpunit/includes/objectcache/ReplicatedBagOStuffTest.php [new file with mode: 0644]
tests/phpunit/mocks/MockWebRequest.php [new file with mode: 0644]
tests/phpunit/structure/ResourcesTest.php
tests/qunit/QUnitTestResources.php
tests/qunit/suites/resources/jquery/jquery.mwExtension.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.RegExp.test.js [new file with mode: 0644]
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js

index 50ca329..69d7b1b 100644 (file)
@@ -1 +1,2 @@
 *.sh eol=lf
+*.icc binary
index 896d1d5..c2228ae 100644 (file)
@@ -11,6 +11,9 @@ production.
 === Configuration changes in 1.26 ===
 * $wgEnableParserCache was deprecated, set $wgParserCacheType to CACHE_NONE
   instead if you want to disable the parser cache.
+* New-style continuation is now the default for API action=continue. Clients may
+  use the 'rawcontinue' parameter to receive raw query-continue data, but the
+  new style is encouraged as it's harder to implement incorrectly.
 
 === New features in 1.26 ===
 * Change tags can now be hidden in the interface by disabling the associated
@@ -21,7 +24,12 @@ production.
 * Revive the 'SpecialSearchResultsAppend' hook which occurs after the list of
   search results are rendered. The initial use case is to append a "give us
   feedback" link beneath the search results.
-
+* Added a new hook, 'RejectParserCacheValue', which allows extensions to
+  reject an otherwise-successful parser cache lookup. The intent is to allow
+  extensions to manage the eviction of archaic HTML output from the cache.
+* (T68699) The expiration of the UserID and Token login cookies
+  ($wgExtendedLoginCookieExpiration) can be configured independently of the
+  expiration of all other cookies ($wgCookieExpiration).
 
 ==== External libraries ====
 * Update es5-shim from v4.0.0 to v4.1.5.
@@ -35,6 +43,9 @@ production.
 * (T65198) Talk page tabs now have a "rel=discussion" attribute
 
 === Action API changes in 1.26 ===
+* New-style continuation is now the default for action=continue. Clients may
+  use the 'rawcontinue' parameter to receive raw query-continue data, but the
+  new style is encouraged as it's harder to implement incorrectly.
 * 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
@@ -56,6 +67,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.
 
+* Languages added:
+** dty (डोटेली/Doteli), thanks to translators जनक राज भट्ट, बिप्लब आनन्द,
+   मेश सिंह बोहरा, and राम प्रसाद जोशी
 
 === Other changes in 1.26 ===
 * ChangeTags::tagDescription() will return false if the interface message
@@ -96,6 +110,7 @@ changes to languages because of Bugzilla reports.
 * The Block class constructor now takes an associative array of parameters
   instead of many optional positional arguments. Calling the constructor the old
   way will issue a deprecation warning.
+* The jquery.mwExtension module was deprecated.
 
 
 == Compatibility ==
index 257c195..7419eb5 100644 (file)
@@ -21,7 +21,7 @@
                "leafo/lessphp": "0.5.0",
                "liuggio/statsd-php-client": "1.0.12",
                "mediawiki/at-ease": "1.0.0",
-               "oojs/oojs-ui": "0.11.5",
+               "oojs/oojs-ui": "0.11.6",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/cdb": "1.0.1",
index 4546f9e..8cfdee9 100644 (file)
@@ -2402,6 +2402,12 @@ names such as "oldid" that are preserved when using redirecting special pages
 such as Special:MyPage and Special:MyTalk.
 &$redirectParams: An array of parameters preserved by redirecting special pages.
 
+'RejectParserCacheValue': Return false to reject an otherwise usable
+cached value from the Parser cache.
+$parserOutput: ParserOutput value.
+$wikiPage: WikiPage object.
+$parserOptions: ParserOptions object.
+
 'RequestContextCreateSkin': Called when RequestContext::getSkin creates a skin
 instance. Can be used by an extension override what skin is used in certain
 contexts.
index 266f200..13b6961 100644 (file)
@@ -21,4 +21,4 @@ foreach( $pages as $page ){
 }
 
 $batch = new LinkBatch( $titles );
-$batch->execute();
\ No newline at end of file
+$batch->execute();
index 48c7ce5..24e1b9a 100644 (file)
@@ -44,4 +44,4 @@ The XML elements are used as follows:
 ** link: Generic URL template, often the document root.
 ** page_path: (for mediawiki sites) URL template for wiki pages (corresponds to the target wiki's $wgArticlePath setting)
 ** file_path: (for mediawiki sites) URL pattern for application entry points and resources (corresponds to the target wiki's $wgScriptPath setting).
-* forward: Whether using a prefix defined by a localid tag in the URL will cause the request to be redirected to the corresponding page on the target wiki (currently unused). E.g. whether http://wiki.acme.com/wiki/foo:Buzz should be forwarded to http://wiki.foo.com/read/Buzz. (CAVEAT: not yet implement, can be specified but has no effect)
\ No newline at end of file
+* forward: Whether using a prefix defined by a localid tag in the URL will cause the request to be redirected to the corresponding page on the target wiki (currently unused). E.g. whether http://wiki.acme.com/wiki/foo:Buzz should be forwarded to http://wiki.foo.com/read/Buzz. (CAVEAT: not yet implement, can be specified but has no effect)
index 39f739d..0e6ff16 100644 (file)
@@ -82,6 +82,14 @@ $wgVersion = '1.26alpha';
  */
 $wgSitename = 'MediaWiki';
 
+/**
+ * When the wiki is running behind a proxy and this is set to true, assumes that the proxy exposes
+ * the wiki on the standard ports (443 for https and 80 for http).
+ * @var bool
+ * @since 1.26
+ */
+$wgAssumeProxiesUseDefaultProtocolPorts = true;
+
 /**
  * URL of the server.
  *
@@ -970,6 +978,14 @@ $wgJpegTran = '/usr/bin/jpegtran';
  */
 $wgExiv2Command = '/usr/bin/exiv2';
 
+
+/**
+ * Path to exiftool binary. Used for lossless ICC profile swapping.
+ *
+ * @since 1.26
+ */
+$wgExiftool = '/usr/bin/exiftool';
+
 /**
  * Scalable Vector Graphics (SVG) may be uploaded as images.
  * Since SVG support is not yet standard in browsers, it is
@@ -1322,6 +1338,14 @@ $wgUploadThumbnailRenderHttpCustomHost = false;
  */
 $wgUploadThumbnailRenderHttpCustomDomain = false;
 
+/**
+ * When this variable is true and JPGs use the sRGB ICC profile, swaps it for the more lightweight
+ * (and free) TinyRGB profile when generating thumbnails.
+ *
+ * @since 1.26
+ */
+$wgUseTinyRGBForJPGThumbnails = false;
+
 /**
  * Default parameters for the "<gallery>" tag
  */
@@ -2151,6 +2175,19 @@ $wgObjectCaches = array(
        CACHE_ACCEL => array( 'factory' => 'ObjectCache::newAccelerator' ),
        CACHE_MEMCACHED => array( 'factory' => 'ObjectCache::newMemcached', 'loggroup' => 'memcached' ),
 
+       'db-replicated' => array(
+               'class'       => 'ReplicatedBagOStuff',
+               'readFactory' => array(
+                       'class' => 'SqlBagOStuff',
+                       'args'  => array( array( 'slaveOnly' => true ) )
+               ),
+               'writeFactory' => array(
+                       'class' => 'SqlBagOStuff',
+                       'args'  => array( array( 'slaveOnly' => false ) )
+               ),
+               'loggroup'  => 'SQLBagOStuff'
+       ),
+
        'apc' => array( 'class' => 'APCBagOStuff' ),
        'xcache' => array( 'class' => 'XCacheBagOStuff' ),
        'wincache' => array( 'class' => 'WinCacheBagOStuff' ),
@@ -2213,6 +2250,7 @@ $wgWANObjectCaches = array(
  * lightweight data like hit counters and user activity. Sites with multiple
  * data-centers should have this use a store that replicates all writes. The
  * store should have enough consistency for CAS operations to be usable.
+ * Reads outside of those needed for merge() may be eventually consistent.
  *
  * The options are:
  *   - db:      Store cache objects in the DB
@@ -2221,7 +2259,7 @@ $wgWANObjectCaches = array(
  *
  * @since 1.26
  */
-$wgMainStash = 'db';
+$wgMainStash = 'db-replicated';
 
 /**
  * The expiry time for the parser cache, in seconds.
@@ -5249,6 +5287,22 @@ $wgProxyList = array();
  */
 $wgCookieExpiration = 180 * 86400;
 
+/**
+ * The identifiers of the login cookies that can have their lifetimes
+ * extended independently of all other login cookies.
+ *
+ * @var string[]
+ */
+$wgExtendedLoginCookies = array( 'UserID', 'Token' );
+
+/**
+ * Default login cookie lifetime, in seconds. Setting
+ * $wgExtendLoginCookieExpiration to null will use $wgCookieExpiration to
+ * calculate the cookie lifetime. As with $wgCookieExpiration, 0 will make
+ * login cookies session-only.
+ */
+$wgExtendedLoginCookieExpiration = null;
+
 /**
  * Set to set an explicit domain on the login cookies eg, "justthis.domain.org"
  * or ".any.subdomain.net"
index 4e470e9..3600fb2 100644 (file)
@@ -167,6 +167,12 @@ class EditPage {
         */
        const AS_PARSE_ERROR = 240;
 
+       /**
+        * Status: when changing the content model is disallowed due to
+        * $wgContentHandlerUseDB being false
+        */
+       const AS_CANNOT_USE_CUSTOM_MODEL = 241;
+
        /**
         * HTML id and name for the beginning of the edit form.
         */
@@ -1361,6 +1367,7 @@ class EditPage {
                        case self::AS_HOOK_ERROR:
                                return false;
 
+                       case self::AS_CANNOT_USE_CUSTOM_MODEL:
                        case self::AS_PARSE_ERROR:
                                $wgOut->addWikiText( '<div class="error">' . $status->getWikiText() . '</div>' );
                                return true;
@@ -1543,6 +1550,7 @@ class EditPage {
         */
        function internalAttemptSave( &$result, $bot = false ) {
                global $wgUser, $wgRequest, $wgParser, $wgMaxArticleSize;
+               global $wgContentHandlerUseDB;
 
                $status = Status::newGood();
 
@@ -1663,11 +1671,15 @@ class EditPage {
                        }
                }
 
-               if ( $this->contentModel !== $this->mTitle->getContentModel()
-                       && !$wgUser->isAllowed( 'editcontentmodel' )
-               ) {
-                       $status->setResult( false, self::AS_NO_CHANGE_CONTENT_MODEL );
-                       return $status;
+               if ( $this->contentModel !== $this->mTitle->getContentModel() ) {
+                       if ( !$wgContentHandlerUseDB ) {
+                               $status->fatal( 'editpage-cannot-use-custom-model' );
+                               $status->value = self::AS_CANNOT_USE_CUSTOM_MODEL;
+                               return $status;
+                       } elseif ( !$wgUser->isAllowed( 'editcontentmodel' ) ) {
+                               $status->setResult( false, self::AS_NO_CHANGE_CONTENT_MODEL );
+                               return $status;
+                       }
                }
 
                if ( $this->changeTags ) {
index 6d74af2..bcd6db2 100644 (file)
@@ -297,7 +297,7 @@ class FileDeleteForm {
 
                        if ( $wgUser->isAllowed( 'editinterface' ) ) {
                                $title = wfMessage( 'filedelete-reason-dropdown' )->inContentLanguage()->getTitle();
-                               $link = Linker::link(
+                               $link = Linker::linkKnown(
                                        $title,
                                        wfMessage( 'filedelete-edit-reasonlist' )->escaped(),
                                        array(),
index e2e0666..c618426 100644 (file)
@@ -3495,7 +3495,7 @@ function wfGetPrecompiledData( $name ) {
 }
 
 /**
- * Get a cache key
+ * Make a cache key for the local wiki.
  *
  * @param string $args,...
  * @return string
@@ -3510,7 +3510,9 @@ function wfMemcKey( /*...*/ ) {
 }
 
 /**
- * Get a cache key for a foreign DB
+ * Make a cache key for a foreign DB.
+ *
+ * Must match what wfMemcKey() would produce in context of the foreign wiki.
  *
  * @param string $db
  * @param string $prefix
@@ -3520,6 +3522,7 @@ function wfMemcKey( /*...*/ ) {
 function wfForeignMemcKey( $db, $prefix /*...*/ ) {
        $args = array_slice( func_get_args(), 2 );
        if ( $prefix ) {
+               // Match wfWikiID() logic
                $key = "$db-$prefix:" . implode( ':', $args );
        } else {
                $key = $db . ':' . implode( ':', $args );
@@ -3527,6 +3530,24 @@ function wfForeignMemcKey( $db, $prefix /*...*/ ) {
        return str_replace( ' ', '_', $key );
 }
 
+/**
+ * Make a cache key with database-agnostic prefix.
+ *
+ * Doesn't have a wiki-specific namespace. Uses a generic 'global' prefix
+ * instead. Must have a prefix as otherwise keys that use a database name
+ * in the first segment will clash with wfMemcKey/wfForeignMemcKey.
+ *
+ * @since 1.26
+ * @param string $args,...
+ * @return string
+ */
+function wfGlobalCacheKey( /*...*/ ) {
+       $args = func_get_args();
+       $key = 'global:' . implode( ':', $args );
+       $key = str_replace( ' ', '_', $key );
+       return $key;
+}
+
 /**
  * Get an ASCII string identifying this wiki
  * This is used as a prefix in memcached keys
index 7a0d7b7..932dea2 100644 (file)
@@ -239,63 +239,97 @@ class MediaWiki {
                                }
                                throw new BadTitleError();
                        }
-               // Redirect loops, no title in URL, $wgUsePathInfo URLs, and URLs with a variant
-               } elseif ( $request->getVal( 'action', 'view' ) == 'view' && !$request->wasPosted()
-                       && ( $request->getVal( 'title' ) === null
-                               || $title->getPrefixedDBkey() != $request->getVal( 'title' ) )
-                       && !count( $request->getValueNames( array( 'action', 'title' ) ) )
-                       && Hooks::run( 'TestCanonicalRedirect', array( $request, $title, $output ) )
-               ) {
-                       if ( $title->isSpecialPage() ) {
-                               list( $name, $subpage ) = SpecialPageFactory::resolveAlias( $title->getDBkey() );
-                               if ( $name ) {
-                                       $title = SpecialPage::getTitleFor( $name, $subpage );
-                               }
-                       }
-                       $targetUrl = wfExpandUrl( $title->getFullURL(), PROTO_CURRENT );
-                       // Redirect to canonical url, make it a 301 to allow caching
-                       if ( $targetUrl == $request->getFullRequestURL() ) {
-                               $message = "Redirect loop detected!\n\n" .
-                                       "This means the wiki got confused about what page was " .
-                                       "requested; this sometimes happens when moving a wiki " .
-                                       "to a new server or changing the server configuration.\n\n";
-
-                               if ( $this->config->get( 'UsePathInfo' ) ) {
-                                       $message .= "The wiki is trying to interpret the page " .
-                                               "title from the URL path portion (PATH_INFO), which " .
-                                               "sometimes fails depending on the web server. Try " .
-                                               "setting \"\$wgUsePathInfo = false;\" in your " .
-                                               "LocalSettings.php, or check that \$wgArticlePath " .
-                                               "is correct.";
+               // Handle any other redirects.
+               // Redirect loops, titleless URL, $wgUsePathInfo URLs, and URLs with a variant
+               } elseif ( !$this->tryNormaliseRedirect( $title ) ) {
+
+                       // Special pages
+                       if ( NS_SPECIAL == $title->getNamespace() ) {
+                               // Actions that need to be made when we have a special pages
+                               SpecialPageFactory::executePath( $title, $this->context );
+                       } else {
+                               // ...otherwise treat it as an article view. The article
+                               // may still be a wikipage redirect to another article or URL.
+                               $article = $this->initializeArticle();
+                               if ( is_object( $article ) ) {
+                                       $this->performAction( $article, $requestTitle );
+                               } elseif ( is_string( $article ) ) {
+                                       $output->redirect( $article );
                                } else {
-                                       $message .= "Your web server was detected as possibly not " .
-                                               "supporting URL path components (PATH_INFO) correctly; " .
-                                               "check your LocalSettings.php for a customized " .
-                                               "\$wgArticlePath setting and/or toggle \$wgUsePathInfo " .
-                                               "to true.";
+                                       throw new MWException( "Shouldn't happen: MediaWiki::initializeArticle()"
+                                               . " returned neither an object nor a URL" );
                                }
-                               throw new HttpError( 500, $message );
-                       } else {
-                               $output->setSquidMaxage( 1200 );
-                               $output->redirect( $targetUrl, '301' );
                        }
-               // Special pages
-               } elseif ( NS_SPECIAL == $title->getNamespace() ) {
-                       // Actions that need to be made when we have a special pages
-                       SpecialPageFactory::executePath( $title, $this->context );
-               } else {
-                       // ...otherwise treat it as an article view. The article
-                       // may be a redirect to another article or URL.
-                       $article = $this->initializeArticle();
-                       if ( is_object( $article ) ) {
-                               $this->performAction( $article, $requestTitle );
-                       } elseif ( is_string( $article ) ) {
-                               $output->redirect( $article );
+               }
+       }
+
+       /**
+        * Handle redirects for uncanonical title requests.
+        *
+        * Handles:
+        * - Redirect loops.
+        * - No title in URL.
+        * - $wgUsePathInfo URLs.
+        * - URLs with a variant.
+        * - Other non-standard URLs (as long as they have no extra query parameters).
+        *
+        * Behaviour:
+        * - Normalise title values:
+        *   /wiki/Foo%20Bar -> /wiki/Foo_Bar
+        * - Normalise empty title:
+        *   /wiki/ -> /wiki/Main
+        *   /w/index.php?title= -> /wiki/Main
+        * - Don't redirect anything with query parameters other than 'title' or 'action=view'.
+        *
+        * @return bool True if a redirect was set.
+        */
+       private function tryNormaliseRedirect( $title ) {
+               $request = $this->context->getRequest();
+               $output = $this->context->getOutput();
+
+               if ( $request->getVal( 'action', 'view' ) != 'view'
+                       || $request->wasPosted()
+                       || ( $request->getVal( 'title' ) !== null
+                               && $title->getPrefixedDBkey() == $request->getVal( 'title' ) )
+                       || count( $request->getValueNames( array( 'action', 'title' ) ) )
+                       || !Hooks::run( 'TestCanonicalRedirect', array( $request, $title, $output ) )
+               ) {
+                       return false;
+               }
+
+               if ( $title->isSpecialPage() ) {
+                       list( $name, $subpage ) = SpecialPageFactory::resolveAlias( $title->getDBkey() );
+                       if ( $name ) {
+                               $title = SpecialPage::getTitleFor( $name, $subpage );
+                       }
+               }
+               // Redirect to canonical url, make it a 301 to allow caching
+               $targetUrl = wfExpandUrl( $title->getFullURL(), PROTO_CURRENT );
+               if ( $targetUrl == $request->getFullRequestURL() ) {
+                       $message = "Redirect loop detected!\n\n" .
+                               "This means the wiki got confused about what page was " .
+                               "requested; this sometimes happens when moving a wiki " .
+                               "to a new server or changing the server configuration.\n\n";
+
+                       if ( $this->config->get( 'UsePathInfo' ) ) {
+                               $message .= "The wiki is trying to interpret the page " .
+                                       "title from the URL path portion (PATH_INFO), which " .
+                                       "sometimes fails depending on the web server. Try " .
+                                       "setting \"\$wgUsePathInfo = false;\" in your " .
+                                       "LocalSettings.php, or check that \$wgArticlePath " .
+                                       "is correct.";
                        } else {
-                               throw new MWException( "Shouldn't happen: MediaWiki::initializeArticle()"
-                                       . " returned neither an object nor a URL" );
+                               $message .= "Your web server was detected as possibly not " .
+                                       "supporting URL path components (PATH_INFO) correctly; " .
+                                       "check your LocalSettings.php for a customized " .
+                                       "\$wgArticlePath setting and/or toggle \$wgUsePathInfo " .
+                                       "to true.";
                        }
+                       throw new HttpError( 500, $message );
                }
+               $output->setSquidMaxage( 1200 );
+               $output->redirect( $targetUrl, '301' );
+               return true;
        }
 
        /**
index f02f752..0ed847e 100644 (file)
@@ -3524,8 +3524,25 @@ class OutputPage extends ContextSource {
                        if ( $canonicalUrl !== false ) {
                                $canonicalUrl = wfExpandUrl( $canonicalUrl, PROTO_CANONICAL );
                        } else {
-                               $reqUrl = $this->getRequest()->getRequestURL();
-                               $canonicalUrl = wfExpandUrl( $reqUrl, PROTO_CANONICAL );
+                               if ( $this->isArticleRelated() ) {
+                                       // This affects all requests where "setArticleRelated" is true. This is
+                                       // typically all requests that show content (query title, curid, oldid, diff),
+                                       // and all wikipage actions (edit, delete, purge, info, history etc.).
+                                       // It does not apply to File pages and Special pages.
+                                       // 'history' and 'info' actions address page metadata rather than the page
+                                       // content itself, so they may not be canonicalized to the view page url.
+                                       // TODO: this ought to be better encapsulated in the Action class.
+                                       $action = Action::getActionName( $this->getContext() );
+                                       if ( in_array( $action, array( 'history', 'info' ) ) ) {
+                                               $query = "action={$action}";
+                                       } else {
+                                               $query = '';
+                                       }
+                                       $canonicalUrl = $this->getTitle()->getCanonicalURL( $query );
+                               } else {
+                                       $reqUrl = $this->getRequest()->getRequestURL();
+                                       $canonicalUrl = wfExpandUrl( $reqUrl, PROTO_CANONICAL );
+                               }
                        }
                }
                if ( $canonicalUrl !== false ) {
index 69b64dd..1443d1c 100644 (file)
@@ -541,7 +541,7 @@ class ProtectionForm {
                $out .= Xml::closeElement( 'fieldset' );
 
                if ( $user->isAllowed( 'editinterface' ) ) {
-                       $link = Linker::link(
+                       $link = Linker::linkKnown(
                                $context->msg( 'protect-dropdown' )->inContentLanguage()->getTitle(),
                                $context->msg( 'protect-edit-reasonlist' )->escaped(),
                                array(),
index 961520a..1ee8173 100644 (file)
@@ -3491,6 +3491,31 @@ class User implements IDBAccessObject {
                $this->setCookie( $name, '', time() - 86400, $secure, $params );
        }
 
+       /**
+        * Set an extended login cookie on the user's client. The expiry of the cookie
+        * is controlled by the $wgExtendedLoginCookieExpiration configuration
+        * variable.
+        *
+        * @see User::setCookie
+        *
+        * @param string $name Name of the cookie to set
+        * @param string $value Value to set
+        * @param bool $secure
+        *  true: Force setting the secure attribute when setting the cookie
+        *  false: Force NOT setting the secure attribute when setting the cookie
+        *  null (default): Use the default ($wgCookieSecure) to set the secure attribute
+        */
+       protected function setExtendedLoginCookie( $name, $value, $secure ) {
+               global $wgExtendedLoginCookieExpiration, $wgCookieExpiration;
+
+               $exp = time();
+               $exp += $wgExtendedLoginCookieExpiration !== null
+                       ? $wgExtendedLoginCookieExpiration
+                       : $wgCookieExpiration;
+
+               $this->setCookie( $name, $value, $exp, $secure );
+       }
+
        /**
         * Set the default cookies for this session on the user's client.
         *
@@ -3500,6 +3525,8 @@ class User implements IDBAccessObject {
         * @param bool $rememberMe Whether to add a Token cookie for elongated sessions
         */
        public function setCookies( $request = null, $secure = null, $rememberMe = false ) {
+               global $wgExtendedLoginCookies;
+
                if ( $request === null ) {
                        $request = $this->getRequest();
                }
@@ -3541,6 +3568,8 @@ class User implements IDBAccessObject {
                foreach ( $cookies as $name => $value ) {
                        if ( $value === false ) {
                                $this->clearCookie( $name );
+                       } elseif ( $rememberMe && in_array( $name, $wgExtendedLoginCookies ) ) {
+                               $this->setExtendedLoginCookie( $name, $value, $secure );
                        } else {
                                $this->setCookie( $name, $value, 0, $secure, array(), $request );
                        }
index b9c9b86..c99e484 100644 (file)
@@ -176,6 +176,8 @@ class WebRequest {
         * @return string
         */
        public static function detectServer() {
+               global $wgAssumeProxiesUseDefaultProtocolPorts;
+
                $proto = self::detectProtocol();
                $stdPort = $proto === 'https' ? 443 : 80;
 
@@ -186,13 +188,15 @@ class WebRequest {
                        if ( !isset( $_SERVER[$varName] ) ) {
                                continue;
                        }
+
                        $parts = IP::splitHostAndPort( $_SERVER[$varName] );
                        if ( !$parts ) {
                                // Invalid, do not use
                                continue;
                        }
+
                        $host = $parts[0];
-                       if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) {
+                       if ( $wgAssumeProxiesUseDefaultProtocolPorts && isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) {
                                // Bug 70021: Assume that upstream proxy is running on the default
                                // port based on the protocol. We have no reliable way to determine
                                // the actual port in use upstream.
index 304d0f0..5378e92 100644 (file)
@@ -292,7 +292,7 @@ class ApiQuery extends ApiBase {
 
                // Write the continuation data into the result
                $this->setContinuationManager( null );
-               if ( $this->mParams['continue'] === null ) {
+               if ( $this->mParams['rawcontinue'] ) {
                        $data = $continuationManager->getRawContinuation();
                        if ( $data ) {
                                $this->getResult()->addValue( null, 'query-continue', $data,
@@ -302,15 +302,14 @@ class ApiQuery extends ApiBase {
                        $continuationManager->setContinuationIntoResult( $this->getResult() );
                }
 
+               /// @todo: Remove this after a suitable period of time. When REL1_26 is cut, if not before.
                if ( $this->mParams['continue'] === null && !$this->mParams['rawcontinue'] &&
-                       $this->getResult()->getResultData( 'query-continue' ) !== null
+                       $this->getResult()->getResultData( 'continue' ) !== null
                ) {
-                       $this->logFeatureUsage( 'action=query&!rawcontinue&!continue' );
                        $this->setWarning(
-                               'Formatting of continuation data will be changing soon. ' .
-                               'To continue using the current formatting, use the \'rawcontinue\' parameter. ' .
-                               'To begin using the new format, pass an empty string for \'continue\' ' .
-                               'in the initial query.'
+                               'Formatting of continuation data has changed. ' .
+                               'To receive raw query-continue data, use the \'rawcontinue\' parameter. ' .
+                               'To silence this warning, pass an empty string for \'continue\' in the initial query.'
                        );
                }
        }
@@ -485,7 +484,7 @@ class ApiQuery extends ApiBase {
        public function setGeneratorContinue( $module, $paramName, $paramValue ) {
                wfDeprecated( __METHOD__, '1.24' );
                $this->getContinuationManager()->addGeneratorContinueParam( $module, $paramName, $paramValue );
-               return $this->getParameter( 'continue' ) !== null;
+               return !$this->getParameter( 'rawcontinue' );
        }
 
        /**
@@ -549,7 +548,9 @@ class ApiQuery extends ApiBase {
                        'export' => false,
                        'exportnowrap' => false,
                        'iwurl' => false,
-                       'continue' => null,
+                       'continue' => array(
+                               ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+                       ),
                        'rawcontinue' => false,
                );
                if ( $flags ) {
index a112cf0..1ce5761 100644 (file)
@@ -297,7 +297,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                        }
                }
 
-               ApiResult::setArrayType( $data, 'BCarray' );
+               ApiResult::setArrayType( $data, 'assoc' );
                ApiResult::setIndexedTagName( $data, 'ns' );
 
                return $this->getResult()->addValue( 'query', $property, $data );
index 5d3d095..6c81ff0 100644 (file)
        "apihelp-query-param-export": "Exportiert die aktuellen Versionen der angegebenen oder generierten Seiten.",
        "apihelp-query-param-exportnowrap": "Gibt den XML-Export zurück, ohne ihn in ein XML-Ergebnis einzuschließen (gleiches Format wie durch [[Special:Export]]). Kann nur zusammen mit $1export genutzt werden.",
        "apihelp-query-param-iwurl": "Gibt an, ob die komplette URL zurückgegeben werden soll, wenn der Titel ein Interwikilink ist.",
-       "apihelp-query-param-continue": "Falls angegeben, wird query-continue als Schlüssel-Wert-Paar zurückgegeben, das anschließend an die Folgeabfrage gehängt werden kann. Dieser Parameter muss in der ersten Abfrage auf leer gesetzt werden.\n\nDieser Parameter ist für alle Neuentwicklungen empfohlen und wird in der nächsten API-Version Standard.",
-       "apihelp-query-param-rawcontinue": "Momentan unbeachtet. In Zukunft wird <var>$1continue</var> Standard, dieser Parameter wird dann benötigt, um die rohen <samp>query-continue</samp>-Daten zu erhalten.",
+       "apihelp-query-param-rawcontinue": "Gibt rohe <samp>query-continue</samp>-Daten zur Fortsetzung zurück.",
        "apihelp-query-example-revisions": "Bezieht [[Special:ApiHelp/query+siteinfo|Seiteninformationen]] und [[Special:ApiHelp/query+revisions|Versionen]] der <kbd>Main Page</kbd>.",
        "apihelp-query-example-allpages": "Bezieht Versionen von Seiten, die mit <kbd>API/</kbd> beginnen.",
        "apihelp-query+allcategories-description": "Alle Kategorien aufzählen.",
index caad49f..792febc 100644 (file)
        "apihelp-query-param-export": "Export the current revisions of all given or generated pages.",
        "apihelp-query-param-exportnowrap": "Return the export XML without wrapping it in an XML result (same format as [[Special:Export]]). Can only be used with $1export.",
        "apihelp-query-param-iwurl": "Whether to get the full URL if the title is an interwiki link.",
-       "apihelp-query-param-continue": "When present, formats query-continue as key-value pairs that should simply be merged into the original request. This parameter must be set to an empty string in the initial query.\n\nThis parameter is recommended for all new development, and will be made default in the next API version.",
-       "apihelp-query-param-rawcontinue": "Currently ignored. In the future, <var>$1continue</var> will become the default and this will be needed to receive the raw <samp>query-continue</samp> data.",
+       "apihelp-query-param-rawcontinue": "Return raw <samp>query-continue</samp> data for continuation.",
        "apihelp-query-example-revisions": "Fetch [[Special:ApiHelp/query+siteinfo|site info]] and [[Special:ApiHelp/query+revisions|revisions]] of <kbd>Main Page</kbd>.",
        "apihelp-query-example-allpages": "Fetch revisions of pages beginning with <kbd>API/</kbd>.",
 
index 6cddc63..68ed4e8 100644 (file)
@@ -22,8 +22,8 @@
        "apihelp-main-param-action": "Quelle action effectuer.",
        "apihelp-main-param-format": "Le format de sortie.",
        "apihelp-main-param-maxlag": "La latence maximale peut être utilisée quand MédiaWiki est installé sur un cluster de base de données répliqué. Pour éviter des actions provoquant un supplément de latence de réplication de site, ce paramètre peut faire attendre le client jusqu’à ce que la latence de réplication soit inférieure à une valeur spécifiée. En cas de latence excessive, le code d’erreur <samp>maxlag</samp> est renvoyé avec un message tel que <samp>Attente de $host : $lag secondes de délai</samp>.<br />Voyez [[mw:Manual:Maxlag_parameter|Manuel: Maxlag parameter]] pour plus d’information.",
-       "apihelp-main-param-smaxage": "Fixer l’entête <code>s-maxage</code> à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
-       "apihelp-main-param-maxage": "Fixer l’entête <code>max-age</code> à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
+       "apihelp-main-param-smaxage": "Fixer l’entête HTTP de contrôle de cache <code>s-maxage</code> à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
+       "apihelp-main-param-maxage": "Fixer l’entête HTTP de contrôle de cache <code>max-age</code> à ce nombre de secondes. Les erreurs ne sont jamais mises en cache.",
        "apihelp-main-param-assert": "Vérifier si l’utilisateur est connecté si positionné à <kbd>user</kbd>, ou a le droit utilisateur robot si positionné à <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Toute valeur fournie ici sera incluse dans la réponse. Peut être utilisé pour distinguer des demandes.",
        "apihelp-main-param-servedby": "Inclure le nom d’hôte qui a renvoyé la requête dans les résultats.",
        "apihelp-expandtemplates-param-title": "Titre de la page.",
        "apihelp-expandtemplates-param-text": "Wikitexte à convertir.",
        "apihelp-expandtemplates-param-revid": "ID de révision, pour <nowiki>{{REVISIONID}}</nowiki> et les variables semblables.",
-       "apihelp-expandtemplates-param-prop": "Quelles informations récupérer :\n;wikitext:Le wikitexte développé.\n;categories:Toutes les catégories présentes dans l’entrée qui ne sont pas représentées dans le wikitexte de sortie.\n;properties:Propriétés de page définies en développant les mots magiques dans le wikitexte.\n;volatile:Si la sortie est volatile et ne devrait pas être réutilisée ailleurs dans la page.\n;ttl:Le délai maximal après lequel les caches du résultat devraient être invalidés.\n;parsetree:L’arbre d’analyse XML de l’entrée.\nNoter que si aucune valeur n’est sélectionnée, le résultat contiendra le wikitexte, mais la sortie sera dans un format obsolète.",
+       "apihelp-expandtemplates-param-prop": "Quelles informations récupérer.\n\nNoter que si aucune valeur n’est sélectionnée, le résultat contiendra le wikitexte, mais la sortie sera dans un format obsolète.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "Le wikitexte développé",
+       "apihelp-expandtemplates-paramvalue-prop-categories": "Toutes les catégories présentes dans l’entrée qui ne sont pas représentées dans la sortie du wikitexte.",
+       "apihelp-expandtemplates-paramvalue-prop-properties": "Propriétés de la page définies par le développement des mots magiques dans le wikitexte.",
+       "apihelp-expandtemplates-paramvalue-prop-volatile": "Si la sortie est volatile et ne devrait pas être réutilisée ailleurs dans la page.",
+       "apihelp-expandtemplates-paramvalue-prop-ttl": "Le délai maximum après lequel la mise en cache de ce résultat doit être invalidée.",
        "apihelp-expandtemplates-param-includecomments": "S’il faut inclure les commentaires HTML dans la sortie.",
        "apihelp-expandtemplates-param-generatexml": "Générer l’arbre d’analyse XML (remplacé par $1prop=parsetree).",
        "apihelp-expandtemplates-example-simple": "Développe le wikitexte <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
        "apihelp-query-param-export": "Exporter les révisions actuelles de toutes les pages fournies ou générées.",
        "apihelp-query-param-exportnowrap": "Renvoyer le XML exporté sans l’inclure dans un résultat XML (même format que [[Special:Export]]). Utilisable uniquement avec $1export.",
        "apihelp-query-param-iwurl": "S’il faut obtenir l’URL complète si le titre est un lien interwiki.",
-       "apihelp-query-param-continue": "Quand il est présent, met en forme query-continue sous forme de paires clé-valeur qui devrait simplement être fusionné dans la requête d’origine. Ce paramètre doit être fixé à une chaîne vide dans la requête initiale.\n\nCe paramètre est recommandé pour tout nouveau développement, et sera mis par défaut dans la prochaine version de l’API.",
        "apihelp-query-param-rawcontinue": "Actuellement ignoré. Plus tard, <var>$1continue</var> deviendra la valeur par défaut et sera nécessaire pour recevoir les données brutes de <samp>query-continue</samp>.",
        "apihelp-query-example-revisions": "Récupérer [[Special:ApiHelp/query+siteinfo|l’info du site]] et [[Special:ApiHelp/query+revisions|les révisions]] de <kbd>Page principale</kbd>.",
        "apihelp-query-example-allpages": "Récupérer les révisions des pages commençant par <kbd>API/</kbd>.",
index 33de5d8..22538cd 100644 (file)
@@ -5,7 +5,8 @@
                        "2nd-player",
                        "Los688",
                        "Whym",
-                       "Mfuji"
+                       "Mfuji",
+                       "Otokoume"
                ]
        },
        "apihelp-main-param-action": "実行する操作です。",
@@ -63,6 +64,7 @@
        "apihelp-edit-param-tags": "この版に適用する変更タグ。",
        "apihelp-edit-param-minor": "細部の編集",
        "apihelp-edit-param-notminor": "細部の編集ではない。",
+       "apihelp-edit-param-bot": "この編集をボットとしてマークする。",
        "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": "すでにそのページが存在する場合は編集を行いません。",
index 40cc121..9bf3e4e 100644 (file)
        "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;properties: Својства на страницата определени од проширени волшебни зборови во викитекстот.\n;volatile: Дали изводот е месно врзан и не треба да се преупотребува на други места во страницата.\n;ttl: Максималното време по кое треба да се поништи меѓускладираниот резултат.\n;parsetree: XML-дрвото на расчленување за изводот.\nИмајте на ум дека ако не изберете никаква вредност, резултатот ќе го содржи викитекстот, но изводот ќе биде во застарен формат.",
+       "apihelp-expandtemplates-param-prop": "Кои информации треба да ги добиете:\n\nИмајте на ум дека ако не изберете никаква вредност, резултатот ќе го содржи викитекстот, но изводот ќе биде во застарен формат.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "Проширениот викитекст.",
        "apihelp-expandtemplates-param-includecomments": "Дали во изводот да се вклучени HTML-коментари.",
        "apihelp-expandtemplates-param-generatexml": "Создај XML-дрво на расчленување (заменето со $1prop=parsetree).",
        "apihelp-expandtemplates-example-simple": "Прошири го викитекстот <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
index f690cf4..051ef07 100644 (file)
        "apihelp-query-param-export": "{{doc-apihelp-param|query|export}}",
        "apihelp-query-param-exportnowrap": "{{doc-apihelp-param|query|exportnowrap}}",
        "apihelp-query-param-iwurl": "{{doc-apihelp-param|query|iwurl}}",
-       "apihelp-query-param-continue": "{{doc-apihelp-param|query|continue}}",
        "apihelp-query-param-rawcontinue": "{{doc-apihelp-param|query|rawcontinue}}",
        "apihelp-query-example-revisions": "{{doc-apihelp-example|query}}",
        "apihelp-query-example-allpages": "{{doc-apihelp-example|query}}",
index 0b50ad2..c4c7045 100644 (file)
@@ -6,7 +6,8 @@
                        "Eakarpov",
                        "Kaganer",
                        "Mariya",
-                       "Дмитрий"
+                       "Дмитрий",
+                       "WindEwriX"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Документация]]\n* [[mw:API:FAQ|ЧаВО]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Почтовая рассылка]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Новости API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Ошибки и запросы]\n</div>\n<strong>Статус:</strong> Все отображаемые на этой странице функции должны работать, однако API находится в статусе активной разработки, и может измениться в любой момент. Подпишитесь на  [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ почтовую рассылку mediawiki-api-announce], чтобы быть в курсе обновлений.\n\n<strong>Ошибочные запросы:</strong> Если API получает запрос с ошибкой, вернётся заголовок HTTP с ключом \"MediaWiki-API-Error\", после чего значение заголовка и код ошибки будут отправлены обратно и установлены в то же значение. Более подробную информацию см. [[mw:API:Errors_and_warnings|API: Ошибки и предупреждения]].",
@@ -22,7 +23,9 @@
        "apihelp-block-description": "Блокировка участника.",
        "apihelp-block-param-user": "Имя участника, IP-адрес или диапазон IP-адресов, которые вы хотите заблокировать.",
        "apihelp-block-param-reason": "Причина блокировки.",
+       "apihelp-block-param-anononly": "Блокировать только анонимных пользователей (т. е. запретить анонимные правки для этого IP-адреса).",
        "apihelp-block-param-nocreate": "Запретить создание учётных записей.",
+       "apihelp-block-param-watchuser": "Следить за страницей пользователя или IP-участника и страницей обсуждения.",
        "apihelp-checktoken-param-token": "токен для проверки",
        "apihelp-checktoken-param-maxtokenage": "Максимально допустимый возраст токена (в секундах).",
        "apihelp-checktoken-example-simple": "Проверить годность <kbd>csrf</kbd>-токена.",
@@ -50,6 +53,7 @@
        "apihelp-delete-description": "Удалить страницу.",
        "apihelp-delete-param-title": "Заголовок страницы удалить. Совместное использование с <var>$1страницы</var> невозможно.",
        "apihelp-delete-param-watch": "Добавить страницу к текущему списку наблюдения пользователя.",
+       "apihelp-delete-param-unwatch": "Удалить страницу из списка наблюдения текущего пользователя.",
        "apihelp-delete-example-simple": "удалить <kbd>Main Page</kbd>.",
        "apihelp-delete-example-reason": "Удалить <kbd>Main Page</kbd> причина <kbd>Preparing for move</kbd>.",
        "apihelp-disabled-description": "Этот модуль был отключен.",
        "apihelp-edit-param-minor": "Незначительное изменение (малая правка).",
        "apihelp-edit-param-notminor": "Значительное изменение (обычная, не «малая», правка).",
        "apihelp-edit-param-bot": "Пометить правку как сделанную ботом.",
+       "apihelp-edit-param-createonly": "Не редактировать страницу, если она уже существует.",
        "apihelp-edit-param-watch": "Добавить страницу к текущему списку наблюдения пользователя.",
+       "apihelp-edit-param-unwatch": "Удалить страницу из списка наблюдения текущего пользователя.",
        "apihelp-edit-example-edit": "Редактировать страницу",
        "apihelp-emailuser-description": "Письмо участнику",
+       "apihelp-emailuser-param-target": "Адресат электронного письма",
        "apihelp-emailuser-param-subject": "Заголовок темы.",
        "apihelp-emailuser-param-text": "Содержание письма",
        "apihelp-emailuser-param-ccme": "Отправить копию этого сообщения мне.",
        "apihelp-emailuser-example-email": "Отправить письмо пользователю <kbd>WikiSysop</kbd> с текстом <kbd>контентом</kbd>.",
        "apihelp-expandtemplates-description": "Разворачивает все шаблоны в wikitext.",
        "apihelp-expandtemplates-param-title": "Заголовок страницы.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "Дерево разбора XML входных данных.",
        "apihelp-feedcontributions-param-year": "От года (и ранее).",
        "apihelp-feedcontributions-param-month": "От месяца (и ранее).",
+       "apihelp-feedrecentchanges-param-hideminor": "Скрыть малые правки.",
+       "apihelp-feedrecentchanges-param-hidebots": "Скрыть правки ботов.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Скрыть отпатруллированные правки.",
        "apihelp-feedrecentchanges-param-tagfilter": "Фильтр по тегам.",
+       "apihelp-feedrecentchanges-example-simple": "Список последних изменений.",
+       "apihelp-feedrecentchanges-example-30days": "Показать последние изменения в течение 30 дней.",
        "apihelp-filerevert-param-comment": "Загрузить комментарий.",
+       "apihelp-help-example-main": "Помощь по главному модулю.",
        "apihelp-help-example-recursive": "Вся справка в одном разделе.",
        "apihelp-import-param-summary": "Импорт итога",
        "apihelp-import-param-xml": "Загруженный XML-файл.",
index c07032b..483eaa5 100644 (file)
@@ -48,6 +48,7 @@ class HTMLFileCache extends FileCacheBase {
         * @throws MWException
         */
        public function __construct( $title, $action ) {
+               parent::__construct();
                $allowedTypes = self::cacheablePageActions();
                if ( !in_array( $action, $allowedTypes ) ) {
                        throw new MWException( 'Invalid file cache type given.' );
index b25bf14..468c7e9 100644 (file)
@@ -1023,7 +1023,7 @@ abstract class ContentHandler {
 
        /**
         * Returns true for content models that support caching using the
-        * ParserCache mechanism. See WikiPage::isParserCacheUsed().
+        * ParserCache mechanism. See WikiPage::shouldCheckParserCache().
         *
         * @since 1.21
         *
index 3c8910f..113bb4b 100644 (file)
@@ -54,4 +54,4 @@ class HTMLFormFieldWithButton extends HTMLFormField {
        public function getElement( $element ) {
                return $element . '&#160;' . $this->getInputHTML( '' );
        }
-}
\ No newline at end of file
+}
index 5ab57a3..24b15bd 100644 (file)
@@ -14,4 +14,4 @@ class HTMLSelectNamespaceWithButton extends HTMLSelectNamespace {
        public function getInputHTML( $value ) {
                return $this->mClassWithButton->getElement( parent::getInputHTML( $value ) );
        }
-}
\ No newline at end of file
+}
index 00c0517..c6dac32 100644 (file)
@@ -14,4 +14,4 @@ class HTMLTextFieldWithButton extends HTMLTextField {
        public function getInputHTML( $value ) {
                return $this->mClassWithButton->getElement( parent::getInputHTML( $value ) );
        }
-}
\ No newline at end of file
+}
index 17f784f..87f3374 100644 (file)
@@ -80,7 +80,7 @@
        "config-magic-quotes-sybase": "'''Erreur fatale : [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybasee] est activé !'''\nCette option corrompt les données de manière imprévisible.\nVous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
        "config-mbstring": "'''Erreur fatale : [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] est activé !'''\nCette option provoque des erreurs et peut corrompre les données de manière imprévisible.\nVous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
        "config-safe-mode": "'''Attention : le « [http://www.php.net/features.safe-mode safe mode] » est activé !'''\nCeci peut causer des problèmes, en particulier si vous utilisez le téléversement de fichiers et le support de <code>math</code>.",
-       "config-xml-bad": "Le module XML de PHP est manquant.\nMediaWiki requiert des fonctions de ce module et ne fonctionnera pas avec cette configuration.\nSi vous êtes sous Mandrake, installez le paquet php-xml.",
+       "config-xml-bad": "Le module XML de PHP est manquant.\nMediaWiki requiert des fonctions de ce module et ne fonctionnera pas avec cette configuration.\nVous pourrez avoir besoin d’installer le paquet RPM php-xml.",
        "config-pcre-old": "'''Fatal :''' PCRE $1 ou ultérieur est nécessaire.\nVotre binaire PHP est lié avec PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Plus d’information sur PCRE].",
        "config-pcre-no-utf8": "'''Erreur fatale''': Le module PCRE de PHP semble être compilé sans le support PCRE_UTF8.\nMédiaWiki nécessite la gestion d’UTF-8 pour fonctionner correctement.",
        "config-memory-raised": "Le paramètre <code>memory_limit</code> de PHP était à $1, porté à $2.",
index 47dab58..9bbb635 100644 (file)
@@ -23,6 +23,7 @@
        "config-page-restart": "Barkirinê jinûve dest pê bide kirin",
        "config-page-readme": "Min bixwîne",
        "config-page-copying": "Kopîkirin",
+       "config-page-upgradedoc": "Bilindkirin",
        "config-page-existingwiki": "Wîkiya heye",
        "config-restart": "Erê, jinûve bide destpêkirin",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] hate avakirin",
@@ -39,6 +40,7 @@
        "config-mysql-myisam": "MyISAM",
        "config-mysql-utf8": "UTF-8",
        "config-site-name": "Navê wîkiyê:",
+       "config-site-name-blank": "Navê malperek têkeve.",
        "config-ns-generic": "Proje",
        "config-ns-other-default": "MyWiki",
        "config-admin-box": "Hesabê rêveberiyê",
@@ -53,6 +55,8 @@
        "config-email-usertalk": "Agahdariyên rûpela gotûbêjê ya bikarhêner gengaz bike",
        "config-upload-settings": "Barkirina wêne û dosyeyan",
        "config-upload-enable": "Barkirina dosyeyan gengaz bike",
+       "config-logo": "URL'ya logoyêː",
+       "config-cc-again": "Dîsa hilbijêre...",
        "config-install-step-done": "çêbû",
        "config-help": "alîkarî",
        "mainpagetext": "'''MediaWiki serketî hate çêkirin.'''",
index 53324c6..e9deb7b 100644 (file)
@@ -19,6 +19,7 @@
        "config-page-language": "Fiteny",
        "config-page-welcome": "Tonga soa eto amin'i MediaWiki !",
        "config-page-dbconnect": "Hiditra eo amin'i banky angona",
+       "config-page-dbsettings": "Parametatry ny banky angona",
        "config-page-name": "Anarana",
        "config-page-options": "Safidy",
        "config-page-install": "Apetraka",
        "config-page-existingwiki": "Wiki efa misy",
        "config-help-restart": "Tianao hofafana avokoa ve ny data voaangona natsofokao ary hamerina ny fizotran'ny fametrahana ?",
        "config-restart": "Eny, avereno atao",
+       "config-welcome": "=== Fanamarinana mikasika ny tontolo ===\nNy fanamarihana tsotsotra dia atao hijerena raha mety ho ana rindrankajy Mediawiki ny tontolo.\nTadidio ny mametraka ireto torohay ireo raha mitady fanohanana mikasika ny fomba famaranana ny fametrahana ianao.",
+       "config-env-good": "Voamarina ny tontolo.\nAfaka apetrakao i MediaWiki.",
+       "config-env-bad": "Voamarina ny tontolo.\nTsy afaka mametraka an'i MediaWiki ianao.",
+       "config-env-php": "Misy ato PHP $1.",
+       "config-env-hhvm": "Misy ato HHVM $1.",
+       "config-unicode-using-intl": "Mampiasa ny [http://pecl.php.net/intl itatra PECL intl] ho an'ny fampifenerana Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Fampitandremana: </strong>  Ny [http://pecl.php.net/intl itatra PECL intl] dia tsy misy mba hahazakana ny fampifenerana Unicode, ka mitontona amin'ny implementasiona PHP ranoray noho ny tsifisiany.\nRaha hametraka tranonkala be mpamangy ianao dia tokony mamaky ny [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ''Unicode normalization''] (amin'ny teny anglisy)",
        "config-db-username": "Anaram-pikamban'ny banky angona :",
        "config-db-password": "Tenimiafin'ny banky angona :",
        "config-header-mysql": "Parametatr'i MySQL",
index f706455..dec944a 100644 (file)
@@ -180,12 +180,12 @@ class RefreshLinksJob extends Job {
                        // Revision ID must be passed to the parser output to get revision variables correct
                        $parserOutput = $content->getParserOutput(
                                $title, $revision->getId(), $parserOptions, false );
-                       $ellapsed = microtime( true ) - $start;
+                       $elapsed = microtime( true ) - $start;
                        // If it took a long time to render, then save this back to the cache to avoid
                        // wasted CPU by other apaches or job runners. We don't want to always save to
                        // cache as this can cause high cache I/O and LRU churn when a template changes.
-                       if ( $ellapsed >= self::PARSE_THRESHOLD_SEC
-                               && $page->isParserCacheUsed( $parserOptions, $revision->getId() )
+                       if ( $elapsed >= self::PARSE_THRESHOLD_SEC
+                               && $page->shouldCheckParserCache( $parserOptions, $revision->getId() )
                                && $parserOutput->isCacheable()
                        ) {
                                $ctime = wfTimestamp( TS_MW, (int)$start ); // cache time
index a263a3d..1b24616 100644 (file)
@@ -53,7 +53,8 @@ class ReplicatedBagOStuff extends BagOStuff {
                if ( !isset( $params['writeFactory'] ) ) {
                        throw new InvalidArgumentException(
                                __METHOD__ . ': the "writeFactory" parameter is required' );
-               } elseif ( !isset( $params['readFactory'] ) ) {
+               }
+               if ( !isset( $params['readFactory'] ) ) {
                        throw new InvalidArgumentException(
                                __METHOD__ . ': the "readFactory" parameter is required' );
                }
@@ -75,7 +76,7 @@ class ReplicatedBagOStuff extends BagOStuff {
                return $this->readStore->get( $key, $casToken );
        }
 
-       public function getMulti( $keys ) {
+       public function getMulti( array $keys ) {
                return $this->readStore->getMulti( $keys );
        }
 
@@ -95,8 +96,8 @@ class ReplicatedBagOStuff extends BagOStuff {
                return $this->writeStore->incr( $key, $value );
        }
 
-       public function decr( $key ) {
-               return $this->writeStore->decr( $key );
+       public function decr( $key, $value = 1 ) {
+               return $this->writeStore->decr( $key, $value );
        }
 
        public function lock( $key, $timeout = 6, $expiry = 6 ) {
index 09d3807..5af7fbe 100644 (file)
@@ -70,7 +70,8 @@ class BitmapHandler extends TransformationalImageHandler {
        protected function transformImageMagick( $image, $params ) {
                # use ImageMagick
                global $wgSharpenReductionThreshold, $wgSharpenParameter, $wgMaxAnimatedGifArea,
-                       $wgImageMagickTempDir, $wgImageMagickConvertCommand;
+                       $wgImageMagickTempDir, $wgImageMagickConvertCommand, $wgResourceBasePath,
+                       $wgUseTinyRGBForJPGThumbnails;
 
                $quality = array();
                $sharpen = array();
index bf6f7fc..5ba5c68 100644 (file)
@@ -30,6 +30,7 @@
 class ExifBitmapHandler extends BitmapHandler {
        const BROKEN_FILE = '-1'; // error extracting metadata
        const OLD_BROKEN_FILE = '0'; // outdated error extracting metadata.
+       const SRGB_ICC_PROFILE_NAME = 'IEC 61966-2.1 Default RGB colour space - sRGB';
 
        function convertMetadataVersion( $metadata, $version = 1 ) {
                // basically flattens arrays.
@@ -243,4 +244,73 @@ class ExifBitmapHandler extends BitmapHandler {
 
                return 0;
        }
+
+       protected function transformImageMagick( $image, $params ) {
+               global $wgUseTinyRGBForJPGThumbnails;
+
+               $ret = parent::transformImageMagick( $image, $params );
+
+               if ( $ret ) {
+                       return $ret;
+               }
+
+               if ( $params['mimeType'] === 'image/jpeg' && $wgUseTinyRGBForJPGThumbnails ) {
+                       // T100976 If the profile embedded in the JPG is sRGB, swap it for the smaller
+                       // (and free) TinyRGB
+
+                       $this->swapICCProfile(
+                               $params['dstPath'],
+                               self::SRGB_ICC_PROFILE_NAME,
+                               realpath( __DIR__ ) . '/tinyrgb.icc'
+                       );
+               }
+
+               return false;
+       }
+
+       /**
+        * Swaps an embedded ICC profile for another, if found. Depends on exiftool, no-op if not installed.
+        * @param string $filepath File to be manipulated (will be overwritten)
+        * @param string $oldProfileString Exact name of color profile to look for (the one that will be replaced)
+        * @param string $profileFilepath ICC profile file to apply to the file
+        * @since 1.26
+        * @return bool
+        */
+       public function swapICCProfile( $filepath, $oldProfileString, $profileFilepath ) {
+               global $wgExiftool;
+
+               if ( !$wgExiftool || !is_executable( $wgExiftool ) ) {
+                       return false;
+               }
+
+               $cmd = wfEscapeShellArg( $wgExiftool,
+                       '-DeviceModelDesc',
+                       '-S',
+                       '-T',
+                       $filepath
+               );
+
+               $output = wfShellExecWithStderr( $cmd, $retval );
+
+               if ( $retval !== 0 || strcasecmp( trim( $output ), $oldProfileString ) !== 0 ) {
+                       // We can't establish that this file has the expected ICC profile, don't process it
+                       return false;
+               }
+
+               $cmd = wfEscapeShellArg( $wgExiftool,
+                       '-overwrite_original',
+                       '-icc_profile<=' . $profileFilepath,
+                       $filepath
+               );
+
+               $output = wfShellExecWithStderr( $cmd, $retval );
+
+               if ( $retval !== 0 ) {
+                       $this->logErrorForExternalProcess( $retval, $output, $cmd );
+
+                       return false;
+               }
+
+               return true;
+       }
 }
index 5463922..040ff96 100644 (file)
@@ -137,7 +137,7 @@ class JpegHandler extends ExifBitmapHandler {
 
                $rotation = ( $params['rotation'] + $this->getRotation( $file ) ) % 360;
 
-               if ( $wgJpegTran && is_file( $wgJpegTran ) ) {
+               if ( $wgJpegTran && is_executable( $wgJpegTran ) ) {
                        $cmd = wfEscapeShellArg( $wgJpegTran ) .
                                " -rotate " . wfEscapeShellArg( $rotation ) .
                                " -outfile " . wfEscapeShellArg( $params['dstPath'] ) .
diff --git a/includes/media/tinyrgb.icc b/includes/media/tinyrgb.icc
new file mode 100644 (file)
index 0000000..eab973f
Binary files /dev/null and b/includes/media/tinyrgb.icc differ
index 789f1e3..ae3850f 100644 (file)
@@ -31,6 +31,8 @@ class ObjectCacheSessionHandler {
        /** @var array Map of (session ID => SHA-1 of the data) */
        protected static $hashCache = array();
 
+       const TTL_REFRESH_WINDOW = 600; // refresh if expiring in 10 minutes
+
        /**
         * Install a session handler for the current web request
         */
@@ -157,10 +159,24 @@ class ObjectCacheSessionHandler {
        }
 
        /**
-        * Shutdown function. See the comment inside ObjectCacheSessionHandler::install
-        * for rationale.
+        * Shutdown function.
+        * See the comment inside ObjectCacheSessionHandler::install for rationale.
         */
        static function handleShutdown() {
+               global $wgObjectCacheSessionExpiry;
+
+               $now = microtime( true );
+               // Session are only written in object stores when $_SESSION changes,
+               // which also renews the TTL ($wgObjectCacheSessionExpiry). If a user
+               // is active but not causing session data changes, it may suddenly
+               // as they view a form, blocking the first submission.
+               // Make a dummy change every so often to avoid this.
+               if ( !isset( $_SESSION['wsExpiresUnix'] )
+                       || ( $now + self::TTL_REFRESH_WINDOW ) > isset( $_SESSION['wsExpiresUnix'] )
+               ) {
+                       $_SESSION['wsExpiresUnix'] = $now + $wgObjectCacheSessionExpiry;
+               }
+
                session_write_close();
        }
 }
index b8c1e75..c57c9fb 100644 (file)
@@ -30,6 +30,7 @@ class SqlBagOStuff extends BagOStuff {
        /** @var LoadBalancer */
        protected $lb;
 
+       /** @var array */
        protected $serverInfos;
 
        /** @var array */
@@ -53,6 +54,9 @@ class SqlBagOStuff extends BagOStuff {
        /** @var string */
        protected $tableName = 'objectcache';
 
+       /** @var bool */
+       protected $slaveOnly = false;
+
        /** @var array UNIX timestamps */
        protected $connFailureTimes = array();
 
@@ -84,6 +88,10 @@ class SqlBagOStuff extends BagOStuff {
         *                  required to hold the largest shard index. Data will be
         *                  distributed across all tables by key hash. This is for
         *                  MySQL bugs 61735 and 61736.
+        *   - slaveOnly:   Whether to only use slave DBs and avoid triggering
+        *                  garbage collection logic of expired items. This only
+        *                  makes sense if the primary DB is used and only if get()
+        *                  calls will be used. This is used by ReplicatedBagOStuff.
         *
         * @param array $params
         */
@@ -112,6 +120,7 @@ class SqlBagOStuff extends BagOStuff {
                if ( isset( $params['shards'] ) ) {
                        $this->shards = intval( $params['shards'] );
                }
+               $this->slaveOnly = !empty( $params['slaveOnly'] );
        }
 
        /**
@@ -155,12 +164,13 @@ class SqlBagOStuff extends BagOStuff {
                                 * However, SQLite has an opposite behavior. And PostgreSQL needs to know
                                 * if we are in transaction or no
                                 */
-                               if ( wfGetDB( DB_MASTER )->getType() == 'mysql' ) {
+                               $index = $this->slaveOnly ? DB_SLAVE : DB_MASTER;
+                               if ( wfGetDB( $index )->getType() == 'mysql' ) {
                                        $this->lb = wfGetLBFactory()->newMainLB();
-                                       $db = $this->lb->getConnection( DB_MASTER );
+                                       $db = $this->lb->getConnection( $index );
                                        $db->clearFlag( DBO_TRX ); // auto-commit mode
                                } else {
-                                       $db = wfGetDB( DB_MASTER );
+                                       $db = wfGetDB( $index );
                                }
                        }
                        if ( $wgDebugDBTransactions ) {
@@ -274,12 +284,7 @@ class SqlBagOStuff extends BagOStuff {
                                try {
                                        $db = $this->getDB( $row->serverIndex );
                                        if ( $this->isExpired( $db, $row->exptime ) ) { // MISS
-                                               $this->debug( "get: key has expired, deleting" );
-                                               # Put the expiry time in the WHERE condition to avoid deleting a
-                                               # newly-inserted value
-                                               $db->delete( $row->tableName,
-                                                       array( 'keyname' => $key, 'exptime' => $row->exptime ),
-                                                       __METHOD__ );
+                                               $this->debug( "get: key has expired" );
                                        } else { // HIT
                                                $values[$key] = $this->unserialize( $db->decodeBlob( $row->value ) );
                                        }
@@ -544,7 +549,7 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        protected function garbageCollect() {
-               if ( !$this->purgePeriod ) {
+               if ( !$this->purgePeriod || $this->slaveOnly ) {
                        // Disabled
                        return;
                }
index 5d7f365..a6b6b51 100644 (file)
@@ -574,7 +574,7 @@ class Article implements Page {
                }
 
                # Should the parser cache be used?
-               $useParserCache = $this->mPage->isParserCacheUsed( $parserOptions, $oldid );
+               $useParserCache = $this->mPage->shouldCheckParserCache( $parserOptions, $oldid );
                wfDebug( 'Article::view using parser cache: ' . ( $useParserCache ? 'yes' : 'no' ) . "\n" );
                if ( $user->getStubThreshold() ) {
                        $this->getContext()->getStats()->increment( 'pcache_miss_stub' );
@@ -1000,7 +1000,7 @@ class Article implements Page {
                                $outputPage->addModules( 'mediawiki.action.view.redirect' );
 
                                // Add a <link rel="canonical"> tag
-                               $outputPage->setCanonicalUrl( $this->getTitle()->getLocalURL() );
+                               $outputPage->setCanonicalUrl( $this->getTitle()->getCanonicalURL() );
 
                                // Tell the output object that the user arrived at this article through a redirect
                                $outputPage->setRedirectedFrom( $this->mRedirectedFrom );
@@ -1706,10 +1706,8 @@ class Article implements Page {
 
                if ( $user->isAllowed( 'suppressrevision' ) ) {
                        $suppress = Html::openElement( 'div', array( 'id' => 'wpDeleteSuppressRow' ) ) .
-                               "<strong>" .
-                                               Xml::checkLabel( wfMessage( 'revdelete-suppress' )->text(),
-                                                       'wpSuppress', 'wpSuppress', false, array( 'tabindex' => '4' ) ) .
-                                       "</strong>" .
+                               Xml::checkLabel( wfMessage( 'revdelete-suppress' )->text(),
+                                       'wpSuppress', 'wpSuppress', false, array( 'tabindex' => '4' ) ) .
                                Html::closeElement( 'div' );
                } else {
                        $suppress = '';
@@ -1774,7 +1772,7 @@ class Article implements Page {
                        Xml::closeElement( 'form' );
 
                        if ( $user->isAllowed( 'editinterface' ) ) {
-                               $link = Linker::link(
+                               $link = Linker::linkKnown(
                                        $ctx->msg( 'deletereason-dropdown' )->inContentLanguage()->getTitle(),
                                        wfMessage( 'delete-edit-reasonlist' )->escaped(),
                                        array(),
index cebc4c4..7ea4ed7 100644 (file)
@@ -1515,6 +1515,18 @@ class ImageHistoryPseudoPager extends ReverseChronologicalPager {
                $s = '';
                $this->doQuery();
                if ( count( $this->mHist ) ) {
+                       if ( $this->mImg->isLocal() ) {
+                               // Do a batch existence check for user pages and talkpages
+                               $linkBatch = new LinkBatch();
+                               for ( $i = $this->mRange[0]; $i <= $this->mRange[1]; $i++ ) {
+                                       $file = $this->mHist[$i];
+                                       $user = $file->getUser( 'text' );
+                                       $linkBatch->add( NS_USER, $user );
+                                       $linkBatch->add( NS_USER_TALK, $user );
+                               }
+                               $linkBatch->execute();
+                       }
+
                        $list = new ImageHistoryList( $this->mImagePage );
                        # Generate prev/next links
                        $navLink = $this->getNavigationBar();
index cb3def3..f7f2528 100644 (file)
@@ -1082,13 +1082,13 @@ class WikiPage implements Page, IDBAccessObject {
         * Should the parser cache be used?
         *
         * @param ParserOptions $parserOptions ParserOptions to check
-        * @param int $oldid
+        * @param int $oldId
         * @return bool
         */
-       public function isParserCacheUsed( ParserOptions $parserOptions, $oldid ) {
+       public function shouldCheckParserCache( ParserOptions $parserOptions, $oldId ) {
                return $parserOptions->getStubThreshold() == 0
                        && $this->exists()
-                       && ( $oldid === null || $oldid === 0 || $oldid === $this->getLatest() )
+                       && ( $oldId === null || $oldId === 0 || $oldId === $this->getLatest() )
                        && $this->getContentHandler()->isParserCacheSupported();
        }
 
@@ -1105,7 +1105,7 @@ class WikiPage implements Page, IDBAccessObject {
         */
        public function getParserOutput( ParserOptions $parserOptions, $oldid = null ) {
 
-               $useParserCache = $this->isParserCacheUsed( $parserOptions, $oldid );
+               $useParserCache = $this->shouldCheckParserCache( $parserOptions, $oldid );
                wfDebug( __METHOD__ . ': using parser cache: ' . ( $useParserCache ? 'yes' : 'no' ) . "\n" );
                if ( $parserOptions->getStubThreshold() ) {
                        wfIncrStats( 'pcache.miss.stub' );
index 16dde0d..117b6e7 100644 (file)
@@ -176,7 +176,7 @@ class ParserCache {
         * Retrieve the ParserOutput from ParserCache.
         * false if not found or outdated.
         *
-        * @param WikiPage $article
+        * @param WikiPage|Article $article
         * @param ParserOptions $popts
         * @param bool $useOutdated (default false)
         *
@@ -213,6 +213,11 @@ class ParserCache {
                // key. Force it here. See bug 31445.
                $value->setEditSectionTokens( $popts->getEditSection() );
 
+               $wikiPage = method_exists( $article, 'getPage' )
+                       ? $article->getPage()
+                       : $article;
+
+
                if ( !$useOutdated && $value->expired( $touched ) ) {
                        wfIncrStats( "pcache.miss.expired" );
                        $cacheTime = $value->getCacheTime();
@@ -225,6 +230,10 @@ class ParserCache {
                        $cachedRevId = $value->getCacheRevisionId();
                        wfDebug( "ParserOutput key is for an old revision, latest $revId, cached $cachedRevId\n" );
                        $value = false;
+               } elseif ( Hooks::run( 'RejectParserCacheValue', array( $value, $wikiPage, $popts ) ) === false ) {
+                       wfIncrStats( 'pcache.miss.rejected' );
+                       wfDebug( "ParserOutput key valid, but rejected by RejectParserCacheValue hook handler.\n" );
+                       $value = false;
                } else {
                        wfIncrStats( "pcache.hit" );
                }
index c65a3f9..9fd5a36 100644 (file)
@@ -297,9 +297,9 @@ abstract class Profiler {
         * @return array List of method entries arrays, each having:
         *   - name     : method name
         *   - calls    : the number of invoking calls
-        *   - real     : real time ellapsed (ms)
+        *   - real     : real time elapsed (ms)
         *   - %real    : percent real time
-        *   - cpu      : CPU time ellapsed (ms)
+        *   - cpu      : CPU time elapsed (ms)
         *   - %cpu     : percent CPU time
         *   - memory   : memory used (bytes)
         *   - %memory  : percent memory used
index bab8eba..63940bc 100644 (file)
@@ -89,9 +89,9 @@ class SectionProfiler {
         * @return array List of method entries arrays, each having:
         *   - name    : method name
         *   - calls   : the number of invoking calls
-        *   - real    : real time ellapsed (ms)
+        *   - real    : real time elapsed (ms)
         *   - %real   : percent real time
-        *   - cpu     : real time ellapsed (ms)
+        *   - cpu     : real time elapsed (ms)
         *   - %cpu    : percent real time
         *   - memory  : memory used (bytes)
         *   - %memory : percent memory used
index 752edc3..b4d4220 100644 (file)
@@ -394,7 +394,7 @@ class SpecialBlock extends FormSpecialPage {
 
                # Link to edit the block dropdown reasons, if applicable
                if ( $user->isAllowed( 'editinterface' ) ) {
-                       $links[] = Linker::link(
+                       $links[] = Linker::linkKnown(
                                $this->msg( 'ipbreason-dropdown' )->inContentLanguage()->getTitle(),
                                $this->msg( 'ipb-edit-dropdown' )->escaped(),
                                array(),
index 7e842d5..77ebac3 100644 (file)
@@ -451,7 +451,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                                Xml::closeElement( 'form' ) . "\n";
                        // Show link to edit the dropdown reasons
                        if ( $this->getUser()->isAllowed( 'editinterface' ) ) {
-                               $link = Linker::link(
+                               $link = Linker::linkKnown(
                                        $this->msg( 'revdelete-reason-dropdown' )->inContentLanguage()->getTitle(),
                                        $this->msg( 'revdelete-edit-reasonlist' )->escaped(),
                                        array(),
index b2305b9..a6847e1 100644 (file)
@@ -337,7 +337,7 @@ class SpecialTags extends SpecialPage {
 
                $preText = $this->msg( 'tags-delete-explanation-initial', $tag )->parseAsBlock();
                $tagUsage = ChangeTags::tagUsageStatistics();
-               if ( $tagUsage[$tag] > 0 ) {
+               if ( isset( $tagUsage[$tag] ) && $tagUsage[$tag] > 0 ) {
                        $preText .= $this->msg( 'tags-delete-explanation-in-use', $tag,
                                $tagUsage[$tag] )->parseAsBlock();
                }
index 1618527..6b0bf41 100644 (file)
@@ -817,7 +817,7 @@ class UploadForm extends HTMLForm {
 
                # Add a link to edit MediaWik:Licenses
                if ( $this->getUser()->isAllowed( 'editinterface' ) ) {
-                       $licensesLink = Linker::link(
+                       $licensesLink = Linker::linkKnown(
                                $this->msg( 'licenses' )->inContentLanguage()->getTitle(),
                                $this->msg( 'licenses-edit' )->escaped(),
                                array(),
index 11744f6..472fdb7 100644 (file)
@@ -1282,8 +1282,9 @@ class LoginForm extends SpecialPage {
        function mainLoginForm( $msg, $msgtype = 'error' ) {
                global $wgEnableEmail, $wgEnableUserEmail;
                global $wgHiddenPrefs, $wgLoginLanguageSelector;
-               global $wgAuth, $wgEmailConfirmToEdit, $wgCookieExpiration;
+               global $wgAuth, $wgEmailConfirmToEdit;
                global $wgSecureLogin, $wgPasswordResetRoutes;
+               global $wgExtendedLoginCookieExpiration, $wgCookieExpiration;
 
                $titleObj = $this->getPageTitle();
                $user = $this->getUser();
@@ -1406,7 +1407,7 @@ class LoginForm extends SpecialPage {
                $template->set( 'emailothers', $wgEnableUserEmail );
                $template->set( 'canreset', $wgAuth->allowPasswordChange() );
                $template->set( 'resetlink', $resetLink );
-               $template->set( 'canremember', ( $wgCookieExpiration > 0 ) );
+               $template->set( 'canremember', $wgExtendedLoginCookieExpiration === null ? ( $wgCookieExpiration > 0 ) : ( $wgExtendedLoginCookieExpiration > 0 ) );
                $template->set( 'usereason', $user->isLoggedIn() );
                $template->set( 'remember', $this->mRemember );
                $template->set( 'cansecurelogin', ( $wgSecureLogin === true ) );
index 8a1a6c6..a718aa8 100644 (file)
@@ -52,7 +52,7 @@ class WantedFilesPage extends WantedQueryPage {
                $noForeign = '';
                if ( !$this->likelyToHaveFalsePositives() ) {
                        // Additional messages for grep:
-                       // wantedfiletext-cat-noforeign, wantedfiletext-nocat
+                       // wantedfiletext-cat-noforeign, wantedfiletext-nocat-noforeign
                        $noForeign = '-noforeign';
                }
 
index a2a0ee6..6d537d3 100644 (file)
        'diq' => 'Zazaki',              # Zazaki
        'dsb' => 'dolnoserbski', # Lower Sorbian
        'dtp' => 'Dusun Bundu-liwan', # Central Dusun
+       'dty' => 'डोटेली', # Doteli
        'dv' => 'ދިވެހިބަސް',         # Dhivehi
        'dz' => 'ཇོང་ཁ',              # Dzongkha (Bhutan)
        'ee' => 'eʋegbe',      # Éwé
index 501367a..f8258c2 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|miembru|miembros}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|miembru|miembros}}",
        "nrevisions": "$1 {{PLURAL:$1|revisión|revisiones}}",
-       "nviews": "$1 {{PLURAL:$1|vista|vistes}}",
        "nimagelinks": "Usao en $1 {{PLURAL:$1|páxina|páxines}}",
        "ntransclusions": "usao en $1 {{PLURAL:$1|páxina|páxines}}",
        "specialpage-empty": "Nun hai resultaos nestos momentos.",
index 6a09f97..82a3c73 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|member|اعضا}}",
        "nmemberschanged": "$1 → $2   {{PLURAL:$2| عضو|عضو}}",
        "nrevisions": "$1 {{PLURAL:$1|بازبینی|بازبینی ان}}",
-       "nviews": "$1 {{PLURAL:$1|دیستن|دیستن}}",
        "nimagelinks": "$1 × $2, $3 {{PLURAL:$3|صفحه|صفحات}}",
        "ntransclusions": "بی $1 {{PLURAL:$1|تاکدیم|تاکدیم}} استپاده بوته",
        "specialpage-empty": "په ای گزارش هچ نتیجه ای نیست ان.",
index 10167c1..ee90db2 100644 (file)
        "yourdiff": "Адрозьненьні",
        "copyrightwarning": "Калі ласка, зьвярніце ўвагу на тое, што ўсе дадаткі і зьмены ў {{GRAMMAR:месны|{{SITENAME}}}} разглядаюцца як выдадзеныя ў адпаведнасьці з умовамі ліцэнзіі $2 (глядзіце падрабязнасьці на $1). Калі Вы супраць таго, каб Вашыя матэрыялы неабмежавана рэдагавалася і распаўсюджвалася, не дадавайце іх.<br />\nВы таксама абавязуецеся, што Ваш матэрыял напісаны асабіста Вамі або зьяўляецца грамадзкім набыткам, альбо ўзяты з падобных вольных крыніцаў.\n'''НЕЛЬГА БЕЗ ДАЗВОЛУ ДАДАВАЦЬ МАТЭРЫЯЛЫ, АБАРОНЕНЫЯ АЎТАРСКІМ ПРАВАМ!'''",
        "copyrightwarning2": "Калі ласка, заўважце, што ўвесь унёсак ў {{GRAMMAR:вінавальны|{{SITENAME}}}} можа рэдагавацца, зьмяняцца і выдаляцца іншымі ўдзельнікамі.\nКалі Вы з гэтым ня згодныя, калі ласка, не зьмяшчайце сюды Вашыя тэксты.<br />\nРазьмяшчэньнем тут тэкстаў, Вы дэкляруеце, што Вы зьяўляецеся іх аўтарам, ці Вы скапіявалі іх з крыніцы, якая дазваляе вольнае выкарыстаньне сваіх тэкстаў (дзеля падрабязнасьцяў глядзіце $1).\n\n'''КАЛІ ЛАСКА, НЕ ЗЬМЯШЧАЙЦЕ ТУТ БЕЗ ДАЗВОЛУ МАТЭРЫЯЛЫ, ЯКІЯ АХОЎВАЮЦЦА АЎТАРСКІМ ПРАВАМ!'''",
+       "editpage-cannot-use-custom-model": "Мадэль зьместу гэтай старонкі ня можа быць зьмененая.",
        "longpageerror": "'''Памылка: Аб’ём тэксту, які Вы спрабуеце запісаць складае $1 {{PLURAL:$1|кілябайт|кілябайты|кілябайтаў}}, што болей устаноўленага абмежаваньня на $2 {{PLURAL:$2|кілябайт|кілябайты|кілябайтаў}}.'''\nСтаронка ня можа быць захаваная.",
        "readonlywarning": "'''ПАПЯРЭДЖАНЬНЕ: База зьвестак была заблякаваная для тэхнічнага абслугоўваньня, таму немагчыма зараз захаваць Вашыя зьмены.'''\nВы можаце скапіяваць тэкст у файл на Вашым кампутары, а пазьней захаваць сюды.\n\nАдміністратар, які заблякаваў базу зьвестак, прапанаваў наступнае тлумачэньне: $1",
        "protectedpagewarning": "'''Папярэджаньне: Гэтая старонка была абароненая, таму толькі адміністратары могуць рэдагаваць яе.'''\nАпошні запіс з журнала пададзены ніжэй для даведкі:",
        "uploaded-setting-href-svg": "Выкарыстаньне тэгу «set» для дадаваньня атрыбуту «href» у бацькоўскі элемэнт заблякаванае.",
        "uploaded-wrong-setting-svg": "Ужываньне тэгу «set» для дадаваньня ў якасьці мэты аддаленага адрасу/зьвестак/сцэнару для любога атрыбуту заблякаванае. У загружаным SVG-файле знойдзена <code>&lt;set to=\"$1\"&gt;</code>.",
        "uploaded-setting-handler-svg": "SVG, які выстаўляе атрыбут «handler» з дапамогай аддаленага адрасу/зьвестак/скрыпту, блякуецца. У загружаным SVG-файле знойдзена <code>$1=\"$2\"</code>.",
+       "uploaded-remote-url-svg": "SVG, які выстаўляе любы атрыбут з дапамогай аддаленага URL-адрасу, блякуецца. У загружаным SVG-файле знойдзена <code>$1=\"$2\"</code>.",
+       "uploaded-image-filter-svg": "У загружаным SVG-файле знойдзены фільтар выяваў з URL-адрасам: <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploadscriptednamespace": "Гэты SVG-файл утрымлівае няслушную прастору назваў «$1»",
        "uploadinvalidxml": "Не атрымалася прааналізаваць XML у загружаным файле.",
        "uploadvirus": "Файл утрымлівае вірус! Падрабязнасьці: $1",
        "nmembers": "$1 {{PLURAL:$1|элемэнт|элемэнты|элемэнтаў}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|элемэнт|элемэнты|элемэнтаў}}",
        "nrevisions": "$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}}",
-       "nviews": "$1 {{PLURAL:$1|прагляд|прагляды|праглядаў}}",
        "nimagelinks": "Выкарыстоўваецца на $1 {{PLURAL:$1|старонцы|старонках|старонках}}",
        "ntransclusions": "выкарыстоўваецца на $1 {{PLURAL:$1|старонцы|старонках|старонках}}",
        "specialpage-empty": "Гэтая старонка — пустая.",
        "tags-delete-explanation-active": "<strong>Метка «$1» яшчэ актыўная і будзе па-ранейшаму ўжывацца ў будучыні.</strong> Каб спыніць гэта, перайдзіце туды, дзе ўсталяванае выкарыстаньне меткі і адключыце яе там.",
        "tags-delete-reason": "Прычына:",
        "tags-delete-submit": "Незваротна выдаліць гэтую метку",
+       "tags-delete-not-allowed": "Меткі, вызначаныя пашырэньнем, ня могуць быць выдаленыя, акрамя выпадку, калі пашырэньне дазваляе гэта.",
        "tags-delete-not-found": "Метка «$1» не існуе.",
        "comparepages": "Параўнаньне старонак",
        "compare-page1": "Старонка 1",
index 70ca42a..8dc411f 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|عضو|عضو}}",
        "nmemberschanged": "$1 → $2   {{PLURAL:$2| عضو|عضو}}",
        "nrevisions": "$1 {{PLURAL:$1|نخسه|نخسه}}",
-       "nviews": "$1 {{PLURAL:$1|دیست|دیست}}",
        "nimagelinks": "استفاده بوته بی  $1 {{PLURAL:$1|تاکدیم|تاکدیم}} ئی تا",
        "ntransclusions": "استفاده بوته بی  $1 {{PLURAL:$1|تاکدیم|تاکدیم}} ئی تا",
        "specialpage-empty": "نتیجه په راپور ئا موجود نه اینت.",
index 210a48c..44672a9 100644 (file)
        "content-model-css": "সিএসএস",
        "content-json-empty-object": "খালি অবজেক্ট",
        "content-json-empty-array": "খালি অ্যারে",
-       "duplicate-args-warning": "<strong>সতর্কীকরণ:</strong> \"$3\" প্যারামিটারের জন্য একের অধিক মানসহ [[:$1]] [[:$2]]কে কল করছে। শুধুমাত্র প্রদত্ত শেষ মান ব্যবহৃত হবে।",
+       "duplicate-args-warning": "<strong>সতর্কীকরণ:</strong> \"$3\" প্যারামিটারের জন্য একের অধিক মানসহ [[:$1]] [[:$2]] কে আহ্বান করছে। শুধুমাত্র প্রদত্ত শেষ মান ব্যবহৃত হবে।",
        "duplicate-args-category": "টেমপ্লেট আহ্বানে সদৃশ আর্গুমেন্ট ব্যবহার করা পাতা",
        "duplicate-args-category-desc": "এই পাতায় টেমপ্লেট আহ্বান উপস্থিত রয়েছে যা সদৃশ আর্গুমেন্ট ব্যবহার করেছে, যেমন <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> বা <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>।",
        "expensive-parserfunction-warning": "'''সতর্ক হোন:''' এই পাতাটি অনেক বেশি পরিমাণে এক্সপেনসিভ পার্সার ফাংশন কল রয়েছে।\n\nএটি $2-এর চেয়ে কম পরিমাণ {{PLURAL:$2|কল|কল}} থাকা উচিত, যেখানে মোট কলের সংখ্যা {{PLURAL:$1|বর্তমানে $1|বর্তমানে $1}}।",
        "badsig": "অবৈধ স্বাক্ষর; এইচটিএমএল ট্যাগ পরীক্ষা করুন।",
        "badsiglength": "আপনার স্বাক্ষরটি বেশ লম্বা।\nযা অবশ্যই $1 {{PLURAL:$1|অক্ষরের|অক্ষরের}} বেশী হতে পারবে না।",
        "yourgender": "আপনি কিভাবে নিজের বিবরণ দিতে পছন্দ করেন?",
-       "gender-unknown": "à¦\86মি à¦¬à¦¿à¦¸à§\8dতারিত à¦¬à¦²à¦¤à§\87 à¦ªà¦\9bনà§\8dদ à¦\95রি à¦¨à¦¾",
+       "gender-unknown": "যà¦\96ন à¦\86পনাà¦\95à§\87 à¦\89লà§\8dলà§\87à¦\96 à¦\95রা à¦¹à¦¬à§\87, à¦¸à¦«à¦\9fà¦\93য়à§\8dযার à¦¯à¦\96নà¦\87 à¦¸à¦®à§\8dভব à¦²à¦¿à¦\99à§\8dà¦\97 à¦¨à¦¿à¦°à¦ªà§\87à¦\95à§\8dষ à¦¶à¦¬à§\8dদ à¦¬à§\8dযবহার à¦\95রবà§\87",
        "gender-male": "তিনি (পুরুষ) উইকি পাতা সম্পাদনা করেন",
        "gender-female": "তিনি (মহিলা) উইকি পাতা সম্পাদনা করেন",
        "prefs-help-gender": "সেটিংসের এই পরিবর্তন ঐচ্ছিক।\nসফটওয়্যারে মাধ্যমে লিঙ্গ অনুযায়ী সম্বধনের ক্ষেত্রে এটি ব্যবহৃত হয়।\nএই তথ্য সকলের জন্য উন্মুক্ত থাকেবে।",
        "nmembers": "$1টি {{PLURAL:$1|সদস্য}}",
        "nmemberschanged": "$1 জন → $2 জন {{PLURAL:$2|সদস্য}}",
        "nrevisions": "$1 {{PLURAL:$1|সংশোধন|সংশোধনসমূহ}}",
-       "nviews": "$1 {{PLURAL:$1|বার দেখা হয়েছে|বার দেখা হয়েছে}}",
        "nimagelinks": "$1 {{PLURAL:$1|টি পাতায়| টি পাতায়}} ব্যবহৃত",
        "ntransclusions": "$1 {{PLURAL:$1|টি পাতায়| টি পাতায়}} ব্যবহৃত",
        "specialpage-empty": "এই রিপোর্টের জন্য কোন ফলাফল নেই।",
index 089a250..01a3af0 100644 (file)
        "nlinks": "$1 {{PLURAL:$1|veza|veze}}",
        "nmembers": "$1 {{PLURAL:$1|član|članova}}",
        "nrevisions": "$1 {{PLURAL:$1|revizija|revizije|revizija}}",
-       "nviews": "$1 {{PLURAL:$1|pregled|pregleda}}",
        "nimagelinks": "Koristi se na $1 {{PLURAL:$1|stranici|stranice|stranica}}",
        "ntransclusions": "koristi se na $1 {{PLURAL:$1|stranici|stranice|stranica}}",
        "specialpage-empty": "Nepostoje rezultati za ovaj izvještaj.",
index cda39a4..ab1be9f 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|element|elements}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|element|elements}}",
        "nrevisions": "$1 {{PLURAL:$1|revisió|revisions}}",
-       "nviews": "$1 {{PLURAL:$1|visita|visites}}",
        "nimagelinks": "S'utilitza en {{PLURAL:$1|una pàgina|$1 pàgines}}",
        "ntransclusions": "utilitzada en {{PLURAL:$1|una pàgina|$1 pàgines}}",
        "specialpage-empty": "Aquesta pàgina és buida.",
index 0ca3544..52f656e 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|хӀума|хӀумнаш}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|хӀума|хӀумнаш}}",
        "nrevisions": "$1 {{PLURAL:$1|верси|версеш}}",
-       "nviews": "$1 {{PLURAL:$1|хьажар}}",
        "nimagelinks": "Лелош ю $1 {{PLURAL:$1|агӀонгахь|агӀонашкахь}}",
        "ntransclusions": "лелош ю $1 {{PLURAL:$1|агӀонгахь|агӀонашкахь}}",
        "specialpage-empty": "Дехаро хӀумма ца елла.",
index d57bb8d..407f9cc 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|položka|položky|položek}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|položka|položky|položek}}",
        "nrevisions": "$1 {{PLURAL:$1|revize|revize|revizí}}",
-       "nviews": "$1 {{PLURAL:$1|návšteva|návštevy|návštev}}",
        "nimagelinks": "Použit na $1 {{PLURAL:$1|stránce|stránkách}}",
        "ntransclusions": "použita na $1 {{PLURAL:$1|stránce|stránkách}}",
        "specialpage-empty": "Tomuto požadavku neodpovídají žádné záznamy.",
index 6d12710..ddfd448 100644 (file)
        "yourdiff": "Unterschiede",
        "copyrightwarning": "'''Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!'''<br />\nDu gibst uns hiermit deine Zusage, dass du den Text '''selbst verfasst''' hast, dass der Text Allgemeingut '''(public domain)''' ist, oder dass der '''Urheber''' seine '''Zustimmung''' gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin.\n<i>Bitte beachte, dass alle {{SITENAME}}-Beiträge automatisch unter der „$2“ stehen (siehe $1 für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.</i>",
        "copyrightwarning2": "Bitte beachte, dass alle Beiträge zu {{SITENAME}} von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können.\nReiche hier keine Texte ein, falls du nicht willst, dass diese ohne Einschränkung geändert werden können.\n\nDu bestätigst hiermit auch, dass du diese Texte selbst geschrieben hast oder diese von einer gemeinfreien Quelle kopiert hast\n(weitere Einzelheiten unter $1). '''ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!'''",
+       "editpage-cannot-use-custom-model": "Das Inhaltsmodell dieser Seite kann nicht geändert werden.",
        "longpageerror": "'''Fehler: Der Text, den du zu speichern versuchst, ist {{PLURAL:$1|ein Kilobyte|$1 Kilobyte}} groß. Dies ist größer als das erlaubte Maximum von {{PLURAL:$2|ein Kilobyte|$2 Kilobyte}}.'''\nEr kann nicht gespeichert werden.",
        "readonlywarning": "'''Achtung: Die Datenbank wurde für Wartungsarbeiten gesperrt, so dass deine Änderungen derzeit nicht gespeichert werden können.\nSichere den Text bitte lokal auf deinem Computer und versuche zu einem späteren Zeitpunkt, die Änderungen zu übertragen.'''\n\nGrund für die Sperre: $1",
        "protectedpagewarning": "'''Achtung: Diese Seite wurde geschützt. Nur Benutzer mit Administratorrechten können die Seite bearbeiten.'''\nZur Information folgt der aktuelle Logbucheintrag:",
        "nmembers": "{{PLURAL:$1|1 Eintrag|$1 Einträge}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|Mitglied|Mitglieder}}",
        "nrevisions": "{{PLURAL:$1|1 Bearbeitung|$1 Bearbeitungen}}",
-       "nviews": "{{PLURAL:$1|1 Abfrage|$1 Abfragen}}",
        "nimagelinks": "Verwendet auf {{PLURAL:$1|einer Seite|$1 Seiten}}",
        "ntransclusions": "verwendet auf {{PLURAL:$1|einer Seite|$1 Seiten}}",
        "specialpage-empty": "Es sind aktuell keine zutreffenden Einträge vorhanden.",
index bd0ff07..5462423 100644 (file)
        "versionrequiredtext": "ये पाना प्रयोग गर्नका लागि MediaWiki $1 संस्करण चाहिन्छ ।\nहेर  [[Special:Version|version page]]",
        "ok": "भयो",
        "retrievedfrom": " \"$1\" बठे निकालिया",
-       "youhavenewmessages": "तमखी लेखा ($2)मी $1 छ।",
-       "youhavenewmessagesfromusers": "तमखी लेखा {{PLURAL:$3|प्रयोगकर्ता|$3 प्रयोगकर्तान}} ($2)बठे$1",
+       "youhavenewmessages": "तमखी लेखा($2)मी $1 छ।",
+       "youhavenewmessagesfromusers": "तमखी लेखा {{PLURAL:$3|प्रयोगकर्ता|$3 प्रयोगकर्तान}}($2)बठे$1",
        "youhavenewmessagesmanyusers": "तमलाई धेरै प्रयोगकर्ताहरू($2) बठे $1 छ ।",
        "newmessageslinkplural": "{{PLURAL:$1|एक नौलो रैबार|999=नौला रैबारहरू}}",
        "newmessagesdifflinkplural": "छाड्डीबारको {{PLURAL:$1|परिवर्तन|999=परिवर्तनहरू}}",
        "viewyourtext": "यै पानामी रह्याका '''तमरा सम्पादनहरू''' हेद्द या प्रतिलिपी गद्द सक्द्या हौ :",
        "namespaceprotected": "तमलाई '''$1'''  नेमस्पेसमी रह्याका पानाहरू सम्पादन गद्या अनुमति छैन ।",
        "exception-nologin": "प्रवेश (लग ईन) नगरिएको",
+       "virus-scanfailed": "जँचाई असफल(कोड $1)",
+       "virus-unknownscanner": "थानभया एन्टीभाइरस:",
+       "logouttext": "<strong>तमी अहिल बाहिर निस्क्याका  छौ।</strong>\n\nयाद राख्या तमीले ब्राउजरको क्याच खालि नगर्यासम्म कुनै पानाहरूमी तमी अझैं प्रवेश गरिरख्याको धेकाउन सक्छ।",
        "welcomeuser": "$1स्वागत छ!",
        "yourname": "प्रयोगकर्ता नाम:",
        "userlogin-yourname": "प्रयोगकर्ता नाम",
        "blockedtext": "'''तमरो प्रयोगकर्ता नाम या IP ठेगानालाई रोक लगाइएको छ ।'''\n\nरोक लगाउने  $1.\nरोक लगाउनाको कारण ''$2''.\n\n* रोक सुरू हुने : $8\n* रोक सकिने: $6\n* रोकबाट लक्षित: $7\n\nतमले  $1 वा और कोइ  [[{{MediaWiki:Grouppage-sysop}}|administrator]] सँग रोकको बारेमी छलफल गर्न सम्पर्क गर्न सकुन्छौ ।\nतमले  'प्रयोगकर्तालाई इ-मेल गर्ने ' सुविधा मान्य इमेल ठेगाना [[Special:Preferences|account preferences]] मी नखुलाए सम्म प्रयोगगर्न पाउनुहुन्या छैन र येको प्रयोग गर्नबठे रोक लगाइया छैन ।\nतमरो IP ठेगाना $3 को, र रोक्का संख्या #$5.\nकृपया तमरा प्रश्नमी सबै जानकारी खुलाया ।",
        "blockednoreason": "कारण दिइईया नाइँथिन",
        "whitelistedittext": "पाना सम्पादन गर्न तमले $1 गद्दु पडन्छ।",
+       "nosuchsectiontext": "तमले तसो खण्डको सम्पादन गद्या प्रयास गर्यौ जो अस्तित्वमी छैन।\nयैको नाम बदलियाको अथवा मेटाइयाको हुनुपडन्छ जब तमी यै पानालाई हेद्द लाग्याका छियौ ।",
        "loginreqtitle": "प्रवेशगर्नु जरुरी छ।",
        "loginreqlink": "प्रवेश (लग ईन)",
        "loginreqpagetext": "अरु पृष्ठहेर्न तमले $1 गद्दु पडन्छ ।",
        "revdelete-nooldid-title": "अमान्य पुनरावलोकन लक्ष",
        "revdelete-no-file": "खुलाइएको पाना अस्तित्वमी छैन",
        "revdelete-show-file-submit": "हो",
+       "revdelete-confirm": "पुष्टि गप कि तमी यो कार्य गद्द चाहन्छौ, तमी यऐको परिणाम बठे अवगत छौ, र तमी यो [[{{MediaWiki:Policy-url}}|नीति]] अनुसार गद्द लाइराछौ।",
        "revdelete-legend": "दृष्टि बन्देज मिलाउन्या",
        "revdelete-hide-text": "पुनरावलोकन पाठ",
        "revdelete-hide-image": "फाइल कमेन्ट लुकाउन्या",
index c6224c2..9071962 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|μέλος|μέλη}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|μέλος|μέλη}}",
        "nrevisions": "$1 {{PLURAL:$1|αναθεώρηση|αναθεωρήσεις}}",
-       "nviews": "$1 {{PLURAL:$1|επίσκεψη|επισκέψεις}}",
        "nimagelinks": "Χρησιμοποιείται σε $1 {{PLURAL:$1|σελίδα|σελίδες}}",
        "ntransclusions": "χρησιμοποιείται σε $1 {{PLURAL:$1|σελίδα|σελίδες}}",
        "specialpage-empty": "Αυτή η σελίδα είναι κενή.",
        "whatlinkshere-prev": "{{PLURAL:$1|προηγούμενη|προηγούμενες $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|επόμενη|επόμενες $1}}",
        "whatlinkshere-links": "← σύνδεσμοι",
-       "whatlinkshere-hideredirs": "$1 ανακατευθύνσεις",
+       "whatlinkshere-hideredirs": "$1 ανακατευθύνσεων",
        "whatlinkshere-hidetrans": "$1 ενσωματώσεων",
        "whatlinkshere-hidelinks": "$1 συνδέσμων",
        "whatlinkshere-hideimages": "$1 σύνδεσμοι αρχείων",
        "file-no-thumb-animation-gif": "'''Σημείωση: λόγω τεχνικών περιορισμών, μικρογραφίες εικόνων GIF υψηλής ανάλυσης όπως αυτή εδώ δεν θα είναι κινούμενες.'''",
        "newimages": "Πινακοθήκη νέων εικόνων",
        "imagelisttext": "Ακολουθεί κατάλογος '''$1''' {{PLURAL:$1|αρχείου|αρχείων}} ταξινομημένων κατά σειρά $2.",
-       "newimages-summary": "Αυτή η ειδική σελίδα δείχνει τα πιο πρόσφατα φορτωμένα αρχεία.",
+       "newimages-summary": "Αυτή η ειδική σελίδα δείχνει τα πιο πρόσφατα ανεβασμένα αρχεία.",
        "newimages-legend": "Φίλτρο",
        "newimages-label": "Όνομα αρχείου (ή μέρος αυτού):",
        "newimages-showbots": "Εμφάνιση αρχείων ανεβασμένων από ρομπότ",
        "watchlistedit-clear-legend": "Εκκαθάριση λίστας παρακολούθησης",
        "watchlistedit-clear-explain": "Όλοι οι τίτλοι θα αφαιρεθούν από τη λίστα παρακολούθησής σας",
        "watchlistedit-clear-titles": "Τίτλοι:",
-       "watchlistedit-clear-submit": "Î\9aαθαÏ\81ίÏ\83Ï\84ε Ï\84η Î»Î¯Ï\83Ï\84α Ï\80αÏ\81ακολοÏ\8dθηÏ\83ηÏ\82 (αÏ\85Ï\84Ï\8c ÎµÎ¯Î½Î±Î¹ Î¼Ï\8cνιμο!)",
+       "watchlistedit-clear-submit": "Î\95κκαθάÏ\81ιÏ\83η Ï\84ηÏ\82 Î»Î¯Ï\83Ï\84αÏ\82 Ï\80αÏ\81ακολοÏ\8dθηÏ\83ηÏ\82 (Î\91Ï\85Ï\84Ï\8c ÎµÎ¯Î½Î±Î¹ Î¿Ï\81ιÏ\83Ï\84ικÏ\8c!)",
        "watchlistedit-clear-done": "Η λίστα παρακολούθησής σας έχει καθαριστεί.",
        "watchlistedit-clear-removed": "{{PLURAL:$1|1 τίτλος αφαιρέθηκε|$1 τίτλοι αφαιρέθηκαν}}:",
        "watchlistedit-too-many": "Υπάρχουν υπερβολικά πολλές σελίδες και δεν μπορούν να εμφανιστούν εδώ.",
        "revdelete-restricted": "εφήρμοσε περιορισμούς στους sysops",
        "revdelete-unrestricted": "αφαίρεσε περιορισμούς στους sysops",
        "logentry-block-unblock": "{{GENDER:$2|Ο|Η}} $1 αφαίρεσε τη φραγή {{GENDER:$4|του|της}} $3",
-       "logentry-move-move": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4",
-       "logentry-move-move-noredirect": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 χωρίς να αφήσει ανακατεύθυνση",
-       "logentry-move-move_redir": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 πάνω από την ανακατεύθυνση",
+       "logentry-move-move": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4",
+       "logentry-move-move-noredirect": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4 χωρίς να αφήσει ανακατεύθυνση",
+       "logentry-move-move_redir": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4 πάνω από την ανακατεύθυνση",
        "logentry-move-move_redir-noredirect": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε την σελίδα $3 στην $4 πάνω από μια ανακατεύθυνση χωρίς να αφήσει ανακατεύθυνση",
        "logentry-patrol-patrol": "{{GENDER:$2|Ο|Η}} $1 επισήμανε την έκδοση $4 της σελίδας $3 ως ελεγμένη",
        "logentry-patrol-patrol-auto": "{{GENDER:$2|Ο|Η}} $1 αυτόματα σήμανε την έκδοση $4 της σελίδας $3 ως ελεγμένη",
index 7bcf987..25ae0a2 100644 (file)
        "copyrightwarning2": "Please note that all contributions to {{SITENAME}} may be edited, altered, or removed by other contributors.\nIf you do not want your writing to be edited mercilessly, then do not submit it here.<br />\nYou are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see $1 for details).\n<strong>Do not submit copyrighted work without permission!</strong>",
        "editpage-head-copy-warn": "-",
        "editpage-tos-summary": "-",
+       "editpage-cannot-use-custom-model": "The content model of this page cannot be changed.",
        "longpage-hint": "-",
        "longpageerror": "<strong>Error: The text you have submitted is {{PLURAL:$1|one kilobyte|$1 kilobytes}} long, which is longer than the maximum of {{PLURAL:$2|one kilobyte|$2 kilobytes}}.</strong>\nIt cannot be saved.",
        "readonlywarning": "<strong>Warning: The database has been locked for maintenance, so you will not be able to save your edits right now.</strong>\nYou may wish to copy and paste your text into a text file and save it for later.\n\nThe administrator who locked it offered this explanation: $1",
        "nmembers": "$1 {{PLURAL:$1|member|members}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|member|members}}",
        "nrevisions": "$1 {{PLURAL:$1|revision|revisions}}",
-       "nviews": "$1 {{PLURAL:$1|view|views}}",
        "nimagelinks": "Used on $1 {{PLURAL:$1|page|pages}}",
        "ntransclusions": "used on $1 {{PLURAL:$1|page|pages}}",
        "specialpage-empty": "There are no results for this report.",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "en dash",
        "special-characters-title-emdash": "em dash",
-       "special-characters-title-minus": "minus sign"
+       "special-characters-title-minus": "minus sign",
+       "mw-widgets-titleinput-description-new-page": "page does not exist yet",
+       "mw-widgets-titleinput-description-redirect": "redirect to $1"
 }
index c936f7c..71b1f5d 100644 (file)
        "yourdiff": "Diferencias",
        "copyrightwarning": "Ten en cuenta que todas las contribuciones a {{SITENAME}} se consideran publicadas bajo la $2 (véase $1 para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.<br />Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre. <strong>¡No uses textos con copyright sin permiso!</strong>",
        "copyrightwarning2": "Ten en cuenta que todas las contribuciones a {{SITENAME}} pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.<br />Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase $1 para más detalles).\n<strong>¡No uses textos con copyright sin permiso!</strong>",
+       "editpage-cannot-use-custom-model": "El modelo de contenido de esta página no se puede cambiar.",
        "longpageerror": "<strong>Error: el texto que has enviado ocupa {{PLURAL:$1|un kilobyte|$1 kilobytes}}, que supera el máximo de {{PLURAL:$2|un kilobyte|$2 kilobytes}}.</strong>\nPor tanto, no lo podemos guardar.",
        "readonlywarning": "<strong>Advertencia: La base de datos ha sido bloqueada por labores de mantenimiento, así que en este momento no puedes guardar tus ediciones.</strong>\nQuizás quieras copiar y pegar tu texto en un archivo de texto y guardarlo para después.\n\nEl administrador que la bloqueó ha dado esta explicación: $1",
        "protectedpagewarning": "<strong>Advertencia: Esta página ha sido protegida para que solo puedan editarla los usuarios con permisos de administrador.</strong>\nA continuación se muestra la última entrada de registro para más información:",
        "nmembers": "$1 {{PLURAL:$1|artículo|artículos}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|miembro|miembros}}",
        "nrevisions": "$1 {{PLURAL:$1|revisión|revisiones}}",
-       "nviews": "$1 {{PLURAL:$1|vista|vistas}}",
        "nimagelinks": "Usado en {{PLURAL:$1|una página|$1 páginas}}",
        "ntransclusions": "usado en {{PLURAL:$1|una página|$1 páginas}}",
        "specialpage-empty": "Esta página está vacía.",
index 084a036..0369741 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|liige|liiget}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|liige|liiget}}",
        "nrevisions": "$1 {{PLURAL:$1|redaktsioon|redaktsiooni}}",
-       "nviews": "$1 {{PLURAL:$1|külastus|külastust}}",
        "nimagelinks": "Kasutuses {{PLURAL:$1|ühel leheküljel|$1 leheküljel}}",
        "ntransclusions": "kasutuses {{PLURAL:$1|ühel leheküljel|$1 leheküljel}}",
        "specialpage-empty": "Vasteid ei leidu.",
index 5f9f1d6..e118c55 100644 (file)
        "nmembers": "{{PLURAL:$1|partaide 1|$1 partaide}}",
        "nmemberschanged": "$1 → {{PLURAL:$2|kide $2|$2 kide}}",
        "nrevisions": "{{PLURAL:$1|berrikuspen 1|$1 berrikuspen}}",
-       "nviews": "{{PLURAL:$1|ikusketa 1|$1 ikusketa}}",
        "nimagelinks": "{{PLURAL:$1|Orrialde batean erabilia|$1 orrialdetan erabilia}}",
        "ntransclusions": "{{PLURAL:$1|orrialde batean erabilia|$1 orrialdetan erabilia}}",
        "specialpage-empty": "Ez dago emaitzarik bilaketa honetarako.",
index 89f878d..dc89a92 100644 (file)
        "content-model-css": "CSS",
        "content-json-empty-object": "Tyhjä objekti",
        "content-json-empty-array": "Tyhjä array",
+       "duplicate-args-warning": "<strong>Varoitus:</strong> [[:$1]] kutsuu mallinetta [[:$2]] niin, että parametrille \"$3\" on annettu enemmän kuin yksi arvo. Ainoastaan viimeksi annettu arvo otetaan huomioon.",
        "duplicate-args-category": "Sivut, jotka käyttävät kaksinkertaisia argumentteja mallinekutsuissa",
        "duplicate-args-category-desc": "Tämä sivu sisältää sellaisia mallinekutsuja, jotka käyttävät kaksi kertaa samaa argumenttia kuten <nowiki>{{foo|bar=1|bar=2}}</nowiki></code> taikka <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Tällä sivulla on liian monta hitaiden laajennusfunktioiden kutsua.\nKutsuja pitäisi olla alle $2 {{PLURAL:$2|kappale|kappaletta}}, mutta nyt niitä on $1 {{PLURAL:$1|kappale|kappaletta}}.",
        "badsig": "Allekirjoitus ei kelpaa.",
        "badsiglength": "Allekirjoitus on liian pitkä – sen on oltava alle $1 {{PLURAL:$1|merkki|merkkiä}}.",
        "yourgender": "Mikä seuraavista kuvaa sinua?",
-       "gender-unknown": "En halua määritellä",
+       "gender-unknown": "Kun ohjelmisto mainitsee sinut, sinusta pyritään käyttämään ilmaisuja, jotka eivät määritä sukupuoltasi",
        "gender-male": "Mies",
        "gender-female": "Nainen",
        "prefs-help-gender": "Tämän asetuksen määrittäminen on vapaaehtoista.\nOhjelmisto käyttää annettua arvoa viitaten sinuun oikealla kieliopillisella suvulla.\nTämä tieto on julkinen.",
        "uploaddisabledtext": "Tiedostojen tallennus on poistettu käytöstä.",
        "php-uploaddisabledtext": "PHP:n tiedostojen lähetys ei ole käytössä. Tarkista asetukset kohdasta file_uploads.",
        "uploadscripted": "Tämä tiedosto sisältää HTML-koodia tai skriptejä, jotka selain saattaa virheellisesti suorittaa.",
+       "upload-scripted-pi-callback": "Ei voida tallentaa tiedostoa, joka sisältää XML-tyylimääritteen käsittelyohjeen.",
+       "uploaded-hostile-svg": "Tallennetun SVG-tiedoston tyylielementissä löytyi turvaton CSS.",
        "uploadscriptednamespace": "Tämä SVG-tiedosto sisältää nimiavaruuden ”$1”, joka ei ole sallittu.",
        "uploadinvalidxml": "Ladatun tiedoston XML-koodia ei voitu jäsentää kunnolla.",
        "uploadvirus": "Tiedosto sisältää viruksen. Tarkemmat tiedot: $1",
        "nmembers": "$1 {{PLURAL:$1|jäsen|jäsentä}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|jäsen|jäsentä}}",
        "nrevisions": "$1 {{PLURAL:$1|muutos|muutosta}}",
-       "nviews": "$1 {{PLURAL:$1|lataus|latausta}}",
        "nimagelinks": "Käytössä $1 {{PLURAL:$1|sivulla}}",
        "ntransclusions": "käytössä $1 {{PLURAL:$1|sivulla}}",
        "specialpage-empty": "Tämä sivu on tyhjä.",
index b5fedf5..36284b7 100644 (file)
        "yourdiff": "Différences",
        "copyrightwarning": "Toutes les contributions à {{SITENAME}} sont considérées comme publiées sous les termes de la $2 (voir $1 pour plus de détails). Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br />\nVous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source provenant du domaine public, ou d’une ressource libre. '''N’UTILISEZ PAS DE TRAVAUX SOUS DROIT D’AUTEUR SANS AUTORISATION EXPRESSE !'''",
        "copyrightwarning2": "Toutes les contributions à {{SITENAME}} peuvent être modifiées ou supprimées par d’autres utilisateurs. Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br \n/>Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source provenant du domaine public, ou d’une ressource libre. (voir $1 pour plus de détails).\n'''N’UTILISEZ PAS DE TRAVAUX SOUS DROIT D’AUTEUR SANS AUTORISATION EXPRESSE !'''",
+       "editpage-cannot-use-custom-model": "Le modèle de contenu de cette page ne peut pas être modifié.",
        "longpageerror": "'''Erreur: Le texte que vous avez soumis fait {{PLURAL:$1|un Kio|$1 Kio}}, ce qui dépasse la limite fixée à {{PLURAL:$2|un Kio|$2 Kio}}.'''\nIl ne peut pas être sauvegardé.",
        "readonlywarning": "'''AVERTISSEMENT : la base de données a été verrouillée pour des opérations de maintenance. Vous ne pouvez donc pas publier vos modifications pour l’instant.'''\nVous pouvez copier et coller votre texte dans un fichier texte et l’enregistrer pour plus tard.\n\nL’administrateur ayant verrouillé la base de données a donné l’explication suivante : $1",
        "protectedpagewarning": "'''AVERTISSEMENT : cette page est protégée. Seuls les utilisateurs ayant le statut d'administrateur peuvent la modifier.'''<br />\nLa dernière entrée du journal est affichée ci-dessous pour référence :",
        "badsig": "Signature brute incorrecte.\nVérifiez les balises HTML.",
        "badsiglength": "Votre signature est trop longue.\nElle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.",
        "yourgender": "Comment préférez-vous être décrit ?",
-       "gender-unknown": "Je préfère ne pas l’indiquer",
+       "gender-unknown": "Lorsqu’il fera mention de vous, le logiciel utilisera des mots de genre neutre, quand c’est possible",
        "gender-male": "Il modifie des pages du wiki",
        "gender-female": "Elle modifie des pages du wiki",
        "prefs-help-gender": "Définir cette préférence est facultatif.\nCe logiciel utilise sa valeur pour s’adresser à vous et vous mentionner aux autres en utilisant le bon genre grammatical.\nCette information sera publique.",
        "uploaded-href-unsafe-target-svg": "href vers une cible non sûre <code>&lt;$1 $2=\"$3\"&gt;</code> trouvé dans le fichier SVG téléchargé.",
        "uploaded-animate-svg": "Balise « animate » trouvée, qui pourrait modifier le href en utilisant l’attribut « from » <code>&lt;$1 $2=\"$3\"&gt;</code> dans le fichier SVG téléchargé.",
        "uploaded-setting-event-handler-svg": "Positionner des attributs de gestionnaire d’événement est bloqué, <code>&lt;$1 $2=\"$3\"&gt;</code> trouvé dans le fichier SVG téléchargé.",
+       "uploaded-setting-href-svg": "L’utilisation de la balise « set » pour ajouter un attribut « href » à l’élément parent est interdite.",
+       "uploaded-wrong-setting-svg": "L’utilisation de la balise « set » pour ajouter une cible distante/données/script à un attribut quelconque est interdite. <code>&lt;set to=\"$1\"&gt;</code> a été trouvé dans le fichier SVG téléchargé.",
+       "uploaded-setting-handler-svg": "Les SVG qui positionnent l’attribut « handler » avec distant/données/script sont interdits. <code>$1=\"$2\"</code> a été trouvé dans le fichier SVG téléchargé.",
+       "uploaded-remote-url-svg": "Les SVG qui positionnent un attribut de style avec une URL distante sont bloqués. <code>$1=\"$2\"</code> trouvé dans le fichier SVG téléchargé.",
+       "uploaded-image-filter-svg": "Filtre d’image avec URL trouvé : <code>&lt;$1 $2=\"$3\"&gt;</code> dans le fichier SVG téléchargé.",
        "uploadscriptednamespace": "Ce fichier SVG contient un espace de noms '$1' non autorisé.",
        "uploadinvalidxml": "Le XML dans le fichier importé n’a pas pu être analysé.",
        "uploadvirus": "Ce fichier contient un virus ! Pour plus de détails, consultez : $1",
        "nmembers": "$1 membre{{PLURAL:$1||s}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membre|membres}}",
        "nrevisions": "$1 version{{PLURAL:$1||s}}",
-       "nviews": "$1 consultation{{PLURAL:$1||s}}",
        "nimagelinks": "Utilisé sur $1 {{PLURAL:$1|page|pages}}",
        "ntransclusions": "Utilisé sur $1 {{PLURAL:$1|page|pages}}",
        "specialpage-empty": "Il n'y a aucun résultat à afficher.",
        "unusedimages": "Fichiers orphelins",
        "wantedcategories": "Catégories les plus demandées",
        "wantedpages": "Pages les plus demandées",
-       "wantedpages-summary": "Liste des pages inexistantes ayant le plus de lien vers elles, en excluant les pages n’ayant que des redirections pointant vers elles. Pour avoir une liste des pages inexistantes qui ont des redirections pointant vers elles, voyez [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Liste des pages inexistantes ayant le plus de lien vers elles, en excluant les pages n’ayant que des redirections pointant vers elles. Pour avoir une liste des pages inexistantes qui ont des redirections pointant vers elles, voyez [[{{#special:BrokenRedirects}}|la liste des redirections cassées]].",
        "wantedpages-badtitle": "Titre invalide dans les résultats : $1",
        "wantedfiles": "Fichiers les plus demandés",
        "wantedfiletext-cat": "Les fichiers suivants sont utilisés, mais n'existent pas localement. S'ils se trouvent sur un dépôt partagé, ils peuvent être listés ici, bien qu'ils soient, de fait, déjà disponibles. Tous ces faux positifs seront <del>barrés</del>. En outre, les pages qui intègrent des fichiers qui n'existent pas sont répertoriées dans [[:$1]].",
        "log-description-pagelang": "Ceci est un journal des changements dans les langues des pages.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a changé}} la langue de la page $3 de $4 à $5.",
        "default-skin-not-found": "Oups ! L’habillage par défaut pour votre wiki, défini par <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVotre installation semble inclure {{PLURAL:$4|l’habillage suivant|les habillages suivants}}. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de configuration des habillages] pour savoir comment {{PLURAL:$4|l’|les }}activer et choisir celui par défaut.\n\n$2\n\n; Si vous venez juste d’installer MediaWiki :\n: Vous l’avez probablement installé depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en:\n:* Téléchargeant le [https://www.mediawiki.org/wiki/Download fichier tar de l’installeur], qui comprend plusieurs habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Téléchargeant des habillages avec Git].\n: Faire ainsi ne devrait pas interférer avec votre dépôt git, si vous êtes un développeur de MediaWiki.\n\n; Si vous venez juste de mettre à jour MediaWiki :\n: MediaWiki 1.24 et au-delà n’active plus automatiquement les habillages installés (voyez [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery le manuel sur la découverte automatique des habillages]). Vous pouvez coller {{PLURAL:$5|la ligne suivante|les lignes suivantes}} dans <code>LocalSettings.php</code> pour activer {{PLURAL:$5|l’habillage actuellement installé|tous les habillages actuellement installés}} :\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si vous venez de modifier <code>LocalSettings.php</code> :\n: Vérifiez deux fois le nom des habillages pour éviter les erreurs de frappe.",
-       "default-skin-not-found-no-skins": "Oups ! L’habillage par défaut pour votre wiki , défini par <code>$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVous n’avez aucun habillage d’installé.\n\n; Si vous venez juste d’installer ou de mettre à jour MediaWiki :\n: Vous l’avez sans doute fait depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. MediaWiki 1.24 et au-delà n’inclut aucun habillage dans le dépôt principal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en :\n:* Téléchargeant [https://www.mediawiki.org/wiki/Download le fichier tar de l’installeur], qui comprend différents habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:*Clonant un des dépôts <code>mediawiki/skins/*</code> via git dans le répertoire <code dir=\"ltr\">skins/</code> de votre installation de MediaWiki.\n: Faire ainsi ne devrait pas interférer avec votre dépôt git si vous êtes un développeur de MediaWiki. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de la configuration des habillages] pour des instructions sur la manière d’activer les habillages et choisir celui par défaut.",
+       "default-skin-not-found-no-skins": "Oups ! L’habillage par défaut pour votre wiki , défini par <code>$wgDefaultSkin</code> comme <code>$1</code>, n’est pas disponible.\n\nVous n’avez aucun habillage d’installé.\n\n; Si vous venez juste d’installer ou de mettre à jour MediaWiki :\n: Vous l’avez sans doute fait depuis git, ou directement depuis le code source avec une autre méthode. C’est normal. MediaWiki 1.24 et au-delà n’inclut aucun habillage dans le dépôt principal. Essayez d’installer des habillages depuis [https://www.mediawiki.org/wiki/Category:All_skins le répertoire des habillages de mediawiki.org], en :\n:* Téléchargeant [https://www.mediawiki.org/wiki/Download le fichier tar de l’installeur], qui comprend différents habillages et extensions. Vous pouvez copier et coller le répertoire <code>skins/</code> depuis là.\n:* Téléchargeant les fichiers tar d’habillage individuel depuis [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Utiliser Git pour télécharger des habillages].\n: Faire ainsi ne devrait pas interférer avec votre dépôt git si vous êtes un développeur de MediaWiki. Voyez [https://www.mediawiki.org/wiki/Manual:Skin_configuration le manuel de la configuration des habillages] pour des instructions sur la manière d’activer les habillages et choisir celui par défaut.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activé)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''désactivé''')",
        "mediastatistics": "Statistiques sur les médias",
index c58d94a..c1ce466 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|páxina|páxinas}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membro|membros}}",
        "nrevisions": "$1 {{PLURAL:$1|revisión|revisións}}",
-       "nviews": "vista {{PLURAL:$1|unha vez|$1 veces}}",
        "nimagelinks": "Empregada {{PLURAL:$1|nunha páxina|en $1 páxinas}}",
        "ntransclusions": "empregado en $1 {{PLURAL:$1|páxina|páxinas}}",
        "specialpage-empty": "Non hai resultados para o que solicitou.",
index 8dd1977..905bd95 100644 (file)
        "nlinks": "$1 {{PLURAL:$1|કડી|કડીઓ}}",
        "nmembers": "$1 {{PLURAL:$1|સદસ્ય|સદસ્યો}}",
        "nrevisions": "$1 {{PLURAL:$1|પુનરાવર્તન|પુનરાવર્તનો}}",
-       "nviews": "$1 {{PLURAL:$1|દેખાવ|દેખાવો}}",
        "nimagelinks": "$1 {{PLURAL:$1|પાના|પાનાઓ}} પર વપરાયો",
        "ntransclusions": "$1 {{PLURAL:$1|પાના|પાનાઓ}} પર વપરાયો",
        "specialpage-empty": "આ પાનું ખાલી છે.",
        "redirect-lookup": "જુઓ:",
        "redirect-value": "કિંમત:",
        "redirect-user": "સભ્ય નામ",
-       "redirect-page": "પાનાàª\82 ઓળખ",
+       "redirect-page": "પà«\83ષà«\8dઠ ઓળખ",
        "redirect-revision": "પાનાંની આવૃત્તિ",
        "redirect-file": "ફાઇલ નામ",
        "redirect-not-exists": "કિંમત મળી નહી",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|સેકંડ|સેકંડો}}",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|બાઇટ|બાઇટ્સ}}",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|બાઇટ|બાઇટ્સ}}",
-       "expand_templates_input": "àª\87નપà«\81àª\9f àª²àª\96ાણ:",
+       "expand_templates_input": "પાઠ àª\89મà«\87રણ:",
        "expand_templates_output": "પરિણામ:",
        "expand_templates_xml_output": "XML આઉટપુટ",
        "expand_templates_ok": "મંજૂર",
index 8b71a64..3abdeea 100644 (file)
        "yourdiff": "הבדלים",
        "copyrightwarning": "'''שימו לב:''' תרומתכם ל{{grammar:תחילית|{{SITENAME}}}} תפורסם תחת תנאי הרישיון $2 (ראו $1 לפרטים נוספים). אם אינכם רוצים שעבודתכם תהיה זמינה לעריכה על־ידי אחרים, שתופץ לעיני כול, ושאחרים יוכלו להעתיק ממנה בציון המקור – אל תפרסמו אותה פה. כמו־כן, אתם מבטיחים לנו כי כתבתם את הטקסט הזה בעצמכם, או העתקתם אותו ממקור שאינו מוגן בזכויות יוצרים. '''אל תעשו שימוש בחומר המוגן בזכויות יוצרים ללא רשות!'''",
        "copyrightwarning2": "'''שימו לב:''' תורמים אחרים עשויים לערוך או אף להסיר את תרומתכם ל{{grammar:תחילית|{{SITENAME}}}}. אם אינכם רוצים שעבודתכם תהיה זמינה לעריכה על־ידי אחרים, אל תפרסמו אותה פה. כמו־כן, אתם מבטיחים לנו כי כתבתם את הטקסט הזה בעצמכם, או העתקתם אותו ממקור שאינו מוגן בזכויות יוצרים (ראו $1 לפרטים נוספים). '''אל תעשו שימוש בחומר המוגן בזכויות יוצרים ללא רשות!'''",
+       "editpage-cannot-use-custom-model": "לא ניתן לשנות את מודל התוכן של הדף הזה.",
        "longpageerror": "<strong>שגיאה: אורך הטקסט ששלחת הוא {{PLURAL:$1|קילובייט אחד|$1 קילובייטים}}, והוא ארוך יותר מהאורך המרבי של {{PLURAL:$2|קילובייט אחד|$2 קילובייטים}}.</strong>\nלא ניתן לשמור אותו.",
        "readonlywarning": "'''אזהרה: בסיס הנתונים ננעל לצורך תחזוקה. בזמן זה לא ניתן לשמור את הטקסט הערוך.'''\nבאפשרותך להעתיק ולהדביק את הטקסט לתוך קובץ טקסט ולשמור אותו למאוחר יותר.\n\nמפעיל המערכת שנעל את בסיס הנתונים סיפק את ההסבר הבא: $1",
        "protectedpagewarning": "'''אזהרה: דף זה מוגן כך שרק מפעילי מערכת יכולים לערוך אותו.'''\nפעולת היומן האחרונה מוצגת להלן:",
        "nmembers": "{{PLURAL:$1|דף אחד|$1 דפים}}",
        "nmemberschanged": "$1 ← {{PLURAL:$2|חבר אחד|$2 חברים}}",
        "nrevisions": "{{PLURAL:$1|גרסה אחת|$1 גרסאות}}",
-       "nviews": "{{PLURAL:$1|צפייה אחת|$1 צפיות}}",
        "nimagelinks": "בשימוש {{PLURAL:$1|בדף אחד|ב־$1 דפים}}",
        "ntransclusions": "בשימוש {{PLURAL:$1|בדף אחד|ב־$1 דפים}}",
        "specialpage-empty": "אין תוצאות.",
        "immobile-target-namespace-iw": "קישור בינוויקי אינו יעד תקין להעברת דף.",
        "immobile-source-page": "דף זה אינו ניתן להעברה.",
        "immobile-target-page": "לא ניתן להעביר אל כותרת יעד זו.",
-       "bad-target-model": "×\94×\99×¢×\93 ×\94×\9e×\91×\95קש ×\9eשת×\9eש ×\91ס×\95×\92 תוכן שונה. לא ניתן להמיר $1 ל{{grammar:תחילית|$2}}.",
+       "bad-target-model": "×\94×\99×¢×\93 ×\94×\9e×\91×\95קש ×\9eשת×\9eש ×\91×\9e×\95×\93×\9c תוכן שונה. לא ניתן להמיר $1 ל{{grammar:תחילית|$2}}.",
        "imagenocrossnamespace": "לא ניתן להעביר קובץ למרחב שם אחר",
        "nonfile-cannot-move-to-file": "לא ניתן להעביר דף שאינו קובץ למרחב קובץ",
        "imagetypemismatch": "סיומת הקובץ החדשה אינה מתאימה לסוג הקובץ",
index 41493fe..b3ee9c3 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|सदस्य}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|सदस्य}}",
        "nrevisions": "$1 {{PLURAL:$1|अवतरण}}",
-       "nviews": "{{PLURAL:$1|एक|$1}} बार देखा गया है",
        "nimagelinks": "$1 {{PLURAL:$1|पृष्ठ|पृष्ठों}} पर प्रयुक्त",
        "ntransclusions": "$1 {{PLURAL:$1|पृष्ठ|पृष्ठों}} पर प्रयुक्त",
        "specialpage-empty": "इस ब्यौरे के लिये कोई परिणाम नहीं हैं।",
index 503adb2..6e74325 100644 (file)
        "nlinks": "$1 {{PLURAL:$1|poveznica|poveznice|poveznica}}",
        "nmembers": "$1 {{PLURAL:$1|član|članova}}",
        "nrevisions": "$1 {{PLURAL:$1|inačica|inačice|inačica}}",
-       "nviews": "$1 {{PLURAL:$1|put pogledano|puta pogledano|puta pogledano}}",
        "nimagelinks": "Koristi se na $1 {{PLURAL:$1|stranici|stranice|stranica}}",
        "ntransclusions": "koristi se na $1 {{PLURAL:$1|stranici|stranice|stranica}}",
        "specialpage-empty": "Nema rezultata za traženi izvještaj.",
index c78975f..c31a97f 100644 (file)
        "youhavenewmessagesmanyusers": "Vannak $1 sok szerkesztőtől ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|új üzenet|999=új üzenetek}} a vitalapodon",
        "newmessagesdifflinkplural": "{{PLURAL:$1|változás|999=változás}}",
-       "youhavenewmessagesmulti": "Új üzenet vár a(z) $1 wikin",
+       "youhavenewmessagesmulti": "Új üzenetek várnak a(z) $1 wikin",
        "editsection": "szerkesztés",
        "editold": "szerkesztés",
        "viewsourceold": "lapforrás",
        "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.",
-       "mycustomcssprotected": "Nincs jogod szerkeszteni ezt a CSS lapot.",
-       "mycustomjsprotected": "Nincs jogod szerkeszteni ezt a Javascript lapot.",
+       "mycustomcssprotected": "Nincs jogod szerkeszteni ezt a CSS-lapot.",
+       "mycustomjsprotected": "Nincs jogod szerkeszteni ezt a JavaScript-lapot.",
        "myprivateinfoprotected": "Nincs jogod módosítani a privát adataidat.",
        "mypreferencesprotected": "Nincs jogod módosítani a beállításaidat.",
        "ns-specialprotected": "A speciális lapok nem szerkeszthetők.",
        "yourdiff": "Eltérések",
        "copyrightwarning": "Vedd figyelembe, hogy a {{SITENAME}} wikin végzett összes módosítás a(z) $2 alatt jelenik meg (lásd a(z) $1 lapot a részletekért). Ha nem akarod, hogy az írásodat módosítsák vagy továbbterjesszék, akkor ne küldd be.<br />\nAzt is megígéred, hogy ezt magadtól írtad, vagy egy közkincsből vagy más szabad forrásból másoltad.\n'''NE KÜLDJ BE JOGVÉDETT MUNKÁT ENGEDÉLY NÉLKÜL!'''",
        "copyrightwarning2": "Vedd figyelembe, hogy a {{SITENAME}} wikin végzett összes módosítást szerkeszthetik, módosíthatják vagy eltávolíthatják más szerkesztők.\nHa nem akarod, hogy az írásodat módosítsák, akkor ne küldd be.<br />\nAzt is megígéred, hogy ezt magadtól írtad, vagy egy közkincsből vagy más szabad forrásból másoltad (lásd a(z) $1 lapot a részletekért).\n'''NE KÜLDJ BE JOGVÉDETT MUNKÁT ENGEDÉLY NÉLKÜL!'''",
+       "editpage-cannot-use-custom-model": "Ennek a lapnak a tartalommodellje nem változtatható.",
        "longpageerror": "'''HIBA: Az általad beküldött szöveg {{PLURAL:$1|egy kilobájt|$1 kilobájt}} hosszú, ami több az engedélyezett {{PLURAL:$2|egy kilobájtnál|$2 kilobájtnál}}.\nA szerkesztést nem lehet elmenteni.'''",
        "readonlywarning": "FIGYELMEZTETÉS: A wiki adatbázisát karbantartás miatt zárolták, ezért most nem fogod tudni elmenteni a szerkesztéseidet!\nA lap szövegét másold egy szövegfájlba, amit később felhasználhatsz!'''\n\nAz adatbázist lezáró adminisztrátor az alábbi magyarázatot adta: $1",
        "protectedpagewarning": "'''Figyelem: Ez a lap le van védve, így csak adminisztrátori jogosultságokkal rendelkező szerkesztők módosíthatják.'''\nA legutolsó ide vonatkozó naplóbejegyzés alább látható:",
        "content-model-css": "CSS",
        "content-json-empty-object": "Üres objektum",
        "content-json-empty-array": "Üres tömb",
+       "duplicate-args-warning": "<strong>Figyelmeztetés:</strong> A(z) [[:$1]] lap dupla értékkel hívja meg a(z) [[:$2]] sablont („$3” paraméter). Csak az utolsó érték lesz felhasználva.",
        "duplicate-args-category": "Dupla paramétermegadást tartalmazó lapok",
        "duplicate-args-category-desc": "Az oldal olyan sablon hívásokat tartalmaz, amely ugyanazt a paramétert használja, például <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Figyelem: ezen a lapon túl sok erőforrásigényes elemzőfüggvény-hívás található.\n\nKevesebb, mint {{PLURAL:$2|egy|$2}} kellene, jelenleg {{PLURAL:$1|egy|$1}} van.",
        "post-expand-template-argument-warning": "Figyelem: Ez a lap legalább egy olyan sablonparamétert tartalmaz, amely kibontva túl nagy, így el lett(ek) hagyva.",
        "post-expand-template-argument-category": "Elhagyott sablonparaméterekkel rendelkező lapok",
        "parser-template-loop-warning": "Végtelen ciklus a következő sablonban: [[$1]]",
-       "parser-template-recursion-depth-warning": "A sablon rekurzív beillesztésének mélysége átlépte a határérékét ($1)",
+       "parser-template-recursion-depth-warning": "A sablon rekurzív beillesztésének mélysége átlépte a határértéket ($1)",
        "language-converter-depth-warning": "A nyelvátalakító rekurzióinak száma túllépve ($1)",
        "node-count-exceeded-category": "Túl sok csomópontot tartalmazó lapok",
        "node-count-exceeded-category-desc": "A lap túllépi a maximális csomópontszámot.",
        "badsig": "Érvénytelen aláírás; ellenőrizd a HTML-formázást.",
        "badsiglength": "Az aláírásod túl hosszú.\n{{PLURAL:$1|Egy|$1}} karakternél rövidebbnek kell lennie.",
        "yourgender": "Biológiai nem:",
-       "gender-unknown": "Inkább nem adom meg",
+       "gender-unknown": "Amikor rólad van szó, a szoftver semleges szavakat fog használni, ha lehetséges",
        "gender-male": "Férfi",
        "gender-female": "Nő",
        "prefs-help-gender": "Nem kötelező: a szoftver használja a nemtől függő üzenetek megjelenítéséhez. Az információ mindenki számára látható.",
        "userrights-lookup-user": "Szerkesztőcsoportok beállítása",
        "userrights-user-editname": "Add meg a szerkesztő nevét:",
        "editusergroup": "Szerkesztőcsoportok módosítása",
-       "editinguser": "'''[[User:$1|$1]]''' szerkesztő jogainak megváltoztatása $2",
+       "editinguser": "<strong>[[User:$1|$1]]</strong> felhasználó jogainak megváltoztatása $2",
        "userrights-editusergroup": "Szerkesztőcsoportok módosítása",
        "saveusergroups": "Szerkesztőcsoportok mentése",
        "userrights-groupsmember": "Csoporttag:",
        "backend-fail-notsame": "Egy nem azonos fájl már létezik $1 néven.",
        "backend-fail-invalidpath": "$1 nem érvényes tárolási útvonal.",
        "backend-fail-delete": "Nem sikerült törölni ezt a fájlt: $1 .",
-       "backend-fail-describe": "Nem lehet megváltoztatna a \"$1\" fájl metaadatát.",
+       "backend-fail-describe": "Nem lehet megváltoztatni a(z) „$1” fájl metaadatait.",
        "backend-fail-alreadyexists": "Ez a fájl már létezik: $1 .",
        "backend-fail-store": "Nem sikerült a(z) $1 fájl tárolása $2 helyen.",
        "backend-fail-copy": "Nem sikerült a(z) $1 fájl másolása $2 helyre.",
        "nmembers": "{{PLURAL:$1|egy|$1}} elem",
        "nmemberschanged": "$1 → $2 tag",
        "nrevisions": "{{PLURAL:$1|egy|$1}} változat",
-       "nviews": "{{PLURAL:$1|egy|$1}} megtekintés",
        "nimagelinks": "{{PLURAL:$1|Egy|$1}} lapon van használva",
        "ntransclusions": "{{PLURAL:$1|egy|$1}} lapon van használva",
        "specialpage-empty": "Ez az oldal üres.",
        "unusedimages": "Nem használt fájlok",
        "wantedcategories": "Keresett kategóriák",
        "wantedpages": "Keresett lapok",
-       "wantedpages-summary": "Legtöbb hivatkozással rendelkező nem létező oldalak, nem számolva az átirányításokat. Azon nem létező oldalak listája, amelyre a legtöbb átirányítás mutat itt található: [[{{#special:BrokenRedirects}}]]",
+       "wantedpages-summary": "Legtöbb hivatkozással rendelkező nem létező oldalak, nem számolva az átirányításokat. Azon nem létező oldalak, amelyekre a legtöbb átirányítás mutat, a [[{{#special:BrokenRedirects}}|hibás átirányítások listáján]] szerepelnek.",
        "wantedpages-badtitle": "Érvénytelen cím található az eredményhalmazban: $1",
        "wantedfiles": "Keresett fájlok",
        "wantedfiletext-cat": "A következő fájlok használatban vannak, de nem léteznek. Külső tárhelyről származó fájlok akkor is a listára kerülhetnek, ha léteznek. Az ilyen hamis riasztások <del>áthúzva</del> jelennek meg. Ezen felül az olyan beágyazott fájlok, amelyek nem léteznek a  [[:$1]] kategóriában jelennek meg.",
        "watcherrortext": "Hiba történt a(z) „$1” lapra vonatkozó figyelőlista-beállítások módosítása közben.",
        "enotif_reset": "Az összes lap megjelölése felkeresettként",
        "enotif_impersonal_salutation": "{{SITENAME}} felhasználó",
-       "enotif_subject_deleted": "$2 törölte a $1 {{SITENAME}} oldalt.",
+       "enotif_subject_deleted": "$2 törölte a(z) $1 {{SITENAME}}-oldalt",
        "enotif_subject_created": "$2 létrehozta a(z) $1 {{SITENAME}} oldalt",
        "enotif_subject_moved": "$2 átmozgatta a $1 {{SITENAME}} oldalt.",
        "enotif_subject_restored": "$2 visszaállította a $1 {{SITENAME}} oldalt.",
index a371b2e..fb03d47 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|isi}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|anggota|anggota}}",
        "nrevisions": "$1 {{PLURAL:$1|revisi|revisi}}",
-       "nviews": "dilihat $1 {{PLURAL:$1|kali|kali}}",
        "nimagelinks": "Digunakan pada $1 {{PLURAL:$1|halaman|halaman}}",
        "ntransclusions": "digunakan pada $1 {{PLURAL:$1|halaman|halaman}}",
        "specialpage-empty": "Tak ada yang perlu dilaporkan.",
index 77b3fd3..d15f6e7 100644 (file)
        "nmembers": "$1 a {{PLURAL:$1|kameng|kamkameng}}",
        "nmemberschanged": "$1 → $2 a {{PLURAL:$2|kameng|kamkameng}}",
        "nrevisions": "$1 {{PLURAL:$1|a rebison|kadagiti rebision}}",
-       "nviews": "$1 {{PLURAL:$1|a panangkita|kadagiti panangkita}}",
        "nimagelinks": "Inusar iti $1 a {{PLURAL:$1|panid|pampanid}}",
        "ntransclusions": "inusar iti $1 a {{PLURAL:$1|panid|pampanid}}",
        "specialpage-empty": "Awan dagiti nagbanagan daytoy a reporta.",
index a6b8a8f..12e502c 100644 (file)
@@ -19,7 +19,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Macofe",
-                       "Sveinn í Felli"
+                       "Sveinn í Felli",
+                       "Jonbg"
                ]
        },
        "tog-underline": "Undirstrika tengla:",
        "disclaimers": "Fyrirvarar",
        "disclaimerpage": "Project:Almennur fyrirvari",
        "edithelp": "Breytingarhjálp",
+       "helppage-top-gethelp": "Hjálp",
        "mainpage": "Forsíða",
        "mainpage-description": "Forsíða",
        "policy-url": "Project:Samþykktir",
        "right-move": "Færa síður",
        "right-move-subpages": "Færa síður með undirsíðum þeirra",
        "right-move-rootuserpages": "Færa notandasíður",
+       "right-move-categorypages": "Færa flokkasíður",
        "right-movefile": "Færa skrár",
        "right-suppressredirect": "Ekki búa til tilvísun frá gamla nafninu þegar síða er færð",
        "right-upload": "Hlaða inn skrám",
        "action-createpage": "skapa síður",
        "action-createtalk": "skapa spjallsíður",
        "action-createaccount": "skapa þennan notandaaðgang",
+       "action-history": "skoða breytingaskrá þessarar síðu",
        "action-minoredit": "merkja þessa breytingu sem minniháttar",
        "action-move": "færa þessa síðu",
        "action-move-subpages": "færa þessa síðu, og undirsíður hennar",
        "action-move-rootuserpages": "Færa notandasíður",
+       "action-move-categorypages": "færa flokkasíður",
        "action-movefile": "færa þessa skrá",
        "action-upload": "hlaða inn þessari skrá",
        "action-reupload": "yfirrita þessa skrá",
        "nlinks": "$1 {{PLURAL:$1|tengill|tenglar}}",
        "nmembers": "$1 {{PLURAL:$1|meðlimur|meðlimir}}",
        "nrevisions": "$1 {{PLURAL:$1|breyting|breytingar}}",
-       "nviews": "$1 {{PLURAL:$1|fletting|flettingar}}",
        "nimagelinks": "Ítengd á $1 {{PLURAL:$1|síðu|síðum}}",
        "ntransclusions": "Ítengd á $1 {{PLURAL:$1|síðu|síðum}}",
        "specialpage-empty": "Þessi síða er tóm.",
        "allmessages-prefix": "Sía með forskeyti:",
        "allmessages-language": "Tungumál:",
        "allmessages-filter-submit": "Áfram",
+       "allmessages-filter-translate": "Þýða",
        "thumbnail-more": "Stækka",
        "filemissing": "Skrá vantar",
        "thumbnail_error": "Villa við gerð smámyndar: $1",
        "exif-devicesettingdescription": "Lýsing stillinga tækisins",
        "exif-subjectdistancerange": "Svið lengdar á viðfangsefni",
        "exif-imageuniqueid": "Einstakt einkenni myndar",
-       "exif-gpsversionid": "GPS tag útgáfa",
+       "exif-gpsversionid": "Útgáfa GPS-taggs",
        "exif-gpslatituderef": "Norður- eða suður breiddargráða",
        "exif-gpslatitude": "Breiddargráða",
        "exif-gpslongituderef": "Austur- eða vestur lengdargráða",
        "version-antispam": "Amapósts sía",
        "version-other": "Aðrar",
        "version-mediahandlers": "Rekill margmiðlunarskráa",
-       "version-parser-extensiontags": "Þáttuð smáforrita tög",
+       "version-parser-extensiontags": "Tögg í viðauka þáttagreiningar",
        "version-hook-subscribedby": "Í áskrift af",
        "version-version": "($1)",
        "version-license": "MediaWiki leyfi",
+       "version-ext-colheader-description": "Lýsing",
+       "version-license-title": "Leyfi fyrir $1",
        "version-poweredby-credits": "Þessi wiki er knúin af '''[https://www.mediawiki.org/ MediaWiki]''', höfundaréttur © 2001-$1 $2.",
        "version-poweredby-others": "aðrir",
        "version-license-info": "MediaWiki er frjáls hugbúnaður; þú mátt endurútgefa hann og/eða breyta honum undir GNU General Public leyfi eins og það er gefið út af Free Software stofnuninni, annaðhvort útgáfu 2 eða (að þínu mati) hvaða nýrri útgáfa sem er.\n\nMediaWiki er útgefin í þeirri von að hann sé gagnlegur, en ÁN ALLRAR ÁBYRGÐAR; þar meðtalið er undanskilin ábyrgð við MARKAÐSETNINGU og að hugbúnaðurinn VIRKI Í ÁKVEÐNUM TILGANGI. Sjá GNU General Public leyfið fyrir frekari upplýsingar.\n\nÞú ættir að hafa fengið [{{SERVER}}{{SCRIPTPATH}}/COPYING afrit af  GNU General Public leyfinu] með þessum hugbúnaði, en ef ekki, skrifaðu til Free Software stofnunarinnar, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, Bandaríkjunum eða [//www.gnu.org/licenses/old-licenses/gpl-2.0.html lestu það á netinu]",
        "version-software-product": "Vara",
        "version-software-version": "Útgáfa",
        "version-entrypoints-header-url": "vefslóð",
+       "version-libraries-version": "Útgáfa",
        "redirect-submit": "Áfram",
        "redirect-lookup": "Fletta upp:",
        "redirect-value": "Gildi:",
        "intentionallyblankpage": "Þessi síða er viljandi höfð tóm.",
        "external_image_whitelist": "#Ekki breyta þessari línu<pre>\n#Settu brot úr reglulegum segðum (bara þann hluta sem er á milli //) hér fyrir neðan\n#Þær verða bornar saman við vefslóðir ytri mynda\n#Þær sem passa saman verða sýndar sem myndir, en hinar eingöngu sem tengill á myndina\n#Línur sem byrja á # verða sýndar sem athugasemdir\n#Þetta er hástafafrjálst\n\n#Settu allar reglulegar segðir fyrir ofan þessa línu. Ekki breyta þessari línu.</pre>",
        "tags": "Breyta virkum tögum",
-       "tag-filter": "[[Special:Tags|Tag]] sía:",
+       "tag-filter": "[[Special:Tags|Tagg]]sía:",
        "tag-filter-submit": "Sía",
-       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tög}}]]: $2)",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tagg|Tögg}}]]: $2)",
        "tags-title": "Tög",
-       "tags-intro": "Ã\81 Ã¾essari síðu er listi yfir Ã¾au tög sem hugbúnaðurinn gæti merkt breytingar með og merkingu þeirra.",
-       "tags-tag": "Nafn tags",
+       "tags-intro": "Ã\9eessi síða sýnir tögg, sem hugbúnaðurinn gæti merkt breytingar með, og merkingu þeirra.",
+       "tags-tag": "Heiti taggs",
        "tags-display-header": "Útlit í breytingarskrá",
        "tags-description-header": "Tæmandi merkingarlýsing",
        "tags-active-header": "Virkt?",
        "tags-active-yes": "Já",
        "tags-active-no": "Nei",
        "tags-edit": "breyta",
+       "tags-delete": "eyða",
+       "tags-activate": "virkja",
+       "tags-deactivate": "óvirkja",
        "tags-hitcount": "$1 {{PLURAL:$1|breyting|breytingar}}",
+       "tags-manage-no-permission": "Þú hefur ekki leyfi til að stjórna breytingartöggum.",
+       "tags-create-heading": "Stofna nýtt tagg",
+       "tags-create-submit": "Stofna",
+       "tags-create-no-name": "Þú verður að gefa upp heiti taggsins.",
+       "tags-create-invalid-title-chars": "Taggheiti mega ekki að innihalda stafi sem ekki má nota í síðutitlum.",
+       "tags-create-already-exists": "Taggið \"$1\" er nú þegar til.",
+       "tags-delete-title": "Eyða taggi",
+       "tags-delete-reason": "Ástæða:",
+       "tags-delete-not-found": "Tagið \"$1\" er ekki til.",
+       "tags-activate-title": "Virkja tagg",
+       "tags-activate-reason": "Ástæða:",
+       "tags-activate-not-found": "Tagið \"$1\" er ekki til.",
+       "tags-activate-submit": "Virkja",
+       "tags-deactivate-title": "Óvirkja tagg",
+       "tags-deactivate-reason": "Ástæða:",
+       "tags-deactivate-submit": "Óvirkja",
+       "tags-edit-title": "Breyta töggum",
+       "tags-edit-manage-link": "Stjórna töggum",
        "comparepages": "Bera saman síður",
        "compare-page1": "Síða 1",
        "compare-page2": "Síða 2",
        "feedback-bugornote": "Ef þú ert reiðubúinn að lýsa tæknilegri villu í smáatriðum, vinsamlegast [$1 tilkynntu villu].\nEf ekki, þá getur þú notað einfalt eyðublað hér fyrir neðan. Athugasemdin þín verður bætt við síðuna \"[$3 $2]\" ásamt notendanafni og nafni vafrarans sem þú ert að nota.",
        "feedback-cancel": "Hætta við",
        "feedback-close": "Búið",
+       "feedback-error-title": "Villa",
        "feedback-error1": "Villa: Óþekkt útkoma frá API",
        "feedback-error2": "Villa: Breytingin mistókst",
        "feedback-error3": "Villa: Ekkert svar frá API",
        "feedback-subject": "Fyrirsögn:",
        "feedback-submit": "Senda",
        "feedback-thanks": "Takk! Ábendingu þinni hefur verið bætt við á síðuna \"[$2 $1]\".",
+       "feedback-thanks-title": "Takk!",
        "searchsuggest-search": "Leita",
        "searchsuggest-containing": "sem innihalda ...",
        "api-error-badaccess-groups": "Þú hefur ekki leyfi til að hlaða inn skrám.",
        "expand_templates_ok": "Í lagi",
        "expand_templates_remove_comments": "Fjarlægja athugasemdir",
        "expand_templates_preview": "Forskoða",
+       "pagelang-language": "Tungumál",
        "mediastatistics": "Margmiðlunar tölfræði",
        "mediastatistics-summary": "Tölfræði um upphaldar skráar gerðir. Hún inniheldur eingöngu nýjustu útgáfu skráarinnar. Gamlar eða eyddar skrár eru ekki teknar með.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 bæti}} ($2; $3%)",
index d12ede8..7668098 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|elemento|elementi}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|elemento|elementi}}",
        "nrevisions": "$1 {{PLURAL:$1|versione|versioni}}",
-       "nviews": "$1 {{PLURAL:$1|visita|visite}}",
        "nimagelinks": "Utilizzato su $1 {{PLURAL:$1|pagina|pagine}}",
        "ntransclusions": "usato in $1 {{PLURAL:$1|pagina|pagine}}",
        "specialpage-empty": "Questa pagina speciale è attualmente vuota.",
index 0031ac2..b6d4dba 100644 (file)
        "content-model-css": "CSS",
        "content-json-empty-object": "空のオブジェクト",
        "content-json-empty-array": "空の配列",
+       "duplicate-args-warning": "<strong>警告:</strong> [[:$1]]は「$3」パラメータの値が複数存在する[[:$2]]を呼び出しています。提供されている最後の値のみが使用されます。",
        "duplicate-args-category": "テンプレート呼び出しで引数が重複しているページ",
        "duplicate-args-category-desc": "引数が重複したテンプレート呼び出しを含むページ。例: <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code>、<code><nowiki>{{foo|bar|1=baz}}</nowiki></code>",
        "expensive-parserfunction-warning": "<strong>警告:</strong> このページでは、高負荷なパーサー関数の呼び出し回数が多過ぎます。\n\n{{PLURAL:$2|呼び出しを $2 回}}未満にしてください ({{PLURAL:$1|現在は $1 回}})。",
        "uploaddisabledtext": "ファイルのアップロードは、無効になっています。",
        "php-uploaddisabledtext": "ファイルのアップロードがPHPで無効化されています。\nfile_uploadsの設定を確認してください。",
        "uploadscripted": "このファイルは、ウェブブラウザーが誤って解釈してしまうおそれがあるHTMLまたはスクリプトコードを含んでいます。",
+       "uploaded-script-svg": "アップロードされたSVGファイルにスクリプト可能な要素「$1」が見つかりました。",
+       "uploaded-hostile-svg": "アップロードされたSVGファイルのスタイル要素に安全ではないCSSが見つかりました。",
        "uploadscriptednamespace": "この SVG ファイルは無効な名前空間「$1」を含んでいます。",
        "uploadinvalidxml": "アップロードされたファイルに含まれる XML が構文解析できませんでした。",
        "uploadvirus": "このファイルはウイルスを含んでいます!\n詳細: $1",
        "nmembers": "$1項目",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|項目}}",
        "nrevisions": "$1版",
-       "nviews": "$1回の閲覧",
        "nimagelinks": "$1 {{PLURAL:$1|ページ}}で使用",
        "ntransclusions": "$1 {{PLURAL:$1|ページ}}で使用",
        "specialpage-empty": "該当するものはありません。",
        "movedarticleprotection": "が保護の設定を「[[$2]]」から「[[$1]]」へ移動しました",
        "protect-title": "「$1」の保護レベルを変更",
        "protect-title-notallowed": "「$1」の保護レベルを表示",
-       "prot_1movedto2": "[[$1]] を [[$2]] へ移動",
+       "prot_1movedto2": "[[$1]] を [[$2]] へ移動しました",
        "protect-badnamespace-title": "保護不可能な名前空間",
        "protect-badnamespace-text": "この名前空間のページは保護できません。",
        "protect-norestrictiontypes-text": "利用できる制限の種類がないため、このページは保護できません。",
        "import-interwiki-history": "このページのすべての版を複製する",
        "import-interwiki-templates": "すべてのテンプレートを含める",
        "import-interwiki-submit": "取り込み",
+       "import-mapping-default": "既定の場所へインポート",
+       "import-mapping-namespace": "名前空間へインポート:",
+       "import-mapping-subpage": "次のページの下位ページとしてインポート:",
        "import-upload-filename": "ファイル名:",
        "import-comment": "コメント:",
        "importtext": "元のウィキで[[Special:Export|書き出し機能]]を使用してファイルに書き出してください。\nそれをコンピューターに保存した後、こちらへアップロードしてください。",
        "tags-edit-existing-tags-none": "(なし)",
        "tags-edit-new-tags": "新しいタグ:",
        "tags-edit-remove-all-tags": "(すべてのタグを除去)",
+       "tags-edit-chosen-no-results": "一致するタグが見つかりません",
        "tags-edit-reason": "理由:",
+       "tags-edit-success": "変更が正常に適用されました。",
        "tags-edit-failure": "変更は適用できませんでした: $1",
        "tags-edit-nooldid-title": "無効な対象版",
+       "tags-edit-none-selected": "追加または削除するには、少なくとも1つ以上のタグを選択してください。",
        "comparepages": "ページの比較",
        "compare-page1": "ページ 1",
        "compare-page2": "ページ 2",
        "feedback-error1": "エラー: 認識できない結果を API が返しました",
        "feedback-error2": "エラー: 編集に失敗しました",
        "feedback-error3": "エラー: API からの応答がありません",
+       "feedback-error4": "エラー: 指定されたフィードバックに投稿することができません",
        "feedback-message": "メッセージ:",
        "feedback-subject": "件名:",
        "feedback-submit": "送信",
index 00ee265..98a43a2 100644 (file)
        "nmembers": "$1 წევრი",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|წევრი|წევრი}}",
        "nrevisions": "$1 რედაქტირება",
-       "nviews": "$1 ჩვენება",
        "nimagelinks": "გამოიყენება $1 {{PLURAL:$1|გვერდზე}}",
        "ntransclusions": "გამოიყენება $1 {{PLURAL:$1|გვერდზე}}",
        "specialpage-empty": "ეს გვერდი ცარიელია.",
index f41a574..a02df75 100644 (file)
        "nmembers": "$1{{PLURAL:$1|សមាជិក|សមាជិក}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|សមាជិក|សមាជិក}}",
        "nrevisions": "$1 {{PLURAL:$1|កំណែប្រែ}}",
-       "nviews": "$1 {{PLURAL:$1|ការចូលមើល}}",
        "nimagelinks": "ត្រូវបានប្រើនៅលើទំព័រចំនួន $1។",
        "ntransclusions": "ត្រូវបានប្រើនៅលើទំព័រចំនួន $1",
        "specialpage-empty": "គ្មានលទ្ធផលសម្រាប់របាយណ៍នេះទេ។",
index 5c753cc..3f5de68 100644 (file)
        "nmembers": "{{PLURAL:$1|문서}} $1개",
        "nmemberschanged": "$1 → $2{{PLURAL:$2|개}}",
        "nrevisions": "{{PLURAL:$1|판}} $1개",
-       "nviews": "$1번 {{PLURAL:$1|읽음}}",
        "nimagelinks": "{{PLURAL:$1|문서}} $1개에서 사용됨",
        "ntransclusions": "{{PLURAL:$1|문서}} $1개에서 사용됨",
        "specialpage-empty": "명령에 대한 결과가 없습니다.",
index 0285261..a94723e 100644 (file)
        "nmembers": "met {{PLURAL:$1|ein Sigg|$1 Sigge}} dren",
        "nmemberschanged": "met&nbsp;$1&nbsp;→&nbsp;{{PLURAL:$2|eine Sigg|$2&nbsp;Sigge|keine Sigg}}",
        "nrevisions": "{{PLURAL:$1|Ein Änderong|$1 Änderonge|Keij Änderong}}",
-       "nviews": "{{PLURAL:$1|Eine Avrof|$1 Avrofe|Keine Avrof}}",
        "nimagelinks": "Weed op {{PLURAL:$1|eine Sigg|$1 Sigge|keine Sigg}} jebruch",
        "ntransclusions": "weed op {{PLURAL:$1|eine Sigg|$1 Sigge|keine Sigg}} jebruch",
        "specialpage-empty": "Heh en dä Leß es nix dren.",
index 8270157..0867b83 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|endam|endam}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|endam}}",
        "nrevisions": "$1 {{PLURAL:$1|guherandin|guherandin}}",
-       "nviews": "$1 {{PLURAL:$1|dîtin|dîtin}}",
        "lonelypages": "Rûpelên sêwî",
        "uncategorizedpages": "Rûpelên bêkategorî",
        "uncategorizedcategories": "Kategoriyên bê kategorî",
index d9e7d9f..aac336c 100644 (file)
        "nlinks": "$1 {{PLURAL:$1|nexus|nexus}}",
        "nmembers": "$1 {{PLURAL:$1|inest|insunt}}",
        "nrevisions": "$1 {{PLURAL:$1|emendatio|emendationes}}",
-       "nviews": "$1 {{PLURAL:$1|visa|visae}}",
        "lonelypages": "Paginae non annexae",
        "uncategorizedpages": "Paginae sine categoriis",
        "uncategorizedcategories": "Categoriae sine categoriis",
        "watchlisttools-view": "Mutationes paginarum observatarum inspicere",
        "watchlisttools-edit": "Indicem paginarum observatarum inspicere vel recensere",
        "watchlisttools-raw": "Indicem paginarum observatarum quasi textum recensere",
+       "hebrew-calendar-m1": "Tisri",
+       "hebrew-calendar-m2": "Hesuan",
+       "hebrew-calendar-m3": "Casleu",
        "hebrew-calendar-m4": "Tebeth",
+       "hebrew-calendar-m5": "Sabat",
        "hebrew-calendar-m8": "Iar",
+       "hebrew-calendar-m10": "Thammuz",
        "hebrew-calendar-m11": "Ab",
+       "hebrew-calendar-m1-gen": "Tisri",
+       "hebrew-calendar-m2-gen": "Hesuan",
+       "hebrew-calendar-m3-gen": "Casleu",
        "hebrew-calendar-m4-gen": "Tebeth",
+       "hebrew-calendar-m5-gen": "Sabat",
        "hebrew-calendar-m8-gen": "Iar",
+       "hebrew-calendar-m10-gen": "Thammuz",
        "hebrew-calendar-m11-gen": "Ab",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|disputatio]])",
        "version": "Versio",
index 15210db..9011be4 100644 (file)
@@ -10,7 +10,8 @@
                        "Taichi",
                        "Universal Life",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "StevenJ81"
                ]
        },
        "tog-underline": "Suliñar los atamientos:",
        "watchlisttools-view": "Ver los trocamientos",
        "watchlisttools-edit": "Ver i trocar tu lista de escogidas",
        "watchlisttools-raw": "Troca tu lista de escogidas en crudo",
+       "hebrew-calendar-m1": "Tishre",
+       "hebrew-calendar-m2": "Heshvan",
+       "hebrew-calendar-m1-gen": "Tishre",
+       "hebrew-calendar-m2-gen": "Heshvan",
        "duplicate-defaultsort": "'''Aviso:''' la klave primaria para ordenamiento \"$2\" anula la primera \"$1\"",
        "version": "Versión",
        "version-specialpages": "Pajinas espesiales",
index 8608546..1b24490 100644 (file)
        "yourdiff": "Ënnerscheeder",
        "copyrightwarning": "W.e.g. notéiert datt all Kontributiounen op {{SITENAME}} automatesch ënner der $2 (kuckt $1 fir méi Informatiounen) verëffentlecht sinn.\nWann Dir net wëllt datt är Texter vun anere Mataarbechter verännert, geläscht a weiderverdeelt kënne ginn, da setzt näischt heihinner.<br />\nDir verspriecht ausserdeem datt Dir dësen Text selwer verfaasst hutt, oder aus dem Domaine public oder ähnleche Ressource kopéiert hutt.\n'''DROT KEE COPYRECHTLECH GESCHÜTZTE CONTENU OUNI ERLAABNES AN!'''",
        "copyrightwarning2": "W.e.g. notéiert datt all Kontributiounen op {{SITENAME}} vun anere Benotzer verännert oder geläscht kënne ginn. Wann Dir dat net wëllt, da setzt näischt heihinner.<br />\nDir verspriecht ausserdeem datt Dir dësen Text selwer verfaasst hutt, oder aus dem Domaine public oder anere fräie Quelle kopéiert hutt. (cf. $1 fir méi Detailer). '''DROT KEE COPYRECHTLECH GESCHÜTZTE CONTENU AN!'''",
+       "editpage-cannot-use-custom-model": "De Modell vum Inhalt vun dëser Säit kann net geännert ginn.",
        "longpageerror": "'''FEELER: Den Text, den Dir Versicht ze späicheren, huet {{PLURAL:$1|1 Kilobyte|$1 Kilobytes}}. Dëst ass méi wéi den erlaabte Maximum vun  {{PLURAL:$2|1 Kilobyte|$2 Kilobytes}}''' Dofir kann den Text net gespäichert ginn.",
        "readonlywarning": "'''OPGEPASST: D'Datebank gouf wéinst Maintenanceaarbechte gespaart, dofir kënnt Dir Är Ännerungen den Ament net ofspäicheren.'''\nDir kënnt den Text kopéieren an an een Textfichier drasetzen an deen ofspäicheren fir méi spéit.\n\nDen Administrateur den d'Datebank gespaart huet, huet dës Erklärung ginn: $1",
        "protectedpagewarning": "'''OPGEPASST: Dës Säit gouf gespaart a kann nëmme vun engem Administrateur geännert ginn.''' Déi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.",
        "nmembers": "$1 {{PLURAL:$1|Member|Memberen}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|Member|Memberen}}",
        "nrevisions": "$1 {{PLURAL:$1|Versioun|Versiounen}}",
-       "nviews": "$1 {{PLURAL:$1|Offro|Offroen}}",
        "nimagelinks": "Benotzt op {{PLURAL:$1|enger Säit|$1 Säiten}}",
        "ntransclusions": "benotzt op {{PLURAL:$1|enger Säit|$1 Säiten}}",
        "specialpage-empty": "Dës Säit ass eidel.",
index bebdd92..af04196 100644 (file)
@@ -8,15 +8,15 @@
                        "Mjbmr"
                ]
        },
-       "tog-underline": "هوم پیوند زیرخط دار:",
-       "tog-hideminor": "قام كردن ويرايشتيا كؤچك مئن آلشتيا تازه",
-       "tog-hidepatrolled": "قام كردن ويرايشتيا تیه دیار کرده مئن آلشتيا تازه",
-       "tog-newpageshidepatrolled": "بلگیا تیه دیار کرده نه مئن نوم گه بلگیا تازه قام کو",
-       "tog-extendwatchlist": "سیل برگه نه سی نشو دئن تمام آلشتیا واکو نه فقط سی بیشتر تازه باوا.",
-       "tog-usenewrc": "دسÙ\87 Ø¨Ù\86Û\8c Ø¢Ù\84شتÛ\8cا Ù\88ا Ø¨Ù\84Ú¯Ù\87 Ø¯ Ø¢Ù\84شتÛ\8cا ØªØ§Ø²Ù\87 Ù\88 Ø³Û\8cÙ\84 Ø¨رگ",
-       "tog-numberheadings": "سربÙ\84Ú¯Ù\87 Ø®Ù\88د Ø´Ù\85ارÙ\87 Ú¯Ø±",
-       "tog-showtoolbar": "نوار اوزار ويرايشت نشون بيه",
-       "tog-editondblclick": "بلگيا نه وا دوبار پورنين ويرايشت بكيد",
+       "tog-underline": "هوم پئیڤأند زیرخأط دار:",
+       "tog-hideminor": "قام کئردئن ڤیرایشتیا کوچئک مین آلئشتیا تازە",
+       "tog-hidepatrolled": "قام کئردئن ڤیرایشتیا تیە دیار کئردە مین آلئشتیا تازە",
+       "tog-newpageshidepatrolled": "بألگە یا تیە دیار کئردە نە مئن نومگە بألگە یا تازە قام کو",
+       "tog-extendwatchlist": "سئیل بأرگە نە سی نئشوٙ دأئن تأموٙم آلئشتیا ڤا کو نە فأقأط سی بیشتئر تازە باڤیا.",
+       "tog-usenewrc": "دأسÛ\95 Ø¨Ø£Ù\86Û\8c Ø¢Ù\84ئشتÛ\8cا Ú¤Ø§ Ø¨Ø£Ù\84Ú¯Û\95 Ø¯ Ø¢Ù\84ئشتÛ\8cا ØªØ§Ø²Û\95 Ù\88 Ø³Ø¦Û\8cÙ\84 Ø¨Ø£رگ",
+       "tog-numberheadings": "سأربأÙ\84Ú¯Û\95 Ø®Ù\88د Ø´Ù\85ارئشت Ú©Ù\88",
+       "tog-showtoolbar": "نأڤار أڤزار ڤیرایئشت نە نئشو بیە",
+       "tog-editondblclick": "بألگە یا نە ڤا د نۊ پوٙرنیئن ڤیرایئشت بأکیت",
        "tog-editsectiononrightclick": "بهرجا ویرایشت نه وا راس پورنین د بهرجا داسونیا کنشتگر کو",
        "tog-watchcreations": "بلگیایی که مه راس کمه و جانیایایی که مه سوار کمه اضاف کو د سیل برگه مه",
        "tog-watchdefault": "بلگیا و جانیایی که مه ویرایشت کمه اضاف کو د سیل برگم",
        "sat": "شمه",
        "january": "جانڤیە",
        "february": "فئڤریە",
-       "march": "Ù\85ارش",
-       "april": "آبريل",
-       "may_long": "Ù\85ا",
-       "june": "جوئن",
-       "july": "جولای",
-       "august": "اگوست",
-       "september": "سپتامر",
-       "october": "اÙ\83تور",
-       "november": "نوامر",
-       "december": "دسامر",
+       "march": "Ù\85ارس",
+       "april": "آڤریل",
+       "may_long": "Ù\85ئÛ\8c",
+       "june": "جوٙأن",
+       "july": "جÙ\88Ù\99Ù\84اÛ\8c",
+       "august": "Ø¢گوست",
+       "september": "سئپتامر",
+       "october": "ئÙ\88Ú©تور",
+       "november": "نوڤامر",
+       "december": "دئساÙ\85ر",
        "january-gen": "جانويه",
        "february-gen": "فوريه",
        "march-gen": "مارش",
        "october-gen": "اكتور",
        "november-gen": "نوامر",
        "december-gen": "دسامر",
-       "jan": "جانویه",
+       "jan": "جانڤیە",
        "feb": "فئڤریە",
-       "mar": "Ù\85ارش",
-       "apr": "آبريل",
-       "may": "Ù\85ا",
-       "jun": "جوئن",
-       "jul": "جÙ\88Ù\84ا",
-       "aug": "اÙ\88گوست",
-       "sep": "سپتامر",
-       "oct": "اÙ\83تÙ\88ر",
-       "nov": "نوامر",
-       "dec": "دسامر",
+       "mar": "Ù\85ارس",
+       "apr": "آڤریل",
+       "may": "Ù\85ئÛ\8c",
+       "jun": "جوٙأن",
+       "jul": "جÙ\88Ù\99Ù\84اÛ\8c",
+       "aug": "Ø¢گوست",
+       "sep": "سئپتامر",
+       "oct": "ئÙ\88کتÙ\88Ú¤ر",
+       "nov": "نوڤامر",
+       "dec": "دئساÙ\85ر",
        "january-date": "جانويه $1",
        "february-date": "فوريه  $1",
        "march-date": "مارس  $1",
        "tagline": "د {{SITENAME}}",
        "help": "هومياری",
        "search": "پئی جوٙری",
-       "searchbutton": "پی جوری",
+       "searchbutton": "پئی جوٙری",
        "go": "رو",
        "searcharticle": "رو",
        "history": "ويرگار بلگه",
        "currentevents": "پيشومدل تازه باو",
        "currentevents-url": "پروجه:پيشومدل تازه باو",
        "disclaimers": "تیە پوٙشکاریا",
-       "disclaimerpage": "پروجه:منكر بيئن کلی",
+       "disclaimerpage": "پوروجە: تیە پوٙشی کئردئن هأمە گئر",
        "edithelp": "هومياری سی ويرايشت",
        "helppage-top-gethelp": "هومياری",
        "mainpage": "سأرآسوٙنە",
        "portal": "درآسونه کومله یکی",
        "portal-url": "پروجه:سرآسونه کومله یکی",
        "privacy": "پوٙلتیک رازینە داری",
-       "privacypage": "پروجه: خط مشی رازینه کاری کردن",
+       "privacypage": "پوروجە: رأگڤاری رازینە کاری کئردئن",
        "badaccess": "خطا :صلاداری کو",
        "badaccess-group0": "شما صلا انجوم کاری که حاستیت نارین",
        "badaccess-groups": "ای کاری که شما هاستیته سی کاریاریا د  {{PLURAL:$2|گرو|یکی د گرویا}}: $1 کم بیه",
        "pagetitle": "$1 - {{SITENAME}}",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "backlinksubtitle": "← $1",
-       "retrievedfrom": "د نو زنه بیه د\"$1\"",
+       "retrievedfrom": "د نۊ زئنە بیە د\"$1\"",
        "youhavenewmessages": "شما داريت $1($2)",
        "youhavenewmessagesfromusers": "{{PLURAL:$4|شما }} $1 د {{PLURAL:$3|کاریار هنی|$3 کاریاریا}}داریتو($2).",
        "youhavenewmessagesmanyusers": "شما $1 د  فره کاریار داريت ($2).",
        "feed-invalid": "نوع مشترک بین هوال حون نامعتور",
        "feed-unavailable": "هوال حونیا د دسرس نئین",
        "site-rss-feed": "هوال حون RSS سی $1",
-       "site-atom-feed": "هوال حون Atom سی $1",
+       "site-atom-feed": "هأڤال حوٙن Atom سی $1",
        "page-rss-feed": "هوال حون RSS سی «$1»",
        "page-atom-feed": "هوال حون Atom سی $1",
        "feed-atom": "اتم",
        "nmembers": "$1 {{PLURAL:$1|اندوم|اندوميا}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|اندوم|اندومیا}}",
        "nrevisions": "$1 {{جمس:$1|وانئری|وانئریا}}",
-       "nviews": "$1 {{PLURAL:$1|دیئن|دیئنیا}}",
        "nimagelinks": "$1 {{PLURAL:$1|بلگه|بلگيا}} استفاده بیه",
        "ntransclusions": "$1 {{PLURAL:$1|بلگه|بلگيا}} استفاده بیه",
        "specialpage-empty": "نتیجه ای د ای گزارشت نئ.",
index c1aabec..a3cf5a1 100644 (file)
        "editfont-sansserif": "فونت بدون سریف",
        "editfont-serif": "فونت سریف",
        "sunday": "یه شمه",
-       "monday": "دوشمه",
+       "monday": "دۉشمه",
        "tuesday": "سه‌شمه",
        "wednesday": "چار شمه",
        "thursday": "پشمه",
-       "friday": "جومَ",
+       "friday": "جۉمَ",
        "saturday": "شَمه",
        "sun": "یه شمه",
        "mon": "دوشمه",
        "thu": "پشمه",
        "fri": "جومَ",
        "sat": "شمه",
-       "january": "اول قهاره",
-       "february": "لرشگون",
-       "march": "ئنهزنون",
-       "april": "نوروزماه",
-       "may_long": "گلبارماه",
-       "june": "جورش",
-       "july": "میوه رسون",
+       "january": "اۉل قهارھ",
+       "february": "لرشگۉن",
+       "march": "ئنهزنۉن",
+       "april": "نۉرۉزماھ",
+       "may_long": "گلبارماھ",
+       "june": "جۉرش",
+       "july": "میۉھ رسۉن",
        "august": "مه گرمه",
-       "september": "شنیارون",
-       "october": "مالبارکنون",
-       "november": "Ø¢Ù\88 Ø³Ø±Ø¯Ú©Ù\86Ù\88ن",
-       "december": "Ø¢Ù\88 Ø±Ø¬Ú©Ù\86Ù\88ن",
+       "september": "شنیارۉن",
+       "october": "مالبارکنۉن",
+       "november": "ئا Ø³Ø±Ø¯Ú©Ù\86Û\89ن",
+       "december": "ئا Ø±Ø¬Ú©Ù\86Û\89ن",
        "january-gen": "اول قهاره",
        "february-gen": "لرشگون",
        "march-gen": "ئنهزنون",
        "october-gen": "مالبارکنون",
        "november-gen": "آو سردکنون",
        "december-gen": "آو رجکنون",
-       "jan": "ژانویه",
-       "feb": "Ù\81Ù\88رÛ\8cÙ\87",
-       "mar": "مارس",
-       "apr": "آوریل",
-       "may": "گلبار ماه",
-       "jun": "جورش",
-       "jul": "میوه رسون",
-       "aug": "اوت",
-       "sep": "سپتاÙ\85بر",
-       "oct": "اکتبر",
-       "nov": "نوامبر",
-       "dec": "دساÙ\85بر",
+       "jan": "اۉل قھارھ",
+       "feb": "Ù\84رشگÛ\89Ù\86",
+       "mar": "ئنهزنۉن",
+       "apr": "نۉرۉزماھ",
+       "may": "گلبار ماھ",
+       "jun": "جۉرش",
+       "jul": "میۉھ رسۉن",
+       "aug": "مه گرمه",
+       "sep": "Ø´Ù\86Û\8cارÛ\89Ù\86",
+       "oct": "مالبارکنۉن",
+       "nov": "ئا سردکنۉن",
+       "dec": "ئا Ø±Ø¬Ú©Ù\86Û\89Ù\86",
        "january-date": "ژانویه $1",
        "february-date": "فوریه $1",
        "march-date": "مارس $1",
        "mytalk": "گپ",
        "anontalk": "سی ای آدرس آی پی گپ بزه",
        "navigation": "هدایت کردن",
-       "and": "&#32;و",
+       "and": "&#32;ۉ",
        "qbfind": "سیل کردن",
        "qbbrowse": "نوم بلگه",
        "qbedit": "اصلاح",
        "faqpage": "Project:اف آی کیو \" سوالل متداول \"",
        "actions": "عملیه یل",
        "namespaces": "همدرنگل",
-       "variants": "انواع",
-       "navigation-heading": "منو ناو وری",
+       "variants": "انۉاع",
+       "navigation-heading": "منۉ ناۉ ۉری",
        "errorpagetitle": "خطا",
        "returnto": "بازگشت وه $1.",
-       "tagline": "از {{Ù\86Ù\88Ù\85 Ø¬Ø§}}",
+       "tagline": "ز {{SITENAME}}",
        "help": "هومیاری",
        "search": "جستن",
        "searchbutton": "جستن",
        "go": "رو",
-       "searcharticle": "رو",
+       "searcharticle": "رۉ",
        "history": "ویرگارل بلگه",
-       "history_short": "تاریخچه یل",
+       "history_short": "تاریخچه",
        "updatedmarker": "بروز وابی تا موقع آخرین سیل کردن مو",
-       "printableversion": "ورژن سی چاپ بیئنی",
-       "permalink": "Ù\84Û\8cÙ\86Ú©Ù\84 ØªØ§ Ø§Ø¨Ø¯",
+       "printableversion": "ۉرژن سی چاپ",
+       "permalink": "Ù\84Û\8cÙ\86Ú©Ù\84 Ø¯Ø§Ø¦Ù\85Û\8c",
        "print": "چاپ",
        "view": "نما",
        "view-foreign": "نما مئن  $1",
-       "edit": "ویرایش",
+       "edit": "اصلاح",
        "edit-local": "اصلاح توضیحتل محلی",
        "create": "درست کردن",
        "create-local": "وندن توضیحتل محلی",
        "talkpage": "گپ زئن ای بلگه",
        "talkpagelinktext": "گپ",
        "specialpage": "بلگه مخصوص",
-       "personaltools": "اوزارگل سی خوت",
+       "personaltools": "اۉزارگل سی خۉتی",
        "articlepage": "سل کردن محتوا ای بلگه",
        "talk": "قسه",
-       "views": "سلابل",
-       "toolbox": "اوزارگه",
+       "views": "نمایل",
+       "toolbox": "اۉزارگه",
        "userpage": "دیئن بلگه کارور",
        "projectpage": "دیئن بلگه پروجه",
        "imagepage": "دیئن بلگه فایل",
        "viewhelppage": "دیئن بلگه هومیاری",
        "categorypage": "دیئن بلگه دسه بنی",
        "viewtalkpage": "دیئن گپل",
-       "otherlanguages": "مئن زوونه یل دیه",
-       "redirectedfrom": "(تصحیح مجدد زه $1)",
+       "otherlanguages": "مئن زۉۉنل دیھ",
+       "redirectedfrom": "(تصحیح مجدد زھ $1)",
        "redirectpagesub": "بلگه تصحیح و هدایت زه مجدد",
        "redirectto": "تغییر دائن مسیر وه:",
-       "lastmodifiedat": "ای بلگه اخیرا تغییر واصلاح وابیه مئنه $1, مئنه $2.",
+       "lastmodifiedat": "ای بلگه اخیرا تغییر ۉاصلاح ۉابیه مئنه $1, مئنه $2.",
        "viewcount": "ای بلگه قابل دسترسی وابیه {{PLURAL:$1|یه بار|$1 مدتل}}.",
        "protectedpage": "بلگه حفاظت وابیه",
-       "jumpto": "پریدن وه:",
+       "jumpto": "پریدن ۉھ:",
        "jumptonavigation": "هدایت کردن",
        "jumptosearch": "جستن",
        "view-pool-error": "وبشید ، سرور بیش زه حد بارگیری وابیه .\nکارورل زیادی ایخن ای بلگنه سل کنن.\nلطفا یه لحظه واسیت قبلیکه به خیت ای بلگنه مجددا سل کیت.\n$1",
        "pool-queuefull": "صف استخر پر هسی",
        "pool-errorunknown": "خطا ناشناخته",
        "pool-servererror": "شمارنده سرویس استخر ور تیه نی ($1).",
-       "aboutsite": "پروجه : درباره",
-       "aboutpage": "Project:درباره",
+       "aboutsite": "پرۉجھ : دربارھ",
+       "aboutpage": "Project:دربارھ",
        "copyright": "مطلب دومن $ 1 هس نکه خلاف هونو ذکر وابی.",
        "copyrightpage": "{{ns:project}}:کپی رایت",
        "currentevents": "اتفاقل جاری",
-       "currentevents-url": "Project:اتفاقات جاری",
-       "disclaimers": "انکار کننده یل",
-       "disclaimerpage": "Project:انکار کاروران",
+       "currentevents-url": "Project:اتفاقل جاری",
+       "disclaimers": "انکار کنندھ یل",
+       "disclaimerpage": "Project:انکار کارۉران",
        "edithelp": "هومیاری سی اصلاح",
-       "mainpage": "بلگه اصلی",
-       "mainpage-description": "پیج اصلی",
+       "mainpage": "بلگھ اصلی",
+       "mainpage-description": "بلگھ اصلی",
        "policy-url": "Project:خط مشی",
-       "portal": "درگاه کاروران",
-       "portal-url": "Project:درگاه کاروران",
+       "portal": "درگاھ کارۉران",
+       "portal-url": "Project:درگاھ کارۉران",
        "privacy": "خط مشی رازداری",
        "privacypage": "Project:خط مشی رازداری",
        "badaccess": "خطا دسترسی",
        "versionrequired": "یه نسخه زه نیازمندی یل ویکی مدیا\n$1",
        "versionrequiredtext": "یه نسخه زه ویکی مدیا($1) نیازمند ه وه استفاده زه ای بلگه\nبویین :[[مخصوص:نسخه|نسخه مخصوص]].",
        "ok": "خووه",
-       "retrievedfrom": "بازÛ\8cاÙ\81ت Ø§Ø²\"$1\"",
+       "retrievedfrom": "بازیافت ز\"$1\"",
        "youhavenewmessages": "پیوم نو داری $1 ($2).",
        "youhavenewmessagesfromusers": "{{PLURAL:$4|ایشا داریت}} $1 زه {{PLURAL:$3|یه کارور دیه|$3 کارورل}} ($2).",
        "youhavenewmessagesmanyusers": "ایشا $1 زه کارورل دیه داریت ($2).",
        "editold": "اصلاح",
        "viewsourceold": "دیئن منبع",
        "editlink": "اصلاح",
-       "viewsourcelink": "دیئن منبع",
-       "editsectionhint": "اصÙ\84اح Û\8cÙ\87 قسمت: $1",
+       "viewsourcelink": "دیئن سرچشمھ",
+       "editsectionhint": "اصÙ\84اح Û\89Ú¾ قسمت: $1",
        "toc": "محتوا یل",
        "showtoc": "نمایش",
        "hidetoc": "قائم",
        "feed-invalid": "اشتراک  زه راه  تایپ باطله",
        "feed-unavailable": "فید پیوند ور تیه نی",
        "site-rss-feed": "خبرخو RSS سی $1",
-       "site-atom-feed": "خبرخو Atom سی $1",
+       "site-atom-feed": "خبرخۉ Atom سی $1",
        "page-rss-feed": "خبرخو RSS سی «$1»",
        "page-atom-feed": "خبرخو Atom سی «$1»",
-       "red-link-title": "(بلگه وجود ناره) $1",
+       "red-link-title": "(بلگھ ۉجود نارھ) $1",
        "sort-descending": "مرتب سازی وا صعودی",
        "sort-ascending": "مرتب سازی وا صعودی",
-       "nstab-main": "پیج",
+       "nstab-main": "بلگھ",
        "nstab-user": "بلگه کارور",
        "nstab-media": "بلگه مدیا",
-       "nstab-special": "پیجئل مخصوص",
+       "nstab-special": "بلگھ یل ۉیجھ",
        "nstab-project": "بلگه پروجه",
        "nstab-image": "فایل",
        "nstab-mediawiki": "پیوم",
        "createaccount-title": "اکانت سازی سی {{SITENAME}}",
        "login-abort-generic": "ورود ایشا ناموفق وابی - سقط وابی",
        "loginlanguagelabel": "زوون:$1",
-       "pt-login": "اویدن وه سیستم",
+       "pt-login": "اۉیدن ۉھ سیستم",
        "pt-login-button": "اویدن وه سیستم",
-       "pt-createaccount": "درست Ú©Ø±Ø¯Ù\86 Ø§Ú©Ø§Ù\86ت",
+       "pt-createaccount": "راس Ú©Ø±Ø¯Ù\86 Ø­Ø³Ø¢Û\89",
        "pt-userlogout": "رهدن زه سیستم",
        "changepassword": "تغییر رمز",
        "resetpass_announce": "سی پایان ورود ، ایشا واسی یه رمز جدید سیخوت به ونی.",
        "lineno": "سطر $1:",
        "editundo": "لغو",
        "diff-multi-sameuser": "({{PLURAL:$1|یه نسخه متوسط|$1 نسخه یل متوسط}} توسط کارور مشابه نشو نوابیه)",
-       "searchresults": "Ù\86تÛ\8cجÙ\87 Û\8cÙ\84 Ø¬Ø³ØªÙ\86",
-       "searchresults-title": "نتایج جستن سی \"$1\"",
+       "searchresults": "نتیجل جستن",
+       "searchresults-title": "نتیجل جستن سی \"$1\"",
        "prevn": "قبلی {{PLURAL:$1|$1}}",
        "nextn": "بعدی {{PLURAL:$1|$1}}",
        "nextn-title": "بعدی $1 {{PLURAL:$1|نتیجه|نتیجه یل}}",
-       "shown-title": "نشو دائن $1 {{PLURAL:$1|نتیجه|نتیجه یل}} د هر بلگه",
+       "shown-title": "نشۉ دائن $1 {{PLURAL:$1|نتیجه|نتیجل}} د هر بلگه",
        "viewprevnext": "مشاهده ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-new": "<strong>درست کو ای بلگنه \"[[:$1]]\" مئنه ای ویکی!</strong> {{PLURAL:$2|0=|همچنین سل کو بلگه ای که وا جستن پیداش کردیه.|همچنین سل کو نتایج جستنه.}}",
-       "searchprofile-articles": "بلگه محتوا",
+       "searchprofile-articles": "بلگه محتۉا",
        "searchprofile-images": "چندرسانه ای",
        "searchprofile-everything": "همه چیا",
        "searchprofile-advanced": "پیشرفته",
        "searchprofile-articles-tooltip": "جستن مئنه $1",
        "searchprofile-images-tooltip": "جستن سی فایلل",
-       "searchprofile-everything-tooltip": "جستن سی محتوا(شامل بلگل گپ)",
+       "searchprofile-everything-tooltip": "جستن سی محتۉا(شامل بلگل گپ)",
        "searchprofile-advanced-tooltip": "جستن مئنه همدرنگل سفارشی",
-       "search-result-size": "$1 ({{PLURAL:$2|1 Ú©Ù\84Ù\85Ù\87|$2 Ú©Ù\84Ù\85Ù\87 Û\8cÙ\84}})",
+       "search-result-size": "$1 ({{PLURAL:$2|1 کلمه|$2 کلمل}})",
        "search-redirect": "(تغییر مسیر $1)",
        "search-section": "(قسمت $1)",
        "search-suggest": "آیا منطور ایشا ای بی:$1",
        "right-writeapi": "استفاده د نوشتن به صورت API",
        "newuserlogpage": "سیاهه درست کردن حسآو",
        "enhancedrc-history": "سرچشمه یل",
-       "recentchanges": "تغییرل جدید",
+       "recentchanges": "تغییرل نۉ",
        "recentchanges-legend": "گزینه یل تغییرات اخیر",
        "recentchanges-summary": "شیار تغییرات اخیر مئنه ای بلگه به ویکی .",
-       "recentchanges-label-newpage": "ای اصلاح یه بلگه نو ایسازه",
-       "recentchanges-label-minor": "ای یه اصلاح کچک وابی",
-       "recentchanges-label-bot": "ای اصلاح توسط یه روبات انجام وابیه",
+       "recentchanges-label-newpage": "ای اصلاح یه بلگه نو ایسازھ",
+       "recentchanges-label-minor": "ای یه اصلاح کچک ۉابی",
+       "recentchanges-label-bot": "ای اصلاح تۉسط یه رۉبات انجام ۉابیه",
        "recentchanges-label-unpatrolled": "ای اصلاح هنو گشت نوابیده",
        "recentchanges-label-plusminus": "اندازه بلگه وا ای تعداد بایت تغییر داده بیه",
        "recentchanges-legend-heading": "'''آلشتیا ایسنی :'''",
        "rcshowhidemine-show": "نشو دائن",
        "rcshowhidemine-hide": "قائم کردن",
        "rclinks": "نشودادن آخرین $1 تغییر در $2 روز اخیر؛ $3",
-       "diff": "تفاوت",
-       "hist": "گزارشت",
+       "diff": "تفاۉت",
+       "hist": "گزارش",
        "hide": "قائم کردن",
        "show": "نشو دائن",
        "minoreditletter": "رز",
        "recentchangeslinked-summary": " ای بلگه خاص تغییرات اخیر مئنه بلگل لینک وابیده وه ای بلگنه نشو اده.\nبلگلی که مئنه [[Special:Watchlist|لیست پیگیری یل]] ایشا هیسن به شکل '''سیاه''' نشو داده ابون.",
        "recentchangeslinked-page": "نوم بلگه:",
        "recentchangeslinked-to": "نشو دائن تغییرات بلگلی که و بلگه داده بیه لینک داده شدنه به جای",
-       "upload": "بلم گیر کردن فایلل",
+       "upload": "بلم گیر کردن فایل",
        "filedesc": "خلاصه",
        "license-header": "صدور مجوز",
        "imgfile": "فایل",
        "filehist-current": "جاری",
        "filehist-datetime": "تاریخ/زمان",
        "filehist-thumb": "کچک",
-       "filehist-thumbtext": "کچک سی نسخه از تا $1",
-       "filehist-user": "کارور",
+       "filehist-thumbtext": "کچک سی ۉرژن از تا $1",
+       "filehist-user": "کارۉر",
        "filehist-dimensions": "ابعاد",
        "filehist-comment": "توضیح",
        "imagelinks": "استفاده د فایل",
        "linkstoimage": "ذیل الذکر {{PLURAL:$1|لینکل بلگه|$1 لینک بلگل}} به ای فایل:",
        "nolinkstoimage": "بلگه یلی که وه ای فایل لینک دائنه نی.",
-       "sharedupload-desc-here": "اÛ\8c Ù\81اÛ\8cÙ\84 Ø§Ø² $1 Ø§Ù\88Ù\85ائÙ\87 Ù\88 Ø´Ø§Û\8cد Ø¯ Ù¾Ø±Ù\88جÙ\87 Û\8cÙ\84 Ø¯Û\8cÙ\87 Ù\85Ù\88رد Ø§Ø³ØªÙ\81ادÙ\87 Ù\88ابÛ\8cÙ\86.\nتÙ\88ضÛ\8cحتÙ\84 Ø±Û\8c [$2 Ø¨Ù\84Ú¯Ù\87 ØªÙ\88ضÛ\8cØ­ Ù\81اÛ\8cÙ\84] Ø¯Ù\88Ù\85Ù\86 Ù\86Ø´Ù\88 Ù\88ابیه .",
+       "sharedupload-desc-here": "اÛ\8c Ù\81اÛ\8cÙ\84 Ø² $1 Ø§Û\89Ù\85ائÙ\87 Û\89 Ø´Ø§Û\8cد Ø¯ Ù¾Ø±Û\89جÙ\87 Û\8cÙ\84 Ø¯Û\8cÙ\87 Ù\85Ù\88رد Ø§Ø³ØªÙ\81ادھ Û\89ابÛ\8cÙ\86.\nتÛ\89ضÛ\8cحتÙ\84 Ø±Û\8c [$2 Ø¨Ù\84Ú¯Ù\87 ØªÛ\89ضÛ\8cØ­ Ù\81اÛ\8cÙ\84] Ø¯Û\89Ù\85Ù\86 Ù\86Ø´Û\89 Û\89ابیه .",
        "upload-disallowed-here": "ایشا نیترید ای فایلنه بنویسید",
-       "randompage": "پیج اتفاقی",
+       "randompage": "بلگھ بختھ کی",
        "nbytes": "$1 {{PLURAL:$1|بایت|بایتل}}",
        "nmembers": "$1 {{PLURAL:$1|عضو|اعضول}}",
-       "newpages": "پیجئل جدید",
+       "newpages": "بلگھ یل نۉ",
        "pager-older-n": "{{PLURAL:$1|قدیمی تر 1|قدیمی تر $1}}",
        "booksources": "منوبع کتآو",
        "booksources-search-legend": "جستن سی منوبع کتآو",
        "booksources-search": "جستن",
        "log": "نمایه ها",
        "allarticles": "همه بلگل",
-       "allpagessubmit": "رو",
+       "allpagessubmit": "رۉ",
        "categories": "دسه یل",
        "mywatchlist": "فهرست پیگیری یل",
        "watch": "پی‌گیری",
        "rollbacklinkcount": "ورگرد $1 {{PLURAL:$1|اصلاح|اصلاحل}}",
        "protectlogpage": "نمایه حفاظت وحمایت",
        "namespace": "همدرنگل:",
-       "invert": "انتخاب برعکس بوه",
+       "invert": "انتخاب برعکس بوھ",
        "tooltip-invert": "انتخاب کو ای جعبنه سی قائم کردن تغییرل بلگلی که همدرنگلشو انتخاب وابین(و همدرنگل مرتبط ار انتخاب وابین)",
        "namespace_association": "همدرنگل مرتبط",
        "tooltip-namespace_association": "انتخاب کو ای جعبنه سیکه گپ یا موضوع همدرنگ مرتبط وا همدرنگل انتخاب وابینه قرار بنی.",
        "mycontris": "مشارکتل",
        "month": "در این ماه (و قبل زه آن):",
        "year": "در ای سال (وقبل زه آن):",
-       "whatlinkshere": "لینک یل ای بلگه",
+       "whatlinkshere": "لینکل ای بلگه",
        "whatlinkshere-title": "بلگل که لینک دائنه به \"$1\"",
        "whatlinkshere-page": "بلگه",
        "linkshere": "لینک بلگل ذیل الذکر به '''[[:$1]]''':",
        "whatlinkshere-hidetrans": "$1 تراگنجایش",
        "whatlinkshere-hidelinks": "$1 لینکل",
        "whatlinkshere-filters": "فیلترل",
-       "blocklink": "بسه وابو",
+       "blocklink": "بسه بۉھ",
        "contribslink": "شراکتل",
        "movelogpage": "نمایه جابجایی",
        "export": "بلگل صادره یل",
        "tooltip-pt-preferences": "اولویتل مو",
        "tooltip-pt-watchlist": "لیست بلگلی که ایشا تغییرات هونونه  دنبال اکنین",
        "tooltip-pt-mycontris": "لیست مشارکتل ایشا",
-       "tooltip-pt-login": "توصیه وابوه که وه سیستم داخل بوین. اما اجباری نیسس",
+       "tooltip-pt-login": "تۉصیه ۉابۉھ که ۉھ سیستم داخل بۉین. اما اجباری نیسس",
        "tooltip-pt-logout": "رهدن زه سیستم",
-       "tooltip-pt-createaccount": "توصیه وابوه که حساب کاروری درست بکنیت یا وارد بوین. اما اجباری نیسس",
-       "tooltip-ca-talk": "صحبت د بلگه محتوا",
-       "tooltip-ca-edit": "ایسا ترین ای پیجنه ویرایش کنین.لطفا قبل ویرایش ای پیج از دکمه پیش نمایش استفاده کنین",
+       "tooltip-pt-createaccount": "تۉصیه ۉابۉھ که حسآۉ کارۉری راس بکنیت یا ۉارد بۉین. اما اجباری نیسس",
+       "tooltip-ca-talk": "قسھ د بلگه محتۉا",
+       "tooltip-ca-edit": "ایسھ ترین ای بلگھ نھ اصلاح کنیت.لطفا قبل اصلاح ای بلگھ ز دۉکمه پیش نمایش استفاده کنیت",
        "tooltip-ca-addsection": "آغاز کردن یه قسمت نو",
        "tooltip-ca-viewsource": "ای بلگه  تحت حمایته ایساترین منبعسه بوینین",
-       "tooltip-ca-history": "ویرگار",
+       "tooltip-ca-history": "ۉیرگار",
        "tooltip-ca-move": "جابجاکردن ای بلگه",
-       "tooltip-ca-watch": "اضاف کردن ای بلگه به لیست پیگیری یلت",
-       "tooltip-search": "جستن {{نوم جا}}",
-       "tooltip-search-go": "رو مئنه بلگه ای وا ای نوم ار هیسس",
-       "tooltip-search-fulltext": "جستن پیجئل هنه سی ای نشته",
-       "tooltip-p-logo": "رهدن د پیج اصلی",
-       "tooltip-n-mainpage": "رو د پیج اصلی",
-       "tooltip-n-mainpage-description": "رهدن د پیج اصلی",
-       "tooltip-n-portal": "درباره پروجه ، کارینه ک تری کنی ، ینه جا سی جستن چیزل",
-       "tooltip-n-currentevents": "پیداکردن اطلاعات زمینه یاسابقه اطلاعات در اتفاقات جاری",
-       "tooltip-n-recentchanges": "سیائل تغییرل آخری مئن ای ویکی",
-       "tooltip-n-randompage": "سوار کردن یه پیج اتفاقی",
-       "tooltip-n-help": "ینه جا سی فهمیدن",
-       "tooltip-t-whatlinkshere": "فهرست همه بلگه یل ویکی که ایچو لینک دارن",
-       "tooltip-t-recentchangeslinked": "تغییرل آخر مئن پیجئل ک لینک دانه و ای پیج",
+       "tooltip-ca-watch": "اضاف کردن ای بلگه ۉھ لیست پیگیری یل ایشا",
+       "tooltip-search": "جستن {{SITENAME}}",
+       "tooltip-search-go": "رۉ مئنه بلگه ای ۉا ای نۉم ار هیسس",
+       "tooltip-search-fulltext": "جستن بلگھ یل  سی ای متن",
+       "tooltip-p-logo": "رۉ د بلگھ اصلی",
+       "tooltip-n-mainpage": "رۉ د بلگھ اصلی",
+       "tooltip-n-mainpage-description": "رۉ د بلگھ اصلی",
+       "tooltip-n-portal": "درباره پرۉجه ، کارینه کھ تری بکنی ، ینه جا سی جستن چیزل",
+       "tooltip-n-currentevents": "سیل کردن اطلاعات زمینه یاسابقه اطلاعات مئن اتفاقل جاری",
+       "tooltip-n-recentchanges": "سیائل تغییرل آخر مئن ای ۉیکی",
+       "tooltip-n-randompage": "سوار کردن یه بلگھ بختھ کی",
+       "tooltip-n-help": "ینه جا سی سیل کردن",
+       "tooltip-t-whatlinkshere": "فهرست همه بلگه یل ۉیکی که ایچۉ لینک دارن",
+       "tooltip-t-recentchangeslinked": "تغییرل آخر مئن بلگھ کھ لینک دانه وھ ای بلگھ",
        "tooltip-feed-atom": "تغذیه کوچیک ترین جزء  ای بلگه",
        "tooltip-t-contributions": "یه لیس ز مشارکت کننده یل و مقاله دهنده یل ای بلگه",
        "tooltip-t-upload": "بلم گیر کردن فایلل",
-       "tooltip-t-specialpages": "ورقل ویجه",
-       "tooltip-t-print": "ورژن چاپ بینل ای پیج",
-       "tooltip-t-permalink": "Ù\84Û\8cÙ\86Ú©Ù\84 ØªØ§ Ø§Ø¨Ø¯ Ù\88Ù\87 Ø§Û\8c Ù\88رÚ\98Ù\86 Ø§Û\8c Ù¾Û\8cج",
-       "tooltip-ca-nstab-main": "سÙ\84 Ú©Ø±Ø¯Ù\86 Ù\85حتÙ\88ا Ù¾Û\8cج",
+       "tooltip-t-specialpages": "بلگھ یل ۉیجه",
+       "tooltip-t-print": "ورژن سی چاپ ای بلگھ",
+       "tooltip-t-permalink": "Ù\84Û\8cÙ\86Ú©Ù\84 Ø¯Ø§Ø¦Ù\85Û\8c Û\89Ú¾ Ø§Û\8c Û\89رÚ\98Ù\86 Ø§Û\8c Ø¨Ù\84Ú¯Ú¾",
+       "tooltip-ca-nstab-main": "دÛ\8cئÙ\86 Ø¨Ù\84Ú¯Ú¾ Ù\85حتÛ\89ا",
        "tooltip-ca-nstab-user": "دیئن بلگه کارور",
-       "tooltip-ca-nstab-special": "ای بلگه مخصوصه وایسا نترین خود ای بلگنه اصلاح کنین",
+       "tooltip-ca-nstab-special": "ای بلگه ھا ۉیجھ و ایشا نیترین خود ای بلگنه اصلاح کنیت",
        "tooltip-ca-nstab-project": "دیئن بلگه پروجه",
        "tooltip-ca-nstab-image": "دیئن بلگه فایل",
        "tooltip-ca-nstab-template": "دیئن قالب",
        "tooltip-save": "ضبط کردن تغییراتت",
        "tooltip-preview": " دیئن تغییرات ، لطفا قبل ضبط کردن د ای خدمت استفاده کنیت!",
        "tooltip-diff": "دیدن تغییراتی که ایسا من ای متن انجام دادینه",
-       "tooltip-rollback": "\"اعاده\" برگرداندن به وضع اولیه سی ای بلگه که سی مشارکت  آخر اصلاح وابیده وا یک کلیک",
+       "tooltip-rollback": "\"اعادھ\" ۉرگردۉندن به وضع اولیه سی ای بلگه که سی مشارکت  آخر اصلاح ۉابیدھ ۉا یھ کلیک",
        "tooltip-undo": "\"لغو\"ورگشت ای اصلاح و وا ویدن فرم اصلاح مئنه پیش نمایش.اجازه ایده که یه دلیل وه خلاصه اضافه بکنی.",
        "tooltip-summary": "یه خلاصه کوچکی بنویس",
        "simpleantispam-label": "انتخاب آنتی-اسپم\nپر <strong>نکنید</strong> اینه مئن!",
        "show-big-image-preview": "اندازه ای پیش نمایش:$1.",
        "show-big-image-other": "دیه {{PLURAL:$2|تفکیک پذیری|تفکیک پذیری یل}}: $1.",
        "show-big-image-size": "$1 × $2 پیکسلل",
-       "metadata": "فراداده",
+       "metadata": "فرادادھ",
        "metadata-help": " ای فایل دارای اطلاعات اضافه‌ای هی که احتمالاً با دوربین دیجیتالی‌ یا پویشگری که سی ایجاد یا دیجیتالی‌کردن هو به کار رهده اضاف وابیده . ایر فایل زه وضعیت اولیه اس تغییر داده وابیده بوه ممکنه همه توضیحات موجود اطلاعات عکس را منعکس نکنه",
-       "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* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-orientation": "گرایش",
        "exif-xresolution": "تفکیک پذیری افقی",
        "exif-yresolution": "تفکیک پذیری عمودی",
        "monthsall": "همه",
        "semicolon-separator": "؛&#32;",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|گپ]])",
-       "specialpages": "پیجئل مخصوص",
+       "specialpages": "بلگھ یل ۉیجھ",
        "tag-filter": "[[Special:Tags|برچسب]] فیلتر:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|برچسب|برچسبل}}]]: $2)",
        "logentry-delete-delete": "$1 {{GENDER:$2|حذف وابیده}} بلگه $3",
        "logentry-move-move": "$1 {{GENDER:$2|انتقال داده بیه}} بلگه $3 به $4",
-       "logentry-newusers-create": "حسآو کارور $1 وابیه {{GENDER:$2|درست }}",
+       "logentry-newusers-create": "حسآۉ کارۉر $1 ۉابیه {{GENDER:$2|راس ۉیدھ }}",
        "logentry-upload-upload": "$1 {{GENDER:$2|بارگذاری وابیده}} $3",
        "searchsuggest-search": "جستن"
 }
index e5c0665..f0b3079 100644 (file)
        "note": "'''Piezīme: '''",
        "previewnote": "'''Atceries, ka šis ir tikai pirmskats un teksts vēl nav saglabāts!'''",
        "continue-editing": "Pāriet uz labošanas lauku",
-       "session_fail_preview": "'''Neizdevās apstrādāt tavas izmaiņas, jo tika pazaudēti sesijas dati.\nLūdzu mēģini vēlreiz.\nJa tas joprojām nedarbojas, mēģini [[Special:UserLogout|izlogoties ārā]] un ielogoties no jauna.'''",
+       "session_fail_preview": "'''Neizdevās apstrādāt tavas izmaiņas, jo tika pazaudēti sesijas dati.\nLūdzu mēģini vēlreiz saglabāt izmaiņas.\nJa tas joprojām nedarbojas, mēģini [[Special:UserLogout|izlogoties ārā]] un ielogoties no jauna.'''",
        "session_fail_preview_html": "'''Neizdevās apstrādāt tavas izmaiņas, jo tika pazaudēti sesijas dati.'''\n\n''Tā, kā {{grammar:ģenitīvs|{{SITENAME}}}} darbojas neapstrādāts HTML, pirmskats ir paslēpts, lai aizsargātos no JavaScripta  uzbrukumiem.''\n\n'''Ja šis bija parasts rediģēšanas mēģinājums, mēģini vēlreiz.\nJa tas joprojām nedarbojas, mēģini [[Special:UserLogout|izlogoties ārā]] un ielogoties no jauna.'''",
        "editing": "Labot $1",
        "creating": "Izveido lapu $1",
        "nlinks": "$1 {{PLURAL:$1|saites|saite|saites}}",
        "nmembers": "$1 {{PLURAL:$1|lapas|lapa|lapas}}",
        "nrevisions": "$1 {{PLURAL:$1|versijas|versija|versijas}}",
-       "nviews": "skatīta $1 {{PLURAL:$1|reizes|reizi|reizes}}",
        "nimagelinks": "Izmantots $1 {{PLURAL:$1|lapās|lapā|lapās}}",
        "ntransclusions": "izmantots $1 {{PLURAL:$1|lapās|lapā|lapās}}",
        "specialpage-empty": "Šim ziņojumam nav rezultātu.",
index b99ecee..9fed86b 100644 (file)
        "yourdiff": "Разлики",
        "copyrightwarning": "Имајте предвид дека сите придонеси на {{SITENAME}} се сметаат за издадени под лиценцата $2 (повеќе на $1).\nДоколку не сакате вашите текстови да бидат слободно уредувани и разменувани, тогаш не поднесувајте ги овде.<br />\nИсто така ветувате дека вие сте автор на текстот, или сте го копирале од ресурс во јавна сопственост или сличен слободен извор.\n'''НЕ ПОДНЕСУВАЈТЕ ТЕКСТОВИ ЗАШТИТЕНИ СО АВТОРСКИ ПРАВА БЕЗ ДОЗВОЛА!'''",
        "copyrightwarning2": "Ве молиме, имајте предвид дека сите придонеси кон {{SITENAME}} можат да бидат уредувани, менувани или отстранувани од други корисници. Ако не сакате вашиот текст да биде менуван и редистрибуиран слободно, не го испраќајте овде.<br />\nИсто така потврдувате дека текстот сте го напишале сами, или сте го копирале од ресурс во јавна сопственост или сличен слободен извор (видетe $1 за подробности).<br />\n'''НЕ ПРАЌАЈТЕ ТЕКСТОВИ ЗАШТИТЕНИ СО АВТОРСКИ ПРАВА БЕЗ ДОЗВОЛА!'''",
+       "editpage-cannot-use-custom-model": "Содржинскиот модел на страницава не може да се измени.",
        "longpageerror": "'''Грешка: Текстот што го внесовте е голем {{PLURAL:$1|еден килобајт|$1 килобајти}}, што ја надминува границата од {{PLURAL:$2|еден килобајт|$2 килобајти}}.'''\nЗатоа нема да може да се зачува.",
        "readonlywarning": "'''ПРЕДУПРЕДУВАЊЕ: Базата на податоци е заклучена заради одржување, па нема да можете да ги зачувате промените сега.\n\nВи препорачуваме да го прекопирате текстот на текстуална податотека за да го зачувате за подоцна.'''\n\nАдминистраторот кој ја заклучил базата на податоци го дал следново објаснување: $1",
        "protectedpagewarning": "'''Предупредување:  Оваа страница е заклучена, така што само корисници со администраторски привилегии можат да ја уредуваат.'''\nЗа ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
        "badsig": "Грешка во потписот.\nПроверете ги HTML ознаките.",
        "badsiglength": "Вашиот потпис е премногу долг.\nМора да биде со помалку од $1 {{PLURAL:$1|знак|знаци}}.",
        "yourgender": "Како би сакале да ве опишуваме?",
-       "gender-unknown": "Ð\9dе Ñ\81акам Ð´Ð° Ð¼Ðµ Ð¾Ð¿Ð¸Ñ\88Ñ\83ваÑ\82е",
+       "gender-unknown": "Ð\9aога Ñ\9cе Ð²Ðµ Ñ\81помнÑ\83ва, Ð¿Ñ\80огÑ\80амоÑ\82 Ñ\9cе ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ñ\80одово Ð½ÐµÑ\83Ñ\82Ñ\80ални Ð·Ð±Ð¾Ñ\80ови Ñ\81екаде ÐºÐ°Ñ\98Ñ\88Ñ\82о Ð¼Ð¾Ð¶е",
        "gender-male": "Тој уредува викистраници",
        "gender-female": "Таа уредува викистраници",
        "prefs-help-gender": "Оваа поставка е незадолжителна.\nПрограмот го користи посочениот род за да ве опишува согласно вашиот пол.\nИнформацијата ќе биде јавна.",
        "action-undelete": "обнови ја страницава",
        "action-suppressrevision": "прегледај ја и обнови ја оваа скриена преработка",
        "action-suppressionlog": "преглед на овој li;en дневник",
-       "action-block": "оневозможи го овој корисник да уредува",
+       "action-block": "оневозможување на уредувањето на корисников",
        "action-protect": "измени го степенот на заштита на оваа страница",
        "action-rollback": "брзо отповикување на измени направени од последниот уредник на страницата",
        "action-import": "увоз на страници од друго вики",
        "uploaded-script-svg": "Пронајдов скриптен елемент „$1“ во подигнатата SVG-податотека.",
        "uploaded-hostile-svg": "Пронајдов небезбеден CSS во стилскиот елемент на подигнатата SVG-податотека.",
        "uploaded-event-handler-on-svg": "Задавањето на атрибути <code>$1=\"$2\"</code> за работа со настани не е дозволено за SVG-податотеки.",
-       "uploaded-href-attribute-svg": "Href-атрибути <code>&lt;$1 $2=\"$3\"&gt;</code> со немесна цел (на пр. http://, javascript: и тн.) не се дозволени во SVG-податотеки.",
+       "uploaded-href-attribute-svg": "href-атрибути <code>&lt;$1 $2=\"$3\"&gt;</code> со немесна цел (на пр. http://, javascript: и тн.) не се дозволени во SVG-податотеки.",
        "uploaded-href-unsafe-target-svg": "Пронајдов href кон небезбедна цел <code>&lt;$1 $2=\"$3\"&gt;</code> во подигнатата SVG-податотека.",
        "uploaded-animate-svg": "Пронајдов ознака „animate“ што може да го менува href, користејќи го атрибутот „from“ <code>&lt;$1 $2=\"$3\"&gt;</code> во подигнатата SVG-податотека.",
        "uploaded-setting-event-handler-svg": "Задавањето на атрибути за работа со настани е спречено. Пронајдов <code>&lt;$1 $2=\"$3\"&gt;</code> во подигнатата SVG-податотека.",
        "nmembers": "$1 {{PLURAL:$1|член|членови}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|член|членови}}",
        "nrevisions": "$1 {{PLURAL:$1|измена|измени}}",
-       "nviews": "$1 {{PLURAL:$1|преглед|прегледи}}",
        "nimagelinks": "Се користи на $1 {{PLURAL:$1|страница|страници}}",
        "ntransclusions": "се користи на $1 {{PLURAL:$1|страница|страници}}",
        "specialpage-empty": "Нема резултати од пребарувањето на овој извештај.",
        "ipbreason-dropdown": "*Вообичаени причини за блокирање\n** Вметнување лажни информации\n** Бришење на содржини од страниците\n** Спам-врски кон надворешни мрежни места\n** Вметнување глупости во страниците\n** Непристојно однесување\n** Навредување на други корисници\n** Неприфатливо корисничко име",
        "ipb-hardblock": "Спречи ги најавените корисници да уредуваат од оваа IP-адреса",
        "ipbcreateaccount": "Оневозможи создавање кориснички сметки",
-       "ipbemailban": "Ð\9eневозможи Ð³Ð¾ корисникот да праќа е-пошта",
+       "ipbemailban": "Ð\9eневозможи Ð¼Ñ\83 Ð½Ð° корисникот да праќа е-пошта",
        "ipbenableautoblock": "Автоматски блокирај ја последната IP-адреса што ја користел корисникот и сите понатамошни адреси од кои ќе се обиде да уредува",
        "ipbsubmit": "Блокирај го овој корисник",
        "ipbother": "Друг рок:",
index f7562e6..82d1415 100644 (file)
        "nlinks": "$1 линк",
        "nmembers": "$1 гишүүн",
        "nrevisions": "$1 засвар",
-       "nviews": "$1 удаа үзсэн",
        "nimagelinks": "$1 {{PLURAL:$1|хуудсанд|хуудсанд}} ашигласан",
        "specialpage-empty": "Энэ мэдүүлэгт үр дүн гарсангүй.",
        "lonelypages": "Өнчин хуудсууд",
index 22001cb..db816b4 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|elemento|elemente}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membro|membre}}",
        "nrevisions": "$1 {{PLURAL:$1|verzione|verziune}}",
-       "nviews": "$1 {{PLURAL:$1|visita|visite}}",
        "nimagelinks": "Ausate ncopp'a {{PLURAL:$1|na paggena|$1 paggene}}",
        "ntransclusions": "ausate ncopp'a {{PLURAL:$1|na paggena|$1 paggene}}",
        "specialpage-empty": "Nun ce stanno risultate pe' stu report.",
index 7f498e9..61ce1ca 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|medlem|medlemmer}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|medlem|medlemmer}}",
        "nrevisions": "$1 {{PLURAL:$1|revisjon|revisjoner}}",
-       "nviews": "$1 {{PLURAL:$1|visning|visninger}}",
        "nimagelinks": "Brukt på $1 {{PLURAL:$1|side|sider}}",
        "ntransclusions": "brukt på $1 {{PLURAL:$1|side|sider}}",
        "specialpage-empty": "Denne siden er tom.",
index d8660a7..dda1a80 100644 (file)
        "whitelistedittext": "पाना सम्पादन गर्न तपाँईले $1 गर्नु पर्दछ।",
        "confirmedittext": "तपाईंले पृष्ठ संपादन गर्नअघि आफ्नो ई-मेल ठेगानाको पुष्टि गर्नुपर्छ।\nकृपया ई-मेल ठेगाना तयार गरी [[Special:Preferences|प्रयोगकर्ता अभिरूचि]] मार्फत मंजुर गराउनुहोस्।",
        "nosuchsectiontitle": "सेक्सन फेला परेन",
-       "nosuchsectiontext": "तपाà¤\88à¤\82 à¤¤à¥\8dयसà¥\8dतà¥\8b à¤\96णà¥\8dडà¤\95à¥\8b à¤¸à¤\82पादन à¤\97रà¥\8dनà¥\87 à¤ªà¥\8dरयास à¤\97रà¥\8dनà¥\81à¥\8dभयो जो अस्तित्वमा छैन।\nयो सारिएको अथवा मेटाइएको हुनुपर्छ जब तपाईं यस पृष्ठलाई हेर्नुहुँदैथियो।",
+       "nosuchsectiontext": "तपाà¤\88à¤\82 à¤¤à¥\8dयसà¥\8dतà¥\8b à¤\96णà¥\8dडà¤\95à¥\8b à¤¸à¤®à¥\8dपादन à¤\97रà¥\8dनà¥\87 à¤ªà¥\8dरयास à¤\97रà¥\8dनà¥\81भयो जो अस्तित्वमा छैन।\nयो सारिएको अथवा मेटाइएको हुनुपर्छ जब तपाईं यस पृष्ठलाई हेर्नुहुँदैथियो।",
        "loginreqtitle": "प्रवेशगर्नु जरुरी छ।",
        "loginreqlink": "प्रवेश (लग ईन)",
        "loginreqpagetext": "अरु पृष्ठहेर्न तपाईले $1 गर्नुपर्छ ।",
        "revdelete-text-file": "हटाइएको फाइल अवतरण फाइल इतिहासमा देखाइनेछ तर तिनको सामग्री सार्वजनिक रूपले देखाइने छैन।",
        "logdelete-text": "हटाइएको प्रवेश घटनाहरू अहिले पनि लगमा देखाइनेछ तर तिनको सामग्रीको केहि भागलाई सार्वजनिक रूपले हेर्न सकिने छैन।",
        "revdelete-text-others": "अन्य प्रवन्धकहरू अहिले पनि लुकाइएको सामग्रीको उपयोग गर्नका लागि अझै अतिरिक्त प्रतिबन्ध सेट गरिरहेका छन्, जब सम्म यो अ-नष्ट गर्न सक्षम हुनेछ।",
-       "revdelete-confirm": "पà¥\81षà¥\8dà¤\9fि à¤\97रà¥\8dनà¥\81स कि तपाईं यो कार्य गर्न चाहनुहुन्छ, तपाईं यसको परिणाम देखि अवगत हुनुहुन्छ, र तपाईं यो [[{{MediaWiki:Policy-url}}|नीति]] अनुसार गर्दै हुनुहुन्छ।",
+       "revdelete-confirm": "पà¥\81षà¥\8dà¤\9fि à¤\97रà¥\8dनà¥\81हà¥\8bसà¥\8d कि तपाईं यो कार्य गर्न चाहनुहुन्छ, तपाईं यसको परिणाम देखि अवगत हुनुहुन्छ, र तपाईं यो [[{{MediaWiki:Policy-url}}|नीति]] अनुसार गर्दै हुनुहुन्छ।",
        "revdelete-suppress-text": "लुकाउने प्रयोग <strong>मात्रै</strong> यी परिस्थितिमा हुनु पर्नेछ:\n* सम्भावित अपमानजनक जानकारी\n* अनुपयुक्त निजी जानकारी\n*: <em>घरको ठेगाना वा टेलिफोन नम्बर, राष्ट्रिय पहिचान नम्बर आदि।</em>",
        "revdelete-legend": "दृष्टि बन्देज मिलाउने",
        "revdelete-hide-text": "पुनरावलोकन पाठ",
        "nmembers": "$1 {{PLURAL:$1|सदस्य|सदस्यहरू}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|सदस्य|सदस्यहरू}}",
        "nrevisions": "$1 {{PLURAL:$1|पुनरावलोकन|पुनरावलोकनहरु}}",
-       "nviews": "$1 {{PLURAL:$1|अवलोकन|अवलोकनहरु}}",
        "nimagelinks": "$1 {{PLURAL:$1|पृष्ठ|पृष्ठहरु}}माथि प्रयोग गरिएको",
        "ntransclusions": "$1 {{PLURAL:$1पृष्ठमा प्रयोग गरिएको|पृष्ठहरूमा प्रयोग गरिएका}}",
        "specialpage-empty": "यो पृष्ठ खाली छ।",
index fd1efc6..2984e93 100644 (file)
        "nlinks": "{{PLURAL:$1|Éi lenkje|$1 lenkjer}}",
        "nmembers": "$1 {{PLURAL:$1|medlem|medlemmer}}",
        "nrevisions": "{{PLURAL:$1|Éin versjon|$1 versjonar}}",
-       "nviews": "{{PLURAL:$1|Éi vising|$1 visingar}}",
        "nimagelinks": "Brukt på $1 {{PLURAL:$1|side|sider}}",
        "ntransclusions": "brukt på $1 {{PLURAL:$1|side|sider}}",
        "specialpage-empty": "Det er ingen resultat for denne rapporten.",
index ba56063..7e67800 100644 (file)
@@ -12,7 +12,8 @@
                        "Shisir 1945",
                        "ଶିତିକଣ୍ଠ ଦାଶ",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Nistha.aslp"
                ]
        },
        "tog-underline": "ଲିଙ୍କତଳେଗାର ଟାଣିବା:",
        "watchthis": "ଏହି ପୃଷ୍ଠାଟିକୁ ଦେଖିବେ",
        "savearticle": "ସାଇତିବେ [Save]",
        "preview": "ସାଇତିବା ଆଗରୁ ଦେଖନ୍ତୁ",
-       "showpreview": "ଦେଖଣା [Preview]",
+       "showpreview": "ପà­\82ରà­\8dବଦà­\87à¬\96ଣା [Preview]",
        "showdiff": "ବଦଳଗୁଡ଼ିକ ଦେଖାଇବେ",
        "blankarticle": "<strong>ଚେତାବନୀ:</strong> ଆପଣ ସମ୍ପାଦନା କରୁଥିବା ଏହି ପୃଷ୍ଠାଟି ଫାଙ୍କା ଅଛି ।\nଯଦି ଆପଣ \"{{int:savearticle}}\" ଉପରେ ଆଉଥରେ କ୍ଲିକ କରନ୍ତି, ପୃଷ୍ଠାଟି କୌଣସି ବିଷୟବସ୍ତୁ ନଥାଇ ତିଆରି ହୋଇଯିବ ।",
        "anoneditwarning": "<strong>ସାବଧାନ:</strong> ଆପଣ ଲଗ-ଇନ କରିନାହାନ୍ତି । ଅଧିକ ସମ୍ପାଦନା କଲେ ଆପଣଙ୍କ IP Address ଟି ସମସ୍ତଙ୍କୁ ଦେଖାଯିବ । <strong>[$1ଲଗ ଇନ କଲେ]</strong> କିମ୍ବା <strong>[$2 ନୂଆ ଖାତାଟିଏ ତିଆରି କଲେ]</strong>, ଆପଣଙ୍କ ସମ୍ପାଦନାର ଶ୍ରେୟ ଅନ୍ୟାନ୍ୟ ସୁବିଧା ସହିତ ଆପଣଙ୍କ ଇଉଜର ନାମରେ ଦିଆହେବ ।",
        "prefs-timeoffset": "ସମୟ ଆରମ୍ଭ",
        "prefs-advancedediting": "ସାଧାରଣ ବିକଳ୍ପ",
        "prefs-editor": "ସମ୍ପାଦକ",
-       "prefs-preview": "ଦେଖଣା",
+       "prefs-preview": "ପà­\82ରà­\8dବଦà­\87à¬\96ଣା",
        "prefs-advancedrc": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
        "prefs-advancedrendering": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
        "prefs-advancedsearchoptions": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
        "nmembers": "$1 {{PLURAL:$1|member|ସଭ୍ୟ}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|ସଭ୍ୟ|ସଭ୍ୟଗଣ}}",
        "nrevisions": "$1 ଗୋଟି {{PLURAL:$1|ସଂସ୍କରଣ|ସଂସ୍କରଣ}}",
-       "nviews": "$1 ଟି {{PLURAL:$1|ଦେଖଣା|ଦେଖଣା}}",
        "nimagelinks": "$1 ଟି {{PLURAL:$1|ପୃଷ୍ଠା|ପୃଷ୍ଠା}}ରେ ବ୍ୟବହାର କରାଯାଇଅଛି",
        "ntransclusions": "$1ଟି {{PLURAL:$1|ପୃଷ୍ଠା|ପୃଷ୍ଠା}}ରେ ବ୍ୟବହାର କରାଯାଇଅଛି",
        "specialpage-empty": "ଏହି ଅନୁରୋଧ ପାଇଁ କିଛି ଫଳାଫଳ ମିଳିଲା ନାହିଁ ।",
        "expand_templates_remove_nowiki": "ଫଳାଫଳରେ <nowiki> ଟ୍ୟାଗମାନଙ୍କୁ ଦବାଇଦିଅନ୍ତୁ",
        "expand_templates_generate_xml": "XML ପାର୍ସ ସଂରଚନା ଦେଖାନ୍ତୁ",
        "expand_templates_generate_rawhtml": "କେବଳ HTML କୋଡ଼ ଦେଖାନ୍ତୁ",
-       "expand_templates_preview": "ଦେଖଣା",
+       "expand_templates_preview": "ପà­\82ରà­\8dବଦà­\87à¬\96ଣା",
        "pagelanguage": "ପୃଷ୍ଠା ଭାଷା ବଛା",
        "pagelang-name": "ପୃଷ୍ଠା",
        "pagelang-language": "ଭାଷା",
index 804a2c7..90c9265 100644 (file)
@@ -85,9 +85,9 @@
        "fri": "ਸ਼ੁੱਕਰ",
        "sat": "ਸ਼ਨਿੱਚਰ",
        "january": "ਜਨਵਰੀ",
-       "february": "ਫਰਵਰੀ",
+       "february": "ਫ਼ਰਵਰà©\80",
        "march": "ਮਾਰਚ",
-       "april": "à¨\85ਪà©\8dਰà©\88ਲ",
+       "april": "ਅਪਰੈਲ",
        "may_long": "ਮਈ",
        "june": "ਜੂਨ",
        "july": "ਜੁਲਾਈ",
        "lastmodifiedat": "ਇਸ ਸਫ਼ੇ ਵਿੱਚ ਆਖ਼ਰੀ ਸੋਧ $1 ਨੂੰ $2 ਵਜੇ ਹੋਈ।",
        "viewcount": "ਇਹ ਸਫ਼ਾ {{PLURAL:$1|ਇੱਕ ਵਾਰ|$1 ਵਾਰ}} ਵੇਖਿਆ ਗਿਆ।",
        "protectedpage": "ਸੁਰੱਖਿਅਤ ਸਫ਼ਾ",
-       "jumpto": "ਇਸ ਤੇ ਜਾਓ:",
+       "jumpto": "ਇਸ ਉੱਤੇ ਜਾਓ:",
        "jumptonavigation": "ਨੇਵੀਗੇਸ਼ਨ",
        "jumptosearch": "ਖੋਜ",
        "view-pool-error": "ਅਫ਼ਸੋਸ, ਸਰਵਰ ਇਸ ਵੇਲੇ ਓਵਰਲੋਡ ਹੈ।\nਬਹੁਤ ਸਾਰੇ ਮੈਂਬਰ ਇਸ ਸਫ਼ੇ ਨੂੰ ਵੇਖਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹਨ।\nਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਥੋੜੀ ਉਡੀਕ ਕਰੋ ਜੀ।\n$1",
        "disclaimers": "ਦਾਅਵੇ",
        "disclaimerpage": "Project:ਆਮ ਦਾਅਵੇ",
        "edithelp": "ਸੋਧ ਸਬੰਧੀ ਮਦਦ",
+       "helppage-top-gethelp": "ਮਦਦ",
        "mainpage": "ਮੁੱਖ ਸਫ਼ਾ",
        "mainpage-description": "ਮੁੱਖ ਸਫ਼ਾ",
        "policy-url": "Project:ਨੀਤੀ",
        "wrongpassword": "ਗ਼ਲਤ ਪਾਸਵਰਡ ਦਿੱਤਾ ਹੈ। ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।",
        "wrongpasswordempty": "ਖ਼ਾਲੀ ਪਾਸਵਰਡ ਦਿੱਤਾ ਹੈ। ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।",
        "passwordtooshort": "ਪਾਸਵਰਡ {{PLURAL:$1|1 ਅੱਖਰ|$1 ਅੱਖਰਾਂ}} ਦਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ।",
+       "passwordtoolong": "ਪਾਸਵਰਡ {{PLURAL:$1|1 ਅੱਖਰ|$1 ਅੱਖਰਾਂ}} ਤੋਂ ਵੱਡਾ ਨਹੀਂ ਹੋ ਸਕਦਾ।",
        "password-name-match": "ਤੁਹਾਡਾ ਪਛਾਣ-ਸ਼ਬਦ ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਨਾਂ ਤੋਂ ਵੱਖਰਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।",
        "password-login-forbidden": "ਇਹ ਯੂਜ਼ਰ-ਨਾਂ ਅਤੇ ਪਾਸਵਰਡ ਵਰਤਣ ਦੀ ਮਨਾਹੀ ਹੈ।",
        "mailmypassword": "ਨਵਾਂ ਪਾਸਵਰਡ ਈ-ਮੇਲ ਕਰੋ",
        "right-upload_by_url": "URL ਤੋਂ ਫਾਇਲਾਂ ਅੱਪਲੋਡ ਕਰੋ",
        "right-autoconfirmed": "ਨੀਮ-ਸੁਰੱਖਿਅਤ ਸਫ਼ਿਆਂ ਨੂੰ ਸੋਧਣਾ",
        "right-bot": "ਇੱਕ ਸਵੈ-ਚਾਲਤ ਅਮਲ ਵਜੋਂ ਗਿਣਿਆ ਜਾਣਾ",
+       "right-writeapi": "ਏਪੀਆਈ(API) ਦੀ ਵਰਤੋਂ",
        "right-delete": "ਸਫ਼ੇ ਹਟਾਓ",
        "right-bigdelete": "ਵੱਡੇ ਅਤੀਤ ਵਾਲੇ ਪੰਨੇ ਮਿਟਾਉਣੇ",
        "right-browsearchive": "ਮਿਟਾਏ ਹੋਏ ਸਫ਼ੇ ਖੋਜੋ",
        "recentchanges-label-minor": "ਇਹ ਇੱਕ ਛੋਟੀ ਸੋਧ ਹੈ",
        "recentchanges-label-bot": "ਇਹ ਸੋਧ ਇੱਕ ਬੋਟ ਦੁਆਰਾ ਕੀਤੀ ਗਈ ਸੀ",
        "recentchanges-label-unpatrolled": "ਇਹ ਫੇਰ-ਬਦਲ ਹਾਲੇ ਵੇਖਿਆ ਨਹੀਂ ਗਿਆ",
+       "recentchanges-label-plusminus": "ਸਫ਼ੇ ਵਿੱਚ ਇੰਨੀਆਂ ਬਾਈਟਾਂ ਦੀ ਤਬਦੀਲੀ ਹੋਈ",
        "recentchanges-legend-heading": "'''ਟੀਕਾ:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|ਨਵੇਂ ਸਫ਼ਿਆਂ ਦੀ ਸੂਚੀ]] ਵੀ ਵੇਖੋ)",
        "recentchanges-legend-plusminus": "(''±੧੨੩'')",
        "boteditletter": "ਬੋਟ",
        "number_of_watching_users_pageview": "[$1 ਵੇਖ ਰਹੇ ਹਨ {{PLURAL:$1|ਯੂਜ਼ਰ}}]",
        "rc_categories_any": "ਕੋਈ ਵੀ",
+       "rc-change-size-new": "$1 {{PLURAL:$|ਬਾਈਟ|ਬਾਈਟਾਂ}} ਤਬਦੀਲੀ ਤੋਂ ਬਾਅਦ",
        "newsectionsummary": "/* $1 */ ਨਵਾਂ ਭਾਗ",
        "rc-enhanced-expand": "ਵੇਰਵੇ ਵੇਖਾਓ",
        "rc-enhanced-hide": "ਵੇਰਵਾ ਲੁਕਾਓ",
        "nlinks": "$1 {{PLURAL:$1|ਲਿੰਕ|ਲਿੰਕ}}",
        "nmembers": "$1 {{PLURAL:$1|ਮੈਂਬਰ|ਮੈਂਬਰਾਂ}}",
        "nrevisions": "$1 {{PLURAL:$1|ਰੀਵਿਜ਼ਨ|ਰੀਵਿਜ਼ਨਾਂ}}",
-       "nviews": "$1 {{PLURAL:$1|ਫੇਰੀ|ਫੇਰੀਆਂ}}",
        "nimagelinks": "$1 {{PLURAL:$1|ਸਫ਼ੇ|ਸਫ਼ਿਆਂ}} ’ਤੇ ਵਰਤਿਆ ਹੋਇਆ",
        "ntransclusions": "$1 {{PLURAL:$1|ਸਫ਼ੇ|ਸਫ਼ਿਆਂ}} ’ਤੇ ਵਰਤਿਆ ਹੋਇਆ",
        "specialpage-empty": "ਇਸ ਰਿਪੋਟ ਦਾ ਕੋਈ ਨਤੀਜਾ ਨਹੀਂ ਹੈ।",
        "tooltip-pt-mycontris": "ਤੁਹਾਡੇ ਯੋਗਦਾਨਾਂ ਦੀ ਸੂਚੀ",
        "tooltip-pt-login": "ਤੁਹਾਨੂੰ ਦਾਖ਼ਲ ਹੋਣ ਲਈ ਪ੍ਰੇਰਿਆ ਜਾਂਦਾ ਹੈ; ਪਰ ਇਹ ਕੋਈ ਲਾਜ਼ਮੀ ਨਹੀਂ",
        "tooltip-pt-logout": "ਸਾਈਟ ਤੋਂ ਬਾਹਰ ਆਉ",
+       "tooltip-pt-createaccount": "ਤੁਹਾਨੂੰ ਖਾਤਾ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ ਲਾਗ ਇਨ ਕਰਨ ਦੀ ਸਲਾਹ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ; ਹਾਲਾਂਕਿ ਇਹ ਲਾਜ਼ਮੀ ਨਹੀਂ",
        "tooltip-ca-talk": "ਸਮਗੱਰੀ ਸਫ਼ੇ ਬਾਰੇ ਚਰਚਾ",
        "tooltip-ca-edit": "ਤੁਸੀਂ ਇਹ ਸਫ਼ਾ ਸੋਧ ਸਕਦੇ ਹੋ। ਕਿਰਪਾ ਕਰਕੇ ਤਬਦੀਲੀ ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਝਲਕ ਵੇਖੋ।",
        "tooltip-ca-addsection": "ਨਵਾਂ ਭਾਗ ਸ਼ੁਰੂ ਕਰੋ",
        "tooltip-search": "{{SITENAME}} ’ਤੇ ਖੋਜੋ",
        "tooltip-search-go": "ਠੀਕ ਇਸ ਨਾਮ ਵਾਲੇ ਪੰਨੇ ’ਤੇ ਜਾਉ, ਜੇ ਮੌਜੂਦ ਹੈ ਤਾਂ",
        "tooltip-search-fulltext": "ਇਸ ਲਿਖਤ ਲਈ ਸਫ਼ੇ ਲੱਭੋ",
-       "tooltip-p-logo": "ਮੁੱਖ ਸਫ਼ੇ ਤੇ ਜਾਓ",
+       "tooltip-p-logo": "ਮੁੱਖ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ",
        "tooltip-n-mainpage": "ਮੁੱਖ ਸਫ਼ੇ ’ਤੇ ਜਾਓ",
-       "tooltip-n-mainpage-description": "ਮੁੱਖ ਸਫ਼ੇ ਤੇ ਜਾਓ",
+       "tooltip-n-mainpage-description": "ਮੁੱਖ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ",
        "tooltip-n-portal": "ਪ੍ਰੋਜੈਕਟ ਬਾਰੇ, ਤੁਸੀਂ ਕੀ ਕਰ ਸਕਦੇ ਹੋ, ਕਿੱਥੇ ਕੁਝ ਲੱਭਣਾ ਹੈ",
        "tooltip-n-currentevents": "ਹਾਲ ਦੀਆਂ ਘਟਨਾਵਾਂ ਬਾਰੇ ਪਿਛੋਕੜੀ ਜਾਣਕਾਰੀ ਲੱਭੋ",
-       "tooltip-n-recentchanges": "ਵਿਕੀ ਵਿਚ ਹਾਲ ਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਸੂਚੀ",
+       "tooltip-n-recentchanges": "ਵਿਕੀ ਵਿਚ ਹਾਲ ਵਿੱਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਸੂਚੀ",
        "tooltip-n-randompage": "ਇੱਕ ਰਲ਼ਵਾਂ ਸਫ਼ਾ ਲੋਡ ਕਰੋ",
        "tooltip-n-help": "ਖੋਜਣ ਲਈ ਥਾਂ",
        "tooltip-t-whatlinkshere": "ਵਿਕੀ ਦੇ ਸਾਰੇ ਸਫ਼ਿਆ ਦੀ ਸੂਚੀ, ਜੋ ਇੱਥੇ ਜੋੜਦੇ ਹਨ",
        "svg-long-desc": "SVG ਫ਼ਾਈਲ, ਆਮ ਤੌਰ ’ਤੇ $1 × $2 ਪਿਕਸਲ, ਫ਼ਾਈਲ ਦਾ ਅਕਾਰ: $3",
        "show-big-image": "ਅਸਲ ਫਾਈਲ",
        "show-big-image-preview": "ਇਸ ਝਾਤ ਦਾ ਅਕਾਰ: $1.",
+       "show-big-image-other": "ਹੋਰ {{PLURAL:$2|ਰੈਜ਼ੋਲਿਊਸ਼ਨ|ਰੈਜ਼ੋਲਿਊਸ਼ਨਜ਼}}: $1.",
        "show-big-image-size": "$1 × $2 ਪਿਕਸਲ",
        "newimages": "ਨਵੀਆਂ ਫ਼ਾਈਲਾਂ ਦੀ ਗੈਲਰੀ",
        "newimages-legend": "ਫਿਲਟਰ",
        "exif-artist": "ਲੇਖਕ",
        "exif-copyright": "ਕਾਪੀਰਾਈਟ ਟਾਇਟਲ",
        "exif-exifversion": "ਐਗਜ਼ਿਫ਼ ਦਾ ਰੂਪ",
+       "exif-colorspace": "ਰੰਗ ਸਪੇਸ",
        "exif-pixelydimension": "ਤਸਵੀਰ ਦੀ ਚੌੜਾਈ",
        "exif-pixelxdimension": "ਤਸਵੀਰ ਦੀ ਲੰਬਾਈ",
        "exif-usercomment": "ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਟਿੱਪਣੀਆਂ",
        "logentry-newusers-newusers": "ਵਰਤੋਂਕਾਰ ਖਾਤਾ $1 ਬਣਾਇਆ ਗਿਆ",
        "logentry-newusers-create": "ਵਰਤੋਂਕਾਰ ਖਾਤਾ $1 ਬਣਾਇਆ ਗਿਆ",
        "logentry-newusers-create2": "ਵਰਤੋਂਕਾਰ ਖਾਤਾ $3, $1 ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ ਸੀ",
+       "logentry-upload-upload": "$1 ਨੇ $3 {{GENDER:$2|ਅਪਲੋਡ ਕੀਤਾ}}",
        "rightsnone": "(ਕੋਈ ਨਹੀਂ)",
        "revdelete-summary": "ਸੰਖੇਪ ਸੋਧ",
        "feedback-adding": "ਸਫ਼ੇ ਨਾਲ਼ ਵਿਚਾਰ ਜੁੜ ਰਹੇ ਹਨ...",
index a83fec2..4e27b54 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|element|elementy|elementów}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|element|elementy|elementów}}",
        "nrevisions": "$1 {{PLURAL:$1|wersja|wersje|wersji}}",
-       "nviews": "odwiedzono $1 {{PLURAL:$1|raz|razy}}",
        "nimagelinks": "Używane na $1 {{PLURAL:$1|stronie|stronach}}",
        "ntransclusions": "używany na $1 {{PLURAL:$1|stronie|stronach}}",
        "specialpage-empty": "Ta strona raportu jest pusta.",
index 8dea52f..7148987 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|membro|membros}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membro|membros}}",
        "nrevisions": "$1 {{PLURAL:$1|revisão|revisões}}",
-       "nviews": "$1 {{PLURAL:$1|visita|visitas}}",
        "nimagelinks": "Utilizada em $1 {{PLURAL:$1|página|páginas}}",
        "ntransclusions": "usada {{PLURAL:$1|numa página|em $1 páginas}}",
        "specialpage-empty": "Atualmente não há dados a serem exibidos nesta página.",
index e2522ca..3a81bc4 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|membro|membros}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membro|membros}}",
        "nrevisions": "$1 {{PLURAL:$1|edição|edições}}",
-       "nviews": "$1 {{PLURAL:$1|visita|visitas}}",
        "nimagelinks": "Usada {{PLURAL:$1|numa página|em $1 páginas}}",
        "ntransclusions": "usada {{PLURAL:$1|numa página|em $1 páginas}}",
        "specialpage-empty": "Não existem dados para apresentar.",
index dff3dfb..7288066 100644 (file)
        "copyrightwarning2": "Copyright warning displayed under the edit box in editor\n*$1 - license name",
        "editpage-head-copy-warn": "{{ignored}}Custom copyright warning in the header of an edit page.",
        "editpage-tos-summary": "{{notranslate}}",
+       "editpage-cannot-use-custom-model": "Error message shown if the database does not support changing the content model of a page.",
        "longpage-hint": "{{notranslate}}\n* <tt>$1</tt>: Size of the textbox formatted for output, using an appropriate unit ({{msg-mw|size-bytes}}, {{msg-mw|size-kilobytes}}, {{msg-mw|size-megabytes}}, {{msg-mw|size-gigabytes}})\n* <tt>$2</tt>: Size of the textbox in bytes, not formatnum",
        "longpageerror": "Warning displayed when trying to save a text larger than the maximum size allowed.\n\nParameters:\n* $1 - submitted size (in kilobytes)\n* $2 - maximum size (in kilobytes)",
        "readonlywarning": "Parameters:\n* $1 - reason",
        "nmembers": "Appears in brackets after each category listed on the special page [[Special:WantedCategories]].\n\nParameters:\n* $1 - the number of members of the category\nSee also:\n* {{msg-mw|Nmemberschanged}}",
        "nmemberschanged": "Appears in brackets after each category listed on the special page [[Special:WantedCategories]] if the number of pages in the category has changed since the list was last refreshed.\n\nParameters:\n* $1 - the original number of members of the category\n* $2 - the current one\nSee also:\n* {{msg-mw|Nmembers}}",
        "nrevisions": "Used as link text in [[Special:FewestRevisions]].\n\nThe link points to the page history (action=history).\n\nParameters:\n* $1 - number of revisions",
-       "nviews": "This message is used on [[Special:PopularPages]] to say how many times each page has been viewed.\n\nPreceded by the page title, like: Page title ($1 views)\n\nParameters:\n* $1 - the number of views",
        "nimagelinks": "Used on [[Special:MostLinkedFiles]] to indicate how often a specific file is used.\n\nParameters:\n* $1 - number of pages\nSee also:\n* {{msg-mw|Ntransclusions}}",
        "ntransclusions": "Used on [[Special:MostTranscludedPages]] to indicate how often a template is in use.\n\nParameters:\n* $1 - number of pages\nSee also:\n* {{msg-mw|Nimagelinks}}",
        "specialpage-empty": "Used on a special page when there is no data. For example on [[Special:Unusedimages]] when all images are used.",
        "special-characters-group-khmer": "{{Identical|Khmer}}",
        "special-characters-title-endash": "Title tooltip for the en dash character (–); See https://en.wikipedia.org/wiki/Dash",
        "special-characters-title-emdash": "Title tooltip for the em dash character (—); See https://en.wikipedia.org/wiki/Dash",
-       "special-characters-title-minus": "Title tooltip for the minus sign character (−), not to be confused with a hyphen"
+       "special-characters-title-minus": "Title tooltip for the minus sign character (−), not to be confused with a hyphen",
+       "mw-widgets-titleinput-description-new-page": "Description label for a new page in the title input widget.",
+       "mw-widgets-titleinput-description-redirect": "Description label for a redirect in the title input widget."
 }
index 1496d42..acc8753 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|membru|membri|de membri}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membru|membri|de membri}}",
        "nrevisions": "{{PLURAL:$1|o versiune|$1 versiuni|$1 de versiuni}}",
-       "nviews": "{{PLURAL:$1|o accesare|$1 accesări|$1 de accesări}}",
        "nimagelinks": "Utilizat pe $1 {{PLURAL:$1|pagină|pagini}}",
        "ntransclusions": "utilizat pe $1 {{PLURAL:$1|pagină|pagini}}",
        "specialpage-empty": "Această pagină este goală.",
index 15690b5..7d0cf38 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|membre|membre}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membre}}",
        "nrevisions": "$1 {{PLURAL:$1|revisione|revisiune}}",
-       "nviews": "$1 {{PLURAL:$1|visite|visite}}",
        "nimagelinks": "Ausate sus a $1 {{PLURAL:$1|pàgene|pàggene}}",
        "ntransclusions": "ausate sus a $1 {{PLURAL:$1|pàgene|pàggene}}",
        "specialpage-empty": "Non ge stonne resultete pe stu report.",
index b06fe21..d1647d9 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|объект|объекта|объектов}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|объект|объекта|объектов}}",
        "nrevisions": "$1 {{PLURAL:$1|версия|версии|версий}}",
-       "nviews": "$1 {{PLURAL:$1|просмотр|просмотра|просмотров}}",
        "nimagelinks": "Используется на $1 {{PLURAL:$1|странице|страницах}}",
        "ntransclusions": "используется на $1 {{PLURAL:$1|странице|страницах}}",
        "specialpage-empty": "Запрос не дал результатов.",
index a890c7e..fa51788 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|योजकः|योजकाः}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|सदस्यः|सदस्याः}}",
        "nrevisions": "$1 {{PLURAL:$1|पुनरावृत्तिः}}",
-       "nviews": "$1 {{PLURAL:$1|परिसन्धिः|परिसन्धयः}}",
        "nimagelinks": "$1 {{PLURAL:$1|पुटम्|पुटानि}} प्रयुक्तानि ।",
        "ntransclusions": "$1 {{PLURAL:$1|पुटम्|पुटानि}} प्रयुक्तानि ।",
        "specialpage-empty": "अस्य वृत्तस्य परिणामः नास्ति ।",
index 6b38049..1148f68 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|кыттааччы|кыттааччылаах}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|эбийиэк|эбийиэктээх}}",
        "nrevisions": "$1 {{PLURAL:$1|барыллаах|барыл баар}}",
-       "nviews": "$1 көрүүлээх",
        "nimagelinks": "$1 {{PLURAL:$1|сирэйгэ|ахсааннаах сирэйгэ}} туттуллар",
        "ntransclusions": "$1 {{PLURAL:$1|сирэйгэ|ахсааннаах сирэйгэ}} туттуллар",
        "specialpage-empty": "Көрдөөн тугу да булбата.",
diff --git a/languages/i18n/sdh.json b/languages/i18n/sdh.json
new file mode 100644 (file)
index 0000000..015e408
--- /dev/null
@@ -0,0 +1,629 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ashkan P.",
+                       "Calak",
+                       "Kurdbuddha",
+                       "Mjbmr",
+                       "Paraw2",
+                       "아라"
+               ]
+       },
+       "tog-numberheadings": "ژمارەکردنی خۆدکاری سەرتیترەکان",
+       "underline-always": "هەمیشە",
+       "underline-never": "هیچ وەخت",
+       "sunday": "یەێشەمە",
+       "monday": "دوشەممە",
+       "tuesday": "سێشەمە",
+       "wednesday": "چوارشەمە",
+       "thursday": "پەنجشەمە",
+       "friday": "جومعە",
+       "saturday": "شەممە",
+       "sun": "یەێشەمە",
+       "mon": "دووشەمە",
+       "tue": "سێشەمە",
+       "wed": "چوارشەمە",
+       "thu": "پەنجشەمە",
+       "fri": "جومعە",
+       "sat": "شەممە",
+       "january": "ژانویە",
+       "february": "فڤریە",
+       "march": "مارس",
+       "april": "ئاڤریل",
+       "may_long": "مەی",
+       "june": "ژووەن",
+       "july": "ژووئیە",
+       "august": "ئووت",
+       "september": "سپتامبر",
+       "october": "ئۆکتۆبر",
+       "november": "نۆڤامبر",
+       "december": "دسامبر",
+       "january-gen": "ژانویە",
+       "february-gen": "فڤریە",
+       "march-gen": "مارس",
+       "april-gen": "ئاڤریل",
+       "may-gen": "مەی",
+       "june-gen": "ژووەن",
+       "july-gen": "ژووئیە",
+       "august-gen": "ئووت",
+       "september-gen": "سپتامبر",
+       "october-gen": "ئۆکتۆبر",
+       "november-gen": "نۆڤامبر",
+       "december-gen": "دسامبر",
+       "jan": "ژانویه",
+       "feb": "فڤریە",
+       "mar": "مارس",
+       "apr": "ئاڤریل",
+       "may": "مەی",
+       "jun": "ژووەن",
+       "jul": "ژووئیە",
+       "aug": "ئووت",
+       "sep": "سپتامبر",
+       "oct": "ئۆکتۆبر",
+       "nov": "نۆڤامبر",
+       "dec": "دسامبر",
+       "pagecategories": "{{PLURAL:$1|پۆل|پۆلەگان}}",
+       "category_header": "پەڕەگان پۆل «$1»",
+       "subcategories": "ژێرپۆلەگان",
+       "category-media-header": "پەڕگەگان پۆل «$1»",
+       "category-empty": "''ئەی پۆلە ئێرەنگە ھۊچ پەڕە یا پەڕگەێگ لە خوەیا نیەگرێت.‌''",
+       "hidden-categories": "{{PLURAL:$1|پۆل شاریاێ}}",
+       "category-subcat-count": "{{PLURAL:$2|ئەی پۆلە تەنیا ژێرپۆل خوارەو لەتێیە.| ئەی پۆلە ئەی {{PLURAL:$1|ژێرپۆل|$1 ژێرپۆلەیل}} خوارەو لەتێیە، لە سەرجەم $2 گلە.}}",
+       "category-article-count": "{{PLURAL:$2|ئەی پۆلە تەنیا ئەی پەڕە لەخوەیگرتیە.|{{PLURAL:$1|پەڕە|$1 پەڕە}} لە ئەی پۆلە، لە سەرجەم $2 پەڕە ھەس.}}",
+       "category-file-count": "{{PLURAL:$2|ئەی پۆلە تەنیا ئەی پەڕە لەخوەیگرتیە.|{{PLURAL:$1|پەڕە|$1 پەڕە}} لە ئەی پۆلە، لە سەرجەم $2 پەڕە ھەس.}}",
+       "listingcontinuesabbrev": "(دریژە)",
+       "noindex-category": "پەڕە پێرستنەکریاێەگان",
+       "about": "دەربارە",
+       "newwindow": "(لە پەڕەێگ نوو واز کریەێد)",
+       "cancel": "لاوردن",
+       "moredotdotdot": "بیشتر",
+       "morenotlisted": "ئی لیستە تەواو نییە",
+       "mypage": "پەڕە",
+       "mytalk": "وەتوویش",
+       "navigation": "ڕێدەرکردن",
+       "qbfind": "پیا بکە",
+       "qbbrowse": "بگەرد",
+       "qbedit": "وێراشتە",
+       "qbpageoptions": "ئێ لاپەڕەیە",
+       "qbmyoptions": "پەڕەگانم",
+       "faq": "پرسیار و جواو (FAQ)",
+       "faqpage": "پرۆژە:پرسیار و جواو",
+       "actions": "کردارەگان",
+       "namespaces": "شوونناوەگان",
+       "variants": "شێوەزارەگان",
+       "errorpagetitle": "غەڵەت",
+       "returnto": "بەورەو ئڕاێ $1.",
+       "help": "یارمەتی",
+       "search": "مینە",
+       "searchbutton": "مینە",
+       "go": "بچوو",
+       "searcharticle": "بچوو",
+       "history": "دیروک پەڕە",
+       "history_short": "دیروک پەڕە",
+       "printableversion": "نسخەێ ئامادەێ چاپ",
+       "permalink": "بەسیار ھەمیشەیی",
+       "view": "دۊنن",
+       "edit": "وێراشتە",
+       "create": "درسکردن",
+       "delete": "لاوردن",
+       "protect": "بپیەرێزەێ",
+       "protect_change": "گووڕیان",
+       "newpage": "پەڕەێ نوو",
+       "talkpagelinktext": "وەتوویش",
+       "specialpage": "پەڕەێ تایوەت",
+       "personaltools": "ئامڕازە تاقەکەسیەگان",
+       "talk": "وەتوویش",
+       "views": "دۊننەگان",
+       "toolbox": "ئامڕازەگان",
+       "otherlanguages": "وە زوانەیل ترەک",
+       "redirectedfrom": "(ڕەوانەکریاێ لە $1)",
+       "lastmodifiedat": "ئەی پەڕە دۊاجار لە $2ی $1 نوو کریاس.",
+       "protectedpage": "پەڕەێ پاڕێزریا",
+       "jumpto": "واز بووە ئڕاێ:",
+       "jumptonavigation": "ڕێدەرکردن",
+       "jumptosearch": "مینە",
+       "aboutsite": "سەبارەت وە {{SITENAME}}",
+       "copyrightpage": "{{ns:project}}:مافەیل لەوەرگرتن",
+       "currentevents": "ڕووداوەیل ئێرەنگەیی",
+       "currentevents-url": "Project:ڕووداوەیل ئێرەنگەیی",
+       "disclaimers": "رەێکردن",
+       "disclaimerpage": "Project:رەێکردن گشتی",
+       "edithelp": "ڕێنوانی وێراشتەکردن",
+       "helppage-top-gethelp": "کۆمەک",
+       "mainpage": "دەسپێک",
+       "mainpage-description": "دەسپێک",
+       "policy-url": "پرۆژە:سیاسەت",
+       "portal": "دەرانەێ ئەوکاربەرەیل",
+       "portal-url": "Project:دەرانەێ ئەوکاربەرەیل",
+       "privacy": "سیاسەت ھەشاریەتی",
+       "privacypage": "Project:پیەرێزانن زانیاریەگان",
+       "ok": "باشە",
+       "retrievedfrom": "وەرگیریاێ لە «$1»",
+       "youhavenewmessages": "$1 دێڕی ($2).",
+       "editsection": "وێراشتە",
+       "editold": "وێراشتە",
+       "viewsourceold": "سەرچاوەگەێ بۊن",
+       "editlink": "وێراشتە",
+       "viewsourcelink": "سەرچاوەگەێ بۊن",
+       "editsectionhint": "وێراشتە کردن بەش: $1",
+       "toc": "ناوەرۆک",
+       "showtoc": "نیشانی بیە",
+       "collapsible-collapse": "جەمیەو کە",
+       "confirmable-yes": "بەڵێ",
+       "confirmable-no": "نە",
+       "feedlinks": "خۆراک:",
+       "site-atom-feed": "خواردەمەنی ئەتۆم ئڕاێ $1",
+       "page-atom-feed": "خواردەمەنی ئەتۆم ئڕاێ «$1»",
+       "red-link-title": "$1 (پەڕە بوون نەیرێد)",
+       "nstab-main": "پەڕە",
+       "nstab-user": "پەڕەێ ئەوکاربەر",
+       "nstab-special": "پەڕەێ تایوەت",
+       "nstab-project": "پەڕەێ پرۆژە",
+       "nstab-image": "پەڕگە",
+       "nstab-mediawiki": "پەیام",
+       "nstab-help": "پەڕەێ کۆمەک",
+       "nstab-category": "پول",
+       "missing-article": "دەیتابەیسەگە نەتۊەنست دەق پەڕەێگ وە ناو «$1» $2 پێیابکەێد ک ئەشێ پێیابکردیاتاد.\n\nئیە فرەتر لە مدووێ وەدۊاچین بەستیارێگ جیاواز یادیرۆک کۆنەێ پەڕەێگ سڕیاێ ڕوو دەێد.\n\nئەگەر لەێوا نیە، ئەوە گەھا گرفتێگ لەێ نەرمامێرە پێیاکردیەسە.\nتکایە ئیە وە ئاماژەدان وە ناونیشان URLـەگەیەو وە [[Special:ListUsers/sysop|وەڕێوەوەرێگ]] ڕاپۆرت بدە.",
+       "missingarticle-rev": "(نسخە#: $1)",
+       "badtitle": "ناونیشان خراو",
+       "badtitletext": "سەرناو پەڕەێ داخوازیاێ بەتاڵە، چووڵە یا سەرناوێگ نێوان-زوانی یا نێوان-ویکیئیە ک وە شێوەێگ ھەڵە بەسیار پی دەریاس.\nگەھا یەک یا چەند کاراکتر لەتێ بوود ک نیەکریەێد لە سەرناوەگان ئەوکار بوەێد.",
+       "viewsource": "سەرچاوەگەێ بۊن",
+       "yourname": "ناو ئەوکاربەری",
+       "userlogin-yourname": "ناو ئەوکاربەری",
+       "userlogin-yourname-ph": "ناو ئەوکاربەریت بنۊس",
+       "createacct-another-username-ph": "ناو ئەوکاربەریت بنۊس",
+       "yourpassword": "تێپەڕوشە",
+       "userlogin-yourpassword": "تێپەڕوشە",
+       "userlogin-yourpassword-ph": "تێپەڕوشەگەت بنۊس",
+       "createacct-yourpassword-ph": "تێپەڕوشەێگ بنۊس",
+       "yourpasswordagain": "دیسان تێپەڕوشەگە بنۊسەو:",
+       "remembermypassword": "تێپەروشەگەم لەسەر ئەی کامپیوترە پاشدەس بکە (ئەو پەڕی $1 {{PLURAL:$1|ڕووژ}}ە)",
+       "login": "بچووە ناو",
+       "nav-login-createaccount": "بچووە ناو / ھەژمار درس بکە",
+       "userlogin": "بچووە ناو / ھەژمار درس بکە",
+       "userloginnocreate": "بچووە ناو",
+       "logout": "بچووە دەیشت",
+       "userlogout": "بچووە دەرەو",
+       "nologin": "ھەژمار نەێری؟  $1.",
+       "nologinlink": "ھەژمارێگ درس بکە",
+       "createaccount": "ھەژمار درس بکە",
+       "gotaccount": "لێرە ھەژمار دێرید؟ $1.",
+       "gotaccountlink": "بچووە ناو",
+       "userlogin-resetlink": "وردەکاریەیل ناوچینت لە ھۊرەو بردیتە؟",
+       "createacct-emailrequired": "ناونیشان ئیمەیل",
+       "createaccountreason": "هووکار:",
+       "createacct-reason": "هووکار",
+       "nouserspecified": "بایەد ناو ئەوکاربەری دابین بکەی.",
+       "login-userblocked": "ئەێ ئەوکاربەرە بلاک کریاێە. چۊنە ناو قەدەغەنە.",
+       "mailmypassword": "تێپەڕوشەێگ نوو بنارە ئڕاێ ئیمەیلەگەم",
+       "accountcreated": "هەژمار درس کریا",
+       "loginlanguagelabel": "زوان: $1",
+       "pt-login": "بچووە ناو",
+       "pt-login-button": "بچووە ناو",
+       "oldpassword": "تێپەڕوشەێ قەدیمی:",
+       "newpassword": "تێپەڕوشەێ نوو:",
+       "retypenew": "تێپەڕوشەێ نوو دوبارە بنۊسەو:",
+       "passwordreset-username": "ناو ئەوکاربەری:",
+       "changeemail-none": "(هۊچ)",
+       "bold_sample": "دەق پڕرەنگ",
+       "bold_tip": "دەق پڕرەنگ",
+       "italic_sample": "دەق کەژ",
+       "italic_tip": "دەق کەژ",
+       "link_sample": "سەردێڕ بەسیار",
+       "link_tip": "بەسیار ناوخوەێ",
+       "extlink_sample": "http://www.example.com سەردێڕ بەسیار",
+       "extlink_tip": "بەسیار دەرەکی (لەھۊرت بوود نۊسین پێشگر http:// )",
+       "headline_sample": "دەق سەردێڕ",
+       "headline_tip": "سەردێڕ ئاست ۲",
+       "nowiki_sample": "لە ئیرە دەق نەڕازانیاێ تێ‌بخە",
+       "nowiki_tip": "لەوەرچاو نەگرتن داڕشانەگان ویکی",
+       "image_tip": "وێنەێ ناو دەق",
+       "media_tip": "بەسیار پەڕگە",
+       "sig_tip": "ئیمزاگەت وەرد مۆر ڕێکەفت",
+       "hr_tip": "هێڵ ئاسوویی (کەم ئەوکاری بوەین)",
+       "summary": "کورتەێ وێراشتە:",
+       "minoredit": "ئیە وێراشتەێگ بۊچگە",
+       "watchthis": "ئەی پەڕە بخە ژێر چاودێری",
+       "savearticle": "پەڕەگە پاشدەس بکە",
+       "preview": "پێشدۊنن",
+       "showpreview": "پێشدۊنن نیشان بدە",
+       "showdiff": "گووڕانکاریەگان نیشان بدە",
+       "anoneditwarning": "'''ھۆشیار بوو:''' نەچیتەسە ناو.\nناونیشان IP تۆ لە دیرۆک وێراشتەگان ئەی پەڕەیە تۆمار کریەێد.",
+       "newarticle": "(نوو)",
+       "newarticletext": "وە دۊاێ بەستیار پەڕەێگ کەفتیە کە ھێمان درس نەکریاس.\nئڕاێ درس کردن پەڕەگە، لە چوارچووەگەی خوارەو دەس بکە وە تایپ کردن. (ئڕاێ زانیاری فرەتر\n[$1 یارمەتی] بۊنە).\nئەگەر وە ھەڵە ھاتیدە ئێرە، لە سەر دوگمەێ '''back''' وێبگەڕەگەت کلیک بکە.",
+       "noarticletext": "ئێرەنگە ھۊچ دەقێگ لەی پەڕە نیە.\nتۊەنید ئڕاێ ئەی ناوە لە [[Special:Search/{{PAGENAME}}|پەڕەگان ترەک مینە بکەید]]، <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} لە پێرستەگان مینە بکەید]، یا [{{fullurl:{{FULLPAGENAME}}|action=edit}} ئەی پەڕەیە وێراشتە بکەید]</span>.",
+       "noarticletext-nopermission": "ئێرەنگە ھۊچ دەقێگ لە ئەی پەڕەیە نیە.\nتۊەنی لە پەڕەگان تر [[Special:Search/{{PAGENAME}}|ئەڕاێ ئەی ناوە بگەڕی]]، یا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} لە لۆگە پەیوەندیدارەگان بگەڕی]</span>، وەڵێم نیەتۊەنی ئەی پەڕەیە درس بکەی.",
+       "updated": "(وەڕووژکریا)",
+       "previewnote": "'''لە ھۊرت نەچوود ئیە تەنیا پێشدۊننە.'''\nگووڕانکاریەگانت ھێمان پاشدەس نەکریانە!",
+       "editing": "وێراشتەکردن $1",
+       "editingsection": "وێراشتەکردن: $1 (بەش)",
+       "yourdiff": "جیاوازیەیل",
+       "templatesused": "ئەو {{PLURAL:$1|داڕێژە ک لە ئەی پەڕە ئەوکاربریاێە|داڕێژەیلە ک لە ئەی پەڕە ئەوکاربریانە}}:",
+       "template-protected": "(پیەرێزیاێ)",
+       "template-semiprotected": "(نیوەپیەرێزیاێ)",
+       "hiddencategories": "ئەی پەڕە ئەندام {{PLURAL:$1|١ پۆل شاریاێە|$1 پۆل شاریاێە}}:",
+       "permissionserrorstext-withaction": "لەسەر ئەی {{PLURAL:$1|مدوو|مدووەیل}} خوارەو، دەسەڵات نەێرید ئەڕاێ $2:",
+       "recreate-moveddeleted-warn": "'''ھووشیار بوو: لەپسا پەڕەێگ درس کەید ک لە پێشەو سڕیاێە.'''\n\nئیە لەوەر چاو بگرە کە وێراشتەکردن ئەی پەڕە وەقازاشتە یا نە.\nپێرست سڕاندن و جیوەجیکردن ئەی پەڕە ئڕاێ ئاسانی لێرە ھاتیە:",
+       "moveddeleted-notice": "ئەی پەڕەیە سڕیاێە.\nپێرست سڕاندن و جیوەجیکردن ئڕاێ پەڕەگە لە ژێرەو نیشان دەریاس.",
+       "content-model-wikitext": "ویکیدەق",
+       "content-model-text": "دەق ساکار",
+       "content-model-javascript": "جاڤاسکریپت",
+       "post-expand-template-inclusion-warning": "'''ئاگاداری:''' قەوارەێ داڕێژەگە فرە گەورەس.\nپوورێد بڕێگ لە داڕێژەگان لەخوەیەو نەگرێتەو.",
+       "post-expand-template-inclusion-category": "ئەو لاپەڕەیلە ک قەوارەێ داڕێژەێەیل تێان لە ھەد تێپەڕۊە",
+       "post-expand-template-argument-warning": "'''ئاگاداری:''' ئەی پەڕە لانکەم یەک داڕێژە لەتێیە کە قەوارەێ فرە گەورەس.<br />\nئەی وەڵگە (argument) ئەوکار نەخریاێە.",
+       "post-expand-template-argument-category": "ئەو پەڕەیلێگ ک داڕێژەێ ئەوکارنەخریاێ لەتێیانە",
+       "viewpagelogs": "لۆگەگان ئەی پەڕەیە بۊن",
+       "currentrev-asof": "دۊایین نسخە $1",
+       "revisionasof": "وازخوەنی نسخەێ $1",
+       "revision-info": "نسخەێ $1 لە لایەن $2",
+       "previousrevision": "→نسخەێ کۆنەتر",
+       "nextrevision": "نسخەێ نووتر←",
+       "currentrevisionlink": "نسخەێ ئێرەنگە",
+       "cur": "ئێرەنگە",
+       "next": "پاش",
+       "last": "پێشین",
+       "page_first": "یەکمین",
+       "page_last": "دۊایین",
+       "histlegend": "ھەڵوژانن جیاوازی: نسخەگان ئڕاێ ھەڵسەنگانین دیاری بکە و ئینتر یا دوگمەگەێ خوارەو بکوتە.<br />\nڕێنوانی: '''({{int:cur}})''' = جیاوازی وەگەرد دۊایین نسخە، '''({{int:last}})''' = جیاوازی وەگەرد نسخەێ پێشین، '''{{int:minoreditletter}}''' = وێراشتەێ بۊچگ.",
+       "history-fieldset-title": "گەشت دیرۆک",
+       "history-show-deleted": "تەنیا سڕیاێەگان",
+       "histfirst": "کۆنەترین",
+       "histlast": "نووترین",
+       "historyempty": "(پووچ)",
+       "rev-delundel": "نیشان بدە/بشارەو",
+       "revdelete-show-file-submit": "بەڵێ",
+       "revdel-restore": "دیمەنەگەێ بگووڕنە",
+       "mergehistory-reason": "هووکار:",
+       "revertmerge": "لەیەک جیاکردن",
+       "history-title": "دیرۆک وازخوانیەگان «$1»",
+       "lineno": "ھێڵ $1:",
+       "compareselectedversions": "نسخە ھەڵوژیاێەگان ھەڵبسەنگنە",
+       "editundo": "بەتاڵکردن",
+       "searchresults": "ئاکامەگان مینە",
+       "searchresults-title": "ئاکامەگان مینە ئڕاێ «$1»",
+       "prevn": "{{PLURAL:$1|$1}}ی پێشین",
+       "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]] » درس بکە!'''",
+       "searchprofile-articles": "پەڕەگان ناوەڕۆکی",
+       "searchprofile-images": "مالتیمیدیا",
+       "searchprofile-everything": "گشت چشت",
+       "searchprofile-advanced": "پێشکەفتێ",
+       "searchprofile-articles-tooltip": "مینە لە $1",
+       "searchprofile-images-tooltip": "مینە ئڕاێ پەڕگەگان",
+       "searchprofile-everything-tooltip": "لە گشت ناوەرۆکێگ مینە بکە (تەنانەت پەڕەگان وتوویشیش)",
+       "searchprofile-advanced-tooltip": "مینە لەناو شوونناوە دڵخوازەگان",
+       "search-redirect": "(ڕەوانەکەر $1)",
+       "search-section": "(بەش $1)",
+       "search-suggest": "ئایا مەبەستت ئیە بۊ: $1",
+       "search-interwiki-more": "(زوورم)",
+       "searchrelated": "پێوەس",
+       "searchall": "گشت",
+       "search-nonefound": "ھۊچ ئاکامێگ کە وە داواکاریەگەت بخوەێد پێیا نۊ.",
+       "powersearch-toggleall": "گشت",
+       "mypreferences": "ھەڵوژیاێەیل",
+       "prefs-skin": "پووستە",
+       "prefs-editing": "وێراشتەکردن",
+       "searchresultshead": "مینە",
+       "timezoneregion-africa": "ئافریقا",
+       "timezoneregion-america": "ئامریکا",
+       "timezoneregion-asia": "ئاسیا",
+       "timezoneregion-australia": "ئۆسترالیا",
+       "timezoneregion-europe": "ئورووپا",
+       "timezoneregion-indian": "ئوقیانووس هند",
+       "prefs-searchoptions": "جوورسن",
+       "youremail": "ئیمەیل",
+       "yourrealname": "ناو ڕاسەگانی:",
+       "yourlanguage": "زوان:",
+       "email": "ئیمەیل",
+       "prefs-help-email": "دانان ناونیشان ئیمەیل دڵخوازانەس، وەڵێم ئەگەر تێپەڕوشەگەت لە ھۊرتەو بچوود، ئەڕاێ نووکردن تێپەڕوشە ھەوەجە پی ھەس.",
+       "prefs-help-email-others": "ھەرلەێوا تۊەنی ھەڵوژانید ک ئەوکاربەرەیل تر، لە ڕێگەێ پەڕەێ ئەوکاربەریەگەت یا وەتوویشەگەت، بێ ئاشکراکردن کەسایەتیت، پێوەندی وەگەردت بگرن.\nئیمەیلەگەت تا کاتێگ ک کەسێگ وەگەردت پێوەندی بگرێد، ئاشکرا نیەود.",
+       "prefs-editor": "وێراشتەکەر",
+       "group-all": "(گشت)",
+       "right-read": "خوەنین پەڕەگان",
+       "right-edit": "وێراشتەکردن پەڕەگان",
+       "newuserlogpage": "پێرست درسکردن ئەوکاربەر",
+       "action-edit": "ئەی پەڕە وێراشتە بکە",
+       "nchanges": "$1 {{PLURAL:$1|گووڕانکاری}}",
+       "recentchanges": "دۊایین گووڕانکاریەیل",
+       "recentchanges-legend": "ھەڵوژیاێەگان دۊایین گووڕانکاریەگان",
+       "recentchanges-feed-description": "شوون دۊایین گووڕانکاریەگان ئەی ویکیە بگرە لە ئەی «خواردەمەنی»ەو.",
+       "recentchanges-label-newpage": "ئەی وێراشتەیە لاپەڕەێگ نوو درس کرد",
+       "recentchanges-label-minor": "ئییە وێراشتەێگ بۊچگە",
+       "recentchanges-label-bot": "ئەی وێراشتە لە لایەن بۆتێگ پێک هاتیە",
+       "recentchanges-label-unpatrolled": "ئەی وێراشتەیە ھێمان پاس نەدریاس",
+       "rcnotefrom": "لە خوارەو گووڕانکاریەگان لە '''$2'''ەو (تا '''$1''' نیشاندەریاس).",
+       "rclistfrom": "گووڕانکاریە نووەگان نیشان بدە وە دەسپێکردن لە $3 $2",
+       "rcshowhideminor": "وێراشتە بۊچگەیل $1",
+       "rcshowhidebots": "بۆتەگان $1",
+       "rcshowhideliu": "ئەوکاربەرە تۆمارکریاێەگان $1",
+       "rcshowhideanons": "ئەوکاربەرە نەناسیاوەگان $1",
+       "rcshowhidepatr": "وێراشتە نەگەردیاێەگان $1",
+       "rcshowhidemine": "وێراشتەگانم $1",
+       "rclinks": "دۊایین $1 گووڕانکاری $2 ڕووژ ویەردە نیشان بدە<br />$3",
+       "hist": "دیرۆک",
+       "hide": "بشارەو",
+       "minoreditletter": "بێجگە",
+       "rc-enhanced-expand": "وردەکاریەگان نیشان بدە",
+       "rc-enhanced-hide": "وردەکاریەگان بشارەو",
+       "recentchangeslinked": "گووڕانکاریە پەیوەندیدارەگان",
+       "recentchangeslinked-toolbox": "گووڕانکاری پەیوەندیدارەگان",
+       "recentchangeslinked-title": "گووڕانکاریە پەیوەندیدارەگان وە \"$1\" ـەو",
+       "recentchangeslinked-summary": "ئیە پێرستێگ لە گووڕانکاریەگان دۊایی لە ئەو پەڕەیلەسە ک بەسیار دێرن لە پەڕەێگ دیاریکریاێ (یا ئڕاێ ئەندامەگان پۆلێگ دیاریکریاێ)\nپەڕەگان [[Special:Watchlist|پێرست چاودێریەگەت]] '''پڕرەنگن'''.",
+       "recentchangeslinked-page": "ناو پەڕە:",
+       "recentchangeslinked-to": "وەجیگەێ ئەوە، گووڕانکاریەگان ئەو پەڕەیلە نیشان بدە ک بەسیار وە پەڕەی دیاریکریاێ دێرن.",
+       "upload": "پەڕگەێگ بار بکە",
+       "uploadlogpage": "پێرست بارکردن",
+       "filesource": "سەرچاوە:",
+       "license": "مۆڵەتناوە:",
+       "license-header": "مۆڵەتناوە",
+       "imgfile": "پەڕگە",
+       "listfiles": "پێرست پەڕگەیل",
+       "listfiles_name": "ناو",
+       "listfiles_user": "ئەوکاربەر",
+       "listfiles_count": "وەشانەیل",
+       "listfiles-latestversion-yes": "ئەرێ",
+       "listfiles-latestversion-no": "نە",
+       "file-anchor-link": "پەڕگە",
+       "filehist": "دیرۆک پەڕگە",
+       "filehist-help": "کرتە بکە لەسەر یەکێگ لە ڕێکەوت/کاتەگان ئڕاێ دۊنن پەڕگەگە وە ئەو شێوەێ لەو کاتە بۊە.",
+       "filehist-revert": "وەرۊپاش کردن",
+       "filehist-current": "دەق ئێرەنگەیی",
+       "filehist-datetime": "ڕێکەفت/سات",
+       "filehist-thumb": "بەن کلگی",
+       "filehist-thumbtext": "بەن کلگی ئڕاێ نسخەێ  $1",
+       "filehist-user": "ئەوکاربەر",
+       "filehist-dimensions": "ئەنازە",
+       "filehist-comment": "شرۆڤە",
+       "imagelinks": "ئەوکاربردن پەڕگە",
+       "linkstoimage": "لە ئەی {{PLURAL:$1|پەڕەێ خوارەو بەسیار دریانە|$1 پەڕەێ خوارەو بەسیار دریانە}} ئڕاێ ئەی پەڕگە:",
+       "nolinkstoimage": "‌لاپەڕەێگ نیە ک بەسیار وە ئەی پەڕگە بیاشتاد.",
+       "sharedupload-desc-here": "ئەی پەڕگە لە $1ەوەسە و پووڕێد لە پرۆژەگان دیگەیش ئەوکار بیاتاد.\nپێناسەگەێ لەسەر [$2 پەڕەێ شیەوکردن پەڕگەگە] لە خوارەو نیشان دریاس.",
+       "randompage": "پەڕەێگ وەناکاو",
+       "statistics": "ئامارەگان",
+       "statistics-pages": "پەڕەیل",
+       "pageswithprop-submit": "بچوو",
+       "brokenredirects-edit": "وێراشتە",
+       "prefixindex": "گشت پەڕەگان وە پێشگرەو",
+       "protectedpages-page": "پەڕە",
+       "protectedpages-unknown-timestamp": "نەناسریاێ",
+       "protectedpages-unknown-performer": "ئەوکاربەر نەناسریاێ",
+       "listusers": "پێرست ئەوکاربەرەیل",
+       "usercreated": "لە $1، $2 {{GENDER:$3|درس کریاس}}",
+       "newpages": "پەڕە نووەگان",
+       "newpages-username": "ناو ئەوکاربەری:",
+       "move": "جیوەجیکردن",
+       "pager-newer-n": "{{PLURAL:$1|یەکێگ نووتر|$1 نووتر}}",
+       "pager-older-n": "{{PLURAL:$1|یەکێگ کۆنەتر|$1ی کۆنەتر}}",
+       "booksources": "سەرچاوەگان کتاو",
+       "booksources-search-legend": "مینەێ سەرچاوەێ کتاو بکە",
+       "booksources-search": "گەردین",
+       "log": "لۆگەگان",
+       "allpages": "گشت پەڕەگان",
+       "allarticles": "گشت پەڕەگان",
+       "allpagessubmit": "بچوو",
+       "categories": "پۆلەگان",
+       "linksearch-ok": "مینە",
+       "linksearch-line": "$1 بەسیارپێ‌دەریاێە لە $2",
+       "listgrouprights-rights": "مافەیل",
+       "listgrouprights-members": "(پێرست ئەندامەگان)",
+       "trackingcategories-name": "ناو پەیام",
+       "emailuser": "ئیمەیل بنارە ئەڕاێ ئەی ئەوکاربەرە",
+       "emailusername": "ناو ئەوکاربەری:",
+       "emailmessage": "پەیام:",
+       "emailsend": "کل بکە",
+       "watchlist": "پێرست چاودێری",
+       "mywatchlist": "پێرست چاودێری",
+       "watchlistfor2": "ئڕاێ $1 $2",
+       "unwatch": "لاوردن چاودێری",
+       "watchlist-details": "بێجگە پەڕەگان وەتوویش، {{PLURAL:$1|$1 پەڕە}} لە پێرست چاودێریەگەتە.",
+       "wlshowlast": "دۊایین $1 دەمژمار $2 ڕووژ  نیشان بدە",
+       "watchlist-options": "ھەڵوژیاێەگان پێرست چاودێری",
+       "actioncomplete": "کردارەگە وە ئەنجام رەسی",
+       "actionfailed": "کردارەگە سەرنەکەفت",
+       "dellogpage": "پێرست لاوردنەگان",
+       "rollbacklink": "گەڕانن",
+       "protectlogpage": "پێرست پیەرێزکردن",
+       "protectedarticle": "«[[$1]]» پیەرێزان",
+       "restriction-edit": "وێراشتە",
+       "undeletelink": "بۊنە/بارەوەێ",
+       "undeleteviewlink": "دۊنن",
+       "undelete-search-submit": "مینە",
+       "undelete-show-file-submit": "بەڵێ",
+       "namespace": "شوونناوەگان",
+       "invert": "ھەڵوژیاێەگان وەزێزەو بکە",
+       "contributions": "بەشدارییەگان {{GENDER:$1|ئەوکاربەر}}",
+       "contributions-title": "بەشداریەگان ئەوکاربەر $1",
+       "mycontris": "بەشداریەیل",
+       "contribsub2": "ئڕاێ {{GENDER:$3|$1}} ($2)",
+       "uctop": "(ئێرەنگە)",
+       "month": "لە مانگ (و پێشتر لەوە):",
+       "year": "لە ساڵ (و پێشتر لەوە):",
+       "sp-contributions-newbies": "تەنیا بەشداریەگان ئەوکاربەرە تازەگان نیشان بدە",
+       "sp-contributions-blocklog": "پێرست بەساێن",
+       "sp-contributions-uploads": "بارکردنەگان",
+       "sp-contributions-logs": "پێرستەگان",
+       "sp-contributions-talk": "وەتوویش",
+       "sp-contributions-search": "مینە کردن ئڕاێ بەشداریەگان",
+       "sp-contributions-username": "ناونیشان ئایپی (IP) یا ناو ئەوکاربەری:",
+       "sp-contributions-toponly": "تەنیا ئەو وێراشتەیلە نیشانبدە ک دۊایین نسخەن",
+       "sp-contributions-submit": "مینە بکە",
+       "whatlinkshere": "بەسیارەگان وە ئێرە",
+       "whatlinkshere-title": "ئەو پەڕەیلە ک وە «$1» بەسیار دێرن",
+       "whatlinkshere-page": "پەڕە:",
+       "linkshere": "ئەی پەڕەیلە بەستیار دێرن وە '''[[:$1]]''':",
+       "nolinkshere": "هۊچ لاپەڕەێگ بەسیار وە '''[[:$1]]''' نەێرێد .",
+       "isredirect": "پەڕەێ ڕەوانەکەر",
+       "istemplate": "ناوتەپیاێەگان (transclusions)",
+       "isimage": "بەسیار پەڕگە",
+       "whatlinkshere-prev": "{{PLURAL:$1|پێشتر|$1 پێشتر}}",
+       "whatlinkshere-next": "{{PLURAL:$1|دیگە|$1 تر}}",
+       "whatlinkshere-links": "← بەسیارەگان",
+       "whatlinkshere-hideredirs": "ڕەوانەکەرەگان $1",
+       "whatlinkshere-hidetrans": "$1 ناوتەپیاێەگان (transclusions)",
+       "whatlinkshere-hidelinks": "$1 بەسیار",
+       "whatlinkshere-hideimages": "$1 بەسیارەگان پەڕگە",
+       "whatlinkshere-filters": "پاڵووینکەرەگان",
+       "ipboptions": "٢ دەمژمار:2 hours,١ رووژ:1 day,٣ رووژ:3 days,١ ھەفتە:1 week,٢ ھەفتە:2 weeks,١ مانگ:1 month,٣ مانگ:3 months,٦ مانگ:6 months,١ ساڵ:1 year,بێ‌سنوور:infinite",
+       "ipblocklist": "ئەوکاربەرە بەسریاێەگان",
+       "ipblocklist-submit": "مینە",
+       "blocklink": "بەسان",
+       "unblocklink": "بەسان لاوە",
+       "change-blocklink": "بەسان بگووڕنەو",
+       "contribslink": "بەشداریەیل",
+       "blocklogpage": "پێرست بەساێن",
+       "blocklogentry": "[[$1]] ئڕاێ ماوەێ $2 بەسان $3",
+       "block-log-flags-nocreate": "درسکردن ھەژمار ناچالاک کریا",
+       "movelogpage": "پێرست جیوەجیکردن",
+       "revertmove": "وەرۊپاش کردن",
+       "export": "ھەناردن پەڕەگان",
+       "allmessagesname": "ناو",
+       "allmessagesdefault": "دەق بنەڕەتی (Default)",
+       "allmessages-filter-all": "گشت",
+       "allmessages-language": "زوان",
+       "allmessages-filter-submit": "بچوو",
+       "allmessages-filter-translate": "ھەڵگەردانن",
+       "thumbnail-more": "گەورەکردن",
+       "thumbnail_error": "هەڵە لە کات درست‌کردن بەن کلگی: $1",
+       "tooltip-pt-userpage": "پەڕەێ ئەوکاربەریەگەت",
+       "tooltip-pt-mytalk": "پەڕەێ وەتوویشەگەت",
+       "tooltip-pt-preferences": "ھەڵوژیاێەیلت",
+       "tooltip-pt-watchlist": "پێرست ئەو پەڕەیل ک چاودێری لە گووڕانکاریەگانیان کەید",
+       "tooltip-pt-mycontris": "پێرست بەشداریەیلت",
+       "tooltip-pt-login": "پێشنیار ئەوپیت کریەێد بچیدە ناو؛ ھەرچەن زووری نیە",
+       "tooltip-pt-logout": "دەرچین",
+       "tooltip-ca-talk": "وەتوویش سەبارەت وە ناوەڕۆک پەڕە",
+       "tooltip-ca-edit": "تۊەنی وێراشتەێ ئەی پەڕەیە بکەید. تکایە وەر لە پاشدەسکردن دوگمەێ پێشدۊنن ئەوکاربوەێن.",
+       "tooltip-ca-addsection": "بەشێگ نوو دەس پی بکە",
+       "tooltip-ca-viewsource": "ئەی پەڕە پیەرێزیاێە.\nتۊەنی سەرچاوەگەێ بۊنید",
+       "tooltip-ca-history": "نسخەگان پێشین ئەی پەڕە",
+       "tooltip-ca-protect": "ئەی پەڕە بپارێزەو",
+       "tooltip-ca-delete": "ئەی پەڕەیە بسڕەو",
+       "tooltip-ca-move": "ئەی پەڕە جیوەجی بکە",
+       "tooltip-ca-watch": "ئەی پەڕە بخە سەر پێرست چاودێریت",
+       "tooltip-ca-unwatch": "ئەی پەڕە لە پێرست چاودێریەگەت لابدە",
+       "tooltip-search": "لە {{SITENAME}} مینە بکە",
+       "tooltip-search-go": "ئەگەر پووڕێد بچوو پەڕەێگ ک وە تەواوی ئەی ناوە بیاشتاد",
+       "tooltip-search-fulltext": "لە پەڕەگان مینە بکە ئڕا ئەی دەقە",
+       "tooltip-p-logo": "دۊنن پەڕەێ دەسپێک",
+       "tooltip-n-mainpage": "سەردان پەڕەێ سەرەکی بکە",
+       "tooltip-n-mainpage-description": "سەردان پەڕەێ سەرەکی بکە",
+       "tooltip-n-portal": "سەبارەت وە پڕۆژەگە، چە تۊەنی بکەید، لە کوورە چشتەگان پێیا بکەید",
+       "tooltip-n-currentevents": "سەبارەت وە ڕووداوەیل ئێرەنگەیی زانیاری پێشینە وەدەس بارین",
+       "tooltip-n-recentchanges": "پێرست دۊایین گووڕانکاریەیل لە ئەی ویکیە",
+       "tooltip-n-randompage": "پەڕەێ وەناکاوێگ نیشان بدە",
+       "tooltip-n-help": "جێگەێ ئەورەسین",
+       "tooltip-t-whatlinkshere": "پێرست گشت پەڕەگان ویکی ک بەسیار دریانە وە ئێرە",
+       "tooltip-t-recentchangeslinked": "دۊایین گووڕانکاریەگان لە ئەو پەڕەیلە ک ئەی پەڕە وەپیان بەسیار دێرد",
+       "tooltip-feed-atom": "خواردەمەنی ئەتۆم ئڕاێ ئەی پەڕە",
+       "tooltip-t-contributions": "پێرست بەشداریەگان ئەی ئەوکاربەر",
+       "tooltip-t-emailuser": "ئیمەیلێگ بنارە ئڕاێ ئەی ئەوکاربەرە",
+       "tooltip-t-specialpages": "پێرست گشت پەڕە تایوەتەگان",
+       "tooltip-t-print": "نسخەێ چاپی ئەی پەڕە",
+       "tooltip-t-permalink": "بەسیار ھەمیشەیی وە ئەی وەشان لە ئەی پەڕە",
+       "tooltip-ca-nstab-main": "دۊنن پەڕەێ ناوەڕۆک",
+       "tooltip-ca-nstab-user": "پەڕەێ ئەوکاربەر تەماشا بکە",
+       "tooltip-ca-nstab-special": "ئیە پەڕەێگ تایبەتە، نیەتۊەنی خوەێ ئەی پەڕە وێراشتە بکەید",
+       "tooltip-ca-nstab-project": "دۊنن پەڕەێ پرۆژە",
+       "tooltip-ca-nstab-image": "دۊنن پەڕەێ پەڕگە",
+       "tooltip-ca-nstab-template": "دۊنن قاڵبەگە",
+       "tooltip-ca-nstab-category": "پەڕەێ پۆلەگە بۊن",
+       "tooltip-minoredit": "ئیە وەک گووڕانکاریەێگ بۊچگ دیاریەو بکە",
+       "tooltip-save": "گووڕانکاریەگان خوەت پاشدەس بکە",
+       "tooltip-preview": "پێشدۊنن گووڕانکاریەگان، تکایە پێش لە پاشدەس کردن، ئیە ئەوکار بوەین.",
+       "tooltip-diff": "نیشاندان گووڕانکارییەگانت لە دەقەگە",
+       "tooltip-compareselectedversions": "جیاوازیەگان دو دەق دیاریکریاێەگەێ ئەی پەڕە بۊنە.",
+       "tooltip-watch": "ئەی پەڕە بخە سەر پێرست چاودێریت",
+       "tooltip-upload": "دەسکردن وە بارکردن",
+       "tooltip-rollback": "«گەڕانن» گووڕانکاری/گووڕانکاریەگان ئەی پەڕە وە یەک کرتە گەڕانێدەو ئڕاێ دۊایین بەشداریکەر",
+       "tooltip-undo": "«بەتاڵکردن» ئەی گووڕانکاریە گووڕنێدەو و فۆرم وێراشتەکردن لە شێوەی پێشدۊنن وازەو کەێد. ئەی جوورە پووڕێد مدووێگ لە کورتەێ وێراشتە بنۊسریەێد.",
+       "tooltip-summary": "کۆرتەێگ لە لی بنۊسە",
+       "pageinfo-redirectsto-info": "زانیاری",
+       "pageinfo-contentpage-yes": "بەڵێ",
+       "pageinfo-protect-cascading-yes": "بەڵێ",
+       "previousdiff": "→ گووڕانکاری کۆنەتر",
+       "nextdiff": "گووڕانکاری نووتر ←",
+       "file-info-size": "$1 × $2 پیکسێل، قەوارەێ پەڕگە: $3، جوور MIME: $4",
+       "file-nohires": "رەزۆلوشن سەرتر لەیە لە وەردەستەو نیە.",
+       "svg-long-desc": "پەڕگەێ SVG، وە ناو $1 × $2 پیکسڵ، قەوارەێ پەڕگە: $3",
+       "show-big-image": "پەڕگەێ رەسەن",
+       "ilsubmit": "مینە",
+       "bad_image_list": "فۆرمەت وە شێوەێ خوارەسە:\n\nتەنیا ئەو باوەتەیلە ک پێرست کریانە (واتە ئەو ھێڵەیلە ک وە * دەس پێ کەن) لە وەر چاون.\nیەکەم بەسیار لە سەر ھەر ھێڵێگ، ئەشێ بەسیار فایلێگ خراو بوود.\nگشت بەسیارەگان دۊاێ ئەوە لە ئەو ھێڵە، چۊ نائاسایی(ئستسنا) تیەنە ئەژمار.",
+       "metadata": "متادەیتا",
+       "metadata-help": "ئەی پەڕگە زانیاری فرەێگ لەتێیە، ک گەھا دۊردۊن (camera) یا ئسکەنێر (scanner) خستۊە سەری. ئەگەر پەڕگەگە لە حاڵەتە سەرەتاییەگەیەو دەسکاری کریاۊد، گاھەس بڕێگ لە وردەکاریەیل، زانیارەگان وێنە گووڕیاێەگە وە تەواوی نیشان نەدەن.",
+       "metadata-fields": "کاڵگەگان (fields) میتادەیتاێ وێنە ک لە ئەی پەیامە وەڕزارەو کریانە، کاتێگ جەدوەل میتادەیتا کووکریاێ بوود لە پەڕەی وێنە نیشان دەریەن.\nکاڵگەگان تر لە حاڵەتی بنەڕەتی شاریاێن.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-imagedescription": "ناونیشان وێنە",
+       "exif-pixelxdimension": "بەرزی وێنە",
+       "exif-flash": "فلەش",
+       "exif-keywords": "کلیل‌وشەیل",
+       "exif-writer": "نۊسەر",
+       "exif-languagecode": "زوان",
+       "exif-nickname": "ناو غەیرڕەسمی وێنەگە",
+       "exif-lightsource-0": "نەناسریاێ",
+       "exif-lightsource-4": "فلەش",
+       "exif-focalplaneresolutionunit-2": "ئینچ",
+       "exif-contrast-1": "نەرم",
+       "exif-contrast-2": "ڕەق",
+       "exif-sharpness-1": "نەرم",
+       "exif-sharpness-2": "ڕەق",
+       "exif-subjectdistancerange-0": "نەناسریاێ",
+       "exif-gpsdestdistance-m": "مایل",
+       "exif-dc-rights": "مافەیل",
+       "exif-iimcategory-hth": "تەندروسی",
+       "exif-iimcategory-lab": "کارگەری",
+       "exif-iimcategory-pol": "ڕامیاری",
+       "exif-iimcategory-rel": "دین و باوەڕ",
+       "exif-iimcategory-sci": "زانست و تێکنۆلۆژی",
+       "exif-iimcategory-spo": "وەرزش",
+       "exif-iimcategory-wea": "ئاو و هەوا",
+       "namespacesall": "گشت",
+       "monthsall": "گشت",
+       "confirm_purge_button": "باشە",
+       "confirm-watch-button": "باشە",
+       "confirm-unwatch-button": "باشە",
+       "semicolon-separator": "؛&#32;",
+       "imgmultigo": "بچوو!",
+       "img-lang-go": "بچوو",
+       "table_pager_limit_submit": "بچوو",
+       "watchlisttools-view": "گووڕانکاریە پەیوەندیدارەگان بۊنە",
+       "watchlisttools-edit": "پێرست چاودێری بۊنە و وێراشتەێ بکە",
+       "watchlisttools-raw": "پێرست خام چاودێریەگان وێراشتە بکە",
+       "duplicate-defaultsort": "'''ئاگاداری''' کلیل بنەڕەتی \"$2''، کلیل بنەڕەتی \"$1\" بەتاڵ کەێد.",
+       "version": "وەشان",
+       "version-skin-colheader-name": "پووستە",
+       "version-ext-colheader-credits": "نۊسەرەیل",
+       "version-software-version": "وەشان",
+       "fileduplicatesearch-submit": "مینەکردن",
+       "specialpages": "پەڕە تایوەتەگان",
+       "external_image_whitelist": " #ئەی ھێڵە ھەر وە ئەی جوورە ک ھەس، وەر بدەین<pre>\n#رستە وەنەزمەگان (regular expression) (تەنیا ئەو بەشە کە لە نێوان // جێ گرێد) لە خوارەو بنەین\n#ئیانە وەرد نیشانی ئینترنتی وێنەیل دەرەکی بەسیار دریای (hotlinked) چەترگیەن (تەتبیق دریەن).\n#ئەوانە ک چەترگیانە، چۊ وێنە نیشان دریەن؛ وەگەرنە تەنیا بەسیارێگ وە وێنە نیشان دەریەێد.\n#ئەو ھێڵەیلە وە # دەس پێ کەن، جوور شرۆڤە (comments) گیریەنە وەر چەو\n#ئەی ھێڵەیلە وە گەورە و بۊچگی پیتەگان ھەستیارە (case-insensitive)\n\n#گشت رستە وەنەزمەگان (regex) لە ژۊەر ئەی ھێڵە بنەین. ئەی ھێڵ ھەر وە ئەی جوورە کە ھەس، وەر بدەین</pre>",
+       "tag-filter": "پاڵووین [[Special:Tags|تاگ]]:",
+       "tags-active-yes": "بەڵێ",
+       "tags-active-no": "نە",
+       "tags-edit": "وێراشتە",
+       "htmlform-no": "نە",
+       "htmlform-yes": "بەڵێ",
+       "feedback-message": "پەیام:",
+       "searchsuggest-search": "مینە",
+       "expand_templates_ok": "باشە",
+       "pagelang-name": "پەڕە",
+       "pagelang-language": "زوان",
+       "special-characters-group-latin": "لاتین",
+       "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-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": "کمێر"
+}
index 19f6302..96d221d 100644 (file)
        "content-model-css": "CSS",
        "content-json-empty-object": "Prázdny objekt",
        "content-json-empty-array": "Prázdne pole",
+       "duplicate-args-warning": "<strong>Upozornenie:</strong> Stránka [[:$1]] volá [[:$2]] s viacerými hodnotami parametra „$3“. Použitá bude len posledná odovzdaná hodnota.",
        "duplicate-args-category": "Stránky s duplicitnými parametrami pri volaniach šablón",
        "duplicate-args-category-desc": "Stránka obsahuje volania šablóny používajúce duplicitné parametere, ako napríklad <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> alebo <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Upozornenie: Táto stránka obsahuje príliš mnoho volaní funkcií syntaktického analyzátora, ktoré nadmerne zaťažujú server.\n\nObsahuje $1 {{PLURAL:$1|volanie|volania|volaní}}. Mala by obsahovať menej ako $2 {{PLURAL:$1|volanie|volania|volaní}}.",
        "undo-summary": "Revízia $1 používateľa [[Special:Contributions/$2|$2]] ([[User talk:$2|diskusia]]) bola vrátená",
        "undo-summary-username-hidden": "Vrátiť revíziu $1, ktorú vykonal skrytý používateľ",
        "cantcreateaccounttitle": "Nie je možné vytvoriť účet",
-       "cantcreateaccount-text": "Tvorbu účtov z tejto IP adresy ('''$1''') zablokoval [[User:$3|$3]].\n\nDôvod, ktorý $3 uviedol, je ''$2''",
+       "cantcreateaccount-text": "Zakladanie nových účtov z tejto IP adresy ('''$1''') bolo zablokované {{GENDER:$3|používateľom|používateľkou}} [[User:$3|$3]].\n\nDôvod, ktorý $3 {{GENDER:$3|uviedol|uviedla}}, je: ''$2''",
+       "cantcreateaccount-range-text": "Zakladanie nových účtov z IP adries v rozsahu '''$1''', ktorý zahŕňa aj vašu IP adresu ('''$4'''), bolo zablokované {{GENDER:$3|používateľom|používateľkou}} [[User:$3|$3]].\n\nDôvod, ktorý $3 {{GENDER:$3|uviedol|uviedla}}, je: ''$2''",
        "viewpagelogs": "Zobraziť záznamy pre túto stránku",
        "nohistory": "Pre túto stránku neexistuje história.",
        "currentrev": "Aktuálna verzia",
        "yourvariant": "Variant jazyka obsahu:",
        "prefs-help-variant": "Váš preferovaný variant alebo pravopis, ako sa majú na tejto wiki zobrazovať obsahové stránky.",
        "yournick": "Podpis:",
-       "prefs-help-signature": "Komentáre na diskusných stránkach by ste mali podpisovať pomocou „<nowiki>~~~~</nowiki>“, čo sa prevedie na váš podpis a časovú známku.",
+       "prefs-help-signature": "Komentáre na diskusných stránkach by ste mali podpisovať pomocou „<nowiki>~~~~</nowiki>“, čo sa prevedie na váš podpis a čas príspevku.",
        "badsig": "Neplatný podpis v pôvodnom tvare; skontrolujte HTML značky.",
        "badsiglength": "Váš podpis je príliš dlhý.\nMusí obsahovať menej ako $1 {{PLURAL:$1|znak|znaky|znakov}}.",
        "yourgender": "Ako si želáte byť označovaný?",
        "filerevert-defaultcomment": "Obnovená verzia z $1, $2",
        "filerevert-submit": "Obnoviť",
        "filerevert-success": "'''[[Media:$1|$1]]''' bol obnovený na [$4 verziu z $2, $3].",
-       "filerevert-badversion": "Neexistuje predchádzajúca lokálna verzia tohto súboru s požadovanopu časovou známkou.",
+       "filerevert-badversion": "Neexistuje predchádzajúca lokálna verzia tohto súboru s požadovanou časovou značkou.",
        "filedelete": "Zmazať $1",
        "filedelete-legend": "Zmazať súbor",
        "filedelete-intro": "Chystáte sa zmazať súbor '''[[Media:$1|$1]]''' spolu s celou jeho históriou.",
        "nmembers": "$1 {{PLURAL:$1|člen|členovia|členov}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|člen|členovia|členov}}",
        "nrevisions": "$1 {{PLURAL:$1|revízia|revízie|revízií}}",
-       "nviews": "$1 {{PLURAL:$1|návšteva|návštevy|návštev}}",
        "nimagelinks": "Použité na $1 {{PLURAL:$1|stránke|stránkach}}",
        "ntransclusions": "použité na $1 {{PLURAL:$1|stránke|stránkach}}",
        "specialpage-empty": "Táto správa neobsahuje žiadne položky.",
        "protectedpages-cascade": "Iba kaskádové zamykanie",
        "protectedpages-noredirect": "Skryť presmerovania",
        "protectedpagesempty": "Momentálne nie sú žiadne stránky s týmito parametrami zamknuté.",
-       "protectedpages-timestamp": "Časová známka",
+       "protectedpages-timestamp": "Dátum a čas",
        "protectedpages-page": "Stránka",
        "protectedpages-expiry": "Koniec platnosti",
        "protectedpages-params": "Nastavenie zámku",
        "undelete-search-prefix": "Zobraziť stránky od:",
        "undelete-search-submit": "Hľadať",
        "undelete-no-results": "V archíve mazaní neboli nájdené zodpovedajúce stránky.",
-       "undelete-filename-mismatch": "Nebolo možné obnoviť revíziu súboru s časovou známkou $1: rozdiel v názvoch súborov",
-       "undelete-bad-store-key": "Nebolo možné obnoviť revíziu súboru s časovou známkou $1: súbor chýbal predtým, než bol zmazaný",
+       "undelete-filename-mismatch": "Nebolo možné obnoviť revíziu súboru s časovou znkou $1: rozdiel v názvoch súborov",
+       "undelete-bad-store-key": "Nebolo možné obnoviť revíziu súboru s časovou znkou $1: súbor chýbal predtým, než bol zmazaný",
        "undelete-cleanup-error": "Chyba pri mazaní nepoužitého archívneho súboru „$1“.",
        "undelete-missing-filearchive": "Nebolo možné obnoviť archív s ID $1, pretože sa nenachádza v databáze. Je možné, že už bol obnovený.",
        "undelete-error": "Chyba pri obnovovaní stránky",
        "blocklist-tempblocks": "Skryť dočasné blokovania",
        "blocklist-addressblocks": "Skryť blokovania jednotlivých IP",
        "blocklist-rangeblocks": "Skryť blokovania rozsahov",
-       "blocklist-timestamp": "Časová známka",
+       "blocklist-timestamp": "Dátum a čas",
        "blocklist-target": "Cieľ",
        "blocklist-expiry": "Vyprší",
        "blocklist-by": "Blokujúci správca",
        "thumbnail-temp-create": "Nie je možné vytvoriť dočasný súbor náhľadu",
        "thumbnail-dest-create": "Nie je možné uložiť náhľad do cieľa",
        "thumbnail_invalid_params": "Neplatné parametre náhľadu",
+       "thumbnail_toobigimagearea": "Súbor s rozmermi väčšími než $1",
        "thumbnail_dest_directory": "Nebolo možné vytvoriť cieľový adresár",
        "thumbnail_image-type": "Nepodporovaný typ obrázka",
        "thumbnail_gd-library": "Neúplná konfigurácia knižnice GD: chýba funkcia $1",
        "thumbnail_image-missing": "Zdá sa, že súbor chýba: $1",
+       "thumbnail_image-failure-limit": "V poslednej dobe došlo k nejmenej $1 pokusom o vygenerovanie tohoto náhľadu. Skúste to prosím neskôr.",
        "import": "Import stránok",
        "importinterwiki": "Transwiki import",
        "import-interwiki-text": "Zvoľte wiki a názov stránky, ktorá sa má importovať.\nDátumy revízií a mená používateľov budú zachované.\nVšetky transwiki importy sa zaznamenávajú v [[Special:Log/import|Zázname importov]].",
        "watchlisttools-raw": "Upraviť textovú verziu zoznamu sledovaných stránok",
        "iranian-calendar-m1": "Farvardín",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskusia]])",
-       "duplicate-defaultsort": "Upozornenie: Štandardný kláves na zoraďovanie „$2“ nahrádza starý kláves „$1“.",
+       "duplicate-defaultsort": "Upozornenie: DEFAULTSORT s triediacim kľúčom „$2“ prepisuje vyššie nastavenú hodnotu „$1“.",
+       "duplicate-displaytitle": "<strong>Upozornenie:</strong> Predchádzajúci titulok (DISPLAYTITLE) „$1“ je nahradený titulkom „$2“.",
        "version": "Verzia",
        "version-extensions": "Nainštalované rozšírenia",
        "version-skins": "Témy vzhľadu",
        "tags-tag": "Názov značky",
        "tags-display-header": "Vzhľad v zoznamoch úprav",
        "tags-description-header": "Popis významu",
+       "tags-source-header": "Zdroj",
        "tags-active-header": "Aktívna?",
        "tags-hitcount-header": "Označených úprav",
+       "tags-actions-header": "Akcie",
        "tags-active-yes": "Áno",
        "tags-active-no": "Nie",
        "tags-edit": "upraviť",
        "rightsnone": "(žiadne)",
        "revdelete-summary": "zhrnutie úprav",
        "feedback-adding": "Pridáva sa komentár na stránku...",
+       "feedback-back": "Späť",
        "feedback-bugcheck": "Skvelé! Teraz len skontrolujte, či to nie je jedna z už [$1 známych chýb].",
        "feedback-bugnew": "Skontroloval som. Poslať nové hlásenie o chybe.",
        "feedback-bugornote": "Ak ste pripravený podrobne popísať technický problém, prosím pošlite [$1 hlásenie o chybe]. \nV opačnom prípade môžete použiť zjednodušený formulár nižšie. Váš komentár sa pridá na stránku „[$3 $2]“ spolu s vašim používateľským meno a prehliadačom, ktorý používate.",
        "feedback-cancel": "Zrušiť",
        "feedback-close": "Hotovo",
+       "feedback-dialog-title": "Odoslať názor",
        "feedback-error-title": "Chyba",
        "feedback-error1": "Chyba: Nerozpoznaný výsledok z API",
        "feedback-error2": "Chyba: Úprava sa nepodarila",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (povolený)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''zakázaný''')",
        "mediastatistics": "Štatistika súborov",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 bajt|$1 bajty|$1 bajtov}} ($2; $3 %)",
+       "mediastatistics-table-mimetype": "MIME typ",
+       "mediastatistics-table-extensions": "Možné prípony",
        "mediastatistics-table-count": "Počet súborov",
        "mediastatistics-table-totalbytes": "Celková veľkosť",
        "mediastatistics-header-unknown": "Neznáme",
        "mediastatistics-header-text": "Text",
        "mediastatistics-header-executable": "Spustiteľné súbory",
        "mediastatistics-header-archive": "Komprimované formáty",
+       "json-warn-trailing-comma": "Z JSONu {{PLURAL:$1|bola odstránená 1 koncová čiarka|boli odstránené $1 koncové čiarky|bolo odstránených $1 koncových čiarok}}",
+       "json-error-unknown": "Došlo k problému s JSONom. Chyba: $1",
+       "json-error-depth": "Maximálna hĺbka zásobníka bola prekročená",
        "json-error-state-mismatch": "Nesprávny alebo poškodený JSON",
        "json-error-syntax": "Syntaktická chyba",
        "headline-anchor-title": "Odkaz na túto sekciu",
index 60bb78a..6a47a44 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|element|elementa|elementi|elementov|elementov}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|element|elementa|elementi|elementov}}",
        "nrevisions": "$1 {{PLURAL:$1|redakcija|redakciji|redakcije|redakcij|redakcij}}",
-       "nviews": "$1 {{PLURAL:$1|ogled|ogleda|ogledi|ogledov|ogledov}}",
        "nimagelinks": "Uporabljeno na $1 {{PLURAL:$1|strani|straneh}}",
        "ntransclusions": "uporabljeno na $1 {{PLURAL:$1|strani|straneh}}",
        "specialpage-empty": "Za to poročilo ni rezultatov.",
index b94f561..7061a50 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|члан|члана|чланова}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|члан|члана|чланова}}",
        "nrevisions": "$1 {{PLURAL:$1|измена|измене|измена}}",
-       "nviews": "$1 {{PLURAL:$1|преглед|прегледа|прегледа}}",
        "nimagelinks": "Користи се на $1 {{PLURAL:$1|страници|странице|страница}}",
        "ntransclusions": "користи се на $1 {{PLURAL:$1|страници|странице|страница}}",
        "specialpage-empty": "Нема резултата за овај извештај.",
index 42fc130..81d2447 100644 (file)
        "nmembers": "$1 {{PLURAL:$1|član|člana|članova}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|član|člana|članova}}",
        "nrevisions": "$1 {{PLURAL:$1|izmena|izmene|izmena}}",
-       "nviews": "$1 {{PLURAL:$1|pregled|pregleda|pregleda}}",
        "nimagelinks": "Koristi se na $1 {{PLURAL:$1|stranici|stranice|stranica}}",
        "ntransclusions": "koristi se na $1 {{PLURAL:$1|stranici|stranice|stranica}}",
        "specialpage-empty": "Nema rezultata za ovaj izveštaj.",
index cce2fd2..c42aa89 100644 (file)
        "content-model-css": "CSS",
        "content-json-empty-object": "Tomt objekt",
        "content-json-empty-array": "Tomt fält",
+       "duplicate-args-warning": "<strong>Varning:</strong> [[:$1]] anropar [[:$2]] med mer än ett värde för \"$3\"-parametern. Endast det sista värdet kommer att användas.",
        "duplicate-args-category": "Sidor som använder upprepade argument i mallanrop",
        "duplicate-args-category-desc": "Sidan innehåller mallanrop som använder repeterade argument, så som <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> eller <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Varning: Denna sida innehåller för många anrop av resurskrävande parserfunktioner.\n\nAntalet anrop får vara högst $2, nu görs {{PLURAL:$1|$1 anrop}}",
        "badsig": "Det är något fel med råsignaturen, kontrollera HTML-koden.",
        "badsiglength": "Din signatur är för lång.\nDen får inte vara längre än $1 {{PLURAL:$1|tecken|tecken}}.",
        "yourgender": "Hur vill du att andra refererar till dig?",
-       "gender-unknown": "Jag föredrar att inte uppge det",
+       "gender-unknown": "När jag omnämns ska mjukvaran använda könsneutrala ord närhelst det är möjligt",
        "gender-male": "Han redigerar wikisidor",
        "gender-female": "Hon redigerar wikisidor",
        "prefs-help-gender": "Denna inställning är valfri.\nProgramvaran använder detta värde för att adressera dig till andra med rätt genus. Denna information kommer att vara offentlig.",
        "uploaded-hostile-svg": "Hittade osäker CSS i den uppladdade filens stilelement.",
        "uploaded-href-unsafe-target-svg": "Hittade href till ett osäkert mål <code>&lt;$1 $2=\"$3\"&gt;</code> i den uppladdade SVG-filen.",
        "uploaded-animate-svg": "Hittades taggen \"animate\" som kan ändra href med hjälp av attributen \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> i den uppladdade SVG-filen.",
+       "uploaded-setting-href-svg": "Användning av taggen \"set\" för att lägga till attributen \"href\" till överordnade element blockeras.",
        "uploaded-image-filter-svg": "Hittade bildfilter med URL: <code>&lt;$1 $2=\"$3\"&gt;</code> i den uppladdade SVG-filen.",
        "uploadscriptednamespace": "Denna SVG-fil innehåller den ogiltiga namnrymden \"$1\".",
        "uploadinvalidxml": "XML-koden i den uppladdade filen kunde inte tolkas.",
        "nmembers": "$1 {{PLURAL:$1|medlem|medlemmar}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|medlem|medlemmar}}",
        "nrevisions": "$1 {{PLURAL:$1|version|versioner}}",
-       "nviews": "$1 {{PLURAL:$1|visning|visningar}}",
        "nimagelinks": "Används på $1 {{PLURAL:$1|sida|sidor}}",
        "ntransclusions": "används på $1 {{PLURAL:$1|sida|sidor}}",
        "specialpage-empty": "Det finns inga resultat för denna rapport.",
index c37821f..8797346 100644 (file)
        "nmembers": "{{PLURAL:$1|üye|üye}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|üye|üye}}",
        "nrevisions": "{{PLURAL:$1|değişiklik|değişiklikler}}",
-       "nviews": "$1 {{PLURAL:$1|görünüm|görünüm}}",
        "nimagelinks": "$1 {{PLURAL:$1|sayfada|sayfada}} kullanılıyor",
        "ntransclusions": "$1 {{PLURAL:$1|sayfada|sayfada}} kullanılıyor",
        "specialpage-empty": "Bu rapor için hiç sonuç yok.",
index ecb2e46..aa1146a 100644 (file)
        "prefs-displayrc": "Tasvirlash moslamalari",
        "prefs-displaywatchlist": "Tasvirlash moslamalari",
        "prefs-diffs": "Versiyalar farqi",
-       "userrights": "Foydalanuvchining huquqlarini boshqarish",
+       "userrights": "Foydalanuvchi huquqlarini oʻzgartirish",
        "userrights-user-editname": "Foydalanuvchi nomi:",
        "editusergroup": "Guruhlardagi aʼzoligini oʻzgartirish",
        "userrights-groupsmember": "Aʼzolik:",
        "rcshowhidebots": "Botlarni $1",
        "rcshowhidebots-show": "koʻrsat",
        "rcshowhidebots-hide": "yashir",
-       "rcshowhideliu": "Roʻyxatdan oʻtgan foydalanuvchilarni $1",
+       "rcshowhideliu": "Roʻyxatdan oʻtganlarni $1",
        "rcshowhideliu-show": "koʻrsat",
        "rcshowhideliu-hide": "yashir",
-       "rcshowhideanons": "Anonim foydalanuvchilarni $1",
+       "rcshowhideanons": "Anonimlarni $1",
        "rcshowhideanons-show": "koʻrsat",
        "rcshowhideanons-hide": "yashir",
        "rcshowhidepatr": "Tekshirilgan tahrirlarni $1",
        "filedelete-intro": "Siz ushbu faylni — <strong>[[Media:$1|$1]]</strong> va uning tarixini butunlay oʻchirib tashlamoqchi boʻlyapsiz.",
        "filedelete-comment": "Sabab:",
        "filedelete-submit": "O‘chirish",
+       "filedelete-success": "<strong>$1</strong> oʻchirildi.",
        "filedelete-reason-dropdown": "* Umumiy sabablar\n** mualliflik huquqlari buzilyapti\n** mavjud faylning nusxasi",
        "mimetype": "MIME-tur:",
        "download": "yuklash",
        "sp-contributions-uploads": "yuklamalar",
        "sp-contributions-logs": "qaydlar",
        "sp-contributions-talk": "munozara",
-       "sp-contributions-userrights": "foydalanuvchining huquqlarini boshqarish",
+       "sp-contributions-userrights": "huquqlarini oʻzgartirish",
        "sp-contributions-blocked-notice": "Ushbu foydalanuvchi hozirda tahrirlashdan chetlatilgan. Quyida chetlatish qaydlaridan soʻnggi yozuv keltirilgan:",
        "sp-contributions-search": "Hissalarni qidirish",
        "sp-contributions-username": "IP-manzil yoki foydalanuvchi nomi:",
index d1699a3..0e136c5 100644 (file)
        "yourdiff": "差异",
        "copyrightwarning": "请注意您对{{SITENAME}}的所有贡献都被认为是在$2下发布,请查看在$1的细节。\n如果您不希望您的文字被任意修改和再散布,请不要提交。<br />\n您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源。\n'''不要在未获授权的情况下发表!'''<br />",
        "copyrightwarning2": "请注意,您对{{SITENAME}}的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。<br />\n您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅$1的细节)。'''不要在未获授权的情况下发表!'''",
+       "editpage-cannot-use-custom-model": "此页面的内容模型不能被更改。",
        "longpageerror": "'''错误:您所提交的文本长度有{{PLURAL:$1|1|$1}}KB,这大于{{PLURAL:$2|1|$2}}KB的最大值。'''\n因此,该文本无法保存。",
        "readonlywarning": "<strong>警告:数据库被锁定以进行维护,所以您目前将无法保存您的编辑。</strong>您可能希望将您的文本复制粘贴到一个文本文档并保存它,以便稍后更改。\n\n锁定数据库的管理员有如下解释:$1",
        "protectedpagewarning": "'''警告:本页面已被保护,只有拥有管理员权限的用户可以编辑。'''下面提供最后的日志条目以供参考:",
        "nmembers": "$1个成员",
        "nmemberschanged": "$1 → $2个成员",
        "nrevisions": "$1个版本",
-       "nviews": "$1次浏览",
        "nimagelinks": "用于$1个页面中",
        "ntransclusions": "用于$1个页面中",
        "specialpage-empty": "此报告无结果。",
index 39f7b1e..6875c06 100644 (file)
        "nmembers": "$1 個成員",
        "nmemberschanged": "$1 → $2 個成員",
        "nrevisions": "$1 次修訂",
-       "nviews": "$1 次檢視",
        "nimagelinks": "被 $1 個頁面使用",
        "ntransclusions": "被 $1 個頁面使用",
        "specialpage-empty": "此報表無查無任何結果。",
diff --git a/languages/messages/MessagesDty.php b/languages/messages/MessagesDty.php
new file mode 100644 (file)
index 0000000..f90746c
--- /dev/null
@@ -0,0 +1,11 @@
+<?php
+/** Doteli (डोटेली)
+ *
+ * To improve a translation please visit https://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ */
+
+$fallback = 'ne';
\ No newline at end of file
index 23b702c..8abb491 100644 (file)
@@ -451,7 +451,6 @@ $specialPageAliases = array(
        'PageLanguage'              => array( 'PageLanguage' ),
        'PasswordReset'             => array( 'PasswordReset' ),
        'PermanentLink'             => array( 'PermanentLink', 'PermaLink' ),
-       'Popularpages'              => array( 'PopularPages' ),
        'Preferences'               => array( 'Preferences' ),
        'Prefixindex'               => array( 'PrefixIndex' ),
        'Protectedpages'            => array( 'ProtectedPages' ),
index 9ed63c3..b39ff55 100644 (file)
@@ -226,8 +226,8 @@ class CopyFileBackend extends Maintenance {
                        }
                        $t_start = microtime( true );
                        $fsFiles = $src->getLocalReferenceMulti( array( 'srcs' => $srcPaths, 'latest' => 1 ) );
-                       $ellapsed_ms = floor( ( microtime( true ) - $t_start ) * 1000 );
-                       $this->output( "\n\tDownloaded these file(s) [{$ellapsed_ms}ms]:\n\t" .
+                       $elapsed_ms = floor( ( microtime( true ) - $t_start ) * 1000 );
+                       $this->output( "\n\tDownloaded these file(s) [{$elapsed_ms}ms]:\n\t" .
                                implode( "\n\t", $srcPaths ) . "\n\n" );
                }
 
@@ -281,12 +281,12 @@ class CopyFileBackend extends Maintenance {
                        sleep( 10 ); // wait and retry copy again
                        $status = $dst->doQuickOperations( $ops, array( 'bypassReadOnly' => 1 ) );
                }
-               $ellapsed_ms = floor( ( microtime( true ) - $t_start ) * 1000 );
+               $elapsed_ms = floor( ( microtime( true ) - $t_start ) * 1000 );
                if ( !$status->isOK() ) {
                        $this->error( print_r( $status->getErrorsArray(), true ) );
                        $this->error( "$wikiId: Could not copy file batch.", 1 ); // die
                } elseif ( count( $copiedRel ) ) {
-                       $this->output( "\n\tCopied these file(s) [{$ellapsed_ms}ms]:\n\t" .
+                       $this->output( "\n\tCopied these file(s) [{$elapsed_ms}ms]:\n\t" .
                                implode( "\n\t", $copiedRel ) . "\n\n" );
                }
        }
@@ -318,12 +318,12 @@ class CopyFileBackend extends Maintenance {
                        sleep( 10 ); // wait and retry copy again
                        $status = $dst->doQuickOperations( $ops, array( 'bypassReadOnly' => 1 ) );
                }
-               $ellapsed_ms = floor( ( microtime( true ) - $t_start ) * 1000 );
+               $elapsed_ms = floor( ( microtime( true ) - $t_start ) * 1000 );
                if ( !$status->isOK() ) {
                        $this->error( print_r( $status->getErrorsArray(), true ) );
                        $this->error( "$wikiId: Could not delete file batch.", 1 ); // die
                } elseif ( count( $deletedRel ) ) {
-                       $this->output( "\n\tDeleted these file(s) [{$ellapsed_ms}ms]:\n\t" .
+                       $this->output( "\n\tDeleted these file(s) [{$elapsed_ms}ms]:\n\t" .
                                implode( "\n\t", $deletedRel ) . "\n\n" );
                }
        }
index dd27c8c..f19c64f 100644 (file)
@@ -1434,6 +1434,7 @@ excludepage
 excludeuser
 executables
 exempt
+exiftool
 existingwiki
 exists
 exiv
@@ -3158,7 +3159,6 @@ pnmtopng
 pointsize
 poolcounter
 popts
-popularpages
 portlet
 portlets
 posplus
index 7e73e64..96c05a1 100644 (file)
@@ -23,6 +23,7 @@
                                "classes": [
                                        "mw.Title",
                                        "mw.Uri",
+                                       "mw.RegExp",
                                        "mw.messagePoster.*",
                                        "mw.notification",
                                        "mw.Notification_",
index c280770..f7a0531 100644 (file)
@@ -148,7 +148,7 @@ return array(
                'scripts' => 'resources/src/jquery/jquery.accessKeyLabel.js',
                'dependencies' => array(
                        'jquery.client',
-                       'jquery.mwExtension',
+                       'mediawiki.RegExp',
                ),
                'messages' => array( 'brackets', 'word-separator' ),
                'targets' => array( 'mobile', 'desktop' ),
@@ -247,7 +247,7 @@ return array(
        ),
        'jquery.highlightText' => array(
                'scripts' => 'resources/src/jquery/jquery.highlightText.js',
-               'dependencies' => 'jquery.mwExtension',
+               'dependencies' => 'mediawiki.RegExp',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'jquery.hoverIntent' => array(
@@ -309,7 +309,7 @@ return array(
                'styles' => 'resources/src/jquery/jquery.tablesorter.css',
                'messages' => array( 'sort-descending', 'sort-ascending' ),
                'dependencies' => array(
-                       'jquery.mwExtension',
+                       'mediawiki.RegExp',
                        'mediawiki.language.months',
                ),
        ),
@@ -954,7 +954,7 @@ return array(
        'mediawiki.htmlform' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.js',
                'dependencies' => array(
-                       'jquery.mwExtension',
+                       'mediawiki.RegExp',
                        'jquery.byteLimit',
                ),
                'messages' => array(
@@ -978,6 +978,7 @@ return array(
                'scripts' => 'resources/src/mediawiki/mediawiki.inspect.js',
                'dependencies' => array(
                        'jquery.byteLength',
+                       'mediawiki.RegExp',
                        'json',
                ),
                'targets' => array( 'desktop', 'mobile' ),
@@ -1020,6 +1021,10 @@ return array(
                'scripts' => 'resources/src/mediawiki/mediawiki.notify.js',
                'targets' => array( 'desktop', 'mobile' ),
        ),
+       'mediawiki.RegExp' => array(
+               'scripts' => 'resources/src/mediawiki/mediawiki.RegExp.js',
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
        'mediawiki.pager.tablePager' => array(
                'styles' => 'resources/src/mediawiki/mediawiki.pager.tablePager.less',
                'position' => 'top',
@@ -1085,7 +1090,7 @@ return array(
                'scripts' => 'resources/src/mediawiki/mediawiki.util.js',
                'dependencies' => array(
                        'jquery.accessKeyLabel',
-                       'jquery.mwExtension',
+                       'mediawiki.RegExp',
                        'mediawiki.notify',
                ),
                'position' => 'top', // For $wgPreloadJavaScriptMwUtil
@@ -1377,7 +1382,7 @@ return array(
                        'mediawiki.page.startup',
                        'mediawiki.util',
                        'jquery.accessKeyLabel',
-                       'jquery.mwExtension',
+                       'mediawiki.RegExp',
                ),
                'messages' => array(
                        'watch',
@@ -1730,6 +1735,7 @@ return array(
                'scripts' => array(
                        'resources/src/mediawiki.widgets/mw.widgets.js',
                        'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js',
+                       'resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js',
                ),
                'skinStyles' => array(
                        'default' => 'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css',
@@ -1740,7 +1746,8 @@ return array(
                        'oojs-ui',
                ),
                'messages' => array(
-                       // …
+                       'mw-widgets-titleinput-description-new-page',
+                       'mw-widgets-titleinput-description-redirect',
                ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
index 7c40a54..4aeb490 100644 (file)
@@ -11,5 +11,6 @@
        "ooui-outline-control-move-down": "Перасунуць элемэнт ніжэй",
        "ooui-outline-control-move-up": "Перасунуць элемэнт вышэй",
        "ooui-toolbar-more": "Болей",
+       "ooui-toolgroup-expand": "Болей",
        "ooui-toolgroup-collapse": "Меней"
 }
index 1db9aed..0d86aa6 100644 (file)
@@ -25,5 +25,7 @@
        "ooui-dialog-process-error": "Něco se pokazilo",
        "ooui-dialog-process-dismiss": "Zavřít",
        "ooui-dialog-process-retry": "Zkusit znovu",
-       "ooui-dialog-process-continue": "Pokračovat"
+       "ooui-dialog-process-continue": "Pokračovat",
+       "ooui-selectfile-not-supported": "Výběr souboru není podporován",
+       "ooui-selectfile-placeholder": "Nebyl vybrán žádný soubor"
 }
index b37beae..287c86d 100644 (file)
@@ -15,5 +15,7 @@
        "ooui-dialog-process-error": "Adda madi a napasamak",
        "ooui-dialog-process-dismiss": "Pugsayen",
        "ooui-dialog-process-retry": "Padasen manen",
-       "ooui-dialog-process-continue": "Agtuloy"
+       "ooui-dialog-process-continue": "Agtuloy",
+       "ooui-selectfile-not-supported": "Saan a masuportaran ti panagpili ti papeles",
+       "ooui-selectfile-placeholder": "Awan ti napili a papeles"
 }
diff --git a/resources/lib/oojs-ui/i18n/luz.json b/resources/lib/oojs-ui/i18n/luz.json
new file mode 100644 (file)
index 0000000..d48a9df
--- /dev/null
@@ -0,0 +1,21 @@
+{
+       "@metadata": {
+               "authors": [
+                       "علی ساکی لرستانی"
+               ]
+       },
+       "ooui-outline-control-move-down": "انتقال مورد وه دومن",
+       "ooui-outline-control-move-up": "انتقال مورد وه بالا",
+       "ooui-outline-control-remove": "حذف مورد",
+       "ooui-toolbar-more": "هنی",
+       "ooui-toolgroup-expand": "هنی",
+       "ooui-toolgroup-collapse": "کم تر",
+       "ooui-dialog-message-accept": "خووه",
+       "ooui-dialog-message-reject": "لغو",
+       "ooui-dialog-process-error": "یه چیایی اشتباه ویده",
+       "ooui-dialog-process-dismiss": "منفصل کردن",
+       "ooui-dialog-process-retry": "دوباره تلاش کردن",
+       "ooui-dialog-process-continue": "ادامه دائن",
+       "ooui-selectfile-not-supported": "فایل انتخابی پشتیبانی نوابیه",
+       "ooui-selectfile-placeholder": "فایلی انتخاب نوابیه"
+}
index f6f422a..42005fe 100644 (file)
@@ -15,5 +15,7 @@
        "ooui-dialog-process-error": "Quacche cose ha sciute stuèrte",
        "ooui-dialog-process-dismiss": "Scitte",
        "ooui-dialog-process-retry": "Pruève arrete",
-       "ooui-dialog-process-continue": "Condinue"
+       "ooui-dialog-process-continue": "Condinue",
+       "ooui-selectfile-not-supported": "'U scacchiamende d'u file non g'è supportate",
+       "ooui-selectfile-placeholder": "Nisciune file scacchiate"
 }
index 34991fd..dcdf950 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.5
+ * OOjs UI v0.11.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-17T00:59:03Z
+ * Date: 2015-06-23T21:49:41Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
index e19c127..3212616 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.5
+ * OOjs UI v0.11.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-17T00:58:56Z
+ * Date: 2015-06-23T21:49:33Z
  */
 /**
  * @class
@@ -16,7 +16,7 @@
  */
 OO.ui.ApexTheme = function OoUiApexTheme() {
        // Parent constructor
-       OO.ui.ApexTheme.super.call( this );
+       OO.ui.ApexTheme.parent.call( this );
 };
 
 /* Setup */
index 76aeeac..64b9827 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.5
+ * OOjs UI v0.11.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-17T00:59:03Z
+ * Date: 2015-06-23T21:49:41Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
        margin: 0.25em 0;
        width: 100%;
        max-width: 50em;
+       background: #ffffff;
        margin-right: 0.5em;
 }
 .oo-ui-dropdownWidget-handle {
        border: 1px solid #cccccc;
        border-radius: 0.1em;
        padding: 0 1em;
+       background: #ffffff;
 }
 .oo-ui-selectFileWidget-handle > .oo-ui-indicatorElement-indicator {
        right: 0;
index bb4e8a9..15cffdc 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.5
+ * OOjs UI v0.11.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-17T00:58:56Z
+ * Date: 2015-06-23T21:49:33Z
  */
 /**
  * @class
@@ -16,7 +16,7 @@
  */
 OO.ui.MediaWikiTheme = function OoUiMediaWikiTheme() {
        // Parent constructor
-       OO.ui.MediaWikiTheme.super.call( this );
+       OO.ui.MediaWikiTheme.parent.call( this );
 };
 
 /* Setup */
@@ -39,7 +39,7 @@ OO.ui.MediaWikiTheme.prototype.getElementClasses = function ( element ) {
                        destructive: false
                },
                // Parent method
-               classes = OO.ui.MediaWikiTheme.super.prototype.getElementClasses.call( this, element ),
+               classes = OO.ui.MediaWikiTheme.parent.prototype.getElementClasses.call( this, element ),
                isFramed;
 
        if ( element.supports( [ 'hasFlag' ] ) ) {
index b4bb365..218acf3 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.5
+ * OOjs UI v0.11.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-17T00:58:56Z
+ * Date: 2015-06-23T21:49:33Z
  */
 ( function ( OO ) {
 
@@ -349,7 +349,7 @@ OO.ui.mixin = {};
  *
  *     @example
  *     function MessageDialog( config ) {
- *         MessageDialog.super.call( this, config );
+ *         MessageDialog.parent.call( this, config );
  *     }
  *     OO.inheritClass( MessageDialog, OO.ui.MessageDialog );
  *
@@ -359,7 +359,7 @@ OO.ui.mixin = {};
  *     ];
  *
  *     MessageDialog.prototype.initialize = function () {
- *         MessageDialog.super.prototype.initialize.apply( this, arguments );
+ *         MessageDialog.parent.prototype.initialize.apply( this, arguments );
  *         this.content = new OO.ui.PanelLayout( { $: this.$, padded: true } );
  *         this.content.$element.append( '<p>Click the \'Done\' action widget to see its pending state. Note that action widgets can be marked pending in message dialogs but not process dialogs.</p>' );
  *         this.$body.append( this.content.$element );
@@ -377,7 +377,7 @@ OO.ui.mixin = {};
  *                 dialog.getActions().get({actions: 'save'})[0].popPending();
  *             } );
  *         }
- *         return MessageDialog.super.prototype.getActionProcess.call( this, action );
+ *         return MessageDialog.parent.prototype.getActionProcess.call( this, action );
  *     };
  *
  *     var windowManager = new OO.ui.WindowManager();
@@ -484,7 +484,7 @@ OO.ui.mixin.PendingElement.prototype.popPending = function () {
  *     @example
  *     // Example: An action set used in a process dialog
  *     function MyProcessDialog( config ) {
- *         MyProcessDialog.super.call( this, config );
+ *         MyProcessDialog.parent.call( this, config );
  *     }
  *     OO.inheritClass( MyProcessDialog, OO.ui.ProcessDialog );
  *     MyProcessDialog.static.title = 'An action set in a process dialog';
@@ -497,7 +497,7 @@ OO.ui.mixin.PendingElement.prototype.popPending = function () {
  *     ];
  *
  *     MyProcessDialog.prototype.initialize = function () {
- *         MyProcessDialog.super.prototype.initialize.apply( this, arguments );
+ *         MyProcessDialog.parent.prototype.initialize.apply( this, arguments );
  *         this.panel1 = new OO.ui.PanelLayout( { padded: true, expanded: false } );
  *         this.panel1.$element.append( '<p>This dialog uses an action set (continue, help, cancel, back) configured with modes. This is edit mode. Click \'help\' to see help mode.</p>' );
  *         this.panel2 = new OO.ui.PanelLayout( { padded: true, expanded: false } );
@@ -508,7 +508,7 @@ OO.ui.mixin.PendingElement.prototype.popPending = function () {
  *         this.$body.append( this.stackLayout.$element );
  *     };
  *     MyProcessDialog.prototype.getSetupProcess = function ( data ) {
- *         return MyProcessDialog.super.prototype.getSetupProcess.call( this, data )
+ *         return MyProcessDialog.parent.prototype.getSetupProcess.call( this, data )
  *             .next( function () {
  *                 this.actions.setMode( 'edit' );
  *             }, this );
@@ -526,7 +526,7 @@ OO.ui.mixin.PendingElement.prototype.popPending = function () {
  *                 dialog.close();
  *             } );
  *         }
- *         return MyProcessDialog.super.prototype.getActionProcess.call( this, action );
+ *         return MyProcessDialog.parent.prototype.getActionProcess.call( this, action );
  *     };
  *     MyProcessDialog.prototype.getBodyHeight = function () {
  *         return this.panel1.$element.outerHeight( true );
@@ -1749,7 +1749,7 @@ OO.ui.Layout = function OoUiLayout( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Layout.super.call( this, config );
+       OO.ui.Layout.parent.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -1783,7 +1783,7 @@ OO.ui.Widget = function OoUiWidget( config ) {
        config = $.extend( { disabled: false }, config );
 
        // Parent constructor
-       OO.ui.Widget.super.call( this, config );
+       OO.ui.Widget.parent.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -1929,7 +1929,7 @@ OO.ui.Window = function OoUiWindow( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Window.super.call( this, config );
+       OO.ui.Window.parent.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -2518,11 +2518,11 @@ OO.ui.Window.prototype.teardown = function ( data ) {
  *     @example
  *     // A simple dialog window.
  *     function MyDialog( config ) {
- *         MyDialog.super.call( this, config );
+ *         MyDialog.parent.call( this, config );
  *     }
  *     OO.inheritClass( MyDialog, OO.ui.Dialog );
  *     MyDialog.prototype.initialize = function () {
- *         MyDialog.super.prototype.initialize.call( this );
+ *         MyDialog.parent.prototype.initialize.call( this );
  *         this.content = new OO.ui.PanelLayout( { padded: true, expanded: false } );
  *         this.content.$element.append( '<p>A simple dialog window. Press \'Esc\' to close.</p>' );
  *         this.$body.append( this.content.$element );
@@ -2552,7 +2552,7 @@ OO.ui.Window.prototype.teardown = function ( data ) {
  */
 OO.ui.Dialog = function OoUiDialog( config ) {
        // Parent constructor
-       OO.ui.Dialog.super.call( this, config );
+       OO.ui.Dialog.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.PendingElement.call( this );
@@ -2730,7 +2730,7 @@ OO.ui.Dialog.prototype.getSetupProcess = function ( data ) {
        data = data || {};
 
        // Parent method
-       return OO.ui.Dialog.super.prototype.getSetupProcess.call( this, data )
+       return OO.ui.Dialog.parent.prototype.getSetupProcess.call( this, data )
                .next( function () {
                        var config = this.constructor.static,
                                actions = data.actions !== undefined ? data.actions : config.actions;
@@ -2751,7 +2751,7 @@ OO.ui.Dialog.prototype.getSetupProcess = function ( data ) {
  */
 OO.ui.Dialog.prototype.getTeardownProcess = function ( data ) {
        // Parent method
-       return OO.ui.Dialog.super.prototype.getTeardownProcess.call( this, data )
+       return OO.ui.Dialog.parent.prototype.getTeardownProcess.call( this, data )
                .first( function () {
                        if ( this.constructor.static.escapable ) {
                                this.$document.off( 'keydown', this.onDocumentKeyDownHandler );
@@ -2767,7 +2767,7 @@ OO.ui.Dialog.prototype.getTeardownProcess = function ( data ) {
  */
 OO.ui.Dialog.prototype.initialize = function () {
        // Parent method
-       OO.ui.Dialog.super.prototype.initialize.call( this );
+       OO.ui.Dialog.parent.prototype.initialize.call( this );
 
        var titleId = OO.ui.generateElementId();
 
@@ -2898,7 +2898,7 @@ OO.ui.WindowManager = function OoUiWindowManager( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.WindowManager.super.call( this, config );
+       OO.ui.WindowManager.parent.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -3817,7 +3817,7 @@ OO.ui.Process.prototype.next = function ( step, context ) {
  */
 OO.ui.ToolFactory = function OoUiToolFactory() {
        // Parent constructor
-       OO.ui.ToolFactory.super.call( this );
+       OO.ui.ToolFactory.parent.call( this );
 };
 
 /* Setup */
@@ -6593,7 +6593,7 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Tool.super.call( this, config );
+       OO.ui.Tool.parent.call( this, config );
 
        // Properties
        this.toolGroup = toolGroup;
@@ -6894,7 +6894,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *
  *     // Create a class inheriting from OO.ui.Tool
  *     function PictureTool() {
- *         PictureTool.super.apply( this, arguments );
+ *         PictureTool.parent.apply( this, arguments );
  *     }
  *     OO.inheritClass( PictureTool, OO.ui.Tool );
  *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one
@@ -6913,7 +6913,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *
  *     // Register two more tools, nothing interesting here
  *     function SettingsTool() {
- *         SettingsTool.super.apply( this, arguments );
+ *         SettingsTool.parent.apply( this, arguments );
  *     }
  *     OO.inheritClass( SettingsTool, OO.ui.Tool );
  *     SettingsTool.static.name = 'settings';
@@ -6927,7 +6927,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *
  *     // Register two more tools, nothing interesting here
  *     function StuffTool() {
- *         StuffTool.super.apply( this, arguments );
+ *         StuffTool.parent.apply( this, arguments );
  *     }
  *     OO.inheritClass( StuffTool, OO.ui.Tool );
  *     StuffTool.static.name = 'stuff';
@@ -7010,7 +7010,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *
  *     // Create a class inheriting from OO.ui.Tool
  *     function PictureTool() {
- *         PictureTool.super.apply( this, arguments );
+ *         PictureTool.parent.apply( this, arguments );
  *     }
  *     OO.inheritClass( PictureTool, OO.ui.Tool );
  *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one
@@ -7034,7 +7034,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *
  *     // Register two more tools, nothing interesting here
  *     function SettingsTool() {
- *         SettingsTool.super.apply( this, arguments );
+ *         SettingsTool.parent.apply( this, arguments );
  *         this.reallyActive = false;
  *     }
  *     OO.inheritClass( SettingsTool, OO.ui.Tool );
@@ -7055,7 +7055,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *
  *     // Register two more tools, nothing interesting here
  *     function StuffTool() {
- *         StuffTool.super.apply( this, arguments );
+ *         StuffTool.parent.apply( this, arguments );
  *         this.reallyActive = false;
  *     }
  *     OO.inheritClass( StuffTool, OO.ui.Tool );
@@ -7153,7 +7153,7 @@ OO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Toolbar.super.call( this, config );
+       OO.ui.Toolbar.parent.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -7416,7 +7416,7 @@ OO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.ToolGroup.super.call( this, config );
+       OO.ui.ToolGroup.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.GroupElement.call( this, config );
@@ -7506,7 +7506,7 @@ OO.ui.ToolGroup.static.autoDisable = true;
  * @inheritdoc
  */
 OO.ui.ToolGroup.prototype.isDisabled = function () {
-       return this.autoDisabled || OO.ui.ToolGroup.super.prototype.isDisabled.apply( this, arguments );
+       return this.autoDisabled || OO.ui.ToolGroup.parent.prototype.isDisabled.apply( this, arguments );
 };
 
 /**
@@ -7525,7 +7525,7 @@ OO.ui.ToolGroup.prototype.updateDisabled = function () {
                }
                this.autoDisabled = allDisabled;
        }
-       OO.ui.ToolGroup.super.prototype.updateDisabled.apply( this, arguments );
+       OO.ui.ToolGroup.parent.prototype.updateDisabled.apply( this, arguments );
 };
 
 /**
@@ -7776,7 +7776,7 @@ OO.ui.ToolGroup.prototype.destroy = function () {
  */
 OO.ui.MessageDialog = function OoUiMessageDialog( config ) {
        // Parent constructor
-       OO.ui.MessageDialog.super.call( this, config );
+       OO.ui.MessageDialog.parent.call( this, config );
 
        // Properties
        this.verticalActionLayout = null;
@@ -7832,7 +7832,7 @@ OO.ui.MessageDialog.static.actions = [
  * @inheritdoc
  */
 OO.ui.MessageDialog.prototype.setManager = function ( manager ) {
-       OO.ui.MessageDialog.super.prototype.setManager.call( this, manager );
+       OO.ui.MessageDialog.parent.prototype.setManager.call( this, manager );
 
        // Events
        this.manager.connect( this, {
@@ -7847,7 +7847,7 @@ OO.ui.MessageDialog.prototype.setManager = function ( manager ) {
  */
 OO.ui.MessageDialog.prototype.onActionResize = function ( action ) {
        this.fitActions();
-       return OO.ui.MessageDialog.super.prototype.onActionResize.call( this, action );
+       return OO.ui.MessageDialog.parent.prototype.onActionResize.call( this, action );
 };
 
 /**
@@ -7894,7 +7894,7 @@ OO.ui.MessageDialog.prototype.getActionProcess = function ( action ) {
                        this.close( { action: action } );
                }, this );
        }
-       return OO.ui.MessageDialog.super.prototype.getActionProcess.call( this, action );
+       return OO.ui.MessageDialog.parent.prototype.getActionProcess.call( this, action );
 };
 
 /**
@@ -7911,7 +7911,7 @@ OO.ui.MessageDialog.prototype.getSetupProcess = function ( data ) {
        data = data || {};
 
        // Parent method
-       return OO.ui.MessageDialog.super.prototype.getSetupProcess.call( this, data )
+       return OO.ui.MessageDialog.parent.prototype.getSetupProcess.call( this, data )
                .next( function () {
                        this.title.setLabel(
                                data.title !== undefined ? data.title : this.constructor.static.title
@@ -7949,7 +7949,7 @@ OO.ui.MessageDialog.prototype.getBodyHeight = function () {
  */
 OO.ui.MessageDialog.prototype.setDimensions = function ( dim ) {
        var $scrollable = this.container.$element;
-       OO.ui.MessageDialog.super.prototype.setDimensions.call( this, dim );
+       OO.ui.MessageDialog.parent.prototype.setDimensions.call( this, dim );
 
        // Twiddle the overflow property, otherwise an unnecessary scrollbar will be produced.
        // Need to do it after transition completes (250ms), add 50ms just in case.
@@ -7970,7 +7970,7 @@ OO.ui.MessageDialog.prototype.setDimensions = function ( dim ) {
  */
 OO.ui.MessageDialog.prototype.initialize = function () {
        // Parent method
-       OO.ui.MessageDialog.super.prototype.initialize.call( this );
+       OO.ui.MessageDialog.parent.prototype.initialize.call( this );
 
        // Properties
        this.$actions = $( '<div>' );
@@ -8001,7 +8001,7 @@ OO.ui.MessageDialog.prototype.attachActions = function () {
        var i, len, other, special, others;
 
        // Parent method
-       OO.ui.MessageDialog.super.prototype.attachActions.call( this );
+       OO.ui.MessageDialog.parent.prototype.attachActions.call( this );
 
        special = this.actions.getSpecial();
        others = this.actions.getOthers();
@@ -8077,7 +8077,7 @@ OO.ui.MessageDialog.prototype.fitActions = function () {
  *     @example
  *     // Example: Creating and opening a process dialog window.
  *     function MyProcessDialog( config ) {
- *         MyProcessDialog.super.call( this, config );
+ *         MyProcessDialog.parent.call( this, config );
  *     }
  *     OO.inheritClass( MyProcessDialog, OO.ui.ProcessDialog );
  *
@@ -8088,7 +8088,7 @@ OO.ui.MessageDialog.prototype.fitActions = function () {
  *     ];
  *
  *     MyProcessDialog.prototype.initialize = function () {
- *         MyProcessDialog.super.prototype.initialize.apply( this, arguments );
+ *         MyProcessDialog.parent.prototype.initialize.apply( this, arguments );
  *         this.content = new OO.ui.PanelLayout( { padded: true, expanded: false } );
  *         this.content.$element.append( '<p>This is a process dialog window. The header contains the title and two buttons: \'Cancel\' (a safe action) on the left and \'Done\' (a primary action)  on the right.</p>' );
  *         this.$body.append( this.content.$element );
@@ -8100,7 +8100,7 @@ OO.ui.MessageDialog.prototype.fitActions = function () {
  *                 dialog.close( { action: action } );
  *             } );
  *         }
- *         return MyProcessDialog.super.prototype.getActionProcess.call( this, action );
+ *         return MyProcessDialog.parent.prototype.getActionProcess.call( this, action );
  *     };
  *
  *     var windowManager = new OO.ui.WindowManager();
@@ -8121,7 +8121,7 @@ OO.ui.MessageDialog.prototype.fitActions = function () {
  */
 OO.ui.ProcessDialog = function OoUiProcessDialog( config ) {
        // Parent constructor
-       OO.ui.ProcessDialog.super.call( this, config );
+       OO.ui.ProcessDialog.parent.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-processDialog' );
@@ -8163,7 +8163,7 @@ OO.ui.ProcessDialog.prototype.onActionResize = function ( action ) {
        if ( this.actions.isSpecial( action ) ) {
                this.fitLabel();
        }
-       return OO.ui.ProcessDialog.super.prototype.onActionResize.call( this, action );
+       return OO.ui.ProcessDialog.parent.prototype.onActionResize.call( this, action );
 };
 
 /**
@@ -8171,7 +8171,7 @@ OO.ui.ProcessDialog.prototype.onActionResize = function ( action ) {
  */
 OO.ui.ProcessDialog.prototype.initialize = function () {
        // Parent method
-       OO.ui.ProcessDialog.super.prototype.initialize.call( this );
+       OO.ui.ProcessDialog.parent.prototype.initialize.call( this );
 
        // Properties
        this.$navigation = $( '<div>' );
@@ -8234,7 +8234,7 @@ OO.ui.ProcessDialog.prototype.attachActions = function () {
        var i, len, other, special, others;
 
        // Parent method
-       OO.ui.ProcessDialog.super.prototype.attachActions.call( this );
+       OO.ui.ProcessDialog.parent.prototype.attachActions.call( this );
 
        special = this.actions.getSpecial();
        others = this.actions.getOthers();
@@ -8258,7 +8258,7 @@ OO.ui.ProcessDialog.prototype.attachActions = function () {
  */
 OO.ui.ProcessDialog.prototype.executeAction = function ( action ) {
        var process = this;
-       return OO.ui.ProcessDialog.super.prototype.executeAction.call( this, action )
+       return OO.ui.ProcessDialog.parent.prototype.executeAction.call( this, action )
                .fail( function ( errors ) {
                        process.showErrors( errors || [] );
                } );
@@ -8369,7 +8369,7 @@ OO.ui.ProcessDialog.prototype.hideErrors = function () {
  */
 OO.ui.ProcessDialog.prototype.getTeardownProcess = function ( data ) {
        // Parent method
-       return OO.ui.ProcessDialog.super.prototype.getTeardownProcess.call( this, data )
+       return OO.ui.ProcessDialog.parent.prototype.getTeardownProcess.call( this, data )
                .first( function () {
                        // Make sure to hide errors
                        this.hideErrors();
@@ -8420,7 +8420,7 @@ OO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {
        config = $.extend( { align: 'left' }, config );
 
        // Parent constructor
-       OO.ui.FieldLayout.super.call( this, config );
+       OO.ui.FieldLayout.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.LabelElement.call( this, config );
@@ -8592,7 +8592,7 @@ OO.ui.ActionFieldLayout = function OoUiActionFieldLayout( fieldWidget, buttonWid
        }
 
        // Parent constructor
-       OO.ui.ActionFieldLayout.super.call( this, fieldWidget, config );
+       OO.ui.ActionFieldLayout.parent.call( this, fieldWidget, config );
 
        // Properties
        this.buttonWidget = buttonWidget;
@@ -8663,7 +8663,7 @@ OO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.FieldsetLayout.super.call( this, config );
+       OO.ui.FieldsetLayout.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.IconElement.call( this, config );
@@ -8770,7 +8770,7 @@ OO.ui.FormLayout = function OoUiFormLayout( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.FormLayout.super.call( this, config );
+       OO.ui.FormLayout.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
@@ -8896,7 +8896,7 @@ OO.ui.MenuLayout = function OoUiMenuLayout( config ) {
        }, config );
 
        // Parent constructor
-       OO.ui.MenuLayout.super.call( this, config );
+       OO.ui.MenuLayout.parent.call( this, config );
 
        /**
         * Menu DOM node
@@ -8993,7 +8993,7 @@ OO.ui.MenuLayout.prototype.getMenuPosition = function () {
  *     // Example of a BookletLayout that contains two PageLayouts.
  *
  *     function PageOneLayout( name, config ) {
- *         PageOneLayout.super.call( this, name, config );
+ *         PageOneLayout.parent.call( this, name, config );
  *         this.$element.append( '<p>First page</p><p>(This booklet has an outline, displayed on the left)</p>' );
  *     }
  *     OO.inheritClass( PageOneLayout, OO.ui.PageLayout );
@@ -9002,7 +9002,7 @@ OO.ui.MenuLayout.prototype.getMenuPosition = function () {
  *     };
  *
  *     function PageTwoLayout( name, config ) {
- *         PageTwoLayout.super.call( this, name, config );
+ *         PageTwoLayout.parent.call( this, name, config );
  *         this.$element.append( '<p>Second page</p>' );
  *     }
  *     OO.inheritClass( PageTwoLayout, OO.ui.PageLayout );
@@ -9035,7 +9035,7 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.BookletLayout.super.call( this, config );
+       OO.ui.BookletLayout.parent.call( this, config );
 
        // Properties
        this.currentPageName = null;
@@ -9536,7 +9536,7 @@ OO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {
  *     // Example of a IndexLayout that contains two CardLayouts.
  *
  *     function CardOneLayout( name, config ) {
- *         CardOneLayout.super.call( this, name, config );
+ *         CardOneLayout.parent.call( this, name, config );
  *         this.$element.append( '<p>First card</p>' );
  *     }
  *     OO.inheritClass( CardOneLayout, OO.ui.CardLayout );
@@ -9545,7 +9545,7 @@ OO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {
  *     };
  *
  *     function CardTwoLayout( name, config ) {
- *         CardTwoLayout.super.call( this, name, config );
+ *         CardTwoLayout.parent.call( this, name, config );
  *         this.$element.append( '<p>Second card</p>' );
  *     }
  *     OO.inheritClass( CardTwoLayout, OO.ui.CardLayout );
@@ -9574,7 +9574,7 @@ OO.ui.IndexLayout = function OoUiIndexLayout( config ) {
        config = $.extend( {}, config, { menuPosition: 'top' } );
 
        // Parent constructor
-       OO.ui.IndexLayout.super.call( this, config );
+       OO.ui.IndexLayout.parent.call( this, config );
 
        // Properties
        this.currentCardName = null;
@@ -10010,7 +10010,7 @@ OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
        }, config );
 
        // Parent constructor
-       OO.ui.PanelLayout.super.call( this, config );
+       OO.ui.PanelLayout.parent.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-panelLayout' );
@@ -10059,7 +10059,7 @@ OO.ui.CardLayout = function OoUiCardLayout( name, config ) {
        config = $.extend( { scrollable: true }, config );
 
        // Parent constructor
-       OO.ui.CardLayout.super.call( this, config );
+       OO.ui.CardLayout.parent.call( this, config );
 
        // Properties
        this.name = name;
@@ -10198,7 +10198,7 @@ OO.ui.PageLayout = function OoUiPageLayout( name, config ) {
        config = $.extend( { scrollable: true }, config );
 
        // Parent constructor
-       OO.ui.PageLayout.super.call( this, config );
+       OO.ui.PageLayout.parent.call( this, config );
 
        // Properties
        this.name = name;
@@ -10348,7 +10348,7 @@ OO.ui.StackLayout = function OoUiStackLayout( config ) {
        config = $.extend( { scrollable: true }, config );
 
        // Parent constructor
-       OO.ui.StackLayout.super.call( this, config );
+       OO.ui.StackLayout.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
@@ -10548,7 +10548,7 @@ OO.ui.StackLayout.prototype.updateHiddenState = function ( items, selectedItem )
  *
  *     // Create a class inheriting from OO.ui.Tool
  *     function PictureTool() {
- *         PictureTool.super.apply( this, arguments );
+ *         PictureTool.parent.apply( this, arguments );
  *     }
  *     OO.inheritClass( PictureTool, OO.ui.Tool );
  *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one
@@ -10630,7 +10630,7 @@ OO.ui.BarToolGroup = function OoUiBarToolGroup( toolbar, config ) {
        }
 
        // Parent constructor
-       OO.ui.BarToolGroup.super.call( this, toolbar, config );
+       OO.ui.BarToolGroup.parent.call( this, toolbar, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-barToolGroup' );
@@ -10679,7 +10679,7 @@ OO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.PopupToolGroup.super.call( this, toolbar, config );
+       OO.ui.PopupToolGroup.parent.call( this, toolbar, config );
 
        // Properties
        this.active = false;
@@ -10739,7 +10739,7 @@ OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.mixin.TabIndexedElement );
  */
 OO.ui.PopupToolGroup.prototype.setDisabled = function () {
        // Parent method
-       OO.ui.PopupToolGroup.super.prototype.setDisabled.apply( this, arguments );
+       OO.ui.PopupToolGroup.parent.prototype.setDisabled.apply( this, arguments );
 
        if ( this.isDisabled() && this.isElementAttached() ) {
                this.setActive( false );
@@ -10772,7 +10772,7 @@ OO.ui.PopupToolGroup.prototype.onMouseKeyUp = function ( e ) {
        ) {
                this.setActive( false );
        }
-       return OO.ui.PopupToolGroup.super.prototype.onMouseKeyUp.call( this, e );
+       return OO.ui.PopupToolGroup.parent.prototype.onMouseKeyUp.call( this, e );
 };
 
 /**
@@ -10865,7 +10865,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
  *
  *     // Configure and register two tools
  *     function SettingsTool() {
- *         SettingsTool.super.apply( this, arguments );
+ *         SettingsTool.parent.apply( this, arguments );
  *     }
  *     OO.inheritClass( SettingsTool, OO.ui.Tool );
  *     SettingsTool.static.name = 'settings';
@@ -10877,7 +10877,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
  *     toolFactory.register( SettingsTool );
  *     // Register two more tools, nothing interesting here
  *     function StuffTool() {
- *         StuffTool.super.apply( this, arguments );
+ *         StuffTool.parent.apply( this, arguments );
  *     }
  *     OO.inheritClass( StuffTool, OO.ui.Tool );
  *     StuffTool.static.name = 'stuff';
@@ -10951,7 +10951,7 @@ OO.ui.ListToolGroup = function OoUiListToolGroup( toolbar, config ) {
        this.collapsibleTools = [];
 
        // Parent constructor
-       OO.ui.ListToolGroup.super.call( this, toolbar, config );
+       OO.ui.ListToolGroup.parent.call( this, toolbar, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-listToolGroup' );
@@ -10973,7 +10973,7 @@ OO.ui.ListToolGroup.static.name = 'list';
 OO.ui.ListToolGroup.prototype.populate = function () {
        var i, len, allowCollapse = [];
 
-       OO.ui.ListToolGroup.super.prototype.populate.call( this );
+       OO.ui.ListToolGroup.parent.prototype.populate.call( this );
 
        // Update the list of collapsible tools
        if ( this.allowCollapse !== undefined ) {
@@ -10999,7 +10999,7 @@ OO.ui.ListToolGroup.prototype.populate = function () {
 OO.ui.ListToolGroup.prototype.getExpandCollapseTool = function () {
        if ( this.expandCollapseTool === undefined ) {
                var ExpandCollapseTool = function () {
-                       ExpandCollapseTool.super.apply( this, arguments );
+                       ExpandCollapseTool.parent.apply( this, arguments );
                };
 
                OO.inheritClass( ExpandCollapseTool, OO.ui.Tool );
@@ -11031,9 +11031,9 @@ OO.ui.ListToolGroup.prototype.onMouseKeyUp = function ( e ) {
        ) {
                // 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 );
+               return OO.ui.ListToolGroup.parent.parent.prototype.onMouseKeyUp.call( this, e );
        } else {
-               return OO.ui.ListToolGroup.super.prototype.onMouseKeyUp.call( this, e );
+               return OO.ui.ListToolGroup.parent.prototype.onMouseKeyUp.call( this, e );
        }
 };
 
@@ -11073,7 +11073,7 @@ OO.ui.ListToolGroup.prototype.updateCollapsibleState = function () {
  *     // Define the tools that we're going to place in our toolbar
  *
  *     function SettingsTool() {
- *         SettingsTool.super.apply( this, arguments );
+ *         SettingsTool.parent.apply( this, arguments );
  *         this.reallyActive = false;
  *     }
  *     OO.inheritClass( SettingsTool, OO.ui.Tool );
@@ -11093,7 +11093,7 @@ OO.ui.ListToolGroup.prototype.updateCollapsibleState = function () {
  *     toolFactory.register( SettingsTool );
  *
  *     function StuffTool() {
- *         StuffTool.super.apply( this, arguments );
+ *         StuffTool.parent.apply( this, arguments );
  *         this.reallyActive = false;
  *     }
  *     OO.inheritClass( StuffTool, OO.ui.Tool );
@@ -11167,7 +11167,7 @@ OO.ui.MenuToolGroup = function OoUiMenuToolGroup( toolbar, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.MenuToolGroup.super.call( this, toolbar, config );
+       OO.ui.MenuToolGroup.parent.call( this, toolbar, config );
 
        // Events
        this.toolbar.connect( this, { updateState: 'onUpdateState' } );
@@ -11250,7 +11250,7 @@ OO.ui.PopupTool = function OoUiPopupTool( toolGroup, config ) {
        }
 
        // Parent constructor
-       OO.ui.PopupTool.super.call( this, toolGroup, config );
+       OO.ui.PopupTool.parent.call( this, toolGroup, config );
 
        // Mixin constructors
        OO.ui.mixin.PopupElement.call( this, config );
@@ -11300,7 +11300,7 @@ OO.ui.PopupTool.prototype.onUpdateState = function () {
  *     // Example: ToolGroupTool with two nested tools, 'setting1' and 'setting2', defined elsewhere.
  *
  *     function SettingsTool() {
- *         SettingsTool.super.apply( this, arguments );
+ *         SettingsTool.parent.apply( this, arguments );
  *     };
  *     OO.inheritClass( SettingsTool, OO.ui.ToolGroupTool );
  *     SettingsTool.static.name = 'settings';
@@ -11335,7 +11335,7 @@ OO.ui.ToolGroupTool = function OoUiToolGroupTool( toolGroup, config ) {
        }
 
        // Parent constructor
-       OO.ui.ToolGroupTool.super.call( this, toolGroup, config );
+       OO.ui.ToolGroupTool.parent.call( this, toolGroup, config );
 
        // Properties
        this.innerToolGroup = this.createGroup( this.constructor.static.groupConfig );
@@ -11431,7 +11431,7 @@ OO.ui.ToolGroupTool.prototype.createGroup = function ( group ) {
  */
 OO.ui.mixin.GroupWidget = function OoUiMixinGroupWidget( config ) {
        // Parent constructor
-       OO.ui.mixin.GroupWidget.super.call( this, config );
+       OO.ui.mixin.GroupWidget.parent.call( this, config );
 };
 
 /* Setup */
@@ -11542,7 +11542,7 @@ OO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, confi
        config = $.extend( { icon: 'add' }, config );
 
        // Parent constructor
-       OO.ui.OutlineControlsWidget.super.call( this, config );
+       OO.ui.OutlineControlsWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.GroupElement.call( this, config );
@@ -11678,7 +11678,7 @@ OO.ui.ToggleWidget = function OoUiToggleWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.ToggleWidget.super.call( this, config );
+       OO.ui.ToggleWidget.parent.call( this, config );
 
        // Properties
        this.value = null;
@@ -11769,7 +11769,7 @@ OO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.ButtonGroupWidget.super.call( this, config );
+       OO.ui.ButtonGroupWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.GroupElement.call( this, $.extend( {}, config, { $group: this.$element } ) );
@@ -11826,7 +11826,7 @@ OO.ui.ButtonWidget = function OoUiButtonWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.ButtonWidget.super.call( this, config );
+       OO.ui.ButtonWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.ButtonElement.call( this, config );
@@ -12030,7 +12030,7 @@ OO.ui.ActionWidget = function OoUiActionWidget( config ) {
        config = $.extend( { framed: false }, config );
 
        // Parent constructor
-       OO.ui.ActionWidget.super.call( this, config );
+       OO.ui.ActionWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.PendingElement.call( this, config );
@@ -12167,7 +12167,7 @@ OO.ui.ActionWidget.prototype.clearFlags = function () {
  */
 OO.ui.ActionWidget.prototype.toggle = function () {
        // Parent method
-       OO.ui.ActionWidget.super.prototype.toggle.apply( this, arguments );
+       OO.ui.ActionWidget.parent.prototype.toggle.apply( this, arguments );
        this.propagateResize();
 
        return this;
@@ -12200,7 +12200,7 @@ OO.ui.ActionWidget.prototype.toggle = function () {
  */
 OO.ui.PopupButtonWidget = function OoUiPopupButtonWidget( config ) {
        // Parent constructor
-       OO.ui.PopupButtonWidget.super.call( this, config );
+       OO.ui.PopupButtonWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.PopupElement.call( this, config );
@@ -12273,7 +12273,7 @@ OO.ui.ToggleButtonWidget = function OoUiToggleButtonWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.ToggleButtonWidget.super.call( this, config );
+       OO.ui.ToggleButtonWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.ButtonElement.call( this, config );
@@ -12330,7 +12330,7 @@ OO.ui.ToggleButtonWidget.prototype.setValue = function ( value ) {
        }
 
        // Parent method
-       OO.ui.ToggleButtonWidget.super.prototype.setValue.call( this, value );
+       OO.ui.ToggleButtonWidget.parent.prototype.setValue.call( this, value );
 
        return this;
 };
@@ -12399,7 +12399,7 @@ OO.ui.DropdownWidget = function OoUiDropdownWidget( config ) {
        config = $.extend( { indicator: 'down' }, config );
 
        // Parent constructor
-       OO.ui.DropdownWidget.super.call( this, config );
+       OO.ui.DropdownWidget.parent.call( this, config );
 
        // Properties (must be set before TabIndexedElement constructor call)
        this.$handle = this.$( '<span>' );
@@ -12542,7 +12542,7 @@ OO.ui.SelectFileWidget = function OoUiSelectFileWidget( config ) {
        }, config );
 
        // Parent constructor
-       OO.ui.SelectFileWidget.super.call( this, config );
+       OO.ui.SelectFileWidget.parent.call( this, config );
 
        // Properties (must be set before TabIndexedElement constructor call)
        this.$handle = $( '<span>' );
@@ -12879,7 +12879,7 @@ OO.ui.SelectFileWidget.prototype.onDrop = function ( e ) {
  * @inheritdoc
  */
 OO.ui.SelectFileWidget.prototype.setDisabled = function ( state ) {
-       OO.ui.SelectFileWidget.super.prototype.setDisabled.call( this, state );
+       OO.ui.SelectFileWidget.parent.prototype.setDisabled.call( this, state );
        if ( this.clearButton ) {
                this.clearButton.setDisabled( state );
        }
@@ -12919,7 +12919,7 @@ OO.ui.IconWidget = function OoUiIconWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.IconWidget.super.call( this, config );
+       OO.ui.IconWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.IconElement.call( this, $.extend( {}, config, { $icon: this.$element } ) );
@@ -12974,7 +12974,7 @@ OO.ui.IndicatorWidget = function OoUiIndicatorWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.IndicatorWidget.super.call( this, config );
+       OO.ui.IndicatorWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.IndicatorElement.call( this, $.extend( {}, config, { $indicator: this.$element } ) );
@@ -13020,7 +13020,7 @@ OO.ui.InputWidget = function OoUiInputWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.InputWidget.super.call( this, config );
+       OO.ui.InputWidget.parent.call( this, config );
 
        // Properties
        this.$input = this.getInputElement( config );
@@ -13179,7 +13179,7 @@ OO.ui.InputWidget.prototype.simulateLabelClick = function () {
  * @inheritdoc
  */
 OO.ui.InputWidget.prototype.setDisabled = function ( state ) {
-       OO.ui.InputWidget.super.prototype.setDisabled.call( this, state );
+       OO.ui.InputWidget.parent.prototype.setDisabled.call( this, state );
        if ( this.$input ) {
                this.$input.prop( 'disabled', this.isDisabled() );
        }
@@ -13248,7 +13248,7 @@ OO.ui.ButtonInputWidget = function OoUiButtonInputWidget( config ) {
        this.useInputTag = config.useInputTag;
 
        // Parent constructor
-       OO.ui.ButtonInputWidget.super.call( this, config );
+       OO.ui.ButtonInputWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.ButtonElement.call( this, $.extend( {}, config, { $button: this.$input } ) );
@@ -13325,7 +13325,7 @@ OO.ui.ButtonInputWidget.prototype.setLabel = function ( label ) {
  */
 OO.ui.ButtonInputWidget.prototype.setValue = function ( value ) {
        if ( !this.useInputTag ) {
-               OO.ui.ButtonInputWidget.super.prototype.setValue.call( this, value );
+               OO.ui.ButtonInputWidget.parent.prototype.setValue.call( this, value );
        }
        return this;
 };
@@ -13376,7 +13376,7 @@ OO.ui.CheckboxInputWidget = function OoUiCheckboxInputWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.CheckboxInputWidget.super.call( this, config );
+       OO.ui.CheckboxInputWidget.parent.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-checkboxInputWidget' );
@@ -13481,7 +13481,7 @@ OO.ui.DropdownInputWidget = function OoUiDropdownInputWidget( config ) {
        this.dropdownWidget = new OO.ui.DropdownWidget();
 
        // Parent constructor
-       OO.ui.DropdownInputWidget.super.call( this, config );
+       OO.ui.DropdownInputWidget.parent.call( this, config );
 
        // Events
        this.dropdownWidget.getMenu().connect( this, { select: 'onMenuSelect' } );
@@ -13522,7 +13522,7 @@ OO.ui.DropdownInputWidget.prototype.onMenuSelect = function ( item ) {
  */
 OO.ui.DropdownInputWidget.prototype.setValue = function ( value ) {
        this.dropdownWidget.getMenu().selectItemByData( value );
-       OO.ui.DropdownInputWidget.super.prototype.setValue.call( this, value );
+       OO.ui.DropdownInputWidget.parent.prototype.setValue.call( this, value );
        return this;
 };
 
@@ -13531,7 +13531,7 @@ OO.ui.DropdownInputWidget.prototype.setValue = function ( value ) {
  */
 OO.ui.DropdownInputWidget.prototype.setDisabled = function ( state ) {
        this.dropdownWidget.setDisabled( state );
-       OO.ui.DropdownInputWidget.super.prototype.setDisabled.call( this, state );
+       OO.ui.DropdownInputWidget.parent.prototype.setDisabled.call( this, state );
        return this;
 };
 
@@ -13630,7 +13630,7 @@ OO.ui.RadioInputWidget = function OoUiRadioInputWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.RadioInputWidget.super.call( this, config );
+       OO.ui.RadioInputWidget.parent.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-radioInputWidget' );
@@ -13715,7 +13715,7 @@ OO.ui.RadioSelectInputWidget = function OoUiRadioSelectInputWidget( config ) {
        this.radioSelectWidget = new OO.ui.RadioSelectWidget();
 
        // Parent constructor
-       OO.ui.RadioSelectInputWidget.super.call( this, config );
+       OO.ui.RadioSelectInputWidget.parent.call( this, config );
 
        // Events
        this.radioSelectWidget.connect( this, { select: 'onMenuSelect' } );
@@ -13760,7 +13760,7 @@ OO.ui.RadioSelectInputWidget.prototype.onMenuSelect = function ( item ) {
  */
 OO.ui.RadioSelectInputWidget.prototype.setValue = function ( value ) {
        this.radioSelectWidget.selectItemByData( value );
-       OO.ui.RadioSelectInputWidget.super.prototype.setValue.call( this, value );
+       OO.ui.RadioSelectInputWidget.parent.prototype.setValue.call( this, value );
        return this;
 };
 
@@ -13769,7 +13769,7 @@ OO.ui.RadioSelectInputWidget.prototype.setValue = function ( value ) {
  */
 OO.ui.RadioSelectInputWidget.prototype.setDisabled = function ( state ) {
        this.radioSelectWidget.setDisabled( state );
-       OO.ui.RadioSelectInputWidget.super.prototype.setDisabled.call( this, state );
+       OO.ui.RadioSelectInputWidget.parent.prototype.setDisabled.call( this, state );
        return this;
 };
 
@@ -13863,7 +13863,7 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        }, config );
 
        // Parent constructor
-       OO.ui.TextInputWidget.super.call( this, config );
+       OO.ui.TextInputWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.IconElement.call( this, config );
@@ -14409,7 +14409,7 @@ OO.ui.ComboBoxWidget = function OoUiComboBoxWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.ComboBoxWidget.super.call( this, config );
+       OO.ui.ComboBoxWidget.parent.call( this, config );
 
        // Properties (must be set before TabIndexedElement constructor call)
        this.$indicator = this.$( '<span>' );
@@ -14573,7 +14573,7 @@ OO.ui.ComboBoxWidget.prototype.onMenuItemsChange = function () {
  */
 OO.ui.ComboBoxWidget.prototype.setDisabled = function ( disabled ) {
        // Parent method
-       OO.ui.ComboBoxWidget.super.prototype.setDisabled.call( this, disabled );
+       OO.ui.ComboBoxWidget.parent.prototype.setDisabled.call( this, disabled );
 
        if ( this.input ) {
                this.input.setDisabled( this.isDisabled() );
@@ -14629,7 +14629,7 @@ OO.ui.LabelWidget = function OoUiLabelWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.LabelWidget.super.call( this, config );
+       OO.ui.LabelWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: this.$element } ) );
@@ -14691,7 +14691,7 @@ OO.ui.OptionWidget = function OoUiOptionWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.OptionWidget.super.call( this, config );
+       OO.ui.OptionWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.ItemWidget.call( this );
@@ -14885,7 +14885,7 @@ OO.ui.OptionWidget.prototype.setPressed = function ( state ) {
  */
 OO.ui.DecoratedOptionWidget = function OoUiDecoratedOptionWidget( config ) {
        // Parent constructor
-       OO.ui.DecoratedOptionWidget.super.call( this, config );
+       OO.ui.DecoratedOptionWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.IconElement.call( this, config );
@@ -14925,7 +14925,7 @@ OO.ui.ButtonOptionWidget = function OoUiButtonOptionWidget( config ) {
        config = $.extend( { tabIndex: -1 }, config );
 
        // Parent constructor
-       OO.ui.ButtonOptionWidget.super.call( this, config );
+       OO.ui.ButtonOptionWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.ButtonElement.call( this, config );
@@ -14956,7 +14956,7 @@ OO.ui.ButtonOptionWidget.static.highlightable = false;
  * @inheritdoc
  */
 OO.ui.ButtonOptionWidget.prototype.setSelected = function ( state ) {
-       OO.ui.ButtonOptionWidget.super.prototype.setSelected.call( this, state );
+       OO.ui.ButtonOptionWidget.parent.prototype.setSelected.call( this, state );
 
        if ( this.constructor.static.selectable ) {
                this.setActive( state );
@@ -14986,7 +14986,7 @@ OO.ui.RadioOptionWidget = function OoUiRadioOptionWidget( config ) {
        this.radio = new OO.ui.RadioInputWidget( { value: config.data, tabIndex: -1 } );
 
        // Parent constructor
-       OO.ui.RadioOptionWidget.super.call( this, config );
+       OO.ui.RadioOptionWidget.parent.call( this, config );
 
        // Events
        this.radio.$input.on( 'focus', this.onInputFocus.bind( this ) );
@@ -15026,7 +15026,7 @@ OO.ui.RadioOptionWidget.prototype.onInputFocus = function () {
  * @inheritdoc
  */
 OO.ui.RadioOptionWidget.prototype.setSelected = function ( state ) {
-       OO.ui.RadioOptionWidget.super.prototype.setSelected.call( this, state );
+       OO.ui.RadioOptionWidget.parent.prototype.setSelected.call( this, state );
 
        this.radio.setSelected( state );
 
@@ -15037,7 +15037,7 @@ OO.ui.RadioOptionWidget.prototype.setSelected = function ( state ) {
  * @inheritdoc
  */
 OO.ui.RadioOptionWidget.prototype.setDisabled = function ( disabled ) {
-       OO.ui.RadioOptionWidget.super.prototype.setDisabled.call( this, disabled );
+       OO.ui.RadioOptionWidget.parent.prototype.setDisabled.call( this, disabled );
 
        this.radio.setDisabled( this.isDisabled() );
 
@@ -15062,7 +15062,7 @@ OO.ui.MenuOptionWidget = function OoUiMenuOptionWidget( config ) {
        config = $.extend( { icon: 'check' }, config );
 
        // Parent constructor
-       OO.ui.MenuOptionWidget.super.call( this, config );
+       OO.ui.MenuOptionWidget.parent.call( this, config );
 
        // Initialization
        this.$element
@@ -15118,7 +15118,7 @@ OO.ui.MenuOptionWidget.static.scrollIntoViewOnSelect = true;
  */
 OO.ui.MenuSectionOptionWidget = function OoUiMenuSectionOptionWidget( config ) {
        // Parent constructor
-       OO.ui.MenuSectionOptionWidget.super.call( this, config );
+       OO.ui.MenuSectionOptionWidget.parent.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-menuSectionOptionWidget' );
@@ -15154,7 +15154,7 @@ OO.ui.OutlineOptionWidget = function OoUiOutlineOptionWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.OutlineOptionWidget.super.call( this, config );
+       OO.ui.OutlineOptionWidget.parent.call( this, config );
 
        // Properties
        this.level = 0;
@@ -15283,7 +15283,7 @@ OO.ui.TabOptionWidget = function OoUiTabOptionWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.TabOptionWidget.super.call( this, config );
+       OO.ui.TabOptionWidget.parent.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-tabOptionWidget' );
@@ -15351,7 +15351,7 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.PopupWidget.super.call( this, config );
+       OO.ui.PopupWidget.parent.call( this, config );
 
        // Properties (must be set before ClippableElement constructor call)
        this.$body = $( '<div>' );
@@ -15537,7 +15537,7 @@ OO.ui.PopupWidget.prototype.toggle = function ( show ) {
        var change = show !== this.isVisible();
 
        // Parent method
-       OO.ui.PopupWidget.super.prototype.toggle.call( this, show );
+       OO.ui.PopupWidget.parent.prototype.toggle.call( this, show );
 
        if ( change ) {
                if ( show ) {
@@ -15734,7 +15734,7 @@ OO.ui.ProgressBarWidget = function OoUiProgressBarWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.ProgressBarWidget.super.call( this, config );
+       OO.ui.ProgressBarWidget.parent.call( this, config );
 
        // Properties
        this.$bar = $( '<div>' );
@@ -15815,7 +15815,7 @@ OO.ui.SearchWidget = function OoUiSearchWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.SearchWidget.super.call( this, config );
+       OO.ui.SearchWidget.parent.call( this, config );
 
        // Properties
        this.query = new OO.ui.TextInputWidget( {
@@ -16015,7 +16015,7 @@ OO.ui.SelectWidget = function OoUiSelectWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.SelectWidget.super.call( this, config );
+       OO.ui.SelectWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.GroupWidget.call( this, $.extend( {}, config, { $group: this.$element } ) );
@@ -16389,7 +16389,7 @@ OO.ui.SelectWidget.prototype.getItemMatcher = function ( s ) {
        if ( s.normalize ) {
                s = s.normalize();
        }
-       re = new RegExp( '^\s*' + s.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' ).replace( /\s+/g, '\\s+' ), 'i' );
+       re = new RegExp( '^\\s*' + s.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' ).replace( /\s+/g, '\\s+' ), 'i' );
        return function ( item ) {
                var l = item.getLabel();
                if ( typeof l !== 'string' ) {
@@ -16789,7 +16789,7 @@ OO.ui.SelectWidget.prototype.clearItems = function () {
  */
 OO.ui.ButtonSelectWidget = function OoUiButtonSelectWidget( config ) {
        // Parent constructor
-       OO.ui.ButtonSelectWidget.super.call( this, config );
+       OO.ui.ButtonSelectWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.TabIndexedElement.call( this, config );
@@ -16851,7 +16851,7 @@ OO.mixinClass( OO.ui.ButtonSelectWidget, OO.ui.mixin.TabIndexedElement );
  */
 OO.ui.RadioSelectWidget = function OoUiRadioSelectWidget( config ) {
        // Parent constructor
-       OO.ui.RadioSelectWidget.super.call( this, config );
+       OO.ui.RadioSelectWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.TabIndexedElement.call( this, config );
@@ -16912,7 +16912,7 @@ OO.ui.MenuSelectWidget = function OoUiMenuSelectWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.MenuSelectWidget.super.call( this, config );
+       OO.ui.MenuSelectWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );
@@ -16970,7 +16970,7 @@ OO.ui.MenuSelectWidget.prototype.onKeyDown = function ( e ) {
                        case OO.ui.Keys.RIGHT:
                                // Do nothing if a text field is associated, arrow keys will be handled natively
                                if ( !this.$input ) {
-                                       OO.ui.MenuSelectWidget.super.prototype.onKeyDown.call( this, e );
+                                       OO.ui.MenuSelectWidget.parent.prototype.onKeyDown.call( this, e );
                                }
                                break;
                        case OO.ui.Keys.ESCAPE:
@@ -16986,7 +16986,7 @@ OO.ui.MenuSelectWidget.prototype.onKeyDown = function ( e ) {
                                }
                                break;
                        default:
-                               OO.ui.MenuSelectWidget.super.prototype.onKeyDown.call( this, e );
+                               OO.ui.MenuSelectWidget.parent.prototype.onKeyDown.call( this, e );
                                return;
                }
        }
@@ -16999,7 +16999,7 @@ OO.ui.MenuSelectWidget.prototype.bindKeyDownListener = function () {
        if ( this.$input ) {
                this.$input.on( 'keydown', this.onKeyDownHandler );
        } else {
-               OO.ui.MenuSelectWidget.super.prototype.bindKeyDownListener.call( this );
+               OO.ui.MenuSelectWidget.parent.prototype.bindKeyDownListener.call( this );
        }
 };
 
@@ -17010,7 +17010,7 @@ OO.ui.MenuSelectWidget.prototype.unbindKeyDownListener = function () {
        if ( this.$input ) {
                this.$input.off( 'keydown', this.onKeyDownHandler );
        } else {
-               OO.ui.MenuSelectWidget.super.prototype.unbindKeyDownListener.call( this );
+               OO.ui.MenuSelectWidget.parent.prototype.unbindKeyDownListener.call( this );
        }
 };
 
@@ -17019,7 +17019,7 @@ OO.ui.MenuSelectWidget.prototype.unbindKeyDownListener = function () {
  */
 OO.ui.MenuSelectWidget.prototype.bindKeyPressListener = function () {
        if ( !this.$input ) {
-               OO.ui.MenuSelectWidget.super.prototype.bindKeyPressListener.call( this );
+               OO.ui.MenuSelectWidget.parent.prototype.bindKeyPressListener.call( this );
        }
 };
 
@@ -17030,7 +17030,7 @@ OO.ui.MenuSelectWidget.prototype.unbindKeyPressListener = function () {
        if ( this.$input ) {
                this.clearKeyPressBuffer();
        } else {
-               OO.ui.MenuSelectWidget.super.prototype.unbindKeyPressListener.call( this );
+               OO.ui.MenuSelectWidget.parent.prototype.unbindKeyPressListener.call( this );
        }
 };
 
@@ -17045,7 +17045,7 @@ OO.ui.MenuSelectWidget.prototype.unbindKeyPressListener = function () {
  * @chainable
  */
 OO.ui.MenuSelectWidget.prototype.chooseItem = function ( item ) {
-       OO.ui.MenuSelectWidget.super.prototype.chooseItem.call( this, item );
+       OO.ui.MenuSelectWidget.parent.prototype.chooseItem.call( this, item );
        this.toggle( false );
        return this;
 };
@@ -17057,7 +17057,7 @@ OO.ui.MenuSelectWidget.prototype.addItems = function ( items, index ) {
        var i, len, item;
 
        // Parent method
-       OO.ui.MenuSelectWidget.super.prototype.addItems.call( this, items, index );
+       OO.ui.MenuSelectWidget.parent.prototype.addItems.call( this, items, index );
 
        // Auto-initialize
        if ( !this.newItems ) {
@@ -17085,7 +17085,7 @@ OO.ui.MenuSelectWidget.prototype.addItems = function ( items, index ) {
  */
 OO.ui.MenuSelectWidget.prototype.removeItems = function ( items ) {
        // Parent method
-       OO.ui.MenuSelectWidget.super.prototype.removeItems.call( this, items );
+       OO.ui.MenuSelectWidget.parent.prototype.removeItems.call( this, items );
 
        // Reevaluate clipping
        this.clip();
@@ -17098,7 +17098,7 @@ OO.ui.MenuSelectWidget.prototype.removeItems = function ( items ) {
  */
 OO.ui.MenuSelectWidget.prototype.clearItems = function () {
        // Parent method
-       OO.ui.MenuSelectWidget.super.prototype.clearItems.call( this );
+       OO.ui.MenuSelectWidget.parent.prototype.clearItems.call( this );
 
        // Reevaluate clipping
        this.clip();
@@ -17116,7 +17116,7 @@ OO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {
                change = visible !== this.isVisible();
 
        // Parent method
-       OO.ui.MenuSelectWidget.super.prototype.toggle.call( this, visible );
+       OO.ui.MenuSelectWidget.parent.prototype.toggle.call( this, visible );
 
        if ( change ) {
                if ( visible ) {
@@ -17175,7 +17175,7 @@ OO.ui.TextInputMenuSelectWidget = function OoUiTextInputMenuSelectWidget( inputW
        config = config || {};
 
        // Parent constructor
-       OO.ui.TextInputMenuSelectWidget.super.call( this, config );
+       OO.ui.TextInputMenuSelectWidget.parent.call( this, config );
 
        // Properties
        this.inputWidget = inputWidget;
@@ -17218,7 +17218,7 @@ OO.ui.TextInputMenuSelectWidget.prototype.toggle = function ( visible ) {
        }
 
        // Parent method
-       OO.ui.TextInputMenuSelectWidget.super.prototype.toggle.call( this, visible );
+       OO.ui.TextInputMenuSelectWidget.parent.prototype.toggle.call( this, visible );
 
        if ( change ) {
                if ( this.isVisible() ) {
@@ -17269,7 +17269,7 @@ OO.ui.TextInputMenuSelectWidget.prototype.position = function () {
  */
 OO.ui.OutlineSelectWidget = function OoUiOutlineSelectWidget( config ) {
        // Parent constructor
-       OO.ui.OutlineSelectWidget.super.call( this, config );
+       OO.ui.OutlineSelectWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.TabIndexedElement.call( this, config );
@@ -17303,7 +17303,7 @@ OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.mixin.TabIndexedElement );
  */
 OO.ui.TabSelectWidget = function OoUiTabSelectWidget( config ) {
        // Parent constructor
-       OO.ui.TabSelectWidget.super.call( this, config );
+       OO.ui.TabSelectWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.TabIndexedElement.call( this, config );
@@ -17361,7 +17361,7 @@ OO.ui.NumberInputWidget = function OoUiNumberInputWidget( config ) {
        }, config );
 
        // Parent constructor
-       OO.ui.NumberInputWidget.super.call( this, config );
+       OO.ui.NumberInputWidget.parent.call( this, config );
 
        // Properties
        this.input = new OO.ui.TextInputWidget( $.extend(
@@ -17628,7 +17628,8 @@ OO.ui.NumberInputWidget.prototype.onWheel = function ( event ) {
        }
 
        if ( delta ) {
-               this.adjustValue( Math.sign( delta ) * this.step );
+               delta = delta < 0 ? -1 : 1;
+               this.adjustValue( delta * this.step );
        }
 
        return false;
@@ -17665,7 +17666,7 @@ OO.ui.NumberInputWidget.prototype.onKeyDown = function ( e ) {
  */
 OO.ui.NumberInputWidget.prototype.setDisabled = function ( disabled ) {
        // Parent method
-       OO.ui.NumberInputWidget.super.prototype.setDisabled.call( this, disabled );
+       OO.ui.NumberInputWidget.parent.prototype.setDisabled.call( this, disabled );
 
        if ( this.input ) {
                this.input.setDisabled( this.isDisabled() );
@@ -17713,7 +17714,7 @@ OO.ui.NumberInputWidget.prototype.setDisabled = function ( disabled ) {
  */
 OO.ui.ToggleSwitchWidget = function OoUiToggleSwitchWidget( config ) {
        // Parent constructor
-       OO.ui.ToggleSwitchWidget.super.call( this, config );
+       OO.ui.ToggleSwitchWidget.parent.call( this, config );
 
        // Mixin constructors
        OO.ui.mixin.TabIndexedElement.call( this, config );
index 5fbf34d..701166a 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "bell": { "file": "images/icons/bell.svg" },
                "bellOn": { "file": {
index 29681c0..18c8dd5 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "article": { "file": {
                        "ltr": "images/icons/article-ltr.svg",
index 8fdc505..0e1a8a1 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "alignCentre": { "file": "images/icons/align-center.svg" },
                "alignLeft": { "file": "images/icons/align-float-left.svg" },
index 490f8fa..cfd4abc 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "indent": { "file": {
                        "ltr": "images/icons/indent-ltr.svg",
index 65fbc21..03aeb51 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "bigger": { "file": {
                        "ltr": "images/icons/bigger-ltr.svg",
index 497a301..02dfffa 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "beta": { "file": "images/icons/beta.svg" },
                "betaLaunch": { "file": "images/icons/betaLaunch.svg" },
index 9eec19b..0ecc2e1 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "map": { "file": {
                        "ltr": "images/icons/map-ltr.svg",
index 960079b..1c6da5a 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "image": { "file": {
                        "ltr": "images/icons/image-ltr.svg",
index d4be285..fb1deb1 100644 (file)
                        "ltr": "images/icons/lock-ltr.svg",
                        "rtl": "images/icons/lock-rtl.svg"
                }, "variants": [ "destructive" ] },
-               "ongoingConversation": { "file": {
-                       "ltr": "images/icons/ongoingConversation-ltr.svg",
-                       "rtl": "images/icons/ongoingConversation-rtl.svg"
-               } },
-               "star": { "file": "images/icons/star.svg" },
+               "ongoingConversation": {
+                       "file": {
+                               "ltr": "images/icons/ongoingConversation-ltr.svg",
+                               "rtl": "images/icons/ongoingConversation-rtl.svg"
+                       },
+                       "variants": [ "progressive" ]
+               },
+               "star": { "file": "images/icons/star.svg", "variants": [ "constructive" ] },
                "trash": { "file": "images/icons/trash.svg" },
                "trashUndo": { "file": {
                        "ltr": "images/icons/trashUndo-ltr.svg",
@@ -51,6 +54,6 @@
                        "ltr": "images/icons/unLock-ltr.svg",
                        "rtl": "images/icons/unLock-rtl.svg"
                }, "variants": [ "destructive" ] },
-               "unStar": { "file": "images/icons/unStar.svg" }
+               "unStar": { "file": "images/icons/unStar.svg", "variants": [ "constructive" ] }
        }
 }
index 9aa1b80..8305580 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "arrowNext": { "file": {
                        "ltr": "images/icons/arrow-ltr.svg",
index 2bda575..e2b2c82 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "userActive": { "file": {
                        "ltr": "images/icons/userActive-ltr.svg",
index fd13c95..911eb6f 100644 (file)
@@ -1,6 +1,12 @@
 {
        "prefix": "oo-ui-icon",
        "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
        "images": {
                "logoCC": { "file": "images/icons/logo-cc.svg" },
                "logoWikimediaCommons": { "file": "images/icons/logo-wikimediaCommons.svg" },
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center-invert.png
new file mode 100644 (file)
index 0000000..0cdfef9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center-invert.svg
new file mode 100644 (file)
index 0000000..939962c
--- /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="align-center">
+        <path d="M9 9h6c.554 0 1 .446 1 1v5c0 .554-.446 1-1 1H9c-.554 0-1-.446-1-1v-5c0-.554.446-1 1-1zm-5.5 9h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0-12h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left-invert.png
new file mode 100644 (file)
index 0000000..a2338b9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left-invert.svg
new file mode 100644 (file)
index 0000000..aba4fbf
--- /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="align-float-left">
+        <path d="M4 9h6c.554 0 1 .446 1 1v5c0 .554-.446 1-1 1H4c-.554 0-1-.446-1-1v-5c0-.554.446-1 1-1zm9.5 0h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0 3h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0 3h7c.277 0 .5.223.5.5s-.223.5-.5.5h-7c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm-10-9h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5zm0 12h17c.277 0 .5.223.5.5s-.223.5-.5.5h-17c-.277 0-.5-.223-.5-.5s.223-.5.5-.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right-invert.png
new file mode 100644 (file)
index 0000000..80d5f6b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right-invert.svg
new file mode 100644 (file)
index 0000000..9f6eca8
--- /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="align-float-right">
+        <path d="M20 9h-6c-.554 0-1 .446-1 1v5c0 .554.446 1 1 1h6c.554 0 1-.446 1-1v-5c0-.554-.446-1-1-1zm-9.5 0h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm0 3h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm0 3h-7c-.277 0-.5.223-.5.5s.223.5.5.5h7c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm10-9h-17c-.277 0-.5.223-.5.5s.223.5.5.5h17c.277 0 .5-.223.5-.5s-.223-.5-.5-.5zm0 12h-17c-.277 0-.5.223-.5.5s.223.5.5.5h17c.277 0 .5-.223.5-.5s-.223-.5-.5-.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr-invert.png
new file mode 100644 (file)
index 0000000..15b0e44
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr-invert.svg
new file mode 100644 (file)
index 0000000..e3e4b98
--- /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="g4">
+        <path d="M16 12H6c-1.7 0-3 1.3-3 3h13v3l5-4.5L16 9v3z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl-invert.png
new file mode 100644 (file)
index 0000000..bef0ab4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl-invert.svg
new file mode 100644 (file)
index 0000000..1e9cdab
--- /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="M8 12h10c1.7 0 3 1.3 3 3H8v3l-5-4.5L8 9v3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr-invert.png
new file mode 100644 (file)
index 0000000..764b7c0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr-invert.svg
new file mode 100644 (file)
index 0000000..aec5f50
--- /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="M12 10h4V5h-4v5zm-5 2h9v-1H7v1zm0 2h9v-1H7v1zm0 2h9v-1H7v1zm4-9H7v1h4V7zm0 2H7v1h4V9zm0-4H7v1h4V5zM5 3h13v16H8c-1.7 0-3-1.3-3-3V3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl-invert.png
new file mode 100644 (file)
index 0000000..b701339
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl-invert.svg
new file mode 100644 (file)
index 0000000..87cb725
--- /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="g16">
+        <path d="M11 10H7V5h4v5zm5 2H7v-1h9v1zm0 2H7v-1h9v1zm0 2H7v-1h9v1zm-4-9h4v1h-4V7zm0 2h4v1h-4V9zm0-4h4v1h-4V5zm6-2H5v16h10c1.7 0 3-1.3 3-3V3z" id="path18"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr-invert.png
new file mode 100644 (file)
index 0000000..f67ac4a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr-invert.svg
new file mode 100644 (file)
index 0000000..81e2add
--- /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>
+        <g>
+            <path d="M21 11l-6 7-4-4-1 1 5 5 7-8z"/>
+        </g>
+        <path d="M17 14V3H4v13c0 1.7 1.3 3 3 3h5l-3-3H6v-1h2.6l1-1H6v-1h9v1h-2l1 1h2l1-1zM6 5h4v1H6V5zm0 2h4v1H6V7zm0 2h4v1H6V9zm9 3H6v-1h9v1zm-4-2V5h4v5h-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl-invert.png
new file mode 100644 (file)
index 0000000..1db4c2e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl-invert.svg
new file mode 100644 (file)
index 0000000..f9ec5b6
--- /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="g28">
+        <g id="g30">
+            <path d="M5 11l6 7 4-4 1 1-5 5-7-8z" id="path32"/>
+        </g>
+        <path d="M9 14V3h13v13c0 1.7-1.3 3-3 3h-5l3-3h3v-1h-2.6l-1-1H20v-1h-9v1h2l-1 1h-2l-1-1zm11-9h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm-9 3h9v-1h-9v1zm4-2V5h-4v5h4z" id="path34"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr-invert.png
new file mode 100644 (file)
index 0000000..7f7b0a3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr-invert.svg
new file mode 100644 (file)
index 0000000..5398dc8
--- /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="M19.1 18.5c.6-.7.9-1.5.9-2.5 0-2.2-1.8-4-4-4s-4 1.8-4 4 1.8 4 4 4c.7 0 1.3-.1 1.8-.4l2.7 2.7 1.1-1.1-2.5-2.7zm-3.1-.3c-1.2 0-2.2-1-2.2-2.3 0-1.2 1-2.2 2.2-2.2 1.2 0 2.3 1 2.3 2.2-.1 1.3-1.1 2.3-2.3 2.3zM11.8 13c.3-.4.6-.7 1-1H7v-1h9s1.2 0 2 .6V3H5v13c0 1.7 1.3 3 3 3h3.8c-.6-.8-1-1.9-1-3H7v-1h3.9l.3-1H7v-1h4.8zm.2-8h4v5h-4V5zM7 5h4v1H7V5zm0 2h4v1H7V7zm0 2h4v1H7V9z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl-invert.png
new file mode 100644 (file)
index 0000000..dafab9b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl-invert.svg
new file mode 100644 (file)
index 0000000..33bcf2a
--- /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="g44">
+        <path d="M7.5 18.5c-.6-.7-.9-1.5-.9-2.5 0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4c-.7 0-1.3-.1-1.8-.4l-2.7 2.7L5 21.2l2.5-2.7zm3.1-.3c1.2 0 2.2-1 2.2-2.3 0-1.2-1-2.2-2.2-2.2-1.2 0-2.3 1-2.3 2.2.1 1.3 1.1 2.3 2.3 2.3zm4.2-5.2c-.3-.4-.6-.7-1-1h5.8v-1h-9s-1.2 0-2 .6V3h13v13c0 1.7-1.3 3-3 3h-3.8c.6-.8 1-1.9 1-3h3.8v-1h-3.9l-.3-1h4.2v-1h-4.8zm-.2-8h-4v5h4V5zm5 0h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9z" id="path46"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell-invert.png
new file mode 100644 (file)
index 0000000..16d67ef
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell-invert.svg
new file mode 100644 (file)
index 0000000..13f6ede
--- /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="M17.5 14V9c0-3-2.3-5-5.5-5S6.5 6 6.5 9v5c0 2 0 3-2 3v1h15v-1c-2 0-2-1-2-3zM12 20H9c0 1 1.6 2 3 2s3-1 3-2h-3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr-invert.png
new file mode 100644 (file)
index 0000000..e59b49d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr-invert.svg
new file mode 100644 (file)
index 0000000..7dfcb1c
--- /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="M17.8 14.7l1.7-4.7c1-2.8-.5-5.5-3.5-6.6s-5.9 0-6.9 2.8l-1.7 4.7c-.7 1.9-1 2.8-2.9 2.1l-.3 1 14.1 5.1.3-.9c-1.9-.7-1.5-1.6-.8-3.5zM12 19.8l-2.8-1c-.3.9.8 2.4 2.1 2.9s3.2.1 3.5-.9l-2.8-1z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl-invert.png
new file mode 100644 (file)
index 0000000..114d215
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl-invert.svg
new file mode 100644 (file)
index 0000000..03874c8
--- /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.21 14.7L4.51 10c-1-2.8.5-5.5 3.5-6.6 3-1.1 5.9 0 6.9 2.8l1.7 4.7c.7 1.9 1 2.8 2.9 2.1l.3 1-14.1 5.1-.3-.9c1.9-.7 1.5-1.6.8-3.5zm5.8 5.1l2.8-1c.3.9-.8 2.4-2.1 2.9s-3.2.1-3.5-.9l2.8-1z" id="path56"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta-invert.png
new file mode 100644 (file)
index 0000000..7d23df2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta-invert.svg
new file mode 100644 (file)
index 0000000..4d8c673
--- /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-8zm4 12l-3-2-1 4-1-4-3 2 2-3-4-1 4-1-2-3 3 2 1-4 1 4 3-2-2 3 4 1-4 1 2 3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.png
new file mode 100644 (file)
index 0000000..d620367
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.svg
new file mode 100644 (file)
index 0000000..5058629
--- /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="M15.3 14.7C16.1 10.9 14.7 4 12 4c-2.7 0-4.2 6.7-3.4 10.5L7 18h2.7l.3 1h4c.2-.3.1-.5.3-1H17l-1.7-3.3zM12 10c-.8 0-1.5-.7-1.5-1.5S11.2 7 12 7s1.5.7 1.5 1.5S12.8 10 12 10zm2 10c0 1.1-2 2-2 2s-2-.9-2-2"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr-invert.png
new file mode 100644 (file)
index 0000000..867a1d8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr-invert.svg
new file mode 100644 (file)
index 0000000..9b3cdeb
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z" id="a"/>
+    <g id="up">
+        <path id="arrow" d="M15.5 9h7L19 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl-invert.png
new file mode 100644 (file)
index 0000000..2575108
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl-invert.svg
new file mode 100644 (file)
index 0000000..3d00d67
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z" id="a"/>
+    <g id="up">
+        <path id="arrow" d="M1.5 9h7L5 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a-invert.png
new file mode 100644 (file)
index 0000000..7d531fe
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a-invert.svg
new file mode 100644 (file)
index 0000000..77d0c23
--- /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="bold-a">
+        <path d="M16 18h3L14 6h-3L6 18h3l1.25-3h4.5L16 18zm-4.917-5L12.5 9.6l1.417 3.4h-2.834z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain-invert.png
new file mode 100644 (file)
index 0000000..d46c11a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain-invert.svg
new file mode 100644 (file)
index 0000000..da076ed
--- /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="bold-arab-ain">
+        <path id="arab-ain" d="M9.337 13.616c0 1.35 1.386 2.1 4.16 2.258l2.186-.03.318.045c-.03.126-.25.344-.664.65l-.09.067c-1.235.93-2.422 1.393-3.56 1.393-1.142 0-2.045-.33-2.71-.99-.65-.66-.975-1.56-.975-2.698.006-1.354.567-2.573 1.685-3.658v-.044l-.606-.55c-.15-.18-.223-.39-.223-.63 0-.49.24-1.11.717-1.862.65-1.046 1.303-1.566 1.958-1.56.886.004 1.618.42 2.194 1.245.325.48-.03.552-1.064.22-.842-.327-1.527-.05-2.054.828l.015.074 1.123.865.052.006c1.404-.498 2.418-.74 3.043-.726-.058.117-.14.362-.243.733-.103.357-.204.684-.303.982l-.126.374-.384.05c-1.743.24-2.992.716-3.745 1.43-.464.463-.698.972-.703 1.524"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad-invert.png
new file mode 100644 (file)
index 0000000..eb0121d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad-invert.svg
new file mode 100644 (file)
index 0000000..6493657
--- /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="bold-arab-dad">
+        <path id="arab-dad" d="M16.41 8.232l-1.675-.665L15.43 6l1.687.64-.707 1.592m.775 3.078c-.51-.286-1-.427-1.476-.423-.472 0-.983.205-1.533.616l-.506.38.007.024c1.084.066 1.934.1 2.55.1h.314c.568-.022.993-.065 1.277-.132-.067-.17-.275-.36-.625-.566h-.006m-6.803 3.295c-.017-.904-.33-1.87-.938-2.898l1.294-1.73.118.15c.267.336.504.924.713 1.766l.064.05c.496-.008.942-.17 1.338-.485v-.006l1.732-1.53c.68-.6 1.282-.902 1.807-.902.384.004.85.195 1.395.572.55.377.884.696 1 .958.063.15.094.386.094.71 0 .695-.11 1.228-.332 1.597-.192.31-.473.555-.844.734-.438.208-1.55.312-3.333.312-.8 0-1.794-.02-2.982-.062l-.144.43c-.254.67-.463 1.112-.625 1.323-.726.937-1.787 1.405-3.184 1.405C5.85 16.99 5 16.076 5 14.256c.003-.94.278-1.814.824-2.618.15-.216.298-.367.444-.454.225-.133.288-.09.188.124-.396.862-.596 1.548-.6 2.058.008 1.177.752 1.768 2.232 1.772 1.038-.004 1.803-.182 2.295-.535"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to-invert.png
new file mode 100644 (file)
index 0000000..4dcdaa2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to-invert.svg
new file mode 100644 (file)
index 0000000..6396571
--- /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="bold-armn-to">
+        <path id="armn-to" d="M13.86 16.257c.124 0 .254-.026.39-.078.135-.06.257-.15.367-.275.114-.13.205-.302.273-.516.073-.214.11-.48.11-.798V13h-1.14c-.14 0-.284.026-.43.078-.14.047-.27.133-.383.258-.11.125-.2.294-.274.508-.067.213-.1.487-.1.82 0 .34.035.47.108.695.08.217.176.394.29.53.12.135.248.23.384.29.14.05.276.076.406.076m-2.97-7.84c-.37.082-.695.247-.976.45-.28.198-.505.47-.672.813-.16.342-.242.78-.242 1.31V18H6v-7.188c0-.776.15-1.455.453-2.04.302-.587.714-1.077 1.234-1.467.52-.39 1.13-.685 1.83-.883.697-.198 1.44-.297 2.225-.297.526 0 1.04.044 1.54.133.504.088.98.22 1.43.398.447.172.858.388 1.233.65.375.26.698.564.97.913.275.347.49.737.64 1.17.15.432.226 1.093.226 1.61h1.354v2.04H17.78v1.6c0 .58-.103 1.09-.31 1.54-.21.44-.49.814-.845 1.116-.35.302-.834.53-1.297.687-.464.15-.953.226-1.47.226-.51 0-.996-.08-1.46-.235-.464-.156-.87-.39-1.22-.703-.348-.313-.626-.703-.835-1.172-.203-.473-.304-1.028-.304-1.663s.104-1.182.32-1.64c.212-.46.496-.685.85-.977.354-.297.76-.513 1.22-.648.457-.14.934-.21 1.43-.21h1.13c-.01-.49-.04-1.043-.24-1.36-.2-.323-.454-.58-.767-.766-.312-.193-.598-.332-.984-.426-.375-.09-.578-.094-1.1-.094-.52 0-.64.02-1.01.102z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b-invert.png
new file mode 100644 (file)
index 0000000..1f96ddf
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b-invert.svg
new file mode 100644 (file)
index 0000000..78ab202
--- /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="bold-b">
+        <path id="b" d="M7 18h6c2 0 4-1 4-3 0-1.064.01-1.975-1.99-3 2-.975 1.99-1.935 1.99-3 0-2-2-3-4-3H7v12zm7-8c0 1 0 1-2 1h-2V8h2c2 0 2 0 2 1v1zm-2 6h-2v-3h2c2 0 2 0 2 1v1s0 1-2 1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be-invert.png
new file mode 100644 (file)
index 0000000..7ea9092
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be-invert.svg
new file mode 100644 (file)
index 0000000..92aff6d
--- /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="bold-cyrl-be">
+        <path id="cyrl-be" d="M7 6h9v2h-6v3h2.65c.892 0 1.632.11 2.22.327.587.218 1.087.622 1.5 1.21.42.59.63 1.188.63 1.98 0 .812-.21 1.397-.63 1.976-.418.578-.897.974-1.436 1.187-.533.213-1.295.32-2.286.32h-5.65m4.768-2c.75 0 1.28-.05 1.584-.12.305-.077.57-.247.792-.51.23-.26.343-.472.343-.854 0-.557-.2-.868-.596-1.12-.393-.255-1.065-.397-2.017-.397H10v3"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te-invert.png
new file mode 100644 (file)
index 0000000..82835f6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te-invert.svg
new file mode 100644 (file)
index 0000000..740dcee
--- /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="bold-cyrl-te">
+        <path id="te" d="M11 18V8H7V6h11v2h-4v10"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe-invert.png
new file mode 100644 (file)
index 0000000..b9154e5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe-invert.svg
new file mode 100644 (file)
index 0000000..98f4b55
--- /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="bold-cyrl-zhe">
+        <path id="cyrl-zhe" d="M13 6v5.154c.328-.033.537-.18.705-.447.168-.266.4-.873.698-1.82.39-1.242.79-2.034 1.197-2.375.403-.336 1.075-.504 2.014-.504L18 6v1.78l-.386-.008c-.4 0-.69.062-.878.187-.186.118-.337.303-.452.552-.115.25-.286.762-.512 1.537-.12.41-.25.755-.392 1.032-.137.276-.383.537-.738.78.44.157.8.466 1.084.927.288.454.603 1.102.944 1.942L18 18h-2.314l-1.17-3.08-.113-.253-.24-.56c-.247-.57-.45-.933-.61-1.09-.16-.157-.318-.236-.553-.236V18h-2v-5.22c-.226 0-.382.077-.546.23-.164.15-.368.517-.612 1.097l-.246.56-.113.253L8.313 18H6l1.33-3.267c.327-.808.635-1.447.923-1.92.293-.476.663-.793 1.11-.95-.355-.244-.603-.5-.745-.772-.137-.275-.268-.622-.392-1.04-.222-.76-.39-1.266-.505-1.52-.11-.255-.26-.444-.45-.57-.187-.124-.493-.186-.918-.186L6 7.782v-1.78l.386.008c.953 0 1.63.17 2.034.512.4.347.79 1.136 1.177 2.366.3.954.534 1.564.698 1.83.168.26.377.405.705.438V6.002"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f-invert.png
new file mode 100644 (file)
index 0000000..e695e7e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f-invert.svg
new file mode 100644 (file)
index 0000000..14884f7
--- /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="bold-f">
+        <path id="f" d="M16 8V6H8v12h3v-5h4v-2h-4V8z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g-invert.png
new file mode 100644 (file)
index 0000000..37fd2b3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g-invert.svg
new file mode 100644 (file)
index 0000000..0efd55a
--- /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="bold-g">
+        <path id="g" d="M12 14v-2h5v4.203c-.497.475-1.22.894-2.166 1.26-.94.358-1.896.537-2.864.537-1.23 0-2.303-.253-3.217-.76-.915-.512-1.602-1.24-2.062-2.185-.46-.95-.69-1.982-.69-3.095 0-1.208.258-2.282.77-3.222.514-.94 1.266-1.66 2.256-2.16.754-.386 1.693-.58 2.816-.58 1.46 0 2.6.304 3.418.91.824.603 1.353 1.436 1.59 2.502l-2.36.435c-.166-.57-.48-1.018-.94-1.346-.454-.333-1.023-.5-1.708-.5-1.038 0-1.864.325-2.48.974-.61.65-.914 1.612-.914 2.89 0 1.376.31 2.41.93 3.102.62.686 1.434 1.03 2.44 1.03.497 0 .995-.096 1.492-.286.503-.195 1.332-.57 1.69-.845v-.867"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man-invert.png
new file mode 100644 (file)
index 0000000..e699abb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man-invert.svg
new file mode 100644 (file)
index 0000000..391127f
--- /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="bold-geor-man">
+        <path id="geor-man" d="M13.832 14.06c0-1.714-.394-2.572-1.182-2.572-.868 0-1.302.78-1.302 2.338-.01 1.624.42 2.436 1.295 2.436.793 0 1.19-.734 1.19-2.2m2.167 0C16 16.686 14.884 18 12.65 18 10.218 18 9 16.614 9 13.84c0-2.737 1.217-4.105 3.65-4.105.842 0 1.183.63 1.183.63v-1.58c0-.788-.45-1.183-1.347-1.183-.572 0-.858.374-.858 1.123h-2.34C9.29 6.908 10.35 6 12.462 6 14.83 6 16.01 6.946 16 8.84"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l-invert.png
new file mode 100644 (file)
index 0000000..45a84ab
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l-invert.svg
new file mode 100644 (file)
index 0000000..2041445
--- /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="bold-l">
+        <path id="l" d="M8 18V6h3v10h5v2"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n-invert.png
new file mode 100644 (file)
index 0000000..13b5b72
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n-invert.svg
new file mode 100644 (file)
index 0000000..667bec4
--- /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="bold-n">
+        <path id="n" d="M7 18V6h3l4 8V6h3v12h-3l-4-8v8H7"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v-invert.png
new file mode 100644 (file)
index 0000000..ea7e7fd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v-invert.svg
new file mode 100644 (file)
index 0000000..cb1dd89
--- /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="bold-v">
+        <path id="v" d="M10.5 18L6 6h3l3 8 3-8h3l-4.5 12"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr-invert.png
new file mode 100644 (file)
index 0000000..8f8feb6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr-invert.svg
new file mode 100644 (file)
index 0000000..9ff43d3
--- /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="M15 7c-1.7 0-3 1.3-3 3 0-1.7-1.3-3-3-3H3v13h6c1.7 0 3 1 3 2 0-1 1.3-2 3-2h6V7h-6zm5 12h-5c-1.7 0-2 .4-2 .4v-8.9C13 9.1 14.1 8 15.5 8H20v11z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl-invert.png
new file mode 100644 (file)
index 0000000..573fc84
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl-invert.svg
new file mode 100644 (file)
index 0000000..9390146
--- /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="M9 7c1.7 0 3 1.3 3 3 0-1.7 1.3-3 3-3h6v13h-6c-1.7 0-3 1-3 2 0-1-1.3-2-3-2H3V7h6zM4 19h5c1.7 0 2 .4 2 .4v-8.9C11 9.1 9.9 8 8.5 8H4v11z" id="path78"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr-invert.png
new file mode 100644 (file)
index 0000000..008246c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr-invert.svg
new file mode 100644 (file)
index 0000000..bf39564
--- /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="M15 5H8c-1.1 0-2 .9-2 2v3h3v11l4-3 4 3V7c0-1.1-.9-2-2-2zM9 9H7V7c0-.6.4-1 1-1h1v3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl-invert.png
new file mode 100644 (file)
index 0000000..deff3f6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl-invert.svg
new file mode 100644 (file)
index 0000000..f665223
--- /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="M8 5h7c1.1 0 2 .9 2 2v3h-3v11l-4-3-4 3V7c0-1.1.9-2 2-2zm6 4h2V7c0-.6-.4-1-1-1h-1v3z" id="path88"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr-invert.png
new file mode 100644 (file)
index 0000000..4632447
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr-invert.svg
new file mode 100644 (file)
index 0000000..762e641
--- /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="M3 6v11c0 1.7 1.3 3 3 3h15V6H3zm2.5 1C6.3 7 7 7.7 7 8.5S6.3 10 5.5 10 4 9.3 4 8.5 4.7 7 5.5 7zM20 19H6c-1.1 0-2-.9-2-2v-6h16v8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl-invert.png
new file mode 100644 (file)
index 0000000..5a3df4b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl-invert.svg
new file mode 100644 (file)
index 0000000..b6d0f5c
--- /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 6v11c0 1.7-1.3 3-3 3H3V6h18zm-2.5 1c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S20 9.3 20 8.5 19.3 7 18.5 7zM4 19h14c1.1 0 2-.9 2-2v-6H4v8z" id="path98"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr-invert.png
new file mode 100644 (file)
index 0000000..80488fc
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr-invert.svg
new file mode 100644 (file)
index 0000000..b9b6b3a
--- /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="M7 13.1l8.9 8.9c.8-.8.8-2 0-2.8l-6.1-6.1 6-6.1c.8-.8.8-2 0-2.8L7 13.1z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl-invert.png
new file mode 100644 (file)
index 0000000..69eba72
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl-invert.svg
new file mode 100644 (file)
index 0000000..bf6087c
--- /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="M16.5 13.1L7.6 22c-.8-.8-.8-2 0-2.8l6.1-6.1-6-6.1c-.8-.8-.8-2 0-2.8l8.8 8.9z" id="path108"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown-invert.png
new file mode 100644 (file)
index 0000000..eea3f84
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown-invert.svg
new file mode 100644 (file)
index 0000000..dc5d7a1
--- /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 16l8.9-8.9c-.8-.8-2-.8-2.8 0L12 13.2l-6.1-6c-.8-.8-2-.8-2.8 0L12 16z" id="path4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp-invert.png
new file mode 100644 (file)
index 0000000..7386e14
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp-invert.svg
new file mode 100644 (file)
index 0000000..4ca2d5e
--- /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 6.5l8.9 8.9c-.8.8-2 .8-2.8 0L12 9.3l-6.1 6c-.8.8-2 .8-2.8 0L12 6.5z" id="path4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive-invert.png
new file mode 100644 (file)
index 0000000..b6dd780
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive-invert.svg
new file mode 100644 (file)
index 0000000..d100b44
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="regular-expression">
+        <path id="upper-case" d="M7.53 7L4 17h2.063l.72-2.406h3.624l.72 2.406h2.062L9.657 7H7.533zm1.064 1.53L9.938 13H7.25l1.344-4.47z"/>
+        <path id="lower-case" d="M18.55 17l-.184-1.035h-.055c-.35.44-.71.747-1.082.92-.368.167-.85.25-1.444.25-.564 0-.955-.208-1.377-.625-.418-.418-.627-1.012-.627-1.784 0-.808.282-1.403.845-1.784.568-.386 1.193-.607 2.208-.64l1.322-.04v-.335c0-.772-.395-1.158-1.186-1.158-.61 0-1.325.183-2.147.55l-.688-1.4c.877-.46 1.85-.69 2.916-.69 1.023 0 1.588.223 2.133.668.545.445.818 1.12.818 2.03V17h-1.45m-.394-3.527l-.804.027c-.604.018-1.054.127-1.35.327-.294.2-.442.504-.442.912 0 .585.336.877 1.008.877.48 0 .865-.138 1.152-.415.29-.277.436-.645.436-1.103v-.627"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr-invert.png
new file mode 100644 (file)
index 0000000..08a5fe1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr-invert.svg
new file mode 100644 (file)
index 0000000..bdb3823
--- /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="M7 12h9v-1H7v1zm0 2h9v-1H7v1zm0 2h9v-1H7v1zm4-9H7v1h4V7zm0 2H7v1h4V9zm0-4H7v1h4V5zm5-2h2v16H8c-1.7 0-3-1.3-3-3V3h8v7l1.5-2 1.5 2V3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl-invert.png
new file mode 100644 (file)
index 0000000..af33ec0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl-invert.svg
new file mode 100644 (file)
index 0000000..1957477
--- /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="g128">
+        <path d="M16 12H7v-1h9v1zm0 2H7v-1h9v1zm0 2H7v-1h9v1zm-4-9h4v1h-4V7zm0 2h4v1h-4V9zm0-4h4v1h-4V5zM7 3H5v16h10c1.7 0 3-1.3 3-3V3h-8v7L8.5 8 7 10V3z" id="path130"/>
+    </g>
+</svg>
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
new file mode 100644 (file)
index 0000000..d8b538e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clear-invert.png 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
new file mode 100644 (file)
index 0000000..0738205
--- /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="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/clock-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clock-invert.png
new file mode 100644 (file)
index 0000000..2ac138b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clock-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/clock-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clock-invert.svg
new file mode 100644 (file)
index 0000000..9682626
--- /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="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm3 12l-4-3V8h2v5l1.7 1.2c1.3.9 1 1.9.3 2.8z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr-invert.png
new file mode 100644 (file)
index 0000000..add46d4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr-invert.svg
new file mode 100644 (file)
index 0000000..8bac842
--- /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="M16 5H4v12c0 1.6 1.3 3 3 3h12V8c0-1.7-1.4-3-3-3zM7.5 17c-.8 0-1.5-.7-1.5-1.5S6.7 14 7.5 14s1.5.7 1.5 1.5S8.3 17 7.5 17zm0-6C6.7 11 6 10.3 6 9.5S6.7 8 7.5 8 9 8.7 9 9.5 8.3 11 7.5 11zm4 3c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 3c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm0-6c-.8 0-1.5-.7-1.5-1.5S14.7 8 15.5 8s1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl-invert.png
new file mode 100644 (file)
index 0000000..2ecf913
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl-invert.svg
new file mode 100644 (file)
index 0000000..d6a74cf
--- /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="M7 5h12v12c0 1.6-1.3 3-3 3H4V8c0-1.7 1.4-3 3-3zm8.5 12c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm0-6c.8 0 1.5-.7 1.5-1.5S16.3 8 15.5 8 14 8.7 14 9.5s.7 1.5 1.5 1.5zm-4 3c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm-4 3c.8 0 1.5-.7 1.5-1.5S8.3 14 7.5 14 6 14.7 6 15.5 6.7 17 7.5 17zm0-6c.8 0 1.5-.7 1.5-1.5S8.3 8 7.5 8 6 8.7 6 9.5 6.7 11 7.5 11z" id="path150"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle-invert.png
new file mode 100644 (file)
index 0000000..b87c977
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle-invert.svg
new file mode 100644 (file)
index 0000000..d18ef8b
--- /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 18l8-10H4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr-invert.png
new file mode 100644 (file)
index 0000000..1e2f6c9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr-invert.svg
new file mode 100644 (file)
index 0000000..e23e773
--- /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="M16 11h-3V4c-1.7 0-3 1.3-3 3v4H7l4.5 5 4.5-5zm1 2v5H7c-.6 0-1-.4-1-1v-4H4v4c0 1.9 1.3 3 3 3h12v-7h-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl-invert.png
new file mode 100644 (file)
index 0000000..167fd8d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl-invert.svg
new file mode 100644 (file)
index 0000000..6409631
--- /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="g160">
+        <path d="M7 11h3V4c1.7 0 3 1.3 3 3v4h3l-4.5 5L7 11zm-1 2v5h10c.6 0 1-.4 1-1v-4h2v4c0 1.9-1.3 3-3 3H4v-7h2z" id="path162"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye-invert.png
new file mode 100644 (file)
index 0000000..84a838b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye-invert.svg
new file mode 100644 (file)
index 0000000..352e7b9
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="g4">
+        <path d="M12 8C7 8 1 14 1 14s6 6 11 6l11-6s-6-6-11-6zm0 10c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path6"/>
+        <circle cx="12" cy="14" r="2" id="circle8"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed-invert.png
new file mode 100644 (file)
index 0000000..7b4bb15
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed-invert.svg
new file mode 100644 (file)
index 0000000..d8f7dff
--- /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="M19.4 12.7c.7-.8 1.2-1.7 1.4-2.7h-1.6c-.9 2.5-3.9 4.4-7.7 4.6h-.1c-3.7-.2-6.8-2.1-7.7-4.6H2.2c.2 1 .8 1.9 1.4 2.7l-2 2 .7.7 2-2c.8.6 1.7 1.2 2.7 1.7l-1 2.8.9.3 1-2.8c1 .3 2 .6 3.1.6v3h1v-3c1.1-.1 2.2-.3 3.1-.6l1 2.8.9-.3-1-2.8c1-.4 1.9-1 2.6-1.7l2 2 .7-.7-1.9-2z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr-invert.png
new file mode 100644 (file)
index 0000000..77778d8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr-invert.svg
new file mode 100644 (file)
index 0000000..4951ac6
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="find">
+        <path id="magnifying-glass" d="M13.656 11c-1.92 0-3.5 1.548-3.5 3.47 0 1.92 1.58 3.5 3.5 3.5.75 0 1.432-.253 2-.657l.094.156 2.375 2.374c.19.19.534.153.78-.094s.315-.59.126-.78l-2.374-2.376-.188-.094c.403-.566.656-1.282.656-2.03 0-1.92-1.55-3.47-3.47-3.47zm0 1.656c1.01 0 1.813.8 1.813 1.813 0 1.01-.802 1.843-1.814 1.843-1.01 0-1.844-.832-1.844-1.844s.832-1.814 1.844-1.814z"/>
+        <path id="text" d="M6 5v2h10V5H6zm0 3v2h11V8H6zm0 3v2h3.53c.284-.797.787-1.486 1.44-2H6zm0 3v2h3.53c-.177-.48-.28-.99-.28-1.53 0-.16.046-.315.063-.47H6z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl-invert.png
new file mode 100644 (file)
index 0000000..d67357b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl-invert.svg
new file mode 100644 (file)
index 0000000..51b3d40
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="find">
+        <path id="magnifying-glass" d="M11.344 11c1.92 0 3.5 1.548 3.5 3.47 0 1.92-1.58 3.5-3.5 3.5-.75 0-1.432-.253-2-.657l-.094.156-2.375 2.374c-.19.19-.534.153-.78-.094s-.315-.59-.126-.78l2.374-2.376.188-.094c-.403-.566-.656-1.282-.656-2.03 0-1.92 1.55-3.47 3.47-3.47zm0 1.656c-1.01 0-1.813.8-1.813 1.813 0 1.01.802 1.843 1.814 1.843 1.01 0 1.844-.832 1.844-1.844s-.832-1.814-1.844-1.814z"/>
+        <path id="text" d="M19 5v2H9V5zm0 3v2H8V8zm0 3v2h-3.53c-.284-.797-.787-1.486-1.44-2zm0 3v2h-3.53c.177-.48.28-.99.28-1.53 0-.16-.046-.315-.063-.47z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr-invert.png
new file mode 100644 (file)
index 0000000..5c9d194
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr-invert.svg
new file mode 100644 (file)
index 0000000..7dfc979
--- /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="M2 5v15h20V5H2zm15 11H8c-.6 0-1-.4-1-1V9h3l2 1h5v6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl-invert.png
new file mode 100644 (file)
index 0000000..9fd77b2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl-invert.svg
new file mode 100644 (file)
index 0000000..a384bd1
--- /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="M22 5v15H2V5h20zM7 16h9c.6 0 1-.4 1-1V9h-3l-2 1H7v6z" id="path246"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr-invert.png
new file mode 100644 (file)
index 0000000..056e781
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr-invert.svg
new file mode 100644 (file)
index 0000000..3ea25f4
--- /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="M11 13L5 6h15l-6 7v7c-1.7 0-3-1.3-3-3v-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl-invert.png
new file mode 100644 (file)
index 0000000..7d4f60a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl-invert.svg
new file mode 100644 (file)
index 0000000..1fa603f
--- /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="g256">
+        <path d="M14 13l6-7H5l6 7v7c1.7 0 3-1.3 3-3v-4z" id="path258"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart-invert.png
new file mode 100644 (file)
index 0000000..b631396
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart-invert.svg
new file mode 100644 (file)
index 0000000..fc78226
--- /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="M15 7c-2 0-3 2-3 2s-1-2-3-2c-2.5 0-4 2-4 4 0 4 5 5 7 8 2-3 7-4 7-8 0-2-1.5-4-4-4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png
new file mode 100644 (file)
index 0000000..08bf391
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.svg
new file mode 100644 (file)
index 0000000..81558e0
--- /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 18l-4-4-2 2-4-4-2 1-4 5h16zm2-13v15H2V5h20z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png
new file mode 100644 (file)
index 0000000..b5b7fb5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.svg
new file mode 100644 (file)
index 0000000..c00d0c4
--- /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="g278">
+        <path d="M4 18l4-4 2 2 4-4 2 1 4 5H4zM2 5v15h20V5H2z" id="path280"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png
new file mode 100644 (file)
index 0000000..e56944a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.svg
new file mode 100644 (file)
index 0000000..da2ddaa
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M17 12V8h-4V5H0v15h20v-8h-3zM2 18l4-5 2-1 4 4 2-2 4 4H2z"/>
+    <g>
+        <path d="M24 5h-4V1h-2v4h-4v2h4v4h2V7h4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png
new file mode 100644 (file)
index 0000000..eba653f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.svg
new file mode 100644 (file)
index 0000000..7b7beaa
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M7 12V8h4V5h13v15H4v-8h3zm15 6l-4-5-2-1-4 4-2-2-4 4h16z" id="path290"/>
+    <g id="g292">
+        <path d="M0 5h4V1h2v4h4v2H6v4H4V7H0z" id="path294"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png
new file mode 100644 (file)
index 0000000..50e7889
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.svg
new file mode 100644 (file)
index 0000000..bfdcb1c
--- /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="M19.5 4h-3v-1s0-1.5 1.5-1.5c1.5.06 1.5 1.5 1.5 1.5zm1.5 0v-1s0-3-3-3-3 3-3 3v1h-1v6h8v-6zm-8 7v-6h-11v15h20v-9zm-9 7l4-5 2-1 4 4 2-2 4 4z" id="path304"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png
new file mode 100644 (file)
index 0000000..1b1029b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.svg
new file mode 100644 (file)
index 0000000..5136ef5
--- /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.5 4h3v-1s0-1.5-1.5-1.5c-1.5.06-1.5 1.5-1.5 1.5zm-1.5 0v-1s0-3 3-3 3 3 3 3v1h1v6h-8v-6zm8 7v-6h11v15h-20v-9zm9 7l-4-5-2-1-4 4-2-2-4 4z" id="path304"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr-invert.png
new file mode 100644 (file)
index 0000000..f1c6cd6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr-invert.svg
new file mode 100644 (file)
index 0000000..93a43dc
--- /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="M10 8h9v2h-9V8zm0 3h9v2h-9v-2zm0 3h6v2h-6v-2zm11-8H3V4h18v2zm0 14H3v-2h18v2zM3 8v8l5-4-5-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl-invert.png
new file mode 100644 (file)
index 0000000..fc48622
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl-invert.svg
new file mode 100644 (file)
index 0000000..c7c7dad
--- /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="g314">
+        <path d="M14 8H5v2h9V8zm0 3H5v2h9v-2zm0 3H8v2h6v-2zM3 6h18V4H3v2zm0 14h18v-2H3v2zM21 8v8l-5-4 5-4z" id="path316"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.png
new file mode 100644 (file)
index 0000000..dd08bc2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/insert-invert.svg
new file mode 100644 (file)
index 0000000..54b8ffd
--- /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="insert">
+        <path d="M13 5h-2v6H5v2h6v6h2v-6h6v-2h-6z" id="plus"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a-invert.png
new file mode 100644 (file)
index 0000000..7627397
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a-invert.svg
new file mode 100644 (file)
index 0000000..0fc2eb0
--- /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="italic-a">
+        <path id="a" d="M14.667 6h-1.372l-7 12H8l2.333-4h4L15 18h1.667l-2-12zm-3.75 7l2.527-4.333.723 4.333h-3.25z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem-invert.png
new file mode 100644 (file)
index 0000000..28f2b17
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem-invert.svg
new file mode 100644 (file)
index 0000000..6e9a2ec
--- /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="italic-arab-keheh-jeem">
+        <path id="arab-keheh-jeem" d="M18.125 5.844c-1.695.555-3.297 1.162-4.594 1.938-.49.3-.773.712-.874 1.125-.064.263-.035.572.063.78.188.406.538.575.843.814l.094-.124.53.625c.14.165.344.514.47.94.137.462.08.724 0 1.124H11.22c-.34 0-.593.007-.767-.02-.34-.053-.256-.208-.234-.34.33-.127.563-.173.937-.14.29-.495.593-.886.906-1.314-.98.037-1.878.015-2.688-.094-.346-.047-.698-.186-1.094-.156-.356.026-.767.24-1.03.72-.246.447-.434.838-.656 1.28l.75-.47c.23-.14.484-.226.72-.218.156.005.274.054.405.094-.232.205-.51.402-.72.563-.3.26-.702.687-.906 1-.403.614-.694 1.083-.875 1.78-.18.69.003 1.34.468 1.75.426.376.846.52 1.28.563.65.065 1.206.093 2-.188.658-.23 1.022-.553 1.5-.97-.882.11-1.816.09-2.53.032-.87-.07-1.268-.384-1.47-.594-.27-.283-.306-.64-.155-1.22.036-.14.097-.322.25-.53.168-.228.364-.435.594-.656.45-.436 1.01-.737 1.46-.938-.044.205-.106.442-.054.687.05.23.248.38.438.47.26.12.507.154.69.155 1.42.01 2.86 0 4.28 0 .247 0 .452-.163.594-.375.14-.208.25-.48.344-.844.13-.5.094-1.062-.094-1.625-.182-.543-.418-1.01-.72-1.406-.334-.443-.673-.83-1-1.22 1.258-.814 2.717-1.238 3.97-1.687.12-.452.224-.926.313-1.313zm-9.47 8.438c-.26.394-.583.69-.874 1 .376.286.75.556 1.095.813.335-.303.626-.674.875-.97-.39-.267-.77-.587-1.094-.843z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem-invert.png
new file mode 100644 (file)
index 0000000..864e6e2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem-invert.svg
new file mode 100644 (file)
index 0000000..31b9be1
--- /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="italic-arab-meem">
+        <path id="arab-meem" d="M16 9.73l-.93 2.19h-4.663c-.48 0-.857.12-1.135.366l-.06.11c-.185 2.016-.503 3.558-.956 4.627-.272.64-.633 1.252-1.082 1.833-.177.226-.22.186-.126-.12l.142-.503.17-.67.234-.87.002-.008.202-1.045.258-1.41.353-1.907c.19-.312.423-.638.698-.98.276-.342.59-.706.94-1.09.13-.092.697-.18 1.705-.266 1.05-.086 1.638-.183 1.765-.293l.065-.128c.007-.11-.01-.24-.054-.394-.044-.153-.12-.327-.232-.522-.22-.428-.438-.64-.654-.64-.294 0-.915.268-1.864.805-.36.208-.376.125-.05-.247 1.557-1.71 2.707-2.566 3.45-2.566.382 0 .67.13.862.394.135.195.25.6.344 1.21l.203 1.2c.105.586.24.895.408.925"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha-invert.png
new file mode 100644 (file)
index 0000000..ce7b445
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha-invert.svg
new file mode 100644 (file)
index 0000000..4f3621e
--- /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="italic-armn-sha">
+        <path id="armn-sha" d="M11.564 7.678c-.268-.13-.578-.22-.93-.268-.35-.047-.75-.07-1.197-.07h-1.11L8.587 6h1.723c.558 0 1.042.032 1.45.095.416.063.794.173 1.136.33l4.483 2.033-.325 1.67-2.624-1.165c-.125-.058-.27-.103-.432-.134-.164-.04-.356-.058-.576-.058-.583 0-1.137.095-1.663.284-.525.19-1 .46-1.426.812-.42.35-.777.78-1.072 1.283-.294.505-.504 1.075-.63 1.71-.242 1.256-.152 2.21.268 2.87.426.65 1.19.977 2.294.977.55 0 1.045-.08 1.48-.237.437-.156.815-.377 1.136-.66.326-.29.59-.633.796-1.033.21-.4.362-.84.457-1.323l.11-.56h1.6l-.12.59c-.13.674-.356 1.288-.676 1.845-.32.55-.725 1.025-1.214 1.424-.488.394-1.053.7-1.694.922-.643.215-1.344.323-2.106.323-.767 0-1.434-.114-2-.34-.568-.226-1.025-.554-1.372-.985-.347-.436-.573-.97-.678-1.607-.105-.637-.078-1.364.08-2.184.125-.66.346-1.273.66-1.835.316-.568.697-1.067 1.144-1.497.445-.436.944-.794 1.496-1.072.55-.283 1.13-.474 1.733-.574l-.466-.23"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c-invert.png
new file mode 100644 (file)
index 0000000..a458be9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c-invert.svg
new file mode 100644 (file)
index 0000000..8c51971
--- /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="italic-c">
+        <path id="c" d="M15.008 13.718l1.48.214c-.467 1.34-1.15 2.354-2.045 3.04-.896.686-1.9 1.03-3.015 1.03-1.36 0-2.438-.43-3.237-1.29C7.398 15.85 7 14.618 7 13.013c0-2.09.606-3.818 1.817-5.185C9.897 6.61 11.237 6 12.84 6c1.186 0 2.145.33 2.878.99.738.66 1.165 1.546 1.282 2.66l-1.397.135c-.148-.84-.453-1.464-.916-1.876-.458-.418-1.05-.626-1.78-.626-1.368 0-2.475.63-3.32 1.892-.733 1.087-1.1 2.377-1.1 3.87 0 1.194.283 2.104.848 2.732.565.628 1.3.942 2.206.942.775 0 1.474-.26 2.1-.784.626-.522 1.08-1.26 1.366-2.216"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d-invert.png
new file mode 100644 (file)
index 0000000..093545c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d-invert.svg
new file mode 100644 (file)
index 0000000..63c2c9d
--- /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="italic-d">
+        <path id="d" d="M7 18L9.462 6h3.557c.852 0 1.504.063 1.954.188.644.17 1.194.472 1.65.91.456.43.8.97 1.03 1.62.23.65.346 1.378.346 2.186 0 .966-.145 1.847-.435 2.644-.284.79-.66 1.49-1.127 2.095-.46.6-.947 1.072-1.456 1.416-.504.337-1.102.588-1.794.752-.526.126-1.172.188-1.94.188H7m1.86-1.36h1.866c.842 0 1.59-.078 2.245-.236.41-.098.757-.243 1.047-.434.38-.246.727-.57 1.038-.974.408-.535.732-1.143.974-1.825.246-.687.37-1.467.37-2.34 0-.97-.167-1.716-.5-2.235-.333-.524-.756-.87-1.27-1.04-.382-.126-.975-.188-1.78-.188H11L9.095 16.64"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e-invert.png
new file mode 100644 (file)
index 0000000..cf39073
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e-invert.svg
new file mode 100644 (file)
index 0000000..9d11112
--- /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="italic-e">
+        <path id="e" d="M7 18L9.474 6H18l-.282 1.367H10.77L10.02 11h6.09l-.28 1.367H9.74L8.86 16.64H16.3L16.018 18H7"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan-invert.png
new file mode 100644 (file)
index 0000000..61ae2cc
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan-invert.svg
new file mode 100644 (file)
index 0000000..256a8eb
--- /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="italic-geor-kan">
+        <path id="geor-kan" d="M15.057 14.663C14.617 16.888 13.223 18 10.88 18 8.96 18 8 17.213 8 15.64c0-.298.036-.624.108-.977.083-.43.245-.836.488-1.217l1.24.605-.206.614c-.055.26-.083.497-.083.712 0 .972.52 1.458 1.564 1.458 1.308 0 2.102-.723 2.384-2.17l.058-.33c.044-.222.066-.426.066-.614 0-.928-.546-1.39-1.638-1.39h-1.117l.248-1.26h1.118c1.202-.005 1.908-.552 2.118-1.64.04-.182.058-.356.058-.522 0-1.143-.9-1.714-2.697-1.714L11.94 6C14.646 6 16 6.877 16 8.627c0 .248-.027.516-.082.803-.204 1.092-1.05 1.824-2.54 2.194l-.033.166c1.23.2 1.845.823 1.845 1.872 0 .21-.025.433-.074.67l-.058.332"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i-invert.png
new file mode 100644 (file)
index 0000000..ad101c7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i-invert.svg
new file mode 100644 (file)
index 0000000..ecde4b7
--- /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="italic-i">
+        <path id="i" d="M12.5 18l.25-.995h-1.5l2.508-10.037h1.5L15.5 6h-5l-.242.968h1.5l-2.51 10.037h-1.5L7.5 18z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k-invert.png
new file mode 100644 (file)
index 0000000..260a03c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k-invert.svg
new file mode 100644 (file)
index 0000000..730fb8a
--- /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="italic-k">
+        <path id="k" d="M12.018 10.652L17 6h-2l-5.31 5.234L11 6H9.5l-3 12H8l1.173-4.693 1.54-1.438C11 16 14 18 14 18h2s-4-2-3.982-7.348z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s-invert.png
new file mode 100644 (file)
index 0000000..a9a5e49
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s-invert.svg
new file mode 100644 (file)
index 0000000..d5557d1
--- /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="italic-s">
+        <path id="s" d="M16.474 6.59l-.302 1.525c-.522-.28-1.04-.488-1.557-.628-.51-.145-1.007-.217-1.487-.217-.935 0-1.68.204-2.23.612-.554.408-.83.95-.83 1.627 0 .37.1.657.302.86.207.195.733.407 1.58.634l.937.232c1.06.274 1.795.622 2.208 1.046.413.418.62 1.007.62 1.766 0 1.167-.46 2.117-1.38 2.85-.913.734-2.12 1.1-3.617 1.1-.615 0-1.232-.06-1.852-.185-.62-.12-1.242-.302-1.867-.55l.317-1.61c.573.355 1.147.624 1.72.805.578.18 1.154.27 1.728.27.976 0 1.76-.216 2.347-.65.59-.434.883-1 .883-1.697 0-.464-.12-.815-.356-1.053-.233-.243-.737-.462-1.512-.658l-.937-.24c-1.068-.28-1.8-.6-2.19-.962-.388-.367-.582-.878-.582-1.534 0-1.152.442-2.094 1.325-2.828.888-.74 2.043-1.108 3.463-1.108.553 0 1.1.05 1.642.147.542.098 1.085.245 1.627.442"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr-invert.png
new file mode 100644 (file)
index 0000000..4f5e01e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr-invert.svg
new file mode 100644 (file)
index 0000000..cbcfff0
--- /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="M16 9V8h-6v1h6zm-2 2v-1h-4v1h4zM6 5h1v16H6V5zm2 0h10v13c0 1.7-1.3 3-3 3H8V5z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl-invert.png
new file mode 100644 (file)
index 0000000..519bf10
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl-invert.svg
new file mode 100644 (file)
index 0000000..6b0afc0
--- /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="M8 9V8h6v1H8zm2 2v-1h4v1h-4zm8-6h-1v16h1V5zm-2 0H6v13c0 1.7 1.3 3 3 3h7V5z" id="path326"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr-invert.png
new file mode 100644 (file)
index 0000000..1e9d92d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr-invert.svg
new file mode 100644 (file)
index 0000000..131bbdb
--- /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.5 4C11.5 4 9 6.5 9 9.5c0 1 .3 1.9.7 2.8L4 18v2h4v-2h2v-2h2l1.2-1.2c.4.1.9.2 1.3.2 3 0 5.5-2.5 5.5-5.5S17.5 4 14.5 4zM16 9c-.8 0-1.5-.7-1.5-1.5S15.2 6 16 6s1.5.7 1.5 1.5S16.8 9 16 9z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl-invert.png
new file mode 100644 (file)
index 0000000..9d46092
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl-invert.svg
new file mode 100644 (file)
index 0000000..fbd3329
--- /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="M9.5 4c3 0 5.5 2.5 5.5 5.5 0 1-.3 1.9-.7 2.8L20 18v2h-4v-2h-2v-2h-2l-1.2-1.2c-.4.1-.9.2-1.3.2-3 0-5.5-2.5-5.5-5.5S6.5 4 9.5 4zM8 9c.8 0 1.5-.7 1.5-1.5S8.8 6 8 6s-1.5.7-1.5 1.5S7.2 9 8 9z" id="path336"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr-invert.png
new file mode 100644 (file)
index 0000000..1dcd4c3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr-invert.svg
new file mode 100644 (file)
index 0000000..84479e8
--- /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="M3 7v9c0 1.7 1.3 3 3 3h15V7H3zm8 2h2v2h-2V9zm0 3h2v2h-2v-2zM8 9h2v2H8V9zm0 3h2v2H8v-2zm-1 5H6c-.6 0-1-.4-1-1v-1h2v2zm0-3H5v-2h2v2zm0-3H5V9h2v2zm9 6H8v-2h8v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2zm3 6h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl-invert.png
new file mode 100644 (file)
index 0000000..61c95be
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl-invert.svg
new file mode 100644 (file)
index 0000000..2700729
--- /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="g346">
+        <path d="M21 7v9c0 1.7-1.3 3-3 3H3V7h18zm-8 2h-2v2h2V9zm0 3h-2v2h2v-2zm3-3h-2v2h2V9zm0 3h-2v2h2v-2zm1 5h1c.6 0 1-.4 1-1v-1h-2v2zm0-3h2v-2h-2v2zm0-3h2V9h-2v2zm-9 6h8v-2H8v2zm0-3h2v-2H8v2zm0-3h2V9H8v2zm-3 6h2v-2H5v2zm0-3h2v-2H5v2zm0-3h2V9H5v2z" id="path348"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/language-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/language-invert.png
new file mode 100644 (file)
index 0000000..fc0917e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/language-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/language-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/language-invert.svg
new file mode 100644 (file)
index 0000000..96a39e2
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="language">
+        <path id="japanese" d="M17.533 9.81l.27-.59 1.042.407-.18.363c.66.27 1.1.468 1.312.59.33.21.618.513.86.904.21.393.316.846.316 1.358 0 .786-.302 1.48-.905 2.083-.604.634-1.66 1.057-3.17 1.268-.12-.36-.257-.68-.407-.95.966-.15 1.646-.333 2.038-.545.454-.21.785-.48.998-.813.21-.303.314-.663.314-1.087 0-.482-.136-.905-.407-1.27-.33-.33-.8-.588-1.402-.77-.332.635-.648 1.118-.95 1.45-.242.332-.694.906-1.358 1.72.09.394.18.71.272.952l-1.042.362-.09-.498c-.424.36-.802.617-1.134.77-.36.15-.664.226-.905.226-.303 0-.574-.136-.814-.407-.244-.3-.363-.68-.363-1.132 0-.603.136-1.146.407-1.63.24-.452.603-.89 1.086-1.312.272-.24.725-.528 1.36-.86 0-.27.03-.8.09-1.585-.515.03-.922.045-1.223.045-.393 0-.71-.015-.95-.045l-.047-1.04c.725.09 1.494.134 2.31.134 0-.15.075-.738.227-1.766l1.177.184c-.15.542-.256 1.04-.316 1.493.242-.03.543-.075.906-.136.362-.06.573-.09.634-.09s.648-.15 1.766-.453l.046 1.04c-.967.244-2.145.44-3.532.592-.062.662-.092 1.085-.092 1.265.663-.15 1.284-.225 1.857-.225zm-2.672 3.893c-.06-.48-.135-1.252-.226-2.31-.573.424-1.04.86-1.403 1.313-.302.423-.45.875-.45 1.358 0 .24.043.438.135.588.09.092.195.137.316.137.364 0 .908-.362 1.63-1.087zm.772-2.763c0 .483.03 1.088.09 1.81.604-.904 1.057-1.598 1.36-2.08-.575.06-1.06.15-1.45.27z"/>
+        <path id="english" d="M9.497 15.98h1.85L8.265 7.033h-1.85l-3.08 8.95h1.85L5.74 14h3.21l.547 1.98zm-3.49-3.376L7.34 8.822l1.343 3.782H6.008z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr-invert.png
new file mode 100644 (file)
index 0000000..edee6ac
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr-invert.svg
new file mode 100644 (file)
index 0000000..a848318
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="layout-ltr">
+        <path id="text" d="M5 19V5h6v8h8v6H5z"/>
+        <path id="float" d="M13 5v6h6V5h-6zm5 5h-4V6h4v4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl-invert.png
new file mode 100644 (file)
index 0000000..83e0145
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl-invert.svg
new file mode 100644 (file)
index 0000000..b8c4586
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="layout-rtl">
+        <path id="text" d="M5 19v-6h8V5h6v14H5z"/>
+        <path id="float" d="M5 5v6h6V5H5zm1 1h4v4H6V6z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr-invert.png
new file mode 100644 (file)
index 0000000..f304cef
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr-invert.svg
new file mode 100644 (file)
index 0000000..686a8e7
--- /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 7H9V5h12v2zM7 6c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm14 7H9v-2h12v2zM7 12c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm14 7H9v-2h12v2zM7 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl-invert.png
new file mode 100644 (file)
index 0000000..41cdbfb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl-invert.svg
new file mode 100644 (file)
index 0000000..be5bd9f
--- /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="M3 7h12V5H3v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zM3 13h12v-2H3v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zM3 19h12v-2H3v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2z" id="path370"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr-invert.png
new file mode 100644 (file)
index 0000000..d1caa84
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr-invert.svg
new file mode 100644 (file)
index 0000000..58ffe88
--- /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 7H8V5h13v2zm0 6H8v-2h13v2zm0 6H8v-2h13v2zM4 4h2v4H5V5H4zm-1 6V9h3v3H4v1h2v1H3v-3h2v-1zm3 10H3v-1h2v-1H4v-1h1v-1H3v-1h3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl-invert.png
new file mode 100644 (file)
index 0000000..ded0765
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl-invert.svg
new file mode 100644 (file)
index 0000000..d319205
--- /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="M3 7h13V5H3zm0 6h13v-2H3zm0 6h13v-2H3zM18 4h2v4h-1V5h-1zm0 6V9h3v3h-2v1h2v1h-3v-3h2v-1zm3 10h-3v-1h2v-1h-1v-1h1v-1h-2v-1h3z" id="path380"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr-invert.png
new file mode 100644 (file)
index 0000000..52467f2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr-invert.svg
new file mode 100644 (file)
index 0000000..dcbf49e
--- /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 14v3l5-4.5L15 8v3H8c0 1.7 1.3 3 3 3h4zm-1-9H4v15h10v-2H6V7h8V5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl-invert.png
new file mode 100644 (file)
index 0000000..734b5f2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl-invert.svg
new file mode 100644 (file)
index 0000000..e953bab
--- /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="g402">
+        <path d="M9 14v3l-5-4.5L9 8v3h7c0 1.7-1.3 3-3 3H9zm1-9h10v15H10v-2h8V7h-8V5z" id="path404"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc-invert.png
new file mode 100644 (file)
index 0000000..7dcc6fa
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc-invert.svg
new file mode 100644 (file)
index 0000000..a59d442
--- /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="M12 6c-3.9 0-7 3.1-7 7s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7zm0 13c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6zm-1.7-4.6c-.7 0-1-.4-1-1.2s.3-1.2 1-1.2c.4 0 .6.2.8.6l.9-.5c-.4-.7-1-1-1.9-1-.6 0-1.1.2-1.5.6s-.6.8-.6 1.5.2 1.2.6 1.6c.4.4.9.6 1.5.6.8 0 1.4-.4 1.9-1.1l-.9-.4c-.2.3-.5.5-.8.5zm4 0c-.7 0-1-.4-1-1.2s.3-1.2 1-1.2c.4 0 .6.2.8.6l.9-.5c-.4-.7-1-1-1.9-1-.6 0-1.1.2-1.5.6s-.6.8-.6 1.5.2 1.2.6 1.6c.4.4.9.6 1.5.6.8 0 1.4-.4 1.9-1.1l-.9-.4c-.2.3-.5.5-.8.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons-invert.png
new file mode 100644 (file)
index 0000000..7be1390
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons-invert.svg
new file mode 100644 (file)
index 0000000..40a9ab6
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M15.4 7.8c-2-.9-2.3-2.5-2.4-2.8.1.1 2 1 2 1l-3-5-3 5 2-1s0 .8.6 2.1c.8 1.5 2.2 2.2 2.2 2.2s1.6.7 2.2 1.3l-.7.7-.5-.5-.4 1.8 1.8-.4-.5-.5.7-.7c.9 1 1.5 2.3 1.6 3.8h-1V14l-1.5 1 1.5 1v-.8h1c-.1 1.5-.6 2.8-1.6 3.8l-.7-.7.5-.5-1.8-.4.4 1.8.5-.5.7.7c-1 .9-2.3 1.5-3.8 1.6v-1h.8l-1-1.5-1 1.5h.8v1c-1.5-.1-2.8-.6-3.8-1.6l.7-.7.5.5.4-1.8-1.8.4.5.5-.7.7c-.9-1-1.5-2.3-1.6-3.8h1v.8l1.5-1L7 14v.8H6c.1-1.5.6-2.8 1.6-3.8l.7.7-.5.5 1.8.4-.4-1.8-.5.5-.7-.7-1.5-1.4C5 10.6 4 12.7 4 15c0 4.4 3.6 8 8 8s8-3.6 8-8c0-3.2-1.9-5.9-4.6-7.2z"/>
+        <circle cx="12" cy="15" r="3"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia-invert.png
new file mode 100644 (file)
index 0000000..ea3aec3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia-invert.svg
new file mode 100644 (file)
index 0000000..a21fb46
--- /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="M22.3 6.3c0 .2 0 .3-.1.3-.7.1-1.2.5-1.6 1.1-.1.2-.2.4-.3.7l-4.6 10.1c-.1.2-.2.3-.2.3s-.1.1-.2.1c-.2 0-.4-.1-.5-.4L12.2 13l-2.8 5.5c-.1.3-.3.4-.5.4s-.4-.1-.5-.4L4.1 8.4c-.3-.8-.6-1.2-.8-1.4-.2-.2-.5-.3-1-.4-.1-.1-.1-.2-.1-.3 0-.2 0-.3.1-.3h4.3c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.6.1-1 .2-1.1.4-.1.2 0 .6.3 1.2l3.6 8.2h.1l2.2-4.4L10 8.4c-.3-.7-.6-1.2-.8-1.4s-.5-.3-.9-.4c-.1-.1-.1-.2-.1-.3 0-.2 0-.3.1-.3h3.6c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.4.1-.6.2-.6.4s.1.6.4 1.2l1 1.9 1-1.9c.3-.6.5-.9.5-1.1 0-.2 0-.3-.1-.4-.1-.1-.3-.1-.5-.1l-.1-.3c0-.2 0-.3.1-.3h3c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.5.1-.8.2-1.1.5-.3.3-.6.7-.8 1.3l-1.3 2.8 2.5 5.2h.1l3.7-8.1c.3-.5.3-.9.2-1.2-.1-.3-.5-.4-1.1-.5-.1-.1-.1-.2-.1-.3s0-.3.1-.3h3.7c-.2.1-.2.2-.2.3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr-invert.png
new file mode 100644 (file)
index 0000000..054cfd2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr-invert.svg
new file mode 100644 (file)
index 0000000..b988187
--- /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="M15 6L9 4 3 6v15l6-2 6 2 6-2V4l-6 2zM8.7 18.1L4 19.6V6.7L9 5v12.9l-.3.2zm11.3.2L15 20V7.1l.3-.1L20 5.4v12.9z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl-invert.png
new file mode 100644 (file)
index 0000000..afd1dc7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl-invert.svg
new file mode 100644 (file)
index 0000000..442891a
--- /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="M9 6l6-2 6 2v15l-6-2-6 2-6-2V4l6 2zm6.3 12.1l4.7 1.5V6.7L15 5v12.9l.3.2zM4 18.3L9 20V7.1L8.7 7 4 5.4v12.9z" id="path424"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin-invert.png
new file mode 100644 (file)
index 0000000..3b041dd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin-invert.svg
new file mode 100644 (file)
index 0000000..42d8e7c
--- /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="M19 12c0-3.9-3.1-7-7-7s-7 3.1-7 7c0 1.4.4 2.6 1.1 3.7L12 23l5.9-7.3c.7-1.1 1.1-2.3 1.1-3.7zm-7 4c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr-invert.png
new file mode 100644 (file)
index 0000000..ab176c9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr-invert.svg
new file mode 100644 (file)
index 0000000..ded3fd1
--- /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="g434">
+        <g id="g436">
+            <path d="M24 4h-4V0h-2v4h-4v2h4v4h2V6h4z" id="path438"/>
+        </g>
+    </g>
+    <path d="M18 11h-1V7.1l-.1-.1H13V5.1c-.3-.1-.7-.1-1-.1-3.9 0-7 3.1-7 7 0 1.4.4 2.6 1.1 3.7L12 23l5.9-7.3c.7-1.1 1.1-2.3 1.1-3.7 0-.3 0-.7-.1-1H18zm-6 5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path440"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl-invert.png
new file mode 100644 (file)
index 0000000..9cb0343
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl-invert.svg
new file mode 100644 (file)
index 0000000..537d914
--- /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="g434">
+        <g id="g436">
+            <path d="M0 4h4V0h2v4h4v2H6v4H4V6H0z" id="path438"/>
+        </g>
+    </g>
+    <path d="M6 11h1V7.1l.1-.1H11V5.1c.3-.1.7-.1 1-.1 3.9 0 7 3.1 7 7 0 1.4-.4 2.6-1.1 3.7L12 23l-5.9-7.3C5.4 14.6 5 13.4 5 12c0-.3 0-.7.1-1H6zm6 5c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4z" id="path440"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr-invert.png
new file mode 100644 (file)
index 0000000..7e1c9fb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr-invert.svg
new file mode 100644 (file)
index 0000000..c212285
--- /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="M21 9c0-1.7-1.3-3-3-3H3v3l9 4 9-4zM3 11v6c0 1.7 1.3 3 3 3h15v-9l-9 4-9-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl-invert.png
new file mode 100644 (file)
index 0000000..d965979
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl-invert.svg
new file mode 100644 (file)
index 0000000..684b304
--- /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="g450">
+        <path d="M3 9c0-1.7 1.3-3 3-3h15v3l-9 4-9-4zm18 2v6c0 1.7-1.3 3-3 3H3v-9l9 4 9-4z" id="path452"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/move-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/move-invert.png
new file mode 100644 (file)
index 0000000..e72516a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/move-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/move-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/move-invert.svg
new file mode 100644 (file)
index 0000000..5c7a766
--- /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 11l-4-3v2h-3V7h2l-3-4-3 4h2v3H8V8l-4 3 4 3v-2h3v3H9l3 4 3-4h-2v-3h3v2z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr-invert.png
new file mode 100644 (file)
index 0000000..c1a9fab
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr-invert.svg
new file mode 100644 (file)
index 0000000..9febfff
--- /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="g4">
+        <path d="M12 5l2.5 2.5L11 11c-1.2 1.2-1.2 2.8 0 4l5.5-5.5L19 12V5h-7zm5 12H8c-.6 0-1-.4-1-1V7h3L8 5H5v11c0 1.7 1.3 3 3 3h11v-3l-2-2v3z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl-invert.png
new file mode 100644 (file)
index 0000000..8dd0188
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl-invert.svg
new file mode 100644 (file)
index 0000000..e72ecf5
--- /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="g462">
+        <path d="M12 5L9.5 7.5 13 11c1.2 1.2 1.2 2.8 0 4L7.5 9.5 5 12V5h7zM7 17h9c.6 0 1-.4 1-1V7h-3l2-2h3v11c0 1.7-1.3 3-3 3H5v-3l2-2v3z" id="path464"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr-invert.png
new file mode 100644 (file)
index 0000000..fb09227
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr-invert.svg
new file mode 100644 (file)
index 0000000..e0c1784
--- /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="line_return">
+        <path d="M17.8 5.7c-.5 0-.9.2-1.2.5s-.5.7-.5 1.2v4.3H11v-4l-6 5.5 6 5.5v-4h8v-9h-1.2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl-invert.png
new file mode 100644 (file)
index 0000000..11b6b25
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl-invert.svg
new file mode 100644 (file)
index 0000000..da6982b
--- /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="line_return">
+        <path d="M6.2 5.7c.5 0 .9.2 1.2.5.3.3.5.7.5 1.2v4.3H13v-4l6 5.5-6 5.5v-4H5v-9h1.2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr-invert.png
new file mode 100644 (file)
index 0000000..69ceeaf
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr-invert.svg
new file mode 100644 (file)
index 0000000..555eb59
--- /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 7v12c-.6 0-1-.4-1-1V9H4v9c0 1.1.9 2 2 2h15V7H6zm9 11H8v-1h7v1zm0-2H8v-1h7v1zm0-2H8v-1h7v1zm4 4h-3v-5h3v5zm0-7H8V9h11v2z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl-invert.png
new file mode 100644 (file)
index 0000000..c34589a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl-invert.svg
new file mode 100644 (file)
index 0000000..71c59ef
--- /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="M19 7v12c.6 0 1-.4 1-1V9h1v9c0 1.1-.9 2-2 2H4V7h15zm-9 11h7v-1h-7v1zm0-2h7v-1h-7v1zm0-2h7v-1h-7v1zm-4 4h3v-5H6v5zm0-7h11V9H6v2z" id="path474"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.png
new file mode 100644 (file)
index 0000000..dcd35ce
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr-invert.svg
new file mode 100644 (file)
index 0000000..770932b
--- /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="M16 14l2 2V5h-4v2h2zm0 2L9 9 7 7 6 6 5 5 2 2 1 3l2 2H2v14h4v-2H4V7h1l2 2v10h4v-2H9v-6l6 6h-1v2h3l4 4 1-1-4-4zm-5-9V5H7l2 2zm8-2v2h2v10h-2l2 2h2V5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.png
new file mode 100644 (file)
index 0000000..eda918c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl-invert.svg
new file mode 100644 (file)
index 0000000..2ecb331
--- /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="g484">
+        <path d="M8 14l-2 2V5h4v2H8zm0 2l7-7 2-2 1-1 1-1 3-3 1 1-2 2h1v14h-4v-2h2V7h-1l-2 2v10h-4v-2h2v-6l-6 6h1v2H7l-4 4-1-1 4-4zm5-9V5h4l-2 2zM5 5v2H3v10h2l-2 2H1V5z" id="path486"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-ltr-progressive.png
new file mode 100644 (file)
index 0000000..6292977
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-ltr-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-ltr-progressive.svg
new file mode 100644 (file)
index 0000000..10390cd
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>* { fill: #347BFF }</style>
+    <g id="ongoing-conversation" fill-rule="evenodd">
+        <path d="M17.8 18.6H2.5l2.7-2.7V6h15.3v9.9c0 1.53-1.17 2.7-2.7 2.7zm-7.542-4.95c0 .405-.135.675-.405.945-.27.27-.607.405-.945.405-.405 0-.675-.135-.945-.405-.27-.27-.405-.607-.405-.945 0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945zm4.05 0c0 .405-.135.675-.405.945-.27.27-.607.405-.945.405-.405 0-.675-.135-.945-.405-.27-.27-.405-.607-.405-.945 0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945zm4.05 0c0 .405-.135.675-.405.945-.27.27-.607.405-.945.405-.405 0-.675-.135-.945-.405-.27-.27-.405-.607-.405-.945 0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-rtl-progressive.png
new file mode 100644 (file)
index 0000000..1afd904
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-rtl-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ongoingConversation-rtl-progressive.svg
new file mode 100644 (file)
index 0000000..b9494a0
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>* { fill: #347BFF }</style>
+    <g id="ongoing-conversation" fill-rule="evenodd">
+        <path d="M5.2 18.6h15.3l-2.7-2.7V6H2.5v9.9c0 1.53 1.17 2.7 2.7 2.7zm7.542-4.95c0 .405.135.675.405.945.27.27.607.405.945.405.405 0 .675-.135.945-.405.27-.27.405-.607.405-.945 0-.337-.135-.675-.405-.945-.27-.27-.608-.405-.945-.405-.338 0-.675.135-.945.405-.27.27-.405.607-.405.945zm-4.05 0c0 .405.135.675.405.945.27.27.608.405.945.405.405 0 .675-.135.945-.405.27-.27.405-.607.405-.945 0-.337-.135-.675-.405-.945-.27-.27-.608-.405-.945-.405-.338 0-.675.135-.945.405-.27.27-.405.608-.405.945zm-4.05 0c0 .405.135.675.405.945.27.27.608.405.945.405.405 0 .675-.135.945-.405.27-.27.405-.607.405-.945 0-.337-.135-.675-.405-.945-.27-.27-.607-.405-.945-.405-.337 0-.675.135-.945.405-.27.27-.405.608-.405.945z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr-invert.png
new file mode 100644 (file)
index 0000000..c552e53
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr-invert.svg
new file mode 100644 (file)
index 0000000..499f8ac
--- /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="M10 8h9v2h-9V8zm0 3h9v2h-9v-2zm0 3h6v2h-6v-2zm11-8H3V4h18v2zm0 14H3v-2h18v2zM3 12l5 4V8l-5 4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl-invert.png
new file mode 100644 (file)
index 0000000..309681e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl-invert.svg
new file mode 100644 (file)
index 0000000..597d1b7
--- /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="g496">
+        <path d="M14 8H5v2h9V8zm0 3H5v2h9v-2zm0 3H8v2h6v-2zM3 6h18V4H3v2zm0 14h18v-2H3v2zm18-8l-5 4V8l5 4z" id="path498"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr-invert.png
new file mode 100644 (file)
index 0000000..148a87e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr-invert.svg
new file mode 100644 (file)
index 0000000..62d78e1
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="outline-ltr">
+        <path id="text" d="M5 13h14v6H5v-6z"/>
+        <path id="float" d="M5 5v6h6V5H5zm5 5H6V6h4v4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl-invert.png
new file mode 100644 (file)
index 0000000..f30534f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl-invert.svg
new file mode 100644 (file)
index 0000000..b992baf
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="outline-rtl">
+        <path id="text" d="M19 19H5v-6h14v6z"/>
+        <path id="float" d="M13 5v6h6V5h-6zm1 1h4v4h-4V6z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png
new file mode 100644 (file)
index 0000000..2c23c3c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.svg
new file mode 100644 (file)
index 0000000..8647752
--- /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="M2 3h18v2H4v12H2V3zm13 13l-4-4-4 5h13l-3-3-2 2zM5 6h17v13H5V6z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png
new file mode 100644 (file)
index 0000000..ea51cad
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.svg
new file mode 100644 (file)
index 0000000..283bd5d
--- /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="g508">
+        <path d="M22 3H4v2h16v12h2V3zM9 16l4-4 4 5H4l3-3 2 2zM19 6H2v13h17V6z" id="path510"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr-invert.png
new file mode 100644 (file)
index 0000000..8a86884
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr-invert.svg
new file mode 100644 (file)
index 0000000..374312e
--- /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="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm-2 12V9l6 4-6 4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl-invert.png
new file mode 100644 (file)
index 0000000..eb878da
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl-invert.svg
new file mode 100644 (file)
index 0000000..6fc4664
--- /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="g520">
+        <path d="M12 5c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm2 12V9l-6 4 6 4z" id="path522"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr-invert.png
new file mode 100644 (file)
index 0000000..786beb1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr-invert.svg
new file mode 100644 (file)
index 0000000..08c2c36
--- /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="M18 8h-1V4H7v4H3v6c0 1.7 1.3 3 3 3h1v3h10v-3h4v-6c0-1.7-1.3-3-3-3zM8 5h8v3H8V5zm8 14H8v-6h8v6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl-invert.png
new file mode 100644 (file)
index 0000000..bd37410
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl-invert.svg
new file mode 100644 (file)
index 0000000..19d6b2e
--- /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 8h1V4h10v4h4v6c0 1.7-1.3 3-3 3h-1v3H7v-3H3v-6c0-1.7 1.3-3 3-3zm10-3H8v3h8V5zM8 19h8v-6H8v6z" id="path532"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr-invert.png
new file mode 100644 (file)
index 0000000..4ad9160
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr-invert.svg
new file mode 100644 (file)
index 0000000..4e53969
--- /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="M18 9.9c-.7 0-1.4.3-1.8.9V6h-4c.2-.4.4-.8.4-1.2 0-1.2-1-2.2-2.2-2.2-1.3-.1-2.3.9-2.3 2.2 0 .4.2.8.4 1.2H4.1v3.6l.6-.1c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5c-.2 0-.4 0-.6-.1V18H9c-.5.4-.9 1-.9 1.8 0 1.2 1 2.2 2.3 2.2 1.2 0 2.2-1 2.2-2.2 0-.7-.3-1.4-.9-1.8h4.5v-4.5c.4.5 1 .9 1.8.9 1.2 0 2.2-1 2.2-2.2 0-1.3-1-2.3-2.2-2.3z" id="path542"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl-invert.png
new file mode 100644 (file)
index 0000000..faff0ae
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl-invert.svg
new file mode 100644 (file)
index 0000000..715a526
--- /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.3 9.9c.7 0 1.4.3 1.8.9V6h4c-.2-.4-.4-.8-.4-1.2 0-1.2 1-2.2 2.2-2.2 1.3-.1 2.3.9 2.3 2.2 0 .4-.2.8-.4 1.2h4.4v3.6l-.6-.1c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5c.2 0 .4 0 .6-.1V18h-4.9c.5.4.9 1 .9 1.8 0 1.2-1 2.2-2.3 2.2-1.2 0-2.2-1-2.2-2.2 0-.7.3-1.4.9-1.8H8.1v-4.5c-.4.5-1 .9-1.8.9-1.2 0-2.2-1-2.2-2.2 0-1.3 1-2.3 2.2-2.3z" id="path542"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr-invert.png
new file mode 100644 (file)
index 0000000..dbde6ed
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr-invert.svg
new file mode 100644 (file)
index 0000000..e514672
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M-468.9 498.1c.2-.1.5-.2.6-.5s.2-.5.2-.9v-.7c-1 .2-1.5.2-2.6.6-.7.4-1.2.9-1.7 1.4-.5.5-1.9 2.6-1.9 5.8v3.1h4.7c.9 0 1.6-.7 1.6-1.6v-4.7h-3.1s.1-.7.6-1.4c.5-.5 1-.9 1.6-1.1zm-11.2-.1c-.5.5-1.9 2.9-1.9 6v2.9h4.7c.9 0 1.6-.7 1.6-1.6v-4.7h-3.1s.1-.7.6-1.4c.5-.5 1-.9 1.6-1.2.2-.1.5-.2.6-.5s.2-.5.2-.9v-.6c-1 .2-1.5.2-2.6.6-.6.4-1.2.9-1.7 1.4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl-invert.png
new file mode 100644 (file)
index 0000000..0b7d107
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl-invert.svg
new file mode 100644 (file)
index 0000000..be46adf
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-487 489 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M-479.5 499.3c.5.7.6 1.4.6 1.4h-3.1v4.7c0 .9.7 1.6 1.6 1.6h4.7v-3.1c0-3.1-1.5-5.2-1.9-5.8-.5-.5-1-1-1.7-1.4-1.1-.5-1.6-.5-2.6-.6v.8c0 .3.1.6.2.9s.4.4.6.5c.6 0 1.1.4 1.6 1zm7.8-2.7c-1.1-.5-1.6-.5-2.6-.6v.8c0 .3.1.6.2.9s.4.4.6.5c.6.2 1.2.6 1.6 1.2.5.7.6 1.4.6 1.4h-3.1v4.7c0 .9.7 1.6 1.6 1.6h4.7V504c0-3.1-1.5-5.4-1.9-6-.4-.5-1-1-1.7-1.4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr-invert.png
new file mode 100644 (file)
index 0000000..1f7862e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr-invert.svg
new file mode 100644 (file)
index 0000000..b08305e
--- /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="g4">
+        <path d="M3.5 8.6C2.9 9.3 1 12 1 16v4h6c1.1 0 2-.9 2-2v-6H5s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5.3-.1.6-.3.8-.6.2-.3.3-.7.3-1.1V6c-1.3.2-1.9.2-3.3.8-.8.5-1.6 1.1-2.2 1.8zM19 5V1h-2v4h-4v2h4v4h2V7h4V5zm-4 7s.1-.9.8-1.8l.2-.2V8h-1.9l-.6.6C12.9 9.3 11 12 11 16v4h6c1.1 0 2-.9 2-2v-6h-4z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl-invert.png
new file mode 100644 (file)
index 0000000..481db46
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl-invert.svg
new file mode 100644 (file)
index 0000000..a66bf47
--- /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="g4">
+        <path d="M20.5 8.6c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1V6c1.3.2 1.9.2 3.3.8.8.5 1.6 1.1 2.2 1.8zM5 5V1h2v4h4v2H7v4H5V7H1V5zm4 7s-.1-.9-.8-1.8L8 10V8h1.9l.6.6c.6.7 2.5 3.4 2.5 7.4v4H7c-1.1 0-2-.9-2-2v-6h4z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr-invert.png
new file mode 100644 (file)
index 0000000..066e17f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr-invert.svg
new file mode 100644 (file)
index 0000000..0a4e04e
--- /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="create_redirect">
+        <g>
+            <path d="M17.7 2.4c-.3-.3-.7-.4-1.2-.4H4.4v16.2c0 .5.1.8.4 1.1s.7.7 1.2.7h10.2c-.6-.2-1.2-.5-1.9-1-.4-.3-.8-.6-1.2-1l-.5-.6H6.4V16h5.4s-.4-1.5-.4-2h-5v-1h9v1c.4.1 1.1.1 1.5.1.4 0 .7 0 1.1-.1V3.5c.1-.5-.1-.9-.3-1.1zM12.5 4h3v4.5h-3V4zM6.4 4h4v1.6h-4V4zm0 3h4v1.5h-4V7zm0 3h9v1.5h-9V10zm12.7 3.1l4.9 3.8-4.9 4.8v-2.2c-1.7 0-2.9-.2-4.3-1.2-1.2-.8-2.5-2.6-2.3-4.1 1.4 1 2.9 1.5 4.4 1.5.7 0 1.4-.1 2.1-.3l.1-2.3"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl-invert.png
new file mode 100644 (file)
index 0000000..cdcd158
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl-invert.svg
new file mode 100644 (file)
index 0000000..431c5b8
--- /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="create_redirect">
+        <g id="g3264">
+            <path d="M6.3 2.4c.3-.3.7-.4 1.2-.4h12.1v16.2c0 .5-.1.8-.4 1.1-.3.3-.7.7-1.2.7H7.8c.6-.2 1.2-.5 1.9-1 .4-.3.8-.6 1.2-1l.5-.6h6.2V16h-5.4s.4-1.5.4-2h5v-1h-9v1c-.4.1-1.1.1-1.5.1-.4 0-.7 0-1.1-.1V3.5c-.1-.5.1-.9.3-1.1zM11.5 4h-3v4.5h3V4zm6.1 0h-4v1.6h4V4zm0 3h-4v1.5h4V7zm0 3h-9v1.5h9V10z" id="path3266"/>
+            <path d="M4.9 13.1L0 16.9l4.9 4.8v-2.2c1.7 0 2.9-.2 4.3-1.2 1.2-.8 2.5-2.6 2.3-4.1-1.4 1-2.9 1.5-4.4 1.5-.7 0-1.4-.1-2.1-.3l-.1-2.3" id="path3268"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression-invert.png
new file mode 100644 (file)
index 0000000..215cea5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression-invert.svg
new file mode 100644 (file)
index 0000000..59e863b
--- /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="regular-expression">
+        <path id="left-bracket" d="M3 12.045c0-.99.15-1.915.45-2.777.306-.862.743-1.618 1.314-2.268H6.23c-.552.72-.968 1.512-1.25 2.374-.28.862-.42 1.75-.42 2.66 0 .915.142 1.8.427 2.654.29.85.7 1.622 1.23 2.312H4.766c-.574-.635-1.012-1.376-1.313-2.223-.3-.847-.45-1.758-.45-2.732"/>
+        <path id="dot" d="M10 16c0 .552-.448 1-1 1s-1-.448-1-1 .448-1 1-1 1 .448 1 1z"/>
+        <path id="star" d="M14.25 7.013l-.24 2.156 2.187-.61.193 1.477-1.992.14 1.307 1.74-1.33.71-.914-1.834-.802 1.822-1.383-.697 1.295-1.74-1.98-.152.23-1.465 2.138.61-.24-2.156h1.535"/>
+        <path id="right-bracket" d="M21 12.045c0 .982-.152 1.896-.457 2.744-.3.846-.737 1.584-1.307 2.21h-1.453c.527-.686.936-1.455 1.225-2.306.29-.855.434-1.74.434-2.66 0-.91-.14-1.797-.422-2.66-.28-.862-.697-1.654-1.248-2.374h1.465c.574.653 1.012 1.413 1.313 2.28.3.86.45 1.783.45 2.765"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize-invert.png
new file mode 100644 (file)
index 0000000..329da36
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize-invert.svg
new file mode 100644 (file)
index 0000000..d1d5e10
--- /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="Layer_1">
+        <g>
+            <circle cx="11.5" cy="8.5" r="2.5"/>
+            <path d="M16.3 8.7L17 8l-.8-.8.4-.8-1.1-.5.1-.9-1.2-.2-.1-.9-1.2.2-.4-.8-1.1.5L11 3l-.8.8-.9-.4-.5 1.1-.9-.2-.2 1.2-.9.2.2 1.2-.9.4.5 1.1L6 9l.8.8-.4.8 1.1.5-.1.9 1.2.2.1.9 1.2-.2.4.8 1.1-.5.6.8.8-.8.8.4.5-1.1.9.1.2-1.2.9-.1-.2-1.2.8-.4-.4-1zM11.5 12C9.6 12 8 10.4 8 8.5S9.6 5 11.5 5 15 6.6 15 8.5 13.4 12 11.5 12zm.5 3l-.7-.7-1.1.6-.4-.7-.8.3V23l2.5-3 2.5 3v-8.5l-1-.5z"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr-invert.png
new file mode 100644 (file)
index 0000000..c7776c0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr-invert.svg
new file mode 100644 (file)
index 0000000..554525a
--- /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 20h24v1H0v-1zm6-8l-1-1-2 2-2-2-1 1 2 2-2 2 1 1 2-2 2 2 1-1-2-2zm15.6 3.7c-.9-.5-1.9-.5-2.7 0-1.5.9-3.1.4-3.1.4-.4-.2-.8-.4-1.1-.6 2.2-.6 4.4-1.8 6-3.9 1.1-1.2 2.5-3.9.4-6-.7-.7-1.6-1.1-2.7-1-1.4.1-2.8.9-3.9 2.1-.9 1.1-3.1 4.5-2.3 7.5 0 .1 0 .2.1.3-2.3.3-4.2.2-4.4.1v1.5c.7.1 2.7.2 5.1-.2.5.7 1.3 1.2 2.3 1.6.1 0 2.4.8 4.5-.6.5-.3.9-.1 1.1 0 .4.2.7.6.7 1H23c0-.8-.6-1.7-1.4-2.2zm-8-1.7c-.5-2.2 1.1-5.1 2-6.2.8-.9 1.8-1.5 2.8-1.6h.1c.6 0 1.1.2 1.5.6 1.6 1.6-.4 3.9-.5 4-1.5 2-3.7 3-5.8 3.5l-.1-.3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl-invert.png
new file mode 100644 (file)
index 0000000..5686bdb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl-invert.svg
new file mode 100644 (file)
index 0000000..2962041
--- /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="M24 20H0v1h24v-1zm-6-8l1-1 2 2 2-2 1 1-2 2 2 2-1 1-2-2-2 2-1-1 2-2zM2.4 15.7c.9-.5 1.9-.5 2.7 0 1.5.9 3.1.4 3.1.4.4-.2.8-.4 1.1-.6-2.2-.6-4.4-1.8-6-3.9-1.1-1.2-2.5-3.9-.4-6 .7-.7 1.6-1.1 2.7-1 1.4.1 2.8.9 3.9 2.1.9 1.1 3.1 4.5 2.3 7.5 0 .1 0 .2-.1.3 2.3.3 4.2.2 4.4.1v1.5c-.7.1-2.7.2-5.1-.2-.5.7-1.3 1.2-2.3 1.6-.1 0-2.4.8-4.5-.6-.5-.3-.9-.1-1.1 0-.4.2-.7.6-.7 1H1c0-.8.6-1.7 1.4-2.2zm8-1.7c.5-2.2-1.1-5.1-2-6.2-.8-.9-1.8-1.5-2.8-1.6h-.1c-.6 0-1.1.2-1.5.6-1.6 1.6.4 3.9.5 4 1.5 2 3.7 3 5.8 3.5l.1-.3z" id="path576"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr-invert.png
new file mode 100644 (file)
index 0000000..29675cf
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr-invert.svg
new file mode 100644 (file)
index 0000000..1126dba
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+    <g id="down">
+        <path id="arrow" d="M22 3l-3.5 6L15 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl-invert.png
new file mode 100644 (file)
index 0000000..20c2845
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl-invert.svg
new file mode 100644 (file)
index 0000000..ffac2da
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+    <g id="down">
+        <path id="arrow" d="M9 3L5.5 9 2 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter-invert.png
new file mode 100644 (file)
index 0000000..17df47a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter-invert.svg
new file mode 100644 (file)
index 0000000..e88f51b
--- /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="special-character">
+        <path id="omega" d="M12 6.708c-.794 0-1.368.103-1.894.31-.525.207-.944.496-1.255.867-.31.366-.53.808-.66 1.327-.127.513-.19 1.08-.19 1.7 0 .512.057 1 .173 1.46.122.46.31.87.568 1.23.63.862 1.156 1.138 2.012 1.362L11 18H6v-3h.604l.53 1.353.395.053.604.044.75.035.457.01H10l-.09-.895c-.63-.094-.812-.268-1.337-.522-.525-.26-.98-.59-1.365-.99-.38-.402-.675-.868-.89-1.4-.213-.536-.32-1.13-.32-1.778 0-.82.13-1.537.394-2.15.27-.62.656-1.133 1.163-1.54.507-.407 1.133-.71 1.878-.912.745-.206 1.6-.31 2.565-.31.96 0 1.81.103 2.556.31.75.2 1.38.504 1.887.912.508.407.893.92 1.155 1.54.27.614.403 1.33.403 2.15 0 .65-.107 1.242-.32 1.78-.215.53-.514.996-.9 1.397-.378.4-.83.732-1.355.99-.525.255-.707.43-1.336.523l-.092.894h.66l.447-.01.75-.034.606-.044.403-.053.532-1.354h.605v3h-5l.247-3.036c1.066-.11 1.337-.696 2.002-1.363.263-.36.452-.77.568-1.23.122-.46.183-.946.183-1.46 0-.618-.064-1.185-.192-1.698-.128-.52-.348-.962-.66-1.327-.31-.372-.73-.66-1.255-.867-.525-.206-1.1-.31-1.894-.31"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr-invert.png
new file mode 100644 (file)
index 0000000..15ae3ab
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr-invert.svg
new file mode 100644 (file)
index 0000000..8f0d6e1
--- /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="M19 20H2l3-3V6h17v11c0 1.7-1.3 3-3 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl-invert.png
new file mode 100644 (file)
index 0000000..02c0fa1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl-invert.svg
new file mode 100644 (file)
index 0000000..4eaf331
--- /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="g586">
+        <path d="M5 20h17l-3-3V6H2v11c0 1.7 1.3 3 3 3z" id="path588"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr-invert.png
new file mode 100644 (file)
index 0000000..15ae3ab
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr-invert.svg
new file mode 100644 (file)
index 0000000..652bb0b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M19 20H2l3-3V6h17v11c0 1.7-1.3 3-3 3z"/>
+    </g>
+    <path fill="#fff" d="M13 9h1v7h-1zm-3 3h7v1h-7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl-invert.png
new file mode 100644 (file)
index 0000000..02c0fa1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl-invert.svg
new file mode 100644 (file)
index 0000000..b5718ef
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="g598">
+        <path d="M5 20h17l-3-3V6H2v11c0 1.7 1.3 3 3 3z" id="path600"/>
+    </g>
+    <path d="M11 9h-1v7h1zm3 3H7v1h7z" id="path602" fill="#fff"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr-invert.png
new file mode 100644 (file)
index 0000000..405f8ed
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr-invert.svg
new file mode 100644 (file)
index 0000000..f07ce02
--- /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 9v9l2 2H8V9h12zM3 4h12v4H7v7H1l2-2V4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl-invert.png
new file mode 100644 (file)
index 0000000..6350811
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl-invert.svg
new file mode 100644 (file)
index 0000000..b98ed2b
--- /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="g612">
+        <path d="M3 9v9l-2 2h14V9H3zm17-5H8v4h8v7h6l-2-2V4z" id="path614"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-constructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-constructive.png
new file mode 100644 (file)
index 0000000..b0bc3b1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-constructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-constructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/star-constructive.svg
new file mode 100644 (file)
index 0000000..9e64bcf
--- /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: #00AF89 }</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-.5L12 7.4M12 4L9.2 9.6l-6.2.9 4.5 4.4L6.4 21l5.6-3 5.5 3-1-6.2 4.5-4.4-6.3-.9L12 4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.png
new file mode 100644 (file)
index 0000000..c2a07c6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.svg
new file mode 100644 (file)
index 0000000..ef7b7c6
--- /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 6c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7m0-1c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm-3 5h6v6H9z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a-invert.png
new file mode 100644 (file)
index 0000000..bf6e28f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a-invert.svg
new file mode 100644 (file)
index 0000000..60b36a8
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="strikethrough-a">
+        <path id="strikethrough" d="M6 11h12v1H6v-1z"/>
+        <path id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s-invert.png
new file mode 100644 (file)
index 0000000..a80ee25
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s-invert.svg
new file mode 100644 (file)
index 0000000..d4cea6e
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="strikethrough-s">
+        <path id="strikethrough" d="M6 12h12v1H6v-1z"/>
+        <path id="s" d="M12.094 6c-1.133 0-2.076.287-2.75.9-.67.613-1 1.49-1 2.52 0 .89.22 1.602.72 2.13.497.528 1.278.91 2.31 1.14l.813.182v-.03c.656.147 1.128.375 1.375.63.252.256.375.607.375 1.11 0 .573-.172.97-.53 1.26-.36.29-.895.45-1.626.45-.476 0-.968-.074-1.468-.24-.502-.166-1.03-.417-1.562-.75l-.375-.238v2.158l.156.062c.58.237 1.144.417 1.69.54.548.12 1.07.18 1.56.18 1.287 0 2.298-.293 3-.9.71-.605 1.063-1.486 1.063-2.608 0-.943-.256-1.726-.78-2.312-.522-.592-1.306-1-2.345-1.23l-.812-.18c-.716-.148-1.204-.352-1.406-.54-.205-.202-.312-.484-.312-.934 0-.533.162-.9.5-1.17.342-.27.836-.42 1.53-.42.396 0 .82.052 1.25.18.434.128.91.334 1.407.6l.375.18V6.63s-1.188-.383-1.688-.48c-.5-.097-.984-.15-1.468-.15z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y-invert.png
new file mode 100644 (file)
index 0000000..63028d6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y-invert.svg
new file mode 100644 (file)
index 0000000..50db67b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="strikethrough-y">
+        <path id="strikethrough" d="M6 11h12v1H6v-1z"/>
+        <path id="a" d="M7 6h1.724l3.288 4.935L15.276 6H17l-4.194 6.285V18h-1.612v-5.715L7 6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr-invert.png
new file mode 100644 (file)
index 0000000..1607d39
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr-invert.svg
new file mode 100644 (file)
index 0000000..b5ef54e
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
+    <path d="M18 13l-1 1v3l1 1h-1l-.527-.46L16 18h-1l1-1v-3l-1-1h1l.485.497L17 13z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl-invert.png
new file mode 100644 (file)
index 0000000..3970bb1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl-invert.svg
new file mode 100644 (file)
index 0000000..e43eac6
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
+    <path d="M8 13l1 1v3l-1 1h1l.527-.46L10 18h1l-1-1v-3l1-1h-1l-.485.497L9 13z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr-invert.png
new file mode 100644 (file)
index 0000000..9c2fe07
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr-invert.svg
new file mode 100644 (file)
index 0000000..7f7ef3a
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M18.1 5.1c0 .3-.1.6-.3.9l-1.4 1.4-.9-.8 2.2-2.2c.3.1.4.4.4.7zm-.5 5.3h3.2c0 .3-.1.6-.4.9s-.5.4-.8.4h-2v-1.3zm-6.2-5V2.2c.3 0 .6.1.9.4s.4.5.4.8v2h-1.3zm6.4 11.7c-.3 0-.6-.1-.8-.3l-1.4-1.4.8-.8 2.2 2.2c-.2.2-.5.3-.8.3zM6.2 4.9c.3 0 .6.1.8.3l1.4 1.4-.8.9-2.2-2.3c.2-.2.5-.3.8-.3zm5.2 11.7h1.2v3.2c-.3 0-.6-.1-.9-.4s-.4-.5-.4-.8l.1-2zm-7-6.2h2v1.2H3.2c0-.3.1-.6.4-.9s.5-.3.8-.3zM6.2 16l1.4-1.4.8.8-2.2 2.2c-.2-.2-.3-.5-.3-.8s.1-.6.3-.8z"/>
+    <circle cx="12" cy="11" r="4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl-invert.png
new file mode 100644 (file)
index 0000000..3481d18
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl-invert.svg
new file mode 100644 (file)
index 0000000..f90bc0c
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M5.9 5.1c0 .3.1.6.3.9l1.4 1.4.9-.8-2.2-2.2c-.3.1-.4.4-.4.7zm.5 5.3H3.2c0 .3.1.6.4.9.3.3.5.4.8.4h2v-1.3zm6.2-5V2.2c-.3 0-.6.1-.9.4-.3.3-.4.5-.4.8v2h1.3zM6.2 17.1c.3 0 .6-.1.8-.3l1.4-1.4-.8-.8-2.2 2.2c.2.2.5.3.8.3zM17.8 4.9c-.3 0-.6.1-.8.3l-1.4 1.4.8.9 2.2-2.3c-.2-.2-.5-.3-.8-.3zm-5.2 11.7h-1.2v3.2c.3 0 .6-.1.9-.4.3-.3.4-.5.4-.8l-.1-2zm7-6.2h-2v1.2h3.2c0-.3-.1-.6-.4-.9-.3-.3-.5-.3-.8-.3zM17.8 16l-1.4-1.4-.8.8 2.2 2.2c.2-.2.3-.5.3-.8 0-.3-.1-.6-.3-.8z" id="path678"/>
+    <circle cx="12" cy="11" r="4" id="circle680" transform="matrix(-1 0 0 1 24 0)"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr-invert.png
new file mode 100644 (file)
index 0000000..7099d7f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr-invert.svg
new file mode 100644 (file)
index 0000000..7f95dcf
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
+    <path d="M18 7l-1 1v3l1 1h-1l-.527-.46L16 12h-1l1-1V8l-1-1h1l.485.497L17 7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl-invert.png
new file mode 100644 (file)
index 0000000..7d73f51
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl-invert.svg
new file mode 100644 (file)
index 0000000..468316d
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
+    <path d="M8 7l1 1v3l-1 1h1l.527-.46L10 12h1l-1-1V8l1-1h-1l-.485.497L9 7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption-invert.png
new file mode 100644 (file)
index 0000000..81c258e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption-invert.svg
new file mode 100644 (file)
index 0000000..3923614
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="table-caption">
+        <path id="caption" d="M6 6h12v3H6z"/>
+        <path id="table" d="M4 10v7h16v-7H4zm1 1h4v2H5v-2zm5 0h4v2h-4v-2zm5 0h4v2h-4v-2zM5 14h4v2H5v-2zm5 0h4v2h-4v-2zm5 0h4v2h-4v-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr-invert.png
new file mode 100644 (file)
index 0000000..13bb421
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr-invert.svg
new file mode 100644 (file)
index 0000000..1bb2d7e
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="table-insert-column-ltr">
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M5 5h2v14H5z" id="column"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl-invert.png
new file mode 100644 (file)
index 0000000..363241b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl-invert.svg
new file mode 100644 (file)
index 0000000..8489597
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="table-insert-column-rtl">
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M17 5h2v14h-2z" id="column"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after-invert.png
new file mode 100644 (file)
index 0000000..eb82a50
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after-invert.svg
new file mode 100644 (file)
index 0000000..d0813a6
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="table-insert-row-after">
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M5 17h14v2H5z" id="row"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before-invert.png
new file mode 100644 (file)
index 0000000..f5ff540
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before-invert.svg
new file mode 100644 (file)
index 0000000..516078f
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="table-insert-row-before">
+        <path d="M13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z" id="plus"/>
+        <path d="M5 5h14v2H5z" id="row"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.png
new file mode 100644 (file)
index 0000000..9cc620a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.svg
new file mode 100644 (file)
index 0000000..246be85
--- /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="table-insert">
+        <path id="table" d="M4 5v13h16V5zm2 2h5v4H6zm7 0h5v4h-5zm-7 5h5v4H6zm7 0h5v4h-5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells-invert.png
new file mode 100644 (file)
index 0000000..67c095d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells-invert.svg
new file mode 100644 (file)
index 0000000..06cb4da
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="table-merge-cells">
+        <g id="merge-cell-left">
+            <path id="cell-border" d="M4 7v9h7v-3l-1 .834V15H5V8h5v1.167L11 10V7z"/>
+            <path id="arrow" d="M8 9v2H6v1h2v2l3-2.5z"/>
+        </g>
+        <use id="merge-cell-right" xlink:href="#merge-cell-left" transform="matrix(-1 0 0 1 24 0)"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr-invert.png
new file mode 100644 (file)
index 0000000..f5dfa9d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr-invert.svg
new file mode 100644 (file)
index 0000000..c97070d
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M24 6h-4V2h-2v4h-4v2h4v4h2V8h4z"/>
+    </g>
+    <path d="M19 13v7H3c-1.1 0-2-.9-2-2V7h12V6H0v12c0 1.7 1.3 3 3 3h17v-8h-1z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl-invert.png
new file mode 100644 (file)
index 0000000..23c7292
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl-invert.svg
new file mode 100644 (file)
index 0000000..6593fc7
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="g690">
+        <path d="M0 6h4V2h2v4h4v2H6v4H4V8H0z" id="path692"/>
+    </g>
+    <path d="M5 13v7h16c1.1 0 2-.9 2-2V7H11V6h13v12c0 1.7-1.3 3-3 3H4v-8h1z" id="path694"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright-invert.png
new file mode 100644 (file)
index 0000000..fb7b900
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright-invert.svg
new file mode 100644 (file)
index 0000000..ae694bc
--- /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="text-dir-ltr">
+        <path d="M7 7H5V6h2l.47.5L8 6h2v1H8v10h2v1H8l-.5-.53L7 18H5v-1h2zm6.976 9v-2H11v-4h2.976V8.044L20 12.022z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft-invert.png
new file mode 100644 (file)
index 0000000..b935d7c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft-invert.svg
new file mode 100644 (file)
index 0000000..5536285
--- /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="text-dir-rtl">
+        <path d="M17 17h2v1h-2l-.47-.5-.53.5h-2v-1h2V7h-2V6h2l.5.53L17 6h2v1h-2zm-6.976-9v2H13v4h-2.976v1.956L4 11.978z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style-invert.png
new file mode 100644 (file)
index 0000000..4bea5a1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style-invert.svg
new file mode 100644 (file)
index 0000000..baf5c14
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="text-style">
+        <path id="a" d="M15.296 18h2.79l-1.14-12h-2.79L6 18h2.79l2.038-3h4.183l.286 3zm-3.11-5L14.5 9.6l.323 3.4h-2.633z"/>
+        <path id="underline" d="M6 19h12v1H6v-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr-invert.png
new file mode 100644 (file)
index 0000000..fde9f52
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr-invert.svg
new file mode 100644 (file)
index 0000000..30915b7
--- /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.1 13.1C9.3 11 8.4 8.8 8.1 8h4.7l.7-2H8V3H6v3H1v2h5c-.2.9-1.3 4.8-5.1 7.6l1.2 1.6c2.7-2 4.3-4.5 5.1-6.4.7 1.3 1.7 3 3.2 4.5l.7-2.2zm1.4 6.9l1.3-4h5.3l1.3 4h2.2L18 6h-3l-4.7 14h2.2zm4-12l2 6h-4l2-6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl-invert.png
new file mode 100644 (file)
index 0000000..09ab631
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl-invert.svg
new file mode 100644 (file)
index 0000000..de634a8
--- /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.4 13.1c1.8-2.1 2.7-4.3 3-5.1h-4.7L10 6h5.5V3h2v3h5v2h-5c.2.9 1.3 4.8 5.1 7.6l-1.2 1.6c-2.7-2-4.3-4.5-5.1-6.4-.7 1.3-1.7 3-3.2 4.5l-.7-2.2zM11 20l-1.3-4H4.4l-1.3 4H.9L5.5 6h3l4.7 14H11zM7 8l-2 6h4L7 8z" id="path704"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-constructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-constructive.png
new file mode 100644 (file)
index 0000000..c30fe9d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-constructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-constructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-constructive.svg
new file mode 100644 (file)
index 0000000..818f5a7
--- /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: #00AF89 }</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/underline-a-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-a-invert.png
new file mode 100644 (file)
index 0000000..00913f7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-a-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-a-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-a-invert.svg
new file mode 100644 (file)
index 0000000..4ee0553
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="underline-a">
+        <path id="a" d="M14.424 16H16.5L13.037 6H10.96L7.5 16h2.077l.627-2h3.604l.616 2zm-3.92-3.623l1.495-4.38 1.51 4.38h-3z"/>
+        <path id="underline" d="M7 17h10v1H7v-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u-invert.png
new file mode 100644 (file)
index 0000000..c1f52df
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u-invert.svg
new file mode 100644 (file)
index 0000000..5f841f9
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g id="underline-u">
+        <path id="u" d="M8 6h2v5.96c-.104 1.706.695 2 2 2.04 1.777.062 2.002-.88 2-2.04V6h2v6.123c0 1.28-.338 2.245-1.016 2.898-.672.652-1.666.98-2.98.98-1.32 0-2.32-.326-2.996-.98C8.336 14.37 8 13.403 8 12.124V6"/>
+        <path id="underline" d="M7 17h10v1H7v-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle-invert.png
new file mode 100644 (file)
index 0000000..720f335
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle-invert.svg
new file mode 100644 (file)
index 0000000..b23189f
--- /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 8l8 10H4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr-invert.png
new file mode 100644 (file)
index 0000000..c7b7fd5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr-invert.svg
new file mode 100644 (file)
index 0000000..2ba1d09
--- /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="M10 13c0 1.7 1.3 3 3 3V9h3l-4.5-5L7 9h3v4zm7 0v5H7c-.6 0-1-.4-1-1v-4H4v4c0 1.9 1.3 3 3 3h12v-7h-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl-invert.png
new file mode 100644 (file)
index 0000000..1fb0995
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl-invert.svg
new file mode 100644 (file)
index 0000000..b181c6c
--- /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="g736">
+        <path d="M13 13c0 1.7-1.3 3-3 3V9H7l4.5-5L16 9h-3v4zm-7 0v5h10c.6 0 1-.4 1-1v-4h2v4c0 1.9-1.3 3-3 3H4v-7h2z" id="path738"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr-invert.png
new file mode 100644 (file)
index 0000000..b234763
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr-invert.svg
new file mode 100644 (file)
index 0000000..af68b98
--- /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="M16 5H4v12c0 1.7 1.3 3 3 3h12V8c0-1.7-1.3-3-3-3zm-2 4c.7 0 1.2.6 1.2 1.2s-.6 1.2-1.2 1.2-1.2-.6-1.2-1.2S13.3 9 14 9zM9 9c.7 0 1.2.6 1.2 1.2s-.5 1.3-1.2 1.3-1.2-.6-1.2-1.2S8.3 9 9 9zm7 5.4c0 .2-.1.3-.3.5-.7.6-1.6 1-2.6 1.3s-2.1.2-3.1 0-2-.9-2.7-1.5c-.1-.1-.2-.3-.2-.4s.1-.3.2-.4c.1-.1.3-.2.4-.2.2 0 .3.1.4.2.5.5 1.2.9 2.1 1.1s1.7.2 2.6 0 1.6-.5 2.1-1c.1-.1.3-.2.4-.2s.3.1.5.2.2.2.2.4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl-invert.png
new file mode 100644 (file)
index 0000000..29d54e2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl-invert.svg
new file mode 100644 (file)
index 0000000..8a8e6ec
--- /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="M7 5h12v12c0 1.7-1.3 3-3 3H4V8c0-1.7 1.3-3 3-3zm2 4c-.7 0-1.2.6-1.2 1.2s.6 1.2 1.2 1.2 1.2-.6 1.2-1.2S9.7 9 9 9zm5 0c-.7 0-1.2.6-1.2 1.2s.5 1.3 1.2 1.3 1.2-.6 1.2-1.2S14.7 9 14 9zm-7 5.4c0 .2.1.3.3.5.7.6 1.6 1 2.6 1.3 1 .3 2.1.2 3.1 0s2-.9 2.7-1.5c.1-.1.2-.3.2-.4 0-.1-.1-.3-.2-.4-.1-.1-.3-.2-.4-.2-.2 0-.3.1-.4.2-.5.5-1.2.9-2.1 1.1-.9.2-1.7.2-2.6 0-.9-.2-1.6-.5-2.1-1-.1-.1-.3-.2-.4-.2-.1 0-.3.1-.5.2s-.2.2-.2.4z" id="path748"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar-invert.png
new file mode 100644 (file)
index 0000000..1adbac0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar-invert.svg
new file mode 100644 (file)
index 0000000..22b83ed
--- /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="g4">
+        <g id="g6">
+            <path d="M11.5 13c1.7 0 3.5-2 3.5-5 0-.1 0-4-3.5-4S8 7.9 8 8c0 3 1.8 5 3.5 5zm3.5-1c-.4.7-1.7 2-3.5 2S8.3 12.7 8 12H6c-1.1 0-2 .9-2 2v6h15v-6c0-1.1-.9-2-2-2h-2z" id="path8"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr-invert.png
new file mode 100644 (file)
index 0000000..184deb7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr-invert.svg
new file mode 100644 (file)
index 0000000..9bfdcd9
--- /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="M16 5H4v12c0 1.7 1.3 3 3 3h12V8c0-1.7-1.3-3-3-3zm-9.3 5.4C6.2 10 6 9.6 6 9c.6.6 1.5.9 2.5.9s1.9-.3 2.5-.9c0 .6-.2 1-.7 1.4-.5.4-1.1.6-1.8.6s-1.3-.2-1.8-.6zm8.4 4.3c0 .2-.1.3-.3.4-1 .6-2.2.9-3.5.9-1.2 0-2.3-.3-3.3-1-.2-.1-.2-.2-.3-.4s0-.3.1-.5.2-.2.4-.3.3 0 .5.1c.8.5 1.7.8 2.8.8s2-.2 2.8-.7c.1-.1.3-.1.5-.1s.3.1.4.3l-.1.5zm1.2-4.3c-.5.4-1.1.6-1.8.6s-1.3-.2-1.8-.6S12 9.6 12 9c.6.6 1.5.9 2.5.9s1.9-.3 2.5-.9c0 .6-.2 1-.7 1.4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl-invert.png
new file mode 100644 (file)
index 0000000..fad58d4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl-invert.svg
new file mode 100644 (file)
index 0000000..cc568bb
--- /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="M7 5h12v12c0 1.7-1.3 3-3 3H4V8c0-1.7 1.3-3 3-3zm9.3 5.4c.5-.4.7-.8.7-1.4-.6.6-1.5.9-2.5.9S12.6 9.6 12 9c0 .6.2 1 .7 1.4.5.4 1.1.6 1.8.6s1.3-.2 1.8-.6zm-8.4 4.3c0 .2.1.3.3.4 1 .6 2.2.9 3.5.9 1.2 0 2.3-.3 3.3-1 .2-.1.2-.2.3-.4.1-.2 0-.3-.1-.5s-.2-.2-.4-.3c-.2-.1-.3 0-.5.1-.8.5-1.7.8-2.8.8-1.1 0-2-.2-2.8-.7-.1-.1-.3-.1-.5-.1s-.3.1-.4.3l.1.5zm-1.2-4.3c.5.4 1.1.6 1.8.6s1.3-.2 1.8-.6c.5-.4.7-.8.7-1.4-.6.6-1.5.9-2.5.9S6.6 9.6 6 9c0 .6.2 1 .7 1.4z" id="path758"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr-invert.png
new file mode 100644 (file)
index 0000000..0d2d304
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr-invert.svg
new file mode 100644 (file)
index 0000000..0a165c4
--- /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="M5 6v11l-3 3h17c1.7 0 3-1.3 3-3V6H5zm11.2 2.5c.7 0 1.2.6 1.2 1.2s-.5 1.3-1.2 1.3-1.2-.6-1.2-1.2.6-1.3 1.2-1.3zm-5.4 0c.7 0 1.2.6 1.2 1.2s-.6 1.3-1.2 1.3-1.2-.6-1.2-1.2.5-1.3 1.2-1.3zm2.7 8.5c-5.1 0-6-5-6-5s2 1 6 1l6-1s-1 5-6 5z" id="path6"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl-invert.png
new file mode 100644 (file)
index 0000000..68d92b0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl-invert.svg
new file mode 100644 (file)
index 0000000..3b91712
--- /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="M19 6v11l3 3H5c-1.7 0-3-1.3-3-3V6h17zM7.8 8.5c-.7 0-1.2.6-1.2 1.2S7.1 11 7.8 11 9 10.4 9 9.8s-.6-1.3-1.2-1.3zm5.4 0c-.7 0-1.2.6-1.2 1.2s.6 1.3 1.2 1.3 1.2-.6 1.2-1.2-.5-1.3-1.2-1.3zM10.5 17c5.1 0 6-5 6-5s-2 1-6 1l-6-1s1 5 6 5z" id="path770"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr-invert.png
new file mode 100644 (file)
index 0000000..19b4561
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr-invert.svg
new file mode 100644 (file)
index 0000000..5e4a2f3
--- /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="M13 14h5v1h-5v-1zm0 3h5v-1h-5v1zm0 1h5v1h-5v-1zm-1-5v3l-5 3 1-6-4-3 6-1 2-5s1.9 5 2 5l6 1-4 3h-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl-invert.png
new file mode 100644 (file)
index 0000000..48bf383
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl-invert.svg
new file mode 100644 (file)
index 0000000..073ef3d
--- /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="g780">
+        <path d="M11 14H6v1h5v-1zm0 3H6v-1h5v1zm0 1H6v1h5v-1zm1-5v3l5 3-1-6 4-3-6-1-2-5s-1.9 5-2 5l-6 1 4 3h4z" id="path782"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.png
new file mode 100644 (file)
index 0000000..bdf5238
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText-invert.svg
new file mode 100644 (file)
index 0000000..e050baa
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <path d="M23 5h-4v2h2v10h-2v2h4z"/>
+    </g>
+    <g>
+        <path d="M18 5h-4v2h2v10h-2v2h4z"/>
+    </g>
+    <g>
+        <path d="M2 5h4v2H4v10h2v2H2z"/>
+    </g>
+    <g>
+        <path d="M7 5h4v2H9v10h2v2H7z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.png
new file mode 100644 (file)
index 0000000..917a577
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.svg
new file mode 100644 (file)
index 0000000..652b9c4
--- /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>
+        <path d="M15 9l.7-1.8c.9.4 1.8.7 2.4.9l-.6 1.7v.2L15 9zm-4.3-1.9l.8-1.8c1.2.5 2.6 1.1 3 1.4l-.8 1.8-3-1.4zm-5.9-1c-.8 0-1.4.2-2 .6L1.7 5c.9-.6 1.9-.9 3.1-.9v2zm-4.3.7l1.8.8c-.3.7-.3 1.3-.1 1.8l-1.9.7C0 8.9 0 7.8.5 6.8zm4.2 5.4l-1.3 1.5c-1-1-1.7-1.6-2-2l1.5-1.3c.7.8 1.3 1.4 1.8 1.8zm7.3 4.3c0 1.9-1.6 3.5-3.5 3.5S5 18.4 5 16.5 6.6 13 8.5 13s3.5 1.6 3.5 3.5z"/>
+    </g>
+    <path d="M24 8l-1-1-1.5 1.5L20 7l-1 1 1.5 1.5L19 11l1 1 1.5-1.5L23 12l1-1-1.5-1.5z"/>
+    <circle cx="8" cy="5" r="2"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.png
new file mode 100644 (file)
index 0000000..92afc20
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.svg
new file mode 100644 (file)
index 0000000..285c8cc
--- /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="g792">
+        <path d="M9.095 9l-.7-1.8c-.9.4-1.8.7-2.4.9l.6 1.7v.2l2.5-1zm4.3-1.9l-.8-1.8c-1.2.5-2.6 1.1-3 1.4l.8 1.8 3-1.4zm5.9-1c.8 0 1.4.2 2 .6l1.1-1.7c-.9-.6-1.9-.9-3.1-.9v2zm4.3.7l-1.8.8c.3.7.3 1.3.1 1.8l1.9.7c.3-1.2.3-2.3-.2-3.3zm-4.2 5.4l1.3 1.5c1-1 1.7-1.6 2-2l-1.5-1.3c-.7.8-1.3 1.4-1.8 1.8zm-7.3 4.3c0 1.9 1.6 3.5 3.5 3.5s3.5-1.6 3.5-3.5-1.6-3.5-3.5-3.5-3.5 1.6-3.5 3.5z" id="path794"/>
+    </g>
+    <path d="M.095 8l1-1 1.5 1.5 1.5-1.5 1 1-1.5 1.5 1.5 1.5-1 1-1.5-1.5-1.5 1.5-1-1 1.5-1.5z" id="path796"/>
+    <circle cx="8" cy="5" r="2" id="circle798" transform="matrix(-1 0 0 1 24.095 0)"/>
+</svg>
index 867c25e..1ac34a5 100644 (file)
@@ -112,7 +112,7 @@ function getAccessKeyLabel( element ) {
  */
 function updateTooltipOnElement( element, titleElement ) {
        var array = ( mw.msg( 'word-separator' ) + mw.msg( 'brackets' ) ).split( '$1' ),
-               regexp = new RegExp( $.map( array, $.escapeRE ).join( '.*?' ) + '$' ),
+               regexp = new RegExp( $.map( array, mw.RegExp.escape ).join( '.*?' ) + '$' ),
                oldTitle = titleElement.title,
                rawTitle = oldTitle.replace( regexp, '' ),
                newTitle = rawTitle,
index 1338218..8deb669 100644 (file)
@@ -3,7 +3,7 @@
  * TODO: Add a function for restoring the previous text.
  * TODO: Accept mappings for converting shortcuts like WP: to Wikipedia:.
  */
-( function ( $ ) {
+( function ( $, mw ) {
 
        $.highlightText = {
 
@@ -29,7 +29,7 @@
                                // non latin characters can make regex think a new word has begun: do not use \b
                                // http://stackoverflow.com/questions/3787072/regex-wordwrap-with-utf8-characters-in-js
                                // look for an occurrence of our pattern and store the starting position
-                               match = node.data.match( new RegExp( '(^|\\s)' + $.escapeRE( pat ), 'i' ) );
+                               match = node.data.match( new RegExp( '(^|\\s)' + mw.RegExp.escape( pat ), 'i' ) );
                                if ( match ) {
                                        pos = match.index + match[1].length; // include length of any matched spaces
                                        // create the span wrapper for the matched text
@@ -70,4 +70,4 @@
                } );
        };
 
-}( jQuery ) );
+}( jQuery, mediaWiki ) );
index e6e33ad..5484212 100644 (file)
@@ -1,9 +1,11 @@
 /*
  * JavaScript backwards-compatibility alternatives and other convenience functions
+ *
+ * @deprecated since 1.26 Dated collection of miscellaneous utilities. Methods are
+ *  either trivially inline, obsolete, or have a better place elsewhere.
  */
-( function ( $ ) {
-
-       $.extend( {
+( function ( $, mw ) {
+       $.each( {
                trimLeft: function ( str ) {
                        return str === null ? '' : str.toString().replace( /^\s+/, '' );
                },
@@ -14,9 +16,6 @@
                ucFirst: function ( str ) {
                        return str.charAt( 0 ).toUpperCase() + str.slice( 1 );
                },
-               escapeRE: function ( str ) {
-                       return str.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' );
-               },
                isDomElement: function ( el ) {
                        return !!el && !!el.nodeType;
                },
@@ -28,7 +27,7 @@
                                return true;
                        }
                        // the for-loop could potentially contain prototypes
-                       // to avoid that we check it's length first
+                       // to avoid that we check its length first
                        if ( v.length === 0 ) {
                                return true;
                        }
                        }
                        return true;
                }
+       }, function ( key, value ) {
+               mw.log.deprecate( $, key, value );
        } );
 
-}( jQuery ) );
+       mw.log.deprecate( $, 'escapeRE', function ( str ) {
+               return str.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' );
+       }, 'Use mediawiki.RegExp instead.' );
+
+} )( jQuery, mediaWiki );
index 3278ad5..c8e3cb3 100644 (file)
                        // Construct regex for number identification
                        for ( i = 0; i < ascii.length; i++ ) {
                                ts.transformTable[localised[i]] = ascii[i];
-                               digits.push( $.escapeRE( localised[i] ) );
+                               digits.push( mw.RegExp.escape( localised[i] ) );
                        }
                }
                digitClass = '[' + digits.join( '', digits ) + ']';
                for ( i = 0; i < 12; i++ ) {
                        name = mw.language.months.names[i].toLowerCase();
                        ts.monthNames[name] = i + 1;
-                       regex.push( $.escapeRE( name ) );
+                       regex.push( mw.RegExp.escape( name ) );
                        name = mw.language.months.genitive[i].toLowerCase();
                        ts.monthNames[name] = i + 1;
-                       regex.push( $.escapeRE( name ) );
+                       regex.push( mw.RegExp.escape( name ) );
                        name = mw.language.months.abbrev[i].toLowerCase().replace( '.', '' );
                        ts.monthNames[name] = i + 1;
-                       regex.push( $.escapeRE( name ) );
+                       regex.push( mw.RegExp.escape( name ) );
                }
 
                // Build piped string
index 3657b12..6b8cb19 100644 (file)
@@ -952,13 +952,13 @@ ol:lang(fa) li,
 ol:lang(glk) li,
 ol:lang(kk-arab) li,
 ol:lang(lrc) li,
-ol:lang(mzn) li,
-ol:lang(sdh) li {
+ol:lang(mzn) li {
        list-style-type: -moz-persian;
        list-style-type: persian;
 }
 
-ol:lang(ckb) li {
+ol:lang(ckb) li,
+ol:lang(sdh) li {
        list-style-type: -moz-arabic-indic;
        list-style-type: arabic-indic;
 }
index d252f0e..50f280a 100644 (file)
@@ -86,7 +86,7 @@
                        if ( actionPaths.hasOwnProperty( key ) ) {
                                parts = actionPaths[key].split( '$1' );
                                for ( i = 0; i < parts.length; i++ ) {
-                                       parts[i] = $.escapeRE( parts[i] );
+                                       parts[i] = mw.RegExp.escape( parts[i] );
                                }
                                m = new RegExp( parts.join( '(.+)' ) ).exec( url );
                                if ( m && m[1] ) {
index 9c59fc1..6986034 100644 (file)
@@ -199,6 +199,11 @@ pre, .mw-code {
        background-color: #f9f9f9;
        border: 1px solid #ddd;
        padding: 1em;
+       /* @noflip */
+       direction: ltr;
+       unicode-bidi: embed;
+       /* Wrap lines in overflow. T103780 */
+       white-space: pre-wrap;
 }
 
 /* Tables */
index d0dfb28..ea1eb99 100644 (file)
                                fname = fname.replace( / /g, '_' );
                                // Capitalise first letter if needed
                                if ( mw.config.get( 'wgCapitalizeUploads' ) ) {
-                                       fname = fname.charAt( 0 ).toUpperCase().concat( fname.slice( 1 ) );
+                                       fname = fname[0].toUpperCase() + fname.slice( 1 );
                                }
 
                                // Output result
index 0065f70..2c24b2b 100644 (file)
@@ -1,10 +1,57 @@
 /*!
- * MediaWiki Widgets  TitleInputWidget styles.
+ * MediaWiki Widgets - TitleInputWidget styles.
  *
  * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
  * @license The MIT License (MIT); see LICENSE.txt
  */
 
-.mw-widget-TitleInputWidget {
-       width: 30em;
+.mw-widget-titleInputWidget-menu-withImages .mw-widget-titleOptionWidget {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       min-height: 3.75em;
+       margin-left: 3.75em;
+}
+
+.mw-widget-titleInputWidget-menu-withImages .mw-widget-titleOptionWidget:not(:last-child) {
+       margin-bottom: 1px;
+}
+
+.mw-widget-titleInputWidget-menu-withImages .oo-ui-iconElement .oo-ui-iconElement-icon {
+       display: block;
+       width: 3.75em;
+       height: 3.75em;
+       left: -3.75em;
+       background-color: #ccc;
+       opacity: 0.4;
+}
+
+.mw-widget-titleInputWidget-menu-withImages .oo-ui-iconElement .mw-widget-titleOptionWidget-hasImage {
+       border: 0;
+       background-size: cover;
+       opacity: 1;
+}
+
+.mw-widget-titleInputWidget-menu-withImages .mw-widget-titleOptionWidget .oo-ui-labelElement-label {
+       line-height: 2.8em;
+}
+
+.mw-widget-titleOptionWidget-description {
+       display: none;
+}
+
+.mw-widget-titleInputWidget-menu-withDescriptions .mw-widget-titleOptionWidget .oo-ui-labelElement-label {
+       line-height: 1.5em;
+}
+
+.mw-widget-titleInputWidget-menu-withDescriptions .mw-widget-titleOptionWidget-description {
+       display: block;
+       white-space: nowrap;
+       text-overflow: ellipsis;
+       overflow: hidden;
+}
+
+.oo-ui-menuOptionWidget:not(.oo-ui-optionWidget-selected) .mw-widget-titleOptionWidget-description,
+.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted .mw-widget-titleOptionWidget-description {
+       color: #888;
 }
index 1bc1d3d..221de0f 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * MediaWiki Widgets  TitleInputWidget class.
+ * MediaWiki Widgets - TitleInputWidget class.
  *
  * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
  * @license The MIT License (MIT); see LICENSE.txt
         *
         * @constructor
         * @param {Object} [config] Configuration options
+        * @cfg {number} [limit=10] Number of results to show
         * @cfg {number} [namespace] Namespace to prepend to queries
+        * @cfg {boolean} [showRedirectTargets=true] Show the targets of redirects
+        * @cfg {boolean} [showRedlink] Show red link to exact match if it doesn't exist
+        * @cfg {boolean} [showImages] Show page images
+        * @cfg {boolean} [showDescriptions] Show page descriptions
+        * @cfg {Object} [cache] Result cache which implements a 'set' method, taking keyed values as an argument
         */
-       mw.widgets.TitleInputWidget = function MWWTitleInputWidget( config ) {
+       mw.widgets.TitleInputWidget = function MwWidgetsTitleInputWidget( config ) {
+               var widget = this;
+
                // Config initialization
                config = config || {};
 
                OO.ui.mixin.LookupElement.call( this, config );
 
                // Properties
+               this.limit = config.limit || 10;
                this.namespace = config.namespace || null;
+               this.showRedirectTargets = config.showRedirectTargets !== false;
+               this.showRedlink = !!config.showRedlink;
+               this.showImages = !!config.showImages;
+               this.showDescriptions = !!config.showDescriptions;
+               this.cache = config.cache;
 
                // Initialization
-               this.$element.addClass( 'mw-widget-TitleInputWidget' );
-               this.lookupMenu.$element.addClass( 'mw-widget-TitleInputWidget-menu' );
+               this.$element.addClass( 'mw-widget-titleInputWidget' );
+               this.lookupMenu.$element.addClass( 'mw-widget-titleInputWidget-menu' );
+               if ( this.showImages ) {
+                       this.lookupMenu.$element.addClass( 'mw-widget-titleInputWidget-menu-withImages' );
+               }
+               if ( this.showDescriptions ) {
+                       this.lookupMenu.$element.addClass( 'mw-widget-titleInputWidget-menu-withDescriptions' );
+               }
+
+               this.interwikiPrefixes = [];
+               this.interwikiPrefixesPromise = new mw.Api().get( {
+                       action: 'query',
+                       meta: 'siteinfo',
+                       siprop: 'interwikimap'
+               } ).done( function ( data ) {
+                       $.each( data.query.interwikimap, function ( index, interwiki ) {
+                               widget.interwikiPrefixes.push( interwiki.prefix );
+                       } );
+               } );
        };
 
        /* Inheritance */
        /**
         * @inheritdoc
         */
-       mw.widgets.TitleInputWidget.prototype.getLookupRequest = function () {
-               var value = this.value;
+       mw.widgets.TitleInputWidget.prototype.focus = function () {
+               var retval;
 
-               // Prefix with default namespace name
-               if ( this.namespace !== null && mw.Title.newFromText( value, this.namespace ) ) {
-                       value = mw.Title.newFromText( value, this.namespace ).getPrefixedText();
-               }
+               // Prevent programmatic focus from opening the menu
+               this.setLookupsDisabled( true );
 
-               // Dont send leading ':' to open search
-               if ( value.charAt( 0 ) === ':' ) {
-                       value = value.slice( 1 );
-               }
+               // Parent method
+               retval = OO.ui.TextInputWidget.prototype.focus.apply( this, arguments );
 
-               return new mw.Api().get( {
-                       action: 'opensearch',
-                       search: value,
-                       suggest: ''
-               } );
+               this.setLookupsDisabled( false );
+
+               return retval;
        };
 
        /**
         * @inheritdoc
         */
+       mw.widgets.TitleInputWidget.prototype.getLookupRequest = function () {
+               var req,
+                       widget = this,
+                       promiseAbortObject = { abort: function () {
+                               // Do nothing. This is just so OOUI doesn't break due to abort being undefined.
+                       } };
+
+               if ( mw.Title.newFromText( this.value ) ) {
+                       return this.interwikiPrefixesPromise.then( function () {
+                               var params, props,
+                                       interwiki = widget.value.substring( 0, widget.value.indexOf( ':' ) );
+                               if (
+                                       interwiki && interwiki !== '' &&
+                                       widget.interwikiPrefixes.indexOf( interwiki ) !== -1
+                               ) {
+                                       return $.Deferred().resolve( { query: {
+                                               pages: [{
+                                                       title: widget.value
+                                               }]
+                                       } } ).promise( promiseAbortObject );
+                               } else {
+                                       params = {
+                                               action: 'query',
+                                               generator: 'prefixsearch',
+                                               gpssearch: widget.value,
+                                               gpsnamespace: widget.namespace !== null ? widget.namespace : undefined,
+                                               gpslimit: widget.limit,
+                                               ppprop: 'disambiguation'
+                                       };
+                                       props = [ 'info', 'pageprops' ];
+                                       if ( widget.showRedirectTargets ) {
+                                               params.redirects = '1';
+                                       }
+                                       if ( widget.showImages ) {
+                                               props.push( 'pageimages' );
+                                               params.pithumbsize = 80;
+                                               params.pilimit = widget.limit;
+                                       }
+                                       if ( widget.showDescriptions ) {
+                                               props.push( 'pageterms' );
+                                               params.wbptterms = 'description';
+                                       }
+                                       params.prop = props.join( '|' );
+                                       req = new mw.Api().get( params );
+                                       promiseAbortObject.abort = req.abort.bind( req ); // todo: ew
+                                       return req;
+                               }
+                       } ).promise( promiseAbortObject );
+               } else {
+                       // Don't send invalid titles to the API.
+                       // Just pretend it returned nothing so we can show the 'invalid title' section
+                       return $.Deferred().resolve( {} ).promise( promiseAbortObject );
+               }
+       };
+
+       /**
+        * Get lookup cache item from server response data.
+        *
+        * @method
+        * @param {Mixed} data Response from server
+        */
        mw.widgets.TitleInputWidget.prototype.getLookupCacheDataFromResponse = function ( data ) {
-               return data[1] || [];
+               return data.query || {};
        };
 
        /**
-        * @inheritdoc
+        * Get list of menu items from a server response.
+        *
+        * @param {Object} data Query result
+        * @returns {OO.ui.MenuOptionWidget[]} Menu items
         */
        mw.widgets.TitleInputWidget.prototype.getLookupMenuOptionsFromData = function ( data ) {
-               var i, len, title, value,
+               var i, len, index, pageExists, pageExistsExact, suggestionPage, page, redirect, redirects,
                        items = [],
-                       matchingPages = data;
-
-               // Matching pages
-               if ( matchingPages && matchingPages.length ) {
-                       for ( i = 0, len = matchingPages.length; i < len; i++ ) {
-                               title = new mw.Title( matchingPages[i] );
-                               if ( this.namespace !== null ) {
-                                       value = title.getRelativeText( this.namespace );
-                               } else {
-                                       value = title.getPrefixedText();
-                               }
-                               items.push( new OO.ui.MenuOptionWidget( {
-                                       data: value,
-                                       label: value
-                               } ) );
+                       titles = [],
+                       titleObj = mw.Title.newFromText( this.value ),
+                       redirectsTo = {},
+                       pageData = {};
+
+               if ( data.redirects ) {
+                       for ( i = 0, len = data.redirects.length; i < len; i++ ) {
+                               redirect = data.redirects[i];
+                               redirectsTo[redirect.to] = redirectsTo[redirect.to] || [];
+                               redirectsTo[redirect.to].push( redirect.from );
+                       }
+               }
+
+               for ( index in data.pages ) {
+                       suggestionPage = data.pages[index];
+                       pageData[suggestionPage.title] = {
+                               missing: suggestionPage.missing !== undefined,
+                               redirect: suggestionPage.redirect !== undefined,
+                               disambiguation: OO.getProp( suggestionPage, 'pageprops', 'disambiguation' ) !== undefined,
+                               imageUrl: OO.getProp( suggestionPage, 'thumbnail', 'source' ),
+                               description: OO.getProp( suggestionPage, 'terms', 'description' )
+                       };
+                       titles.push( suggestionPage.title );
+
+                       redirects = redirectsTo[suggestionPage.title] || [];
+                       for ( i = 0, len = redirects.length; i < len; i++ ) {
+                               pageData[redirects[i]] = {
+                                       missing: false,
+                                       redirect: true,
+                                       disambiguation: false,
+                                       description: mw.msg( 'mw-widgets-titleinput-description-redirect', suggestionPage.title )
+                               };
+                               titles.push( redirects[i] );
                        }
                }
 
+               // If not found, run value through mw.Title to avoid treating a match as a
+               // mismatch where normalisation would make them matching (bug 48476)
+
+               pageExistsExact = titles.indexOf( this.value ) !== -1;
+               pageExists = pageExistsExact || (
+                       titleObj && titles.indexOf( titleObj.getPrefixedText() ) !== -1
+               );
+
+               if ( !pageExists ) {
+                       pageData[this.value] = {
+                               missing: true, redirect: false, disambiguation: false,
+                               description: mw.msg( 'mw-widgets-titleinput-description-new-page' )
+                       };
+               }
+
+               if ( this.cache ) {
+                       this.cache.set( pageData );
+               }
+
+               // Offer the exact text as a suggestion if the page exists
+               if ( pageExists && !pageExistsExact ) {
+                       titles.unshift( this.value );
+               }
+               // Offer the exact text as a new page if the title is valid
+               if ( this.showRedlink && !pageExists && titleObj ) {
+                       titles.push( this.value );
+               }
+               for ( i = 0, len = titles.length; i < len; i++ ) {
+                       page = pageData[titles[i]] || {};
+                       items.push( new mw.widgets.TitleOptionWidget( this.getOptionWidgetData( titles[i], page ) ) );
+               }
+
                return items;
        };
 
+       /**
+        * Get menu option widget data from the title and page data
+        *
+        * @param {mw.Title} title Title object
+        * @param {Object} data Page data
+        * @return {Object} Data for option widget
+        */
+       mw.widgets.TitleInputWidget.prototype.getOptionWidgetData = function ( title, data ) {
+               var mwTitle = new mw.Title( title );
+               return {
+                       data: this.namespace !== null ? mwTitle.getRelativeText( this.namespace ) : title,
+                       imageUrl: this.showImages ? data.imageUrl : null,
+                       description: this.showDescriptions ? data.description : null,
+                       missing: data.missing,
+                       redirect: data.redirect,
+                       disambiguation: data.disambiguation,
+                       query: this.value
+               };
+       };
+
        /**
         * Get title object corresponding to #getValue
         *
diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js
new file mode 100644 (file)
index 0000000..07b81e4
--- /dev/null
@@ -0,0 +1,81 @@
+/*!
+ * MediaWiki Widgets - TitleOptionWidget class.
+ *
+ * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+( function ( $, mw ) {
+
+       /**
+        * Creates a mw.widgets.TitleOptionWidget object.
+        *
+        * @class
+        * @extends OO.ui.MenuOptionWidget
+        *
+        * @constructor
+        * @param {Object} [config] Configuration options
+        * @cfg {string} [data] Page title
+        * @cfg {string} [imageUrl] Thumbnail image URL with URL encoding
+        * @cfg {string} [description] Page description
+        * @cfg {boolean} [missing] Page doesn't exist
+        * @cfg {boolean} [redirect] Page is a redirect
+        * @cfg {boolean} [disambiguation] Page is a disambiguation page
+        * @cfg {string} [query] Matching query string
+        */
+       mw.widgets.TitleOptionWidget = function MwWidgetsTitleOptionWidget( config ) {
+               var icon, title = config.data;
+
+               if ( config.missing ) {
+                       icon = 'page-not-found';
+               } else if ( config.redirect ) {
+                       icon = 'page-redirect';
+               } else if ( config.disambiguation ) {
+                       icon = 'page-disambiguation';
+               } else {
+                       icon = 'page-existing';
+               }
+
+               // Config initialization
+               config = $.extend( {
+                       icon: icon,
+                       label: title,
+                       href: mw.util.getUrl( title ),
+                       autoFitLabel: false
+               }, config );
+
+               // Parent constructor
+               OO.ui.MenuOptionWidget.call( this, config );
+
+               // Intialization
+               this.$label.wrap( '<a>' );
+               this.$link = this.$label.parent();
+               this.$link.attr( 'href', config.href );
+               this.$element.addClass( 'mw-widget-titleOptionWidget' );
+
+               // Highlight matching parts of link suggestion
+               this.$label.autoEllipsis( { hasSpan: false, tooltip: true, matchText: config.query } );
+
+               if ( config.missing ) {
+                       this.$link.addClass( 'new' );
+               }
+
+               if ( config.imageUrl ) {
+                       this.$icon
+                               .addClass( 'mw-widget-titleOptionWidget-hasImage' )
+                               .css( 'background-image', 'url(' + config.imageUrl + ')' );
+               }
+
+               if ( config.description ) {
+                       this.$element.append(
+                               $( '<span>' )
+                                       .addClass( 'mw-widget-titleOptionWidget-description' )
+                                       .text( config.description )
+                       );
+               }
+       };
+
+       /* Inheritance */
+
+       OO.inheritClass( mw.widgets.TitleOptionWidget, OO.ui.MenuOptionWidget );
+
+}( jQuery, mediaWiki ) );
diff --git a/resources/src/mediawiki/mediawiki.RegExp.js b/resources/src/mediawiki/mediawiki.RegExp.js
new file mode 100644 (file)
index 0000000..1da4ab4
--- /dev/null
@@ -0,0 +1,22 @@
+( function ( mw ) {
+       /**
+        * @class mw.RegExp
+        */
+       mw.RegExp = {
+               /**
+                * Escape string for safe inclusion in regular expression
+                *
+                * The following characters are escaped:
+                *
+                *     \ { } ( ) | . ? * + - ^ $ [ ]
+                *
+                * @since 1.26
+                * @static
+                * @param {string} str String to escape
+                * @return {string} Escaped string
+                */
+               escape: function ( str ) {
+                       return str.replace( /([\\{}()|.?*+\-\^$\[\]])/g, '\\$1' );
+               }
+       };
+}( mediaWiki ) );
index 3efb7ec..e46eca5 100644 (file)
                        .replace( rUnderscoreTrim, '' );
 
                // Process initial colon
-               if ( title !== '' && title.charAt( 0 ) === ':' ) {
+               if ( title !== '' && title[0] === ':' ) {
                        // Initial colon means main namespace instead of specified default
                        namespace = NS_MAIN;
                        title = title
                }
 
                // Any remaining initial :s are illegal.
-               if ( title.charAt( 0 ) === ':' ) {
+               if ( title[0] === ':' ) {
                        return false;
                }
 
                title = $.trim( title.replace( rWhitespace, ' ' ) );
 
                // Process initial colon
-               if ( title !== '' && title.charAt( 0 ) === ':' ) {
+               if ( title !== '' && title[0] === ':' ) {
                        // Initial colon means main namespace instead of specified default
                        namespace = NS_MAIN;
                        title = title
                getName: function () {
                        if ( $.inArray( this.namespace, mw.config.get( 'wgCaseSensitiveNamespaces' ) ) !== -1 ) {
                                return this.title;
-                       } else {
-                               return $.ucFirst( this.title );
                        }
+                       return this.title[0].toUpperCase() + this.title.slice( 1 );
                },
 
                /**
index abfb279..07d8900 100644 (file)
                                        this.port = defaultUri.port;
                                }
                        }
-                       if ( this.path && this.path.charAt( 0 ) !== '/' ) {
+                       if ( this.path && this.path[0] !== '/' ) {
                                // A real relative URL, relative to defaultUri.path. We can't really handle that since we cannot
                                // figure out whether the last path component of defaultUri.path is a directory or a file.
                                throw new Error( 'Bad constructor arguments' );
index 4a4a97e..7fdaa6e 100644 (file)
                        $ul = $( this ).prev( 'ul.mw-htmlform-cloner-ul' );
 
                        html = $ul.data( 'template' ).replace(
-                               new RegExp( $.escapeRE( $ul.data( 'uniqueId' ) ), 'g' ),
+                               new RegExp( mw.RegExp.escape( $ul.data( 'uniqueId' ) ), 'g' ),
                                'clone' + ( ++cloneCounter )
                        );
 
index 22d3cbb..31cd6c4 100644 (file)
                 */
                grep: function ( pattern ) {
                        if ( typeof pattern.test !== 'function' ) {
-                               // Based on Y.Escape.regex from YUI v3.15.0
-                               pattern = new RegExp( pattern.replace( /[\-$\^*()+\[\]{}|\\,.?\s]/g, '\\$&' ), 'g' );
+                               pattern = new RegExp( mw.RegExp.escape( pattern ), 'g' );
                        }
 
                        return $.grep( inspect.getLoadedModules(), function ( moduleName ) {
index 3964f0b..df10204 100644 (file)
@@ -15,7 +15,7 @@
                                list: 'allusers',
                                // Prefix of list=allusers is case sensitive. Normalise first
                                // character to uppercase so that "fo" may yield "Foo".
-                               auprefix: userInput.charAt( 0 ).toUpperCase() + userInput.slice( 1 ),
+                               auprefix: userInput[0].toUpperCase() + userInput.slice( 1 ),
                                aulimit: maxRows
                        } ).done( function ( data ) {
                                var users = $.map( data.query.allusers, function ( userObj ) {
index 6723e5f..13bf455 100644 (file)
                                url = location.href;
                        }
                        // Get last match, stop at hash
-                       var     re = new RegExp( '^[^#]*[&?]' + $.escapeRE( param ) + '=([^&#]*)' ),
+                       var     re = new RegExp( '^[^#]*[&?]' + mw.RegExp.escape( param ) + '=([^&#]*)' ),
                                m = re.exec( url );
                        if ( m ) {
                                // Beware that decodeURIComponent is not required to understand '+'
index 2682ee1..c3019c9 100644 (file)
@@ -114,6 +114,7 @@ $wgAutoloadClasses += array(
        'MockImageHandler' => "$testDir/phpunit/mocks/media/MockImageHandler.php",
        'MockSvgHandler' => "$testDir/phpunit/mocks/media/MockSvgHandler.php",
        'MockDjVuHandler' => "$testDir/phpunit/mocks/media/MockDjVuHandler.php",
+       'MockWebRequest' => "$testDir/phpunit/mocks/MockWebRequest.php",
 
        # tests/parser
        'NewParserTest' => "$testDir/phpunit/includes/parser/NewParserTest.php",
index 2ee805e..3665e3c 100644 (file)
@@ -3193,13 +3193,6 @@ About
 &lt;/td&gt;&lt;td&gt;
 <template lineStart="1"><title>int:Nstab-wp</title></template>
 &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
-[http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:Nviews&amp;action=edit nviews]&lt;br&gt;
-[[MediaWiki_talk:Nviews|Talk]]
-&lt;/td&gt;&lt;td&gt;
-$1 views
-&lt;/td&gt;&lt;td&gt;
-<template lineStart="1"><title>int:Nviews</title></template>
-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
 [http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:Ok&amp;action=edit ok]&lt;br&gt;
 [[MediaWiki_talk:Ok|Talk]]
 &lt;/td&gt;&lt;td&gt;
@@ -3319,13 +3312,6 @@ Personal tools
 &lt;/td&gt;&lt;td&gt;
 <template lineStart="1"><title>int:Personaltools</title></template>
 &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
-[http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:Popularpages&amp;action=edit popularpages]&lt;br&gt;
-[[MediaWiki_talk:Popularpages|Talk]]
-&lt;/td&gt;&lt;td&gt;
-Popular pages
-&lt;/td&gt;&lt;td&gt;
-<template lineStart="1"><title>int:Popularpages</title></template>
-&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
 [http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:Portal&amp;action=edit portal]&lt;br&gt;
 [[MediaWiki_talk:Portal|Talk]]
 &lt;/td&gt;&lt;td&gt;
index 4a30f56..c619df7 100644 (file)
@@ -3193,13 +3193,6 @@ About
 </td><td>
 {{int:Nstab-wp}}
 </td></tr><tr><td>
-[http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:Nviews&action=edit nviews]<br>
-[[MediaWiki_talk:Nviews|Talk]]
-</td><td>
-$1 views
-</td><td>
-{{int:Nviews}}
-</td></tr><tr><td>
 [http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:Ok&action=edit ok]<br>
 [[MediaWiki_talk:Ok|Talk]]
 </td><td>
@@ -3319,13 +3312,6 @@ Personal tools
 </td><td>
 {{int:Personaltools}}
 </td></tr><tr><td>
-[http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:Popularpages&action=edit popularpages]<br>
-[[MediaWiki_talk:Popularpages|Talk]]
-</td><td>
-Popular pages
-</td><td>
-{{int:Popularpages}}
-</td></tr><tr><td>
 [http://tl.wiktionary.org/w/wiki.phtml?title=MediaWiki:Portal&action=edit portal]<br>
 [[MediaWiki_talk:Portal|Talk]]
 </td><td>
diff --git a/tests/phpunit/data/media/srgb.jpg b/tests/phpunit/data/media/srgb.jpg
new file mode 100644 (file)
index 0000000..b965dc4
Binary files /dev/null and b/tests/phpunit/data/media/srgb.jpg differ
diff --git a/tests/phpunit/data/media/tinyrgb.icc b/tests/phpunit/data/media/tinyrgb.icc
new file mode 100644 (file)
index 0000000..eab973f
Binary files /dev/null and b/tests/phpunit/data/media/tinyrgb.icc differ
diff --git a/tests/phpunit/data/media/tinyrgb.jpg b/tests/phpunit/data/media/tinyrgb.jpg
new file mode 100644 (file)
index 0000000..12a8e09
Binary files /dev/null and b/tests/phpunit/data/media/tinyrgb.jpg differ
index 5c28ece..e89e36f 100644 (file)
@@ -687,6 +687,105 @@ class GlobalTest extends MediaWikiTestCase {
                $this->assertEquals( $expected, $actual, $description );
        }
 
+       public function wfWikiID() {
+               $this->setMwGlobals( array(
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => '',
+               ) );
+               $this->assertEquals(
+                       wfWikiID(),
+                       'example'
+               );
+
+               $this->setMwGlobals( array(
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => 'mw_',
+               ) );
+               $this->assertEquals(
+                       wfWikiID(),
+                       'example-mw_'
+               );
+       }
+
+       public function testWfMemcKey() {
+               // Just assert the exact output so we can catch unintentional changes to key
+               // construction, which would effectively invalidate all existing cache.
+
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => false,
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => '',
+               ) );
+               $this->assertEquals(
+                       wfMemcKey( 'foo', '123', 'bar' ),
+                       'example:foo:123:bar'
+               );
+
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => false,
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => 'mw_',
+               ) );
+               $this->assertEquals(
+                       wfMemcKey( 'foo', '123', 'bar' ),
+                       'example-mw_:foo:123:bar'
+               );
+
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => 'custom',
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => 'mw_',
+               ) );
+               $this->assertEquals(
+                       wfMemcKey( 'foo', '123', 'bar' ),
+                       'custom:foo:123:bar'
+               );
+       }
+
+       public function testWfForeignMemcKey() {
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => false,
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => '',
+               ) );
+               $local = wfMemcKey( 'foo', 'bar' );
+
+               $this->setMwGlobals( array(
+                       'wgDBname' => 'other',
+                       'wgDBprefix' => 'mw_',
+               ) );
+               $this->assertEquals(
+                       wfForeignMemcKey( 'example', '', 'foo', 'bar' ),
+                       $local,
+                       'Match output of wfMemcKey from local wiki'
+               );
+       }
+
+       public function testWfGlobalCacheKey() {
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => 'ignored',
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => ''
+               ) );
+               $one = wfGlobalCacheKey( 'some', 'thing' );
+               $this->assertEquals(
+                       $one,
+                       'global:some:thing'
+               );
+
+               $this->setMwGlobals( array(
+                       'wgDBname' => 'other',
+                       'wgDBprefix' => 'mw_'
+               ) );
+               $two = wfGlobalCacheKey( 'some', 'thing' );
+
+               $this->assertEquals(
+                       $one,
+                       $two,
+                       'Not fragmented by wiki id'
+               );
+       }
+
        public static function provideWfShellWikiCmdList() {
                global $wgPhpCli;
 
diff --git a/tests/phpunit/includes/MediaWikiTest.php b/tests/phpunit/includes/MediaWikiTest.php
new file mode 100644 (file)
index 0000000..df94d3e
--- /dev/null
@@ -0,0 +1,157 @@
+<?php
+
+class MediaWikiTest extends MediaWikiTestCase {
+       protected function setUp() {
+               parent::setUp();
+
+               $this->setMwGlobals( array(
+                       'wgServer' => 'http://example.org',
+                       'wgScriptPath' => '/w',
+                       'wgScript' => '/w/index.php',
+                       'wgArticlePath' => '/wiki/$1',
+                       'wgActionPaths' => array(),
+               ) );
+       }
+
+       public static function provideTryNormaliseRedirect() {
+               return array(
+                       array(
+                               // View: Canonical
+                               'url' => 'http://example.org/wiki/Foo_Bar',
+                               'query' => array(),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+                       array(
+                               // View: Escaped title
+                               'url' => 'http://example.org/wiki/Foo%20Bar',
+                               'query' => array(),
+                               'title' => 'Foo_Bar',
+                               'redirect' => 'http://example.org/wiki/Foo_Bar',
+                       ),
+                       array(
+                               // View: Script path
+                               'url' => 'http://example.org/w/index.php?title=Foo_Bar',
+                               'query' => array( 'title' => 'Foo_Bar' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+                       array(
+                               // View: Script path with implicit title from page id
+                               'url' => 'http://example.org/w/index.php?curid=123',
+                               'query' => array( 'curid' => '123' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+                       array(
+                               // View: Script path with implicit title from revision id
+                               'url' => 'http://example.org/w/index.php?oldid=123',
+                               'query' => array( 'oldid' => '123' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+                       array(
+                               // View: Script path without title
+                               'url' => 'http://example.org/w/index.php',
+                               'query' => array(),
+                               'title' => 'Main_Page',
+                               'redirect' => 'http://example.org/wiki/Main_Page',
+                       ),
+                       array(
+                               // View: Script path with empty title
+                               'url' => 'http://example.org/w/index.php?title=',
+                               'query' => array( 'title' => '' ),
+                               'title' => 'Main_Page',
+                               'redirect' => 'http://example.org/wiki/Main_Page',
+                       ),
+                       array(
+                               // View: Index with escaped title
+                               'url' => 'http://example.org/w/index.php?title=Foo%20Bar',
+                               'query' => array( 'title' => 'Foo Bar' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => 'http://example.org/wiki/Foo_Bar',
+                       ),
+                       array(
+                               // View: Script path with escaped title
+                               'url' => 'http://example.org/w/?title=Foo_Bar',
+                               'query' => array( 'title' => 'Foo_Bar' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+                       array(
+                               // View: Root path with escaped title
+                               'url' => 'http://example.org/?title=Foo_Bar',
+                               'query' => array( 'title' => 'Foo_Bar' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+                       array(
+                               // View: Canonical with redundant query
+                               'url' => 'http://example.org/wiki/Foo_Bar?action=view',
+                               'query' => array( 'action' => 'view' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+                       array(
+                               // Edit: Canonical view url with action query
+                               'url' => 'http://example.org/wiki/Foo_Bar?action=edit',
+                               'query' => array( 'action' => 'edit' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+                       array(
+                               // View: Index with action query
+                               'url' => 'http://example.org/w/index.php?title=Foo_Bar&action=view',
+                               'query' => array( 'title' => 'Foo_Bar', 'action' => 'view' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+                       array(
+                               // Edit: Index with action query
+                               'url' => 'http://example.org/w/index.php?title=Foo_Bar&action=edit',
+                               'query' => array( 'title' => 'Foo_Bar', 'action' => 'edit' ),
+                               'title' => 'Foo_Bar',
+                               'redirect' => false,
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideTryNormaliseRedirect
+        * @covers MediaWiki::tryNormaliseRedirect
+        */
+       public function testTryNormaliseRedirect( $url, $query, $title, $expectedRedirect = false ) {
+               // Set SERVER because interpolateTitle() doesn't use getRequestURL(),
+               // whereas tryNormaliseRedirect does().
+               $_SERVER['REQUEST_URI'] = $url;
+
+               $req = new FauxRequest( $query );
+               $req->setRequestURL( $url );
+               // This adds a virtual 'title' query parameter. Normally called from Setup.php
+               $req->interpolateTitle();
+
+               $titleObj = Title::newFromText( $title );
+
+               // Set global context since some involved code paths don't yet have context
+               $context = RequestContext::getMain();
+               $context->setRequest( $req );
+               $context->setTitle( $titleObj );
+
+               $mw = new MediaWiki( $context );
+
+               $method = new ReflectionMethod( $mw, 'tryNormaliseRedirect' );
+               $method->setAccessible( true );
+               $ret = $method->invoke( $mw, $titleObj );
+
+               $this->assertEquals(
+                       $expectedRedirect !== false,
+                       $ret,
+                       'Return true only when redirecting'
+               );
+
+               $this->assertEquals(
+                       $expectedRedirect ?: '',
+                       $context->getOutput()->getRedirect()
+               );
+       }
+}
index a1f8361..77132bb 100644 (file)
@@ -466,4 +466,89 @@ class UserTest extends MediaWikiTestCase {
                $this->assertGreaterThan(
                        $touched, $user->getDBTouched(), "user_touched increased with casOnTouched() #2" );
        }
+
+       public static function setExtendedLoginCookieDataProvider() {
+               $data = array();
+               $now = time();
+
+               $secondsInDay = 86400;
+
+               // Arbitrary durations, in units of days, to ensure it chooses the
+               // right one.  There is a 5-minute grace period (see testSetExtendedLoginCookie)
+               // to work around slow tests, since we're not currently mocking time() for PHP.
+
+               $durationOne = $secondsInDay * 5;
+               $durationTwo = $secondsInDay * 29;
+               $durationThree = $secondsInDay * 17;
+
+               // If $wgExtendedLoginCookieExpiration is null, then the expiry passed to
+               // set cookie is time() + $wgCookieExpiration
+               $data[] = array(
+                       null,
+                       $durationOne,
+                       $now + $durationOne,
+               );
+
+               // If $wgExtendedLoginCookieExpiration isn't null, then the expiry passed to
+               // set cookie is $now + $wgExtendedLoginCookieExpiration
+               $data[] = array(
+                       $durationTwo,
+                       $durationThree,
+                       $now + $durationTwo,
+               );
+
+               return $data;
+       }
+
+       /**
+        * @dataProvider setExtendedLoginCookieDataProvider
+        * @covers User::getRequest
+        * @covers User::setCookie
+        * @backupGlobals enabled
+        */
+       public function testSetExtendedLoginCookie(
+               $extendedLoginCookieExpiration,
+               $cookieExpiration,
+               $expectedExpiry
+       ) {
+               $this->setMwGlobals( array(
+                       'wgExtendedLoginCookieExpiration' => $extendedLoginCookieExpiration,
+                       'wgCookieExpiration' => $cookieExpiration,
+               ) );
+
+               $response = $this->getMock( 'WebResponse' );
+               $setcookieSpy = $this->any();
+               $response->expects( $setcookieSpy )
+                       ->method( 'setcookie' );
+
+               $request = new MockWebRequest( $response );
+               $user = new UserProxy( User::newFromSession( $request ) );
+               $user->setExtendedLoginCookie( 'name', 'value', true );
+
+               $setcookieInvocations = $setcookieSpy->getInvocations();
+               $setcookieInvocation = end( $setcookieInvocations );
+               $actualExpiry = $setcookieInvocation->parameters[ 2 ];
+
+               // TODO: ± 300 seconds compensates for
+               // slow-running tests. However, the dependency on the time
+               // function should be removed.  This requires some way
+               // to mock/isolate User->setExtendedLoginCookie's call to time()
+               $this->assertEquals( $expectedExpiry, $actualExpiry, '', 300 );
+       }
+}
+
+class UserProxy extends User {
+
+       /**
+        * @var User
+        */
+       protected $user;
+
+       public function __construct( User $user ) {
+               $this->user = $user;
+       }
+
+       public function setExtendedLoginCookie( $name, $value, $secure ) {
+               $this->user->setExtendedLoginCookie( $name, $value, $secure );
+       }
 }
index ce2f70d..db61bc8 100644 (file)
@@ -57,10 +57,9 @@ abstract class ApiQueryContinueTestBase extends ApiQueryTestBase {
                } else {
                        $params['action'] = 'query';
                }
-               if ( $useContinue && !isset( $params['continue'] ) ) {
+               // Silence warning
+               if ( !isset( $params['continue'] ) ) {
                        $params['continue'] = '';
-               } else {
-                       $params['rawcontinue'] = '1';
                }
                $count = 0;
                $result = array();
index 9e830f2..d5fa454 100644 (file)
@@ -87,6 +87,7 @@ STR;
 
        /**
         * Checks that the request's result matches the expected results.
+        * Assumes no rawcontinue and a complete batch.
         * @param array $values Array is a two element array( request, expected_results )
         * @param array $session
         * @param bool $appendModule
@@ -99,8 +100,9 @@ STR;
                if ( !array_key_exists( 'action', $req ) ) {
                        $req['action'] = 'query';
                }
-               if ( !array_key_exists( 'continue', $req ) ) {
-                       $req['rawcontinue'] = '1';
+               // Silence warning
+               if ( !isset( $params['continue'] ) ) {
+                       $params['continue'] = '';
                }
                foreach ( $req as &$val ) {
                        if ( is_array( $val ) ) {
@@ -108,7 +110,7 @@ STR;
                        }
                }
                $result = $this->doApiRequest( $req, $session, $appendModule, $user );
-               $this->assertResult( array( 'query' => $exp ), $result[0], $req );
+               $this->assertResult( array( 'batchcomplete' => true, 'query' => $exp ), $result[0], $req );
        }
 
        protected function assertResult( $exp, $result, $message = '' ) {
index 41330f4..adbc977 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * @group Media
  */
-class ExifBitmapTest extends MediaWikiTestCase {
+class ExifBitmapTest extends MediaWikiMediaTestCase {
 
        /**
         * @var ExifBitmapHandler
@@ -143,4 +143,41 @@ class ExifBitmapTest extends MediaWikiTestCase {
                $res = $this->handler->convertMetadataVersion( $metadata, 1 );
                $this->assertEquals( $expected, $res );
        }
+
+       /**
+        * @dataProvider provideSwappingICCProfile
+        * @covers BitmapHandler::swapICCProfile
+        */
+       public function testSwappingICCProfile( $sourceFilename, $controlFilename, $newProfileFilename, $oldProfileName ) {
+               global $wgExiftool;
+
+               if ( !$wgExiftool || !is_file( $wgExiftool ) ) {
+                       $this->markTestSkipped( "Exiftool not installed, cannot test ICC profile swapping" );
+               }
+
+               $this->setMwGlobals( 'wgUseTinyRGBForJPGThumbnails', true );
+
+               $sourceFilepath = $this->filePath . $sourceFilename;
+               $controlFilepath = $this->filePath . $controlFilename;
+               $profileFilepath = $this->filePath . $newProfileFilename;
+               $filepath = $this->getNewTempFile();
+
+               copy( $sourceFilepath, $filepath );
+
+               $file = $this->dataFile( $sourceFilename, 'image/jpeg' );
+               $this->handler->swapICCProfile( $filepath, $oldProfileName, $profileFilepath );
+
+               $this->assertEquals( sha1( file_get_contents( $filepath ) ), sha1( file_get_contents( $controlFilepath ) ) );
+       }
+
+       public function provideSwappingICCProfile() {
+               return array(
+                       // File with sRGB should end up with TinyRGB
+                       array( 'srgb.jpg', 'tinyrgb.jpg', 'tinyrgb.icc', 'IEC 61966-2.1 Default RGB colour space - sRGB' ),
+                       // File with TinyRGB should be left unchanged
+                       array( 'tinyrgb.jpg', 'tinyrgb.jpg', 'tinyrgb.icc', 'IEC 61966-2.1 Default RGB colour space - sRGB' ),
+                       // File with no profile should be left unchanged
+                       array( 'test.jpg', 'test.jpg', 'tinyrgb.icc', 'IEC 61966-2.1 Default RGB colour space - sRGB' )
+               );
+       }
 }
diff --git a/tests/phpunit/includes/objectcache/ReplicatedBagOStuffTest.php b/tests/phpunit/includes/objectcache/ReplicatedBagOStuffTest.php
new file mode 100644 (file)
index 0000000..a419f5b
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+
+class ReplicatedBagOStuffTest extends MediaWikiTestCase {
+       /** @var HashBagOStuff */
+       private $writeCache;
+       /** @var HashBagOStuff */
+       private $readCache;
+       /** @var ReplicatedBagOStuff */
+       private $cache;
+
+       protected function setUp() {
+               parent::setUp();
+
+               $this->writeCache = new HashBagOStuff();
+               $this->readCache = new HashBagOStuff();
+               $this->cache = new ReplicatedBagOStuff( array(
+                       'writeFactory' => $this->writeCache,
+                       'readFactory' => $this->readCache,
+               ) );
+       }
+
+       /**
+        * @covers ReplicatedBagOStuff::set
+        */
+       public function testSet() {
+               $key = wfRandomString();
+               $value = wfRandomString();
+               $this->cache->set( $key, $value );
+
+               // Write to master.
+               $this->assertEquals( $this->writeCache->get( $key ), $value );
+               // Don't write to slave. Replication is deferred to backend.
+               $this->assertEquals( $this->readCache->get( $key ), false );
+       }
+
+       /**
+        * @covers ReplicatedBagOStuff::get
+        */
+       public function testGet() {
+               $key = wfRandomString();
+
+               $write = wfRandomString();
+               $this->writeCache->set( $key, $write );
+               $read = wfRandomString();
+               $this->readCache->set( $key, $read );
+
+               // Read from slave.
+               $this->assertEquals( $this->cache->get( $key ), $read );
+       }
+
+       /**
+        * @covers ReplicatedBagOStuff::get
+        */
+       public function testGetAbsent() {
+               $key = wfRandomString();
+               $value = wfRandomString();
+               $this->writeCache->set( $key, $value );
+
+               // Don't read from master. No failover if value is absent.
+               $this->assertEquals( $this->cache->get( $key ), false );
+       }
+}
diff --git a/tests/phpunit/mocks/MockWebRequest.php b/tests/phpunit/mocks/MockWebRequest.php
new file mode 100644 (file)
index 0000000..3ac5bfb
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * A mock WebRequest.
+ *
+ * If the code under test accesses the response via the request (see
+ * WebRequest#response), then you might be able to use this mock to simplify
+ * your tests.
+ */
+class MockWebRequest extends WebRequest
+{
+       /**
+        * @var WebResponse
+        */
+       protected $response;
+
+       public function __construct( WebResponse $response ) {
+               parent::__construct();
+
+               $this->response = $response;
+       }
+
+       public function response() {
+               return $this->response;
+       }
+}
index 9178bdb..2c92e30 100644 (file)
@@ -47,6 +47,9 @@ class ResourcesTest extends MediaWikiTestCase {
        /**
         * Verify that nothing explicitly depends on the 'jquery' and 'mediawiki' modules.
         * They are always loaded, depending on them is unsupported and leads to unexpected behaviour.
+        * TODO Modules can dynamically choose dependencies based on context. This method does not
+        * test such dependencies. The same goes for testMissingDependencies() and
+        * testUnsatisfiableDependencies().
         */
        public function testIllegalDependencies() {
                $data = self::getAllModules();
@@ -57,7 +60,7 @@ class ResourcesTest extends MediaWikiTestCase {
                        foreach ( $illegalDeps as $illegalDep ) {
                                $this->assertNotContains(
                                        $illegalDep,
-                                       $module->getDependencies(),
+                                       $module->getDependencies( $data['context'] ),
                                        "Module '$moduleName' must not depend on '$illegalDep'"
                                );
                        }
@@ -73,7 +76,7 @@ class ResourcesTest extends MediaWikiTestCase {
 
                /** @var ResourceLoaderModule $module */
                foreach ( $data['modules'] as $moduleName => $module ) {
-                       foreach ( $module->getDependencies() as $dep ) {
+                       foreach ( $module->getDependencies( $data['context'] ) as $dep ) {
                                $this->assertContains(
                                        $dep,
                                        $validDeps,
@@ -97,7 +100,7 @@ class ResourcesTest extends MediaWikiTestCase {
                /** @var ResourceLoaderModule $module */
                foreach ( $data['modules'] as $moduleName => $module ) {
                        $moduleTargets = $module->getTargets();
-                       foreach ( $module->getDependencies() as $dep ) {
+                       foreach ( $module->getDependencies( $data['context'] ) as $dep ) {
                                if ( !isset( $data['modules'][$dep] ) ) {
                                        // Missing dependencies reported by testMissingDependencies
                                        continue;
index 9093797..c6f3a23 100644 (file)
@@ -66,6 +66,7 @@ return array(
                        'tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.messagePoster.factory.test.js',
+                       'tests/qunit/suites/resources/mediawiki/mediawiki.RegExp.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.template.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js',
@@ -108,6 +109,7 @@ return array(
                        'mediawiki.api.watch',
                        'mediawiki.jqueryMsg',
                        'mediawiki.messagePoster',
+                       'mediawiki.RegExp',
                        'mediawiki.Title',
                        'mediawiki.toc',
                        'mediawiki.Uri',
index 795c2bb..911e9d0 100644 (file)
@@ -1,5 +1,14 @@
 ( function ( $ ) {
-       QUnit.module( 'jquery.mwExtension', QUnit.newMwEnvironment() );
+       QUnit.module( 'jquery.mwExtension', QUnit.newMwEnvironment( {
+               // This entire module is deprecated.
+               // Surpress deprecation warnings in test output.
+               setup: function () {
+                       this.suppressWarnings();
+               },
+               teardown: function () {
+                       this.restoreWarnings();
+               }
+       }) );
 
        QUnit.test( 'String functions', 7, function ( assert ) {
                assert.equal( $.trimLeft( '  foo bar  ' ), 'foo bar  ', 'trimLeft' );
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.RegExp.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.RegExp.test.js
new file mode 100644 (file)
index 0000000..2388497
--- /dev/null
@@ -0,0 +1,38 @@
+( function ( mw, $ ) {
+       QUnit.module( 'mediawiki.RegExp' );
+
+       QUnit.test( 'escape', 16, function ( assert ) {
+               var specials, normal;
+
+               specials = [
+                       '\\',
+                       '{',
+                       '}',
+                       '(',
+                       ')',
+                       '[',
+                       ']',
+                       '|',
+                       '.',
+                       '?',
+                       '*',
+                       '+',
+                       '-',
+                       '^',
+                       '$'
+               ];
+
+               normal = [
+                       'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
+                       'abcdefghijklmnopqrstuvwxyz',
+                       '0123456789'
+               ].join( '' );
+
+               $.each( specials, function ( i, str ) {
+                       assert.propEqual( str.match( new RegExp( mw.RegExp.escape( str ) ) ), [ str ], 'Match ' + str );
+               } );
+
+               assert.equal( mw.RegExp.escape( normal ), normal, 'Alphanumerals are left alone' );
+       } );
+
+}( mediaWiki, jQuery ) );
index 0b42af4..8a3e100 100644 (file)
                        'ResourceLoader', 't-rl', 'More info about ResourceLoader on MediaWiki.org ', 'l'
                );
 
-               assert.ok( $.isDomElement( tbRL ), 'addPortletLink returns a valid DOM Element according to $.isDomElement' );
+               assert.ok( tbRL && tbRL.nodeType, 'addPortletLink returns a DOM Node' );
 
                tbMW = mw.util.addPortletLink( 'p-test-tb', '//mediawiki.org/',
                        'MediaWiki.org', 't-mworg', 'Go to MediaWiki.org', 'm', tbRL );