Merge "Made SqlBagOStuff unset DB handles on connection errors"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sun, 28 Jun 2015 00:28:30 +0000 (00:28 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 28 Jun 2015 00:28:30 +0000 (00:28 +0000)
562 files changed:
.gitattributes
RELEASE-NOTES-1.26
autoload.php
composer.json
docs/extension.schema.json
docs/hooks.txt
includes/DefaultSettings.php
includes/MimeMagic.php
includes/Setup.php
includes/User.php
includes/ZhConversion.php
includes/actions/InfoAction.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiFormatPhp.php
includes/api/i18n/de.json
includes/api/i18n/el.json
includes/api/i18n/en.json
includes/api/i18n/es.json
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/api/i18n/he.json
includes/api/i18n/ksh.json
includes/api/i18n/qqq.json
includes/api/i18n/zh-hans.json
includes/cache/HTMLFileCache.php
includes/cache/MessageCache.php
includes/changes/ChangesList.php
includes/changes/EnhancedChangesList.php
includes/db/Database.php
includes/db/DatabaseMysql.php
includes/db/DatabaseMysqlBase.php
includes/db/DatabaseMysqli.php
includes/db/LoadBalancer.php
includes/db/LoadMonitor.php
includes/filebackend/FileBackendMultiWrite.php
includes/htmlform/HTMLButtonField.php
includes/htmlform/HTMLCheckMatrix.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLMultiSelectField.php
includes/htmlform/HTMLRadioField.php
includes/htmlform/HTMLSubmitField.php
includes/htmlform/HTMLTextAreaField.php
includes/htmlform/HTMLTextField.php
includes/htmlform/OOUIHTMLForm.php
includes/htmlform/VFormHTMLForm.php
includes/installer/i18n/fr.json
includes/installer/i18n/uk.json
includes/jobqueue/JobRunner.php
includes/jobqueue/jobs/EnqueueJob.php [changed mode: 0755->0644]
includes/libs/BufferingStatsdDataFactory.php
includes/libs/RiffExtractor.php [new file with mode: 0644]
includes/libs/composer/ComposerLock.php
includes/libs/eventrelayer/EventRelayer.php [changed mode: 0755->0644]
includes/libs/eventrelayer/EventRelayerMCRD.php [changed mode: 0755->0644]
includes/libs/normal/UtfNormalUtil.php
includes/libs/objectcache/ReplicatedBagOStuff.php
includes/libs/objectcache/WANObjectCache.php [changed mode: 0755->0644]
includes/media/Bitmap.php
includes/media/FormatMetadata.php
includes/media/WebP.php [new file with mode: 0644]
includes/objectcache/SqlBagOStuff.php
includes/page/Article.php
includes/parser/ParserCache.php
includes/parser/ParserOutput.php
includes/poolcounter/PoolCounter.php
includes/profiler/output/ProfilerOutputDump.php
includes/profiler/output/ProfilerOutputText.php
includes/specialpage/SpecialPage.php
includes/specialpage/SpecialPageFactory.php
includes/specials/SpecialAllMessages.php
includes/specials/SpecialChangeEmail.php
includes/specials/SpecialPageLanguage.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialResetTokens.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/title/MalformedTitleException.php
includes/utils/AutoloadGenerator.php
languages/Names.php
languages/i18n/ar.json
languages/i18n/be-tarask.json
languages/i18n/bn.json
languages/i18n/bs.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/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/ia.json
languages/i18n/ilo.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/ka.json
languages/i18n/kn.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/lb.json
languages/i18n/lrc.json
languages/i18n/luz.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/nan.json
languages/i18n/ne.json
languages/i18n/or.json
languages/i18n/pa.json
languages/i18n/pl.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sv.json
languages/i18n/uk.json
languages/i18n/zh-hans.json
languages/messages/MessagesBs.php
languages/messages/MessagesDty.php [new file with mode: 0644]
maintenance/convertExtensionToRegistration.php
maintenance/language/zhtable/simpphrases.manual
maintenance/language/zhtable/toCN.manual
maintenance/language/zhtable/toTW.manual
maintenance/language/zhtable/tradphrases.manual
maintenance/language/zhtable/tradphrases_exclude.manual
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/mediawiki.less/mediawiki.ui/mixins.less
resources/src/mediawiki.less/mediawiki.ui/variables.less
resources/src/mediawiki.skinning/elements.css
resources/src/mediawiki.special/mediawiki.special.version.css
resources/src/mediawiki.ui/components/buttons.less
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.js
tests/TestsAutoLoader.php
tests/phpunit/data/media/2_webp_a.webp [new file with mode: 0644]
tests/phpunit/data/media/2_webp_ll.webp [new file with mode: 0644]
tests/phpunit/data/media/webp_animated.webp [new file with mode: 0644]
tests/phpunit/includes/UserTest.php
tests/phpunit/includes/libs/composer/ComposerLockTest.php
tests/phpunit/includes/media/WebPTest.php [new file with mode: 0644]
tests/phpunit/includes/objectcache/ReplicatedBagOStuffTest.php [new file with mode: 0644]
tests/phpunit/includes/specials/SpecialSearchTest.php
tests/phpunit/mocks/MockWebRequest.php [new file with mode: 0644]
tests/phpunit/structure/ResourcesTest.php
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js

index 69d7b1b..09f86a3 100644 (file)
@@ -1,2 +1,3 @@
 *.sh eol=lf
 *.icc binary
+*.webp binary
index e23fde2..940adc9 100644 (file)
@@ -27,7 +27,15 @@ production.
 * 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).
+* (T50519) Support for generating JPEG/PNG thumbnails from WebP images added
+  if ImageMagick is used as image scaler ($wgUseImageMagick = true). Uploading
+  of WebP images still disabled by default. Add $wgFileExtensions[] =
+  'webp'; to LocalSettings.php to enable uploading of WebP images.
+* Added a new hook 'EnhancedChangesListModifyLineData', to
+  modify the data used to build lines in enhanced recentchanges and watchlist.
 
 ==== External libraries ====
 * Update es5-shim from v4.0.0 to v4.1.5.
@@ -37,7 +45,7 @@ production.
 * Added mediawiki/at-ease 1.0.0
 
 === Bug fixes in 1.26 ===
-* (bug 51283) load.php sometimes sends 304 response without full headers
+* (T53283) load.php sometimes sends 304 response without full headers
 * (T65198) Talk page tabs now have a "rel=discussion" attribute
 
 === Action API changes in 1.26 ===
@@ -63,8 +71,11 @@ production.
 
 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.
+changes to languages because of Phabricator reports.
 
+* Languages added:
+** dty (डोटेली/Doteli), thanks to translators जनक राज भट्ट, बिप्लब आनन्द,
+   मेश सिंह बोहरा, and राम प्रसाद जोशी
 
 === Other changes in 1.26 ===
 * ChangeTags::tagDescription() will return false if the interface message
@@ -106,7 +117,9 @@ changes to languages because of Bugzilla reports.
   instead of many optional positional arguments. Calling the constructor the old
   way will issue a deprecation warning.
 * The jquery.mwExtension module was deprecated.
-
+* $wgSpecialPageGroups was removed (deprecated in 1.21).
+* SpecialPageFactory::setGroup was removed (deprecated in 1.21).
+* SpecialPageFactory::getGroup was removed (deprecated in 1.21).
 
 == Compatibility ==
 
@@ -173,4 +186,3 @@ going to run a public MediaWiki, so you can be notified of security fixes.
 == IRC help ==
 
 There's usually someone online in #mediawiki on irc.freenode.net.
-
index 504eaf2..917b022 100644 (file)
@@ -1040,6 +1040,7 @@ $wgAutoloadLocalClasses = array(
        'RevisionList' => __DIR__ . '/includes/RevisionList.php',
        'RevisionListBase' => __DIR__ . '/includes/RevisionList.php',
        'RevisiondeleteAction' => __DIR__ . '/includes/actions/RevisiondeleteAction.php',
+       'RiffExtractor' => __DIR__ . '/includes/libs/RiffExtractor.php',
        'RightsLogFormatter' => __DIR__ . '/includes/logging/RightsLogFormatter.php',
        'RollbackAction' => __DIR__ . '/includes/actions/RollbackAction.php',
        'RollbackEdits' => __DIR__ . '/maintenance/rollbackEdits.php',
@@ -1342,6 +1343,7 @@ $wgAutoloadLocalClasses = array(
        'WebInstallerUpgrade' => __DIR__ . '/includes/installer/WebInstallerPage.php',
        'WebInstallerUpgradeDoc' => __DIR__ . '/includes/installer/WebInstallerPage.php',
        'WebInstallerWelcome' => __DIR__ . '/includes/installer/WebInstallerPage.php',
+       'WebPHandler' => __DIR__ . '/includes/media/WebP.php',
        'WebRequest' => __DIR__ . '/includes/WebRequest.php',
        'WebRequestUpload' => __DIR__ . '/includes/WebRequest.php',
        'WebResponse' => __DIR__ . '/includes/WebResponse.php',
index 257c195..f72e7e4 100644 (file)
                "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",
                "wikimedia/assert": "0.2.2",
-               "wikimedia/composer-merge-plugin": "1.1.0",
+               "wikimedia/composer-merge-plugin": "1.2.0",
                "wikimedia/utfnormal": "1.0.2",
                "zordius/lightncandy": "0.21"
        },
        "require-dev": {
-               "jakub-onderka/php-parallel-lint": "~0.8",
+               "jakub-onderka/php-parallel-lint": "0.9",
                "justinrainbow/json-schema": "~1.3",
                "phpunit/phpunit": "3.7.37",
-               "mediawiki/mediawiki-codesniffer": "0.2.0"
+               "mediawiki/mediawiki-codesniffer": "0.3.0"
        },
        "suggest": {
                "ext-fileinfo": "*",
index d7d9e47..c9f629c 100644 (file)
                        "type": "object"
                },
                "FilterLogTypes": {
-                       "type": "array"
+                       "type": "object"
                },
                "LogNames": {
                        "type": "object"
index 8cfdee9..bcdfa40 100644 (file)
@@ -1304,6 +1304,13 @@ $changesList: EnhancedChangesList object
 &$links: The links that were generated by EnhancedChangesList
 $block: The RecentChanges objects in that block
 
+'EnhancedChangesListModifyLineData': to alter data used to build
+a recent change inner line in EnhancedChangesList.
+$changesList: EnhancedChangesList object
+&$data: An array with all the components that will be joined in order to create the line
+$block: An array of RecentChange objects in that block
+$rc: The RecentChange object for this line
+
 'ExemptFromAccountCreationThrottle': Exemption from the account creation
 throttle.
 $ip: The ip address of the user
@@ -2403,7 +2410,9 @@ 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.
+cached value from the Parser cache. NOTE: CARELESS USE OF THIS HOOK CAN
+HAVE CATASTROPHIC CONSEQUENCES FOR HIGH-TRAFFIC INSTALLATIONS. USE WITH
+EXTREME CARE.
 $parserOutput: ParserOutput value.
 $wikiPage: WikiPage object.
 $parserOptions: ParserOptions object.
index a16bccb..6f2f5b9 100644 (file)
@@ -884,6 +884,7 @@ $wgMediaHandlers = array(
        'image/png' => 'PNGHandler',
        'image/gif' => 'GIFHandler',
        'image/tiff' => 'TiffHandler',
+       'image/webp' => 'WebPHandler',
        'image/x-ms-bmp' => 'BmpHandler',
        'image/x-bmp' => 'BmpHandler',
        'image/x-xcf' => 'XCFHandler',
@@ -2175,6 +2176,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' ),
@@ -2237,6 +2251,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
@@ -2245,7 +2260,7 @@ $wgWANObjectCaches = array(
  *
  * @since 1.26
  */
-$wgMainStash = 'db';
+$wgMainStash = 'db-replicated';
 
 /**
  * The expiry time for the parser cache, in seconds.
@@ -5273,6 +5288,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"
@@ -6938,14 +6969,6 @@ $wgAllowSpecialInclusion = true;
  */
 $wgDisableQueryPageUpdate = false;
 
-/**
- * List of special pages, followed by what subtitle they should go under
- * at Special:SpecialPages
- *
- * @deprecated since 1.21 Override SpecialPage::getGroupName instead
- */
-$wgSpecialPageGroups = array();
-
 /**
  * On Special:Unusedimages, consider images "used", if they are put
  * into a category. Default (false) is not to count those as used.
index 3b06525..2b240c3 100644 (file)
@@ -695,7 +695,7 @@ class MimeMagic {
                }
 
                /* Look for WebP */
-               if ( strncmp( $head, "RIFF", 4 ) == 0 && strncmp( substr( $head, 8, 8 ), "WEBPVP8 ", 8 ) == 0 ) {
+               if ( strncmp( $head, "RIFF", 4 ) == 0 && strncmp( substr( $head, 8, 7 ), "WEBPVP8", 7 ) == 0 ) {
                        wfDebug( __METHOD__ . ": recognized file as image/webp\n" );
                        return "image/webp";
                }
index a97cfa6..90fbf61 100644 (file)
@@ -536,7 +536,9 @@ if ( $wgTmpDirectory === false ) {
 
 // We don't use counters anymore. Left here for extensions still
 // expecting this to exist. Should be removed sometime 1.26 or later.
-$wgDisableCounters = true;
+if ( !isset( $wgDisableCounters ) ) {
+       $wgDisableCounters = true;
+}
 
 if ( $wgMainWANCache === false ) {
        // Setup a WAN cache from $wgMainCacheType with no relayer.
index 961520a..21c09cc 100644 (file)
@@ -378,7 +378,7 @@ class User implements IDBAccessObject {
         * @param integer $flags User::READ_* constant bitfield
         * @return bool False if the ID does not exist, true otherwise
         */
-       public function loadFromId( $flags = self::READ_LATEST ) {
+       public function loadFromId( $flags = self::READ_NORMAL ) {
                if ( $this->mId == 0 ) {
                        $this->loadDefaults();
                        return false;
@@ -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 b59be8c..87cc48e 100644 (file)
@@ -3186,6 +3186,7 @@ $zh2Hant = array(
 '下签' => '下籤',
 '下课钟' => '下課鐘',
 '不干不净' => '不乾不淨',
+'不干胶' => '不乾膠',
 '不克自制' => '不克自制',
 '不加自制' => '不加自制',
 '不占凶吉' => '不占凶吉',
@@ -3372,7 +3373,6 @@ $zh2Hant = array(
 '干擦' => '乾擦',
 '干支剌' => '乾支剌',
 '干支支' => '乾支支',
-'干敲梆子不卖油' => '乾敲梆子不賣油',
 '干料' => '乾料',
 '干旱' => '乾旱',
 '干暖' => '乾暖',
@@ -3480,8 +3480,7 @@ $zh2Hant = array(
 '乱发生' => '亂發生',
 '乱发脾气' => '亂發脾氣',
 '乱发' => '亂髮',
-'乱哄' => '亂鬨',
-'乱哄不过来' => '亂鬨不過來',
+'乱哄哄' => '亂鬨鬨',
 '了然后' => '了然後',
 '事有斗巧' => '事有鬥巧',
 '事里' => '事裡',
@@ -3726,6 +3725,7 @@ $zh2Hant = array(
 '亮钟' => '亮鐘',
 '人云' => '人云',
 '人如风后入江云' => '人如風後入江雲',
+'人干的' => '人幹的',
 '人欲' => '人慾',
 '人数只' => '人數只',
 '人数里' => '人數裡',
@@ -3734,6 +3734,7 @@ $zh2Hant = array(
 '什锦面' => '什錦麵',
 '仇仇' => '仇讎',
 '介胄' => '介冑',
+'他干的' => '他幹的',
 '他钟' => '他鐘',
 '付托' => '付託',
 '仙后' => '仙后',
@@ -3846,6 +3847,7 @@ $zh2Hant = array(
 '个里' => '個裡',
 '个钟' => '個鐘',
 '个钟表' => '個鐘錶',
+'们干的' => '們幹的',
 '幸免' => '倖免',
 '幸存' => '倖存',
 '幸幸' => '倖幸',
@@ -4109,7 +4111,6 @@ $zh2Hant = array(
 '利于' => '利於',
 '刮来刮去' => '刮來刮去',
 '刮起来' => '刮起來',
-'刮风下雪倒便宜' => '刮風下雪倒便宜',
 '刮胡' => '刮鬍',
 '到山里' => '到山裡',
 '制冷机' => '制冷機',
@@ -4235,7 +4236,6 @@ $zh2Hant = array(
 '博尔术' => '博爾朮',
 '卜云吉' => '卜云吉',
 '占了卜' => '占了卜',
-'占便宜的是呆' => '占便宜的是獃',
 '印累绶若' => '印纍綬若',
 '印制' => '印製',
 '印鉴' => '印鑑',
@@ -4702,7 +4702,6 @@ $zh2Hant = array(
 '太后' => '太后',
 '太丑' => '太醜',
 '太阁' => '太閤',
-'夯干' => '夯幹',
 '夸克' => '夸克',
 '夸父' => '夸父',
 '夸特' => '夸特',
@@ -4839,6 +4838,7 @@ $zh2Hant = array(
 '对准表' => '對準錶',
 '对准钟' => '對準鐘',
 '对准钟表' => '對準鐘錶',
+'对着干' => '對着幹',
 '对华发' => '對華發',
 '对表中' => '對表中',
 '对表扬' => '對表揚',
@@ -4934,7 +4934,6 @@ $zh2Hant = array(
 '工作台' => '工作檯',
 '工致' => '工緻',
 '左冲右突' => '左衝右突',
-'巧妇做不得无面馎饦' => '巧婦做不得無麵餺飥',
 '巧干' => '巧幹',
 '巧历' => '巧曆',
 '巧历史' => '巧歷史',
@@ -4996,6 +4995,7 @@ $zh2Hant = array(
 '干吗' => '幹嗎',
 '干嘛' => '幹嘛',
 '干坏事' => '幹壞事',
+'干大事' => '幹大事',
 '干完' => '幹完',
 '干家' => '幹家',
 '干得' => '幹得',
@@ -5013,7 +5013,8 @@ $zh2Hant = array(
 '干甚么' => '幹甚麼',
 '干略' => '幹略',
 '干当' => '幹當',
-'干的停当' => '幹的停當',
+'干的事' => '幹的事',
+'干的好事' => '幹的好事',
 '干细胞' => '幹細胞',
 '干线' => '幹線',
 '干练' => '幹練',
@@ -5141,6 +5142,7 @@ $zh2Hant = array(
 '很凶' => '很兇',
 '很准' => '很準',
 '很丑' => '很醜',
+'很松' => '很鬆',
 '律历志' => '律曆志',
 '后印' => '後印',
 '后台老板' => '後台老板',
@@ -5356,7 +5358,9 @@ $zh2Hant = array(
 '怪里怪气' => '怪裡怪氣',
 '怫郁' => '怫鬱',
 '恂栗' => '恂慄',
+'恒基' => '恒基',
 '恒生' => '恒生',
+'恒隆' => '恒隆',
 '恕乏价催' => '恕乏价催',
 '息交绝游' => '息交絕遊',
 '息谷' => '息穀',
@@ -5503,7 +5507,6 @@ $zh2Hant = array(
 '批复' => '批覆',
 '批注' => '批註',
 '批斗' => '批鬥',
-'承制' => '承製',
 '抑制作用' => '抑制作用',
 '抑制剂' => '抑制劑',
 '抑郁' => '抑鬱',
@@ -6547,6 +6550,7 @@ $zh2Hant = array(
 '滃郁' => '滃鬱',
 '滑借' => '滑藉',
 '汇丰' => '滙豐',
+'渗漓' => '滲灕',
 '卤了' => '滷了',
 '卤五花' => '滷五花',
 '卤味' => '滷味',
@@ -6590,7 +6594,6 @@ $zh2Hant = array(
 '澄江县' => '澂江縣',
 '澄澹精致' => '澄澹精致',
 '澒蒙' => '澒濛',
-'泽渗漓而下降' => '澤滲灕而下降',
 '淀乃不耕之地' => '澱乃不耕之地',
 '淀北片' => '澱北片',
 '淀山' => '澱山',
@@ -6659,6 +6662,7 @@ $zh2Hant = array(
 '烘制' => '烘製',
 '烤干' => '烤乾',
 '烤卤' => '烤滷',
+'烹制' => '烹製',
 '焙干' => '焙乾',
 '无征不信' => '無徵不信',
 '无业游民' => '無業游民',
@@ -6730,7 +6734,6 @@ $zh2Hant = array(
 '犹如表' => '猶如錶',
 '犹如钟' => '猶如鐘',
 '犹如钟表' => '猶如鐘錶',
-'呆串了皮' => '獃串了皮',
 '狱里' => '獄裡',
 '奖杯' => '獎盃',
 '独裁制' => '獨裁制',
@@ -6743,6 +6746,7 @@ $zh2Hant = array(
 '玉米面' => '玉米面',
 '王侯后' => '王侯后',
 '王后' => '王后',
+'王添灯' => '王添灯',
 '王田里' => '王田里',
 '王鉴' => '王鑑',
 '王余鱼' => '王餘魚',
@@ -7336,7 +7340,6 @@ $zh2Hant = array(
 '系辞' => '繫辭',
 '系鞋带' => '繫鞋帶',
 '系风捕影' => '繫風捕影',
-'继承制' => '繼承制',
 '累囚' => '纍囚',
 '累堆' => '纍堆',
 '累瓦结绳' => '纍瓦結繩',
@@ -7462,6 +7465,7 @@ $zh2Hant = array(
 '卧游' => '臥遊',
 '臧谷亡羊' => '臧穀亡羊',
 '临潼斗宝' => '臨潼鬥寶',
+'自干五' => '自乾五',
 '自制一下' => '自制一下',
 '自制下来' => '自制下來',
 '自制不' => '自制不',
@@ -8396,7 +8400,6 @@ $zh2Hant = array(
 '鄭凱云' => '鄭凱云',
 '配制饲料' => '配制飼料',
 '配图里' => '配圖裡',
-'配水干管' => '配水幹管',
 '配制' => '配製',
 '酒帘' => '酒帘',
 '酒气冲天' => '酒氣衝天',
@@ -8893,6 +8896,7 @@ $zh2Hant = array(
 '飘荡' => '飄蕩',
 '飘游' => '飄遊',
 '飘飘荡荡' => '飄飄蕩蕩',
+'飘发自由女神' => '飄髮自由女神',
 '飞扎' => '飛紮',
 '飞刍挽粟' => '飛芻輓粟',
 '飞行钟' => '飛行鐘',
@@ -9181,6 +9185,7 @@ $zh2Hant = array(
 '斗合' => '鬥合',
 '斗嘴' => '鬥嘴',
 '斗地主' => '鬥地主',
+'斗垮' => '鬥垮',
 '斗士' => '鬥士',
 '斗富' => '鬥富',
 '斗巧' => '鬥巧',
@@ -9196,6 +9201,7 @@ $zh2Hant = array(
 '斗打' => '鬥打',
 '斗批改' => '鬥批改',
 '斗技' => '鬥技',
+'斗败' => '鬥敗',
 '斗文' => '鬥文',
 '斗智' => '鬥智',
 '斗暴' => '鬥暴',
@@ -9211,6 +9217,7 @@ $zh2Hant = array(
 '斗牛' => '鬥牛',
 '斗犀台' => '鬥犀臺',
 '斗犬' => '鬥犬',
+'斗狗' => '鬥狗',
 '斗狠' => '鬥狠',
 '斗兽' => '鬥獸',
 '斗叠' => '鬥疊',
@@ -9225,6 +9232,7 @@ $zh2Hant = array(
 '斗草' => '鬥草',
 '斗叶儿' => '鬥葉兒',
 '斗叶子' => '鬥葉子',
+'斗蛐' => '鬥蛐',
 '斗蟋蟀' => '鬥蟋蟀',
 '斗话' => '鬥話',
 '斗艳' => '鬥豔',
@@ -9358,7 +9366,6 @@ $zh2Hant = array(
 '曲霉' => '麴黴',
 '麹霉' => '麴黴',
 '面人儿' => '麵人兒',
-'面价' => '麵價',
 '面包' => '麵包',
 '面坊' => '麵坊',
 '面坯儿' => '麵坯兒',
@@ -9370,7 +9377,6 @@ $zh2Hant = array(
 '面条' => '麵條',
 '面汤' => '麵湯',
 '面浆' => '麵漿',
-'面灰' => '麵灰',
 '面疙瘩' => '麵疙瘩',
 '面皮' => '麵皮',
 '面码儿' => '麵碼兒',
@@ -9380,6 +9386,7 @@ $zh2Hant = array(
 '面团' => '麵糰',
 '面缸' => '麵缸',
 '面茶' => '麵茶',
+'面制品' => '麵製品',
 '面食' => '麵食',
 '面饺' => '麵餃',
 '面饼' => '麵餅',
@@ -13327,7 +13334,6 @@ $zh2Hans = array(
 '乾崗' => '乾岗',
 '乾巛' => '乾巛',
 '乾州' => '乾州',
-'乾式' => '乾式',
 '乾录' => '乾录',
 '乾錄' => '乾录',
 '乾律' => '乾律',
@@ -14090,6 +14096,7 @@ $zh2TW = array(
 '老挝语' => '寮語',
 '老撾語' => '寮語',
 '波里活' => '寶萊塢',
+'对着干' => '對著幹',
 '高峰时段' => '尖峰時段',
 '高峰时间' => '尖峰時間',
 '贊比亞' => '尚比亞',
@@ -17765,6 +17772,7 @@ $zh2CN = array(
 '東南亞國家協會' => '东南亚国家联盟',
 '亚细安' => '东盟',
 '東協' => '东盟',
+'仲介' => '中介',
 '臨著' => '临着',
 '臨著書' => '临著书',
 '臨著作' => '临著作',
@@ -19249,6 +19257,7 @@ $zh2CN = array(
 '涵著者' => '涵著者',
 '涵著述' => '涵著述',
 '混帳' => '混账',
+'清澈' => '清澈',
 '清帳' => '清账',
 '渴著' => '渴着',
 '渴著書' => '渴著书',
@@ -20438,8 +20447,8 @@ $zh2CN = array(
 '髭著稱' => '髭著称',
 '髭著者' => '髭著者',
 '髭著述' => '髭著述',
-'魚雷射' => '鱼雷射',
-'鱼雷射' => '鱼雷射',
+'魚雷' => '鱼雷',
+'鱼雷' => '鱼雷',
 '咪高峰' => '麦克风',
 '黏著' => '黏着',
 '黏著書' => '黏著书',
index 203c687..0c34ddb 100644 (file)
@@ -234,7 +234,7 @@ class InfoAction extends FormlessAction {
 
                // Display title
                $displayTitle = $title->getPrefixedText();
-               if ( !empty( $pageProperties['displaytitle'] ) ) {
+               if ( isset( $pageProperties['displaytitle'] ) ) {
                        $displayTitle = $pageProperties['displaytitle'];
                }
 
@@ -259,7 +259,7 @@ class InfoAction extends FormlessAction {
 
                // Default sort key
                $sortKey = $title->getCategorySortkey();
-               if ( !empty( $pageProperties['defaultsort'] ) ) {
+               if ( isset( $pageProperties['defaultsort'] ) ) {
                        $sortKey = $pageProperties['defaultsort'];
                }
 
@@ -448,7 +448,8 @@ class InfoAction extends FormlessAction {
                                }
                        }
                        $expiry = $title->getRestrictionExpiry( $restrictionType );
-                       $formattedexpiry = $this->msg( 'parentheses', $this->getLanguage()->formatExpiry( $expiry ) )->escaped();
+                       $formattedexpiry = $this->msg( 'parentheses',
+                               $this->getLanguage()->formatExpiry( $expiry ) )->escaped();
                        $message .= $this->msg( 'word-separator' )->escaped() . $formattedexpiry;
 
                        // Messages: restriction-edit, restriction-move, restriction-create,
index d1beef8..853b138 100644 (file)
@@ -126,7 +126,8 @@ class ApiFeedWatchlist extends ApiBase {
 
                        $msg = wfMessage( 'watchlist' )->inContentLanguage()->text();
 
-                       $feedTitle = $this->getConfig()->get( 'Sitename' ) . ' - ' . $msg . ' [' . $this->getConfig()->get( 'LanguageCode' ) . ']';
+                       $feedTitle = $this->getConfig()->get( 'Sitename' ) . ' - ' . $msg .
+                               ' [' . $this->getConfig()->get( 'LanguageCode' ) . ']';
                        $feedUrl = SpecialPage::getTitleFor( 'Watchlist' )->getFullURL();
 
                        $feed = new $feedClasses[$params['feedformat']] (
index d88dd40..6420a5b 100644 (file)
@@ -68,7 +68,8 @@ class ApiFormatPhp extends ApiFormatBase {
                        preg_match( '/\<\s*cross-domain-policy\s*\>/i', $text )
                ) {
                        $this->dieUsage(
-                               'This response cannot be represented using format=php. See https://bugzilla.wikimedia.org/show_bug.cgi?id=66776',
+                               'This response cannot be represented using format=php. ' .
+                               'See https://bugzilla.wikimedia.org/show_bug.cgi?id=66776',
                                'internalerror'
                        );
                }
index 5d3d095..0f0f548 100644 (file)
        "apihelp-imagerotate-param-rotation": "Anzahl der Grad, um die das Bild im Uhrzeigersinn gedreht werden soll.",
        "apihelp-imagerotate-example-simple": "<kbd>Datei:Beispiel.png</kbd> um <kbd>90</kbd> Grad drehen.",
        "apihelp-imagerotate-example-generator": "Alle Bilder in der <kbd>Kategorie:Flip</kbd> um <kbd>180</kbd> Grad drehen.",
-       "apihelp-import-description": "Importiert eine Seite von einem anderen Wiki oder einer XML-Datei.\n\nBitte beachte, dass der HTTP-POST-Vorgang als Dateiupload ausgeführt werden muss (z.B. durch multipart/form-data), um eine Datei über den <var>xml</var>-Parameter zu senden.",
+       "apihelp-import-description": "Importiert eine Seite aus einem anderen Wiki oder von einer XML-Datei.\n\nBitte beachte, dass der HTTP-POST-Vorgang als Dateiupload ausgeführt werden muss (z.B. durch multipart/form-data), um eine Datei über den <var>xml</var>-Parameter zu senden.",
        "apihelp-import-param-summary": "Import-Zusammenfassung.",
        "apihelp-import-param-xml": "Hochgeladene XML-Datei.",
        "apihelp-import-param-interwikisource": "Für Interwiki-Importe: Wiki, von dem importiert werden soll.",
        "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 <samp>query-continue</samp>-Rohdaten 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 1279f59..867f594 100644 (file)
@@ -14,6 +14,7 @@
        "apihelp-createaccount-param-email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου χρήστη (προαιρετικό).",
        "apihelp-createaccount-param-realname": "Πραγματικό όνομα χρήστη (προαιρετικό).",
        "apihelp-createaccount-param-mailpassword": "Εάν οριστεί σε οποιαδήποτε τιμή, ένας τυχαίος κωδικός πρόσβασης θα αποσταλεί μέσω ηλεκτρονικού ταχυδρομείου στο χρήστη.",
+       "apihelp-createaccount-param-language": "Κωδικός γλώσσας που να οριστεί ως προεπιλογή για το χρήστη (προαιρετικό, έχει ως προεπιλογή τη γλώσσα περιεχομένου).",
        "apihelp-delete-description": "Διαγραφή σελίδας.",
        "apihelp-delete-example-simple": "Διαγραφή <kbd>Αρχικής Σελίδας</kbd>.",
        "apihelp-edit-description": "Δημιουργία και επεξεργασία σελίδων.",
@@ -26,6 +27,7 @@
        "apihelp-edit-param-nocreate": "Να εμφανιστεί μήνυμα σφάλματος εάν η σελίδα δεν υπάρχει.",
        "apihelp-edit-param-watch": "Να προστεθεί η σελίδα στη λίστα παρακολούθησης του τρέχοντα χρήστη.",
        "apihelp-edit-param-unwatch": "Να αφαιρεθεί η σελίδα από τη λίστα παρακολούθησης του τρέχοντα χρήστη.",
+       "apihelp-edit-param-contentmodel": "Μοντέλο περιεχομένου για το νέο περιεχόμενο.",
        "apihelp-edit-example-edit": "Επεξεργασία κάποιας σελίδας.",
        "apihelp-emailuser-description": "Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου σε χρήστη.",
        "apihelp-emailuser-param-target": "Χρήστης στον οποίον να σταλεί το μήνυμα ηλεκτρονικού ταχυδρομείου.",
index 792febc..6d1b1ec 100644 (file)
@@ -12,7 +12,7 @@
        "apihelp-main-param-maxlag": "Maximum lag can be used when MediaWiki is installed on a database replicated cluster. To save actions causing any more site replication lag, this parameter can make the client wait until the replication lag is less than the specified value. In case of excessive lag, error code <samp>maxlag</samp> is returned with a message like <samp>Waiting for $host: $lag seconds lagged</samp>.<br />See [[mw:Manual:Maxlag_parameter|Manual: Maxlag parameter]] for more information.",
        "apihelp-main-param-smaxage": "Set the <code>s-maxage</code> HTTP cache control header to this many seconds. Errors are never cached.",
        "apihelp-main-param-maxage": "Set the <code>max-age</code> HTTP cache control header to this many seconds. Errors are never cached.",
-       "apihelp-main-param-assert": "Verify the user is logged in if set to <kbd>user</kbd>, or has the bot userright if <kbd>bot</kbd>.",
+       "apihelp-main-param-assert": "Verify the user is logged in if set to <kbd>user</kbd>, or has the bot user right if <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Any value given here will be included in the response. May be used to distinguish requests.",
        "apihelp-main-param-servedby": "Include the hostname that served the request in the results.",
        "apihelp-main-param-curtimestamp": "Include the current timestamp in the result.",
        "apihelp-imagerotate-example-simple": "Rotate <kbd>File:Example.png</kbd> by <kbd>90</kbd> degrees.",
        "apihelp-imagerotate-example-generator": "Rotate all images in <kbd>Category:Flip</kbd> by <kbd>180</kbd> degrees.",
 
-       "apihelp-import-description": "Import a page from another wiki, or an XML file.\n\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending a file for the <var>xml</var> parameter.",
+       "apihelp-import-description": "Import a page from another wiki, or from an XML file.\n\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending a file for the <var>xml</var> parameter.",
        "apihelp-import-param-summary": "Import summary.",
        "apihelp-import-param-xml": "Uploaded XML file.",
        "apihelp-import-param-interwikisource": "For interwiki imports: wiki to import from.",
index 97c38a6..1923dc9 100644 (file)
@@ -9,7 +9,8 @@
                        "Edslov",
                        "Carlos Cristia",
                        "Ryo567",
-                       "Csbotero"
+                       "Csbotero",
+                       "Chris TR"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentación]]\n* [[mw:API:FAQ|Preguntas frecuentes]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de correos]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API de anuncios]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Errores y peticiones]\n</div>\n<strong>Estado:</strong> Todas las características que se muestran en esta página debería funcionar, pero la API aún está en desarrollo activo y puede cambiar en cualquier momento. Suscríbete a [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la lista de correo de mediawiki-api-announce] para estar al día de las actualizaciones.\n\n<strong>Solicitudes erróneas:</strong> Cuando se envían solicitudes erróneas a la API, se envía un encabezado HTTP con la clave \"MediaWiki-API-Error\" y ambos valores, del encabezado y el código de error, se establecerán en el mismo valor. Para más información, véase [[mw:API:Errors_and_warnings|API: Errores y advertencias]].",
@@ -17,6 +18,7 @@
        "apihelp-main-param-format": "El formato de la salida.",
        "apihelp-main-param-smaxage": "Establece el encabezado <code>s-maxage</code> durante estos segundos. Los errores nunca se almacenan en caché.",
        "apihelp-main-param-maxage": "Establece el encabezado <code>max-age</code> durante estos segundos. Los errores nunca se almacenan en caché.",
+       "apihelp-main-param-assert": "Comprobar que el usuario haya iniciado sesión si el valor es <kbd>user</kbd> o si tiene el permiso de bot si <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Cualquier valor dado aquí se incluirá en la respuesta. Se puede utilizar para distinguir solicitudes.",
        "apihelp-main-param-servedby": "Incluir el nombre del host que ha servido la solicitud en los resultados.",
        "apihelp-main-param-curtimestamp": "Incluir la marca de tiempo actual en el resultado.",
index 6cddc63..0b35330 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-paramvalue-prop-modules": "Tous les modules ResourceLoader que les fonctions d’analyse ont demandé d’ajouter à la sortie. Soit <kbd>jsconfigvars</kbd> soit <kbd>encodedjsconfigvars</kbd> doit être demandé avec <kbd>modules</kbd>.",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Donne les variables de configuration JavaScript spécifiques à la page.",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Donne les variables de configuration JavaScript spécifiques à la page sous forme de chaîne JSON.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "L’arbre d’analyse XML de l’entré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-import-param-interwikipage": "Pour les importations interwiki : page à importer.",
        "apihelp-import-param-fullhistory": "Pour les importations interwiki : importer tout l’historique, et pas seulement la version courante.",
        "apihelp-import-param-templates": "Pour les importations interwiki : importer aussi tous les modèles inclus.",
-       "apihelp-import-param-namespace": "Importer vers cet espace de noms. Écrase le paramètre <kbd>$1rootpage</kbd>.",
-       "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Ignoré si le paramètre <kbd>$1namespace</kbd> est fourni.",
+       "apihelp-import-param-namespace": "Importer vers cet espace de noms. Impossible à utiliser avec <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Impossible à utiliser avec <var>$1namespace</var>.",
        "apihelp-import-example-import": "Importer [[meta:Help:ParserFunctions]] vers l’espace de noms 100 avec tout l’historique.",
        "apihelp-login-description": "Se connecter et obtenir les cookies d’authentification.\n\nDans le cas d’une connexion réussie, les cookies nécessaires seront inclus dans les entêtes de la réponse HTTP. Dans le cas d’une connexion en échec, les essais ultérieurs pourront être réduits afin de limiter les attaques automatisées de découverte du mot de passe.",
        "apihelp-login-param-name": "Nom d’utilisateur.",
        "apihelp-opensearch-param-suggest": "Ne rien faire si <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> vaut faux.",
        "apihelp-opensearch-param-redirects": "Comment gérer les redirections :\n;return:Renvoie la redirection elle-même.\n;resolve:Renvoie la page cible. Peut renvoyer moins de $1limit résultats.\nPour des raisons historiques, la valeur par défaut est « return » pour $1format=json et « resolve » pour les autres formats.",
        "apihelp-opensearch-param-format": "Le format de sortie.",
+       "apihelp-opensearch-param-warningsaserror": "Si des avertissements sont levés avec <kbd>format=json</kbd>, renvoyer une erreur d’API au lieu de les ignorer.",
        "apihelp-opensearch-example-te": "Trouver les pages commençant par <kbd>Te</kbd>.",
        "apihelp-options-description": "Modifier les préférences de l’utilisateur courant.\n\nSeules les options enregistrées dans le cœur ou dans l’une des extensions installées, ou les options avec une clé préfixée par « userjs- » (devant être utilisées dans les scripts utilisateur), peuvent être définies.",
        "apihelp-options-param-reset": "Réinitialise les préférences aux valeurs par défaut du site.",
        "apihelp-parse-param-pageid": "Analyser le contenu de cette page. Écrase <var>$1page</var>.",
        "apihelp-parse-param-redirects": "Si le paramètre <var>$1page</var> ou <var>$1pageid</var> est positionné sur une redirection, la résoudre.",
        "apihelp-parse-param-oldid": "Analyser le contenu de cette révision. Écrase <var>$1page</var> et <var>$1pageid</var>.",
-       "apihelp-parse-param-prop": "Quelles informations obtenir :\n;text:Fournit le texte analysé du wikitexte.\n;langlinks:Fournit les liens de langue dans le wikitexte analysé.\n;categories:Fournit les catégories dans le wikitexte analysé.\n;categorieshtml:Fournit la version HTML des catégories.\n;links:Fournit les liens internes dans le wikitexte analysé.\n;templates:Fournit les modèles dans le wikitexte analysé.\n;images:Fournit les images dans le wikitexte analysé.\n;externallinks:Fournit les liens externes dans le wikitexte analysé.\n;sections:Fournit les sections dans le wikitexte analysé.\n;revid:Ajoute l’ID de révision de la page analysée.\n;displaytitle:Ajoute le titre du wikitexte analysé.\n;headitems:Fournit les éléments à mettre dans le &lt;head&gt; de la page.\n;headhtml:Fournit le &lt;head&gt; analysé de la page.\n;modules:Fournit les modules ResourceLoader utilisés sur la page.\n;indicators:Fournit le HTML des indicateurs d’état de la page utilisés dans la page.\n;iwlinks:Fournit les liens interwiki dans le wikitexte analysé.\n;wikitext:Fournit le wikitexte d’origine qui a été analysé.\n;properties:Fournit différentes propriétés définies dans le wikitexte analysé.\n;limitreportdata:Fournit le rapport de limite de façon structurée. Ne fournit aucune donnée, quand $1disablepp est activé.\n;limitreporthtml:Fournit la version HTML du rapport de limite. Ne fournit aucune donnée, quand $1disablepp est activé.",
+       "apihelp-parse-param-prop": "Quelles informations obtenir :",
+       "apihelp-parse-paramvalue-prop-text": "Fournit le texte analysé du wikitexte.",
+       "apihelp-parse-paramvalue-prop-langlinks": "Fournit les liens de langue du wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-categories": "Fournit les catégories dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Fournit la version HTML des catégories.",
+       "apihelp-parse-paramvalue-prop-links": "Fournit les liens internes dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-templates": "Fournit les modèles dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-images": "Fournit les images dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-externallinks": "Fournit les liens externes dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-sections": "Fournit les sections dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-revid": "Ajoute l’ID de révision de la page analysée.",
+       "apihelp-parse-paramvalue-prop-displaytitle": "Ajoute le titre du wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-headitems": "Fournit les éléments à mettre dans le <code>&lt;head&gt;</code> de la page.",
+       "apihelp-parse-paramvalue-prop-headhtml": "Fournit le <code>&lt;head&gt;</code> analysé de la page.",
+       "apihelp-parse-paramvalue-prop-modules": "Fournit les modules ResourceLoader utilisés sur la page. Soit <kbd>jsconfigvars</kbd> soit <kbd>encodedjsconfigvars</kbd> doit être demandé avec <kbd>modules</kbd>.",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page.",
+       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page comme chaîne JSON.",
+       "apihelp-parse-paramvalue-prop-indicators": "Fournit le HTML des indicateurs d’état de page utilisés sur la page.",
+       "apihelp-parse-paramvalue-prop-iwlinks": "Fournit les liens interwikis dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-wikitext": "Fournit le wikitexte d’origine qui a été analysé.",
+       "apihelp-parse-paramvalue-prop-properties": "Fournit les diverses propriétés définies dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-limitreportdata": "Fournit le rapport de limite d’une manière structurée. Ne fournit aucune donnée, si <var>$1disablepp</var> est positionné.",
+       "apihelp-parse-paramvalue-prop-limitreporthtml": "Fournit la version HTML du rapport de limite. Ne fournit aucune donnée, si <var>$1disablepp</var> est positionné.",
        "apihelp-parse-param-pst": "Faire une transformation avant enregistrement de l’entrée avant de l’analyser. Valide uniquement quand utilisé avec du texte.",
        "apihelp-parse-param-onlypst": "Faire une transformation avant enregistrement (PST) de l’entrée, mais ne pas l’analyser. Renvoie le même wikitexte, après que la PST a été appliquée. Valide uniquement quand utilisé avec <var>$1text</var>.",
        "apihelp-parse-param-effectivelanglinks": "Inclut les liens de langue fournis par les extensions (à utiliser avec <kbd>$1prop=langlinks</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-param-rawcontinue": "Renvoyer les données <samp>query-continue</samp> brutes pour continuer.",
        "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>.",
        "apihelp-query+allcategories-description": "Énumérer toutes les catégories.",
        "apihelp-query+revisions+base-param-difftotext": "Texte auquel comparer chaque révision. Compare uniquement un nombre limité de révisions. Écrase <var>$1diffto</var>. Si <var>$1section</var> est positionné, seule cette section sera comparée avec ce texte",
        "apihelp-query+revisions+base-param-contentformat": "Format de sérialisation utilisé pour <var>$1difftotext</var> et attendu pour la sortie du contenu.",
        "apihelp-query+search-description": "Effectuer une recherche en texte intégral.",
-       "apihelp-query+search-param-search": "Rechercher les titres (ou le contenu) de toutes les pages ayant cette valeur.",
+       "apihelp-query+search-param-search": "Rechercher les titres de page ou le contenu correspondant à cette valeur. Vous pouvez utiliser la chaîne de recherche pour invoquer des fonctionnalités de recherche spéciales, selon ce que le serveur de recherche du wiki implémente.",
        "apihelp-query+search-param-namespace": "Rechercher uniquement dans ces espaces de nom.",
        "apihelp-query+search-param-what": "Quel type de recherche effectuer.",
        "apihelp-query+search-param-info": "Quelles métadonnées renvoyer.",
-       "apihelp-query+search-param-prop": "Quelles propriétés renvoyer :\n;size:Ajoute la taille de la page en octets.\n;wordcount:Ajoute le nombre de mots de la page.\n;timestamp:Ajoute l’horodatage de la dernière modification de la page.\n;snippet:Ajoute un extrait analysé de la page.\n;titlesnippet:Ajoute un extrait analysé du titre de la page.\n;redirectsnippet:Ajoute un extrait analysé du titre de la redirection.\n;redirecttitle:Ajoute le titre de la redirection correspondante.\n;sectionsnippet:Ajoute un extrait analysé du titre de la section correspondante.\n;sectiontitle:Ajoute le titre de la section correspondante.\n;score:<span class=\"apihelp-deprecated\">Obsolète et ignoré.</span>\n;hasrelated:<span class=\"apihelp-deprecated\">Obsolète et ignoré.</span>",
+       "apihelp-query+search-param-prop": "Quelles propriétés renvoyer :\n;size:Ajoute la taille de la page en octets.\n;wordcount:Ajoute le nombre de mots de la page.\n;timestamp:Ajoute l’horodatage de la dernière modification de la page.\n;snippet:Ajoute un extrait analysé de la page.\n;titlesnippet:Ajoute un extrait analysé du titre de la page.\n;redirectsnippet:Ajoute un extrait analysé du titre de la redirection.\n;redirecttitle:Ajoute le titre de la redirection correspondante.\n;sectionsnippet:Ajoute un extrait analysé du titre de la section correspondante.\n;sectiontitle:Ajoute le titre de la section correspondante.\n;categorysnippet:Ajoute un extrait analysé de la catégorie correspondante.\n;isfilematch:Ajoute un booléen indiquant si la recherche correspond au contenu du fichier.\n;score:<span class=\"apihelp-deprecated\">Obsolète et ignoré.</span>\n;hasrelated:<span class=\"apihelp-deprecated\">Obsolète et ignoré.</span>",
        "apihelp-query+search-param-limit": "Combien de pages renvoyer au total.",
        "apihelp-query+search-param-interwiki": "Inclure les résultats interwiki dans la recherche, s’ils sont disponibles.",
        "apihelp-query+search-param-backend": "Quel serveur de recherche utiliser, si ce n’est pas celui par défaut.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixer l’horodatage de notification pour <kbd>Page principale</kbd> afin que toutes les modifications depuis le 1 janvier 2012 soient non vues",
        "apihelp-setnotificationtimestamp-example-allpages": "Réinitialiser l’état de notification sur les pages dans l’espace de noms <kbd>{{ns:user}}</kbd>.",
        "apihelp-tag-description": "Ajouter ou enlever des balises de modification aux révisions ou ou aux entrées de journal individuelles.",
+       "apihelp-tag-param-rcid": "Un ou plus IDs de modification récente à partir desquels ajouter ou supprimer la balise.",
+       "apihelp-tag-param-revid": "Un ou plus IDs de révision à partir desquels ajouter ou supprimer la balise.",
+       "apihelp-tag-param-logid": "Un ou plus IDs d’entrée de journal à partir desquels ajouter ou supprimer la balise.",
        "apihelp-tag-param-add": "Balises à ajouter. Seules les balises définies manuellement peuvent être ajoutées.",
+       "apihelp-tag-param-remove": "Balises à supprimer. Seules les balises qui sont soit définies manuellement soit pas du tout définies peuvent être supprimées.",
        "apihelp-tag-param-reason": "Motif de la modification.",
+       "apihelp-tag-example-rev": "Ajoute la balise <kbd>vandalism</kbd> à partir de l’ID de révision 123 sans indiquer de motif",
+       "apihelp-tag-example-log": "Supprimer la balise <kbd>spam</kbd> à partir de l’ID d’entrée de journal 123 avec le motif <kbd>Wrongly applied</kbd>",
        "apihelp-tokens-description": "Obtenir les jetons pour les actions modifiant les données.\n\nCe module est obsolète, remplacé par [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-tokens-param-type": "Types de jeton à demander.",
        "apihelp-tokens-example-edit": "Récupérer un jeton de modification (par défaut).",
        "apihelp-dumpfm-description": "Extraire les données au format de <code>var_dump()</code> de PHP (affiché proprement en HTML).",
        "apihelp-json-description": "Extraire les données au format JSON.",
        "apihelp-json-param-callback": "Si spécifié, inclut la sortie dans l’appel d’une fonction fournie. Pour plus de sûreté, toutes les données spécifiques à l’utilisateur seront restreintes.",
-       "apihelp-json-param-utf8": "Si spécifié, encode la plupart (mais pas tous) des caractères non ASCII en URF-8 au lieu de les remplacer par leur séquence d’échappement hexadécimale.",
+       "apihelp-json-param-utf8": "Si spécifié, encode la plupart (mais pas tous) des caractères non ASCII en URF-8 au lieu de les remplacer par leur séquence d’échappement hexadécimale. Valeur par défaut quand <var>formatversion</var> ne vaut pas <kbd>1</kbd>.",
+       "apihelp-json-param-ascii": "Si spécifié, encode toutes ses séquences d’échappement non ASCII utilisant l’hexadécimal. Valeur par défaut quand <var>formatversion</var> vaut <kbd>1</kbd>.",
+       "apihelp-json-param-formatversion": "Mise en forme de sortie :\n;1:Format rétro-compatible (booléens de style XML, clés <samp>*</samp> pour les nœuds de contenu, etc.).\n;2:Format moderne expérimental. Des détails peuvent changer !\n;latest:Utilise le dernier format (actuellement <kbd>2</kbd>), peut changer sans avertissement.",
        "apihelp-jsonfm-description": "Extraire les données au format JSON (affiché proprement en HTML).",
        "apihelp-none-description": "Ne rien extraire.",
        "apihelp-php-description": "Extraire les données au format sérialisé de PHP.",
+       "apihelp-php-param-formatversion": "Mise en forme de la sortie :\n;1:Format rétro-compatible (bool&ens de style XML, clés <samp>*</samp> pour les nœuds de contenu, etc.).\n;2:Format moderne expérimental. Des détails peuvent changer !\n;latest:Utilise le dernier format (actuellement <kbd>2</kbd>), peut changer sans avertissement.",
        "apihelp-phpfm-description": "Extraire les données au format sérialisé de PHP (affiché proprement en HTML).",
        "apihelp-rawfm-description": "Extraire les données avec les éléments de débogage au format JSON (affiché proprement en HTML).",
        "apihelp-txt-description": "Extraire les données au format de <code>print_r()</code> de PHP.",
        "apihelp-yamlfm-description": "Extraire les données YAML (affiché proprement en HTML).",
        "api-format-title": "Résultat de l’API de MédiaWiki",
        "api-format-prettyprint-header": "Voici la représentation HTML du format $1. HTML est utile pour le débogage, mais inapproprié pour être utilisé dans une application.\n\nSpécifiez le paramètre <var>format</var> pour modifier le format de sortie. Pour voir la représentation non HTML du format $1, mettez <kbd>format=$2</kbd>.\n\nVoyez la [[mw:API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
+       "api-format-prettyprint-header-only-html": "Ceci est une représentation HTML à des fins de déboguage, et n’est pas approprié à une utilisation applicative.\n\nVoir la [[mw:API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
        "api-orm-param-props": "Champs à rechercher.",
        "api-orm-param-limit": "Nombre maximal de lignes à renvoyer.",
        "api-pageset-param-titles": "Une liste des titres sur lesquels travailler.",
        "api-help-param-deprecated": "Obsolète.",
        "api-help-param-required": "Ce paramètre est obligatoire.",
        "api-help-datatypes-header": "Type de données",
+       "api-help-datatypes": "Certains types de paramètre dans les requêtes de l’API nécessitent plus d’explication :\n;boolean\n:Les paramètres booléens fonctionnent comme des cases à cocher HTML : si le paramètre est spécifié, quelle que soit sa valeur, il est considéré comme vrai. Pour une valeur fausse, enlever complètement le paramètre.\n;timestamp\n:Les horodatages peuvent être spécifiés sous différentes formes. Date et heure ISO 8601 est recommandé. Toutes les heures sont en UTC, tout fuseau horaire inclus est ignoré.\n:* Date et heure ISO 8601, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (la ponctuation et <kbd>Z</kbd> sont facultatifs)\n:* Date et heure ISO 8601 avec fractions de seconde (ignorées), <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (tirets, deux-points et <kbd>Z</kbd> sont facultatifs)\n:* Format MédiaWiki, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Format numérique générique, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (fuseau horaire facultatif en <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, ou <kbd>-<var>##</var></kbd> sont ignorés)\n:* Format EXIF, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:*Format RFC 2822 (le fuseau horaire est facultatif), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Format RFC 850 (le fuseau horaire est facultatif), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Format ctime C, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Secondes depuis 1970-01-01T00:00:00Z sous forme d’entier de 1 à 13 chiffres (sans <kbd>0</kbd>)\n:* La chaîne <kbd>now</kbd>",
+       "api-help-param-type-limit": "Type : entier ou <kbd>max</kbd>",
+       "api-help-param-type-integer": "Type : {{PLURAL:$1|1=entier|2=liste d’entiers}}",
+       "api-help-param-type-boolean": "Type : booléen ([[Special:ApiHelp/main#main/datatypes|détails]])",
+       "api-help-param-type-timestamp": "Type : {{PLURAL:$1|1=horodatage|2=liste d’horodatages}} ([[Special:ApiHelp/main#main/datatypes|formats autorisés]])",
+       "api-help-param-type-user": "Type : {{PLURAL:$1|1=nom d’utilisateur|2=liste de noms d’utilisateur}}",
        "api-help-param-list": "{{PLURAL:$1|1=Une valeur|2=Valeurs (séparées par <kbd>{{!}}</kbd>)}} : $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Doit être vide|Peut être vide, ou $2}}",
        "api-help-param-limit": "Pas plus de $1 autorisé.",
index 3a98d08..7a3355a 100644 (file)
        "apihelp-query-param-export": "Exportar as revisións actuais de todas as páxinas dadas ou xeneradas.",
        "apihelp-query-param-exportnowrap": "Devolver o XML exportado sen incluílo nun resultado XML (mesmo formato que [[Special:Export]]). Só pode usarse con  $1export.",
        "apihelp-query-param-iwurl": "Se fai falta obter a URL completa se o título é unha ligazón interwiki.",
-       "apihelp-query-param-continue": "Cando está presente, formatea query-continue como pares clave-valor que simplemente serán mesturados na consulta orixinal. Este parámetro debe fixarse a unha cadea baleira na consulta inicial.\n\nEste parámetro está recomendado para todos os novos desenvolvementos, e será o usado por defecto na seguinte versión da API.",
-       "apihelp-query-param-rawcontinue": "Actualmente ignorado. No futuro, <var>$1continue</var> virá por defecto e será necesario para recibir os datos en bruto de <samp>query-continue</samp>.",
+       "apihelp-query-param-rawcontinue": "Devolver os datos en bruto de <samp>query-continue</samp> para continuar.",
        "apihelp-query-example-revisions": "Consultar [[Special:ApiHelp/query+siteinfo|información do sitio]] e [[Special:ApiHelp/query+revisions|as revisións]] da <kbd>Páxina Principal</kbd>.",
        "apihelp-query-example-allpages": "Buscar revisións de páxinas que comecen por <kbd>API/</kbd>.",
        "apihelp-query+allcategories-description": "Numerar tódalas categorías",
        "api-help-param-type-limit": "Tipo: enteiro ou <kbd>max</kbd>",
        "api-help-param-type-integer": "Tipo: {{PLURAL:$1|1=enteiro|2=lista de enteiros}}",
        "api-help-param-type-boolean": "Tipo: booleano ([[Special:ApiHelp/main#main/datatypes|detalles]])",
-       "api-help-param-type-password": "",
        "api-help-param-type-timestamp": "Tipo: {{PLURAL:$1|1=selo de tempo|2=lista de selos de tempo}} ([[Special:ApiHelp/main#main/datatypes|formatos permitidos]])",
        "api-help-param-type-user": "Tipo: {{PLURAL:$1|1=nome de usuario|2=lista de nomes de usuarios}}",
        "api-help-param-list": "{{PLURAL:$1|1=Un valor|2=Valores (separados con <kbd>{{!}}</kbd>)}}: $2",
index 23cca40..d3a76ba 100644 (file)
                        "Elyashiv"
                ]
        },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|תיעוד]]\n* [[mw:API:FAQ|שו\"ת]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api רשימת דיוור]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce הודעות על API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R באגים ובקשות]\n</div>\n<strong>מצב:</strong> כל האפשרויות שמוצגות בדף הזה אמורות לעבוד, אבל ה־API עדיין בפיתוח פעיל, ויכול להשתנות בכל זמן. עשו מינוי ל [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ רשימת הדיוור mediawiki-api-announce] להודעות על עדכונים.\n\n<strong>בקשות שגויות:</strong> כשבקשות שגויות נשלחות ל־API, תישלח כותרת HTTP עם המפתח \"MediaWiki-API-Error\" ואז גם הערך של הכותרת וגם קוד השגיאה יוגדרו לאותו ערך. למידע נוסף ר' [[mw:API:Errors_and_warnings|API: שגיאות ואזהרות]].",
        "apihelp-main-param-action": "איזו פעולה לבצע.",
        "apihelp-main-param-format": "התבנית של הפלט.",
+       "apihelp-main-param-maxlag": "שיהוי מרבי יכול לשמש כשמדיה־ויקי מותקנת בצביר עם מסד נתונים משוכפל. כדי לחסוך בפעולות שגורמות יותר שיהוי בשכפול אתר, הפרמטר הזה יכול לגרום ללקוח להמתין עד ששיהוי השכפול יורד מתחת לערך שצוין. במקרה של שיהוי מוגזם, קוד השגיאה <samp>maxlag</samp> מוחזר עם הודעה כמו <samp>Waiting for $host: $lag seconds lagged</samp>.<br />ר' [[mw:Manual:Maxlag_parameter|מדריך למשתמש: פרמטר maxlag]] למידע נוסף.",
        "apihelp-main-param-smaxage": "הגדרת כותרת בקרת מטמון HTTP‏ <code>s-maxage</code> למספר כזה של שניות.",
        "apihelp-main-param-maxage": "הגדרת כותרת בקרת מטמון HTTP‏ <code>max-age</code> למספר כזה של שניות.",
+       "apihelp-main-param-assert": "לוודא שהמשתמש נכנס אם זה מוגדר ל־<kbd>user</kbd>, או שיש לו הרשאת בוט אם זה <kbd>bot</kbd>.",
+       "apihelp-main-param-requestid": "כל ערך שיינתן כאן ייכלל בתשובה. אפשר להשתמש בזה כדי להבדיל בין בקשות.",
+       "apihelp-main-param-servedby": "לכלול את שם המארח ששירת את הבקשה בתוצאות.",
        "apihelp-main-param-curtimestamp": "הכללת חותמת הזמן הנוכחית בתוצאה.",
+       "apihelp-main-param-origin": "בעת גישה ל־API עם בקשת AJAX חוצה מתחמים (CORS), יש להציב כאן את המתחם שממנו יוצאת הבקשה. זה היה להיות כלול בכל בקשה מקדימה, ולכן הוא חייב להיות חלק מה־URI של הבקשה (לא גוף ה־POST). זה חייב להיות תואם במדויק לאחד המקורות בכותרת <code>Origin</code>, כך שזה צריך להיות מוגדר למשהו כמו <kbd>https://en.wikipedia.org</kbd> או <kbd>https://meta.wikimedia.org</kbd>. אם הפרמטר הזה אינו תואם לכותרת <code>Origin</code>, תוחזר תשובת 403. אם הפרמטר הזה תורם לכותרת <code>Origin</code> והמקור נמצא ברשימה הלבנה, תוגדר כותרת <code>Access-Control-Allow-Origin</code>.",
+       "apihelp-main-param-uselang": "באיזו שפה להשתמש לתרגומי הודעות. אפשר לקבל רשימת קודים מ־<kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> עם <kbd>siprop=languages</kbd> או לציין <kbd>user</kbd> כדי להשתמש בהעדפת השפה של המשתמש הנוכחי, או להגדיר את <kbd>content</kbd> להשתמש בקוד השפה של הוויקי הזה.",
        "apihelp-block-description": "חסימת משתמש.",
        "apihelp-block-param-user": "שם משתמש, כתובת IP, או טווח IP שהנך רוצה לחסום.",
+       "apihelp-block-param-expiry": "זמן תפוגה. יכול להיות יחסי (למשל <kbd>5 months</kbd> או <kbd>2 weeks</kbd>) או מוחלט (למשל <kbd>2014-09-18T12:34:56Z</kbd>). אם זה מוגדר ל־<kbd>infinite</kbd>‏, <kbd>indefinite</kbd>, או <kbd>never</kbd>, החסימה לא תפוג לעולם.",
        "apihelp-block-param-reason": "סיבה לחסימה.",
        "apihelp-block-param-anononly": "לחסום משתמשים אלמוניים בלבד (דהיינו, השבתת עריכות אלמוניות מכתובת ה־IP הזאת)",
        "apihelp-block-param-nocreate": "מניעת יצירת חשבונות",
        "apihelp-block-param-autoblock": "חסימה אוטומטית גם של כתובת ה־IP האחרונה שהשתמש בה ושל כל כתובת IP שינסה להשתמש בה בעתיד.",
+       "apihelp-block-param-reblock": "אם המשתמש כבר חסום, לדרוס את החסימה הנוכחית.",
+       "apihelp-block-param-watchuser": "לעקוב אחרי דף המשתמש ודף השיחה של המשתמש או של כתובת ה־IP.",
+       "apihelp-checktoken-param-type": "סוג האסימון שבבדיקה.",
+       "apihelp-checktoken-param-token": "איזה אסימון לבדוק.",
+       "apihelp-checktoken-param-maxtokenage": "הגיל המרבי המותר של האסימון, בשניות.",
+       "apihelp-checktoken-example-simple": "בדיקת התקינות של אסימון <kbd>csrf</kbd>.",
        "apihelp-compare-param-fromtitle": "כותרת ראשונה להשוואה.",
        "apihelp-compare-param-fromid": "מס׳ זיהוי של העמוד הראשון להשוואה.",
        "apihelp-compare-param-fromrev": "גרסה ראשונה להשוואה.",
        "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-description": "יצירה ועריכה של דפים.",
        "apihelp-edit-param-title": "שם הדף לעריכה. לא לשימוש עם <var>$1pageid</var>.",
        "apihelp-edit-param-pageid": "מזהה הדף לעריכה. לא לשימוש עם <var>$1title</var>.",
+       "apihelp-edit-param-section": "מספר הפסקה <kbd>0</kbd> לפסקה העליונה, <kbd>new</kbd> לפסקה חדשה.",
+       "apihelp-edit-param-sectiontitle": "הכותרת לפסקה החדשה.",
        "apihelp-edit-param-text": "תוכן הדף.",
+       "apihelp-edit-param-summary": "תקציר עריכה. גם גותרת פסקה כש־$1section=new ו־$1sectiontitle אינו מוגדר.",
        "apihelp-edit-param-tags": "אילו תגי שינוי להחיל על הגרסה.",
        "apihelp-edit-param-minor": "עריכה משנית.",
        "apihelp-edit-param-notminor": "שינוי לא משני.",
        "apihelp-edit-param-bot": "סימון עריכה זו כבוט.",
+       "apihelp-edit-param-basetimestamp": "חותם־זמן של גרסת הבסיס, משמש לזיהוי התנגשויות עריכה. אפשר לקבל אותו באמצעות [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-recreate": "לעקוב את כל הטעויות על כך שהדף נמחק בינתיים.",
+       "apihelp-edit-param-createonly": "לא לערוך את הדף אם הוא כבר קיים.",
+       "apihelp-edit-param-nocreate": "לזרוק שגיאה אם הדף אינו קיים.",
        "apihelp-edit-param-watch": "הוספת העמוד לרשימת המעקב של המשתמש הנוכחי.",
        "apihelp-edit-param-unwatch": "הסרת הדף מרשימת המעקב של של המשתמש הנוכחי.",
+       "apihelp-edit-param-watchlist": "להוסיף את הדף לרשימת המעקב של המשתמש הנוכחי או להסיר אותו משם, להשתמש בהעדפות, או לא לשנות את מצב המעקב.",
        "apihelp-edit-example-edit": "עריכת דף",
        "apihelp-emailuser-description": "שליחת דוא\"ל למשתמש.",
+       "apihelp-emailuser-param-target": "לאיזה משתמש לשלוח דוא\"ל.",
+       "apihelp-emailuser-param-subject": "כותרת נושא.",
+       "apihelp-emailuser-param-text": "גוף הדואר.",
+       "apihelp-emailuser-param-ccme": "שליחת עותק של הדואר הזה אליי.",
+       "apihelp-expandtemplates-description": "הרחבת כל התבניות בקוד הוויקי.",
        "apihelp-expandtemplates-param-title": "כותרת הדף.",
+       "apihelp-expandtemplates-param-text": "איזה קוד ויקי להמיר.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "קוד הוויקי המורחב.",
        "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה.",
        "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה בתור מחרוזת JSON.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "עץ פענוח XML של הקלט.",
+       "apihelp-expandtemplates-param-includecomments": "האם לכלול הערות HTML בפלט.",
+       "apihelp-expandtemplates-param-generatexml": "יצירת עץ פענוח XML (מוחלף ב־$1prop=parsetree).",
+       "apihelp-feedcontributions-description": "החזרת הזנת תרומות משתמש.",
        "apihelp-feedcontributions-param-feedformat": "תסדיר ההזנה.",
+       "apihelp-feedcontributions-param-user": "לקבל תרומות של אילו משמשים.",
+       "apihelp-feedcontributions-param-namespace": "לפי איזה מרחב שם לסנן את התרומות.",
        "apihelp-feedcontributions-param-year": "החל משנה (ולפני כן).",
        "apihelp-feedcontributions-param-month": "החל מחודש (ולפני כן).",
        "apihelp-feedcontributions-param-tagfilter": "סינון תרומות בעלות התגיות הבאות.",
        "apihelp-feedcontributions-param-deletedonly": "הצגת תרומות שנמחקו בלבד.",
        "apihelp-feedcontributions-param-toponly": "הצגת עריכות שהן הגרסה העדכנית ביותר בלבד.",
+       "apihelp-feedcontributions-param-newonly": "להציג רק עריכות שהן יצירות דפים.",
+       "apihelp-feedcontributions-param-showsizediff": "להציג את ההבדל בגודל בין גרסאות.",
        "apihelp-feedcontributions-example-simple": "החזרת תרומות עבור המשתמש <kbd>Example</kbd>.",
+       "apihelp-feedrecentchanges-description": "להחזיר הזנת שינויים אחרונים.",
        "apihelp-feedrecentchanges-param-feedformat": "תסדיר ההזנה.",
+       "apihelp-feedrecentchanges-param-namespace": "לאיזה מרחב שם להגביל את התוצאות.",
+       "apihelp-feedrecentchanges-param-invert": "כל מרחבי השם למעט זה שנבחר.",
+       "apihelp-feedrecentchanges-param-associated": "לכלול מרחב שם משויך (שיחה או ראשי).",
+       "apihelp-feedrecentchanges-param-days": "לכמה ימים להגביל את התוצאות.",
+       "apihelp-feedrecentchanges-param-limit": "המספר המרבי של התוצאות להחזיר.",
+       "apihelp-feedrecentchanges-param-from": "להציג תוצאות מאז.",
        "apihelp-feedrecentchanges-param-hideminor": "הסתרת שינוים משניים.",
        "apihelp-feedrecentchanges-param-hidebots": "הסתרת שינויים שנעשו על ידי בוטים.",
        "apihelp-feedrecentchanges-param-hideanons": "הסתרת שינויים שנעשו על ידי אנונימים.",
        "apihelp-feedrecentchanges-param-hidemyself": "הסתרת שינוים שנעשו על ידי המשתמש הנוכחי.",
        "apihelp-feedrecentchanges-param-tagfilter": "סינון לפי תגית.",
        "apihelp-feedrecentchanges-param-target": "הצגת שינויים שנעשו בדפים המקושרים לדף זה בלבד.",
+       "apihelp-feedrecentchanges-param-showlinkedto": "להציג את השינויים בדפים שמקושרים לדף שנבחר במקום זה.",
        "apihelp-feedrecentchanges-example-simple": "הצגת שינויים אחרונים.",
        "apihelp-feedrecentchanges-example-30days": "הצגת שינויים אחרונים עבור 30 ימים.",
+       "apihelp-feedwatchlist-description": "החזרת הזנת רשימת מעקב.",
        "apihelp-feedwatchlist-param-feedformat": "תסדיר ההזנה.",
+       "apihelp-feedwatchlist-param-hours": "רשימת דפים ששונו בתוך מספר כזה של שעות מעכשיו.",
+       "apihelp-feedwatchlist-param-linktosections": "לקשר ישר לפסקאות ששונו אם אפשר.",
+       "apihelp-feedwatchlist-example-default": "הצגת הזנת רשימת מעקב.",
+       "apihelp-feedwatchlist-example-all6hrs": "להציג את כל השינויים בדפים שבמעקב ב־6 השעות האחרונות.",
+       "apihelp-filerevert-description": "לשחזר את הקובץ לגרסה ישנה יותר.",
+       "apihelp-filerevert-param-filename": "שם קובץ היעד, ללא התחילית File:.",
+       "apihelp-filerevert-param-comment": "הערת העלאה.",
+       "apihelp-filerevert-param-archivename": "שם הארכיון של הגרסה שאליה ישוחזר הקובץ.",
        "apihelp-help-description": "הצגת עזרה עבור היחידות שצוינו.",
+       "apihelp-help-param-recursivesubmodules": "לכלול עזרה לתת־יחידות באופן רקורסיבי.",
        "apihelp-help-param-helpformat": "תסדיר פלט העזרה.",
        "apihelp-help-param-toc": "לכלול תוכן עניינים בפלט HTML.",
+       "apihelp-help-example-main": "עזרה ליחידה הראשית.",
+       "apihelp-help-example-recursive": "כל העזרה בדף אחד.",
+       "apihelp-help-example-help": "עזרה ליחידת העזרה עצמה.",
+       "apihelp-help-example-query": "עזרה לשתי תת־יחידות של שאילתה.",
+       "apihelp-imagerotate-description": "סיבוב של תמונה אחת או יותר.",
+       "apihelp-imagerotate-param-rotation": "בכמה מעלות לסובב בכיוון השעון.",
+       "apihelp-imagerotate-example-simple": "לסובב את <kbd>File:Example.png</kbd> ב־<kbd>90</kbd> מעלות.",
+       "apihelp-imagerotate-example-generator": "לסובב את כל התמונות ב־<kbd>Category:Flip</kbd> ב־<kbd>180</kbd> מעלות.",
+       "apihelp-import-description": "לייבא דף מוויקי אחר או מקובץ XML.\n\nיש לשים לב לכך שפעולת HTTP POST צריכה להיעשות בתור העלאת קובץ (כלומר, עם multipart/form-data) בזמן שליחת קובץ לפרמטר <var>xml</var>.",
+       "apihelp-import-param-summary": "תקציר יבוא.",
        "apihelp-import-param-xml": "קובץ XML שהועלה.",
+       "apihelp-import-param-interwikisource": "ליבוא בין אתרי ויקי: מאיזה ויקי לייבא.",
+       "apihelp-import-param-interwikipage": "ליבוא בין אתרי ויקי: איזה דף לייבא.",
+       "apihelp-import-param-fullhistory": "ליבוא בין אתרי ויקי: לייבר את ההיסטוריה המלאה, לא רק את הגרסה הנוכחית.",
+       "apihelp-import-param-templates": "ליבוא בין אתרי ויקי: לייבא גם את כל התבניות המוכללות.",
+       "apihelp-import-param-namespace": "לייבא למרחב השם הזה. לא ניתן להשתמש בזה יחד עם <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "לייבא בתור תת־משנה של הדף הזה. לא ניתן להשתמש בזה יחד עם <var>$1namespace</var>.",
+       "apihelp-import-example-import": "לייבא את [[meta:Help:ParserFunctions]] למרחב השם 100 עם היסטוריה מלאה.",
        "apihelp-login-param-name": "שם משתמש.",
        "apihelp-login-param-password": "ססמה.",
        "apihelp-login-param-domain": "שם מתחם (רשות).",
        "apihelp-opensearch-param-search": "מחרוזת לחיפוש.",
        "apihelp-opensearch-param-namespace": "שמות מתחם לחיפוש.",
        "apihelp-opensearch-param-format": "תסדיר הפלט.",
+       "apihelp-options-param-reset": "אתחול ההעדפות לבררות המחדל של האתר.",
+       "apihelp-options-example-reset": "אתחול כל ההעדפות.",
+       "apihelp-paraminfo-description": "קבלת מידע על יחידות של API.",
+       "apihelp-paraminfo-param-helpformat": "תסדיר מחרוזות העזרה.",
+       "apihelp-paraminfo-param-pagesetmodule": "קבלת מידע גם על יחידת pageset (שמספק את titles=‎ וידידיו).",
+       "apihelp-parse-param-summary": "התקציר שצריך לפענח.",
+       "apihelp-parse-param-prop": "אילו פריטי מידע לקבל:",
+       "apihelp-parse-paramvalue-prop-text": "נותן טקסט מפוענח של קוד הוויקי.",
+       "apihelp-parse-paramvalue-prop-langlinks": "נותן קישורי שפה בקוד הוויקי המפוענח.",
+       "apihelp-parse-paramvalue-prop-categories": "נותן קטגוריות בקוד ויקי מפוענח.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "נותן את גרסת ה־HTML של הקטגוריות.",
+       "apihelp-parse-paramvalue-prop-links": "נותן קישורים פנימיים בקוד הוויקי המפוענח.",
+       "apihelp-parse-paramvalue-prop-templates": "נותן תבניות בקוד הוויקי המפוענח.",
+       "apihelp-parse-paramvalue-prop-images": "נותן תמונות בקוד הוויקי המפוענח.",
        "apihelp-parse-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה.",
        "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה בתור מחרוזת JSON.",
        "apihelp-protect-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
        "apihelp-query-param-list": "אילו רשימות לקבל.",
        "apihelp-query+allcategories-description": "מניין של כל הקטגוריות.",
        "apihelp-query+allcategories-param-from": "הקטגוריה ממנה להתחיל למנות.",
+       "apihelp-query+allcategories-param-to": "באיזו קטגוריה להפסיק לרשום.",
+       "apihelp-query+allcategories-param-prefix": "חיפוש כל כותרות הקטגוריות שמתחילות בערך הזה.",
        "apihelp-query+allcategories-param-dir": "באיזה כיוון למיין.",
+       "apihelp-query+allcategories-param-min": "להחזיר רק קטגוריות עם מספר כזה לפחות של חברים.",
+       "apihelp-query+allcategories-param-max": "להחזיר רק קטגוריות עם מספר כזה לכל היותר של חברים.",
        "apihelp-query+allcategories-param-limit": "כמה קטגוריות להחזיר.",
+       "apihelp-query+allcategories-param-prop": "אילו מאפיינים לקבל:\n;size:הוספת מספר הדפים בקטגוריה.\n;hidden:מתייג קטגוריות מוסתרות עם _&#95;HIDDENCAT_&#95;.",
+       "apihelp-query+allcategories-example-size": "רשימת קטגוריות עם מידע על מספר הדפים בכל אחת מהן.",
        "apihelp-query+alldeletedrevisions-param-start": "באיזה חותם זמן להתחיל לרשום.",
        "apihelp-query+alldeletedrevisions-param-end": "באיזה חותם זמן להפסיק לרשום.",
        "apihelp-query+alldeletedrevisions-param-from": "להתחיל את הרשימה בשם הזה.",
        "apihelp-xmlfm-description": "לפלוט נתונים בתסדיר XML (עם הדפסה יפה ב־HTML).",
        "apihelp-yamlfm-description": "לפלוט נתונים בתסדיר YAML (עם הדפסה יפה ב־HTML).",
        "api-format-title": "תוצאה של API של מדיה־ויקי",
-       "api-format-prettyprint-header": "זהו ייצוג ב־HTML של תסדיר $1. תסדיר HTML טוב לתיקון שגיאות, אבל אינו מתאים ליישומים.\n\nיש לציין את הפרמטר format כדי לשנות את תסדיר הפלט. כדי לראות ייצוג של תסדיר $1 לא ב־HTML יש לרשום format=$2.\n\nר' את [https://www.mediawiki.org/wiki/API התיעוד המלא], או את [[Special:ApiHelp/main|העזרה של API]] למידע נוסף.",
+       "api-format-prettyprint-header": "זהו ייצוג ב־HTML של תסדיר $1. תסדיר HTML טוב לתיקון שגיאות, אבל אינו מתאים ליישומים.\n\nיש לציין את הפרמטר <var>format</var> כדי לשנות את תסדיר הפלט. כדי לראות ייצוג של תסדיר $1 לא ב־HTML יש לרשום <kbd>format=$2</kbd>.\n\nר' את [[mw:API|התיעוד המלא]], או את [[Special:ApiHelp/main|העזרה של API]] למידע נוסף.",
        "api-orm-param-props": "באילו שדות לעשות שאילתה.",
        "api-orm-param-limit": "מספר מרבי של שורות להחזיר.",
        "api-pageset-param-titles": "רשימת כותרות.",
        "api-pageset-param-pageids": "רשימת מזהי דף לעובד עליהם.",
        "api-pageset-param-revids": "רשימת מזהי גרסה לעבוד עליהם.",
-       "api-pageset-param-generator": "קבלת רשימת דפים לעבוד עליהם על־ידי הרצת יחידת שאילתה שצוינה.\n\n'''לתשומת לבך:''' לשמות בפרמטר generator צריכה להיות התחילית \"g\", ר' דוגמאות.",
-       "api-pageset-param-redirects-generator": "פתרון אוטומטי של הפניות ב־$1titles, ב־$1pageids, וב־$1revids, ודפים שמחזיר $1generator.",
-       "api-pageset-param-redirects-nogenerator": "פתרון אוטומטי של הפניות ב־$1titles, ב־$1pageids וב־$1revids.",
+       "api-pageset-param-generator": "קבלת רשימת דפים לעבוד עליהם על־ידי הרצת יחידת שאילתה שצוינה.\n\n<strong>לתשומת לבך:</strong> לשמות בפרמטר generator צריכה להיות התחילית \"g\", ר' דוגמאות.",
+       "api-pageset-param-redirects-generator": "פתרון אוטומטי של הפניות ב־<var>$1titles</var>, ב־<var>$1pageids</var>, וב־<var>$1revids</var>, ודפים שמחזיר <var>$1generator</var>.",
+       "api-pageset-param-redirects-nogenerator": "פתרון אוטומטי של הפניות ב־<var>$1titles</var>, ב־<var>$1pageids</var> וב־<var>$1pageids</var>.",
        "api-pageset-param-converttitles": "המרת כותרות לסוגי כתב אחרים אם זה נחוץ. זה עובד רק אם שפת הכותרת של הוויקי תומכת בהמרת סוגי כתב. השפות שתמכות בהמרת סוגי כתב הן $1.",
        "api-help-title": "עזרה של MediaWiki API",
        "api-help-lead": "זהו דף תיעוד של API שנוצר באופן אוטומטי.\n\nתיעוד ודוגמאות: https://www.mediawiki.org/wiki/API",
        "api-help-main-header": "יחידה ראשית",
        "api-help-flag-deprecated": "יחידה זו אינה מומלצת לשימוש.",
-       "api-help-flag-internal": "<strong>×\99×\97×\99×\93×\94 ×\96×\95 ×\94×\99×\90 ×¤× ×\99×\9e×\99ת ×\90×\95 ×\9c×\90 ×\99צ×\99×\91×\94.</strong>\n×\94פע×\95×\9c×\94 ×©×\9c×\94 ×¢×©×\95×\99ה להשתנות ללא הודעה מוקדמת.",
+       "api-help-flag-internal": "<strong>×\94×\99×\97×\99×\93×\94 ×\94×\96×\90ת ×\94×\99×\90 ×¤× ×\99×\9e×\99ת ×\90×\95 ×\91×\9cת×\99Ö¾×\99צ×\99×\91×\94.</strong> ×\94פע×\95×\9c×\94 ×©×\9c×\94 ×\99×\9b×\95×\9cה להשתנות ללא הודעה מוקדמת.",
        "api-help-flag-readrights": "יחידה זו דורשת הרשאות קריאה.",
        "api-help-flag-writerights": "יחידה זו דורשת הרשאות כתיבה.",
        "api-help-flag-mustbeposted": "יחידה זו מקבלת רק בקשות POST.",
-       "api-help-flag-generator": "×\94×\99×\97×\99×\93×\94 ×\94×\96×\90ת ×\99×\9b×\95×\9c×\94 ×\9c×\94×\99×\95ת מחולל.",
+       "api-help-flag-generator": "×\90פשר ×\9c×\94שת×\9eש ×\91×\99×\97×\99×\93×\94 ×\94×\96×\90ת ×\91ת×\95ר מחולל.",
        "api-help-source": "מקור: $1",
        "api-help-source-unknown": "מקור: <span class=\"apihelp-unknown\">לא ידוע</span>",
-       "api-help-license": "רישיון: [[$1|$2]]",
+       "api-help-license": "רישיון: <span dir=\"auto\">[[$1|$2]]</span>",
        "api-help-license-noname": "רישיון: [[$1|ראו קישור]]",
        "api-help-license-unknown": "רישיון: <span class=\"apihelp-unknown\">לא ידוע</span>",
        "api-help-parameters": "{{PLURAL:$1|פרמטר|פרמטרים}}:",
        "api-help-param-deprecated": "מיושן.",
        "api-help-param-required": "פרמטר זה נדרש.",
-       "api-help-param-list": "{{PLURAL:$1|1=ערך אחד|2=ערכים (מופרדים באמצעות \"{{!}}\")}}: $2",
+       "api-help-datatypes-header": "סוגי נתונים",
+       "api-help-datatypes": "חלק מסוגי הפרמטרים בבקשות API דורשים הסבר נוסף:\n;בוליאני (boolean)\n:פרמטרים בוליאניים עובדים כמו תיבות סימון של HTML: אם הפרמטר צוין, בלי קשר לערך שלו, הוא אמת (true). בשביל ערך שקר (false), יש להשמיט את הפרמטר לגמרי.\n;חותם־זמן (timestamp)\n:אפשר לכתוב חותמי־זמן במספר תסדירים. תאריך ושעה לפי ISO 8601 הוא הדבר המומלת. כל הזמנים מצוינים ב־ UTC, לא תהיה השפעה לשום אזור זמן שיצוין.\n:* תאריך ושעה לפי ISO 8601‏, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (לא חובה לכתוב פיסוק ו־<kbd>Z</kbd>)\n:* תאריך ושעה לפי ISO 8601 עם חלקי שנייה (שלא תהיה להם שום השפעה), <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (לא חובה לכתוב קווים מפרידים, נקודתיים ו־<kbd>Z</kbd>)\n:* תסדיר MediaWiki‏, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* תסדיר מספרי כללי, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (לאזור זמן אופציונלי של <kbd>GMT</kbd>‏, <kbd dir=\"ltr\">+<var>##</var></kbd>, או <kbd dir=\"ltr\">-<var>##</var></kbd> אין השפעה)\n:* תסדיר EXIF‏, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* תסדיר RFC 2822 (אפשר להשמיט את אזור הזמן), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* תסדיר RFC 850 (אפשר להשמיט את אזור הזמן), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* תסדיר C ctime‏, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* שניות מאז 1970-01-01T00:00:00Z בתור מספר שלך בין 1 ל־13 (לא כולל <kbd>0</kbd>)\n:* המחרוזת <kbd>now</kbd>",
+       "api-help-param-type-integer": "סוג: {{PLURAL:$1|1=מספר שלם|2=רשימת מספרים שלמים}}",
+       "api-help-param-type-boolean": "סוג: בוליאני ([[Special:ApiHelp/main#main/datatypes|פרטים]])",
+       "api-help-param-list": "{{PLURAL:$1|1=ערך אחד|2=ערכים (מופרדים באמצעות \"<kbd>{{!}}</kbd>\")}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=חייב להיות ריק|יכול להיות ריק או $2}}",
        "api-help-param-limit": "מספר הפרמטרים לא יכול להיות גדול מ־$1.",
        "api-help-param-limit2": "המספר המרבי המותר הוא $1 (עבור בוטים – $2).",
        "api-help-param-default-empty": "ברירת מחדל: <span class=\"apihelp-empty\">(ריק)</span>",
        "api-help-param-token": "אסימון \"$1\" אוחזר מ־[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
        "api-help-param-token-webui": "לשם תאימות, גם האסימון שמשמש בממשק דפדפן מתקבל.",
-       "api-help-param-disabled-in-miser-mode": "כבוי בשל [https://www.mediawiki.org/wiki/Manual:$wgMiserMode מצב חיסכון].",
-       "api-help-param-limited-in-miser-mode": "'''לתשומת לבך:''' בשל [https://www.mediawiki.org/wiki/Manual:$wgMiserMode מצב חיסכון], שימוש בזה יכול להוביל לפחות מ־\"$1limit\" תוצאות לפני המשך; במצבים קיצוניים ייתכן שיחזרו אפס תוצאות.",
+       "api-help-param-disabled-in-miser-mode": "כבוי בשל [[mw:Manual:$wgMiserMode|מצב חיסכון]].",
+       "api-help-param-limited-in-miser-mode": "<strong>לתשומת לבך:</strong> בשל [[mw:Manual:$wgMiserMode|מצב חיסכון]], שימוש בזה יכול להוביל לפחות מ־<var>$1limit</var> תוצאות לפני המשך; במצבים קיצוניים ייתכן שיחזרו אפס תוצאות.",
        "api-help-param-direction": "באיזה כיוון למספר:\n;newer:לרשום את הישנים ביותר בהתחלה. לתשומת לבך: $1start חייב להיות לפני $1end.\n;older:לרשום את החדשים ביותר בהתחלה (בררת מחדל). לתשומת לבך: $1start חייב להיות אחרי $1end.",
        "api-help-param-continue": "כשיש עוד תוצאות, להשתמש בזה בשביל להמשיך.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(ללא תיאור)</span>",
index 9be0c62..351bac7 100644 (file)
        "apihelp-query-param-prop": "Wat för en Eijeschaffte holle för de affjerohchte Sigge.",
        "apihelp-query-param-list": "Wat för en Leßte holle.",
        "apihelp-query-param-meta": "Wat för en Metta_Dahte ze holle.",
+       "apihelp-query-param-rawcontinue": "Jivv Rühdahte „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">query-continue</var>“ för et Wigger Maache us.",
        "apihelp-query-example-allpages": "Holl Väsjohne vun Sigge, di met „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">API</kbd>“ bejenne.",
        "apihelp-query+allcategories-description": "Alle Saachjroppe opzälle.",
        "apihelp-query+allcategories-param-from": "De Saachjropp, vun woh aan opzälle.",
index 051ef07..c436d4f 100644 (file)
@@ -8,7 +8,9 @@
                        "McDutchie",
                        "Raymond",
                        "Anomie",
-                       "Nemo bis"
+                       "Nemo bis",
+                       "Amire80",
+                       "Siebrand"
                ]
        },
        "apihelp-main-description": "{{doc-apihelp-description|main}}",
        "apihelp-feedwatchlist-example-all6hrs": "{{doc-apihelp-example|feedwatchlist}}",
        "apihelp-filerevert-description": "{{doc-apihelp-description|filerevert}}",
        "apihelp-filerevert-param-filename": "{{doc-apihelp-param|filerevert|filename}}",
-       "apihelp-filerevert-param-comment": "{{doc-apihelp-param|filerevert|comment}}",
+       "apihelp-filerevert-param-comment": "Translate as \"a comment about the upload\".\n\n{{doc-apihelp-param|filerevert|comment}}",
        "apihelp-filerevert-param-archivename": "{{doc-apihelp-param|filerevert|archivename}}",
        "apihelp-filerevert-example-revert": "{{doc-apihelp-example|filerevert}}",
        "apihelp-help-description": "{{doc-apihelp-description|help}}",
        "api-help-fallback-description": "{{notranslate}}",
        "api-help-fallback-parameter": "{{notranslate}}",
        "api-help-fallback-example": "{{notranslate}}",
-       "api-help-flags": "{{optional}} Label for the API help flags box\n\nParameters:\n* $1 - Number of flags to be displayed",
+       "api-help-flags": "{{ignored}} Label for the API help flags box\n\nParameters:\n* $1 - Number of flags to be displayed",
        "api-help-flag-deprecated": "Flag displayed for an API module that is deprecated",
        "api-help-flag-internal": "Flag displayed for an API module that is considered internal or unstable",
        "api-help-flag-readrights": "Flag displayed for an API module that requires read rights",
        "api-help-license": "Displayed in the flags box to indicate the license of an API module.\n\nParameters:\n* $1 - Page to link to display the full license text\n* $2 - Display text for the link\n\nSee also:\n* {{msg-mw|api-help-license-noname}}\n* {{msg-mw|api-help-license-unknown}}",
        "api-help-license-noname": "Displayed in the flags box to indicate the license of an API module, when the tag for the license is not known.\n\nParameters:\n* $1 - Page to link to display the full license text\n\nSee also:\n* {{msg-mw|api-help-license}}\n* {{msg-mw|api-help-license-unknown}}",
        "api-help-license-unknown": "Displayed in the flags box to indicate that the license of the API module is not known.\n\nSee also:\n* {{msg-mw|api-help-license}}\n* {{msg-mw|api-help-license-noname}}",
-       "api-help-help-urls": "{{optional}} Label for the API help urls section\n\nParameters:\n* $1 - Number of urls to be displayed",
+       "api-help-help-urls": "{{ignored}} Label for the API help urls section\n\nParameters:\n* $1 - Number of urls to be displayed",
        "api-help-parameters": "Label for the API help parameters section\n\nParameters:\n* $1 - Number of parameters to be displayed\n{{Identical|Parameter}}",
        "api-help-param-deprecated": "Displayed in the API help for any deprecated parameter\n{{Identical|Deprecated}}",
        "api-help-param-required": "Displayed in the API help for any required parameter",
        "api-help-param-type-limit": "{{technical}} {{doc-important|Do not translate text inside &lt;kbd%gt; tags}} Used to indicate that a parameter is a \"limit\" type. Parameters:\n* $1 - Always 1.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-integer": "{{technical}} Used to indicate that a parameter is an integer or list of integers. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-boolean": "{{technical}} {{doc-important|Do not translate <code>Special:ApiHelp</code> in this message.}} Used to indicate that a parameter is a boolean. Parameters:\n* $1 - Always 1.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
-       "api-help-param-type-password": "{{optional}}{{technical}} Used to indicate that a parameter is a password or list of passwords. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
+       "api-help-param-type-password": "{{ignored}}{{technical}} Used to indicate that a parameter is a password or list of passwords. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-timestamp": "{{technical}} {{doc-important|Do not translate <code>Special:ApiHelp</code> in this message.}} Used to indicate that a parameter is a timestamp or list of timestamps. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-user": "{{technical}} Used to indicate that a parameter is a username or list of usernames. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-list": "Used to display the possible values for a parameter taking a list of values\n\nParameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes any number of values\n* $2 - Comma-separated list of values, possibly formatted using {{msg-mw|api-help-param-list-can-be-empty}}\n{{Identical|Value}}",
index d0c124c..15eba5b 100644 (file)
        "apihelp-query-param-prop": "要为已查询页面获取的属性。",
        "apihelp-query-param-list": "要获取的列表。",
        "apihelp-query-param-meta": "要获取的元数据。",
-       "apihelp-query-param-rawcontinue": "目前被忽略。将来<var>$1continue</var>将成为默认,且这里将需要得到原始的<samp>query-continue</samp>数据。",
+       "apihelp-query-param-exportnowrap": "返回导出XML,不需要将其包裹在一个XML结果中(与[[Special:Export]]格式相同)。只能与$1export一起使用。",
+       "apihelp-query-param-rawcontinue": "为继续返回原始<samp>query-continue</samp>数据。",
        "apihelp-query-example-revisions": "获取<kbd>Main Page</kbd>的[[Special:ApiHelp/query+siteinfo|网站信息]]和[[Special:ApiHelp/query+revisions|修订版本]]。",
        "apihelp-query-example-allpages": "获取以<kbd>API/</kbd>开头的页面的修订版本",
        "apihelp-query+allcategories-description": "枚举所有类别。",
        "apihelp-query+alltransclusions-param-limit": "要返回的总计项目。",
        "apihelp-query+alltransclusions-param-dir": "罗列所采用的方向。",
        "apihelp-query+alltransclusions-example-unique": "列出孤立嵌入标题",
+       "apihelp-query+alltransclusions-example-unique-generator": "获取所有嵌入的标题,并标记缺失的。",
        "apihelp-query+alltransclusions-example-generator": "获得包含嵌入内容的页面。",
        "apihelp-query+allusers-description": "列举所有注册用户。",
        "apihelp-query+allusers-param-from": "枚举的起始用户名。",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|模式}}:$2",
        "apihelp-query+deletedrevs-param-from": "从此标题开始列出。",
        "apihelp-query+deletedrevs-param-to": "列出至此标题为止。",
+       "apihelp-query+deletedrevs-param-unique": "每个页面只列出一个修订。",
        "apihelp-query+deletedrevs-param-tag": "只列出被此标签标记的修订。",
        "apihelp-query+deletedrevs-param-user": "只列出此用户做出的修订。",
        "apihelp-query+deletedrevs-param-excludeuser": "不要列出此用户做出的修订。",
        "apihelp-query+filearchive-param-sha1": "图片的SHA1哈希值。覆盖$1sha1base36。",
        "apihelp-query+filearchive-param-sha1base36": "基于base 36的图片的SHA1哈希值(用于MediaWiki)。",
        "apihelp-query+filearchive-example-simple": "显示已删除文件列表",
+       "apihelp-query+filerepoinfo-description": "返回有关wiki配置的图片存储库的元信息。",
        "apihelp-query+filerepoinfo-example-simple": "获得有关文件存储库的信息。",
        "apihelp-query+fileusage-description": "查找所有使用指定文件的页面。",
        "apihelp-query+fileusage-param-prop": "要获取的属性:\n;pageid:每个页面的页面ID。\n;title:每个页面的标题。\n;redirect:标记作为重定向的页面。",
        "apihelp-query+info-description": "获取基本页面信息。",
        "apihelp-query+info-param-prop": "要获取的额外属性:",
        "apihelp-query+info-paramvalue-prop-protection": "列出每个页面的保护等级。",
+       "apihelp-query+info-paramvalue-prop-talkid": "每个非讨论页面的讨论页的页面ID。",
        "apihelp-query+info-paramvalue-prop-watched": "列出每个页面的被监视状态。",
        "apihelp-query+info-paramvalue-prop-watchers": "监视人员数,如果允许。",
        "apihelp-query+info-paramvalue-prop-subjectid": "每个讨论页的母页面的页面ID。",
        "apihelp-query+search-example-simple": "搜索<kbd>meaning</kbd>。",
        "apihelp-query+search-example-text": "搜索文本<kbd>meaning</kbd>。",
        "apihelp-query+search-example-generator": "获得有关搜索<kbd>meaning</kbd>返回页面的页面信息。",
+       "apihelp-query+siteinfo-description": "返回有关网站的一般信息。",
+       "apihelp-query+siteinfo-param-prop": "要获取的信息:\n;general:全部系统信息。\n;namespaces:注册的名字空间及其规范名称列表。\n;namespacealiases:注册的名字空间别名列表。\n;specialpagealiases:特殊页面别名列表。\n;magicwords:魔术字及其别名列表。\n;statistics:返回网站统计。\n;interwikimap:返回跨wiki映射(可选过滤,可选择使用<var>$1inlanguagecode</var>本地化)。\n;dbrepllag:Returns database server with the highest replication lag.\n;usergroups:Returns user groups and the associated permissions.\n;libraries:Returns libraries installed on the wiki.\n;extensions:Returns extensions installed on the wiki.\n;fileextensions:Returns list of file extensions allowed to be uploaded.\n;rightsinfo:Returns wiki rights (license) information if available.\n;restrictions:Returns information on available restriction (protection) types.\n;languages:Returns a list of languages MediaWiki supports (optionally localised by using <var>$1inlanguagecode</var>).\n;skins:Returns a list of all enabled skins (optionally localised by using <var>$1inlanguagecode</var>, otherwise in the content language).\n;extensiontags:Returns a list of parser extension tags.\n;functionhooks:Returns a list of parser function hooks.\n;showhooks:Returns a list of all subscribed hooks (contents of <var>[[mw:Manual:$wgHooks|$wgHooks]]</var>).\n;variables:Returns a list of variable IDs.\n;protocols:Returns a list of protocols that are allowed in external links.\n;defaultoptions:Returns the default values for user preferences.",
        "apihelp-query+siteinfo-param-showalldb": "列出所有数据库服务器,不只是最落后的那个。",
        "apihelp-query+siteinfo-param-numberingroup": "列出用户组中的用户数。",
        "apihelp-query+siteinfo-param-inlanguagecode": "用于本地化语言名称(尽可能)和皮肤名称的语言代码。",
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 79f4d6c..585fcd3 100644 (file)
@@ -1113,7 +1113,8 @@ class MessageCache {
 
                if ( !$title || !$title instanceof Title ) {
                        global $wgTitle;
-                       wfDebugLog( 'GlobalTitleFail', __METHOD__ . ' called by ' . wfGetAllCallers( 5 ) . ' with no title set.' );
+                       wfDebugLog( 'GlobalTitleFail', __METHOD__ . ' called by ' .
+                               wfGetAllCallers( 5 ) . ' with no title set.' );
                        $title = $wgTitle;
                }
                // Sometimes $wgTitle isn't set either...
index 932006d..8989b2a 100644 (file)
@@ -204,7 +204,8 @@ class ChangesList extends ContextSource {
                $code = $lang->getCode();
                static $fastCharDiff = array();
                if ( !isset( $fastCharDiff[$code] ) ) {
-                       $fastCharDiff[$code] = $config->get( 'MiserMode' ) || $context->msg( 'rc-change-size' )->plain() === '$1';
+                       $fastCharDiff[$code] = $config->get( 'MiserMode' )
+                               || $context->msg( 'rc-change-size' )->plain() === '$1';
                }
 
                $formattedSize = $lang->formatNum( $szdiff );
@@ -542,6 +543,17 @@ class ChangesList extends ContextSource {
                }
        }
 
+       /**
+        * @param RecentChange $rc
+        * @return string
+        * @since 1.26
+        */
+       public function getRollback( RecentChange $rc ) {
+               $s = '';
+               $this->insertRollback( $s, $rc );
+               return $s;
+       }
+
        /**
         * @param string $s
         * @param RecentChange $rc
@@ -560,6 +572,18 @@ class ChangesList extends ContextSource {
                $s .= ' ' . $tagSummary;
        }
 
+       /**
+        * @param RecentChange $rc
+        * @param array $classes
+        * @return string
+        * @since 1.26
+        */
+       public function getTags( RecentChange $rc, array &$classes ) {
+               $s = '';
+               $this->insertTags( $s, $rc, $classes );
+               return $s;
+       }
+
        public function insertExtra( &$s, &$rc, &$classes ) {
                // Empty, used for subclasses to add anything special.
        }
index 54cde0d..545ea26 100644 (file)
@@ -304,18 +304,18 @@ class EnhancedChangesList extends ChangesList {
                        # Classes to apply -- TODO implement
                        $classes = array();
                        $type = $rcObj->mAttribs['rc_type'];
+                       $data = array();
 
                        $trClass = $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched
                                ? ' class="mw-enhanced-watched"' : '';
+                       $separator = ' <span class="mw-changeslist-separator">. .</span> ';
 
-                       $r .= '<tr' . $trClass . '><td></td><td class="mw-enhanced-rc">';
-                       $r .= $this->recentChangesFlags( array(
+                       $data['recentChangesFlags'] = array(
                                'newpage' => $type == RC_NEW,
                                'minor' => $rcObj->mAttribs['rc_minor'],
                                'unpatrolled' => $rcObj->unpatrolled,
                                'bot' => $rcObj->mAttribs['rc_bot'],
-                       ) );
-                       $r .= '&#160;</td><td class="mw-enhanced-rc-nested"><span class="mw-enhanced-rc-time">';
+                       );
 
                        $params = $queryParams;
 
@@ -340,40 +340,65 @@ class EnhancedChangesList extends ChangesList {
                                        $link = '<span class="history-deleted">' . $link . '</span> ';
                                }
                        }
-                       $r .= $link . '</span>';
+                       $data['timestampLink'] = $link;
 
+                       $currentAndLastLinks = '';
                        if ( !$type == RC_LOG || $type == RC_NEW ) {
-                               $r .= ' ' . $this->msg( 'parentheses' )->rawParams(
+                               $currentAndLastLinks .= ' ' . $this->msg( 'parentheses' )->rawParams(
                                        $rcObj->curlink .
                                                $this->message['pipe-separator'] .
                                                $rcObj->lastlink
                                )->escaped();
                        }
-                       $r .= ' <span class="mw-changeslist-separator">. .</span> ';
+                       $data['currentAndLastLinks'] = $currentAndLastLinks;
+                       $data['separatorAfterCurrentAndLastLinks'] = $separator;
 
                        # Character diff
                        if ( $RCShowChangedSize ) {
                                $cd = $this->formatCharacterDifference( $rcObj );
                                if ( $cd !== '' ) {
-                                       $r .= $cd . ' <span class="mw-changeslist-separator">. .</span> ';
+                                       $data['characterDiff'] = $cd;
+                                       $data['separatorAfterCharacterDiff'] = $separator;
                                }
                        }
 
                        if ( $rcObj->mAttribs['rc_type'] == RC_LOG ) {
-                               $r .= $this->insertLogEntry( $rcObj );
+                               $data['logEntry'] = $this->insertLogEntry( $rcObj );
                        } else {
                                # User links
-                               $r .= $rcObj->userlink;
-                               $r .= $rcObj->usertalklink;
-                               $r .= $this->insertComment( $rcObj );
+                               $data['userLink'] = $rcObj->userlink;
+                               $data['userTalkLink'] = $rcObj->usertalklink;
+                               $data['comment'] = $this->insertComment( $rcObj );
                        }
 
                        # Rollback
-                       $this->insertRollback( $r, $rcObj );
+                       $data['rollback'] = $this->getRollback( $rcObj );
+
                        # Tags
-                       $this->insertTags( $r, $rcObj, $classes );
+                       $data['tags'] = $this->getTags( $rcObj, $classes );
+
+                       // give the hook a chance to modify the data
+                       Hooks::run( 'EnhancedChangesListModifyLineData',
+                               array( $this, &$data, $block, $rcObj ) );
+
+                       $line = '<tr' . $trClass . '><td></td><td class="mw-enhanced-rc">';
+                       if ( isset( $data['recentChangesFlags'] ) ) {
+                               $line .= $this->recentChangesFlags( $data['recentChangesFlags'] );
+                               unset( $data['recentChangesFlags'] );
+                       }
+                       $line .= '&#160;</td><td class="mw-enhanced-rc-nested">';
+
+                       if ( isset( $data['timestampLink'] ) ) {
+                               $line .= '<span class="mw-enhanced-rc-time">' . $data['timestampLink'] . '</span>';
+                               unset( $data['timestampLink'] );
+                       }
+
+                       // everything else: makes it easier for extensions to add or remove data
+                       $line .= implode( '', $data );
+
+                       $line .= "</td></tr>\n";
 
-                       $r .= "</td></tr>\n";
+                       $r .= $line;
                }
                $r .= "</table>\n";
 
index 94cf1f2..e74fe80 100644 (file)
@@ -1019,6 +1019,17 @@ abstract class DatabaseBase implements IDatabase {
                return $closed;
        }
 
+       /**
+        * Make sure isOpen() returns true as a sanity check
+        *
+        * @throws DBUnexpectedError
+        */
+       protected function assertOpen() {
+               if ( !$this->isOpen() ) {
+                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
+               }
+       }
+
        /**
         * Closes underlying database connection
         * @since 1.20
@@ -1175,9 +1186,7 @@ abstract class DatabaseBase implements IDatabase {
                $queryId = MWDebug::query( $sql, $fname, $isMaster );
 
                # Avoid fatals if close() was called
-               if ( !$this->isOpen() ) {
-                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
-               }
+               $this->assertOpen();
 
                # Do the query and handle errors
                $startTime = microtime( true );
@@ -3648,9 +3657,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                # Avoid fatals if close() was called
-               if ( !$this->isOpen() ) {
-                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
-               }
+               $this->assertOpen();
 
                $this->doBegin( $fname );
                $this->mTrxTimestamp = microtime( true );
@@ -3715,9 +3722,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                # Avoid fatals if close() was called
-               if ( !$this->isOpen() ) {
-                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
-               }
+               $this->assertOpen();
 
                $this->runOnTransactionPreCommitCallbacks();
                $writeTime = $this->pendingWriteQueryDuration();
@@ -3774,9 +3779,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                # Avoid fatals if close() was called
-               if ( !$this->isOpen() ) {
-                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
-               }
+               $this->assertOpen();
 
                $this->doRollback( $fname );
                $this->mTrxIdleCallbacks = array(); // cancel
@@ -3829,6 +3832,7 @@ abstract class DatabaseBase implements IDatabase {
         * @param string $prefix Only show tables with this prefix, e.g. mw_
         * @param string $fname Calling function name
         * @throws MWException
+        * @return array
         */
        function listTables( $prefix = null, $fname = __METHOD__ ) {
                throw new MWException( 'DatabaseBase::listTables is not implemented in descendant class' );
@@ -3851,6 +3855,7 @@ abstract class DatabaseBase implements IDatabase {
         * @param string $prefix Only show VIEWs with this prefix, eg. unit_test_
         * @param string $fname Name of calling function
         * @throws MWException
+        * @return array
         * @since 1.22
         */
        public function listViews( $prefix = null, $fname = __METHOD__ ) {
@@ -3862,6 +3867,7 @@ abstract class DatabaseBase implements IDatabase {
         *
         * @param string $name Name of the database-structure to test.
         * @throws MWException
+        * @return bool
         * @since 1.22
         */
        public function isView( $name ) {
index 823d9b6..5b15147 100644 (file)
@@ -33,10 +33,12 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return resource False on error
         */
        protected function doQuery( $sql ) {
+               $conn = $this->getBindingHandle();
+
                if ( $this->bufferResults() ) {
-                       $ret = mysql_query( $sql, $this->mConn );
+                       $ret = mysql_query( $sql, $conn );
                } else {
-                       $ret = mysql_unbuffered_query( $sql, $this->mConn );
+                       $ret = mysql_unbuffered_query( $sql, $conn );
                }
 
                return $ret;
@@ -48,8 +50,7 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @throws DBConnectionError
         */
        protected function mysqlConnect( $realServer ) {
-               # Fail now
-               # Otherwise we get a suppressed fatal error, which is very hard to track down
+               # Avoid a suppressed fatal error, which is very hard to track down
                if ( !extension_loaded( 'mysql' ) ) {
                        throw new DBConnectionError(
                                $this,
@@ -73,6 +74,9 @@ class DatabaseMysql extends DatabaseMysqlBase {
 
                $conn = false;
 
+               # The kernel's default SYN retransmission period is far too slow for us,
+               # so we use a short timeout plus a manual retry. Retrying means that a small
+               # but finite rate of SYN packet loss won't cause user-visible errors.
                for ( $i = 0; $i < $numAttempts && !$conn; $i++ ) {
                        if ( $i > 1 ) {
                                usleep( 1000 );
@@ -93,8 +97,10 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return bool
         */
        protected function mysqlSetCharset( $charset ) {
+               $conn = $this->getBindingHandle();
+
                if ( function_exists( 'mysql_set_charset' ) ) {
-                       return mysql_set_charset( $charset, $this->mConn );
+                       return mysql_set_charset( $charset, $conn );
                } else {
                        return $this->query( 'SET NAMES ' . $charset, __METHOD__ );
                }
@@ -104,14 +110,18 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return bool
         */
        protected function closeConnection() {
-               return mysql_close( $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_close( $conn );
        }
 
        /**
         * @return int
         */
        function insertId() {
-               return mysql_insert_id( $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_insert_id( $conn );
        }
 
        /**
@@ -129,7 +139,9 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return int
         */
        function affectedRows() {
-               return mysql_affected_rows( $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_affected_rows( $conn );
        }
 
        /**
@@ -137,9 +149,11 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return bool
         */
        function selectDB( $db ) {
+               $conn = $this->getBindingHandle();
+
                $this->mDBname = $db;
 
-               return mysql_select_db( $db, $this->mConn );
+               return mysql_select_db( $db, $conn );
        }
 
        protected function mysqlFreeResult( $res ) {
@@ -183,10 +197,14 @@ class DatabaseMysql extends DatabaseMysqlBase {
        }
 
        protected function mysqlRealEscapeString( $s ) {
-               return mysql_real_escape_string( $s, $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_real_escape_string( $s, $conn );
        }
 
        protected function mysqlPing() {
-               return mysql_ping( $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_ping( $conn );
        }
 }
index a189648..e326909 100644 (file)
@@ -59,22 +59,16 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
        function open( $server, $user, $password, $dbName ) {
                global $wgAllDBsAreLocalhost, $wgSQLMode;
 
-               # Debugging hack -- fake cluster
-               if ( $wgAllDBsAreLocalhost ) {
-                       $realServer = 'localhost';
-               } else {
-                       $realServer = $server;
-               }
+               # Close/unset connection handle
                $this->close();
+
+               # Debugging hack -- fake cluster
+               $realServer = $wgAllDBsAreLocalhost ? 'localhost' : $server;
                $this->mServer = $server;
                $this->mUser = $user;
                $this->mPassword = $password;
                $this->mDBname = $dbName;
 
-               # The kernel's default SYN retransmission period is far too slow for us,
-               # so we use a short timeout plus a manual retry. Retrying means that a small
-               # but finite rate of SYN packet loss won't cause user-visible errors.
-               $this->mConn = false;
                $this->installErrorHandler();
                try {
                        $this->mConn = $this->mysqlConnect( $realServer );
@@ -586,9 +580,12 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
        function ping() {
                $ping = $this->mysqlPing();
                if ( $ping ) {
+                       // Connection was good or lost but reconnected...
+                       // @note: mysqlnd (php 5.6+) does not support this (PHP bug 52561)
                        return true;
                }
 
+               // Try a full disconnect/reconnect cycle if ping() failed
                $this->closeConnection();
                $this->mOpened = false;
                $this->mConn = false;
@@ -1058,6 +1055,28 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                        ( $this->lastErrno() == 1290 && strpos( $this->lastError(), '--read-only' ) !== false );
        }
 
+       /**
+        * Get the underlying binding handle, mConn
+        *
+        * Makes sure that mConn is set (disconnects and ping() failure can unset it).
+        * This catches broken callers than catch and ignore disconnection exceptions.
+        * Unlike checking isOpen(), this is safe to call inside of open().
+        *
+        * @return resource|object
+        * @throws DBUnexpectedError
+        * @since 1.26
+        */
+       protected function getBindingHandle() {
+               if ( !$this->mConn ) {
+                       throw new DBUnexpectedError(
+                               $this,
+                               'DB connection was already closed or the connection dropped.'
+                       );
+               }
+
+               return $this->mConn;
+       }
+
        /**
         * @param string $oldName
         * @param string $newName
index d2b5ecb..8ca2362 100644 (file)
  * @see Database
  */
 class DatabaseMysqli extends DatabaseMysqlBase {
+       /** @var mysqli */
+       protected $mConn;
+
        /**
         * @param string $sql
         * @return resource
         */
        protected function doQuery( $sql ) {
+               $conn = $this->getBindingHandle();
+
                if ( $this->bufferResults() ) {
-                       $ret = $this->mConn->query( $sql );
+                       $ret = $conn->query( $sql );
                } else {
-                       $ret = $this->mConn->query( $sql, MYSQLI_USE_RESULT );
+                       $ret = $conn->query( $sql, MYSQLI_USE_RESULT );
                }
 
                return $ret;
@@ -50,8 +55,8 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         */
        protected function mysqlConnect( $realServer ) {
                global $wgDBmysql5;
-               # Fail now
-               # Otherwise we get a suppressed fatal error, which is very hard to track down
+
+               # Avoid suppressed fatal error, which is very hard to track down
                if ( !function_exists( 'mysqli_init' ) ) {
                        throw new DBConnectionError( $this, "MySQLi functions missing,"
                                . " have you compiled PHP with the --with-mysqli option?\n" );
@@ -116,8 +121,10 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return bool
         */
        protected function mysqlSetCharset( $charset ) {
-               if ( method_exists( $this->mConn, 'set_charset' ) ) {
-                       return $this->mConn->set_charset( $charset );
+               $conn = $this->getBindingHandle();
+
+               if ( method_exists( $conn, 'set_charset' ) ) {
+                       return $conn->set_charset( $charset );
                } else {
                        return $this->query( 'SET NAMES ' . $charset, __METHOD__ );
                }
@@ -127,14 +134,18 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return bool
         */
        protected function closeConnection() {
-               return $this->mConn->close();
+               $conn = $this->getBindingHandle();
+
+               return $conn->close();
        }
 
        /**
         * @return int
         */
        function insertId() {
-               return (int)$this->mConn->insert_id;
+               $conn = $this->getBindingHandle();
+
+               return (int)$conn->insert_id;
        }
 
        /**
@@ -152,7 +163,9 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return int
         */
        function affectedRows() {
-               return $this->mConn->affected_rows;
+               $conn = $this->getBindingHandle();
+
+               return $conn->affected_rows;
        }
 
        /**
@@ -160,9 +173,11 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return bool
         */
        function selectDB( $db ) {
+               $conn = $this->getBindingHandle();
+
                $this->mDBname = $db;
 
-               return $this->mConn->select_db( $db );
+               return $conn->select_db( $db );
        }
 
        /**
@@ -289,11 +304,15 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return string
         */
        protected function mysqlRealEscapeString( $s ) {
-               return $this->mConn->real_escape_string( $s );
+               $conn = $this->getBindingHandle();
+
+               return $conn->real_escape_string( $s );
        }
 
        protected function mysqlPing() {
-               return $this->mConn->ping();
+               $conn = $this->getBindingHandle();
+
+               return $conn->ping();
        }
 
        /**
index 069185b..52dca08 100644 (file)
@@ -60,8 +60,6 @@ class LoadBalancer {
        private $mLastError = 'Unknown error';
        /** @var integer Total connections opened */
        private $connsOpened = 0;
-       /** @var ProcessCacheLRU */
-       private $mProcCache;
 
        /** @var integer Warn when this many connection are held */
        const CONN_HELD_WARN_THRESHOLD = 10;
@@ -113,8 +111,6 @@ class LoadBalancer {
                                }
                        }
                }
-
-               $this->mProcCache = new ProcessCacheLRU( 30 );
        }
 
        /**
@@ -650,10 +646,7 @@ class LoadBalancer {
        public function openConnection( $i, $wiki = false ) {
                if ( $wiki !== false ) {
                        $conn = $this->openForeignConnection( $i, $wiki );
-
-                       return $conn;
-               }
-               if ( isset( $this->mConns['local'][$i][0] ) ) {
+               } elseif ( isset( $this->mConns['local'][$i][0] ) ) {
                        $conn = $this->mConns['local'][$i][0];
                } else {
                        $server = $this->mServers[$i];
@@ -670,6 +663,15 @@ class LoadBalancer {
                        }
                }
 
+               if ( $conn && !$conn->isOpen() ) {
+                       // Connection was made but later unrecoverably lost for some reason.
+                       // Do not return a handle that will just throw exceptions on use,
+                       // but let the calling code (e.g. getReaderIndex) try another server.
+                       // See DatabaseMyslBase::ping() for how this can happen.
+                       $this->mErrorConnection = $conn;
+                       $conn = false;
+               }
+
                return $conn;
        }
 
@@ -1234,16 +1236,8 @@ class LoadBalancer {
                        return array( 0 => 0 ); // no replication = no lag
                }
 
-               if ( $this->mProcCache->has( 'slave_lag', 'times', 1 ) ) {
-                       return $this->mProcCache->get( 'slave_lag', 'times' );
-               }
-
                # Send the request to the load monitor
-               $times = $this->getLoadMonitor()->getLagTimes( array_keys( $this->mServers ), $wiki );
-
-               $this->mProcCache->set( 'slave_lag', 'times', $times );
-
-               return $times;
+               return $this->getLoadMonitor()->getLagTimes( array_keys( $this->mServers ), $wiki );
        }
 
        /**
@@ -1270,8 +1264,10 @@ class LoadBalancer {
 
        /**
         * Clear the cache for slag lag delay times
+        *
+        * This is only used for testing
         */
        public function clearLagTimeCache() {
-               $this->mProcCache->clear( 'slave_lag' );
+               $this->getLoadMonitor()->clearCaches();
        }
 }
index 8c4d0ed..7dc2da0 100644 (file)
@@ -75,13 +75,17 @@ class LoadMonitorMySQL implements LoadMonitor {
        /** @var LoadBalancer */
        public $parent;
        /** @var BagOStuff */
-       protected $cache;
+       protected $srvCache;
+       /** @var BagOStuff */
+       protected $mainCache;
 
        public function __construct( $parent ) {
                global $wgMemc;
 
                $this->parent = $parent;
-               $this->cache = $wgMemc ?: wfGetMainCache();
+
+               $this->srvCache = ObjectCache::newAccelerator( array(), 'hash' );
+               $this->mainCache = $wgMemc ?: wfGetMainCache();
        }
 
        public function scaleLoads( &$loads, $group = false, $wiki = false ) {
@@ -89,65 +93,79 @@ class LoadMonitorMySQL implements LoadMonitor {
 
        public function getLagTimes( $serverIndexes, $wiki ) {
                if ( count( $serverIndexes ) == 1 && reset( $serverIndexes ) == 0 ) {
-                       // Single server only, just return zero without caching
+                       # Single server only, just return zero without caching
                        return array( 0 => 0 );
                }
 
-               $expiry = 5;
-               $requestRate = 10;
-
-               $cache = $this->cache;
-               $masterName = $this->parent->getServerName( 0 );
-               $memcKey = wfMemcKey( 'lag_times', $masterName );
-               $times = $cache->get( $memcKey );
-               if ( is_array( $times ) ) {
-                       # Randomly recache with probability rising over $expiry
-                       $elapsed = time() - $times['timestamp'];
-                       $chance = max( 0, ( $expiry - $elapsed ) * $requestRate );
-                       if ( mt_rand( 0, $chance ) != 0 ) {
-                               unset( $times['timestamp'] ); // hide from caller
-
-                               return $times;
-                       }
-                       wfIncrStats( 'lag_cache.miss.expired' );
-               } else {
-                       wfIncrStats( 'lag_cache.miss.absent' );
+               $key = $this->getLagTimeCacheKey();
+               # Randomize TTLs to reduce stampedes (4.0 - 5.0 sec)
+               $ttl = mt_rand( 4e6, 5e6 ) / 1e6;
+               # Keep keys around longer as fallbacks
+               $staleTTL = 60;
+
+               # (a) Check the local APC cache
+               $value = $this->srvCache->get( $key );
+               if ( $value && $value['timestamp'] > ( microtime( true ) - $ttl ) ) {
+                       wfDebugLog( 'replication',  __FUNCTION__ . ": got lag times ($key) from local cache" );
+                       return $value['lagTimes']; // cache hit
+               }
+               $staleValue = $value ?: false;
+
+               # (b) Check the shared cache and backfill APC
+               $value = $this->mainCache->get( $key );
+               if ( $value && $value['timestamp'] > ( microtime( true ) - $ttl ) ) {
+                       $this->srvCache->set( $key, $value, $staleTTL );
+                       wfDebugLog( 'replication',  __FUNCTION__ . ": got lag times ($key) from main cache" );
+
+                       return $value['lagTimes']; // cache hit
                }
+               $staleValue = $value ?: $staleValue;
 
-               # Cache key missing or expired
-               if ( $cache->lock( $memcKey, 0, 10 ) ) {
+               # (c) Cache key missing or expired; regenerate and backfill
+               if ( $this->mainCache->lock( $key, 0, 10 ) ) {
                        # Let this process alone update the cache value
-                       $unlocker = new ScopedCallback( function () use ( $cache, $memcKey ) {
-                               $cache->unlock( $memcKey );
+                       $cache = $this->mainCache;
+                       $unlocker = new ScopedCallback( function () use ( $cache, $key ) {
+                               $cache->unlock( $key );
                        } );
-               } elseif ( is_array( $times ) ) {
+               } elseif ( $staleValue ) {
                        # Could not acquire lock but an old cache exists, so use it
-                       unset( $times['timestamp'] ); // hide from caller
-
-                       return $times;
+                       return $value['lagTimes'];
                }
 
-               $times = array();
+               $lagTimes = array();
                foreach ( $serverIndexes as $i ) {
                        if ( $i == 0 ) { # Master
-                               $times[$i] = 0;
+                               $lagTimes[$i] = 0;
                        } elseif ( false !== ( $conn = $this->parent->getAnyOpenConnection( $i ) ) ) {
-                               $times[$i] = $conn->getLag();
+                               $lagTimes[$i] = $conn->getLag();
                        } elseif ( false !== ( $conn = $this->parent->openConnection( $i, $wiki ) ) ) {
-                               $times[$i] = $conn->getLag();
-                               // Close the connection to avoid sleeper connections piling up.
-                               // Note that the caller will pick one of these DBs and reconnect,
-                               // which is slightly inefficient, but this only matters for the lag
-                               // time cache miss cache, which is far less common that cache hits.
+                               $lagTimes[$i] = $conn->getLag();
+                               # Close the connection to avoid sleeper connections piling up.
+                               # Note that the caller will pick one of these DBs and reconnect,
+                               # which is slightly inefficient, but this only matters for the lag
+                               # time cache miss cache, which is far less common that cache hits.
                                $this->parent->closeConnection( $conn );
                        }
                }
 
                # Add a timestamp key so we know when it was cached
-               $times['timestamp'] = time();
-               $cache->set( $memcKey, $times, $expiry + 10 );
-               unset( $times['timestamp'] ); // hide from caller
+               $value = array( 'lagTimes' => $lagTimes, 'timestamp' => microtime( true ) );
+               $this->mainCache->set( $key, $value, $staleTTL );
+               $this->srvCache->set( $key, $value, $staleTTL );
+               wfDebugLog( 'replication',  __FUNCTION__ . ": re-calculated lag times ($key)" );
+
+               return $value['lagTimes'];
+       }
+
+       public function clearCaches() {
+               $key = $this->getLagTimeCacheKey();
+               $this->srvCache->delete( $key );
+               $this->mainCache->delete( $key );
+       }
 
-               return $times;
+       private function getLagTimeCacheKey() {
+               # Lag is per-server, not per-DB, so key on the master DB name
+               return wfForeignMemcKey( $this->parent->getServerName( 0 ), '', 'lag_times' );
        }
 }
index 6a699f9..d27d2c6 100644 (file)
@@ -433,7 +433,7 @@ class FileBackendMultiWrite extends FileBackend {
         */
        protected function substPaths( $paths, FileBackendStore $backend ) {
                return preg_replace(
-                       '!^mwstore://' . preg_quote( $this->name ) . '/!',
+                       '!^mwstore://' . preg_quote( $this->name, '!' ) . '/!',
                        StringUtils::escapeRegexReplacement( "mwstore://{$backend->getName()}/" ),
                        $paths // string or array
                );
index 9f30ee3..afd7cf6 100644 (file)
 class HTMLButtonField extends HTMLFormField {
        protected $buttonType = 'button';
 
+       /** @var array $mFlags Flags to add to OOUI Button widget */
+       protected $mFlags = array();
+
        public function __construct( $info ) {
                $info['nodata'] = true;
+               if ( isset( $info['flags'] ) )
+                       $this->mFlags = $info['flags'];
                parent::__construct( $info );
        }
 
@@ -33,9 +38,11 @@ class HTMLButtonField extends HTMLFormField {
                return new OOUI\ButtonInputWidget( array(
                        'name' => $this->mName,
                        'value' => $value,
+                       'label' => $value,
                        'type' => $this->buttonType,
                        'classes' => array( 'mw-htmlform-submit', $this->mClass ),
                        'id' => $this->mID,
+                       'flags' => $this->mFlags,
                ) + $this->getAttributes( array( 'disabled', 'tabindex' ), array( 'tabindex' => 'tabIndex' ) ) );
        }
 
index 7ccb60e..a0566a0 100644 (file)
@@ -119,9 +119,8 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                        foreach ( $columns as $columnTag ) {
                                $thisTag = "$columnTag-$rowTag";
                                // Construct the checkbox
-                               $thisId = "{$this->mID}-$thisTag";
                                $thisAttribs = array(
-                                       'id' => $thisId,
+                                       'id' => "{$this->mID}-$thisTag",
                                        'value' => $thisTag,
                                );
                                $checked = in_array( $thisTag, (array)$value, true );
@@ -132,18 +131,13 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                                        $checked = true;
                                        $thisAttribs['disabled'] = 1;
                                }
-                               $chkBox = $this->getOneCheckbox( $checked, $attribs + $thisAttribs );
 
-                               if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
-                                       $chkBox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
-                                               $chkBox .
-                                               Html::element( 'label', array( 'for' => $thisId ) ) .
-                                               Html::closeElement( 'div' );
-                               }
+                               $checkbox = $this->getOneCheckbox( $checked, $attribs + $thisAttribs );
+
                                $rowContents .= Html::rawElement(
                                        'td',
                                        array(),
-                                       $chkBox
+                                       $checkbox
                                );
                        }
                        $tableContents .= Html::rawElement( 'tr', array(), "\n$rowContents\n" );
@@ -162,11 +156,18 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                        return new OOUI\CheckboxInputWidget( array(
                                'name' => "{$this->mName}[]",
                                'selected' => $checked,
-                               'value' => '1',
+                               'value' => $attribs['value'],
                        ) + $attribs );
+               } else {
+                       $checkbox = Xml::check( "{$this->mName}[]", $checked, $attribs );
+                       if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+                               $checkbox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+                                       $checkbox .
+                                       Html::element( 'label', array( 'for' => $attribs['id'] ) ) .
+                                       Html::closeElement( 'div' );
+                       }
+                       return $checkbox;
                }
-
-               return Xml::check( "{$this->mName}[]", $checked, $attribs );
        }
 
        protected function isTagForcedOff( $tag ) {
index 65fc0e8..702651e 100644 (file)
@@ -165,7 +165,7 @@ class HTMLForm extends ContextSource {
        protected $mFieldTree;
        protected $mShowReset = false;
        protected $mShowSubmit = true;
-       protected $mSubmitModifierClass = 'mw-ui-constructive';
+       protected $mSubmitFlag = 'constructive';
 
        protected $mSubmitCallback;
        protected $mValidationErrorMessage;
@@ -972,7 +972,7 @@ class HTMLForm extends ContextSource {
                        $attribs['class'] = array( 'mw-htmlform-submit' );
 
                        if ( $useMediaWikiUIEverywhere ) {
-                               array_push( $attribs['class'], 'mw-ui-button', $this->mSubmitModifierClass );
+                               array_push( $attribs['class'], 'mw-ui-button', 'mw-ui-' . $this->mSubmitFlag );
                        }
 
                        $buttons .= Xml::submitButton( $this->getSubmitText(), $attribs ) . "\n";
@@ -1099,7 +1099,7 @@ class HTMLForm extends ContextSource {
         * @since 1.24
         */
        public function setSubmitDestructive() {
-               $this->mSubmitModifierClass = 'mw-ui-destructive';
+               $this->mSubmitFlag = 'destructive';
        }
 
        /**
@@ -1107,7 +1107,7 @@ class HTMLForm extends ContextSource {
         * @since 1.25
         */
        public function setSubmitProgressive() {
-               $this->mSubmitModifierClass = 'mw-ui-progressive';
+               $this->mSubmitFlag = 'progressive';
        }
 
        /**
index 8d28b59..523f045 100644 (file)
@@ -38,34 +38,19 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
                $html = '';
 
                $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ) );
-               $elementFunc = array( 'Html', $this->mOptionsLabelsNotFromMessage ? 'rawElement' : 'element' );
 
                foreach ( $options as $label => $info ) {
                        if ( is_array( $info ) ) {
                                $html .= Html::rawElement( 'h1', array(), $label ) . "\n";
                                $html .= $this->formatOptions( $info, $value );
                        } else {
-                               $thisAttribs = array( 'id' => "{$this->mID}-$info", 'value' => $info );
-
-                               // @todo: Make this use checkLabel for consistency purposes
-                               $checkbox = Xml::check(
-                                       $this->mName . '[]',
-                                       in_array( $info, $value, true ),
-                                       $attribs + $thisAttribs
-                               );
-                               $checkbox .= '&#160;' . call_user_func( $elementFunc,
-                                       'label',
-                                       array( 'for' => "{$this->mID}-$info" ),
-                                       $label
+                               $thisAttribs = array(
+                                       'id' => "{$this->mID}-$info",
+                                       'value' => $info,
                                );
+                               $checked = in_array( $info, $value, true );
 
-                               if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
-                                       $checkbox = Html::rawElement(
-                                               'div',
-                                               array( 'class' => 'mw-ui-checkbox' ),
-                                               $checkbox
-                                       );
-                               }
+                               $checkbox = $this->getOneCheckbox( $checked, $attribs + $thisAttribs, $label );
 
                                $html .= ' ' . Html::rawElement(
                                        'div',
@@ -78,6 +63,41 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
                return $html;
        }
 
+       protected function getOneCheckbox( $checked, $attribs, $label ) {
+               if ( $this->mParent instanceof OOUIHTMLForm ) {
+                       if ( $this->mOptionsLabelsNotFromMessage ) {
+                               $label = new OOUI\HtmlSnippet( $label );
+                       }
+                       return new OOUI\FieldLayout(
+                               new OOUI\CheckboxInputWidget( array(
+                                       'name' => "{$this->mName}[]",
+                                       'selected' => $checked,
+                                       'value' => $attribs['value'],
+                               ) + $attribs ),
+                               array(
+                                       'label' => $label,
+                                       'align' => 'inline',
+                               )
+                       );
+               } else {
+                       $elementFunc = array( 'Html', $this->mOptionsLabelsNotFromMessage ? 'rawElement' : 'element' );
+                       $checkbox =
+                               Xml::check( "{$this->mName}[]", $checked, $attribs ) .
+                               '&#160;' .
+                               call_user_func( $elementFunc,
+                                       'label',
+                                       array( 'for' => $attribs['id'] ),
+                                       $label
+                               );
+                       if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+                               $checkbox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+                                       $checkbox .
+                                       Html::closeElement( 'div' );
+                       }
+                       return $checkbox;
+               }
+       }
+
        /**
         * @param WebRequest $request
         *
index 0f00540..19b45be 100644 (file)
@@ -38,6 +38,23 @@ class HTMLRadioField extends HTMLFormField {
                return $html;
        }
 
+       function getInputOOUI( $value ) {
+               $options = array();
+               foreach ( $this->getOptions() as $label => $value ) {
+                       $options[] = array(
+                               'data' => $value,
+                               'label' => $this->mOptionsLabelsNotFromMessage ? new OOUI\HtmlSnippet( $label ) : $label,
+                       );
+               }
+
+               return new OOUI\RadioSelectInputWidget( array(
+                       'name' => $this->mName,
+                       'value' => $value,
+                       'options' => $options,
+                       'classes' => 'mw-htmlform-flatlist-item',
+               ) + $this->getAttributes( array( 'disabled', 'tabindex' ), array( 'tabindex' => 'tabIndex' ) ) );
+       }
+
        function formatOptions( $options, $value ) {
                $html = '';
 
index 653c08c..938e428 100644 (file)
@@ -6,4 +6,6 @@
  */
 class HTMLSubmitField extends HTMLButtonField {
        protected $buttonType = 'submit';
+
+       protected $mFlags = array( 'primary', 'constructive' );
 }
index 22e96f6..e4f78b2 100644 (file)
@@ -12,11 +12,21 @@ class HTMLTextAreaField extends HTMLFormField {
                return isset( $this->mParams['rows'] ) ? $this->mParams['rows'] : static::DEFAULT_ROWS;
        }
 
+       function getSpellCheck() {
+               $val = isset( $this->mParams['spellcheck'] ) ? $this->mParams['spellcheck'] : null;
+               if ( is_bool( $val ) ) {
+                       // "spellcheck" attribute literally requires "true" or "false" to work.
+                       return $val === true ? 'true' : 'false';
+               }
+               return null;
+       }
+
        function getInputHTML( $value ) {
                $attribs = array(
                                'id' => $this->mID,
                                'cols' => $this->getCols(),
                                'rows' => $this->getRows(),
+                               'spellcheck' => $this->getSpellCheck(),
                        ) + $this->getTooltipAndAccessKey();
 
                if ( $this->mClass !== '' ) {
index 2958274..9c5b868 100644 (file)
@@ -5,6 +5,15 @@ class HTMLTextField extends HTMLFormField {
                return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 45;
        }
 
+       function getSpellCheck() {
+               $val = isset( $this->mParams['spellcheck'] ) ? $this->mParams['spellcheck'] : null;
+               if ( is_bool( $val ) ) {
+                       // "spellcheck" attribute literally requires "true" or "false" to work.
+                       return $val === true ? 'true' : 'false';
+               }
+               return null;
+       }
+
        function getInputHTML( $value ) {
                $attribs = array(
                                'id' => $this->mID,
@@ -12,6 +21,7 @@ class HTMLTextField extends HTMLFormField {
                                'size' => $this->getSize(),
                                'value' => $value,
                                'dir' => $this->mDir,
+                               'spellcheck' => $this->getSpellCheck(),
                        ) + $this->getTooltipAndAccessKey();
 
                if ( $this->mClass !== '' ) {
index 6c9952a..1ac7956 100644 (file)
@@ -54,7 +54,7 @@ class OOUIHTMLForm extends HTMLForm {
                $buttons = '';
 
                if ( $this->mShowSubmit ) {
-                       $attribs = array();
+                       $attribs = array( 'infusable' => true );
 
                        if ( isset( $this->mSubmitID ) ) {
                                $attribs['id'] = $this->mSubmitID;
@@ -68,15 +68,11 @@ class OOUIHTMLForm extends HTMLForm {
                                $attribs += Linker::tooltipAndAccesskeyAttribs( $this->mSubmitTooltip );
                        }
 
-                       $attribs['classes'] = array(
-                               'mw-htmlform-submit',
-                               $this->mSubmitModifierClass,
-                       );
-
+                       $attribs['classes'] = array( 'mw-htmlform-submit' );
                        $attribs['type'] = 'submit';
                        $attribs['label'] = $this->getSubmitText();
                        $attribs['value'] = $this->getSubmitText();
-                       $attribs['flags'] = array( 'primary', 'constructive' );
+                       $attribs['flags'] = array( $this->mSubmitFlag );
 
                        $buttons .= new OOUI\ButtonInputWidget( $attribs );
                }
index 0c0e425..f1fd05d 100644 (file)
@@ -95,7 +95,7 @@ class VFormHTMLForm extends HTMLForm {
                        $attribs['class'] = array(
                                'mw-htmlform-submit',
                                'mw-ui-button mw-ui-big mw-ui-block',
-                               $this->mSubmitModifierClass,
+                               'mw-ui-' . $this->mSubmitFlag,
                        );
 
                        $buttons .= Xml::submitButton( $this->getSubmitText(), $attribs ) . "\n";
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 345b475..73e1764 100644 (file)
@@ -68,7 +68,7 @@
        "config-magic-quotes-sybase": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
        "config-mbstring": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
        "config-safe-mode": "'''Увага:''' Опція PHP [http://www.php.net/features.safe-mode «безпечний режим»] увімкнена.\nЦе може спричинити проблеми, зокрема із завантаженням файлів та вставкою математичних формул.",
-       "config-xml-bad": "XML-модÑ\83Ñ\82Ñ\8c PHP Ð²Ñ\96дÑ\81Ñ\83Ñ\82нÑ\96й.\nMediaWiki Ð½ÐµÐ¾Ð±Ñ\85Ñ\96днÑ\96 Ð¹Ð¾Ð³Ð¾ Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97, Ð±ÐµÐ· Ñ\86Ñ\8cого Ð¼Ð¾Ð´Ñ\83лÑ\8f Ð²Ð¾Ð½Ð° Ð¿Ñ\80аÑ\86Ñ\8eваÑ\82и Ð½Ðµ Ð±Ñ\83де.\nЯкÑ\89о Ð\92и Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82овÑ\83Ñ\94Ñ\82е Mandrake, Ð²Ñ\81Ñ\82ановÑ\96Ñ\82Ñ\8c php-xml пакет.",
+       "config-xml-bad": "XML-модÑ\83Ñ\82Ñ\8c PHP Ð²Ñ\96дÑ\81Ñ\83Ñ\82нÑ\96й.\nMediaWiki Ð½ÐµÐ¾Ð±Ñ\85Ñ\96днÑ\96 Ð¹Ð¾Ð³Ð¾ Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97, Ð±ÐµÐ· Ñ\86Ñ\8cого Ð¼Ð¾Ð´Ñ\83лÑ\8f Ð²Ð¾Ð½Ð° Ð¿Ñ\80аÑ\86Ñ\8eваÑ\82и Ð½Ðµ Ð±Ñ\83де.\nÐ\92ам Ð¼Ð¾Ð¶Ðµ Ð·Ð½Ð°Ð´Ð¾Ð±Ð¸Ñ\82иÑ\81Ñ\8f Ð²Ñ\81Ñ\82ановиÑ\82и php-xml RPM пакет.",
        "config-pcre-old": "'''Фатальна помилка:''' потрібно PCRE версії $1 або пізнішої.\nВаш виконуваний файл PHP пов'язаний з PCRE версії $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Подробиці].",
        "config-pcre-no-utf8": "'''Помилка''': PCRE-модуть PHP, вочевидь, було зібрано без підтримки PCRE_UTF8.\nMediaWiki вимагає підтримку UTF-8 для коректної роботи.",
        "config-memory-raised": "Обмеження пам'яті PHP (<code>memory_limit</code>) $1, піднято до $2.",
index 77c4238..3dfffae 100644 (file)
@@ -203,8 +203,8 @@ class JobRunner implements LoggerAwareInterface {
                                if ( $queuedTs ) {
                                        // Record time to run for the job type
                                        $pickupDelay = $popTime - $queuedTs;
-                                       $stats->timing( 'jobqueue.pickup_delay.all', $queuedTs );
-                                       $stats->timing( "jobqueue.pickup_delay.$jType", $queuedTs );
+                                       $stats->timing( 'jobqueue.pickup_delay.all', $pickupDelay );
+                                       $stats->timing( "jobqueue.pickup_delay.$jType", $pickupDelay );
                                }
 
                                // Mark the job as done on success or when the job cannot be retried
old mode 100755 (executable)
new mode 100644 (file)
index 457237a..0caf90b 100644 (file)
@@ -23,7 +23,6 @@
 use Liuggio\StatsdClient\Entity\StatsdDataInterface;
 use Liuggio\StatsdClient\Factory\StatsdDataFactory;
 
-
 /**
  * A factory for application metric data.
  *
diff --git a/includes/libs/RiffExtractor.php b/includes/libs/RiffExtractor.php
new file mode 100644 (file)
index 0000000..f987c59
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Extractor for the Resource Interchange File Format
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Bryan Tong Minh
+ * @ingroup Media
+ */
+
+class RiffExtractor {
+       public static function findChunksFromFile( $filename, $maxChunks = -1 ) {
+               $file = fopen( $filename, 'rb' );
+               $info = self::findChunks( $file, $maxChunks );
+               fclose( $file );
+               return $info;
+       }
+
+       public static function findChunks( $file, $maxChunks = -1 ) {
+               $riff = fread( $file, 4 );
+               if ( $riff !== 'RIFF' ) {
+                       return false;
+               }
+
+               // Next four bytes are fileSize
+               $fileSize = fread( $file, 4 );
+               if ( !$fileSize || strlen( $fileSize ) != 4 ) {
+                       return false;
+               }
+
+               // Next four bytes are the FourCC
+               $fourCC = fread( $file, 4 );
+               if ( !$fourCC || strlen( $fourCC ) != 4 ) {
+                       return false;
+               }
+
+               // Create basic info structure
+               $info = array(
+                       'fileSize' => self::extractUInt32( $fileSize ),
+                       'fourCC' => $fourCC,
+                       'chunks' => array(),
+               );
+               $numberOfChunks = 0;
+
+               // Find out the chunks
+               while ( !feof( $file ) && !( $numberOfChunks >= $maxChunks && $maxChunks >= 0 ) ) {
+                       $chunkStart = ftell( $file );
+
+                       $chunkFourCC = fread( $file, 4 );
+                       if ( !$chunkFourCC || strlen( $chunkFourCC ) != 4 ) {
+                               return $info;
+                       }
+
+                       $chunkSize = fread( $file, 4 );
+                       if ( !$chunkSize || strlen( $chunkSize ) != 4 ) {
+                               return $info;
+                       }
+                       $intChunkSize = self::extractUInt32( $chunkSize );
+
+                       // Add chunk info to the info structure
+                       $info['chunks'][] = array(
+                               'fourCC' => $chunkFourCC,
+                               'start' => $chunkStart,
+                               'size' => $intChunkSize
+                       );
+
+                       // Uneven chunks have padding bytes
+                       $padding = $intChunkSize % 2;
+                       // Seek to the next chunk
+                       fseek( $file, $intChunkSize + $padding, SEEK_CUR );
+
+               }
+
+               return $info;
+       }
+
+       /**
+        * Extract a little-endian uint32 from a 4 byte string
+        * @param string $string 4-byte string
+        * @return int
+        */
+       public static function extractUInt32( $string ) {
+               $unpacked = unpack( 'V', $string );
+               return $unpacked[1];
+       }
+};
index 9c7bf2f..22c3319 100644 (file)
@@ -30,6 +30,9 @@ class ComposerLock {
                        $deps[$installed['name']] = array(
                                'version' => ComposerJson::normalizeVersion( $installed['version'] ),
                                'type' => $installed['type'],
+                               'licenses' => isset( $installed['license'] ) ? $installed['license'] : array(),
+                               'authors' => isset( $installed['authors'] ) ? $installed['authors'] : array(),
+                               'description' => isset( $installed['description'] ) ? $installed['description']: '',
                        );
                }
 
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index ad9a2b9..9ed9bc2 100644 (file)
@@ -27,6 +27,7 @@
 
 
 use UtfNormal\Utils;
+
 /**
  * Return UTF-8 sequence for a given Unicode code point.
  *
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 ) {
old mode 100755 (executable)
new mode 100644 (file)
index 5af7fbe..4be20b2 100644 (file)
@@ -93,9 +93,8 @@ class BitmapHandler extends TransformationalImageHandler {
                                // JPEG decoder hint to reduce memory, available since IM 6.5.6-2
                                $decoderHint = array( '-define', "jpeg:size={$params['physicalDimensions']}" );
                        }
-               } elseif ( $params['mimeType'] == 'image/png' ) {
+               } elseif ( $params['mimeType'] == 'image/png' || $params['mimeType'] == 'image/webp' ) {
                        $quality = array( '-quality', '95' ); // zlib 9, adaptive filtering
-
                } elseif ( $params['mimeType'] == 'image/gif' ) {
                        if ( $this->getImageArea( $image ) > $wgMaxAnimatedGifArea ) {
                                // Extract initial frame only; we're so big it'll
index 17e3dda..0fee8cc 100644 (file)
@@ -1732,8 +1732,9 @@ class FormatMetadata extends ContextSource {
        }
 
        /**
-        * Turns an XMP-style multivalue array into a single value by dropping all but the first value.
-        * If the value is not a multivalue array (or a multivalue array inside a multilang array), it is returned unchanged.
+        * Turns an XMP-style multivalue array into a single value by dropping all but the first
+        * value. If the value is not a multivalue array (or a multivalue array inside a multilang
+        * array), it is returned unchanged.
         * See mediawiki.org/wiki/Manual:File_metadata_handling#Multi-language_array_format
         * @param mixed $value
         * @return mixed The value, or the first value if there were multiple ones
@@ -1742,7 +1743,8 @@ class FormatMetadata extends ContextSource {
        protected function resolveMultivalueValue( $value ) {
                if ( !is_array( $value ) ) {
                        return $value;
-               } elseif ( isset( $value['_type'] ) && $value['_type'] === 'lang' ) { // if this is a multilang array, process fields separately
+               } elseif ( isset( $value['_type'] ) && $value['_type'] === 'lang' ) {
+                       // if this is a multilang array, process fields separately
                        $newValue = array();
                        foreach ( $value as $k => $v ) {
                                $newValue[$k] = $this->resolveMultivalueValue( $v );
diff --git a/includes/media/WebP.php b/includes/media/WebP.php
new file mode 100644 (file)
index 0000000..05d12c4
--- /dev/null
@@ -0,0 +1,306 @@
+<?php
+/**
+ * Handler for Google's WebP format <https://developers.google.com/speed/webp/>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Media
+ */
+
+/**
+ * Handler for Google's WebP format <https://developers.google.com/speed/webp/>
+ *
+ * @ingroup Media
+ */
+class WebPHandler extends BitmapHandler {
+       const BROKEN_FILE = '0'; // value to store in img_metadata if error extracting metadata.
+       /**
+        * @var int Minimum chunk header size to be able to read all header types
+        */
+       const MINIMUM_CHUNK_HEADER_LENGTH = 18;
+       /**
+        * @var int version of the metadata stored in db records
+        */
+       const _MW_WEBP_VERSION = 1;
+
+       const VP8X_ICC = 32;
+       const VP8X_ALPHA = 16;
+       const VP8X_EXIF = 8;
+       const VP8X_XMP = 4;
+       const VP8X_ANIM = 2;
+
+       public function getMetadata( $image, $filename ) {
+               $parsedWebPData = self::extractMetadata( $filename );
+               if ( !$parsedWebPData ) {
+                       return self::BROKEN_FILE;
+               }
+
+               $parsedWebPData['metadata']['_MW_WEBP_VERSION'] = self::_MW_WEBP_VERSION;
+               return serialize( $parsedWebPData );
+       }
+
+       public function getMetadataType( $image ) {
+               return 'parsed-webp';
+       }
+
+       public function isMetadataValid( $image, $metadata ) {
+               if ( $metadata === self::BROKEN_FILE ) {
+                               // Do not repetitivly regenerate metadata on broken file.
+                               return self::METADATA_GOOD;
+               }
+
+               wfSuppressWarnings();
+               $data = unserialize( $metadata );
+               wfRestoreWarnings();
+
+               if ( !$data || !is_array( $data ) ) {
+                               wfDebug( __METHOD__ . " invalid WebP metadata\n" );
+
+                               return self::METADATA_BAD;
+               }
+
+               if ( !isset( $data['metadata']['_MW_WEBP_VERSION'] )
+                               || $data['metadata']['_MW_WEBP_VERSION'] != self::_MW_WEBP_VERSION
+               ) {
+                               wfDebug( __METHOD__ . " old but compatible WebP metadata\n" );
+
+                               return self::METADATA_COMPATIBLE;
+               }
+               return self::METADATA_GOOD;
+       }
+
+       /**
+        * Extracts the image size and WebP type from a file
+        *
+        * @param string $chunks Chunks as extracted by RiffExtractor
+        * @return array|bool Header data array with entries 'compression', 'width' and 'height',
+        * where 'compression' can be 'lossy', 'lossless', 'animated' or 'unknown'. False if
+        * file is not a valid WebP file.
+        */
+       public static function extractMetadata( $filename ) {
+               wfDebugLog( 'WebP', __METHOD__ . ": Extracting metadata from $filename\n" );
+
+               $info = RiffExtractor::findChunksFromFile( $filename, 100 );
+               if ( $info === false ) {
+                       wfDebugLog( 'WebP', __METHOD__ . ": Not a valid RIFF file\n" );
+                       return false;
+               }
+
+               if ( $info['fourCC'] != 'WEBP' ) {
+                       wfDebugLog( 'WebP', __METHOD__ . ': FourCC was not WEBP: ' .
+                               bin2hex( $info['fourCC'] ) .  " \n" );
+                       return false;
+               }
+
+               $metadata = self::extractMetadataFromChunks( $info['chunks'], $filename );
+               if ( !$metadata ) {
+                       wfDebugLog( 'WebP', __METHOD__ . ": No VP8 chunks found\n" );
+                       return false;
+               }
+
+               return $metadata;
+       }
+
+       /**
+        * Extracts the image size and WebP type from a file based on the chunk list
+        * @param array $chunks Chunks as extracted by RiffExtractor
+        * @return array Header data array with entries 'compression', 'width' and 'height', where
+        * 'compression' can be 'lossy', 'lossless', 'animated' or 'unknown'
+        */
+       public static function extractMetadataFromChunks( $chunks, $filename ) {
+               $vp8Info = array();
+
+               foreach ( $chunks as $chunk ) {
+                       if ( !in_array( $chunk['fourCC'], array( 'VP8 ', 'VP8L', 'VP8X' ) ) ) {
+                               // Not a chunk containing interesting metadata
+                               continue;
+                       }
+
+                       $chunkHeader = file_get_contents( $filename, false, null,
+                               $chunk['start'], self::MINIMUM_CHUNK_HEADER_LENGTH );
+                       wfDebugLog( 'WebP', __METHOD__ . ": {$chunk['fourCC']}\n" );
+
+                       switch ( $chunk['fourCC'] ) {
+                               case 'VP8 ':
+                                       return array_merge( $vp8Info,
+                                               self::decodeLossyChunkHeader( $chunkHeader ) );
+                               case 'VP8L':
+                                       return array_merge( $vp8Info,
+                                               self::decodeLosslessChunkHeader( $chunkHeader ) );
+                               case 'VP8X':
+                                       $vp8Info = array_merge( $vp8Info,
+                                               self::decodeExtendedChunkHeader( $chunkHeader ) );
+                                       // Continue looking for other chunks to improve the metadata
+                                       break;
+                       }
+               }
+               return $vp8Info;
+       }
+
+       /**
+        * Decodes a lossy chunk header
+        * @param string $header Header string
+        * @return boolean|array See WebPHandler::decodeHeader
+        */
+       protected static function decodeLossyChunkHeader( $header ) {
+               // Bytes 0-3 are 'VP8 '
+               // Bytes 4-7 are the VP8 stream size
+               // Bytes 8-10 are the frame tag
+               // Bytes 11-13 are 0x9D 0x01 0x2A called the sync code
+               $syncCode = substr( $header, 11, 3 );
+               if ( $syncCode != "\x9D\x01\x2A" ) {
+                       wfDebugLog( 'WebP', __METHOD__ . ': Invalid sync code: ' .
+                               bin2hex( $syncCode ) . "\n" );
+                       return array();
+               }
+               // Bytes 14-17 are image size
+               $imageSize = unpack( 'v2', substr( $header, 14, 4 ) );
+               // Image sizes are 14 bit, 2 MSB are scaling parameters which are ignored here
+               return array(
+                       'compression' => 'lossy',
+                       'width' => $imageSize[1] & 0x3FFF,
+                       'height' => $imageSize[2] & 0x3FFF
+               );
+       }
+
+       /**
+        * Decodes a lossless chunk header
+        * @param string $header Header string
+        * @return boolean|array See WebPHandler::decodeHeader
+        */
+       public static function decodeLosslessChunkHeader( $header ) {
+               // Bytes 0-3 are 'VP8L'
+               // Bytes 4-7 are chunk stream size
+               // Byte 8 is 0x2F called the signature
+               if ( $header{8} != "\x2F" ) {
+                       wfDebugLog( 'WebP',  __METHOD__ . ': Invalid signature: ' .
+                               bin2hex( $header{8} ) . "\n" );
+                       return array();
+               }
+               // Bytes 9-12 contain the image size
+               // Bits 0-13 are width-1; bits 15-27 are height-1
+               $imageSize = unpack( 'C4', substr( $header, 9, 4 ) );
+               return array(
+                               'compression' => 'lossless',
+                               'width' => ( $imageSize[1] | ( ( $imageSize[2] & 0x3F ) << 8 ) ) + 1,
+                               'height' => ( ( ( $imageSize[2] & 0xC0 ) >> 6 ) |
+                                               ( $imageSize[3] << 2 ) | ( ( $imageSize[4] & 0x03 ) << 10 ) ) + 1
+               );
+       }
+
+       /**
+        * Decodes an extended chunk header
+        * @param string $header Header string
+        * @return boolean|array See WebPHandler::decodeHeader
+        */
+       public static function decodeExtendedChunkHeader( $header ) {
+               // Bytes 0-3 are 'VP8X'
+               // Byte 4-7 are chunk length
+               // Byte 8-11 are a flag bytes
+               $flags = unpack( 'c', substr( $header, 8, 1 ) );
+
+               // Byte 12-17 are image size (24 bits)
+               $width = unpack( 'V', substr( $header, 12, 3 ) . "\x00" );
+               $height = unpack( 'V', substr( $header, 15, 3 ) . "\x00" );
+
+               return array(
+                       'compression' => 'unknown',
+                       'animated' => ($flags[1] & self::VP8X_ANIM) == self::VP8X_ANIM,
+                       'transparency' => ($flags[1] & self::VP8X_ALPHA) == self::VP8X_ALPHA,
+                       'width' => ( $width[1] & 0xFFFFFF ) + 1,
+                       'height' => ( $height[1] & 0xFFFFFF ) + 1
+               );
+       }
+
+       public function getImageSize( $file, $path, $metadata = false ) {
+               if ( $file === null ) {
+                       $metadata = self::getMetadata( $file, $path );
+               }
+               if ( $metadata === false ) {
+                       $metadata = $file->getMetadata();
+               }
+
+               wfSuppressWarnings();
+               $metadata = unserialize( $metadata );
+               wfRestoreWarnings();
+
+               if ( $metadata == false ) {
+                       return false;
+               }
+               return array( $metadata['width'], $metadata['height'] );
+       }
+
+       /**
+        * @param $file
+        * @return bool True, not all browsers support WebP
+        */
+       public function mustRender( $file ) {
+               return true;
+       }
+
+       /**
+        * @param $file
+        * @return bool False if we are unable to render this image
+        */
+       public function canRender( $file ) {
+               if ( self::isAnimatedImage( $file ) ) {
+                       return false;
+               }
+               return true;
+       }
+
+       /**
+        * @param File $image
+        * @return bool
+        */
+       public function isAnimatedImage( $image ) {
+               $ser = $image->getMetadata();
+               if ( $ser ) {
+                       $metadata = unserialize( $ser );
+                       if ( isset($metadata['animated']) && $metadata['animated'] === true ) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
+       public function canAnimateThumbnail( $file ) {
+               return false;
+       }
+
+       /**
+        * Render files as PNG
+        *
+        * @param $ext
+        * @param $mime
+        * @param $params
+        * @return array
+        */
+       public function getThumbType( $ext, $mime, $params = null ) {
+               return array( 'png', 'image/png' );
+       }
+
+       /**
+        * Must use "im" for XCF
+        *
+        * @return string
+        */
+       protected function getScalerType( $dstPath, $checkDstPath = true ) {
+               return 'im';
+       }
+}
index a80c68f..1ed8ef5 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 450251a..a6b6b51 100644 (file)
@@ -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 = '';
index 2919c6c..44b0bc9 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,10 @@ 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,7 +229,7 @@ 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, $article, $popts ) ) === 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;
index a8db1c9..7068bd7 100644 (file)
@@ -103,7 +103,7 @@ class ParserOutput extends CacheTime {
                        $text = str_replace( array( Parser::TOC_START, Parser::TOC_END ), '', $text );
                } else {
                        $text = preg_replace(
-                               '#' . preg_quote( Parser::TOC_START ) . '.*?' . preg_quote( Parser::TOC_END ) . '#s',
+                               '#' . preg_quote( Parser::TOC_START, '#' ) . '.*?' . preg_quote( Parser::TOC_END, '#' ) . '#s',
                                '',
                                $text
                        );
index 5692d73..1ec14aa 100644 (file)
@@ -192,10 +192,11 @@ abstract class PoolCounter {
        }
 
        /**
-        * Given a key (any string) and the number of lots, returns a slot number (an integer from the [0..($slots-1)] range).
-        * This is used for a global limit on the number of instances  of a given type that can acquire a lock.
-        * The hashing is deterministic so that PoolCounter::$workers is always an upper limit of how many instances with
-        * the same key can acquire a lock.
+        * Given a key (any string) and the number of lots, returns a slot number (an integer from
+        * the [0..($slots-1)] range). This is used for a global limit on the number of instances of
+        * a given type that can acquire a lock. The hashing is deterministic so that
+        * PoolCounter::$workers is always an upper limit of how many instances with the same key
+        * can acquire a lock.
         *
         * @param string $key PoolCounter instance key (any string)
         * @param int $slots The number of slots (max allowed value is 65536)
index bf4b85c..09f5688 100644 (file)
@@ -45,7 +45,11 @@ class ProfilerOutputDump extends ProfilerOutput {
 
        public function log( array $stats ) {
                $data = $this->collector->getRawData();
-               $filename = sprintf( "%s/%s.%s%s", $this->params['outputDir'], uniqid(), $this->collector->getProfileID(), $this->suffix );
+               $filename = sprintf( "%s/%s.%s%s",
+                       $this->params['outputDir'],
+                       uniqid(),
+                       $this->collector->getProfileID(),
+                       $this->suffix );
                file_put_contents( $filename, serialize( $data ) );
        }
 }
index 6752779..dc24f18 100644 (file)
@@ -35,7 +35,7 @@ class ProfilerOutputText extends ProfilerOutput {
                parent::__construct( $collector, $params );
                $this->thresholdMs = isset( $params['thresholdMs'] )
                        ? $params['thresholdMs']
-                       : .25;
+                       : 1.0;
        }
        public function log( array $stats ) {
                if ( $this->collector->getTemplated() ) {
index a7a43b0..eb18b8f 100644 (file)
@@ -662,7 +662,6 @@ class SpecialPage {
         */
        public function getFinalGroupName() {
                $name = $this->getName();
-               $specialPageGroups = $this->getConfig()->get( 'SpecialPageGroups' );
 
                // Allow overbidding the group from the wiki side
                $msg = $this->msg( 'specialpages-specialpagegroup-' . strtolower( $name ) )->inContentLanguage();
@@ -671,18 +670,6 @@ class SpecialPage {
                } else {
                        // Than use the group from this object
                        $group = $this->getGroupName();
-
-                       // Group '-' is used as default to have the chance to determine,
-                       // if the special pages overrides this method,
-                       // if not overridden, $wgSpecialPageGroups is checked for b/c
-                       if ( $group === '-' && isset( $specialPageGroups[$name] ) ) {
-                               $group = $specialPageGroups[$name];
-                       }
-               }
-
-               // never give '-' back, change to 'other'
-               if ( $group === '-' ) {
-                       $group = 'other';
                }
 
                return $group;
@@ -697,8 +684,6 @@ class SpecialPage {
         * @since 1.21
         */
        protected function getGroupName() {
-               // '-' used here to determine, if this group is overridden or has a hardcoded 'other'
-               // Needed for b/c in getFinalGroupName
-               return '-';
+               return 'other';
        }
 }
index 3786b36..055e588 100644 (file)
@@ -347,34 +347,6 @@ class SpecialPageFactory {
                return array( $name, $par );
        }
 
-       /**
-        * Add a page to a certain display group for Special:SpecialPages
-        *
-        * @param SpecialPage|string $page
-        * @param string $group
-        * @deprecated since 1.21 Override SpecialPage::getGroupName
-        */
-       public static function setGroup( $page, $group ) {
-               wfDeprecated( __METHOD__, '1.21' );
-
-               global $wgSpecialPageGroups;
-               $name = is_object( $page ) ? $page->getName() : $page;
-               $wgSpecialPageGroups[$name] = $group;
-       }
-
-       /**
-        * Get the group that the special page belongs in on Special:SpecialPage
-        *
-        * @param SpecialPage $page
-        * @return string
-        * @deprecated since 1.21 Use SpecialPage::getFinalGroupName
-        */
-       public static function getGroup( &$page ) {
-               wfDeprecated( __METHOD__, '1.21' );
-
-               return $page->getFinalGroupName();
-       }
-
        /**
         * Check if a given name exist as a special page or as a special page alias
         *
index f3e896a..41c2f93 100644 (file)
@@ -130,7 +130,7 @@ class AllMessagesTablePager extends TablePager {
 
                if ( $prefix !== null ) {
                        $this->displayPrefix = $prefix->getDBkey();
-                       $this->prefix = '/^' . preg_quote( $this->displayPrefix ) . '/i';
+                       $this->prefix = '/^' . preg_quote( $this->displayPrefix, '/' ) . '/i';
                } else {
                        $this->displayPrefix = false;
                        $this->prefix = false;
index babb315..c2aa704 100644 (file)
@@ -107,7 +107,7 @@ class SpecialChangeEmail extends FormSpecialPage {
        }
 
        protected function getDisplayFormat() {
-               return 'vform';
+               return 'ooui';
        }
 
        protected function alterForm( HTMLForm $form ) {
index 9476819..6756f27 100644 (file)
@@ -94,7 +94,7 @@ class SpecialPageLanguage extends FormSpecialPage {
        }
 
        protected function getDisplayFormat() {
-               return 'vform';
+               return 'ooui';
        }
 
        public function alterForm( HTMLForm $form ) {
index a2dc2ad..8cad616 100644 (file)
@@ -104,7 +104,7 @@ class SpecialPasswordReset extends FormSpecialPage {
        }
 
        protected function getDisplayFormat() {
-               return 'vform';
+               return 'ooui';
        }
 
        public function alterForm( HTMLForm $form ) {
index ba2b9a5..27a3a69 100644 (file)
@@ -123,6 +123,10 @@ class SpecialResetTokens extends FormSpecialPage {
                }
        }
 
+       protected function getDisplayFormat() {
+               return 'ooui';
+       }
+
        public function onSubmit( array $formData ) {
                if ( $formData['tokens'] ) {
                        $user = $this->getUser();
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 ab53951..0158fdb 100644 (file)
@@ -106,7 +106,7 @@ class UserrightsPage extends SpecialPage {
                        }
                }
 
-               if ( User::getCanonicalName( $this->mTarget ) === $user->getName() ) {
+               if ( $this->mTarget !== null && User::getCanonicalName( $this->mTarget ) === $user->getName() ) {
                        $this->isself = true;
                }
 
@@ -145,6 +145,7 @@ class UserrightsPage extends SpecialPage {
                if (
                        $request->wasPosted() &&
                        $request->getCheck( 'saveusergroups' ) &&
+                       $this->mTarget !== null &&
                        $user->matchEditToken( $request->getVal( 'wpEditToken' ), $this->mTarget )
                ) {
                        // save settings
index 4442d81..0a91957 100644 (file)
@@ -522,6 +522,9 @@ class SpecialVersion extends SpecialPage {
                $out .= Html::openElement( 'tr' )
                        . Html::element( 'th', array(), $this->msg( 'version-libraries-library' )->text() )
                        . Html::element( 'th', array(), $this->msg( 'version-libraries-version' )->text() )
+                       . Html::element( 'th', array(), $this->msg( 'version-libraries-license' )->text() )
+                       . Html::element( 'th', array(), $this->msg( 'version-libraries-description' )->text() )
+                       . Html::element( 'th', array(), $this->msg( 'version-libraries-authors' )->text() )
                        . Html::closeElement( 'tr' );
 
                foreach ( $lock->getInstalledDependencies() as $name => $info ) {
@@ -530,13 +533,28 @@ class SpecialVersion extends SpecialPage {
                                // in their proper section
                                continue;
                        }
+                       $authors = array_map( function( $arr ) {
+                               // If a homepage is set, link to it
+                               if ( isset( $arr['homepage'] ) ) {
+                                       return "[{$arr['homepage']} {$arr['name']}]";
+                               }
+                               return $arr['name'];
+                       }, $info['authors'] );
+                       $authors = $this->listAuthors( $authors, false, "$IP/vendor/$name" );
                        $out .= Html::openElement( 'tr' )
                                . Html::rawElement(
                                        'td',
                                        array(),
-                                       Linker::makeExternalLink( "https://packagist.org/packages/$name", $name )
+                                       Linker::makeExternalLink(
+                                               "https://packagist.org/packages/$name", $name,
+                                               true, '',
+                                               array( 'class' => 'mw-version-library-name' )
+                                       )
                                )
                                . Html::element( 'td', array(), $info['version'] )
+                               . Html::element( 'td', array(), $this->listToText( $info['licenses'] ) )
+                               . Html::element( 'td', array(), $info['description'] )
+                               . Html::rawElement( 'td', array(), $authors )
                                . Html::closeElement( 'tr' );
                }
                $out .= Html::closeElement( 'table' );
@@ -959,7 +977,8 @@ class SpecialVersion extends SpecialPage {
         *   'and others' will be added to the end of the credits.
         *
         * @param string|array $authors
-        * @param string $extName Name of the extension for link creation
+        * @param string|bool $extName Name of the extension for link creation,
+        *   false if no links should be created
         * @param string $extDir Path to the extension root directory
         *
         * @return string HTML fragment
@@ -972,7 +991,7 @@ class SpecialVersion extends SpecialPage {
                        if ( $item == '...' ) {
                                $hasOthers = true;
 
-                               if ( $this->getExtAuthorsFileName( $extDir ) ) {
+                               if ( $extName && $this->getExtAuthorsFileName( $extDir ) ) {
                                        $text = Linker::link(
                                                $this->getPageTitle( "Credits/$extName" ),
                                                $this->msg( 'version-poweredby-others' )->escaped()
@@ -991,7 +1010,7 @@ class SpecialVersion extends SpecialPage {
                        }
                }
 
-               if ( !$hasOthers && $this->getExtAuthorsFileName( $extDir ) ) {
+               if ( $extName && !$hasOthers && $this->getExtAuthorsFileName( $extDir ) ) {
                        $list[] = $text = Linker::link(
                                $this->getPageTitle( "Credits/$extName" ),
                                $this->msg( 'version-poweredby-others' )->escaped()
index fb89e4f..0892ce4 100644 (file)
@@ -30,7 +30,8 @@ class MalformedTitleException extends Exception {
        /**
         * @param string $errorMessage Localisation message describing the error (since MW 1.26)
         * @param string $titleText The invalid title text (since MW 1.26)
-        * @param string[] $errorMessageParameters Additional parameters for the error message. $titleText will be appended if it's not null. (since MW 1.26)
+        * @param string[] $errorMessageParameters Additional parameters for the error message.
+        * $titleText will be appended if it's not null. (since MW 1.26)
         */
        public function __construct( $errorMessage = null, $titleText = null, $errorMessageParameters = array() ) {
                $this->errorMessage = $errorMessage;
index dd1a38a..7d63156 100644 (file)
@@ -119,85 +119,88 @@ class AutoloadGenerator {
        }
 
        /**
-        * Write out all known classes to autoload.php in
-        * the provided basedir
+        * Updates the AutoloadClasses field at the given
+        * filename.
         *
-        * @param string $commandName Value used in file comment to direct
-        *  developers towards the appropriate way to update the autoload.
+        * @param {string} $filename Filename of JSON
+        *  extension/skin registration file
         */
-       public function generateAutoload( $commandName = 'AutoloadGenerator' ) {
-
-               // We need to check whether an extenson.json exists or not, and
-               // incase it doesn't, update the autoload.php file.
-
-               if ( file_exists( $this->basepath . '/extension.json' ) ) {
-                       require_once __DIR__ . '/../../includes/json/FormatJson.php';
-                       $key = 'AutoloadClasses';
-                       $json = FormatJson::decode( file_get_contents( $this->basepath
-                               . '/extension.json' ), true );
-                       unset( $json[$key] );
-                       // Inverting the key-value pairs so that they become of the
-                       // format class-name : path when they get converted into json.
-                       foreach ( $this->classes as $path => $contained ) {
-                               foreach ( $contained as $fqcn ) {
-
-                                       // Using substr to remove the leading '/'
-                                       $json[$key][$fqcn] = substr( $path, 1 );
-                               }
-                       }
-                       foreach ( $this->overrides as $path => $fqcn ) {
+       protected function generateJsonAutoload( $filename ) {
+               require_once __DIR__ . '/../../includes/json/FormatJson.php';
+               $key = 'AutoloadClasses';
+               $json = FormatJson::decode( file_get_contents( $filename ), true );
+               unset( $json[$key] );
+               // Inverting the key-value pairs so that they become of the
+               // format class-name : path when they get converted into json.
+               foreach ( $this->classes as $path => $contained ) {
+                       foreach ( $contained as $fqcn ) {
 
                                // Using substr to remove the leading '/'
                                $json[$key][$fqcn] = substr( $path, 1 );
                        }
+               }
+               foreach ( $this->overrides as $path => $fqcn ) {
 
-                       // Sorting the list of autoload classes.
-                       ksort( $json[$key] );
+                       // Using substr to remove the leading '/'
+                       $json[$key][$fqcn] = substr( $path, 1 );
+               }
 
-                       // Update extension.json, using constants for the required
-                       // formatting.
-                       file_put_contents( $this->basepath . '/extension.json',
-                               FormatJson::encode( $json, true ) . "\n" );
-               } else {
-                       $content = array();
-
-                       // We need to generate a line each rather than exporting the
-                       // full array so __DIR__ can be prepended to all the paths
-                       $format = "%s => __DIR__ . %s,";
-                       foreach ( $this->classes as $path => $contained ) {
-                               $exportedPath = var_export( $path, true );
-                               foreach ( $contained as $fqcn ) {
-                                       $content[$fqcn] = sprintf(
-                                               $format,
-                                               var_export( $fqcn, true ),
-                                               $exportedPath
-                                       );
-                               }
-                       }
+               // Sorting the list of autoload classes.
+               ksort( $json[$key] );
 
-                       foreach ( $this->overrides as $fqcn => $path ) {
+               // Update file, using constants for the required
+               // formatting.
+               file_put_contents( $filename,
+                       FormatJson::encode( $json, true ) . "\n" );
+       }
+
+       /**
+        * Generates a PHP file setting up autoload information.
+        *
+        * @param {string} $commandName Command name to include in comment
+        * @param {string} $filename of PHP file to put autoload information in.
+        */
+       protected function generatePHPAutoload( $commandName, $filename ) {
+               // No existing JSON file found; update/generate PHP file
+               $content = array();
+
+               // We need to generate a line each rather than exporting the
+               // full array so __DIR__ can be prepended to all the paths
+               $format = "%s => __DIR__ . %s,";
+               foreach ( $this->classes as $path => $contained ) {
+                       $exportedPath = var_export( $path, true );
+                       foreach ( $contained as $fqcn ) {
                                $content[$fqcn] = sprintf(
                                        $format,
                                        var_export( $fqcn, true ),
-                                       var_export( $path, true )
+                                       $exportedPath
                                );
                        }
+               }
 
-                       // sort for stable output
-                       ksort( $content );
+               foreach ( $this->overrides as $fqcn => $path ) {
+                       $content[$fqcn] = sprintf(
+                               $format,
+                               var_export( $fqcn, true ),
+                               var_export( $path, true )
+                       );
+               }
 
-                       // extensions using this generator are appending to the existing
-                       // autoload.
-                       if ( $this->variableName === 'wgAutoloadClasses' ) {
-                               $op = '+=';
-                       } else {
-                               $op = '=';
-                       }
+               // sort for stable output
+               ksort( $content );
+
+               // extensions using this generator are appending to the existing
+               // autoload.
+               if ( $this->variableName === 'wgAutoloadClasses' ) {
+                       $op = '+=';
+               } else {
+                       $op = '=';
+               }
 
-                       $output = implode( "\n\t", $content );
-                       file_put_contents(
-                               $this->basepath . '/autoload.php',
-                               <<<EOD
+               $output = implode( "\n\t", $content );
+               file_put_contents(
+                       $filename,
+                       <<<EOD
 <?php
 // This file is generated by $commandName, do not adjust manually
 // @codingStandardsIgnoreFile
@@ -208,7 +211,33 @@ global \${$this->variableName};
 );
 
 EOD
-                       );
+               );
+
+       }
+
+       /**
+        * Write out all known classes to autoload.php, extension.json, or skin.json in
+        * the provided basedir
+        *
+        * @param string $commandName Value used in file comment to direct
+        *  developers towards the appropriate way to update the autoload.
+        */
+       public function generateAutoload( $commandName = 'AutoloadGenerator' ) {
+
+               // We need to check whether an extenson.json or skin.json exists or not, and
+               // incase it doesn't, update the autoload.php file.
+
+               $jsonFilename = null;
+               if ( file_exists( $this->basepath . "/extension.json" ) ) {
+                       $jsonFilename = $this->basepath . "/extension.json";
+               } elseif ( file_exists( $this->basepath . "/skin.json" ) ) {
+                       $jsonFilename = $this->basepath . "/skin.json";
+               }
+
+               if ( $jsonFilename !== null ) {
+                       $this->generateJsonAutoload( $jsonFilename );
+               } else {
+                       $this->generatePHPAutoload( $commandName, $this->basepath . '/autoload.php' );
                }
        }
        /**
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 e21a6c2..befe9b1 100644 (file)
        "nmembers": "{{PLURAL:$1|لا أعضاء|عضو واحد|عضوان|$1 أعضاء|$1 عضوا|$1 عضو}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|عضو|أعضاء}}",
        "nrevisions": "{{PLURAL:$1|لا مراجعات|مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}}",
-       "nviews": "{{PLURAL:$1|مشاهدة واحدة|مشاهدتان|$1 مشاهدات|$1 مشاهدة}}",
        "nimagelinks": "مستخدم في {{PLURAL:$1||صفحة واحدة|صفحتين|$1 صفحات|$1 صفحة}}",
        "ntransclusions": "مستخدم في {{PLURAL:$1||صفحة واحدة|صفحتين|$1 صفحات|$1 صفحة}}",
        "specialpage-empty": "لا توجد نتائج لهذا التقرير.",
        "special-characters-group-khmer": "خميرية",
        "special-characters-title-endash": "واصلة قصيرة",
        "special-characters-title-emdash": "واصلة طويلة",
-       "special-characters-title-minus": "علامة الطرح"
+       "special-characters-title-minus": "علامة الطرح",
+       "mw-widgets-titleinput-description-new-page": "الصفحة غير موجودة بعد",
+       "mw-widgets-titleinput-description-redirect": "تحويل إلى $1"
 }
index 520171d..2cd377b 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Апошні запіс з журнала пададзены ніжэй для даведкі:",
        "tags-delete-submit": "Незваротна выдаліць гэтую метку",
        "tags-delete-not-allowed": "Меткі, вызначаныя пашырэньнем, ня могуць быць выдаленыя, акрамя выпадку, калі пашырэньне дазваляе гэта.",
        "tags-delete-not-found": "Метка «$1» не існуе.",
+       "tags-delete-too-many-uses": "Метка «$1» выкарыстаная ў больш чым $2 {{PLURAL:$2|вэрсіі|вэрсіях}}, адпаведна, яна ня можа быць выдаленая.",
+       "tags-delete-warnings-after-delete": "Метка «$1» была пасьпяхова выдаленая, але {{PLURAL:$2|1=атрыманае наступнае папярэджаньне|атрыманыя наступныя папярэджаньні}}:",
        "comparepages": "Параўнаньне старонак",
        "compare-page1": "Старонка 1",
        "compare-page2": "Старонка 2",
        "special-characters-group-khmer": "Кхмэрскія",
        "special-characters-title-endash": "кароткі працяжнік",
        "special-characters-title-emdash": "доўгі працяжнік",
-       "special-characters-title-minus": "мінус"
+       "special-characters-title-minus": "мінус",
+       "mw-widgets-titleinput-description-new-page": "старонка яшчэ не існуе"
 }
index 44672a9..3ce64ce 100644 (file)
        "special-characters-group-khmer": "খেমার",
        "special-characters-title-endash": "en ড্যাশ",
        "special-characters-title-emdash": "em ড্যাশ",
-       "special-characters-title-minus": "বিয়োগ চিহ্ন"
+       "special-characters-title-minus": "বিয়োগ চিহ্ন",
+       "mw-widgets-titleinput-description-new-page": "পাতা এখনো বিদ্যমান নয়",
+       "mw-widgets-titleinput-description-redirect": "$1-এ পুনঃনির্দেশিত"
 }
index 01a3af0..e5d4fd8 100644 (file)
        "category-empty": "''Ova kategorija trenutno ne sadrži članke ni medije.''",
        "hidden-categories": "{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}}",
        "hidden-category-category": "Skrivene kategorije",
-       "category-subcat-count": "{{PLURAL:$2|Ova kategorija ima sljedeću podkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeću podkategoriju|sljedeće $1 podkategorije|sljedećih $1 podkategorija}}, od $2 ukupno.}}",
-       "category-subcat-count-limited": "Ova kategorija sadrži {{PLURAL:$1|slijedeću $1 podkategoriju|slijedeće $1 podkategorije|slijedećih $1 podkategorija}}.",
+       "category-subcat-count": "{{PLURAL:$2|Ova kategorija samo ima sljedeću potkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeću potkategoriju|sljedeće $1 potkategorije|sljedećih $1 potkategorija}}, od $2 ukupno.}}",
+       "category-subcat-count-limited": "Ova kategorija sadrži {{PLURAL:$1|sljedeću $1 potkategoriju|sljedeće $1 potkategorije|sljedećih $1 potkategorija}}.",
        "category-article-count": "{{PLURAL:$2|U ovoj kategoriji nalazi se $1 članak.|{{PLURAL:$1|Prikazan je $1 članak|Prikazana su $1 članka|Prikazano je $1 članaka}} od ukupno $2 u ovoj kategoriji.}}",
        "category-article-count-limited": "{{PLURAL:$1|Slijedeća $1 stranica je|Slijedeće $1 stranice su|Slijedećih $1 stranica je}} u ovoj kategoriji.",
        "category-file-count": "{{PLURAL:$2|Ova kategorija ima slijedeću $1 datoteku.|{{PLURAL:$1|Prikazana je $1 datoteka|Prikazane su $1 datoteke|Prikazano je $1 datoteka}} u ovoj kategoriji, od ukupno $2.}}",
        "title-invalid-talk-namespace": "Vaš zatraženi naslov stranice se odnosi na stranicu za razgovor koja ne može postojati.",
        "title-invalid-characters": "Vaš zatraženi naslov stranice sadrži nevažeće znakove: \"$1\".",
        "title-invalid-leading-colon": "Zahtjevani naslov stranice sadrži nevažeću dvotačku na početku.",
-       "perfcached": "Slijedeći podaci su keširani i možda neće biti u potpunosti ažurirani. Keš sadrži najviše {{PLURAL:$1|jedan rezultat|$1 rezultata}}.",
+       "perfcached": "Sljedeći podaci su keširani i možda neće biti u potpunosti ažurirani. Keš sadrži najviše {{PLURAL:$1|jedan rezultat|$1 rezultata}}.",
        "perfcachedts": "Sljedeći podaci nalaze se u memoriji i posljednji put ažurirani su $1. Keš sadrži najviše {{PLURAL:$4|jedan rezultat|$4 rezultata}}.",
        "querypage-no-updates": "Ažuriranje ove stranice je isključeno.\nPodaci koji se ovdje nalaze ne moraju biti aktuelni.",
        "viewsource": "Pogledaj izvor",
        "subject-preview": "Pregled tema/naslova:",
        "previewerrortext": "Dogodila se greška prilikom prikazivanja vaših izmjena.",
        "blockedtitle": "Korisnik je blokiran",
-       "blockedtext": "'''Vaše korisničko ime ili IP adresa je blokirana.'''\n\nBlokada izvršena od strane $1.\nDati razlog je slijedeći: ''$2''.\n\n*Početak blokade: $8\n*Kraj perioda blokade: $6\n*Ime blokiranog korisnika: $7\n\nMožete kontaktirati $1 ili nekog drugog [[{{MediaWiki:Grouppage-sysop}}|administratora]] da biste razgovarali o blokadi.\n\nNe možete koristiti opciju ''Pošalji e-mail korisniku'' osim ako niste unijeli e-mail adresu u [[Special:Preferences|Vaše postavke]].\nVaša trenutna IP adresa je $3, a oznaka blokade je #$5.\nMolimo Vas da navedete gornje podatke pri zahtjevu za deblokadu.",
-       "autoblockedtext": "Vaša IP adresa je automatski blokirana jer je korištena od strane drugog korisnika, a blokirao ju je $1.\nNaveden je slijedeći razlog:\n\n:''$2''\n\n* Početak blokade: $8\n* Kraj blokade: $6\n* Blokirani korisnik: $7\n\nMožete kontaktirati $1 ili nekog drugog iz grupe [[{{MediaWiki:Grouppage-sysop}}|administratora]] i zahtijevati da Vas deblokira.\n\nZapamtite da ne možete koristiti opciju \"pošalji e-mail ovom korisniku\" sve dok ne unesete validnu e-mail adresu pri registraciji u Vašim [[Special:Preferences|korisničkim postavkama]] te Vas ne spriječava ga je koristite.\n\nVaša trenutna IP adresa je $3, a ID blokade je $5.\nMolimo da navedete sve gore navedene detalje u zahtjevu za deblokadu.",
+       "blockedtext": "'''Vaše korisničko ime ili IP-adresa je blokirana.'''\n\nBlokada izvršena od strane $1.\nDati razlog je sljedeći: ''$2''.\n\n*Početak blokade: $8\n*Kraj perioda blokade: $6\n*Ime blokiranog korisnika: $7\n\nMožete kontaktirati sa $1 ili nekim drugim [[{{MediaWiki:Grouppage-sysop}}|administratorom]] da biste razgovarali o blokadi.\n\nNe možete koristiti opciju ''Pošalji e-mail korisniku'' osim ako niste unijeli e-mail adresu u [[Special:Preferences|Vaše postavke]].\nVaša trenutna IP-adresa je $3, a oznaka blokade je #$5.\nMolimo Vas da navedete gornje podatke pri zahtjevu za deblokadu.",
+       "autoblockedtext": "Vaša IP-adresa automatski je blokirana jer ju je koristio drugi korisnik, a blokirao ju je $1.\nNaveden je sljedeći razlog:\n\n:''$2''\n\n* Početak blokade: $8\n* Kraj blokade: $6\n* Blokirani korisnik: $7\n\nMožete kontaktirati sa $1 ili nekim drugim iz grupe [[{{MediaWiki:Grouppage-sysop}}|administratora]] i zahtijevati da Vas deblokira.\n\nZapamtite da ne možete koristiti opciju \"pošalji e-mail ovom korisniku\" sve dok ne unesete validnu e-mail adresu pri registraciji u Vašim [[Special:Preferences|korisničkim postavkama]] i dok niste spriječeni (blokadom) da je koristite.\n\nVaša trenutna IP-adresa je $3, a ID blokade je $5.\nMolimo da navedete sve gore navedene detalje u zahtjevu za deblokadu.",
        "blockednoreason": "razlog nije naveden",
        "whitelistedittext": "Da bi ste uređivali stranice, morate se $1.",
        "confirmedittext": "Morate potvrditi Vašu e-mail adresu prije nego počnete mijenjati stranice.\nMolimo da postavite i verifikujete Vašu e-mail adresu putem Vaših [[Special:Preferences|korisničkih opcija]].",
        "nonunicodebrowser": "'''UPOZORENJE: Vaš preglednik ne podržava Unicode zapis znakova.\nMolimo Vas promijenite ga prije sljedećeg uređivanja članaka. Znakovi koji nisu po ASCII standardu će se u prozoru za izmjene pojaviti kao heksadecimalni kodovi.'''",
        "editingold": "'''PAŽNJA:  Vi mijenjate stariju\nreviziju ove stranice.\nAko je snimite, sve promjene učinjene od ove revizije će biti izgubljene.'''",
        "yourdiff": "Razlike",
-       "copyrightwarning": "Za sve priloge poslate na projekat {{SITENAME}} smatramo da su objavljeni pod $2 (konsultujte $1 za detalje).\nUkoliko ne želite da vaši članci budu podložni izmjenama i slobodnom rasturanju i objavljivanju,\nnemojte ih slati ovdje. Takođe, slanje članka podrazumijeva i vašu izjavu da ste ga napisali sami, ili da ste ga kopirali iz izvora u javnom domenu ili sličnog slobodnog izvora.\n\n'''NEMOJTE SLATI RAD ZAŠTIĆEN AUTORSKIM PRAVIMA BEZ DOZVOLE AUTORA!'''",
+       "copyrightwarning": "Za sve priloge poslane na projekt {{SITENAME}} smatramo da su objavljeni pod $2 (konsultirajte $1 za detalje).\nAko ne želite da vaši članci budu podložni izmjenama i slobodnoj distribuciji i objavljivanju,\nnemojte ih slati ovdje. Također, slanje članka podrazumijeva i Vašu izjavu da ste ga napisali sami ili da ste ga kopirali iz izvora u javnom domenu ili sličnog slobodnog izvora.\n\n'''NEMOJTE SLATI RAD ZAŠTIĆEN AUTORSKIM PRAVIMA BEZ DOZVOLE AUTORA!'''",
        "copyrightwarning2": "Zapamtite da svi doprinosi na stranici {{SITENAME}} može biti izmijenjen, promijenjen ili uklonjen od strane ostalih korisnika. Ako ne želite da ovo desi sa Vašim tekstom, onda ga nemojte slati ovdje.<br />\nTakođer nam garantujete da ste ovo Vi napisali, ili da ste ga kopirali iz javne domene ili sličnog slobodnog izvora informacija (pogledajte $1 za više detalja).\n'''NE ŠALJITE AUTORSKIM PRAVOM ZAŠTIĆENE TEKSTOVE BEZ DOZVOLE!'''",
        "longpageerror": "'''Greška: Tekst, koji ste poslali, je dug {{PLURAL:$1|jedan kilobajt|$1 kilobajta}}, što je veće od maksimuma, koji iznosi {{PLURAL:$2|jedan kilobajt|$2 kilobajta}}.'''\nStranica ne može biti sačuvana.",
        "readonlywarning": "'''PAŽNJA: Baza je zaključana zbog održavanja, tako da nećete moći da sačuvate svoje izmjene za sada.'''\nMožda želite da kopirate i nalijepite tekst u tekst editor i sačuvate ga za kasnije.\n\nAdministrator koji je zaključao bazu je naveo slijedeće objašnjenje: $1",
        "textmatches": "Tekst stranice odgovara",
        "notextmatches": "Tekst članka ne odgovara",
        "prevn": "{{PLURAL:$1|prethodni $1|prethodnih $1}}",
-       "nextn": "{{PLURAL:$1|slijedeći $1|slijedećih $1}}",
+       "nextn": "{{PLURAL:$1|sljedeći $1|sljedećih $1}}",
        "prev-page": "prethodna stranica",
        "next-page": "sljedeća stranica",
        "prevn-title": "{{PLURAL:$1|Prethodni $1 rezultat|Prethodna $1 rezultata|Prethodnih $1 rezultata}}",
-       "nextn-title": "{{PLURAL:$1|Slijedeći $1 rezultat|Slijedeća $1 rezultata|Slijedećih $1 rezultata}}",
+       "nextn-title": "{{PLURAL:$1|Sljedeći $1 rezultat|Sljedeća $1 rezultata|Sljedećih $1 rezultata}}",
        "shown-title": "Pokaži $1 {{PLURAL:$1|rezultat|rezultata}} po stranici",
        "viewprevnext": "Pogledaj ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''Postoji stranica pod nazivom \"[[:$1]]\" na ovoj wiki'''",
        "searchprofile-everything-tooltip": "Pretraži sve sadržaje (ukljujući i stranice za razgovor)",
        "searchprofile-advanced-tooltip": "Traži u ostalim imenskim prostorima",
        "search-result-size": "$1 ({{PLURAL:$2|$2 riječ|$2 riječi}})",
-       "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}} ({{PLURAL:$2|1 podkategorija|$2 podkategorije|$2 podkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})",
+       "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}} ({{PLURAL:$2|1 potkategorija|$2 potkategorije|$2 potkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})",
        "search-redirect": "(preusmjeravanje $1)",
        "search-section": "(sekcija $1)",
        "search-category": "(kategorija $1)",
        "default": "standardno",
        "prefs-files": "Datoteke",
        "prefs-custom-css": "Prilagođeni CSS",
-       "prefs-custom-js": "Prilagođeni JS",
+       "prefs-custom-js": "Prilagođeni JavaScript",
        "prefs-common-css-js": "Dijeljeni CSS/JS za sve kože:",
        "prefs-reset-intro": "Možete koristiti ovu stranicu da poništite Vaše postavke na ovom sajtu na pretpostavljene vrijednosti.\nOvo se ne može vratiti unazad.",
        "prefs-emailconfirm-label": "E-mail potvrda:",
        "right-sendemail": "Slanje e-maila drugim korisnicima",
        "right-passwordreset": "Pogledaj e-mailove za obnavljanje šifre",
        "right-managechangetags": "Napravi i briši [[Special:Tags|oznake]] iz baze podataka",
+       "right-applychangetags": "Primijeni [[Special:Tags|oznake]] na nečije izmjene",
        "newuserlogpage": "Zapis novih korisnika",
        "newuserlogpagetext": "Ovo je zapis o registraciji novih korisnika.",
        "rightslog": "Zapisnik korisničkih prava",
        "action-createpage": "napravite stranicu",
        "action-createtalk": "kreirate stranice za razgovor",
        "action-createaccount": "napravite ovaj korisnički račun",
+       "action-history": "gledate historiju ove stranice",
        "action-minoredit": "da označite ovu izmjenu kao malu",
        "action-move": "premjestite ovu stranicu",
        "action-move-subpages": "premjestite ovu stranicu, i njene podstranice",
        "action-viewmywatchlist": "pogledajte svoj spisak praćenih stranica",
        "action-viewmyprivateinfo": "pogledajte svoje privatne informacije",
        "action-editmyprivateinfo": "uredite svoje privatne podatke",
+       "action-managechangetags": "napravite i uklonite oznake iz baze podataka",
        "nchanges": "$1 {{PLURAL:$1|promjena|promjene|promjena}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|izmjena od Vaše posljedne posjete}}",
        "enhancedrc-history": "historija",
        "recentchanges": "Nedavne izmjene",
        "recentchanges-legend": "Postavke nedavnih izmjena",
        "recentchanges-summary": "Na ovoj stranici možete pratiti nedavne izmjene.",
+       "recentchanges-noresult": "U zadanom vremenu nema promjena za zadane kriterije.",
        "recentchanges-feed-description": "Na ovoj stranici možete pratiti nedavne izmjene.",
        "recentchanges-label-newpage": "Ovom izmjenom pravi se nova stranica",
        "recentchanges-label-minor": "Ovo je mala izmjena",
        "filehist-comment": "Komentar",
        "imagelinks": "Upotreba datoteke",
        "linkstoimage": "{{PLURAL:$1|Slijedeća stranica koristi|Slijedećih $1 stranica koriste}} ovu sliku:",
-       "linkstoimage-more": "Više od $1 {{PLURAL:$1|datoteke|datoteka}} je povezano s ovom datotekom.\nSlijedeći spisak pokazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nOvdje je dostupan [[Special:WhatLinksHere/$2|potpuni spisak]].",
+       "linkstoimage-more": "Više od $1 {{PLURAL:$1|datoteke|datoteka}} povezano je s ovom datotekom.\nSljedeći spisak pokazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nOvdje je dostupan [[Special:WhatLinksHere/$2|potpuni spisak]].",
        "nolinkstoimage": "Nema stranica koje koriste ovu sliku.",
        "morelinkstoimage": "Vidi [[Special:WhatLinksHere/$1|ostale linkove]] prema ovoj datoteci.",
        "linkstoimage-redirect": "$1 (preusmjerenje datoteke) $2",
        "restriction-level-all": "svi nivoi",
        "undelete": "Pogledaj izbrisane stranice",
        "undeletepage": "Pogledaj i vrati izbrisane stranice",
-       "undeletepagetitle": "'''Slijedeći sadržaj prikazuje obrisane revizije od [[:$1|$1]]'''.",
+       "undeletepagetitle": "'''Sljedeći sadržaj prikazuje obrisane revizije od [[:$1|$1]]'''.",
        "viewdeletedpage": "Pogledaj izbrisane stranice",
        "undeletepagetext": "{{PLURAL:$1|Slijedeća $1 stranica je obrisana|Slijedeće $1 stranice su obrisane|Slijedećih $1 je obrisano}} ali su još uvijek u arhivi i mogu biti vraćene.\nArhiva moše biti periodično čišćena.",
        "undelete-fieldset-title": "Vraćanje revizija",
        "lockfilenotwritable": "Datoteka zaključavanja baze je zaštićena za pisanje.\nAko želite otključati ili zaključati bazu, ova datoteka mora biti omogućena za pisanje od strane web servera.",
        "databasenotlocked": "Baza podataka nije zaključana.",
        "lockedbyandtime": "(od $1 dana $2 u $3)",
-       "move-page": "Premještanje $1",
-       "move-page-legend": "Premjestite stranicu",
+       "move-page": "Premjesti $1",
+       "move-page-legend": "Premjesti stranicu",
        "movepagetext": "Korištenjem ovog formulara možete preimenovati stranicu, premještajući cijelu historiju na novo ime.\nČlanak pod starim imenom postat će stranica koja preusmjerava na članak pod novim imenom. \nMožete automatski izmijeniti preusmjerenje do izvornog naslova.\nAko se ne odlučite na to, provjerite [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|neispravna preusmjeravanja]].\nDužni ste provjeriti da svi linkovi i dalje nastave voditi na prave stranice.\n\nImajte na umu da članak '''neće''' biti premješten ako već postoji članak pod imenom na koje ga namjeravate preusmjeriti osim u slučaju stranice za preusmjeravanje koja nema nikakvih starih izmjena.\nTo znači da možete vratiti stranicu na prethodno mjesto ako pogriješite, ali ne možete zamijeniti postojeću stranicu.\n\n'''Pažnja!'''\nOvo može biti drastična i neočekivana promjena kad su u pitanju popularne stranice.\nMolimo da dobro razmislite prije no što premjestite stranicu.",
-       "movepagetext-noredirectfixer": "Koristeći donji obrazac, preimenovat ćete stranicu i premjestiti cijelu njenu historiju na novi naziv.\nStari naziv postat će preusmjerenje na novi naziv.\nMolimo da provjerite postoje li [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|nedovršena preusmjerenja]].\nVi ste za to odgovorni te morate provjeriti jesu li linkovi ispravni i vode li tamo kamo bi trebali voditi.\n\nImajte na umu da stranica '''neće''' biti premještena ako već postoji stranica s tim imenom, osim ako je prazna ili je preusmjerenje ili nema ranije historije.\nOvo znači da možete preimenovati stranicu nazad gdje je ranije bila preimenovana ako ste pogriješili, ali ne možete ponovo preimenovati postojeću stranicu.\n\n'''Pažnja!'''\nImajte na umu da preusmjeravanje popularnog članka može biti\ndrastična i neočekivana promjena za korisnike; molimo da budete sigurni da ste shvatili posljedice prije no što nastavite.",
-       "movepagetalktext": "Odgovarajuća stranica za razgovor, ako postoji, će automatski biti premještena istovremeno '''osim:'''\n*Ako premještate stranicu preko imenskih prostora,\n*Neprazna stranica za razgovor već postoji pod novim imenom, ili\n*Odčekirajte donju kutiju.\n\nU tim slučajevima, moraćete ručno da premjestite stranicu ukoliko to želite.",
-       "movearticle": "Premjestite stranicu",
+       "movepagetext-noredirectfixer": "Koristeći donji obrazac, preimenovat ćete stranicu i premjestiti cijelu njenu historiju na novi naziv.\nStari naziv postat će preusmjerenje na novi naziv.\nMolimo da provjerite postoje li [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|nedovršena preusmjerenja]].\nVi ste za to odgovorni te morate provjeriti jesu li linkovi ispravni i vode li tamo kamo bi trebali voditi.\n\nImajte na umu da stranica '''neće''' biti premještena ako već postoji stranica s tim imenom, osim ako je prazna ili je preusmjerenje ili nema ranije historije.\nOvo znači da možete preimenovati stranicu nazad gdje je ranije bila preimenovana ako ste pogriješili, ali ne možete ponovo preimenovati postojeću stranicu.\n\n'''Pažnja!'''\nImajte na umu da premještanje popularnog članka može biti\ndrastična i neočekivana promjena za korisnike; molimo da budete sigurni da ste shvatili posljedice prije no što nastavite.",
+       "movepagetalktext": "Odgovarajuća stranica za razgovor, ako postoji, automatski će biti pomjerena istovremeno '''osim ako:'''\n*pomjerate stranicu preko imenskih prostora\n*neprazna stranica za razgovor već postoji pod novim imenom\n*odčekirate donju kutiju.\n\nU tim slučajevima morat ćete ručno pomjeriti stranicu ako to želite.",
+       "movearticle": "Premjesti stranicu:",
        "moveuserpage-warning": "'''Upozorenje:''' Premještate korisničku stranicu. Molimo da zapamtite da će se samo stranica premjestiti a korisnik se ''neće'' preimenovati.",
        "movenologintext": "Morate biti registrovani korisnik i [[Special:UserLogin|prijavljeni]] da biste premjestili stranicu.",
        "movenotallowed": "Nemate dopuštenje za premještanje stranica.",
        "cant-move-to-user-page": "Nemate dopuštenje da premjestite stranicu na korisničku stranicu (osim na korisničku podstranicu).",
        "newtitle": "Novi naslov",
        "move-watch": "Prati ovu stranicu",
-       "movepagebtn": "premjestite stranicu",
+       "movepagebtn": "Premjesti članak",
        "pagemovedsub": "Premještanje uspjelo",
        "movepage-moved": "'''\"$1\" je premještena na \"$2\"'''",
        "movepage-moved-redirect": "Preusmjerenje je napravljeno.",
        "nocredits": "Autori ove stranice nisu navedeni.",
        "spamprotectiontitle": "Filter za zaštitu od neželjenih poruka",
        "spamprotectiontext": "Strana koju želite da sačuvate je blokirana od strane filtera za neželjene poruke.\nOvo je vjerovatno izazvao vezom ka vanjskoj nepoželjnoj stranici.",
-       "spamprotectionmatch": "Slijedeći tekst je izazvao naš filter za neželjene poruke: $1",
+       "spamprotectionmatch": "Sljedeći tekst aktivirao je naš filter za neželjene poruke: $1",
        "spambot_username": "MediaWiki čišćenje spama",
        "spam_reverting": "Vraćanje na posljednju verziju koja ne sadrži linkove ka $1",
        "spam_blanking": "Sve revizije koje sadrže linkove ka $1, očisti",
        "pageinfo-category-info": "Informacije o kategoriji",
        "pageinfo-category-total": "Ukupan broj članova",
        "pageinfo-category-pages": "Broj stranica",
-       "pageinfo-category-subcats": "Broj podkategorija",
+       "pageinfo-category-subcats": "Broj potkategorija",
        "pageinfo-category-files": "Broj datoteka",
        "markaspatrolleddiff": "Označi kao patrolirano",
        "markaspatrolledtext": "Označi ovaj članak kao patroliran",
        "watchlistedit-clear-submit": "Isprazni spisak nadgledanja (Ovo je trajno!)",
        "watchlistedit-clear-done": "Vaš spisak praćenja je očišćen.",
        "watchlisttools-clear": "Očisti spisak nadgledanja",
-       "watchlisttools-view": "Pregled promjena praćenih stranica",
-       "watchlisttools-edit": "Pogledaj i uredi listu praćenih članaka.",
-       "watchlisttools-raw": "Uređivanje praćenih stranica u okviru praćenja.",
+       "watchlisttools-view": "Pogledaj srodne izmjene",
+       "watchlisttools-edit": "Pogledaj i uredi spisak praćenja",
+       "watchlisttools-raw": "Uredi spisak praćenja u okviru za uređivanje",
        "iranian-calendar-m1": "Farvardin (Iranski kalendar)",
        "iranian-calendar-m2": "Ordibehesht",
        "iranian-calendar-m3": "Khordad",
        "tags-delete-title": "Izbriši oznaku",
        "tags-delete-reason": "Razlog:",
        "tags-delete-not-found": "Oznaka \"$1\" ne postoji.",
+       "tags-activate-reason": "Razlog:",
+       "tags-activate-not-found": "Oznaka \"$1\" ne postoji.",
        "comparepages": "Usporedi stranice",
        "compare-page1": "Stranica 1",
        "compare-page2": "Stranica 2",
        "dberr-info": "(ne može se spojiti server baze podataka: $1)",
        "dberr-usegoogle": "U međuvremenu, možete pokušati pretraživanje putem Google.",
        "dberr-outofdate": "Zapamtite da njihovi indeksi našeg sadržaja ne moraju uvijek biti ažurni.",
-       "dberr-cachederror": "Slijedeći tekst je keširana kopija zahtjevane stranice i možda nije potpuno ažurirana.",
+       "dberr-cachederror": "Sljedeći tekst je keširana kopija zahtijevane stranice, koja možda nije potpuno ažurirana.",
        "htmlform-invalid-input": "Postoje određeni problemi s Vašim unosom",
        "htmlform-select-badoption": "Vrijednost koju ste naveli nije valjana opcija.",
        "htmlform-int-invalid": "Vrijednost koju ste naveli nije cijeli broj.",
index 407f9cc..cd6951e 100644 (file)
        "yourdiff": "Rozdíly",
        "copyrightwarning": "Všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} jsou zveřejňovány podle $2 (podrobnosti najdete na $1).\nPokud si nepřejete, aby váš text byl nemilosrdně upravován a volně šířen, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.<br />\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. <em>public domain</em>).\n'''NEVKLÁDEJTE DÍLA CHRÁNĚNÁ AUTORSKÝM PRÁVEM BEZ DOVOLENÍ!'''",
        "copyrightwarning2": "Uvědomte si, že všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} mohou být ostatními uživateli upraveny, pozměněny či odstraněny. Pokud si nepřejete, aby váš text byl nemilosrdně upravován, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.<br />\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. <em>public domain</em>); podrobnosti najdete na $1. '''Nekopírujte díla chráněná autorským právem bez dovolení!'''",
+       "editpage-cannot-use-custom-model": "Model obsahu této stránky nelze změnit.",
        "longpageerror": "'''Chyba: Pokoušíte se uložit text o velikosti {{PLURAL:$1|$1 KiB}}, přičemž dovolené maximum je {{PLURAL:$2|$2 KiB}}.'''\nVaše změna nemůže být uložena.",
        "readonlywarning": "<strong>Varování: Databáze byla uzamčena kvůli údržbě, takže momentálně nebudete moci uložit své změny.</strong>\nMůžete si okopírovat text do souboru a uložit si ho na později.\n\nSprávce serveru, který databázi zamkl, poskytl toto zdůvodnění: $1",
        "protectedpagewarning": "'''Varování: Tato stránka byla zamčena, takže ji mohou editovat pouze správci.'''\nNíže je pro přehled zobrazen nejnovější protokolovací záznam:",
        "special-characters-group-khmer": "Khmerština",
        "special-characters-title-endash": "krátká pomlčka",
        "special-characters-title-emdash": "dlouhá pomlčka",
-       "special-characters-title-minus": "znaménko minus"
+       "special-characters-title-minus": "znaménko minus",
+       "mw-widgets-titleinput-description-new-page": "stránka zatím neexistuje",
+       "mw-widgets-titleinput-description-redirect": "přesměrování na $1"
 }
index d24f223..14c6003 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:",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "Halbgeviertstrich",
        "special-characters-title-emdash": "Geviertstrich",
-       "special-characters-title-minus": "Minus"
+       "special-characters-title-minus": "Minus",
+       "mw-widgets-titleinput-description-new-page": "Seite ist noch nicht vorhanden",
+       "mw-widgets-titleinput-description-redirect": "Weiterleitung nach $1"
 }
index e8e3166..59175be 100644 (file)
        "hidetoc": "लुकाउन्या",
        "collapsible-collapse": "खुम्च्याउन्या",
        "collapsible-expand": "फैलाउ",
-       "confirmable-confirm": "तमरà¥\8b {{GENDER:$1|लिà¤\99à¥\8dà¤\97}} à¤¹à¥\8b?",
+       "confirmable-confirm": "à¤\95à¥\8dया {{GENDER:$1|तम}} à¤¸à¥\81निशà¥\8dà¤\9aित à¤\9bà¥\8c ?",
        "confirmable-yes": "हो",
        "confirmable-no": "नाइँ",
        "thisisdeleted": "$1 हेर्न्या या पैल्लीका रुपमी फर्काउन्या हो?",
        "exception-nologin": "प्रवेश (लग ईन) नगरिएको",
        "virus-scanfailed": "जँचाई असफल(कोड $1)",
        "virus-unknownscanner": "थानभया एन्टीभाइरस:",
+       "logouttext": "<strong>तमी अहिल बाहिर निस्क्याका  छौ।</strong>\n\nयाद राख्या तमीले ब्राउजरको क्याच खालि नगर्यासम्म कुनै पानाहरूमी तमी अझैं प्रवेश गरिरख्याको धेकाउन सक्छ।",
        "welcomeuser": "$1स्वागत छ!",
        "yourname": "प्रयोगकर्ता नाम:",
        "userlogin-yourname": "प्रयोगकर्ता नाम",
        "changeemail-submit": "इमेल परिवर्तन गद्या",
        "changeemail-throttled": "तमले अलै भौत फेर प्रवेशका निम्ति प्रयास गरया छौ।\nकृपया $1 पर्खेर मात्र प्रयास गर।",
        "resettokens": "टोकन पूर्वरुपमी फर्काउन्या",
+       "resettokens-text": "जो टोकन तमरो खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तम त्यसलाई यहाँ रिसेट गद्द सक्द्या हौ।\n\nयदि तमले तिनलाई भुलवस कैकनै देखाईदिया छौ वा तमरो खाता ह्याक भइसक्याको छ भन्या तम यसलाई रिसेट गर्या ।",
        "resettokens-no-tokens": "पूर्वरुमी फर्काउन्या कोई लै टोकन नाइथिन् ।",
        "resettokens-legend": "टोकन पूर्वरुपमी फर्काउन्या",
        "resettokens-tokens": "टोकनहरू:",
        "preview": "पूर्वावलोकन",
        "showpreview": "पूर्वालोकन धेकाउन्या",
        "showdiff": "परिवर्तन धेकाउन्या",
+       "blankarticle": "<strong>चेतावनी:</strong> तम एक खालि पानाको निर्माण गद्द लाग्याछौ ।\nयदि तमले \"{{int:savearticle}}\" लाई पुनः थिच्यौ भण्या पानो बिना कुनै सामग्री नै निर्मित गरिन्याछ ।",
        "anoneditwarning": "<strong>चेतावनी:</strong> तमले प्रवेश अरेको नाइथिन । तमरो आइपि ठेगाना पाना सम्पादन इतिहासमि दर्ता गरिन्या छ र यो सब्बैले हेद्द सक्कान । यदि तमलाईँ <strong>[$1 लगईन]</strong> वा <strong>[$2 नयाँ खाता बनाउन्या] गर्याभण्या तमबठे गरियाको सम्पादन तमरो प्रयोगकर्तानाममि जोडिन्याछ ।",
+       "selfredirect": "<strong>चेतावनी:</strong> तम यै पानालाई आफुमी पुनः निर्देशित गद्द लाग्याछौ ।\nहुनसक्छ तम अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गद्द लाग्याछौ, वा गलत पानाको सम्पादन गद्द लाग्याछौ ।\nतम पुनः एकपल्ट \"{{int:savearticle}}\" क्लिक गद्दाछौ, पुनः निर्देशित तसै लै बनाइन्याछ।",
        "summary-preview": "सारांश पूर्वालोकन:",
        "subject-preview": "विषय/शीर्षपंक्ति पूर्वरुप:",
        "blockedtitle": "प्रयोककर्तालाई रोक लगाइया छ",
        "blockedtext": "'''तमरो प्रयोगकर्ता नाम या IP ठेगानालाई रोक लगाइएको छ ।'''\n\nरोक लगाउने  $1.\nरोक लगाउनाको कारण ''$2''.\n\n* रोक सुरू हुने : $8\n* रोक सकिने: $6\n* रोकबाट लक्षित: $7\n\nतमले  $1 वा और कोइ  [[{{MediaWiki:Grouppage-sysop}}|administrator]] सँग रोकको बारेमी छलफल गर्न सम्पर्क गर्न सकुन्छौ ।\nतमले  'प्रयोगकर्तालाई इ-मेल गर्ने ' सुविधा मान्य इमेल ठेगाना [[Special:Preferences|account preferences]] मी नखुलाए सम्म प्रयोगगर्न पाउनुहुन्या छैन र येको प्रयोग गर्नबठे रोक लगाइया छैन ।\nतमरो IP ठेगाना $3 को, र रोक्का संख्या #$5.\nकृपया तमरा प्रश्नमी सबै जानकारी खुलाया ।",
        "blockednoreason": "कारण दिइईया नाइँथिन",
        "whitelistedittext": "पाना सम्पादन गर्न तमले $1 गद्दु पडन्छ।",
+       "nosuchsectiontext": "तमले तसो खण्डको सम्पादन गद्या प्रयास गर्यौ जो अस्तित्वमी छैन।\nयैको नाम बदलियाको अथवा मेटाइयाको हुनुपडन्छ जब तमी यै पानालाई हेद्द लाग्याका छियौ ।",
        "loginreqtitle": "प्रवेशगर्नु जरुरी छ।",
        "loginreqlink": "प्रवेश (लग ईन)",
        "loginreqpagetext": "अरु पृष्ठहेर्न तमले $1 गद्दु पडन्छ ।",
        "editconflict": "सम्पादन बाँझ्यो: $1",
        "yourtext": "तमरा पाठहरू",
        "storedversion": "संग्रहित पुनरावलोकन",
+       "editingold": "<strong>चेतावनी: तम यै पानाको अति पुरानो अप्रचलित संशोधनलाई सम्पादन गद्द लाग्याछौ ।<strong>\nयदि तमीले यै परिवर्तनलाई सङ्ग्रह गर्यौ भण्या यै पछिका संशोधनहरू नष्ट हुन्याछन् ।",
        "yourdiff": "भिन्नताहरू",
+       "copyrightwarning2": "कृपया ध्यान देओ यै {{SITENAME}}मी दियाका योगदानहरूलाई अन्य योगदानकर्ताहरूद्वारा सम्पादन गरिन्याछ, परिवर्तन गरिन्याछ अथवा हटाइन्याछ । यदि तमरो लेखलाई निर्दयता पूर्वक सम्पादन गरेको चाहदैनौ भण्या त्यो यहाँ जनराख।<br />\nयदि तमी किटानसाथ भन्नाछौ कि यो लेख तम आफैले लेख्याको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबठे लियाको हो (विवरणकोलागि हेर $1 ). \n'''कपीराइट भयाको रचना अनुमति बिना  यहाँ जनराख!'''",
+       "readonlywarning": "<strong>चेतावनी: तथ्याङ्क मर्मतको निम्ति बन्द गरियाकोछ, यै कारण तमी आफ्नो सम्पादन अहिले सङ्ग्रह गद्द सक्द्याहौन ।</strong>\n\nयदि तमी चाहन्छौ भण्या अहिले यहाँ भयाका पाठलाई कपि गरि कतै टेक्स्ट फाइलमी पेस्ट गरिबर सङ्ग्रह गद्द सक्द्याहौ ।\n\nप्रवन्धक जनले यो बन्द गर्याको छ उनले यसो विवरण दियाको छ: $1",
        "protectedpagewarning": "<strong>सूचना: यै पानालाई सुरक्षित गरियाको छ यसकारण प्रवन्धकको विशेषाधिकार प्राप्त प्रयोगकर्ताहरूले मात्र यैलाई सम्पादन गद्द सक्द्याछन् ।</strong>\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइयाको छ:",
        "templatesused": "यै पानामी राखियाका {{PLURAL:$1|Template|ढाँचाहरू}} :",
        "template-protected": "(सुरक्षित)",
        "content-failed-to-parse": "$1 को लागि $2 सामग्रीलाई पार्स गर्न विफल, गल्ती: $3",
        "invalid-content-data": "अमान्य सामग्री डेटा",
        "content-not-allowed-here": "सामग्री \"$1\"  [[$2]] पानामी राख्न अनुमती छैन ।",
+       "editwarning-warning": "यै पानाबठे बाहिर जाँदा तमले गर्याको कुनै पनि परिवर्तन हराउन्याछ ।\nयदि तमले लग इन गर्याको छ भण्या तमी यै सूचनालाई धेकाउन आफ्नो रोजाईहरूको \"{{int:prefs-editing}}\" भागमी गइबर बन्द गद्द सक्द्याहौ।",
        "content-model-wikitext": "विकिपाठ",
        "content-model-text": "साधारण पाठ",
        "content-model-javascript": "जाभास्क्रिप्ट",
        "revdelete-nooldid-title": "अमान्य पुनरावलोकन लक्ष",
        "revdelete-no-file": "खुलाइएको पाना अस्तित्वमी छैन",
        "revdelete-show-file-submit": "हो",
+       "revdelete-confirm": "पुष्टि गप कि तमी यो कार्य गद्द चाहन्छौ, तमी यऐको परिणाम बठे अवगत छौ, र तमी यो [[{{MediaWiki:Policy-url}}|नीति]] अनुसार गद्द लाइराछौ।",
        "revdelete-legend": "दृष्टि बन्देज मिलाउन्या",
        "revdelete-hide-text": "पुनरावलोकन पाठ",
        "revdelete-hide-image": "फाइल कमेन्ट लुकाउन्या",
        "upload-recreate-warning": "'''चेतावनी: त्यस नाममी रह्याका फाइलहरू सारियाको या हटायाको छ।'''\n\nयै पानाको सारियाको र हटायाको लग तमरो सहजताको लागि दियाको छ।",
        "filedesc": "सारांश:",
        "large-file": "यो सिफारिस गर्याछकि फाइलहरूको आकार $1 भन्दा ठूला हुनु हुँदैन;\nयै फाइलको आकार $2 छ ।",
+       "fileexists": "यै नामको फाइल पैल्ली नैं छ, यदि तम परिवर्तन गद्या कुरडीमू सुनिश्चित छैनौ भण्या कृपया <strong>[[:$1]]</strong> जाँच गर।\n[[$1|thumb]]",
+       "filewasdeleted": "यै नामको एक फाइल पहिली पनि अपलोड गरिबर पछि हटाई सकियाको छ।\nपुनः अपलोड गद्दु पूर्व तम $1 लाई निक्करी जाँच गर ।",
        "uploadstash-nofiles": "तमरा कोइ पनि स्टाश गर्याका फाइलहरू नाइथिन् ।",
        "uploadstash-refresh": "फाइलहरूको सूची ताजा गर्न्या",
        "license-header": "कोइ केइ नाइथिन",
        "activeusers-hidesysops": "प्रवन्धकहरू लुकाउन्या",
        "activeusers-noresult": "प्रयोगकर्ताहरू भेटियानन्",
        "mailnologintext": "तमीले अरु प्रयोगकर्तानलाई ईमेल पठाउनको लागि आफु पहिली [[Special:UserLogin|प्रवेश(लगइन)गर्याको]] हुनुपडन्छ र [[Special:Preferences|आफ्नो रोजाइहरूमी]] एउटा वैध ईमेल ठेगाना भयाको हुनुपडन्छ ।",
+       "emailpagetext": "तल दियाको फार्मले तमी यै {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्द्या हौ । तमीले जो ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता रोजाईहरू]]मी दियाका छियौ त्यो यै इमेललाई \"पठाउने\" को रूपमी आउन्याछ, अतः प्राप्तकर्ता तमीलाई सिधै जवाफ दिनसक्द्याछ ।",
+       "usermaildisabledtext": "यै विकिमी तम और प्रयोगकर्तानलाई ई-मेल पठाउन नाइसक्दा",
        "mywatchlist": "मेरो ध्यान सूची",
        "watch": "ध्यान राख",
        "watchthispage": "यै पानाको ध्यान राख",
        "notanarticle": "सामाग्री छैन",
        "enotif_reset": "सब्बै पानाहरू हेर्याको भनी चिनो लाउन्या",
        "enotif_body": "प्रिय $WATCHINGUSERNAME,\n\n\n{{SITENAME}}को पाना $PAGETITLE  $PAGEEDITDATE का दिन $PAGEEDITOR द्वारा $CHANGEDORCREATED, \nअहिलको संशोधनको निउती हेर  $PAGETITLE_URL ।\n\n$NEWPAGE\n\nसम्पादकको सारांश: $PAGESUMMARY $PAGEMINOREDIT\n\nसम्पादकसित सम्पर्क राख:\nमेल: $PAGEEDITOR_EMAIL\nविकि: $PAGEEDITOR_WIKI\n\nतमी यै पानामी नगयासम्म अब उसो कुनै परिवर्तन भयाका खण्डमी कुनै सूचना दिन्याछैन ।\nतमरा सम्पूर्ण ध्यान सूचीका पानानको लागि तमीले सूचना पताकालाई ध्यान सूचीमी पुनर्बहाली गद्द सक्द्या हौ । \n\n             तमरो मित्र {{SITENAME}} सूचना प्रणाली\n--\nइमेल सूचना व्यवस्था परिवर्तन गद्द, जाओ\n{{canonicalurl:{{#special:Preferences}}}}\n\nध्यान सूची व्यवस्थित गर्न, जाओ\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nध्यान सूची मेट्न, जाओ\n$UNWATCHURL\n\nप्रतिक्रिया र अन्य सहयोगका निउती:\n$HELPPAGE",
+       "confirmdeletetext": "तमी यो पानो र यैको इतिहास मेट्ट लाग्याछौ । कृपया पुष्टि गर कि [[{{MediaWiki:Policy-url}}|नियम]] मुताबिक तम मेट्ट लाग्याछौ।",
        "dellogpage": "मेटाइयाको लग",
        "delete-toobig": "यै पानाको सम्पादन इतिहास भौतै र  $1 {{PLURAL:$1|पुनरावलोक|पुनरावलोकहरू}}भन्दा बढी रह्याको छ।\n {{SITENAME}}मी दुर्घटनाको कारणले गडबडी आउनसक्द्या कुरडीलाई रोक्न यसा पानाहरूलाई मेट्नबठे निषेध गरियाको छ ।",
        "rollback": "सम्पादनहरू उल्टाउन्या",
        "contribslink": "योगदानहरू",
        "block-log-flags-anononly": "नाम नभयाका प्रयोकर्ताहरू मात्र",
        "ipbblocked": "तमी अरु प्रयोगकर्तानहरूलाई ब्लक गर्न वा उनीहरूको ब्लक खोल्न नाइसक्दा किनभने तमी आफै ब्लक भयाका छौ ।",
+       "lockdbtext": "डेटाबेसमी ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो रौजाईमी परिवर्तन, आफ्नो ध्यानसूचीमी सम्पादन, र अन्य वस्तु जैको लागि डेटाबेसमी परिवर्तन गरें हुन्छ, त्यैबठे वन्चित हुन्याछ । कृपया यो सुनिश्चित गर कि तम यो गर्न चाहन्छौ, र तम रक्षण पश्चात ताला खोल्न्या हौ ।",
+       "movepagetext-noredirectfixer": "तल दियाको फारमले पानाको नाम परिवर्तन गद्याछ, उइको सबै इतिहास पनि नयाँ नामले धेकिन्याछ ।\nपुरानो शीर्षक नयाँ नाममी अनुप्रेषण गद्याछ ।\nमूल शीर्षक तर्फ लिएर जान्या सबै अनुप्रेषणहरूलाई तम स्वचालित रूपले परिवर्तन गद्द सक्द्या हौ ।\nयदि तम यसो नाइ गद्या भया कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]का लागि पक्कै जाँच गर ।\nलिङ्क आफ्नो स्थानमै रहोस्, यो सुनिश्चित गर्ने जिम्मेवारी तमरो हो ।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भण्या नाम परिवर्तन '''हुन''' सक्दैन । तर यदि नयाँ शीर्षक भयाको लेख खाली छ अथवा कतै अन्य स्थानमी अनुप्रेषित गद्दैछ र साथै उइको पुरानो संस्करण छैन भण्या त्यैको नाम परिवर्तन हुन्याछ ।\nयैको अभिप्राय यो हो कि यदि तमीबठे गल्ती भयाको छ भण्या तम फेरी पुरानो नाममी यस पानालाई सार्न सक्द्याछौ, र साथै तम कुनै पहिली बठे रह्याको पानाको सट्टा यो स्थानान्तरण गद्द सक्द्या हौन ।\n\n<strong>चेतावनी!<strong>\nयदि पानो खासै लोकप्रिय छ भण्या त्यैको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्ना पहिली तमी यैको नतिजासँग परिचित भयाकाछौ ।",
        "cant-move-user-page": "तमसँग प्रयोगकर्ता पानाहरू साद्या अनुमती नाइथिन् (सहपानाहरू बाहेक)",
        "cant-move-to-user-page": "तमसँग पानाहरूलाई प्रयोगकर्ता पानामी साद्या अनुमती नाइथिन् (प्रयोगकर्ता सहपृष्ठहरूमी बाहेक)",
        "move-subpages": "उप पानाहरू सार्न्या($1 सम्मको)",
        "movenosubpage": "यै पानाको उपपाना नाइथी",
        "protectedpagemovewarning": "<strong>सूचना:</strong> यै पानालाई सुरक्षित गरियाको छ यसकारण प्रवन्धकको विशेषाधिकार प्राप्त प्रयोगकर्ताहरूले मात्र यैको नाम बदल्न सक्द्या छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दियाको छ:",
        "export": "पानहरु पठौन्या",
+       "exporttext": "तमी विशिष्ठ पानाको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गद्द सक्द्याहौ अथवा पानाहरूको समूहका केहि XML मी बेर्न सक्द्याहौ।\nयो [[Special:Import|आयात पाना]]को सहायताले मीडियाविकीको प्रयोग गरिवर दोश्रो विकीबठे आयात गद्द सकिन्याछ।\n\nपानाहरूको निर्यात गद्दका लागि, तल विषय वस्तु बाकसमी शीर्षक देओ, एक शीर्षक प्रति पङ्क्ति, र छान कि तम वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहन्छौ वा चाहदैनौ, वा पछिल्लो सम्पादनका बारेमी जानकारीसँग मात्रै वर्तमान अवतरण चाहन्छौ।\n\nपछीको स्थितिको लागि तमी लिङ्कको पनि प्रयोग गद्द सक्द्याहौ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।",
        "thumbnail-more": "ठूलो बनौन्या",
        "import-noarticle": "आयात गद्दाकी लाई पानाहरू नाइथिन्",
        "tooltip-pt-userpage": "तमरो प्रयोगकर्ता पानो",
        "exif-orientation-1": "सानतिनो",
        "namespacesall": "सब्बै",
        "monthsall": "सब्बै",
+       "confirmrecreate": "प्रयोगकर्ता [[User:$1|$1]] ([[User talk:$1|कुरडी]])ले  तमले  सम्पादन सुरु गर्यापछि यो पानो मेट्याकाछन् । कारण थ्यो:\n: ''$2''\nकृपया सुनिश्चित गर कि तम यो पानो साँच्चै निर्माण गद्द चाहन्छौ ।",
        "lag-warn-normal": " $1 {{PLURAL:$1|सेकेन्ड |सेकेन्डहरू}} भन्दा नौला फेरबदलहरू यै सूचीमी नधेकाउन सक्छ ।",
        "lag-warn-high": "डेटावेस सर्भरको मस्तै ढिलाको कारणले  $1 {{PLURAL:$1|सेकेन्ड|सेकेन्डहरू}} पछिका परिवर्तनहरू नधेकिन सक्छ ।",
        "watchlisttools-view": "आधारित फेरबदलीहरू हेर",
        "tag-filter": "[[Special:Tags|पुछड]] छानिन्या",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ट्याग|ट्यागहरू}}]]: $2)",
        "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तनहरू}}",
+       "tags-delete-explanation-warning": "यो क्रिया <strong>अपरिवर्तनीय</strong> हो र <strong>त्यसलाई परिवर्तन गर्न नाईसकिंदो</strong>, डेटाबेस प्रवन्धक पनि यैलाई केहि गद्द सक्दाइनन् । विश्वासपूर्ण रूपले तम तय गर कि तमी यै ट्यागलाई हटाउन चाहन्छौ ।",
        "logentry-delete-delete": "$1 बठे पानो $3 {{GENDER:$2|मेटाइयो}}",
        "logentry-move-move": "$1 {{GENDER:$2|द्वारा}} $3 पृष्ठलाई $4 मि सारियो",
        "logentry-newusers-create": "प्रयोगकर्ता खाता $1 {{GENDER:$2|खोलियो}}",
        "logentry-upload-upload": "$1 ले $3 {{GENDER:$2|अपलोड अरेका छन्}}",
+       "feedback-bugornote": "यदि तमी कुनै प्राविधिक समस्यालाई विस्तारले सम्झाउन तयार छौ भण्या कृपया [$1 बग राख]।\nयदि हैन, भण्या तमी तल दियाको सरल फारमको प्रयोग गद्दसक्द्याहौ । तमरो टिप्पणी, तमरो प्रयोगकर्ता नाम र तमरो ब्राउजरको नाम सहित \"[$3 $2]\" पानामी जोडिन्याछ ।",
        "searchsuggest-search": "खोज",
        "api-error-duplicate": "यै साइटमी पहिलीबठे यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल छ]|भयाका  [$2 केहि अरु फाइलहरू छन्]}} ।",
        "api-error-duplicate-archive": "यै साइटमी पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल थियो]|भयाका  [$2 केहि अरु फाइलहरू थिए]}} ।\nतर {{PLURAL:$1|यो मेट्याको थियो|यी मेटायाका थिए}} ।",
index f9c6266..9981328 100644 (file)
        "jumptonavigation": "πλοήγηση",
        "jumptosearch": "αναζήτηση",
        "view-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτή τη σελίδα.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτή τη σελίδα.\n\n$1",
-       "generic-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτό τον πόρο.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτό τον πόρο ξανά.",
+       "generic-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτό τον πόρο.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτό τον πόρο.",
        "pool-timeout": "Χρόνος αναμονής για το κλείδωμα",
        "pool-queuefull": "Η ουρά της δεξαμενής διεργασιών είναι πλήρης",
        "pool-errorunknown": "Άγνωστο σφάλμα",
        "pool-servererror": "Η υπηρεσία καταμετρητή ομαδοποίησης δεν είναι διαθέσιμη ($1).",
-       "poolcounter-usage-error": "Σφάλμα χρήσης:$1",
+       "poolcounter-usage-error": "Σφάλμα χρήσης: $1",
        "aboutsite": "Σχετικά με {{SITENAME}}",
        "aboutpage": "Project:Σχετικά",
        "copyright": "Το περιεχόμενο είναι διαθέσιμο σύμφωνα με την $1 εκτός αν αναφέρεται διαφορετικά.",
        "policy-url": "Project:Πολιτική",
        "portal": "Πύλη κοινότητας",
        "portal-url": "Project:Πύλη κοινότητας",
-       "privacy": "Πολιτική ιδιωτικότητας",
-       "privacypage": "Project:Πολιτική ιδιωτικότητας",
+       "privacy": "Πολιτική ιδιωτικού απορρήτου",
+       "privacypage": "Project:Πολιτική ιδιωτικού απορρήτου",
        "badaccess": "Σφάλμα άδειας",
        "badaccess-group0": "Δεν επιτρέπεται να εκτελέσετε την ενέργεια που ζητήσατε.",
        "badaccess-groups": "Η ενέργεια που ζητήσατε είναι περιορισμένη σε χρήστες που ανήκουν {{PLURAL:$2|στην ομάδα|σε μία από τις ομάδες}}: $1.",
        "readonly": "Κλειδωμένη βάση δεδομένων",
        "enterlockreason": "Εισαγάγετε μια αιτία για το κλείδωμα και μια εκτίμησή για το πότε το κλείδωμα αυτό θα αρθεί",
        "readonlytext": "Η βάση δεδομένων είναι επί του παρόντος κλειδωμένη απέναντι σε νέες καταχωρίσεις και άλλες τροποποιήσεις, πιθανότατα λόγω συντήρησης ρουτίνας, μετά την οποία θα επανέλθει σε κανονική λειτουργία.  \n\nΟ διαχειριστής που την κλείδωσε έδωσε την ακόλουθη εξήγηση: $1",
-       "missing-article": "Η βάση δεδομένων δεν βρήκε κείμενο μιας σελίδας που θα έπρεπε να βρεθεί, με όνομα «$1» $2.\n\nΑυτό συνήθως προκαλείται ακολουθώντας ένα σύνδεσμο \"διαφοράς\" ή σύνδεσμο προς ιστορικό μιας σελίδας που έχει διαγραφεί.\n\nΕάν δεν πρόκειται για κάτι τέτοιο, μπορεί να βρήκατε ένα σφάλμα στο λογισμικό.\nΠαρακαλούμε αναφέρετε το σε ένα [[Special:ListUsers/sysop|διαχειριστή]], δίνοντας το URL.",
+       "missing-article": "Η βάση δεδομένων δεν βρήκε το κείμενο της σελίδας που θα έπρεπε να έχει βρεθεί, με όνομα «$1» $2.\n\nΑυτό συνήθως προκαλείται ακολουθώντας έναν παρωχημένο σύνδεσμο διαφορών ή ιστορικού κάποιας σελίδας που έχει διαγραφεί.\n\nΕάν δεν πρόκειται για κάτι τέτοιο, μπορεί να βρήκατε ένα σφάλμα στο λογισμικό.\nΠαρακαλούμε αναφέρετέ το αυτό σε κάποιο [[Special:ListUsers/sysop|διαχειριστή]], σημειώνοντας τη διεύθυνση URL.",
        "missingarticle-rev": "(αναθεώρηση#: $1)",
        "missingarticle-diff": "(Διαφ: $1, $2)",
-       "readonly_lag": "Η βάση δεδομένων έχει κλειδωθεί αυτόματα για να μπορέσουν οι επιμέρους servers των αντιγράφων της βάσης δεδομένων (slaves) να καλύψουν τη διαφορά με τον κεντρικό server του πρωτοτύπου της βάσης (master).",
+       "readonly_lag": "Η βάση δεδομένων έχει κλειδωθεί αυτόματα για να μπορέσουν οι επιμέρους εξυπηρετητές των αντιγράφων της βάσης δεδομένων να καλύψουν τη διαφορά με τον κεντρικό εξυπηρετητή του πρωτοτύπου της βάσης δεδομένων.",
        "internalerror": "Εσωτερικό σφάλμα",
        "internalerror_info": "Εσωτερικό σφάλμα: $1",
        "internalerror-fatal-exception": "Ανεπανόρθωτη εξαίρεση τύπου «$1»",
        "filecopyerror": "Δεν ήταν δυνατή η αντιγραφή του αρχείου «$1» στο «$2».",
-       "filerenameerror": "Î\94εν ÎµÎ¯Î½Î±Î¹ δυνατή η μετονομασία του αρχείου «$1» σε «$2».",
+       "filerenameerror": "Î\94εν Î®Ï\84αν δυνατή η μετονομασία του αρχείου «$1» σε «$2».",
        "filedeleteerror": "Δεν ήταν δυνατή η διαγραφή του αρχείου «$1».",
-       "directorycreateerror": "Î\94εν Î¼Ï\80οÏ\81οÏ\8dÏ\83ε Î½Î± Î´Î·Î¼Î¹Î¿Ï\85Ï\81γηθεί Î· ÎºÎ±Ï\84ηγοÏ\81ία «$1».",
+       "directorycreateerror": "Î\94εν Î®Ï\84αν Î´Ï\85ναÏ\84ή Î· Î´Î·Î¼Î¹Î¿Ï\85Ï\81γία Ï\84ηÏ\82 ÎºÎ±Ï\84ηγοÏ\81ίαÏ\82 «$1».",
        "directoryreadonlyerror": "Ο κατάλογος «$1» είναι μόνο για ανάγνωση.",
        "directorynotreadableerror": "Ο κατάλογος «$1» δεν είναι αναγνώσιμος.",
-       "filenotfound": "Î\94εν ÎµÎ¯Î½Î±Î¹ δυνατή η ανεύρεση του αρχείου «$1».",
-       "unexpected": "Μη προσδοκώμενη τιμή: «$1»=«$2».",
-       "formerror": "Σφάλμα: Δεν ήταν δυνατή η υποβολή της φόρμας!",
-       "badarticleerror": "Η ενέργεια αυτή δεν μπορεί να εκτελεσθεί στη συγκεκριμένη σελίδα.",
+       "filenotfound": "Î\94εν Î®Ï\84αν δυνατή η ανεύρεση του αρχείου «$1».",
+       "unexpected": "Μη αναμενόμενη τιμή: «$1»=«$2».",
+       "formerror": "Σφάλμα: Δεν ήταν δυνατή η υποβολή της φόρμας.",
+       "badarticleerror": "Η ενέργεια αυτή δεν μπορεί να εκτελεσθεί σε αυτήν τη σελίδα.",
        "cannotdelete": "Η σελίδα ή το αρχείο «$1» δεν μπόρεσε να διαγραφεί.\nΕνδεχομένως να έχει ήδη διαγραφεί από κάποιον άλλον.",
-       "cannotdelete-title": "Î\91δÏ\8dναÏ\84η η διαγραφή της σελίδας «$1»",
+       "cannotdelete-title": "Î\94εν ÎµÎ¯Î½Î±Î¹ Î´Ï\85ναÏ\84ή η διαγραφή της σελίδας «$1»",
        "delete-hook-aborted": "Η επεξεργασία ματαιώθηκε από το άγκιστρο του συντακτικού αναλυτή.\nΔεν έδωσε εξήγηση.",
-       "no-null-revision": "Î\94εν Î¼Ï\80οÏ\81οÏ\8dÏ\83ε Î½Î± Î´Î·Î¼Î¹Î¿Ï\85Ï\81γηθεί Î½Î­Î± Î¼Î·Î´ÎµÎ½Î¹ÎºÎ® Î±Î½Î±Î¸ÎµÏ\8eÏ\81ηÏ\83η Î³Î¹Î± Ï\84η Ï\83ελίδα \"$1\"",
+       "no-null-revision": "Î\94εν Î®Ï\84αν Î´Ï\85ναÏ\84ή Î· Î´Î·Î¼Î¹Î¿Ï\85Ï\81γία Î½Î­Î±Ï\82 Î¼Î·Î´ÎµÎ½Î¹ÎºÎ®Ï\82 Î±Î½Î±Î¸ÎµÏ\8eÏ\81ηÏ\83ηÏ\82 Î³Î¹Î± Ï\84η Ï\83ελίδα Â«$1»",
        "badtitle": "Ακατάλληλος τίτλος",
        "badtitletext": "Ο τίτλος της σελίδας που ζητήσατε δεν είναι έγκυρος ή είναι κενός ή πρόκειται για έναν εσφαλμένα συνδεδεμένο διαγλωσσικό τίτλο ή εσφαλμένα συνδεδεμένο τίτλο ανάμεσα σε διαφορετικά wiki.",
        "title-invalid-empty": "Ο τίτλος σελίδας που ζητήσατε είναι κενός ή περιέχει μόνο όνομα ονοματοχώρου.",
        "title-invalid-utf8": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρη ακολουθία UTF-8.",
-       "title-invalid-interwiki": "Î\9f Ï\84ίÏ\84λοÏ\82 Ï\80εÏ\81ιέÏ\87ει Ï\83Ï\8dνδεÏ\83μο interwiki",
+       "title-invalid-interwiki": "Î\9f Ï\84ίÏ\84λοÏ\82 Ï\80οÏ\85 Î¶Î·Ï\84ήÏ\83αÏ\84ε Ï\80εÏ\81ιέÏ\87ει Ï\83Ï\8dνδεÏ\83μο interwiki Ï\80οÏ\85 Î´ÎµÎ½ Î¼Ï\80οÏ\81εί Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιηθεί Ï\83ε Ï\84ίÏ\84λοÏ\85Ï\82.",
        "title-invalid-talk-namespace": "Ο τίτλος σελίδας που ζητήσατε αναφέρεται σε σελίδα συζήτησης που δεν μπορεί να υπάρχει.",
        "title-invalid-characters": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρους χαρακτήρες: «$1».",
        "title-invalid-relative": "Ο τίτλος έχει σχετική διαδρομή. Τίτλοι παρόμοιων σελίδων (./, ../) δεν είναι έγκυροι, διότι συχνά δεν θα είναι προσβάσιμοι όταν χειρίζονται από το πρόγραμμα περιήγησης του χρήστη.",
        "title-invalid-magic-tilde": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρη ακολουθίας μαγικών περισπωμένων (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Ο τίτλος σελίδας που ζητήσατε είναι υπερβολικά μεγάλος. Δεν πρέπει να είναι μεγαλύτερος από $1 bytes σε κωδικοποίηση UTF-8.",
+       "title-invalid-too-long": "Ο τίτλος σελίδας που ζητήσατε είναι υπερβολικά μεγάλος. Δεν πρέπει να είναι μεγαλύτερος από $1 {{PLURAL:$1|byte|bytes}} σε κωδικοποίηση UTF-8.",
        "title-invalid-leading-colon": "Ο τίτλος σελίδας που ζητήσατε περιέχει μια μη έγκυρη άνω και κάτω τελεία στην αρχή.",
        "perfcached": "Τα δεδομένα που ακολουθούν είναι cached και είναι πιθανόν να μην είναι επικαιροποιημένα. Ένα μέγιστο των  {{PLURAL:$1|one result is|$1 results are}} διαθέσιμο στην cache.",
        "perfcachedts": "Τα ακόλουθα δεδομένα είναι αποθηκευμένα στην προσωρινή μνήμη και ενημερώθηκαν τελευταία φορά στις $2 στις $3. Υπάρχει διαθέσιμο ένα μέγιστο {{PLURAL:$4|ενός αποτελέσματος|$4 αποτελεσμάτων}} στην προσωρινή μνήμη.",
        "querypage-no-updates": "Οι ενημερώσεις για αυτή τη σελίδα είναι απενεργοποιημένες. Τα δεδομένα εδώ δεν θα ανανεωθούν προς το παρόν.",
        "viewsource": "Προβολή κώδικα",
        "viewsource-title": "Προβολή πηγαίου κώδικα για τη σελίδα $1",
-       "actionthrottled": "ΠεÏ\81ιοÏ\81ιÏ\83μένη ÎµÎ½Î­Ï\81γεια",
+       "actionthrottled": "Î\97 ÎµÎ½Î­Ï\81γεια Ï\80αÏ\81εμÏ\80οδίÏ\83Ï\84ηκε",
        "actionthrottledtext": "Σαν μέτρο κατά του spam, υπάρχει όριο στην εκτέλεση αυτής της ενέργειας πολλές φορές μέσα σε μικρό χρονικό διάστημα και έχετε ξεπεράσει αυτό το όριο.\nΠαρακαλούμε δοκιμάστε ξανά σε λίγα λεπτά.",
        "protectedpagetext": "Αυτή η σελίδα έχει προστατευθεί για πρόληψη επεξεργασίας ή άλλες ενέργειες.",
-       "viewsourcetext": "Μπορείτε να δείτε και να αντιγράψετε τον κώδικα αυτής της σελίδας:",
-       "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον κώδικα των '''επεξεργασιών σας''' σε αυτήν τη σελίδα:",
-       "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για αποτροπή τυχόν βανδαλισμού.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wikis, παρακαλούμε χρησιμοποιήστε  [//translatewiki.net/ translatewiki.net], το εγχείρημα τοπικοποίησης του  MediaWiki.",
+       "viewsourcetext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα αυτής της σελίδας:",
+       "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα των <strong>επεξεργασιών σας</strong> σε αυτήν τη σελίδα:",
+       "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για την πρόληψη κατάχρησης.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [//translatewiki.net/ translatewiki.net], το εγχείρημα τοπικής προσαρμογής της γλώσσας του MediaWiki.",
        "editinginterface": "<strong>Προειδοποίηση:</strong> Επεξεργάζεστε μια σελίδα η οποία χρησιμοποιείται για να παρέχει κείμενο διεπαφής για το λογισμικό. Αλλαγές σε αυτήν τη σελίδα θα επηρεάσουν την εμφάνιση της διεπαφής χρήστη για άλλους χρήστες αυτού του wiki.",
        "translateinterface": "Για να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [//translatewiki.net/ translatewiki.net], το έργο τοπικοποίησης του MediaWiki.",
        "cascadeprotected": "Αυτή η σελίδα έχει προστατευθεί από επεξεργασία, επειδή περιλαμβάνεται {{PLURAL:$1|στην ακόλουθη σελίδα, που είναι προστατευμένη|στις ακόλουθες σελίδες, που είναι προστατευμένες}} με ενεργοποιημένη τη «διαδοχική» προστασία στο:\n$2",
        "yourdiff": "Διαφορές",
        "copyrightwarning": "Παρακαλούμε σημειώστε ότι όλες οι συνεισφορές στον ιστότοπο {{SITENAME}} θεωρούνται ότι δημοσιεύονται σύμφωνα με την $2 (βλ. $1 για λεπτομέρειες).\nΑν δεν επιθυμείτε τα κείμενά σας να τα επεξεργάζονται ανηλεώς άλλοι χρήστες και να τα διαδίδουν κατά βούληση, τότε να μην τα υποβάλλετε εδώ.<br />Μας υπόσχεστε επίσης ότι αυτό το γράψατε μόνοι σας ή το αντιγράψατε από κάποια ελεύθερη πηγή ως κοινό κτήμα ή κάτι ανάλογο.\n<strong>Μην υποβάλλετε δουλειά που προστατεύεται από πνευματικά δικαιώματα χωρίς άδεια!</strong>",
        "copyrightwarning2": "Σημειώστε ότι όλες οι συνεισφορές στον ιστότοπο {{SITENAME}} μπορούν να υποστούν επεξεργασία, να αλλαχθούν, ή να αφαιρεθούν από άλλους συνεισφέροντες. Αν δεν θέλετε τα γραπτά σας να υποστούν επεξεργασία κατά βούληση, τότε μην τα τοποθετήσετε σε αυτό το χώρο.<br />\nΕπίσης μας υπόσχεστε πως ό,τι γράφετε είναι δικό σας, ή αντιγραμμένο από μια πηγή που είναι κοινό κτήμα, ή μια παρόμοια ελεύθερη πηγή (δείτε $1 για λεπτομέρειες).\n'''ΠΑΡΑΚΑΛΟΥΜΕ ΝΑ ΜΗΝ ΤΟΠΟΘΕΤΕΙΤΕ ΠΝΕΥΜΑΤΙΚΑ ΚΑΤΟΧΥΡΩΜΕΝΟ ΕΡΓΟ ΧΩΡΙΣ ΑΔΕΙΑ!'''",
+       "editpage-cannot-use-custom-model": "Το μοντέλο περιεχομένου αυτής της σελίδας δεν μπορεί να αλλάξει.",
        "longpageerror": "'''Σφάλμα: Το κείμενο που καταχωρήσατε έχει μήκος {{PLURAL:$1|ένα kilobyte|$1 kilobytes}}, το οποίο είναι μεγαλύτερο από το μέγιστο {{PLURAL:$2|του ενός kilobyte|των $2 kilobytes}}.'''\nΔεν μπορεί να αποθηκευτεί.",
        "readonlywarning": "'''Προειδοποίηση: Η βάση δεδομένων έχει κλειδωθεί για συντήρηση, έτσι δεν θα μπορέσετε να αποθηκεύσετε τις επεξεργασίες σας αυτή τη στιγμή.'''\nΜπορείτε αν θέλετε να μεταφέρετε με αντιγραφή-επικόλληση το κείμενό σας σε αρχείο κειμένου και να το αποθηκεύσετε για αργότερα.\n\nΟ διαχειριστής που την κλείδωσε έδωσε την εξής εξήγηση: $1",
        "protectedpagewarning": "'''Προειδοποίηση: Αυτή η σελίδα έχει κλειδωθεί ώστε μόνο χρήστες με δικαιώματα διαχειριστή μπορούν να την επεξεργαστούν.'''\nΗ πιο πρόσφατη καταχώρηση στο αρχείο καταγραφής παρέχεται παρακάτω για αναφορά:",
        "searchmenu-new": "<strong>Δημιουργήστε τη σελίδα «[[:$1]]» σε αυτό το wiki!</strong>\n{{PLURAL:$2|0=|Δείτε επίσης τη σελίδα που βρέθηκε με την αναζήτησή σας.|Δείτε επίσης τα αποτελέσματα της αναζήτησης που βρέθηκαν.}}",
        "searchprofile-articles": "Σελίδες περιεχομένου",
        "searchprofile-images": "Πολυμέσα",
-       "searchprofile-everything": "Î\9fÏ\84ιδήÏ\80οÏ\84ε",
+       "searchprofile-everything": "Τα Ï\80άνÏ\84α",
        "searchprofile-advanced": "Προχωρημένο",
        "searchprofile-articles-tooltip": "Αναζήτηση σε $1",
        "searchprofile-images-tooltip": "Αναζήτηση αρχείων",
        "badsig": "Άκυρη υπογραφή raw: ελέγξτε τις ετικέτες HTML.",
        "badsiglength": "Η υπογραφή σας είναι πολύ μεγάλη.\nΠρέπει να είναι κάτω από $1 {{PLURAL:$1|χαρακτήρα|χαρακτήρες}}.",
        "yourgender": "Πώς προτιμάτε να χαρακτηρίζεστε;",
-       "gender-unknown": "ΠÏ\81οÏ\84ιμÏ\8e Î½Î± Î¼Î·Î½ Î¼Ï\80Ï\89 Ï\83ε Î»ÎµÏ\80Ï\84ομέÏ\81ειεÏ\82",
+       "gender-unknown": "Î\8cÏ\84αν Î¸Î± Î±Î½Î±Ï\86έÏ\81ει ÎµÏ\83άÏ\82, Ï\84ο Î»Î¿Î³Î¹Ï\83μικÏ\8c Î¸Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιεί Î»Î­Î¾ÎµÎ¹Ï\82 Î¿Ï\85δέÏ\84εÏ\81εÏ\82 Ï\86Ï\8dλοÏ\85 Ï\8cÏ\80οÏ\84ε ÎµÎ¯Î½Î±Î¹ Î´Ï\85ναÏ\84Ï\8cν.",
        "gender-male": "Άντρας",
        "gender-female": "Γυναίκα",
        "prefs-help-gender": "Η ρύθμιση αυτή της προτίμησης είναι προαιρετική.\nΤο λογισμικό χρησιμοποιεί την τιμή αυτής της παραμέτρου για να απευθύνεται προς εσάς και για να αναφέρεται σε σας όταν απευθύνεται σε άλλους, χρησιμοποιώντας το κατάλληλο γραμματικό γένος.\nΑυτή η πληροφορία θα είναι δημόσια.",
        "userrights-lookup-user": "Διαχείριση ομάδων χρηστών",
        "userrights-user-editname": "Δηλώστε όνομα χρήστη:",
        "editusergroup": "Επεξεργασία ομάδων χρηστών",
-       "editinguser": "Αλλαγή δικαιωμάτων χρήστη του χρήστη '''[[User:$1|$1]]''' $2",
+       "editinguser": "Αλλαγή δικαιωμάτων χρήστη {{GENDER:$1|του χρήστη|της χρήστριας}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Επεξεργασία ομάδων χρηστών",
        "saveusergroups": "Αποθήκευση ομάδων χρηστών",
        "userrights-groupsmember": "Μέλος της ομάδας:",
        "uploaddisabledtext": "Το ανέβασμα αρχείων είναι απενεργοποιημένο.",
        "php-uploaddisabledtext": "Οι επιφορτώσεις αρχείων ειναι απενεργοποιημένες στην PHP. Παρακαλούμε, ελέγξτε την ρύθμιση file_uploads.",
        "uploadscripted": "Αυτό το αρχείο περιέχει κώδικα HTML ή script που μπορεί να παρερμηνευθεί από μερικούς browser.",
+       "upload-scripted-pi-callback": "Δεν είναι δυνατό να ανεβάσετε αρχείο που περιέχει οδηγία επεξεργασίας φύλλου στυλ XML.",
+       "uploaded-script-svg": "Βρέθηκε στοιχείο με δυνατότητα δημιουργίας δέσμης ενεργειών «$1» στο ανεβασμένο αρχείο SVG.",
+       "uploaded-hostile-svg": "Βρέθηκε μη ασφαλές CSS στο στοιχείο στυλ του ανεβασμένου αρχείου SVG.",
+       "uploaded-setting-href-svg": "Η χρήση της ετικέτας «set» για την προσθήκη του χαρακτηριστικού «href» στο γονικό στοιχείο είναι αποκλεισμένη.",
+       "uploaded-wrong-setting-svg": "Η χρήση της ετικέτας «set» για την προσθήκη απομακρυσμένου προορισμού/προορισμού δεδομένων/προορισμού δέσμης ενεργειών είναι αποκλεισμένη. Βρέθηκε <code>&lt;set to=\"$1\"&gt;</code> στο ανεβασμένο αρχείο SVG.",
+       "uploaded-setting-handler-svg": "Κάθε SVG που θέτει το χαρακτηριστικό «χειρισμού» με απομακρυσμένο προορισμό/προορισμό δεδομένων/προορισμό δέσμης ενεργειών είναι αποκλεισμένο. Βρέθηκε <code>$1=\"$2\"</code> στο ανεβασμένο αρχείο SVG.",
+       "uploaded-remote-url-svg": "Κάθε SVG που θέτει οποιοδήποτε χαρακτηριστικό στυλ με απομακρυσμένη διεύθυνση URL είναι αποκλεισμένο. Βρέθηκε <code>$1=\"$2\"</code> στο ανεβασμένο αρχείο SVG.",
+       "uploaded-image-filter-svg": "Βρέθηκε φίλτρο εικόνας με διεύθυνση URL: <code>&lt;$1 $2=\"$3\"&gt;</code> στο ανεβασμένο αρχείο SVG.",
        "uploadscriptednamespace": "Αυτό το αρχείο SVG περιέχει μη αποδεκτό ονοματοχώρο «$1».",
        "uploadinvalidxml": "Δεν ήταν δυνατή η ανάλυση του κώδικα XML στο αρχείο.",
        "uploadvirus": "Το αρχείο περιέχει ιό! Λεπτομέρειες: $1",
        "listfiles-delete": "διαγραφή",
        "listfiles-summary": "Αυτή η ειδική σελίδα δείχνει όλα τα επιφορτωμένα αρχεία.",
        "listfiles_search_for": "Αναζήτηση για όνομα πολυμέσου:",
+       "listfiles-userdoesnotexist": "Ο λογαριασμός χρήστη «$1» δεν είναι εγγεγραμμένος.",
        "imgfile": "αρχείο",
        "listfiles": "Κατάλογος εικόνων",
        "listfiles_thumb": "Μικρογραφία",
        "unwatchedpages": "Μη παρακολουθούμενες σελίδες",
        "listredirects": "Λίστα ανακατευθύνσεων",
        "listduplicatedfiles": "Κατάλογος αρχείων με διπλότυπα",
+       "listduplicatedfiles-entry": "Το [[:File:$1|$1]] έχει [[$3|{{PLURAL:$2|διπλότυπο|$2 διπλότυπα}}]].",
        "unusedtemplates": "Αχρησιμοποίητα πρότυπα",
        "unusedtemplatestext": "Αυτή η σελίδα περιέχει όλες τις σελίδες στην περιοχή ονομάτος των {{ns:template}}, οι οποίες δεν περιλαμβάνονται σε άλλη σελίδα. Θυμηθείτε να ελέγξετε για άλλους συνδέσμους προς τα πρότυπα πριν τα διαγράψετε.",
        "unusedtemplateswlh": "άλλοι σύνδεσμοι",
        "index-category-desc": "Η σελίδα περιέχει στον κώδικά της ένα <code><nowiki>__INDEX__</nowiki></code> (και βρίσκεται σε έναν ονοματοχώρο όπου αυτή η σήμανση επιτρέπεται) και ως εκ τούτου καταλογογραφείται από ρομπότ, ενώ κανονικά δεν θα καταλογογραφείτο.",
        "post-expand-template-inclusion-category-desc": "Το μέγεθος της σελίδας είναι μεγαλύτερο από <code>$wgMaxArticleSize</code> μετά την επέκταση όλων των προτύπων, έτσι ώστε ορισμένα πρότυπα δεν έχουν αναπτυχθεί.",
        "post-expand-template-argument-category-desc": "Η σελίδα είναι μεγαλύτερη από <code>$wgMaxArticleSize</code> μετά την επέκταση της μεταβλητής ενός προτύπου (κάτι σε τρίπλές αγκύλες, όπως <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "Η σελίδα χρησιμοποιεί πάρα πολλές ακριβές συναρτήσεις συντακτικού αναλυτή (όπως <code>#ifexist</code>). Βλ. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "Η σελίδα περιέχει ένα σπασμένο σύνδεσμο αρχείου (σύνδεσμο για να ενσωμάτωση ενός αρχείου, ενώ το αρχείο δεν υπάρχει).",
        "hidden-category-category-desc": "Η κατηγορία περιέχει <code><nowiki>__HIDDENCAT__</nowiki></code> στο περιεχόμενο της σελίδας της, που την εμποδίζει εκ προεπιλογής να εμφανίζεται στο πλαίσιο συνδέσμων κατηγοριών των σελίδων.",
        "trackingcategories-nodesc": "Καμία διαθέσιμη περιγραφή.",
        "emailccsubject": "Αντίγραφο του μηνυματός σας στο $1: $2",
        "emailsent": "Το μήνυμα έχει σταλεί",
        "emailsenttext": "Το μήνυμά σας έχει σταλεί.",
-       "emailuserfooter": "Αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου στάλθηκε από {{GENDER:$1|τον χρήστη|την χρήστρια}} $1 σ{{GENDER:$2|τον χρήστη|την χρήστρια}} $2 μέσω της λειτουργίας «αποστολής μηνύματος ηλεκτρονικού ταχυδρομείου σε χρήστη» στο {{SITENAME}}.",
+       "emailuserfooter": "Αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου στάλθηκε από {{GENDER:$1|το χρήστη|τη χρήστρια}} $1 σ{{GENDER:$2|το χρήστη|τη χρήστρια}} $2 μέσω της λειτουργίας «{{int:emailpage}}» στο {{SITENAME}}.",
        "usermessage-summary": "Φεύγετε από τις ειδοποιήσεις συστήματος.",
        "usermessage-editor": "Μηνύματα συστήματος",
        "usermessage-template": "MediaWiki:UserMessage",
        "immobile-target-namespace-iw": "Ο σύνδεσμος-interwiki δεν είναι έγκυρος στόχος για την μετακίνηση σελίδας.",
        "immobile-source-page": "Αυτή η σελίδα δεν είναι δυνατό να μετακινηθεί.",
        "immobile-target-page": "Δεν μπορεί να μετακινηθεί σε αυτόν τον τίτλο.",
+       "bad-target-model": "Ο επιθυμητός προορισμός χρησιμοποιεί διαφορετικό μοντέλο περιεχομένου. Δεν είναι δυνατή η μετατροπή από $1 σε $2.",
        "imagenocrossnamespace": "Δεν είναι δυνατή η μετακίνηση του αρχείου σε περιοχή ονομάτων που δεν αφορά αρχεία",
        "nonfile-cannot-move-to-file": " Δεν είναι δυνατή η μετακίνηση μη αρχείων σε αρχείο ονομάτων",
        "imagetypemismatch": "Η νέα επέκταση του αρχείου δεν ταιριάζει με τον τύπο του",
        "thumbnail_image-type": "Δεν υποστηρίζεται αυτός ο τύπος εικόνας",
        "thumbnail_gd-library": "Ατελής ενεργοποίηση της βιβλιοθήκης GD: αγνοούμενη λειτουργία $1",
        "thumbnail_image-missing": "Το αρχείο φαίνεται να λείπει: $1",
+       "thumbnail_image-failure-limit": "Έχουν γίνει πάρα πολλές πρόσφατες αποτυχημένες προσπάθειες ($1 ή περισσότερες) για να αποδοθεί αυτή μικρογραφία. Παρακαλούμε δοκιμάστε ξανά αργότερα.",
        "import": "Εισαγωγή σελίδων",
        "importinterwiki": "Εισαγωγή από άλλο wiki",
        "import-interwiki-text": "Επιλέξτε ένα wiki και τίτλο σελίδας για την εισαγωγή.\nΟι ημερομηνίες των αναθεωρήσεων και τα ονόματα των συντακτών θα διατηρηθούν.\nΌλες οι ενέργειες εισαγωγής από άλλα wiki καταγράφονται στο [[Special:Log/import|αρχείο καταγραφής εισαγωγών]].",
        "file-no-thumb-animation-gif": "'''Σημείωση: λόγω τεχνικών περιορισμών, μικρογραφίες εικόνων GIF υψηλής ανάλυσης όπως αυτή εδώ δεν θα είναι κινούμενες.'''",
        "newimages": "Πινακοθήκη νέων εικόνων",
        "imagelisttext": "Ακολουθεί κατάλογος '''$1''' {{PLURAL:$1|αρχείου|αρχείων}} ταξινομημένων κατά σειρά $2.",
-       "newimages-summary": "Αυτή η ειδική σελίδα δείχνει τα πιο πρόσφατα φορτωμένα αρχεία.",
+       "newimages-summary": "Αυτή η ειδική σελίδα δείχνει τα πιο πρόσφατα ανεβασμένα αρχεία.",
        "newimages-legend": "Φίλτρο",
        "newimages-label": "Όνομα αρχείου (ή μέρος αυτού):",
        "newimages-showbots": "Εμφάνιση αρχείων ανεβασμένων από ρομπότ",
        "tag-filter-submit": "Φίλτρο",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Ετικέτα|Ετικέτες}}]]: $2)",
        "tags-title": "Ετικέτες",
-       "tags-intro": "Η σελίδα συγκαταλέγει τις ετικέτες (καθώς και το τι σημαίνει η κάθε μία) με τις οποίες το software μπορεί να μαρκάρει μία επεξεργασία.",
+       "tags-intro": "Η σελίδα καταγράφει τις ετικέτες, καθώς και το τι σημαίνει η κάθε μία, με τις οποίες το λογισμικό μπορεί να μαρκάρει μία επεξεργασία.",
        "tags-tag": "Όνομα ετικέτας",
        "tags-display-header": "Εμφάνιση στις λίστες αλλαγής",
        "tags-description-header": "Πλήρης περιγραφή του νοήματος",
        "tags-actions-header": "Ενέργειες",
        "tags-active-yes": "Ναι",
        "tags-active-no": "Όχι",
+       "tags-source-extension": "Οριζόμενη από επέκταση",
+       "tags-source-manual": "Εφαρμοζόμενη με μη αυτόματο τρόπο από χρήστες και ρομπότ",
        "tags-source-none": "Όχι σε χρήση πλέον",
        "tags-edit": "επεξεργασία",
+       "tags-delete": "διαγραφή",
+       "tags-activate": "ενεργοποίηση",
+       "tags-deactivate": "απενεργοποίηση",
        "tags-hitcount": "$1 {{PLURAL:$1|αλλαγή|αλλαγές}}",
+       "tags-manage-no-permission": "Δεν έχετε δικαίωμα να διαχειριστείτε ετικέτες αλλαγής.",
        "tags-create-heading": "Δημιουργία νέας ετικέτας",
+       "tags-create-explanation": "Από προεπιλογή, οι πρόσφατα δημιουργημένες ετικέτες θα είναι διαθέσιμες για χρήση από χρήστες και ρομπότ.",
        "tags-create-tag-name": "Όνομα ετικέτας:",
        "tags-create-reason": "Αιτία:",
        "tags-create-submit": "Δημιουργία",
        "tags-create-invalid-chars": "Τα ονόματα ετικετών δεν πρέπει να περιέχουν κόμματα (<code>,</code>) ή καθέτους (<code>/</code>).",
        "tags-create-invalid-title-chars": "Τα ονόματα ετικετών δεν πρέπει να περιέχουν χαρακτήρες που δεν είναι δυνατό να χρησιμοποιηθούν σε τίτλους σελίδων.",
        "tags-create-already-exists": "Η ετικέτα «$1» υπάρχει ήδη.",
+       "tags-create-warnings-above": "{{PLURAL:$2|Αντιμετωπίστηκε η ακόλουθη προειδοποίηση|Αντιμετωπίστηκαν οι ακόλουθες προειδοποιήσεις}} όταν έγινε προσπάθεια για τη δημιουργία της ετικέτας «$1»:",
+       "tags-create-warnings-below": "Θέλετε να συνεχιστεί η δημιουργία της ετικέτας;",
        "tags-delete-title": "Διαγραφή ετικέτας",
+       "tags-delete-explanation-initial": "Πρόκειται να διαγράψετε την ετικέτα «$1» από τη βάση δεδομένων.",
+       "tags-delete-explanation-warning": "Αυτή η ενέργεια είναι <strong>μη αναστρέψιμη</strong> και <strong>δεν μπορεί να αναιρεθεί</strong>, ούτε καν από διαχειριστές της βάσης δεδομένων. Φροντίστε να είστε σίγουροι ότι αυτή είναι η ετικέτα που σκοπεύετε να διαγράψετε.",
        "tags-delete-reason": "Αιτία:",
        "tags-delete-submit": "Μη αναστρέψιμη διαγραφή αυτής της ετικέτας",
        "tags-delete-not-found": "Η ετικέτα «$1» δεν υπάρχει.",
        "tags-activate-title": "Ενεργοποίηση ετικέτας",
+       "tags-activate-question": "Πρόκειται να ενεργοποιήσετε την ετικέτα «$1».",
        "tags-activate-reason": "Αιτία:",
        "tags-activate-not-allowed": "Δεν είναι δυνατή η ενεργοποίηση της ετικέτας «$1».",
        "tags-activate-not-found": "Η ετικέτα «$1» δεν υπάρχει.",
        "tags-deactivate-not-allowed": "Δεν είναι δυνατή η απενεργοποίηση της ετικέτας «$1».",
        "tags-deactivate-submit": "Απενεργοποίηση",
        "tags-apply-no-permission": "Δεν έχετε τα απαραίτητα δικαιώματα για να εφαρμόσετε αλλαγή ετικετών μαζί με τις αλλαγές σας.",
-       "tags-apply-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να εφαρμοστεί με μη αυτόματο τρόπο.",
-       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να εφαρμοστεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να εφαρμοστούν}} με μη αυτόματο τρόπο: $1",
+       "tags-apply-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να εφαρμοστεί με το χέρι.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να εφαρμοστεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να εφαρμοστούν}} με το χέρι: $1",
+       "tags-update-add-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να προστεθεί με το χέρι.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να προστεθεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να προστεθούν}} με το χέρι: $1",
+       "tags-update-remove-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να αφαιρεθεί.",
        "tags-edit-title": "Επεξεργασία ετικετών",
        "tags-edit-manage-link": "Διαχείριση ετικετών",
        "tags-edit-existing-tags": "Υπάρχουσες ετικέτες:",
        "tags-edit-chosen-placeholder": "Επιλέξτε μερικές ετικέτες",
        "tags-edit-chosen-no-results": "Δεν βρέθηκαν ετικέτες που να ταιριάζουν",
        "tags-edit-reason": "Αιτία:",
+       "tags-edit-success": "Οι αλλαγές εφαρμόστηκαν με επιτυχία.",
+       "tags-edit-failure": "Οι αλλαγές δεν ήταν δυνατόν να εφαρμοστούν:\n$1",
        "tags-edit-nooldid-title": "Μη έγκυρη αναθεώρηση προορισμού",
        "tags-edit-none-selected": "Παρακαλώ επιλέξτε τουλάχιστον μία ετικέτα για να προσθέσετε ή να αφαιρέσετε.",
        "comparepages": "Σύγκριση σελίδων",
        "revdelete-uname-unhid": "το όνομα χρήστη έπαψε να είναι κρυφό",
        "revdelete-restricted": "εφήρμοσε περιορισμούς στους sysops",
        "revdelete-unrestricted": "αφαίρεσε περιορισμούς στους sysops",
+       "logentry-block-block": "{{GENDER:$2|Ο|Η}} $1 έθεσε φραγή {{GENDER:$4|στον $3|στην $3}} με χρόνο λήξης $5 $6",
        "logentry-block-unblock": "{{GENDER:$2|Ο|Η}} $1 αφαίρεσε τη φραγή {{GENDER:$4|του|της}} $3",
+       "logentry-block-reblock": "{{GENDER:$2|Ο|Η}} $1 άλλαξε τις ρυθμίσεις φραγής {{GENDER:$4|για τον $3|για την $3}} με χρόνο λήξης $5 $6",
+       "logentry-suppress-block": "{{GENDER:$2|Ο|Η}} $1 έθεσε φραγή {{GENDER:$4|στον $3|στην $3}} με χρόνο λήξης $5 $6",
+       "logentry-suppress-reblock": "{{GENDER:$2|Ο|Η}} $1 άλλαξε τις ρυθμίσεις φραγής {{GENDER:$4|για τον $3|για την $3}} με χρόνο λήξης $5 $6",
+       "logentry-import-upload": "{{GENDER:$2|Ο|Η}} $1 εισήγαγε τη σελίδα $3 μέσω ανεβάσματος αρχείου",
+       "logentry-import-interwiki": "{{GENDER:$2|Ο|Η}} $1 εισήγαγε τη σελίδα $3 από άλλο wiki",
+       "logentry-merge-merge": "{{GENDER:$2|Ο|Η}} $1 συγχώνευσε τη σελίδα $3 με την $4 (αναθεωρήσεις μέχρι $5)",
        "logentry-move-move": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4",
        "logentry-move-move-noredirect": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4 χωρίς να αφήσει ανακατεύθυνση",
        "logentry-move-move_redir": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4 πάνω από την ανακατεύθυνση",
        "feedback-bugornote": "Εάν είστε έτοιμοι να περιγράψετε ένα τεχνικό πρόβλημα λεπτομερώς παρακαλούμε [$1  κάντε μια αναφορά σφάλματος].\nΔιαφορετικά, μπορείτε να χρησιμοποιήσετε την παρακάτω απλή φόρμα. Το σχόλιό σας θα προστεθεί στη σελίδα \"[$3  $2]\", μαζί με το όνομα χρήστη σας.",
        "feedback-cancel": "Ακύρωση",
        "feedback-close": "Ολοκληρώθηκε",
+       "feedback-dialog-title": "Υποβολή παρατηρήσεων",
+       "feedback-dialog-intro": "Μπορείτε να χρησιμοποιήσετε την παρακάτω εύκολη φόρμα για να υποβάλετε τις παρατηρήσεις σας. Το σχόλιό σας θα προστεθεί στην σελίδα «$1», μαζί με το όνομα χρήστη σας.",
        "feedback-error-title": "Σφάλμα",
        "feedback-error1": "Σφάλμα: Μη αναγνωρίσιμο αποτέλεσμα από το API",
        "feedback-error2": "Σφάλμα: Η επεξεργασία απέτυχε",
        "feedback-message": "Μήνυμα:",
        "feedback-subject": "Θέμα:",
        "feedback-submit": "Υποβολή",
+       "feedback-termsofuse": "Συμφωνώ να παρέχω παρατηρήσεις σύμφωνα με τους Όρους Χρήσης.",
        "feedback-thanks": "Ευχαριστούμε! Τα σχόλιά σας έχουν καταχωρηθεί στη σελίδα \"[$2 $1]\".",
        "feedback-thanks-title": "Σας ευχαριστούμε!",
        "searchsuggest-search": "Αναζήτηση",
        "mediastatistics-header-executable": "Εκτελέσιμα",
        "mediastatistics-header-archive": "Συμπιεσμένες μορφές",
        "json-error-unknown": "Υπήρξε πρόβλημα με το JSON. Σφάλμα: $1",
+       "json-error-depth": "Το μέγιστο βάθος στοίβας έχει ξεπεραστεί",
+       "json-error-state-mismatch": "Μη έγκυρο ή λάθος μορφοποιημένο JSON",
        "json-error-ctrl-char": "Σφάλμα χαρακτήρα ελέγχου, πιθανόν είναι εσφαλμένα κωδικοποιημένος.",
        "json-error-syntax": "Συντακτικό λάθος",
+       "json-error-utf8": "Λάθος μορφοποιημένοι χαρακτήρες UTF-8, πιθανόν εσφαλμένα κωδικοποιημένοι",
        "json-error-recursion": "Μία ή περισσότερες αναδρομικές αναφορές στην προς κωδικοποίηση τιμή.",
        "json-error-inf-or-nan": "Μία ή περισσότερες τιμές NAN ή INF στην προς κωδικοποίηση τιμή.",
        "json-error-unsupported-type": "Δόθηκε τιμή τύπου που δεν μπορεί να κωδικοποιηθεί.",
index de4119e..41a12d9 100644 (file)
        "passwordreset": "Reset password",
        "passwordreset-text-one": "Complete this form to receive a temporary password via email.",
        "passwordreset-text-many": "{{PLURAL:$1|Fill in one of the fields to receive a temporary password via email.}}",
-       "passwordreset-legend": "Reset password",
        "passwordreset-disabled": "Password resets have been disabled on this wiki.",
        "passwordreset-emaildisabled": "Email features have been disabled on this wiki.",
        "passwordreset-username": "Username:",
        "resettokens-summary": "",
        "resettokens-text": "You can reset tokens which allow access to certain private data associated with your account here.\n\nYou should do it if you accidentally shared them with someone or if your account has been compromised.",
        "resettokens-no-tokens": "There are no tokens to reset.",
-       "resettokens-legend": "Reset tokens",
        "resettokens-tokens": "Tokens:",
        "resettokens-token-label": "$1 (current value: $2)",
        "resettokens-watchlist-token": "Token for the web feed (Atom/RSS) of [[Special:Watchlist|changes to pages on your watchlist]]",
        "version-libraries": "Installed libraries",
        "version-libraries-library": "Library",
        "version-libraries-version": "Version",
+       "version-libraries-license": "License",
+       "version-libraries-description": "Description",
+       "version-libraries-authors": "Authors",
        "redirect": "Redirect by file, user, page or revision ID",
        "redirect-legend": "Redirect to a file or page",
        "redirect-text": "",
        "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 7b3ab11..919a625 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:",
        "special-characters-group-khmer": "Jemer",
        "special-characters-title-endash": "semirraya",
        "special-characters-title-emdash": "raya",
-       "special-characters-title-minus": "signo de resta"
+       "special-characters-title-minus": "signo de resta",
+       "mw-widgets-titleinput-description-new-page": "la página aún no existe",
+       "mw-widgets-titleinput-description-redirect": "redirigir a $1"
 }
index 0369741..ecd1865 100644 (file)
        "special-characters-group-khmer": "Khmeeri",
        "special-characters-title-endash": "mõttekriips",
        "special-characters-title-emdash": "pikk mõttekriips",
-       "special-characters-title-minus": "miinusmärk"
+       "special-characters-title-minus": "miinusmärk",
+       "mw-widgets-titleinput-description-new-page": "lehekülge pole veel"
 }
index dc89a92..8181c7d 100644 (file)
        "yourdiff": "Eroavaisuudet",
        "copyrightwarning": "'''Muutoksesi astuvat voimaan välittömästi.''' Kaikki {{GRAMMAR:illative|{{SITENAME}}}} tehtävät tuotokset katsotaan julkaistuksi $2 -lisenssin mukaisesti ($1). Jos et halua, että kirjoitustasi muokataan armottomasti ja uudelleenkäytetään vapaasti, älä tallenna kirjoitustasi. Tallentamalla muutoksesi lupaat, että kirjoitit tekstisi itse, tai kopioit sen jostain vapaasta lähteestä. '''ÄLÄ KÄYTÄ TEKIJÄNOIKEUDEN ALAISTA MATERIAALIA ILMAN LUPAA!'''",
        "copyrightwarning2": "Huomaa, että kuka tahansa voi muokata, muuttaa ja poistaa kaikkia sivustolle tekemiäsi lisäyksiä ja muutoksia. Muokkaamalla sivustoa luovutat sivuston käyttäjille tämän oikeuden ja takaat, että lisäämäsi aineisto on joko itse kirjoittamaasi tai peräisin jostain vapaasta lähteestä. Lisätietoja sivulla $1. '''TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!'''",
+       "editpage-cannot-use-custom-model": "Tämän sivun sisältömallia (content model) ei voida muuttaa.",
        "longpageerror": "'''Virhe: Lähettämäsi tekstin pituus on {{PLURAL:$1|kilotavu|$1 kilotavua}}. Tekstiä ei voida tallentaa, koska se on pitempi kuin sallittu enimmäispituus {{PLURAL:$2|yksi kilotavu|$2 kilotavua}}.'''",
        "readonlywarning": "'''Varoitus: Tietokanta on lukittu huoltoa varten, joten et pysty tallentamaan muokkauksiasi juuri nyt.'''\nSaattaa olla paras leikata ja liimata tekstisi omaan tekstitiedostoosi ja tallentaa se tänne myöhemmin.\n\nLukitsemisen syy: $1",
        "protectedpagewarning": "'''Varoitus: Tämä sivu on suojattu niin, että vain ylläpitäjät voivat muokata sitä.'''\nAlla on viimeisin lokitapahtuma:",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "ajatusviiva",
        "special-characters-title-emdash": "pitkä ajatusviiva",
-       "special-characters-title-minus": "miinusmerkki"
+       "special-characters-title-minus": "miinusmerkki",
+       "mw-widgets-titleinput-description-new-page": "sivua ei ole olemassa vielä",
+       "mw-widgets-titleinput-description-redirect": "ohjaus kohteeseen $1"
 }
index a3c518a..be8a55b 100644 (file)
        "invalidtitle-unknownnamespace": "Titre invalide avec le numéro d'espace de noms $1 et l'intitulé « $2 » inconnus",
        "exception-nologin": "Non connecté",
        "exception-nologin-text": "Veuillez vous connecter pour pouvoir accéder à cette page ou cette action.",
-       "exception-nologin-text-manual": "Veuillez $1 pour pouvoir accéder à cette page ou cette action.",
+       "exception-nologin-text-manual": "Veuillez vous $1 pour pouvoir accéder à cette page ou cette action.",
        "virus-badscanner": "Mauvaise configuration : scanneur de virus inconnu : ''$1''",
        "virus-scanfailed": "Échec de la recherche (code $1)",
        "virus-unknownscanner": "antivirus inconnu :",
        "blockedtext": "'''Votre compte utilisateur ou votre adresse IP a été bloqué.'''\n\nLe blocage a été effectué par $1.\nLa raison invoquée est la suivante : ''$2''.\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7.\n\nVous pouvez contacter $1 ou un autre [[{{MediaWiki:Grouppage-sysop}}|administrateur]] pour en discuter.\nVous ne pouvez utiliser la fonction « {{MediaWiki:emailpage}} » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été bloquée.\nVotre adresse IP actuelle est $3 et votre identifiant de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.",
        "autoblockedtext": "Votre adresse IP a été bloquée automatiquement car elle a été utilisée par un autre utilisateur, lui-même bloqué par $1.\nLa raison invoquée est :\n\n:''$2''\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7\n\nVous pouvez contacter $1 ou l’un des autres [[{{MediaWiki:Grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.\n\nNotez que vous ne pourrez utiliser la fonctionnalité d’envoi de courriel que si vous avez une adresse de courriel validée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été désactivée.\n\nVotre adresse IP actuelle est $3, et le numéro de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.",
        "blockednoreason": "aucune raison donnée",
-       "whitelistedittext": "Vous devez être $1 pour avoir la permission de modifier le contenu.",
+       "whitelistedittext": "Vous devez vous $1 pour avoir la permission de modifier le contenu.",
        "confirmedittext": "Vous devez confirmer votre adresse de courriel avant de modifier les pages.\nVeuillez entrer et valider votre adresse de courriel dans vos [[Special:Preferences|préférences]].",
        "nosuchsectiontitle": "Impossible de trouver la section",
        "nosuchsectiontext": "Vous avez essayé de modifier une section qui n'existe pas.\nElle a peut-être été déplacée ou supprimée depuis que vous avez lu cette page.",
        "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.",
        "reuploaddesc": "Annuler et retourner au formulaire d'import",
        "upload-tryagain": "Envoyer la description du fichier modifiée",
        "uploadnologin": "Non connecté",
-       "uploadnologintext": "Vous devez $1 pour importer des fichiers.",
+       "uploadnologintext": "Vous devez vous $1 pour importer des fichiers.",
        "upload_directory_missing": "Le répertoire d’import de fichier ($1) est introuvable et n’a pas pu être créé par le serveur web.",
        "upload_directory_read_only": "Le répertoire d’import de fichier ($1) n’est pas accessible en écriture depuis le serveur web.",
        "uploaderror": "Erreur lors de l’import",
        "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",
        "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",
        "special-characters-group-khmer": "khmer",
        "special-characters-title-endash": "tiret demi-cadratin",
        "special-characters-title-emdash": "tiret cadratin",
-       "special-characters-title-minus": "signe moins"
+       "special-characters-title-minus": "signe moins",
+       "mw-widgets-titleinput-description-new-page": "la page n’existe pas encore",
+       "mw-widgets-titleinput-description-redirect": "Redirection vers $1"
 }
index c1ce466..b24724d 100644 (file)
        "yourdiff": "Diferenzas",
        "copyrightwarning": "Por favor, teña en conta que todas as contribucións a {{SITENAME}} considéranse publicadas baixo a $2 (vexa $1 para máis detalles). Se non quere que o que escriba se edite sen piedade e se redistribúa sen límites, entón non o envíe aquí.<br />\nAo mesmo tempo, prométanos que o que escribiu é da súa autoría ou que está copiado dun recurso do dominio público ou que permite unha liberdade semellante.\n'''NON ENVÍE MATERIAL CON DEREITOS DE AUTOR SEN PERMISO!'''",
        "copyrightwarning2": "Por favor, decátese de que todas as súas contribucións a {{SITENAME}} poden ser editadas, alteradas ou eliminadas por outras persoas. Se non quere que os seus escritos sexan editados sen piedade, non os publique aquí.<br />\nDo mesmo xeito, comprométese a que o que vostede escriba sexa da súa autoría ou copiado dunha fonte de dominio público ou recurso público semellante (vexa $1 para detalles).\n'''NON ENVÍE SEN PERMISO TRABALLOS CON DEREITOS DE COPIA!'''",
+       "editpage-cannot-use-custom-model": "O modelo de contido desta páxina non se pode modificar.",
        "longpageerror": "'''Erro: O texto que pretende gardar ocupa {{PLURAL:$1|$1 kilobyte|$1 kilobytes}}, e existe un límite dun máximo de {{PLURAL:$2|$2 kilobyte|$2 kilobytes}}.'''\nPolo tanto, non se pode gardar.",
        "readonlywarning": "'''Atención: A base de datos foi pechada para facer mantemento, polo que non vai poder gardar as súas edicións polo de agora.'''\nSe cadra, pode cortar e pegar o texto nun ficheiro de texto e gardalo para despois.\n\nO administrador que a pechou deu esta explicación: $1",
        "protectedpagewarning": "'''Aviso: Esta páxina foi protexida de xeito que só os usuarios con privilexios de administrador a poidan editar.'''\nVelaquí está a última entrada no rexistro, por se quere consultala:",
        "special-characters-group-khmer": "Camboxano",
        "special-characters-title-endash": "guión",
        "special-characters-title-emdash": "raia",
-       "special-characters-title-minus": "signo menos"
+       "special-characters-title-minus": "signo menos",
+       "mw-widgets-titleinput-description-new-page": "a páxina aínda non existe",
+       "mw-widgets-titleinput-description-redirect": "redirección cara a $1"
 }
index 905bd95..ca4bb3e 100644 (file)
        "special-characters-group-devanagari": "દેવનાગરી",
        "special-characters-group-thai": "થાઈ",
        "special-characters-group-lao": "લાઓ",
-       "special-characters-group-khmer": "ખ્મેર"
+       "special-characters-group-khmer": "ખ્મેર",
+       "mw-widgets-titleinput-description-new-page": "પાનું અસ્તિત્વ ધરાવતું નથી."
 }
index 2156bc7..d328a4a 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פעולת היומן האחרונה מוצגת להלן:",
        "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": "סיומת הקובץ החדשה אינה מתאימה לסוג הקובץ",
        "special-characters-group-khmer": "קמרית",
        "special-characters-title-endash": "קו מפריד",
        "special-characters-title-emdash": "קו מפריד ארוך",
-       "special-characters-title-minus": "מינוס"
+       "special-characters-title-minus": "מינוס",
+       "mw-widgets-titleinput-description-new-page": "הדף עדיין לא קיים",
+       "mw-widgets-titleinput-description-redirect": "הפניה ל{{GRAMMAR:תחילית|$1}}"
 }
index b3ee9c3..fab2988 100644 (file)
        "special-characters-group-khmer": "खमेर",
        "special-characters-title-endash": "एन डैश",
        "special-characters-title-emdash": "एम डैश",
-       "special-characters-title-minus": "ऋण चिह्न"
+       "special-characters-title-minus": "ऋण चिह्न",
+       "mw-widgets-titleinput-description-new-page": "पृष्ठ अभी मौजूद नहीं है",
+       "mw-widgets-titleinput-description-redirect": "$1 को अनुप्रेषित"
 }
index 6e74325..616ba8e 100644 (file)
        "moredotdotdot": "Više...",
        "morenotlisted": "Ovaj popis nije potpun.",
        "mypage": "Stranica",
-       "mytalk": "Moj razgovor",
+       "mytalk": "Razgovor",
        "anontalk": "Razgovor za ovu IP adresu",
        "navigation": "Orijentacija",
        "and": "&#32;i",
        "searchdisabled": "<p>Oprostite! Pretraga po cjelokupnoj bazi je zbog bržeg rada projekta {{SITENAME}} trenutačno onemogućena. Možete se poslužiti tražilicom Google.</p>",
        "search-error": "Greška prilikom pretrage: $1",
        "preferences": "Postavke",
-       "mypreferences": "Moje postavke",
+       "mypreferences": "Postavke",
        "prefs-edits": "Broj uređivanja:",
        "prefsnologintext2": "Molimo Vas prijavite se da biste promijenili postavke.",
        "prefs-skin": "Izgled",
        "special-characters-group-gujarati": "Gudžaratski znakovi",
        "special-characters-group-thai": "Tajlandski (tajski) znakovi",
        "special-characters-group-lao": "Laoski znakovi",
-       "special-characters-group-khmer": "kmerski"
+       "special-characters-group-khmer": "kmerski",
+       "mw-widgets-titleinput-description-redirect": "preusmjeravanje na $1"
 }
index 0a8ec00..a841c47 100644 (file)
        "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.",
        "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:",
        "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.",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "kötőjel",
        "special-characters-title-emdash": "hosszú kötőjel",
-       "special-characters-title-minus": "minusz jel"
+       "special-characters-title-minus": "minusz jel",
+       "mw-widgets-titleinput-description-new-page": "a lap még nem létezik",
+       "mw-widgets-titleinput-description-redirect": "átirányítás ide: $1"
 }
index 8754712..f2fc89e 100644 (file)
        "no-null-revision": "Non ha potite crear un nove version vacue del le pagina \"$1\"",
        "badtitle": "Titulo invalide",
        "badtitletext": "Le titulo de pagina requestate es invalide, vacue, o un titulo interlingual o interwiki incorrectemente ligate.\nEs possibile que illo contine un o plure characteres que non pote esser usate in titulos.",
+       "title-invalid-empty": "Le titulo de pagina requestate es vacue o contine solmente le nomine de un spatio de nomines.",
+       "title-invalid-utf8": "Le titulo de pagina requestate contine un sequentia UTF-8 invalide.",
+       "title-invalid-interwiki": "Le titulo de pagina requestate contine un ligamine interwiki que non pote esser usate in titulos.",
+       "title-invalid-talk-namespace": "Le titulo de pagina requestate refere a un pagina de discussion que non pote exister.",
        "perfcached": "Le sequente datos esseva recuperate del cache e possibilemente non es actual. Un maximo de {{PLURAL:$1|un resultato|$1 resultatos}} es disponibile in le cache.",
        "perfcachedts": "Le sequente datos esseva recuperate del cache e ha essite actualisate le $3 a $4. Un maximo de {{PLURAL:$4|un resultato|$4 resultatos}} es disponibile in le cache.",
        "querypage-no-updates": "Le actualisationes pro iste pagina es disactivate. Pro le momento, le datos hic non se cambiara.",
        "nmembers": "$1 {{PLURAL:$1|membro|membros}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membro|membros}}",
        "nrevisions": "$1 {{PLURAL:$1|version|versiones}}",
-       "nviews": "$1 {{PLURAL:$1|visita|visitas}}",
        "nimagelinks": "Usate in $1 {{PLURAL:$1|pagina|paginas}}",
        "ntransclusions": "usate in $1 {{PLURAL:$1|pagina|paginas}}",
        "specialpage-empty": "Il non ha resultatos pro iste reporto.",
index d15f6e7..b342d8b 100644 (file)
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "en dash",
        "special-characters-title-emdash": "em dash",
-       "special-characters-title-minus": "senial a panagkissay"
+       "special-characters-title-minus": "senial a panagkissay",
+       "mw-widgets-titleinput-description-new-page": "awan pay ti panid",
+       "mw-widgets-titleinput-description-redirect": "ibaw-ing iti $1"
 }
index 12e502c..5dc3e63 100644 (file)
        "special-characters-group-sinhala": "Sinhalskt",
        "special-characters-group-devanagari": "Devanagari",
        "special-characters-group-thai": "Taílenskt",
-       "special-characters-group-lao": "Laoskt"
+       "special-characters-group-lao": "Laoskt",
+       "mw-widgets-titleinput-description-new-page": "síðan er ekki enn til",
+       "mw-widgets-titleinput-description-redirect": "tilvísun á $1"
 }
index 7668098..f8d30a8 100644 (file)
        "yourdiff": "Differenze",
        "copyrightwarning": "Per favore tieni presente che tutti i contributi a {{SITENAME}} si considerano pubblicati nei termini d'uso della licenza $2 (vedi $1 per maggiori dettagli).\nSe non desideri che i tuoi testi possano essere modificati e ridistribuiti da chiunque senza alcuna limitazione, non inviarli qui.<br />\nInviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scritto da te personalmente oppure è stato copiato da una fonte di pubblico dominio o similarmente libera.\n'''Non inviare materiale protetto da copyright senza autorizzazione!'''",
        "copyrightwarning2": "Per favore tieni presente che tutti i contributi a {{SITENAME}} possono essere modificati, stravolti o cancellati da altri contributori.\nSe non vuoi che i tuoi testi possano essere alterati, allora non inserirli.<br />\nInviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scritto da te personalmente oppure è stato copiato da una fonte di pubblico dominio o similarmente libera (vedi $1 per maggiori dettagli).\n'''Non inviare materiale protetto da copyright senza autorizzazione!'''",
+       "editpage-cannot-use-custom-model": "Il modello del contenuto di questa pagina non può essere modificato.",
        "longpageerror": "'''Errore: il testo inviato è lungo {{PLURAL:$1|1|$1}} kilobyte, che è maggiore della dimensione massima consentita ({{PLURAL:$2|1|$2}} kilobyte).'''\nIl testo non può essere salvato.",
        "readonlywarning": "<strong>ATTENZIONE</strong>: il database è bloccato per manutenzione, non è momentaneamente possibile salvare le modifiche effettuate.\nPer non perderle, copiale in un file di testo e salvalo in attesa dello sblocco del database.\n\nL'amministratore che impostato il blocco ha fornito questa spiegazione: $1.",
        "protectedpagewarning": "'''Attenzione: questa pagina è stata bloccata in modo che solo gli utenti con privilegi di amministratore possano modificarla.'''\nL'ultimo elemento del registro è riportato di seguito per informazione:",
        "unusedimages": "File non utilizzati",
        "wantedcategories": "Categorie richieste",
        "wantedpages": "Pagine più richieste",
-       "wantedpages-summary": "Elenco delle pagine inesistenti con il maggior numero di collegamenti a loro, escludendo le pagine che hanno solo i reindirizzamenti che li collegano. Per un elenco di pagine inesistenti che hanno reindirizzamenti che li collegano, vedere [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Elenco delle pagine inesistenti con il maggior numero di collegamenti a loro, escludendo le pagine che hanno solo i reindirizzamenti che li collegano. Per un elenco di pagine inesistenti che hanno reindirizzamenti che li collegano, vedi [[{{#special:BrokenRedirects}}|l'elenco dei reindirizzamenti errati]].",
        "wantedpages-badtitle": "Titolo non valido nel gruppo di risultati: $1",
        "wantedfiles": "File richiesti",
        "wantedfiletext-cat": "I seguenti file sono utilizzati, ma non esistono. I file ospitati su repository esterni potrebbero essere elencati anche se di fatto esistenti. Questi falsi positivi saranno <del>barrati</del>. Le pagine che incorporano i file che non esistono sono elencate in [[:$1]].",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "lineetta enne",
        "special-characters-title-emdash": "lineetta emme",
-       "special-characters-title-minus": "segno meno"
+       "special-characters-title-minus": "segno meno",
+       "mw-widgets-titleinput-description-new-page": "questa pagina non esiste ancora",
+       "mw-widgets-titleinput-description-redirect": "reindirizzamento a $1"
 }
index b6d4dba..318ac12 100644 (file)
        "tags-edit-existing-tags": "既存のタグ:",
        "tags-edit-existing-tags-none": "(なし)",
        "tags-edit-new-tags": "新しいタグ:",
+       "tags-edit-add": "これらのタグを追加:",
+       "tags-edit-remove": "これらのタグを除去:",
        "tags-edit-remove-all-tags": "(すべてのタグを除去)",
+       "tags-edit-chosen-placeholder": "いくつかのタグを選択",
        "tags-edit-chosen-no-results": "一致するタグが見つかりません",
        "tags-edit-reason": "理由:",
+       "tags-edit-revision-submit": "変更を {{PLURAL:$1|this revision|$1 revisions}} に適用",
+       "tags-edit-logentry-submit": "変更を {{PLURAL:$1|this log entry|$1 log entries}} に適用",
        "tags-edit-success": "変更が正常に適用されました。",
        "tags-edit-failure": "変更は適用できませんでした: $1",
        "tags-edit-nooldid-title": "無効な対象版",
        "log-description-pagelang": "これはページ言語の変更の記録です。",
        "logentry-pagelang-pagelang": "$1 がページ $3 の言語を $4 から $5 に{{GENDER:$2|変更しました}}",
        "default-skin-not-found": "おっと! あなたのウィキの既定の外装「<code>$1</code>」 (<code>$wgDefaultSkin</code>)は利用できません。\n\nあなたのインストールには以下の外装が含まれています。外装の有効化と既定の選択については、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル: 外装設定] をご覧ください。\n\n$2\n\n; MediaWikiをインストールしたばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。\n:* [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。\n:* [https://www.mediawiki.org/wiki/Download tarball installer] をダウンロードしてみてください。これにはいくつかの外装と拡張機能が含まれています。 <code>skins/</code> ディレクトリからコピー&ペーストできます。\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。\n\n; MediaWiki をアップグレードした場合:\n: MediaWiki 1.24 以降のバージョンでは、インストール済みの外装は自動的には有効になりません。 ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery マニュアル:外装の自動探索] をご覧ください)。<code>LocalSettings.php</code> に以下の行をペーストして、現在インストールされている外装を有効にできます。\n\n<pre>$3</pre>\n\n; <code>LocalSettings.php</code>を編集したばかりの場合:\n: 外装名に打ち間違いがないか再度確認してください。",
-       "default-skin-not-found-no-skins": "おっと! あなたのウィキの既定の外装「<code>$1</code>」 (<code>$wgDefaultSkin</code>)は利用できません。\n\n外装をインストールしていません。\n\n; MediaWikiをインストールしたばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。\n:* [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。\n:* [https://www.mediawiki.org/wiki/Download tarball installer] をダウンロードしてみてください。これには外装と拡張機能がいくつか含まれています。 <code>skins/</code> ディレクトリからコピー&ペーストできます。\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。外装の有効化と既定の選択についての情報は、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル:外装設定] をご覧ください。",
+       "default-skin-not-found-no-skins": "おっと! <code>$1</code>で定義されている、あなたのウィキの既定の外装 (<code>$wgDefaultSkin</code>)は利用できません。\n\n外装をインストールしていません。\n\n; MediaWikiをインストールしたばかりか更新したばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。MediaWikiの1.24およびそれ以降は、メインのリポジトリ内には任意の外装が含まれていません。[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。, by:\n:* 個々の外装 tarballs を[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] ダウンロードすること。\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。外装の有効化と既定の選択についての情報は、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル:外装設定] をご覧ください。",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (有効)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''無効''')",
        "mediastatistics": "メディア統計",
        "special-characters-group-khmer": "クメール文字",
        "special-characters-title-endash": "en ダッシュ",
        "special-characters-title-emdash": "em ダッシュ",
-       "special-characters-title-minus": "マイナス記号"
+       "special-characters-title-minus": "マイナス記号",
+       "mw-widgets-titleinput-description-new-page": "ページは存在しません",
+       "mw-widgets-titleinput-description-redirect": "$1 へのリダイレクト"
 }
index 98a43a2..b376f83 100644 (file)
        "special-characters-group-khmer": "ქჰმერული",
        "special-characters-title-endash": "ტირე",
        "special-characters-title-emdash": "გრძელი ტირე",
-       "special-characters-title-minus": "მინუსის ნიშანი"
+       "special-characters-title-minus": "მინუსის ნიშანი",
+       "mw-widgets-titleinput-description-new-page": "გვერდი ჯერ არ არსებობს",
+       "mw-widgets-titleinput-description-redirect": "გადამისამართება $1-ზე"
 }
index 31a11c0..36d18d4 100644 (file)
@@ -22,7 +22,8 @@
                        "The Evil IP address",
                        "VASANTH S.N.",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Pavanaja"
                ]
        },
        "tog-underline": "ಕೊಂಡಿಗಳ ಕೆಳಗೆ ಗೆರೆ ತೋರಿಸಿ",
        "mailerror": "ಅಂಚೆ ಕಳುಹಿಸುವಲ್ಲಿ ದೋಷ: $1",
        "acct_creation_throttle_hit": "ಕ್ಷಮಿಸಿ, ನೀವಾಗಲೇ{{PLURAL:$1|೧ ಖಾತೆಯನ್ನು|$1 ಖಾತೆಗಳನ್ನು}} ತೆರೆದಿದ್ದೀರಿ.\nಇನ್ನು ಹೆಚ್ಚಿನ ಖಾತೆಗಳನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.",
        "emailauthenticated": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವು ದಿನಾಂಕ $2 ಸಮಯ $3 ಅಂದು ಧೃಡೀಕೃತವಾಗಿದೆ.",
-       "emailnotauthenticated": "ನಿಮà³\8dಮ à²\87-à²\85à²\82à²\9aà³\86 à²µà²¿à²³à²¾à²¸ à²\87ನà³\8dನà³\82 à²§à³\83ಡà³\80à²\95à³\83ತವಾà²\97ಿಲà³\8dಲ.\nà²\88 à²\95à³\86ಳà²\97ಿನ à²µà³\88ಶಿಷà³\8dà²\9fತೆಗಳಿಗೆ ಇ-ಅಂಚೆಯನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲು ಆಗುವುದಿಲ್ಲ.",
+       "emailnotauthenticated": "ನಿಮà³\8dಮ à²\87-à²\85à²\82à²\9aà³\86 à²µà²¿à²³à²¾à²¸ à²\87ನà³\8dನà³\82 à²§à³\83ಡà³\80à²\95à³\83ತವಾà²\97ಿಲà³\8dಲ.\nà²\88 à²\95à³\86ಳà²\97ಿನ à²\86ಯà³\8dà²\95ೆಗಳಿಗೆ ಇ-ಅಂಚೆಯನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲು ಆಗುವುದಿಲ್ಲ.",
        "noemailprefs": "ಈ ಸೌಲಭ್ಯಗಳು ಕೆಲಸ ಮಾಡಬೇಕಾದರೆ ಒಂದು ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ.",
        "emailconfirmlink": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ಧೃಡೀಕರಿಸಿ",
        "invalidemailaddress": "ಈ ಇ-ಅಂಚೆ ವಿಳಾಸವು ಸರಿಯಾದ ಪ್ರಕಾರದಲ್ಲಿ ಇಲ್ಲದಿರುವುದರಿಂದ ಇದನ್ನು ಸ್ವೀಕಾರ ಮಾಡಲಾಗುವುದಿಲ್ಲ.\nದಯವಿಟ್ಟು ಸರಿಯಾದ ಪ್ರಕಾರದ ವಿಳಾಸವನ್ನು ಸೇರಿಸಿ ಅಥವ ಆ ಚೌಕವನ್ನು ಖಾಲಿ ಬಿಡಿ.",
        "nlinks": "$1 {{PLURAL:$1|ಸಂಪರ್ಕ|ಸಂಪರ್ಕಗಳು}}",
        "nmembers": "$1 {{PLURAL:$1|ಸದಸ್ಯ|ಸದಸ್ಯರು}}",
        "nrevisions": "$1 {{PLURAL:$1|ಬದಲಾವಣೆ|ಬದಲಾವಣೆಗಳು}}",
-       "nviews": "$1 {{PLURAL:$1|ನೋಟ|ನೋಟಗಳು}}",
        "lonelypages": "ಒಬ್ಬಂಟಿ ಪುಟಗಳು",
        "lonelypagestext": "ಈ ಕೆಳಗಿನ ಪುಟಗಳು {{SITENAME}} ಅಲ್ಲಿರುವ ಇತರ ಯಾವ ಪುಟದಿಂದಲೂ ಕೊಂಡಿಯನ್ನು ಹೊಂದಿಲ್ಲ.",
        "uncategorizedpages": "ಅವರ್ಗೀಕೃತ ಪುಟಗಳು",
index a94723e..ff06133 100644 (file)
        "special-characters-group-khmer": "Khmer-Kambodschaanesch",
        "special-characters-title-endash": "Ene Halfjeviertschtresch",
        "special-characters-title-emdash": "Ene Jeviertschtresch",
-       "special-characters-title-minus": "Et Winnijer-Zeische"
+       "special-characters-title-minus": "Et Winnijer-Zeische",
+       "mw-widgets-titleinput-description-new-page": "di Sigg jidd_et noch nit",
+       "mw-widgets-titleinput-description-redirect": "ömleijde op „$1“"
 }
index 0867b83..1ec83e4 100644 (file)
        "special-characters-group-gujarati": "Gucaratî",
        "special-characters-group-thai": "Tay",
        "special-characters-group-lao": "Lao",
-       "special-characters-group-khmer": "Khmer"
+       "special-characters-group-khmer": "Khmer",
+       "mw-widgets-titleinput-description-new-page": "Rûpel hê tune ye",
+       "mw-widgets-titleinput-description-redirect": "beralî bike ber bi $1"
 }
index fb0f294..abf7fab 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.",
        "special-characters-group-thai": "Thai",
        "special-characters-group-lao": "Lao",
        "special-characters-group-khmer": "Khmer",
-       "special-characters-title-minus": "Minus-Zeechen"
+       "special-characters-title-minus": "Minus-Zeechen",
+       "mw-widgets-titleinput-description-new-page": "Säit gëtt et nach net",
+       "mw-widgets-titleinput-description-redirect": "Viruleedung op $1"
 }
index af04196..72d3fb7 100644 (file)
        "tog-numberheadings": "سأربألگە خود شمارئشت کو",
        "tog-showtoolbar": "نأڤار أڤزار ڤیرایئشت نە نئشو بیە",
        "tog-editondblclick": "بألگە یا نە ڤا د نۊ پوٙرنیئن ڤیرایئشت بأکیت",
-       "tog-editsectiononrightclick": "بهرجا ویرایشت نه وا راس پورنین د بهرجا داسونیا کنشتگر کو",
-       "tog-watchcreations": "بلگیایی که مه راس کمه و جانیایایی که مه سوار کمه اضاف کو د سیل برگه مه",
-       "tog-watchdefault": "بلگیا و جانیایی که مه ویرایشت کمه اضاف کو د سیل برگم",
-       "tog-watchmoves": "بلگیاو جانیایی  که مه جاوه جا کمه د سیل برگم اضاف کو",
-       "tog-watchdeletion": "بلگیا و جانیایی که مه پاک کمه اضاف کو د سیل برگم",
+       "tog-editsectiononrightclick": "بأرجا ڤیرایئشت نە ڤا راس پوٙرنییئن د بأرجا داسوٙنیا کونئشتگأر کو",
+       "tog-watchcreations": "بألگە یایی کئ مئ رأڤأندیاری کئمە و جانیایی کئ مئ سوڤار کئمە ئضاف کو د سئیل بأرگە مئ",
+       "tog-watchdefault": "بألگە یایی کئ مئ رأڤأندیاری کئمە و جانیایی کئ مئ سوڤار کئمە ئضاف کو د سئیل بأرگە مئ",
+       "tog-watchmoves": "بألگە یایی و جانیایی کئ مئ جا ڤئ جا کئمە ئضاف کو د سئیل بأرگە مئ",
+       "tog-watchdeletion": "بألگە یایی و جانیایی کئ مئ پاکسا کئمە ئضاف کو د سئیل بأرگە مئ",
        "tog-watchrollback": "همه بلگه یا نه د جایی که مه د سیل برگم می کم اضاف کو.",
        "tog-minordefault": "همه ویرایشتیا کؤچک نه وا پیش فرض بیئن نشو دار کو.",
        "tog-previewontop": "پیش سیل نه دما جعوه ویرایشت نشو بیئه",
@@ -47,8 +47,8 @@
        "tog-norollbackdiff": "فرخیا نه د بین بوریت نها یه گل عقو گرد کردن",
        "tog-useeditwarning": "د گاتی که آلشتیا اماییه نبیه د بلگه ویرایشت وه جا می نم خورم کو",
        "tog-prefershttps": "همیشه د گاتی که مه وامئن هئم د ارتواط امن وه کار بیئر",
-       "underline-always": "هميشه",
-       "underline-never": "هيژوخت",
+       "underline-always": "هأمیشە",
+       "underline-never": "هیژڤأخت",
        "underline-default": "پوسه یا دوارته نیئر پیش فرض",
        "editfont-style": "راساگه فونت شلک نه ویرایشت کو",
        "editfont-default": "دوارته نیئر پیش بینی بیه",
index a6cca2f..7a0c7ae 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ن",
-       "january-gen": "اول قهاره",
+       "september": "شنیارۉن",
+       "october": "مالبارکنۉن",
+       "november": "ئا Ø³Ø±Ø¯Ú©Ù\86Û\89ن",
+       "december": "ئا Ø±Ø¬Ú©Ù\86Û\89ن",
+       "january-gen": "اول قهارھ",
        "february-gen": "لرشگون",
-       "march-gen": "ئنهزنون",
-       "april-gen": "نوروزماه",
-       "may-gen": "گلبارماه",
-       "june-gen": "جورش",
-       "july-gen": "میوه رسون",
+       "march-gen": "ئنهزنۉن",
+       "april-gen": "نۉرۉزماھ",
+       "may-gen": "گلبارماھ",
+       "june-gen": "جۉرش",
+       "july-gen": "میۉھ رسۉن",
        "august-gen": "مه گرمه",
-       "september-gen": "شنیارون",
-       "october-gen": "مالبارکنون",
-       "november-gen": "Ø¢Ù\88 Ø³Ø±Ø¯Ú©Ù\86Ù\88ن",
-       "december-gen": "Ø¢Ù\88 Ø±Ø¬Ú©Ù\86Ù\88ن",
-       "jan": "ژانویه",
-       "feb": "Ù\81Ù\88رÛ\8cÙ\87",
-       "mar": "مارس",
-       "apr": "آوریل",
-       "may": "گلبار ماه",
-       "jun": "جورش",
-       "jul": "میوه رسون",
-       "aug": "اوت",
-       "sep": "سپتاÙ\85بر",
-       "oct": "اکتبر",
-       "nov": "نوامبر",
-       "dec": "دساÙ\85بر",
+       "september-gen": "شنیارۉن",
+       "october-gen": "مالبارکنۉن",
+       "november-gen": "ئا Ø³Ø±Ø¯Ú©Ù\86Û\89ن",
+       "december-gen": "ئا Ø±Ø¬Ú©Ù\86Û\89ن",
+       "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",
        "category-empty": "ای دسه الآن هیچ بلگه یا مدیا ناره",
        "hidden-categories": "{{PLURAL:$1|دسه قائم|دسه یل قائم}}",
        "hidden-category-category": "دسه بنی یل قائم",
-       "category-subcat-count": "{{PLURAL:$2|ای دسه فقط دسه یل فرعی دومنه داره.|ای دسه چیه یل دومنه داره {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}, بیشتر زه $2 کل.}}",
+       "category-subcat-count": "{{PLURAL:$2|ای دسه فقط دسه یل فرعی دۉمنه دارھ.|ای دسه چیه یل دۉمنه دارھ {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}, بیشتر زھ $2 کل.}}",
        "category-subcat-count-limited": "ای دسه چیه یل دومنه داره {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}.",
-       "category-article-count": "{{PLURAL:$2|ای دسه فقط  بلگه یل دومنه داره .|دومن الذکر{{PLURAL:$1|بلگه هس|$1 بلگه هسن}} مئن ای دسه, بیشتر زه$2 کل.}}",
+       "category-article-count": "{{PLURAL:$2|ای دسه فقط  بلگه یل دۉمنه داره .|دۉمن الذکر{{PLURAL:$1|بلگه هس|$1 بلگه هسن}} مئن ای دسه, بیشتر زھ$2 کل.}}",
        "category-article-count-limited": "دومن الذکر {{PLURAL:$1|بلگه هس|$1 بلگه هسن}} د او دسه جریانی.",
-       "category-file-count": "{{PLURAL:$2|ای دسه فقط فایلل دومنه داره.|دومن الذکر{{PLURAL:$1|فایل هس|$1 فایلل هسن}} دای دسه, بیشترزه$2 کل.}}",
+       "category-file-count": "{{PLURAL:$2|ای دسه فقط فایلل دۉمنه دارھ.|دۉمن الذکر{{PLURAL:$1|فایل هس|$1 فایلل هسن}} د ای دسه, بیشتر زھ$2 کل.}}",
        "category-file-count-limited": "دومن الذکر {{PLURAL:$1|فایل هس|$1 فایلل هسن}} د او دسه جریانی.",
        "listingcontinuesabbrev": "دنباله",
        "index-category": "بلگه یل ایندکس وابیده",
        "broken-file-category": "بلگه یل وا فایلل لینک اشکسه",
        "about": "درباره",
        "article": "بلگه محتوا",
-       "newwindow": "(د یه پنجره دیه وا کو )",
+       "newwindow": "(د یه پنجرھ دیه ۉا کۉ )",
        "cancel": "لغو",
        "moredotdotdot": "بیشتر...",
        "morenotlisted": "ای نوم بلگه کامل نی",
        "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 Ø¬Ø§}}",
+       "returnto": "بازگشت وھ $1.",
+       "tagline": "ز {{SITENAME}}",
        "help": "هومیاری",
        "search": "جستن",
        "searchbutton": "جستن",
        "go": "رو",
-       "searcharticle": "رو",
-       "history": "ویرگارل بلگه",
-       "history_short": "تاریخچه یل",
+       "searcharticle": "رۉ",
+       "history": "تاریخچھ بلگه",
+       "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": "وندن توضیحتل محلی",
+       "create-local": "ۉندن تۉضیحتل محلی",
        "editthispage": "اصلاح ای بلگه",
        "create-this-page": "درست کو ای بلگه نه",
        "delete": "حذف",
        "protectthispage": "ای بلگنه حفاظت کو",
        "unprotect": "تغییر دائن حالت حفاظت",
        "unprotectthispage": "تغییر دائن حالت حفاظت ای بلگه",
-       "newpage": "بلگه نو",
+       "newpage": "بلگه نۉ",
        "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.",
+       "redirectto": "تغییر دائن مسیر ۉھ:",
+       "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:انکار کاروران",
-       "edithelp": "هومیاری سی اصلاح",
-       "mainpage": "بلگه اصلی",
-       "mainpage-description": "پیج اصلی",
+       "currentevents-url": "Project:اتفاقل جاری",
+       "disclaimers": "انکار کنندھ یل",
+       "disclaimerpage": "Project:انکار کارۉران",
+       "edithelp": "هۉمیاری سی اصلاح",
+       "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",
+       "page-atom-feed": "خبرخۉ Atom سی «$1»",
+       "red-link-title": "(بلگھ ۉجود نارھ) $1",
        "sort-descending": "مرتب سازی وا صعودی",
        "sort-ascending": "مرتب سازی وا صعودی",
-       "nstab-main": "پیج",
-       "nstab-user": "بلگه کارور",
+       "nstab-main": "بلگھ",
+       "nstab-user": "بلگه کارۉر",
        "nstab-media": "بلگه مدیا",
-       "nstab-special": "پیجئل مخصوص",
-       "nstab-project": "بلگه پروجه",
+       "nstab-special": "بلگھ یل ۉیجھ",
+       "nstab-project": "بلگه پرۉجه",
        "nstab-image": "فایل",
        "nstab-mediawiki": "پیوم",
-       "nstab-template": "الگو",
+       "nstab-template": "الگۉ",
        "nstab-help": "بلگه هومیاری",
        "nstab-category": "دسه",
        "nosuchaction": "چنی دستوری موجود نی",
        "formerror": "خطا:نیوا فرمنه ارسال کیت.",
        "badarticleerror": "ای عمل نیوا ری ای بلگه اجرا وابی.",
        "cannotdelete-title": "نیوا بلگنه حذف کی \"$1\"",
-       "badtitle": "عنوان بد",
-       "badtitletext": "عنوان درخواستی نامعتبر، خالی، یا عنوانی بین زوونی یا بین‌ویکی‌ای با پیوند نادرسته\nو ممکنه  یه یا چند کاراکتر داشته بوه که مئن عنوان مربوط نوا زش استفاده کنین",
-       "viewsource": "دیئن منبع",
+       "badtitle": "عنۉان بد",
+       "badtitletext": "عنۉان درخۉاستی نامعتبر، خالی، یا عنۉانی بین زۉۉنی یا بین‌ۉیکی‌ای با پیۉند نادرسته.\nۉ ممکنه  یه یا چند کاراکتر داشته بۉھ که مئن عنۉان مربۉط نۉا زش استفادھ کنین.",
+       "viewsource": "دیئن سرچشمھ",
        "viewsource-title": "دیئن منبع سی $1",
        "actionthrottled": "عمل متوقف وابی",
        "protectedpagetext": "ای بلگه سیکه اصلاح یا دیهر عملل ریش انجام نبی محافظت وابیه",
        "virus-unknownscanner": "آنتی ویروس ناشناخته",
        "welcomeuser": "خش اومیت، $1!",
        "yourname": "نوم کارور:",
-       "userlogin-yourname": "نوم کارور",
-       "userlogin-yourname-ph": "نوم خوتونه وارد بکیت",
+       "userlogin-yourname": "نۉم کارۉر",
+       "userlogin-yourname-ph": "نۉم کارۉری خۉتۉنه بنیت ایچھ",
        "createacct-another-username-ph": "نوم کارورنه وار بکیت",
        "yourpassword": "رمز:",
        "userlogin-yourpassword": "رمز",
-       "userlogin-yourpassword-ph": "رمز خوتونه وارد بکیت",
-       "createacct-yourpassword-ph": "رمزنه وارد بکیت",
+       "userlogin-yourpassword-ph": "رمز خۉتۉنه ۉارد بکنیت",
+       "createacct-yourpassword-ph": "رمزنه ۉارد بکنیت",
        "yourpasswordagain": "مجددا رمزنه تایپ بکیت",
        "createacct-yourpasswordagain": "تایید رمز",
-       "createacct-yourpasswordagain-ph": "رمزنه مجددا وارد بکیت",
-       "userlogin-remembermypassword": "منه تو نگه دار",
+       "createacct-yourpasswordagain-ph": "رمزنه دۉۉارھ ۉارد بکنیت",
+       "userlogin-remembermypassword": "منه تۉ بنھ",
        "userlogin-signwithsecure": "د اتصال ایمن استفاده کو",
        "yourdomainname": "دومین کارو:",
        "password-change-forbidden": "ایشا نیتریت مئنه ای ویکی رمزه یلنه اصلاح بکیت",
-       "login": "اÙ\88Û\8cدÙ\86 Ù\88Ù\87 سیستم",
+       "login": "ئÛ\89Û\8cدÙ\86 Û\89Ú¾ سیستم",
        "nav-login-createaccount": "اوییدن وه سیستم / درست کردن اکانت",
        "userlogin": "اوییدن وه سیستم / درست کردن اکانت",
        "userloginnocreate": "اویدن وه سیستم",
        "logout": "رهدن زه سیستم",
        "userlogout": "رهدن زه سیستم",
        "notloggedin": "نوایته",
-       "userlogin-noaccount": "اکاÙ\86ت ناریت؟",
-       "userlogin-joinproject": "ملحق شو وه {{SITENAME}}",
+       "userlogin-noaccount": "حسآÛ\89 ناریت؟",
+       "userlogin-joinproject": "ملحق شۉ ۉھ {{SITENAME}}",
        "nologin": "اکانت ناریت؟ $1.",
        "nologinlink": "راست کردن یه حساو کاروری",
-       "createaccount": "درست Ú©Ø±Ø¯Ù\86 Ø§Ú©Ø§Ù\86ت",
+       "createaccount": "راس Ú©Ø±Ø¯Ù\86 Ø­Ø³Ø¢Û\89",
        "gotaccount": "اکانت داریت؟ $1.",
        "gotaccountlink": "اویدن وه سیستم",
        "userlogin-resetlink": "مشخصه یل ورود خوتونه نونیت؟",
-       "userlogin-resetpassword-link": "رمزتونه نونیت؟",
-       "userlogin-helplink2": "هومیاری وا اوییدن وه سیستم",
+       "userlogin-resetpassword-link": "رمزتۉنه نۉنیتۉ؟",
+       "userlogin-helplink2": "هۉمیاری ۉا ئۉیدن ۉھ سیستم",
        "userlogin-createanother": "یه اکانت دیه بساز",
        "createacct-emailrequired": "آدرس ایمیل",
-       "createacct-emailoptional": "آدرس ایمیل (واخوتونی)",
-       "createacct-email-ph": "آدرس ایمیل خوتونه وارد بکیت",
+       "createacct-emailoptional": "آدرس ایمیل (ۉاخۉتۉنی)",
+       "createacct-email-ph": "آدرس ایمیل خۉتۉنه ۉارد بکنیت",
        "createacct-another-email-ph": "آدرس ایمیلنه وارد بکیت",
        "createacct-realname": "نوم راسکی (واخوتونی)",
        "createaccountreason": "دلیل:",
        "createacct-reason": "دلیل",
        "createacct-reason-ph": "سیچه داریت یه اکانت دیه ایسازیت",
        "createacct-captcha": "چک کردن امنیتی",
-       "createacct-imgcaptcha-ph": "ای نشتنه ک دومن سیل کی وارد کو",
-       "createacct-submit": "اکاÙ\86ت Ø®Ù\88تÙ\88Ù\86Ù\87 Ø¨Ø³Ø§Ø²یت",
+       "createacct-imgcaptcha-ph": "ای نشتنه کھ دۉمن سیل کی ۉارد کۉ",
+       "createacct-submit": "حسآÛ\89 Ø®Û\89تÛ\89Ù\86Ù\87 Ø±Ø§Ø³ Ú©Ù\86یت",
        "createacct-another-submit": "یه اکانت دیه بساز",
-       "createacct-benefit-heading": "{{SITENAME}} وا کسایی مث خوتون ساخته بیه",
+       "createacct-benefit-heading": "{{SITENAME}} ۉا بجلی کپ خۉتۉن راسھ بیه.",
        "createacct-benefit-body1": "{{PLURAL:$1|اصلاح|اصلاحل}}",
        "createacct-benefit-body2": "{{PLURAL:$1|بلگه|بلگه یل}}",
-       "createacct-benefit-body3": "اخیرا {{PLURAL:$1|هومیارنده|هومیارنده یل}}",
+       "createacct-benefit-body3": "اخیرا {{PLURAL:$1|هۉمیارندھ|هۉمیارندھ یل}}",
        "badretype": "رمزنه ک وارد کیت وایک جور نیوان",
        "userexists": "نوم کاروری ک وارد کیت الان در حال استفاده هسس\nلطفا یه نوم دیه انتخاب کیت",
        "loginerror": "خطا ورود",
        "accountcreated": "اکانت ساخته بی",
        "createaccount-title": "اکانت سازی سی {{SITENAME}}",
        "login-abort-generic": "ورود ایشا ناموفق وابی - سقط وابی",
-       "loginlanguagelabel": "زوون:$1",
-       "pt-login": "اÙ\88Û\8cدÙ\86 Ù\88Ù\87 سیستم",
-       "pt-login-button": "اÙ\88Û\8cدÙ\86 Ù\88Ù\87 سیستم",
-       "pt-createaccount": "درست Ú©Ø±Ø¯Ù\86 Ø§Ú©Ø§Ù\86ت",
-       "pt-userlogout": "رهدن زه سیستم",
+       "loginlanguagelabel": "زۉۉن:$1",
+       "pt-login": "ئÛ\89Û\8cدÙ\86 Û\89Ú¾ سیستم",
+       "pt-login-button": "ئÛ\89Û\8cدÙ\86 Û\89Ú¾ سیستم",
+       "pt-createaccount": "راس Ú©Ø±Ø¯Ù\86 Ø­Ø³Ø¢Û\89",
+       "pt-userlogout": "رتن زھ سیستم",
        "changepassword": "تغییر رمز",
        "resetpass_announce": "سی پایان ورود ، ایشا واسی یه رمز جدید سیخوت به ونی.",
        "resetpass_header": "تغییر رمز اکانت",
        "bold_tip": "متن گپ نما",
        "italic_sample": "متن شکسته",
        "italic_tip": "متن شکسته",
-       "link_sample": "عنوان لینک",
+       "link_sample": "عنۉان لینک",
        "link_tip": "لینک داخلی",
-       "extlink_sample": "http://www.example.com عنوان لینک",
+       "extlink_sample": "http://www.example.com عنۉان لینک",
        "extlink_tip": "(به خاطر بسپار http:// prefix)\nلینک خارجی",
        "headline_sample": "سرخط متن",
        "headline_tip": "2سرخط یکسان",
-       "nowiki_sample": "Ù\85تÙ\86 Ø´Ú©Ù\84 Ù\86دادÙ\87 Û\8cاÙ\81رÙ\85ت Ù\86Ù\88ابÛ\8cدÙ\87 Ø±Ø§ Ø§Û\8cÚ\86Ù\88 بنین",
-       "nowiki_tip": "زه فرمت کردن یا شکل دادن ویکی چشم پوشی کن",
-       "image_tip": "فایل محاط وابید",
+       "nowiki_sample": "Ù\85تÙ\86 Ø´Ú©Ù\84 Ù\86دائھ Û\8cاÙ\81رÙ\85ت Ù\86Û\89ابÛ\8cدھ Ø±Ø§ Ø§Û\8cÚ\86Û\89 بنین",
+       "nowiki_tip": "زھ فرمت کردن یا شکل دائن ۉیکی دس ۉردار",
+       "image_tip": "فایل محاط ۉابید",
        "media_tip": "لینک فایل",
-       "sig_tip": "امضای ایسا و برچسب زمان",
-       "hr_tip": "خط افقی (کم استفاده کنین)",
+       "sig_tip": "امضا ایشا ۉ برچسب زمان",
+       "hr_tip": "خط افقی (کم استفادھ کنین)",
        "summary": "خلاصه:",
-       "minoredit": "ای یه اصلاح کچک وابی",
+       "minoredit": "ای یه اصلاح کچک ۉابی",
        "watchthis": "پیگیری ای بلگه",
-       "savearticle": "بلگه ضبط بوه",
+       "savearticle": "بلگه ضبط بوھ",
        "showpreview": "پیش‌نمایش",
-       "showdiff": "نشودائن تغییرات",
-       "anoneditwarning": "<strong>هشدار:</strong> ایشا نوایته مئنه سیستم. آی پی ایشا سی عومو قابل رویت هی ار اصلاحی بکنیت. ار ایشا <strong>[$1 ورود]</strong> یا <strong>[$2 درست کردن یه حسآو]</strong>, اصلاحل ایشا به حسآو کاروری ایشا گذاشته ایوان وا منفعل حسآول دیه..",
-       "loginreqlink": "اÙ\88Û\8cدÙ\86 Ù\88Ù\87 سیستم",
-       "newarticletext": "ایشا یه لینک وه یه بلگنه که هنی وجود نارنه دنبال کردیته.\nسی درست کردن ای بلگه،نوشتنه مئنه جعبه زیر شروع کنیت(بینیتو [$1 help page] سی اصلاعات اضافی).\nار ایشا وا خطا ایچه هیسیت، ری <strong>back</strong> button مرورگر ایشا کلیژ کیت.",
-       "noarticletext": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|جستن سی عنوان ای بلگه]] مئنه بلگه یل دیه.\n<کلاس دهانه=\"لینکل ساده\">[{{آدرس کامل سایت:{{#مخصوص:نمایه یل}}|بلگه={{FULLPAGENAMEE}}}} جستن سی نمایل مربوط], یا [{{آدرس کامل سایت:{{FULLPAGENAME}}|اقدام=اصلاح}} اصلاح کو ای بلگنه]</دهانه>.",
-       "noarticletext-nopermission": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|search for this page title]] مئنه بلگل دیه، یا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>، ولی ایشا نیترید ای بلگنه درس بکنیت.",
+       "showdiff": "نشۉدائن تغییرل",
+       "anoneditwarning": "<strong>هشدار:</strong> ایشا نۉایته مئنه سیستم. آی پی ایشا سی عۉمۉم قابل رۉیت هی ار اصلاحی بکنیت. ار ایشا <strong>[$1 ورود]</strong> یا <strong>[$2 راس کردن یه حسآۉ]</strong>, اصلاحل ایشا به حسآۉ کارۉری ایشا ھشتھ ایۉان ۉا منفعل حسآۉل دیه..",
+       "loginreqlink": "ئÛ\89Û\8cدÙ\86 Û\89Ú¾ سیستم",
+       "newarticletext": "ایشا یه لینک ۉھ یه بلگنه که هنی ۉجود نارنه دنبال کردیته.\nسی راس کردن ای بلگه،نوشتنه مئنه جعبه زیر شرۉع کنیت(بینیتۉ [$1 help page] سی اصلاعات اضافی).\nار ایشا ۉا خطا ایچه هیسیت، ری <strong>back</strong> button مرۉرگر ایشا کلیژ کیت.",
+       "noarticletext": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|جستن سی عنوان ای بلگه]] مئنه بلگه یل دیه.\n<span class=\"plainlinks\">[{{fullurl:{{#مخصۉص:نمایه یل}}|بلگه={{FULLPAGENAMEE}}}} جستن سی نمایل مربوط], یا [{{fullurl:{{FULLPAGENAME}}|اقدام=اصلاح}} اصلاح کۉ ای بلگنه]</span>.",
+       "noarticletext-nopermission": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|search for this page title]] مئنه بلگل دیه، یا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>، ۉلی ایشا نیترید ای بلگنه راس بکنیت.",
        "editing": "درحال اصلاح $1",
-       "creating": "درست کردن $1",
+       "creating": "راس کردن $1",
        "editingsection": "درحال اصلاح $1 (قسمت)",
-       "templatesused": "{{PLURAL:$1|قالب|قالبل}} اسفاده بیه مئنه ای بلگه:",
+       "templatesused": "{{PLURAL:$1|قالب|قالبل}} اسفادھ بیه مئنه ای بلگه:",
        "template-protected": "(تحت حمایت)",
-       "template-semiprotected": "(نیمه حمایت وابیده)",
-       "hiddencategories": "ای بلگه عضو {{PLURAL:$1|1 دسه بنی قائم|$1 دسه بنی یل قائم}} هیسس :",
-       "permissionserrorstext-withaction": "ایشا اجازه ناریت که $2, سی ای {{PLURAL:$1|دلیل|دلیلل}}:",
-       "moveddeleted-notice": "ای بلگه حذف وابیده.\nحذف و انتقال سیاهه ای بلگه فراهم وابیده دومن سرچشمه.",
-       "viewpagelogs": "نشودائن نمایه ها سی ای بلگه",
-       "currentrev-asof": "آخرین نسخه تا $1",
+       "template-semiprotected": "(نیمه حمایت ۉابیدھ)",
+       "hiddencategories": "ای بلگه عضۉ {{PLURAL:$1|1 دسه بنی قائم|$1 دسه بنی یل قائم}} هیسس :",
+       "permissionserrorstext-withaction": "ایشا اجازھ ناریت که $2, سی ای {{PLURAL:$1|دلیل|دلیلل}}:",
+       "moveddeleted-notice": "ای بلگه حذف ۉابیدھ.\nحذف ۉ انتقال سیاهه ای بلگه فراهم ۉابیدھ دۉمن سرچشمه.",
+       "viewpagelogs": "نشۉدائن نمایه ها سی ای بلگه",
+       "currentrev-asof": "آخرین ۉرژن تا $1",
        "revisionasof": "اصلاح $1",
-       "revision-info": "نسخه $1 توسط {{GENDER:$6|$2}}$7",
+       "revision-info": "ۉرژن $1 تۉسط {{GENDER:$6|$2}}$7",
        "previousrevision": "← اصلاح قبلی",
-       "nextrevision": "نسخه جدیدتر →",
-       "currentrevisionlink": "آخرین نسخه",
+       "nextrevision": "ۉرژن نۉتر →",
+       "currentrevisionlink": "آخرین ۉرژن",
        "cur": "فعلی",
        "last": "قبلی",
        "rev-delundel": "قابلیت تغییر دائن",
        "history-title": "تاریخچه اصلاحل $1",
-       "difference-title": "تفاوت میان تجدید نطرل \"$1\"",
+       "difference-title": "فرخ ۉا بین تجدید نطرل \"$1\"",
        "lineno": "سطر $1:",
        "editundo": "لغو",
-       "diff-multi-sameuser": "({{PLURAL:$1|یه نسخه متوسط|$1 نسخه یل متوسط}} توسط کارور مشابه نشو نوابیه)",
-       "searchresults": "Ù\86تÛ\8cجÙ\87 Û\8cÙ\84 Ø¬Ø³ØªÙ\86",
-       "searchresults-title": "نتایج جستن سی \"$1\"",
+       "diff-multi-sameuser": "({{PLURAL:$1|یه ۉرزن متۉسط|$1 ۉرژنل متۉسط}} تۉسط کارۉر مشابه نشۉ نۉابیه)",
+       "searchresults": "نتیجل جستن",
+       "searchresults-title": "نتیجل جستن سی \"$1\"",
        "prevn": "قبلی {{PLURAL:$1|$1}}",
        "nextn": "بعدی {{PLURAL:$1|$1}}",
-       "nextn-title": "بعدÛ\8c $1 {{PLURAL:$1|Ù\86تÛ\8cجÙ\87\86تÛ\8cجÙ\87 Û\8cÙ\84}}",
-       "shown-title": "نشو دائن $1 {{PLURAL:$1|نتیجه|نتیجه یل}} د هر بلگه",
-       "viewprevnext": "مشاهده ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-new": "<strong>درست کو ای بلگنه \"[[:$1]]\" مئنه ای ویکی!</strong> {{PLURAL:$2|0=|همچنین سل کو بلگه ای که وا جستن پیداش کردیه.|همچنین سل کو نتایج جستنه.}}",
-       "searchprofile-articles": "بلگه محتوا",
+       "nextn-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-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",
+       "search-suggest": "آیا منطۉر ایشا ای بی:$1",
        "searchall": "همه",
-       "search-showingresults": "{{PLURAL:$4|Ù\86تÛ\8cجÙ\87 <strong>$1</strong> Ø² <strong>$3</strong>|Ù\86تÛ\8cجÙ\87 Û\8cÙ\84 <strong>$1 - $2</strong> Ø² <strong>$3</strong>}}",
-       "search-nonefound": "نتیجه ای مرتبط وا هونی که در خواست دیته نی.",
-       "mypreferences": "تنظیمات",
-       "right-writeapi": "استفاده د نوشتن به صورت API",
-       "newuserlogpage": "سÛ\8cاÙ\87Ù\87 Ø¯Ø±Ø³Øª Ú©Ø±Ø¯Ù\86 Ø­Ø³Ø¢Ù\88",
-       "enhancedrc-history": "سرÚ\86Ø´Ù\85Ù\87 Û\8cÙ\84",
-       "recentchanges": "تغییرل جدید",
-       "recentchanges-legend": "گزینه یل تغییرات اخیر",
-       "recentchanges-summary": "شیار تغییرات اخیر مئنه ای بلگه به ویکی .",
-       "recentchanges-label-newpage": "ای اصلاح یه بلگه نو ایسازه",
-       "recentchanges-label-minor": "ای یه اصلاح کچک وابی",
-       "recentchanges-label-bot": "ای اصلاح توسط یه روبات انجام وابیه",
-       "recentchanges-label-unpatrolled": "ای اصلاح هنو گشت نوابیده",
-       "recentchanges-label-plusminus": "اندازه بلگه وا ای تعداد بایت تغییر داده بیه",
-       "recentchanges-legend-heading": "'''Ø¢Ù\84شتÛ\8cا Ø§Û\8cسنی :'''",
-       "recentchanges-legend-newpage": "{{عضول انجومن:تغییرل اخیر-برچسب-بلگه نو}} (هنی سل کو [[Special:NewPages|لیست بلگل نو]])",
-       "rclistfrom": "نشودادن تغییرات نو وا شروع زه $3 $2",
-       "rcshowhideminor": "اصلاحات کوچیک $1",
-       "rcshowhideminor-show": "نشو دائن",
+       "search-showingresults": "{{PLURAL:$4|نتیجه <strong>$1</strong> ز <strong>$3</strong>|نتیجل <strong>$1 - $2</strong> ز <strong>$3</strong>}}",
+       "search-nonefound": "نتیجه ای مرتبط ۉا هۉنی که در خۉاست دیته نی.",
+       "mypreferences": "تنظیمل",
+       "right-writeapi": "استفادھ د نوشتن ۉھ صۉرت API",
+       "newuserlogpage": "سÛ\8cاÙ\87Ù\87 Ø±Ø§Ø³ Ú©Ø±Ø¯Ù\86 Ø­Ø³Ø¢Û\89",
+       "enhancedrc-history": "تارÛ\8cØ®Ú\86Ú¾",
+       "recentchanges": "تغییرل نۉ",
+       "recentchanges-legend": "گزینه یل تغییرل اخیر",
+       "recentchanges-summary": "شیار تغییرل اخیر مئنه ای بلگه ۉھ ۉیکی .",
+       "recentchanges-label-newpage": "ای اصلاح یه بلگه نو ایسازھ",
+       "recentchanges-label-minor": "ای یه اصلاح کچک ۉابی",
+       "recentchanges-label-bot": "ای اصلاح تۉسط یه رۉبات انجام ۉابیه",
+       "recentchanges-label-unpatrolled": "ای اصلاح هۉنۉ گشت نۉابیدھ",
+       "recentchanges-label-plusminus": "اندازھ بلگه ۉا ای تعداد بایت تغییر دادھ بیه",
+       "recentchanges-legend-heading": "'''Ø¢Ù\84شتÛ\8cا Ø¦Û\8cÚ¾ سنی :'''",
+       "recentchanges-legend-newpage": "{{عضۉل انجۉمن:تغییرل اخیر-برچسب-بلگه نۉ}} (هنی سل کۉ [[Special:NewPages|لیست بلگل نۉ]])",
+       "rclistfrom": "نشۉدائن تغییرل نۉ ۉا شرۉع زھ $3 $2",
+       "rcshowhideminor": "اصلاحل کچک $1",
+       "rcshowhideminor-show": "نشۉ دائن",
        "rcshowhideminor-hide": "قائم کردن",
-       "rcshowhidebots": "$1 ربات‌ل یا بوتل",
-       "rcshowhidebots-show": "نشو دائن",
+       "rcshowhidebots": "$1 ربات‌ل یا بۉتل",
+       "rcshowhidebots-show": "نشۉ دائن",
        "rcshowhidebots-hide": "قائم کردن",
-       "rcshowhideliu": "$1 حسآول وارد وابیده",
+       "rcshowhideliu": "$1 حسآۉل وارد وابیدھ",
        "rcshowhideliu-hide": "قائم کردن",
-       "rcshowhideanons": "$1 کاروران داخل نوابیده",
-       "rcshowhideanons-show": "نشو دائن",
+       "rcshowhideanons": "$1 کارۉران داخل نۉابیدھ",
+       "rcshowhideanons-show": "نشۉ دائن",
        "rcshowhideanons-hide": "قائم کردن",
-       "rcshowhidemine": "$1 اصلاحات مو",
-       "rcshowhidemine-show": "نشو دائن",
+       "rcshowhidemine": "$1 اصلاحل مۉ",
+       "rcshowhidemine-show": "نشۉ دائن",
        "rcshowhidemine-hide": "قائم کردن",
-       "rclinks": "Ù\86Ø´Ù\88دادÙ\86 Ø¢Ø®Ø±Û\8cÙ\86 $1 ØªØºÛ\8cÛ\8cر Ø¯Ø± $2 روز اخیر؛ $3",
-       "diff": "تفاوت",
-       "hist": "گزارشت",
+       "rclinks": "Ù\86Ø´Ù\88دائÙ\86 Ø¦Ø§Ø®Ø±Û\8cÙ\86 $1 ØªØºÛ\8cÛ\8cر Ù\85ئÙ\86 $2 روز اخیر؛ $3",
+       "diff": "فرخ",
+       "hist": "گزارش",
        "hide": "قائم کردن",
-       "show": "نشو دائن",
+       "show": "نشۉ دائن",
        "minoreditletter": "رز",
        "newpageletter": "تا",
        "boteditletter": "ر",
        "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتل}} بعد تغییر",
-       "recentchangeslinked": "تغییرل مربوط",
+       "recentchangeslinked": "تغییرل مربۉط",
        "recentchangeslinked-toolbox": "تغییرل مربوط",
-       "recentchangeslinked-title": "تغÛ\8cÛ\8cرÙ\87اÛ\8c Ù\85رتبط Ø¨ا $1",
-       "recentchangeslinked-summary": " ای بلگه خاص تغییرات اخیر مئنه بلگل لینک وابیده وه ای بلگنه نشو اده.\nبلگلی که مئنه [[Special:Watchlist|لیست پیگیری یل]] ایشا هیسن به شکل '''سیاه''' نشو داده ابون.",
-       "recentchangeslinked-page": "نوم بلگه:",
-       "recentchangeslinked-to": "نشو دائن تغییرات بلگلی که و بلگه داده بیه لینک داده شدنه به جای",
-       "upload": "بلم گیر کردن فایلل",
+       "recentchangeslinked-title": "تغÛ\8cÛ\8cرÙ\84 Ù\85رتبط Û\89ا $1",
+       "recentchangeslinked-summary": "ای بلگه خاص تغییرل اخیر مئنه بلگل لینک ۉابیدھ ۉھ ای بلگنه نشۉ ادھ.\nبلگلی که مئنه [[Special:Watchlist|لیست پیگیری یل]] ایشا هیسن به شکل '''سیاھ''' نشۉ دادھ ابۉن.",
+       "recentchangeslinked-page": "نۉم بلگه:",
+       "recentchangeslinked-to": "نشۉ دائن تغییرل بلگلی که ۉ بلگه دادھ بیه لینک دادھ شدنه به جای",
+       "upload": "بلم گیر کردن فایل",
        "filedesc": "خلاصه",
-       "license-header": "صدور مجوز",
+       "license-header": "صدۉر مجۉز",
        "imgfile": "فایل",
        "file-anchor-link": "فایل",
        "filehist": "تاریخچه فایل",
        "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ابیه .",
-       "upload-disallowed-here": "ایشا نیترید ای فایلنه بنویسید",
-       "randompage": "پیج اتفاقی",
+       "nolinkstoimage": "بلگه یلی که ۉھ ای فایل لینک دائنه نی.",
+       "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": "بلگھ بختھ کی",
        "nbytes": "$1 {{PLURAL:$1|بایت|بایتل}}",
-       "nmembers": "$1 {{PLURAL:$1|عضو|اعضول}}",
-       "newpages": "پیجئل جدید",
+       "nmembers": "$1 {{PLURAL:$1|عضۉ|اعضۉل}}",
+       "newpages": "بلگھ یل نۉ",
        "pager-older-n": "{{PLURAL:$1|قدیمی تر 1|قدیمی تر $1}}",
-       "booksources": "منوبع کتآو",
-       "booksources-search-legend": "جستن سی منوبع کتآو",
+       "booksources": "سرچشمل کتآۉ",
+       "booksources-search-legend": "جستن سی سرچشمل کتآۉ",
        "booksources-search": "جستن",
-       "log": "Ù\86Ù\85اÛ\8cÙ\87 Ù\87ا",
+       "log": "Ù\86Ù\85اÛ\8cÙ\84",
        "allarticles": "همه بلگل",
-       "allpagessubmit": "رو",
+       "allpagessubmit": "رۉ",
        "categories": "دسه یل",
        "mywatchlist": "فهرست پیگیری یل",
        "watch": "پی‌گیری",
        "dellogpage": "نمایه حذف",
        "rollbacklink": "عقب گرد",
-       "rollbacklinkcount": "ورگرد $1 {{PLURAL:$1|اصلاح|اصلاحل}}",
-       "protectlogpage": "نمایه حفاظت وحمایت",
+       "rollbacklinkcount": "ۉرگرد $1 {{PLURAL:$1|اصلاح|اصلاحل}}",
+       "protectlogpage": "نمایه حفاظت ۉحمایت",
        "namespace": "همدرنگل:",
-       "invert": "انتخاب برعکس بوه",
-       "tooltip-invert": "انتخاب کو ای جعبنه سی قائم کردن تغییرل بلگلی که همدرنگلشو انتخاب وابین(و همدرنگل مرتبط ار انتخاب وابین)",
+       "invert": "انتخاب برعکس بوھ",
+       "tooltip-invert": "انتخاب کۉ ای جعبنه سی قائم کردن تغییرل بلگلی که همدرنگلشۉ انتخاب ۉابین(ۉ همدرنگل مرتبط ار انتخاب ۉابین)",
        "namespace_association": "همدرنگل مرتبط",
-       "tooltip-namespace_association": "انتخاب کو ای جعبنه سیکه گپ یا موضوع همدرنگ مرتبط وا همدرنگل انتخاب وابینه قرار بنی.",
+       "tooltip-namespace_association": "انتخاب کو ای جعبنه سیکه گپ یا مۉضۉع همدرنگ مرتبط ۉا همدرنگل انتخاب ۉابینه قرار بنی.",
        "blanknamespace": "(اصلی)",
-       "contributions": "{{GENDER:$1|کارور}} سهمل",
-       "mycontris": "مشارکتل",
-       "month": "در این ماه (و قبل زه آن):",
-       "year": "در ای سال (وقبل زه آن):",
-       "whatlinkshere": "لینک یل ای بلگه",
-       "whatlinkshere-title": "بلگل که لینک دائنه به \"$1\"",
+       "contributions": "{{GENDER:$1|سھمل}} کارۉر",
+       "mycontris": "سھمل",
+       "month": "مئنھ ای ماھ (ۉ قبل زھ ھۉ):",
+       "year": "مئنھ ای سال (ۉ قبل زھ ھۉ):",
+       "whatlinkshere": "لینکل ای بلگه",
+       "whatlinkshere-title": "بلگل که لینک دائنه ۉھ \"$1\"",
        "whatlinkshere-page": "بلگه",
-       "linkshere": "Ù\84Û\8cÙ\86Ú© Ø¨Ù\84Ú¯Ù\84 Ø°Û\8cÙ\84 Ø§Ù\84ذکر Ø¨Ù\87 '''[[:$1]]''':",
+       "linkshere": "Ù\84Û\8cÙ\86Ú© Ø¨Ù\84Ú¯Ù\84 Ø¯Û\89Ù\85Ù\86 Ø§Ù\84ذکر Û\89Ú¾ '''[[:$1]]''':",
        "isredirect": "بلگه تغییر مسیر",
-       "istemplate": "استفاده‌ وابیده داخل بلگه",
+       "istemplate": "استفادھ ۉابیدھ داخل بلگه",
        "isimage": "لینک فایل",
-       "whatlinkshere-prev": "{{PLURAL:$1|قبلی |مورد قبلی$1}}",
-       "whatlinkshere-next": "{{PLURAL:$1|بعدی |مورد بعدی $1}}",
+       "whatlinkshere-prev": "{{PLURAL:$1|قبلی |مۉرد قبلی$1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|بعدی |مۉرد بعدی $1}}",
        "whatlinkshere-links": "← لینکل",
        "whatlinkshere-hideredirs": "$1 تغییرل مسیر",
        "whatlinkshere-hidetrans": "$1 تراگنجایش",
        "whatlinkshere-hidelinks": "$1 لینکل",
        "whatlinkshere-filters": "فیلترل",
-       "blocklink": "بسه وابو",
+       "blocklink": "بسه بۉھ",
        "contribslink": "شراکتل",
        "movelogpage": "نمایه جابجایی",
-       "export": "بلگل صادره یل",
+       "export": "بلگل صادرھ",
        "thumbnail-more": "گپ کردن",
-       "tooltip-pt-userpage": "حسآو کاروری ایشا",
+       "tooltip-pt-userpage": "حسآۉ کارۉری ایشا",
        "tooltip-pt-mytalk": "بلگه گپ ایشا",
-       "tooltip-pt-preferences": "اولویتل مو",
-       "tooltip-pt-watchlist": "لیست بلگلی که ایشا تغییرات هونونه  دنبال اکنین",
-       "tooltip-pt-mycontris": "لیست مشارکتل ایشا",
-       "tooltip-pt-login": "توصیه وابوه که وه سیستم داخل بوین. اما اجباری نیسس",
-       "tooltip-pt-logout": "رهدن زه سیستم",
-       "tooltip-pt-createaccount": "توصیه وابوه که حساب کاروری درست بکنیت یا وارد بوین. اما اجباری نیسس",
-       "tooltip-ca-talk": "صحبت د بلگه محتوا",
-       "tooltip-ca-edit": "ایسا ترین ای پیجنه ویرایش کنین.لطفا قبل ویرایش ای پیج از دکمه پیش نمایش استفاده کنین",
-       "tooltip-ca-addsection": "آغاز کردن یه قسمت نو",
-       "tooltip-ca-viewsource": "اÛ\8c Ø¨Ù\84Ú¯Ù\87  ØªØ­Øª Ø­Ù\85اÛ\8cتÙ\87 Ø§Û\8cساترÛ\8cÙ\86 Ù\85Ù\86بعسÙ\87 Ø¨Ù\88ینین",
-       "tooltip-ca-history": "ویرگار",
+       "tooltip-pt-preferences": "اۉلۉیتل مۉ",
+       "tooltip-pt-watchlist": "لیست بلگلی که ایشا تغییرل هۉنۉنه  دنبال اکنین",
+       "tooltip-pt-mycontris": "لیست سھمل ایشا",
+       "tooltip-pt-login": "تۉصیه ۉابۉھ که ۉھ سیستم داخل بۉین. اما اجباری نیسس",
+       "tooltip-pt-logout": "رتن زھ سیستم",
+       "tooltip-pt-createaccount": "تۉصیه ۉابۉھ که حسآۉ کارۉری راس بکنیت یا ۉارد بۉین. اما اجباری نیسس",
+       "tooltip-ca-talk": "قسھ د بلگه محتۉا",
+       "tooltip-ca-edit": "ایسھ ترین ای بلگھ نھ اصلاح کنیت.لطفا قبل اصلاح ای بلگھ ز دۉکمه پیش نمایش استفاده کنیت",
+       "tooltip-ca-addsection": "آغاز کردن یه قسمت نۉ",
+       "tooltip-ca-viewsource": "اÛ\8c Ø¨Ù\84Ú¯Ù\87  Ø¯Û\89Ù\85Ù\86 Ø­Ù\85اÛ\8cتÙ\87. \nاÛ\8cشا ØªØ±Û\8cÙ\86 Ø³Ø±Ú\86Ø´Ù\85Ú¾ Ø³Ú¾ Ø¨Û\89ینین",
+       "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-feed-atom": "تغذیه کوچیک ترین جزء  ای بلگه",
-       "tooltip-t-contributions": "یه لیس ز مشارکت کننده یل و مقاله دهنده یل ای بلگه",
+       "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-ca-nstab-user": "دیئن بلگه کارور",
-       "tooltip-ca-nstab-special": "ای بلگه مخصوصه وایسا نترین خود ای بلگنه اصلاح کنین",
-       "tooltip-ca-nstab-project": "دیئن بلگه پروجه",
+       "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-project": "دیئن بلگه پرۉجه",
        "tooltip-ca-nstab-image": "دیئن بلگه فایل",
        "tooltip-ca-nstab-template": "دیئن قالب",
        "tooltip-ca-nstab-category": "دیئن بلگه دسه بنی",
-       "tooltip-save": "ضبط کردن تغییراتت",
-       "tooltip-preview": " دیئن تغییرات ، لطفا قبل ضبط کردن د ای خدمت استفاده کنیت!",
-       "tooltip-diff": "دÛ\8cدÙ\86 ØªØºÛ\8cÛ\8cراتÛ\8c Ú©Ù\87 Ø§Û\8cسا Ù\85ن ای متن انجام دادینه",
-       "tooltip-rollback": "\"اعاده\" برگرداندن به وضع اولیه سی ای بلگه که سی مشارکت  آخر اصلاح وابیده وا یک کلیک",
-       "tooltip-undo": "\"لغو\"ورگشت ای اصلاح و وا ویدن فرم اصلاح مئنه پیش نمایش.اجازه ایده که یه دلیل وه خلاصه اضافه بکنی.",
-       "tooltip-summary": "یه خلاصه کوچکی بنویس",
-       "simpleantispam-label": "اÙ\86تخاب Ø¢Ù\86تÛ\8c-اسپÙ\85\nپر <strong>Ù\86Ú©Ù\86Û\8cد</strong> اینه مئن!",
+       "tooltip-save": "ضبط کردن تغییرل ایشا",
+       "tooltip-preview": " دیئن تغییرل ، لطفا قبل ضبط کردن د ای خدمت استفادھ کنیت!",
+       "tooltip-diff": "دÛ\8cئÙ\86 ØªØºÛ\8cÛ\8cرÙ\84Û\8c Ú©Ù\87 Ø§Û\8cشا Ù\85ئن ای متن انجام دادینه",
+       "tooltip-rollback": "\"اعادھ\" ۉرگردۉندن به وضع اولیه سی ای بلگه که سی مشارکت  آخر اصلاح ۉابیدھ ۉا یھ کلیک",
+       "tooltip-undo": "\"لغو\"ۉرگشت ای اصلاح ۉ ۉا ۉیدن فرم اصلاح مئنه پیش نمایش.اجازھ ایدھ که یه دلیل ۉھ خلاصه اضافه بکنی.",
+       "tooltip-summary": "یه خلاصه کچکی بنویسیت",
+       "simpleantispam-label": "اÙ\86تخاب Ø¢Ù\86تÛ\8c-اسپÙ\85\nپر <strong>Ù\86Ú©Ù\86Û\8cت</strong> اینه مئن!",
        "pageinfo-toolboxlink": "اطلاعات بلگه",
        "previousdiff": "← اصلاح قدیمی",
-       "nextdiff": "اصلاح جدیدتر→",
-       "file-info-size": "$1 × $2 پیکسل, اندازه فایل: $3, MIME نوع: $4",
+       "nextdiff": "اصلاح نۉتر→",
+       "file-info-size": "$1 × $2 پیکسل, اندازھ فایل: $3, MIME نۉع: $4",
        "file-nohires": "قابلیت تفکیک بالاتری در دسترس نی.",
-       "svg-long-desc": "SVG فایل, تقریبا$1 × $2 پیکسل, اندازه فایل: $3",
-       "show-big-image": "اندازه اصلی",
-       "show-big-image-preview": "اندازه ای پیش نمایش:$1.",
+       "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 پیکسلل",
-       "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": "فرادادھ",
+       "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",
        "exif-orientation": "گرایش",
        "exif-xresolution": "تفکیک پذیری افقی",
-       "exif-yresolution": "تفکیک پذیری عمودی",
-       "exif-datetime": "تغییرات تاریخ و زمان فایل",
-       "exif-make": "کمپانی سازنده دوربین",
-       "exif-model": "مدل دوربین",
-       "exif-software": "نرم افزار مورد استفاده",
-       "exif-exifversion": "نسخه Exif",
+       "exif-yresolution": "تفکیک پذیری عمۉدی",
+       "exif-datetime": "تغییرل تاریخ و زمان فایل",
+       "exif-make": "کۉمپانی راسندھ دۉربین",
+       "exif-model": "مدل دۉربین",
+       "exif-software": "نرم افزار مۉرد استفادھ",
+       "exif-exifversion": "ۉرژن Exif",
        "exif-colorspace": "فضای رنگ",
-       "exif-datetimeoriginal": "تاریخ و زمان تولید داده یل",
-       "exif-datetimedigitized": "تاریخ و زمان دیجیتالی وابیدن",
+       "exif-datetimeoriginal": "تاریخ ۉ زمان تۉلید دادھ یل",
+       "exif-datetimedigitized": "تاریخ ۉ زمان دیجیتالی ۉابیدن",
        "exif-orientation-1": "عادی",
        "namespacesall": "همه",
        "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-upload-upload": "$1 {{GENDER:$2|بارگذاری وابیده}} $3",
+       "logentry-delete-delete": "$1 {{GENDER:$2|حذف ۉابیدھ}} بلگه $3",
+       "logentry-move-move": "$1 {{GENDER:$2|انتقال دادھ بیه}} بلگه $3 ۉھ $4",
+       "logentry-newusers-create": "حسآۉ کارۉر $1 ۉابیه {{GENDER:$2|راس ۉیدھ }}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|بلم گیر کردھ ۉابی}} $3",
        "searchsuggest-search": "جستن"
 }
index 924f3a4..b2f59bc 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За ваша информација, последната ставка во дневникот на промени е прикажана подолу:",
        "special-characters-group-khmer": "Кмерски",
        "special-characters-title-endash": "цртичка",
        "special-characters-title-emdash": "тире",
-       "special-characters-title-minus": "минус"
+       "special-characters-title-minus": "минус",
+       "mw-widgets-titleinput-description-new-page": "страницата сè уште не постои",
+       "mw-widgets-titleinput-description-redirect": "пренасочување кон $1"
 }
index 8290fd0..c21c33e 100644 (file)
        "yourdiff": "വ്യത്യാസങ്ങൾ",
        "copyrightwarning": "{{SITENAME}} സംരംഭത്തിൽ എഴുതപ്പെടുന്ന ലേഖനങ്ങളെല്ലാം $2 പ്രകാരം സ്വതന്ത്രമാണ് (വിശദാംശങ്ങൾക്ക് $1 കാണുക). താങ്കൾ എഴുതുന്ന ലേഖനം തിരുത്തപ്പെടുന്നതിലോ ഒഴിവാക്കപ്പെടുന്നതിലോ എതിർപ്പുണ്ടെങ്കിൽ ദയവായി ലേഖനമെഴുതാതിരിക്കുക.\n\nഈ ലേഖനം താങ്കൾത്തന്നെ എഴുതിയതാണെന്നും അതല്ലെങ്കിൽ പകർപ്പവകാശനിയമങ്ങളുടെ പരിധിയിലില്ലാത്ത ഉറവിടങ്ങളിൽനിന്ന് പകർത്തിയതാണെന്നും ഉറപ്പാക്കുക.\n\n'''പകർപ്പവകാശ സംരക്ഷണമുള്ള സൃഷ്ടികൾ ഒരു കാരണവശാലും ഇവിടെ പ്രസിദ്ധീകരിക്കരുത്.'''",
        "copyrightwarning2": "{{SITENAME}} സംരംഭത്തിൽ താങ്കൾ എഴുതി ചേർക്കുന്നതെല്ലാം മറ്റുപയോക്താക്കൾ തിരുത്തുകയോ, മാറ്റം വരുത്തുകയോ, ഒഴിവാക്കുകയോ ചെയ്തേക്കാം. താങ്കൾ എഴുതി ചേർക്കുന്നതു മറ്റ് ഉപയോക്താക്കൾ തിരുത്തുന്നതിലോ ഒഴിവാക്കുന്നതിലോ താങ്കൾക്ക് എതിർപ്പുണ്ടെങ്കിൽ ദയവായി ലേഖനമെഴുതാതിരിക്കുക.\nഇതു താങ്കൾത്തന്നെ എഴുതിയതാണെന്നും, അതല്ലെങ്കിൽ പകർപ്പവകാശ നിയമങ്ങളുടെ പരിധിയിലില്ലാത്ത ഉറവിടങ്ങളിൽനിന്നും പകർത്തിയതാണെന്നും ഉറപ്പാക്കുക (കുടുതൽ വിവരത്തിനു $1 കാണുക).\n'''പകർപ്പവകാശ സംരക്ഷണമുള്ള സൃഷ്ടികൾ ഒരു കാരണവശാലും ഇവിടെ പ്രസിദ്ധീകരിക്കരുത്!'''",
+       "editpage-cannot-use-custom-model": "ഈ താളിന്റെ ഉള്ളടക്ക മാതൃക മാറ്റാൻ കഴിയില്ല.",
        "longpageerror": "'''പിഴവ്: താങ്കൾ സമർപ്പിച്ച എഴുത്തുകൾക്ക് {{PLURAL:$1|ഒരു കിലോബൈറ്റ്|$1 കിലോബൈറ്റ്സ്}} വലിപ്പമുണ്ട്. പരമാവധി അനുവദനീയമായ വലിപ്പം {{PLURAL:$2|ഒരു കിലോബൈറ്റ്|$2 കിലോബൈറ്റ്സ്}} ആണ്‌. അതിനാലിതു സേവ് ചെയ്യാൻ സാദ്ധ്യമല്ല.'''",
        "readonlywarning": "'''മുന്നറിയിപ്പ്: ഡേറ്റാബേസ് പരിപാലനത്തിനു വേണ്ടി ബന്ധിച്ചിരിക്കുന്നു, അതുകൊണ്ട് താങ്കളിപ്പോൾ വരുത്തിയ മാറ്റങ്ങൾ സേവ് ചെയ്യാൻ സാദ്ധ്യമല്ല.''' താങ്കൾ വരുത്തിയ മാറ്റങ്ങൾ ഒരു ടെക്സ്റ്റ് ഫയലിലേക്ക് പകർത്തി (കോപ്പി & പേസ്റ്റ്) പിന്നീടുപയോഗിക്കുന്നതിനായി കരുതിവക്കാൻ താല്പര്യപ്പെടുന്നു. ഡേറ്റാബേസ് ബന്ധിച്ച അഡ്മിനിസ്ട്രേറ്റർ നൽകിയ വിശദീകരണം: $1",
        "protectedpagewarning": "'''മുന്നറിയിപ്പ്:  ഈ താൾ കാര്യനിർവാഹക പദവിയുള്ളവർക്കു മാത്രം തിരുത്താൻ സാധിക്കാവുന്ന തരത്തിൽ സം‌രക്ഷിക്കപ്പെട്ടിരിക്കുന്നു.''' അവലംബമായി രേഖകളിൽ ലഭ്യമായ ഏറ്റവും പുതിയ വിവരം താഴെ നൽകിയിരിക്കുന്നു:",
        "badsig": "അനുവദനീയമല്ലാത്ത രൂപത്തിലുള്ള ഒപ്പ്. HTML ടാഗുകൾ പരിശോധിക്കുക.",
        "badsiglength": "താങ്കളുടെ ഒപ്പിനു നീളം കൂടുതലാണ്‌.\nഅതിലെ {{PLURAL:$1|അക്ഷരത്തിന്റെ|അക്ഷരങ്ങങ്ങളുടെ}} എണ്ണം $1 ൽ താഴെയായിരിക്കണം.",
        "yourgender": "ആൺ / പെൺ?",
-       "gender-unknown": "à´µàµ\86ളിപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതാനാà´\97àµ\8dരഹിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനിലàµ\8dà´²",
+       "gender-unknown": "താà´\99àµ\8dà´\95à´³àµ\86 à´ªà´°à´¾à´®àµ¼à´¶à´¿à´\95àµ\8dà´\95àµ\81à´®àµ\8dà´ªàµ\8bൾ, à´¸à´¾à´¦àµ\8dà´§àµ\8dയമാà´\95àµ\81à´¨àµ\8dനയിà´\9fà´¤àµ\8dà´¤àµ\8d à´²à´¿à´\82à´\97രഹിത à´µà´¾à´\95àµ\8dà´\95àµ\81à´\95ൾ à´¸àµ\8bà´«àµ\8dâ\80\8cà´±àµ\8dà´±àµ\8dâ\80\8cà´µàµ\87ർ à´\89പയàµ\8bà´\97à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതാണàµ\8d",
        "gender-male": "പുരുഷൻ",
        "gender-female": "സ്ത്രീ",
        "prefs-help-gender": "ഈ സജ്ജീകരണം നിർബന്ധമല്ല.\nസോഫ്റ്റ്‌വെയർ ഉപയോഗിച്ച് സ്ത്രീകളേയും പുരുഷന്മാരേയും ശരിയായി സംബോധന ചെയ്യാൻ ഉപയോഗിക്കുന്നു.\nഈ വിവരം പരസ്യമായി ലഭ്യമായിരിക്കുന്നതാണ്‌.",
        "php-uploaddisabledtext": "പി.എച്ച്.പി.യിൽ പ്രമാണ അപ്‌‌ലോഡുകൾ സാദ്ധ്യമല്ലാതാക്കിയിരിക്കുന്നു.\nദയവായി file_uploads ക്രമീകരണങ്ങൾ പരിശോധിക്കുക.",
        "uploadscripted": "ഈ പ്രമാണത്തിൽ വെബ് ബ്രൗസർ തെറ്റായി വ്യാഖ്യാനിച്ചേക്കാവുന്ന എച്ച്.റ്റി.എം.എൽ. അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് കോഡ് ഉണ്ട്.",
        "uploaded-script-svg": "അപ്‌ലോഡ് ചെയ്ത എസ്.വി.ജി. പ്രമാണത്തിൽ സ്ക്രിപ്റ്റ് ചെയ്യാവുന്ന ഭാഗമായ \"$1\" കണ്ടെത്തി.",
+       "uploaded-hostile-svg": "അപ്‌ലോഡ് ചെയ്ത എസ്.വി.ജി. പ്രമാണത്തിൽ സുരക്ഷിതമല്ലാത്ത സി.എസ്.എസ്. സ്റ്റൈൽ ഭാഗം കണ്ടെത്താനായി.",
        "uploadscriptednamespace": "ഈ എസ്.വി.ജി. പ്രമാണത്തിൽ ഉപയോഗിക്കാൻ പാടില്ലാത്ത നാമമേഖലയായ \"$1\" ഉണ്ട്",
        "uploadinvalidxml": "അപ്‌ലോഡ് ചെയ്ത പ്രമാണത്തിലെ എക്സ്.എം.എൽ. പാഴ്സ് ചെയ്യാൻ കഴിയില്ല.",
        "uploadvirus": "പ്രമാണത്തിൽ വൈറസുണ്ട്! വിശദാംശങ്ങൾ: $1",
        "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": "ഈ താൾ ശൂന്യമാണ്.",
index 4092f94..6c8ecb0 100644 (file)
        "emailnotauthenticated": "Lí ê e-mail chū-chí iáu-bōe khak-jīn ū-hāu, só·-í ē--kha ê e-mail kong-lêng bē-ēng-tit.",
        "noemailprefs": "Tī lí ê siat-piān chí-tēng chi̍t ê tiān-chú-phoe tē-chí thang hō͘ chia ê kong-lêng ē-tàng ēng.",
        "emailconfirmlink": "Chhiáⁿ khak-jīn lí ê e-mail chū-chí ū-hāu",
+       "pt-login": "Teng-ji̍p",
+       "pt-createaccount": "Khui sin kháu-chō",
        "user-mail-no-addy": "Siūⁿ beh kià tiān-chú-phoe, m̄-koh bô siá tē-chí.",
        "changepassword": "Oāⁿ bi̍t-bé",
        "resetpass_header": "Kái káu-chō ê bi̍t-bé.",
        "preview": "Seng khoàⁿ-māi",
        "showpreview": "Seng khoàⁿ-māi",
        "showdiff": "Khòaⁿ kái-piàn ê pō·-hūn",
-       "anoneditwarning": "'''Kéng-kò:''' Lí bô teng-ji̍p. Lí ê IP chū-chí ē kì tī pún ia̍h ê pian-chi̍p le̍k-sú lāi-bīn.",
+       "anoneditwarning": "'''thê-chhíⁿ:''' Lí bô teng-ji̍p. Lí nā ū kái mi̍h-kiāⁿ, lí ê IP ē hô͘ lâng khoàⁿ tio̍h. Lí nā <strong>[$1 teng-ji̍p]</strong> iah-sī <strong>[$2 khui chi̍t-ê kháu-chō]</strong>; lí kái ê mi̍h-kiāⁿ ē kái kì lí ê kháu-chō-miâ. Mā ū kî-thaⁿ ê hó-chhù.",
        "summary-preview": "Khài-iàu ê preview:",
        "subject-preview": "Ū-lám tê-bo̍k/piau-tê:",
        "blockednoreason": "無寫理由",
        "yourdiff": "Chha-pia̍t",
        "readonlywarning": "'''CHÙ-Ì: Chu-liāu-khò· taⁿ só tiâu leh thang pān î-siu khang-khòe, só·-í lí hiān-chú-sî bô thang pó-chûn jīn-hô phian-chi̍p hāng-bo̍k. Lí ē-sái kā siong-koan pō·-hūn tah--ji̍p-khì 1-ê bûn-jī tóng-àn pó-chûn, āu-chhiú chiah koh kè-sio̍k.'''",
        "protectedpagewarning": "'''KÉNG-KÒ: Pún ia̍h só tiâu leh. Kan-taⁿ ū hêng-chèng te̍k-koân ê iōng-chiá (sysop) ē-sái siu-kái.'''",
-       "templatesused": "Chit ia̍h iōng {{PLURAL:$1| ê pang-bô·| ê pang-bô·}} :",
+       "templatesused": "Chit ia̍h iōng {{PLURAL:$1| ê pang-bô·}} :",
        "templatesusedpreview": "Chit ê preview iōng chia ê pang-bô͘:",
        "templatesusedsection": "Chit ê section iōng chia ê pang-bô͘:",
        "template-protected": "(pó-hō͘)",
        "minoreditletter": "~",
        "newpageletter": "!",
        "boteditletter": "b",
+       "rc-change-size-new": "改了後;變做$1{{PLURAL:$1|位元}}",
        "recentchangeslinked": "Siong-koan ê kái-piàn",
        "recentchangeslinked-feed": "Siong-koan ê kái-piàn",
        "recentchangeslinked-toolbox": "Siong-koan ê kái-piàn",
        "filehist-current": "hiān-chāi",
        "filehist-datetime": "Ji̍t-kî/ Sî-kan",
        "filehist-thumb": "細張圖",
+       "filehist-thumbtext": "$1版本的細圖",
        "filehist-user": "Iōng-chiá",
        "imagelinks": "tóng-àn sù-iōng ê chōng-hòng",
-       "linkstoimage": "ē-kha $1 ê ia̍h ū iōng tio̍h chit ê iáⁿ-siōng:",
+       "linkstoimage": "ē-kha {{PLURAL:$1|ê ia̍h}} ū iōng tio̍h chit ê iáⁿ-siōng:",
        "nolinkstoimage": "Bô poàⁿ ia̍h liân kàu chit tiuⁿ iáⁿ-siōng.",
        "mimesearch": "MIME chhiau-chhoē",
        "unwatchedpages": "Bô lâng kàm-sī ê ia̍h",
        "nbytes": "$1 {{PLURAL:$1|jī-goân|jī-goân}}",
        "ncategories": "$1 {{PLURAL:$1|ê lūi-pia̍t |ê lūi-pia̍t}}",
        "nlinks": "$1 ê liân-kiat",
-       "nmembers": "$1{{PLURAL:$1|ê sêng-oân|ê sêng-oân}}",
+       "nmembers": "$1{{PLURAL:$1|ê sêng-oân}}",
        "nrevisions": "$1 ê siu-tēng-pún",
        "lonelypages": "Ko·-ia̍h",
        "uncategorizedpages": "Bô lūi-pia̍t ê ia̍h",
        "tooltip-pt-mycontris": "Lí ê kòng-hiàn lia̍t-toaⁿ",
        "tooltip-pt-login": "Hi-bāng lí teng-ji̍p; m̄-ko bô kiông-chè",
        "tooltip-pt-logout": "Teng-chhut",
+       "tooltip-pt-createaccount": "建議你先開一个口座(無一定愛);才閣登入。",
        "tooltip-ca-talk": "Loē-iông ê thó-lūn",
        "tooltip-ca-edit": "Lí ē-sái kái chit ia̍h. Beh chhûn chìn-chiân, chhiáⁿ chhi̍h  sing-khoàⁿ-māi ê liú-á",
        "tooltip-ca-viewsource": "Chit ia̍h pó-hō͘ tiâu leh.\nLí ē-sái khoàⁿ i ê goân-sú-bé.",
        "tooltip-ca-watch": "共這頁加入去你的監視單",
        "tooltip-ca-unwatch": "Lí ê kàm-sī-toaⁿ soá tiàu chit ia̍h.",
        "tooltip-search": "Chhoé {{SITENAME}}",
+       "tooltip-search-go": "若有仝名的,就去彼頁。",
        "tooltip-search-fulltext": "Chhoé ū chia-ê jī ê ia̍h",
        "tooltip-p-logo": "Khì thâu-ia̍h",
        "tooltip-n-mainpage": "Khì thâu-ia̍h",
        "tooltip-t-permalink": "Chi̍t ia̍h kái--koè pán-pún ê éng-kiú liân-kiat",
        "tooltip-ca-nstab-main": "khoàⁿ ia̍h ê loē-iông",
        "tooltip-ca-nstab-user": "Khoàⁿ iōng-chiá ê Ia̍h",
+       "tooltip-ca-nstab-special": "這是一个特殊頁,你袂使改這頁。",
        "tooltip-ca-nstab-image": "Khoàⁿ tóng-àn ia̍h",
        "tooltip-ca-nstab-category": "Khoàⁿ lūi-pia̍t ia̍h",
        "tooltip-minoredit": "記這是一个小改",
        "siteuser": "{{SITENAME}} iōng-chiá $1",
        "othercontribs": "Kin-kù $1 ê kòng-hiàn.",
        "siteusers": "{{SITENAME}} iōng-chiá $1",
+       "pageinfo-toolboxlink": "頁的資訊",
        "markaspatrolleddiff": "Phiau-sī sûn--kòe",
        "markedaspatrolledtext": "Í-keng phiau-sī chit ê siu-tēng-pún ū lâng sûn--kòe.",
        "deletedrevision": "Kū siu-tēng-pún $1 thâi-tiāu ā.",
-       "previousdiff": "← Khì chêng 1 ê diff",
-       "nextdiff": "Khì āu 1 ê diff →",
+       "previousdiff": "← 進前改的",
+       "nextdiff": "新改的 →",
        "imagemaxsize": "Iáⁿ-siōng biô-su̍t-ia̍h ê tô· ke̍k-ke hián-sī jōa tōa tiuⁿ:",
        "thumbsize": "Sok-tô· (thumbnail) jōa tōa tiuⁿ:",
        "file-nohires": "Bô khah koân ê kái-sek-tō͘.",
+       "show-big-image-size": "$1 × $2 像素",
        "newimages": "Sin iáⁿ-siōng oē-lóng",
        "imagelisttext": "Í-hā sī '''$1''' tiuⁿ iáⁿ-siōng ê lia̍t-toaⁿ, $2 pâi-lia̍t.",
        "ilsubmit": "Kiám-sek",
        "duplicate-defaultsort": "'''Thê-chhíⁿ lí:'''Siat-piān ê pâi-lia̍t hong-sek \"$2\" thè-oāⁿ chìn-chêng ê siat-piān ê pâi-lia̍t hong-sek \"$1\".",
        "version": "Pán-pún",
        "specialpages": "Te̍k-sû-ia̍h",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|个標籤}}]]:$2)",
+       "searchsuggest-search": "揣",
        "expandtemplates": "Khok-chhiong pang-bô͘",
        "expand_templates_input": "Su-ji̍p bûn-jī:",
        "expand_templates_output": "Kiat-kó:",
index 077e1c8..70e0ff5 100644 (file)
        "hidetoc": "लुकाउनुहोस्",
        "collapsible-collapse": "खुम्च्याउने",
        "collapsible-expand": "फैलाउ",
-       "confirmable-confirm": "तपाà¤\88à¤\82 {{GENDER:$1|लिà¤\99à¥\8dà¤\97}} à¤¹à¥\8b?",
+       "confirmable-confirm": "à¤\95à¥\87 {{GENDER:$1|तपाà¤\88à¤\82}} à¤¸à¥\81निशà¥\8dà¤\9aित à¤¹à¥\81नà¥\81हà¥\81नà¥\8dà¤\9b ?",
        "confirmable-yes": "हो",
        "confirmable-no": "होइन",
        "thisisdeleted": "$1 हेर्ने या पूर्वरुपमा फर्काउने हो?",
        "changeemail-submit": "इमेल परिवर्तन गर्ने",
        "changeemail-throttled": "तपाईंले भर्खरै धेरै पल्ट प्रवेशको निम्ति प्रयास गर्नुभएको छ।\nकृपया $1 पर्खेर मात्र प्रयास गर्नुहोस्।",
        "resettokens": "टोकन पूर्वरुपमा फर्काउने",
-       "resettokens-text": "जुन टोकन तपाईंको खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तपाईं त्यसलाई यहाँ रिसेट गर्न सक्नुहुन्छ।\n\nयदि तपाईं तिनलाई भुलवस कसैलाई देखाईदिनु भएको छ वा तपाईंको खाता ह्याक भइसकेको छ भने तपाईं यसलाई रिसेट गर्नुहोला।",
+       "resettokens-text": "जुन टोकन तपाईंको खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तपाईं त्यसलाई यहाँ रिसेट गर्न सक्नुहुन्छ।\n\nयदि तपाईंले तिनलाई भुलवस कसैलाई देखाईदिनु भएको छ वा तपाईंको खाता ह्याक भइसकेको छ भने तपाईं यसलाई रिसेट गर्नुहोला।",
        "resettokens-no-tokens": "पूर्वरुपमा फर्काउन कुनै पनि टोकन छैन ।",
        "resettokens-legend": "टोकनहरू पूर्वरुपमा फर्काउने",
        "resettokens-tokens": "टोकनहरू:",
        "anoneditwarning": "<strong>चेतावनी:</strong> तपाईँले प्रवेश गर्नु भएको छैन । तपाईँको आइपि ठेगाना पृष्ठ सम्पादन इतिहासमा दर्ता गरिने छ र यो सबैले हेर्न सक्छन । यदि तपाईं <strong>[$1 लगईन]</strong> वा <strong>[$2 नयाँ खाता बनाउने] गर्नुभयो भने तपाईंद्वारा गरिएको सम्पादन तपाईंको प्रयोगकर्तानाममा जोडिनेछ।",
        "anonpreviewwarning": "''तपाईंले प्रवेश गर्नु भएको छैन। संग्रह (Save) गरेको खण्डमा पृष्ठको इतिहासमा तपाईंको IP ठेगाना अंकित गरिनेछ।''",
        "missingsummary": "'''यादगर्नुहोस् :''' तपाईले सम्पादन सारांश दिनुभएको छैन ।\nयदि तपाईले संग्रहगर्नुहोस्  थिच्नुभयो भने , सारांश बिना नै संग्रहित गरिने छ ।",
-       "selfredirect": "<strong>चेतावनी:</strong> तपाईं यस पृष्ठलाई आफुमा पुनः निर्देशित गर्दै हुनुहुन्छ।\nहुनसक्छ तपाई अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गर्दैहुनुहुन्छ, वा गलत पृष्ठको सम्पादन गर्दैहुनुहुन्छ।\nतपाईं पुन एकपटक \"{{int:savearticle}}\" क्लिक गर्नुहुन्छ, पुन:निर्देशित त्यसै पनि बनाइनेछ।",
+       "selfredirect": "<strong>चेतावनी:</strong> तपाईं यस पृष्ठलाई आफुमा पुनः निर्देशित गर्दै हुनुहुन्छ।\nहुनसक्छ तपाईं अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गर्दै हुनुहुन्छ, वा गलत पृष्ठको सम्पादन गर्दै हुनुहुन्छ।\nतपाईं पुनः एकपटक \"{{int:savearticle}}\" क्लिक गर्नुहुन्छ, पुनः निर्देशित त्यसै पनि बनाइनेछ।",
        "missingcommenttext": "कृपया टिप्पणी प्रविष्ठ गर्नुहोस् ।",
        "missingcommentheader": "'''याद गर्नुहोस् :''' तपाईँले टिप्पणीमा विषय /शीर्ष पंक्ति  दिनुभएको छैन ।\nतपाईँले फेरि \"{{int:savearticle}}\"  थिच्नु भएमा , तपाईको सम्पादन यसै रुपमा संग्रहित हुनेछ ।",
        "summary-preview": "सारांश पूर्वालोकन:",
        "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 गर्नुपर्छ ।",
        "yourtext": "तपाईंका पाठहरु",
        "storedversion": "संग्रहित पुनरावलोकन",
        "nonunicodebrowser": "<strong>चेतावनी: तपाईंको ब्राउजर युनिकोडलाई स्वीकार गर्दैन।</strong> \nतपाईंद्वारा सहि रुपले पृष्ठ सम्पादनको लागि: गैर-एयससिआइआइ क्यारेक्टर हेक्जाडेसिमल कोड (hexadecimal) मा देखाइनेछ।",
-       "editingold": "<strong>चेतावनी: तपाईं यस पृष्ठको अति पुरनो अप्रचलित संशोधनलाई सम्पादन गर्नुहुँदैछ।<strong>\nयदि तपाईंले यस परिवर्तनलाई सङ्ग्रह गर्नु भयो भने यस पछिका संशोधनहरू नष्ट हुनेछन्।",
+       "editingold": "<strong>à¤\9aà¥\87तावनà¥\80: à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¯à¤¸ à¤ªà¥\83षà¥\8dठà¤\95à¥\8b à¤\85ति à¤ªà¥\81रानà¥\8b à¤\85पà¥\8dरà¤\9aलित à¤¸à¤\82शà¥\8bधनलाà¤\88 à¤¸à¤®à¥\8dपादन à¤\97रà¥\8dनà¥\81हà¥\81à¤\81दà¥\88à¤\9b।<strong>\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82लà¥\87 à¤¯à¤¸ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनलाà¤\88 à¤¸à¤\99à¥\8dà¤\97à¥\8dरह à¤\97रà¥\8dनà¥\81 à¤­à¤¯à¥\8b à¤­à¤¨à¥\87 à¤¯à¤¸ à¤ªà¤\9bिà¤\95ा à¤¸à¤\82शà¥\8bधनहरà¥\82 à¤¨à¤·à¥\8dà¤\9f à¤¹à¥\81नà¥\87à¤\9bनà¥\8d।",
        "yourdiff": "भिन्नताहरु",
        "copyrightwarning": "कृपया ध्यान दिनुहोस् यस {{SITENAME}}मा दिइएका योगदानहरू $2को अनुसार सम्पादन र पुनर्वितरणकोलागि खुला मानिनेछ (विवरणकोलागि $1 हेर्नुहोस्) । यदि तपाईंको लेखलाई सम्पादन अथवा पुनः वितरण गराउन चाहनुहुन्न भने कृपया यहाँ तपाईंको लेख प्रस्तुत नगर्नुहोस् ।<br />       \nयदि तपाईं किटानसाथ भन्नुहुन्छ कि कुनै लेख मैले लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो, '''यस्तो लेख कपिराइटबिना यहाँ नराख्नुहोस्!'''",
-       "copyrightwarning2": "à¤\95à¥\83पया à¤§à¥\8dयान à¤¦à¤¿à¤¨à¥\81हà¥\8bसà¥\8d à¤¯à¤¸ {{SITENAME}}मा à¤¦à¤¿à¤\87à¤\8fà¤\95ा à¤¯à¥\8bà¤\97दानहरà¥\81लाà¤\88 à¤\85नà¥\8dय à¤¯à¥\8bà¤\97दाताहरà¥\81दà¥\8dवारा à¤¸à¤®à¥\8dपादन à¤\97रिनà¥\87à¤\9b, à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रिनà¥\87à¤\9b à¤\85थवा à¤¹à¤\9fाà¤\87नà¥\87à¤\9b। à¤¯à¤¦à¤¿  à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤²à¥\87à¤\96लाà¤\88 à¤¨à¤¿à¤°à¥\8dदयता à¤ªà¥\82रà¥\8dवà¤\95 à¤¸à¤®à¥\8dपादन à¤\97रà¥\87à¤\95à¥\8b à¤\9aाहनà¥\81हà¥\81नà¥\8dन à¤­à¤¨à¥\87à¤\82 à¤¤à¥\8dयà¥\8b à¤¯à¤¹à¤¾à¤\81 à¤¨à¤¦à¤¿à¤¨à¥\81हà¥\8bसà¥\8d।<br />\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\95िà¤\9fानसाथ à¤­à¤¨à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b à¤\95ि à¤¯à¥\8b à¤²à¥\87à¤\96 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\86फà¥\88 लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो (विवरणकोलागि हेर्नुहोस् $1 ). \n'''कपीराइट भएको रचना अनुमति बिना  यहाँ नदिनुहोस्!'''",
+       "copyrightwarning2": "à¤\95à¥\83पया à¤§à¥\8dयान à¤¦à¤¿à¤¨à¥\81हà¥\8bसà¥\8d à¤¯à¤¸ {{SITENAME}}मा à¤¦à¤¿à¤\87à¤\8fà¤\95ा à¤¯à¥\8bà¤\97दानहरà¥\82लाà¤\88 à¤\85नà¥\8dय à¤¯à¥\8bà¤\97दानà¤\95रà¥\8dताहरà¥\82दà¥\8dवारा à¤¸à¤®à¥\8dपादन à¤\97रिनà¥\87à¤\9b, à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रिनà¥\87à¤\9b à¤\85थवा à¤¹à¤\9fाà¤\87नà¥\87à¤\9b। à¤¯à¤¦à¤¿ à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤²à¥\87à¤\96लाà¤\88 à¤¨à¤¿à¤°à¥\8dदयता à¤ªà¥\82रà¥\8dवà¤\95 à¤¸à¤®à¥\8dपादन à¤\97रà¥\87à¤\95à¥\8b à¤\9aाहनà¥\81हà¥\81नà¥\8dन à¤­à¤¨à¥\87 à¤¤à¥\8dयà¥\8b à¤¯à¤¹à¤¾à¤\81 à¤¨à¤¦à¤¿à¤¨à¥\81हà¥\8bसà¥\8d।<br />\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\95िà¤\9fानसाथ à¤­à¤¨à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b à¤\95ि à¤¯à¥\8b à¤²à¥\87à¤\96 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\86फà¥\88लà¥\87 लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो (विवरणकोलागि हेर्नुहोस् $1 ). \n'''कपीराइट भएको रचना अनुमति बिना  यहाँ नदिनुहोस्!'''",
        "longpageerror": "'''त्रुटि: तपाईंले बुझाएको पाठ {{PLURAL:$1|one किलोबाइट|$1 किलोबाइट}} लामो छ, जो अधिकतम {{PLURAL:$2|one किलोबाइट|$2 किलोबाइट}} भन्दा लामो छ।'''\nयो संग्रहित हुन सक्तैन।",
-       "readonlywarning": "<strong>चेतावनी: तथ्याक मर्मतको निम्ति बन्द गरिएकोछ, यस कारण तपाईं आफ्नो सम्पादन अहिले सङ्ग्रह गर्न सक्नुहुन्न।</strong>\n\nयदि तपाईं चाहनुहुन्छ भने अहिले यहाँ भएका पाठलाई कट गरि कतै टेक्स्ट फाइलमा पेस्ट गरेर सङ्ग्रह गर्न सक्नुहुन्छ।\n\nप्रवन्धक जसले यो बन्द गरेको छ उसले यस्तो विवरण दिएको छ: $1",
+       "readonlywarning": "<strong>à¤\9aà¥\87तावनà¥\80: à¤¤à¤¥à¥\8dयाà¤\99à¥\8dà¤\95 à¤®à¤°à¥\8dमतà¤\95à¥\8b à¤¨à¤¿à¤®à¥\8dति à¤¬à¤¨à¥\8dद à¤\97रिà¤\8fà¤\95à¥\8bà¤\9b, à¤¯à¤¸ à¤\95ारण à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\86फà¥\8dनà¥\8b à¤¸à¤®à¥\8dपादन à¤\85हिलà¥\87 à¤¸à¤\99à¥\8dà¤\97à¥\8dरह à¤\97रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dन।</strong>\n\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\9aाहनà¥\81हà¥\81नà¥\8dà¤\9b à¤­à¤¨à¥\87 à¤\85हिलà¥\87 à¤¯à¤¹à¤¾à¤\81 à¤­à¤\8fà¤\95ा à¤ªà¤¾à¤ à¤²à¤¾à¤\88 à¤\95à¤\9f à¤\97रि à¤\95तà¥\88 à¤\9fà¥\87à¤\95à¥\8dसà¥\8dà¤\9f à¤«à¤¾à¤\87लमा à¤ªà¥\87सà¥\8dà¤\9f à¤\97रà¥\87र à¤¸à¤\99à¥\8dà¤\97à¥\8dरह à¤\97रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b।\n\nपà¥\8dरवनà¥\8dधà¤\95 à¤\9cसलà¥\87 à¤¯à¥\8b à¤¬à¤¨à¥\8dद à¤\97रà¥\87à¤\95à¥\8b à¤\9b à¤\89सलà¥\87 à¤¯à¤¸à¥\8dतà¥\8b à¤µà¤¿à¤µà¤°à¤£ à¤¦à¤¿à¤\8fà¤\95à¥\8b à¤\9b: $1",
        "protectedpagewarning": "<strong>सूचना: यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण प्रवन्धकको विशेषाधिकार प्राप्त प्रयोगकर्ताहरूले मात्र यसलाई सम्पादन गर्न सक्छन् ।</strong>\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:",
        "semiprotectedpagewarning": "<strong>सूचना:</strong> यो पृष्ठलाई सुरक्षित गरिएको हुँदा दर्ता भएका प्रयोगकर्ताहरूले मात्र यसलाई सम्पादन गर्न सक्छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:",
        "cascadeprotectedwarning": "<strong>चेतावनी:</strong> यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण संशोधन प्रवन्धनको विशेषाधिकार प्राप्त प्रयोगकर्ताले मात्र सम्पादन गर्न सक्नेछन् किन भने यो {{PLURAL:$1|पृष्ठ|पृष्ठहरू}}को सुरक्षित निम्न सूचीमा सुरक्षित छ:",
        "content-failed-to-parse": "$1 को लागि $2 सामग्रीलाई पार्स गर्न विफल, त्रुटि: $3",
        "invalid-content-data": "अमान्य सामग्री डेटा",
        "content-not-allowed-here": "सामग्री \"$1\"  [[$2]] पृष्ठमा राख्न अनुमती छैन ।",
-       "editwarning-warning": "यस à¤ªà¥\83षà¥\8dठबाà¤\9f à¤¬à¤¾à¤¹à¤¿à¤° à¤\9cाà¤\81दा à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¦à¥\8dवारा à¤\97रिà¤\8fà¤\95à¥\8b à¤\95à¥\81नà¥\88 à¤\95à¥\8bà¤\88 à¤ªà¤¨à¤¿ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¹à¤°à¤¾à¤\89नà¥\87à¤\9b।\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82लà¥\87 à¤²à¤\97 à¤\87न à¤\97रà¥\8dनà¥\81भà¤\8fà¤\95à¥\8b à¤\9b à¤­à¤¨à¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¯à¤¸ à¤¸à¥\82à¤\9aनालाà¤\88 à¤¦à¥\87à¤\96ाà¤\89न à¤\86फà¥\8dनà¥\8b à¤\85भिरà¥\82à¤\9aà¥\80हरà¥\82à¤\95à¥\8b \"{{int:prefs-editing}}\" à¤­à¤¾à¤\97मा à¤\97à¤\8fर à¤¬à¤¨à¥\8dद à¤\97रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b।",
+       "editwarning-warning": "यà¥\8b à¤ªà¥\83षà¥\8dठबाà¤\9f à¤¬à¤¾à¤¹à¤¿à¤° à¤\9cाà¤\81दा à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¦à¥\8dवारा à¤\97रिà¤\8fà¤\95à¥\8b à¤\95à¥\81नà¥\88 à¤ªà¤¨à¤¿ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¹à¤°à¤¾à¤\89नà¥\87à¤\9b।\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82लà¥\87 à¤²à¤\97 à¤\87न à¤\97रà¥\8dनà¥\81भà¤\8fà¤\95à¥\8b à¤\9b à¤­à¤¨à¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¯à¤¸ à¤¸à¥\82à¤\9aनालाà¤\88 à¤¦à¥\87à¤\96ाà¤\89न à¤\86फà¥\8dनà¥\8b à¤\85भिरà¥\82à¤\9aà¥\80हरà¥\82à¤\95à¥\8b \"{{int:prefs-editing}}\" à¤­à¤¾à¤\97मा à¤\97à¤\8fर à¤¬à¤¨à¥\8dद à¤\97रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b।",
        "editpage-notsupportedcontentformat-title": "सामग्री प्रकार समर्थित छैन",
        "editpage-notsupportedcontentformat-text": "$1 सामग्री स्वरूप $2 सामग्री मोडलद्वारा समर्थित छैन।",
        "content-model-wikitext": "विकिपाठ",
        "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": "पुनरावलोकन पाठ",
        "largefileserver": "उर्ध्वभरण गरिएको फाइल सर्भरमा निर्धारित सीमा भन्दा ठूलो छ।",
        "emptyfile": "तपाईले उर्ध्वभरण गर्नुभएको फाइल रित्तो छ।\nयो फाइलनाम गलत राखिएको कारणले भएको हुनसक्छ\nयो फाइल साच्चै उर्ध्वभरण गर्नेकुरामा निश्चित हुनुहोस् ।",
        "windows-nonascii-filename": "विशेष वर्ण सहितका फाइलनामहरु यस विकिद्वारा समर्थित छैनन् ।",
-       "fileexists": "यो नामको फाइल पहिले नैं छ, यदि तपाईं परिवर्तन गर्ने कुरामा सुनिश्चित हुनुहुन्न भने कृपया <strong>[[:$1]]</strong> जाँच गर्नुहोस्।\n[[$1|thumb]]",
+       "fileexists": "यो नामको फाइल पहिले नैं छ, यदि तपाईं परिवर्तन गर्ने कुरामा सुनिश्चित हुनुहुन्न भने कृपया <strong>[[:$1]]</strong> जाँच गर्नुहोस्।\n[[$1|thumb]]",
        "filepageexists": "यस फाइलको लागि विवरण पृष्ठ पहिले नै <strong>[[:$1]]</strong> बनाइ सकिएको छ, तर यस नामको कुनै फाइल अहिले उपस्थित छैन। \nतपाईं जुन विवरण दिनुहुन्छ त्यो विवरण पृष्ठमा देखिंदैन। \nतपाईंको आफ्नो विवरणलाई त्यहाँ राख्न म्यानुअली सम्पादन गर्नु पर्नेछ।\n[[$1|thumb]]",
        "fileexists-extension": "यहि नामको एउटा फाइल पहिलेदेखि नैं छ: [[$2|thumb]]\n* उर्ध्वभरण हुँदै गरेको फाइलको नाम: <strong>[[:$1]]</strong>\n* पहिलेदेखि नैं भएको फाइलको नाम: <strong>[[:$2]]</strong>\nकृपया अर्कै नाम रोज्नुहोस्।",
        "fileexists-thumbnail-yes": "यो फाइल ठुलो चित्रको सानो आकार ''(थम्बनेल)'' जस्तो देखिन्छ। [[$1|thumb]]\n<strong>[[:$1]]</strong> फाइललाई हेर्ने।\nयदि जाँच गरिएको फाइल यसै आकारको छ भने सानो आकारको फाइल अपलोड गर्ने आवश्यकता छैन।",
        "upload-description": "फाइल वर्णन",
        "upload-options": "उर्ध्वभरण विकल्पहरु",
        "watchthisupload": "यो पृष्ठ निगरानी गर्नुहोस्",
-       "filewasdeleted": "यस नामको एक फाइल पहिले पनि अपलोड गरे पछि हटाई सकिएको छ।\nपुन अपलोड गर्नु पूर्व तपाईं $1 लाई राम्रो सँग जाँच गर्नुहोला।",
+       "filewasdeleted": "यस नामको एक फाइल पहिले पनि अपलोड गरे पछि हटाई सकिएको छ।\nपुनः अपलोड गर्नु पूर्व तपाईं $1 लाई राम्रोसँग जाँच गर्नुहोला।",
        "filename-bad-prefix": "तपाईं जुन फाइल अपलोड गर्दै हुनुहुन्छ त्यसको नाम <strong>\"$1\"</strong>बाट शुरू हुन्छ, जुन डिजिटल क्यामराद्वारा दिइएको नाम हो।\nकृपया यस फाइलको लागि कुनै दोश्रो अधिक जानकारीयुक्त नाम छान्नुहोस्।",
        "upload-success-subj": "उर्ध्वभरण सफल",
        "upload-success-msg": "[$2]बाट त्पाईंको उर्ध्वभरण सफल भयो। त्यो यहाँ पाउन सकिनेछ: [[:{{ns:file}}:$1]]",
        "emailuser-title-target": "{{GENDER:$1|प्रयोगकर्ता}}लाई इमेल गर्ने",
        "emailuser-title-notarget": "प्रयोगकर्तालाई इमेल गर्नुहोस्",
        "emailpage": "प्रयोगकर्तालाई इमेल गर्नुहोस्",
-       "emailpagetext": "तल दिइएको फर्मले तपाईं यस {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्नुहुन्छ। तपाईं जुन ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता अभिरूचीहरू]]मा दिनुभएको थियो त्यो यस इमेललाई \"पठाउने\" को रूपमा आउनेछ, अतः प्राप्तकर्ता तपाईंलाई सिधै जवाफ दिनसक्छ।",
+       "emailpagetext": "तल दिइएको फर्मले तपाईं यस {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्नुहुन्छ। तपाईंले जुन ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता अभिरूचीहरू]]मा दिनुभएको थियो त्यो यस इमेललाई \"पठाउने\" को रूपमा आउनेछ, अतः प्राप्तकर्ता तपाईंलाई सिधै जवाफ दिनसक्छ।",
        "defemailsubject": "{{SITENAME}} प्रयपोगकर्ता \"$1\" बाट इमेल",
        "usermaildisabled": "प्रयोगकर्ता इमेल निरस्त गरिएको",
        "usermaildisabledtext": "यस विकिमा तपाईं अरु प्रयोगकर्तालाई ई-मेल पठाउन सक्नुहुन्न",
        "ipbnounblockself": "तपाई आफैले आफैलाई रोक खुलाउन सक्नुहुन्न ।",
        "lockdb": "डेटाबेस ताल्चामार्ने",
        "unlockdb": "डेटाबेसको ताल्चा खोल्ने",
-       "lockdbtext": "डेटाबेसमा ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गरें हुन्छ, त्यसबाट वन्चित हुनेछ। कृपया यो सुनिश्चित गर्नुहोस कि तपाईं यो गर्न चाहनुहुन्छ, र तपाईं रक्षण पश्चात ताला खोल्नुहुन्छ।",
+       "lockdbtext": "डेटाबेसमा ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गरें हुन्छ, त्यसबाट वन्चित हुनेछ। कृपया यो सुनिश्चित गर्नुहोस् कि तपाईं यो गर्न चाहनुहुन्छ, र तपाईं रक्षण पश्चात ताला खोल्नुहुन्छ ।",
        "unlockdbtext": "डेटाबेसको ताला खोल्नका लागि सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीहरूमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गर्नु पर्छ, को सक्षमतालाई पुनर्स्थापित गर्नछ। कृपया यो सुनिश्चित गर्नुस कि तपाईं यो गर्न चाहनुहुन्छ।",
        "lockconfirm": "हो, म साँच्चिकै डेटाबेस थुन्न चाहन्छु।",
        "unlockconfirm": "हो , म साँच्चै  डेटाबेसको ताल्चा खोल्न चाहन्छु ।",
        "move-page": " $1 लाई सार्ने",
        "move-page-legend": "पृष्ठ सार्नुहोस्",
        "movepagetext": "तल दिएको फारमको उपयोगले पृष्ठ नाम परिवर्तन हुनेछ र पृष्ठको सम्पूर्ण इतिहास नयाँ नामको साथमा जानेछ।\nपुरानो शीर्षक नयाँ शीर्षककोलागि अनुप्रेषित पृष्ठ बनिनेछ।\nतपाईंले यो स्वचालित रूपले अनुप्रेषित पृष्ठलाई अपडेट गर्न सक्नुहुनेछ।\nयदि तपाईं हुँदैन चुन्नुहुन्छ भनें जाँचेर सुनिश्चित गर्नुहोस् कि [[Special:DoubleRedirects|दोहोरो]] अथवा [[Special:BrokenRedirects|टुटेको अनुप्रेषण]]।\nतपाईंमाथि यो सुनिश्चित गर्ने उत्तरदायित्व रहन्छ कि लिङ्क कुन विन्दुमा जानु पर्ने हो ।\n\nध्यान दिनुहोस् नयाँ नामको पृष्ठ पहिलेबाट नैं छ भनें पृष्ठ सारिने <strong>छैन</strong>। नयाँ नामको पृष्ठ पहिलेबाट भएर पनि यदि यो खालि छ अथवा अनुप्रेषित छ र सम्पादित इतिहास छैन भनें सारिनेछ।\nयसको अर्थ हुन्छ यदि कुनै गल्ती गरेमा तपाईंले पुनः पुरानै नाम दिनु पर्ने हुन्छ यसलाई अधिलेखन गर्नसक्नु हुनेछैन। \n\n<strong>चेतावनी!</strong>\nयो एक लोकप्रिय पृष्ठको लागि एउटा कठोर र अप्रत्याशित परिवर्तन हुनसक्नेछ;\nकृपया सुनिश्चित गर्नुहोस् कि तपाईंले यसको सही परिणाम बुझ्नु भएको छ अनि मात्र नयाँ नाम दिन अघि बढ्नुहोस्।",
-       "movepagetext-noredirectfixer": "तल दिइएको फारम पृष्ठको नाम परिवर्तन गर्नेछ, उसको सबै इतिहास पनि नयाँ नामले देखिनेछ।\nपुरानो शीर्षक नयाँ नाममा अनुप्रेषण गर्नेछ।\nमूल शीर्षक तर्फ लिएर जाने सबै अनुप्रेषणहरूलाई तपाईं स्वचालित रूपले परिवर्तन गर्न सक्नुहुन्छ।\nयदि तपाईं यसो गर्नुहुन्न भने कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]को लागि पक्कै जाँच गर्नुहोस।\nलिङ्क आफ्नो स्थानमै रहोस, यो सुनिश्चित गर्ने जिम्मेवारी तपाईंको हो।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भने स्थानान्तरण '''हुन''' सक्दैन। तर यदि नयाँ शीर्षक भएको लेख खाली छ अथवा कतै अन्य स्थानमा अनुप्रेषित गर्दैछ र साथै उसको पुरानो संस्करण छैन भने त्यो स्थानान्तरण हुनेछ।\nयसको अभिप्राय यो हो कि यदि तपाईंद्वारा गलती भएको छ भने तपाईं फेरी पुरानो नाममा यस पृष्ठलाई स्थानान्तरण गर्न सक्नुहुन्छ, र साथै तपाईं कुनै पहिले देखि रहेको पृष्ठको सट्टा यो स्थानान्तरण गर्न सक्नुहुन्न।\n\n<strong>चेतावनी!<strong>\nयदि पृष्ठ खासै लोकप्रिय छ भने त्यसको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्दा पहिले तपाईं यसको नतिजासँग परिचित हुनुहुन्छ।",
+       "movepagetext-noredirectfixer": "तल दिइएको फारमले पृष्ठको नाम परिवर्तन गर्नेछ, उसको सबै इतिहास पनि नयाँ नामले देखिनेछ ।\nपुरानो शीर्षक नयाँ नाममा अनुप्रेषण गर्नेछ ।\nमूल शीर्षक तर्फ लिएर जाने सबै अनुप्रेषणहरूलाई तपाईं स्वचालित रूपले परिवर्तन गर्न सक्नुहुन्छ ।\nयदि तपाईं यसो गर्नुहुन्न भने कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]को लागि पक्कै जाँच गर्नुहोस् ।\nलिङ्क आफ्नो स्थानमै रहोस्, यो सुनिश्चित गर्ने जिम्मेवारी तपाईंको हो ।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भने नाम परिवर्तन '''हुन''' सक्दैन । तर यदि नयाँ शीर्षक भएको लेख खाली छ अथवा कतै अन्य स्थानमा अनुप्रेषित गर्दैछ र साथै उसको पुरानो संस्करण छैन भने त्यसको नाम परिवर्तन हुनेछ ।\nयसको अभिप्राय यो हो कि यदि तपाईंद्वारा गल्ती भएको छ भने तपाईं फेरी पुरानो नाममा यस पृष्ठलाई सार्न सक्नुहुन्छ, र साथै तपाईं कुनै पहिले देखि रहेको पृष्ठको सट्टा यो स्थानान्तरण गर्न सक्नुहुन्न।\n\n<strong>चेतावनी!<strong>\nयदि पृष्ठ खासै लोकप्रिय छ भने त्यसको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्दा पहिले तपाईं यसको नतिजासँग परिचित हुनुहुन्छ।",
        "movepagetalktext": "संबद्ध वार्तालाप पृष्ठ स्वतः योसित जानेछ '''यदि'''\n* नयाँ नामको पृष्ठको वार्तालाप पृष्ठ रिक्त छैन अथवा\n* तपाईंले यसको सन्दूकमा अनचेक गर्नुहुन्छ भनें '''वार्तालाप पृष्ठ जानेछैन'''। \n\nयस्तो भएमा, तपाईंको इच्छाले आफैंले (manually) पृष्ठ सार्नु अथवा मिलाउनु पर्ने हुन्छ।",
        "movearticle": "पृष्ठ सार्नुहोस्",
        "moveuserpage-warning": "'''चेतावनी:''' तपाईंले प्रयोगकर्ता पृष्ठ सार्न आँट्नु भएकोछ। कृपया याद राख्नुहोस् पृष्ठ मात्र सारिने छ र प्रयोगकर्ताको अर्को नाम राख्न '''सकिंदैन'''।",
        "move-over-sharedrepo": "==फाइल पहिले देखि छ==\n[[$1]] एक साझा भण्डारमा पहिले देखि नै छ। यस नामको स्थानान्तरणले नयाँ फाइल साझा फाइललाई ओभरराइड गर्नेछ।",
        "file-exists-sharedrepo": "छानिएको फाइल नाम पहिले देखि नै साझा भण्डारमा प्रयोगमा छ। कृपया अन्य नाम छान्नुहोस्।",
        "export": "पृष्ठहरू निर्यात गर्ने",
-       "exporttext": "तपाईं विशिष्ठ पृष्ठको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गर्न सक्नुहुन्छ अथवा पृष्ठहरूको समूहका केहि XML मा बेर्न सक्नुहुन्छ।\nयो [[Special:Import|आयात पृष्ठ]]को सहायताले मीडियाविकीको प्रयोग गरेर दोश्रो विकीबाट आयात गर्न सकिनेछ।\n\nपृष्ठहरूको निर्यात गर्नका लागि, तल विषय वस्तु बाकसमा शीर्षक दिनुहोस, एक शीर्षक प्रति पङ्क्ति, र छान्नुहोस् कि तपाईं वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहनुहुन्छ वा चाहनुहुन्न, वा पछिल्लो सम्पादनको बारेमा जानकारीसँग मात्रै वर्तमान अवतरण चाहनुहुन्छ।\n\nपछीको स्थितिको लागि तपाईं लिङ्कको पनि प्रयोग गर्न सक्नुहुन्छ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।",
+       "exporttext": "तपाईं विशिष्ठ पृष्ठको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गर्न सक्नुहुन्छ अथवा पृष्ठहरूको समूहका केहि XML मा बेर्न सक्नुहुन्छ।\nयो [[Special:Import|आयात पृष्ठ]]को सहायताले मीडियाविकीको प्रयोग गरेर दोश्रो विकीबाट आयात गर्न सकिनेछ।\n\nपृष्ठहरूको निर्यात गर्नका लागि, तल विषय वस्तु बाकसमा शीर्षक दिनुहोस, एक शीर्षक प्रति पङ्क्ति, र छान्नुहोस् कि तपाईं वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहनुहुन्छ वा चाहनुहुन्न, वा पछिल्लो सम्पादनको बारेमा जानकारीसँग मात्रै वर्तमान अवतरण चाहनुहुन्छ।\n\nपछीको स्थितिको लागि तपाईं लिङ्कको पनि प्रयोग गर्न सक्नुहुन्छ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।",
        "exportall": "सबै पृष्ठहरू निर्यात गर्ने",
        "exportcuronly": "हालको संस्करण मात्र थप्ने ,पूरा इतिहास हैन",
        "exportnohistory": "----\n<strong>सूचना:</strong> यस फारमको प्रयोग गरेर पृष्ठको पुरै इतिहास निर्यात गर्दा प्रदर्शन कारणले अक्षम गरिएको छ।",
        "tags-delete-title": "ट्याग मेट्नुहोस्",
        "tags-delete-explanation-initial": "तपाईले ट्याग \"$1\" लाई डाटावेसबाट हटाउन खोज्दै हुनु हुन्छ ।",
        "tags-delete-explanation-in-use": "ट्यागलाई {{PLURAL:$2|$2 संशोधन वा लग प्रविष्टि|सबै $2 संशोधन र/वा लग प्रविष्टिहरू}}बाट हटाइनेछ जहाँ अहिले त्यसको प्रयोग गरिंदै छ।",
-       "tags-delete-explanation-warning": "यà¥\8b à¤\95à¥\8dरिया <strong>à¤\85परिवरà¥\8dतनà¥\80य</strong> à¤¹à¥\8b à¤° <strong>तà¥\8dयसलाà¤\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रà¥\8dन à¤¸à¤\95िà¤\82दà¥\88न</strong>, à¤¡à¥\87à¤\9fाà¤\9fाबà¥\87स à¤ªà¥\8dरवनà¥\8dधà¤\95 à¤ªà¤¨à¤¿ à¤¯à¤¸à¤²à¤¾à¤\88 à¤\95à¥\87हि à¤\97रà¥\8dन à¤¸à¤\95à¥\8dदà¥\88ननà¥\8d। à¤µà¤¿à¤¶à¥\8dवासपà¥\82रà¥\8dण à¤°à¥\82पलà¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¤à¤¯ à¤\97रà¥\8dनà¥\81स कि तपाईं यस ट्यागलाई हटाउन चाहनुहुन्छ।",
+       "tags-delete-explanation-warning": "यà¥\8b à¤\95à¥\8dरिया <strong>à¤\85परिवरà¥\8dतनà¥\80य</strong> à¤¹à¥\8b à¤° <strong>तà¥\8dयसलाà¤\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रà¥\8dन à¤¸à¤\95िà¤\82दà¥\88न</strong>, à¤¡à¥\87à¤\9fाबà¥\87स à¤ªà¥\8dरवनà¥\8dधà¤\95 à¤ªà¤¨à¤¿ à¤¯à¤¸à¤²à¤¾à¤\88 à¤\95à¥\87हि à¤\97रà¥\8dन à¤¸à¤\95à¥\8dदà¥\88ननà¥\8d। à¤µà¤¿à¤¶à¥\8dवासपà¥\82रà¥\8dण à¤°à¥\82पलà¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¤à¤¯ à¤\97रà¥\8dनà¥\81हà¥\8bसà¥\8d कि तपाईं यस ट्यागलाई हटाउन चाहनुहुन्छ।",
        "tags-delete-explanation-active": "<strong>ट्याग \"$1\" अहिले पनि सक्रिय छ, र यसको प्रयोग भविष्यमा पनि जारी रहनेछ।</strong> यसलाई रोकनका लागि, ती स्थानहरूमा जानुहोस जहाँ यस ट्यागको प्रयोग भइरहेको छ र त्यहाँ देखि यसलाई अक्षम गर्नुहोस।",
        "tags-delete-reason": "कारण:",
        "tags-delete-submit": "उल्टाउन नसकिने गरि यो ट्यागलाई मेटाउने",
        "feedback-back": "अघिल्लो",
        "feedback-bugcheck": "राम्रो! जाँच्नुस की कतै [ $1 ज्ञात बगहरू] पहिले देखि नै नहोस्।",
        "feedback-bugnew": "मैले जाँच गरिसके। नयाँ बगको खबर दिनुहोस्",
-       "feedback-bugornote": "यदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\95à¥\81नà¥\88 à¤ªà¥\8dराविधिà¤\95 à¤¸à¤®à¤¸à¥\8dयालाà¤\88 à¤µà¤¿à¤¸à¥\8dतारलà¥\87 à¤¸à¤®à¤\9dाà¤\89न à¤¤à¤¯à¤¾à¤° à¤¹à¥\81नà¥\81हà¥\81नà¥\8dà¤\9b à¤­à¤¨à¥\87 à¤\95à¥\83पया [$1 à¤¬à¤\97 à¤°à¤¾à¤\96à¥\8dनà¥\81हà¥\8bस]।\nयदि à¤¹à¥\88न, à¤­à¤¨à¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¤à¤² à¤¦à¤¿à¤\87à¤\8fà¤\95à¥\8b à¤¸à¤°à¤² à¤«à¤¾à¤°à¤®à¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रà¥\8dनसà¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b। à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤\9fिपà¥\8dपणà¥\80 à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤¨à¤¾à¤® à¤° à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤¬à¥\8dराà¤\89à¤\9cरà¤\95à¥\8b à¤¨à¤¾à¤® à¤¸à¤¹à¤¿à¤¤ \"[$3 $2]\" à¤ªà¥\83षà¥\8dठ मा जोडिनेछ।",
+       "feedback-bugornote": "यदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\95à¥\81नà¥\88 à¤ªà¥\8dराविधिà¤\95 à¤¸à¤®à¤¸à¥\8dयालाà¤\88 à¤µà¤¿à¤¸à¥\8dतारलà¥\87 à¤¸à¤®à¥\8dà¤\9dाà¤\89न à¤¤à¤¯à¤¾à¤° à¤¹à¥\81नà¥\81हà¥\81नà¥\8dà¤\9b à¤­à¤¨à¥\87 à¤\95à¥\83पया [$1 à¤¬à¤\97 à¤°à¤¾à¤\96à¥\8dनà¥\81हà¥\8bस]।\nयदि à¤¹à¥\88न, à¤­à¤¨à¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¤à¤² à¤¦à¤¿à¤\87à¤\8fà¤\95à¥\8b à¤¸à¤°à¤² à¤«à¤¾à¤°à¤®à¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रà¥\8dनसà¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b। à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤\9fिपà¥\8dपणà¥\80 à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤¨à¤¾à¤® à¤° à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤¬à¥\8dराà¤\89à¤\9cरà¤\95à¥\8b à¤¨à¤¾à¤® à¤¸à¤¹à¤¿à¤¤ \"[$3 $2]\" à¤ªà¥\83षà¥\8dठमा जोडिनेछ।",
        "feedback-cancel": "रद्द गर्ने",
        "feedback-close": "गरियो",
        "feedback-external-bug-report-button": "प्राविधिक कार्य पेश गर्नुहोस्",
        "special-characters-group-khmer": "खेमर",
        "special-characters-title-endash": "इएन ड्यास",
        "special-characters-title-emdash": "इएम ड्यास",
-       "special-characters-title-minus": "घटाउने चिन्ह"
+       "special-characters-title-minus": "घटाउने चिन्ह",
+       "mw-widgets-titleinput-description-new-page": "हालसम्म पृष्ठ उपलब्ध छैन्",
+       "mw-widgets-titleinput-description-redirect": "$1 मा जाने"
 }
index 7e67800..dd78e7e 100644 (file)
        "watchthis": "ଏହି ପୃଷ୍ଠାଟିକୁ ଦେଖିବେ",
        "savearticle": "ସାଇତିବେ [Save]",
        "preview": "ସାଇତିବା ଆଗରୁ ଦେଖନ୍ତୁ",
-       "showpreview": "ପà­\82ରà­\8dବଦà­\87à¬\96ଣା [Preview]",
+       "showpreview": "ଦେଖଣା [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": "ପà­\82ରà­\8dବଦà­\87à¬\96ଣା",
+       "prefs-preview": "ଦେଖଣା",
        "prefs-advancedrc": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
        "prefs-advancedrendering": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
        "prefs-advancedsearchoptions": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
        "expand_templates_remove_nowiki": "ଫଳାଫଳରେ <nowiki> ଟ୍ୟାଗମାନଙ୍କୁ ଦବାଇଦିଅନ୍ତୁ",
        "expand_templates_generate_xml": "XML ପାର୍ସ ସଂରଚନା ଦେଖାନ୍ତୁ",
        "expand_templates_generate_rawhtml": "କେବଳ HTML କୋଡ଼ ଦେଖାନ୍ତୁ",
-       "expand_templates_preview": "ପà­\82ରà­\8dବଦà­\87à¬\96ଣା",
+       "expand_templates_preview": "ଦେଖଣା",
        "pagelanguage": "ପୃଷ୍ଠା ଭାଷା ବଛା",
        "pagelang-name": "ପୃଷ୍ଠା",
        "pagelang-language": "ଭାଷା",
index 7b74390..10a1e12 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",
        "pool-timeout": "ਲਾਕ ਲਈ ਉਡੀਕ ਦਾ ਵਕਤ ਖ਼ਤਮ ਹੋ ਗਿਆ ਹੈ",
        "pool-queuefull": "ਪੂਲ ਕਤਾਰ ਭਰੀ ਹੋਈ ਹੈ",
        "pool-errorunknown": "ਅਣਜਾਣ ਗਲਤੀ",
+       "poolcounter-usage-error": "ਵਰਤੋਂ ਵਿੱਚ ਗ਼ਲਤੀ:$1",
        "aboutsite": "{{SITENAME}} ਬਾਰੇ",
        "aboutpage": "Project:ਬਾਰੇ",
        "copyright": "ਕੁਝ ਹੋਰ ਨਾ ਲਿਖੇ ਜਾਣ 'ਤੇ ਸਮੱਗਰੀ $1 ਹੇਠ ਮੌਜੂਦ ਹੈ।",
        "missingcommenttext": "ਹੇਠਾਂ ਇੱਕ ਟਿੱਪਣੀ ਦਿਓ।",
        "summary-preview": "ਸੋਧ ਸਾਰ ਦੀ ਝਲਕ:",
        "subject-preview": "ਵਿਸ਼ੇ/ਸਿਰਨਾਵੇਂ ਦੀ ਝਲਕ:",
+       "previewerrortext": "ਤੁਹਾਡੀਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਝਲਕ ਵਿਖਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਵਿੱਚ ਗ਼ਲਤੀ ਆ ਗਈ।",
        "blockedtitle": "ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲੱਗੀ ਹੋਈ ਹੈ",
        "blockedtext": "'''ਤੁਹਾਡੇ ਮੌਮਬਰ ਨਾਮ ਜਾਂ IP ਪਤੇ ’ਤੇ ਪਾਬੰਦੀ ਲੱਗ ਚੁੱਕੀ ਹੈ।'''\n\nਪਾਬੰਦੀ $1 ਨੇ ਲਾਈ ਹੈ।\nਦਿੱਤਾ ਗਿਆ ਕਾਰਨ ਇਹ ਹੈ, ''$2''।\n\n* ਪਾਬੰਦੀ ਸ਼ੁਰੂ: $8\n* ਪਾਬੰਦੀ ਖਤਮ: $6\n* ਪਾਬੰਦੀ ਲਾਉਣ ਵਾਲੇ ਦਾ ਇਰਾਦਾ: $7\n\nਪਾਬੰਦੀ ਬਾਰੇ ਚਰਚਾ ਕਰਨ ਲਈ ਤੁਸੀਂ $1 ਜਾਂ ਕਿਸੇ ਹੋਰ\n[[{{MediaWiki:Grouppage-\nsysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।\nਤੁਸੀਂ 'ਇਸ ਮੈਂਬਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ' ਸਹੂਲਤ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕਦੇ ਜੇ ਤੁਹਾਡੀਆਂ [[Special:Preferences|ਖਾਤਾ ਪਸੰਦਾਂ]] ਵਿੱਚ ਇੱਕ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ ਜਾਂ ਜੇ ਤੁਹਾਡੇ ਇਸਨੂੰ ਵਰਤਣ ਤੇ ਪਾਬੰਦੀ ਹੈ।\nਤੁਹਾਡਾ ਚਾਲੂ IP ਪਤਾ $3 ਹੈ,\nਅਤੇ ਪਾਬੰਦੀ ਪਤਾ #$5 ਹੈ।\nਮਿਹਰਬਾਨੀ ਕਰਕੇ ਆਪਣੇ ਕਿਸੇ ਵੀ ਸਵਾਲ ਜਾਂ ਪੁੱਛ-ਗਿੱਛ ਵਿਚ ਇਹ ਉੱਪਰਲੀ ਤਫ਼ਸੀਲ ਜ਼ਰੂਰ ਸ਼ਾਮਲ ਕਰੋ।",
        "blockednoreason": "ਕੋਈ ਕਾਰਨ ਨਹੀਂ ਦੱਸਿਆ ਗਿਆ",
        "showhideselectedversions": "ਚੁਣੀਆਂ ਸੁਧਾਈਆਂ ਦੀ ਦਿਸਣਯੋਗਤਾ ਬਦਲੋ",
        "editundo": "ਰੱਦ ਕਰੋ",
        "diff-empty": "(ਕੋਈ ਫ਼ਰਕ ਨਹੀਂ)",
+       "diff-multi-sameuser": "(ਇਸੀ ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ {{PLURAL:$1|ਇੱਕ ਵਿਚਕਾਰਲੀ ਤਬਦੀਲੀ|$1 ਵਿਚਕਾਰਲੀਆਂ ਤਬਦੀਲੀਆਂ}} {{PLURAL:not shown|ਨਹੀਂ ਦਿਖਾਈ ਜਾ ਰਹੀ|ਨਹੀਂ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ}})",
        "searchresults": "ਖੋਜ ਨਤੀਜੇ",
        "searchresults-title": "\"$1\" ਲਈ ਖੋਜ ਨਤੀਜੇ",
        "titlematches": "ਆਰਟੀਕਲ ਟੈਕਸਟ ਮਿਲਦਾ",
        "shown-title": "ਪ੍ਰਤੀ ਸਫ਼ਾ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}} ਵਿਖਾਓ",
        "viewprevnext": "ਵੇਖੋ ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''ਇਸ ਵਿਕੀ ’ਤੇ \"[[:$1]]\" ਨਾਮ ਦਾ ਸਫਾ ਹੈ।'''",
-       "searchmenu-new": "'''ਇਸ ਵਿਕੀ ’ਤੇ \"[[:$1]]\" ਸਫ਼ਾ ਬਣਾਓ!'''",
+       "searchmenu-new": "<strong>ਇਸ ਵਿਕੀ ਉੱਤੇ ਸਫ਼ਾ \"[[:$1]]\" ਬਣਾਓ!</strong> {{PLURAL:$2|0=|ਇਸਦੇ ਨਾਲ ਖੋਜ ਦੇ ਨਤੀਜੇ ਵੀ ਦੇਖ ਲਵੋ।}}",
        "searchprofile-articles": "ਸਮੱਗਰੀ ਸਫ਼ੇ",
        "searchprofile-images": "ਮਲਟੀਮੀਡੀਆ",
        "searchprofile-everything": "ਸਭ ਕੁਝ",
        "searchrelated": "ਸਬੰਧਤ",
        "searchall": "ਸਭ",
        "showingresults": "ਹੇਠਾਂ #'''$2''' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ {{PLURAL:\n$1|'''1''' ਨਤੀਜਾ|'''$1''' ਤੱਕ ਨਤੀਜੇ}} ਵਖਾਓ।",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> ਵਿੱਚੋਂ <strong>$1</strong> ਨਤੀਜੇ| <strong>$3</strong> ਵਿੱਚੋਂ <strong>$1 - $2</strong> ਨਤੀਜੇ}}",
        "search-nonefound": "ਤੁਹਾਡੀ ਖੋਜ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਮਿਲੇ।",
        "powersearch-legend": "ਤਕਨੀਕੀ ਖੋਜ",
        "powersearch-ns": "ਨੇਮ-ਸਪੇਸ ਵਿੱਚ ਖੋਜ:",
        "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": "ਵੇਰਵਾ ਲੁਕਾਓ",
        "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-pixelxdimension": "ਤਸਵੀਰ ਦੀ ਲੰਬਾਈ",
        "exif-usercomment": "ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਟਿੱਪਣੀਆਂ",
        "exif-relatedsoundfile": "ਮਿਲਦੀ-ਜੁਲਦੀ ਆਡੀਓ ਫ਼ਾਈਲ",
+       "exif-datetimeoriginal": "ਡਾਟਾ ਦੇ ਬਣਨ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ",
        "exif-datetimedigitized": "ਅੰਕਰੂਪ ਕਰਨ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ",
        "exif-fnumber": "ਐੱਫ਼ ਨੰਬਰ",
        "exif-subjectdistance": "ਵਿਸ਼ੇ ਦੀ ਵਿੱਥ",
        "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 4e27b54..ca5db9a 100644 (file)
@@ -77,7 +77,8 @@
                        "VerMa",
                        "Ency",
                        "Kszapsza",
-                       "Openbk"
+                       "Openbk",
+                       "Doctore"
                ]
        },
        "tog-underline": "Podkreślenie linków:",
        "underline-never": "Nigdy",
        "underline-default": "według ustawień skórki lub przeglądarki",
        "editfont-style": "Styl czcionki w polu edycyjnym:",
-       "editfont-default": "Domyślna przeglądarka",
+       "editfont-default": "domyślny przeglądarki",
        "editfont-monospace": "czcionka o stałej szerokości",
        "editfont-sansserif": "czcionka bezszeryfowa",
        "editfont-serif": "czcionka szeryfowa",
        "content-model-css": "CSS",
        "content-json-empty-object": "Pusty obiekt",
        "content-json-empty-array": "Pusta tablica",
+       "duplicate-args-warning": "<strong>Ostrzeżenie:</strong> [[:$1]] wywołuje [[:$2]] z więcej niż jedną wartością dla parametru \"$3\". Tylko ostatnia podana wartość zostanie użyta.",
        "duplicate-args-category": "Strony zawierające wywołania szablonów z parametrami o takich samych nazwach",
        "duplicate-args-category-desc": "Strona zawiera szablony, które używają duplikatów argumentów, jak <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> lub <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Uwaga! Ta strona zawiera zbyt wiele wywołań złożonych obliczeniowo funkcji parsera.\n\nPowinno być mniej niż $2 {{PLURAL:$2|wywołanie|wywołania|wywołań}}, a obecnie {{PLURAL:$1|jest $1 wywołanie|są $1 wywołania|jest $1 wywołań}}.",
        "special-characters-group-khmer": "Khmerskie",
        "special-characters-title-endash": "półpauza",
        "special-characters-title-emdash": "pauza",
-       "special-characters-title-minus": "minus"
+       "special-characters-title-minus": "minus",
+       "mw-widgets-titleinput-description-new-page": "strona jeszcze nie istnieje",
+       "mw-widgets-titleinput-description-redirect": "przekierowanie do $1"
 }
index 3a81bc4..e93576e 100644 (file)
        "special-characters-group-khmer": "Cambojano",
        "special-characters-title-endash": "hífen",
        "special-characters-title-emdash": "travessão",
-       "special-characters-title-minus": "sinal de subtração"
+       "special-characters-title-minus": "sinal de subtração",
+       "mw-widgets-titleinput-description-new-page": "a página ainda não existe.",
+       "mw-widgets-titleinput-description-redirect": "redirecionar para $1"
 }
index 9638138..6d9bd0c 100644 (file)
        "passwordreset": "Title of [[Special:PasswordReset]].\n{{Identical|Reset password}}",
        "passwordreset-text-one": "Text on [[Special:PasswordReset]] that appears when there is only one way of resetting the password.\n\n{{msg-mw|Passwordreset-text-many}} will be used, when there are multiple ways of resetting the password.",
        "passwordreset-text-many": "Text on [[Special:PasswordReset]] that appears when there are multiple ways of resetting the password.\n\nParameters:\n* $1 - the number of password reset routes\n\n{{msg-mw|Passwordreset-text-one}} will be used, when there is only one way of resetting the password.",
-       "passwordreset-legend": "{{Identical|Reset password}}",
        "passwordreset-disabled": "Used as error message in changing password.",
        "passwordreset-emaildisabled": "Used as error message in changing password when site's email feature is disabled.",
        "passwordreset-username": "{{Identical|Username}}",
        "resettokens-summary": "{{ignored}}",
        "resettokens-text": "Text on [[Special:ResetTokens]].",
        "resettokens-no-tokens": "Additional text on [[Special:ResetTokens]] if the user has no tokens.",
-       "resettokens-legend": "Form legend on [[Special:ResetTokens]].\n{{Identical|Reset token}}",
        "resettokens-tokens": "Form label on [[Special:ResetTokens]].\n{{Identical|Token}}",
        "resettokens-token-label": "Label for each checkbox on [[Special:ResetTokens]]. Parameters:\n* $1 - short information about the token (for example {{msg-mw|resettokens-watchlist-token}})\n* $2 - its current value",
        "resettokens-watchlist-token": "Label for watchlist token checkbox on [[Special:ResetTokens]] (see {{msg-mw|prefs-watchlist-token}} at [[Special:Preferences#mw-prefsection-watchlist]]).",
        "version-libraries": "Header on [[Special:Version]] above a table that lists installed external libraries and their version numbers.",
        "version-libraries-library": "Column header for the library's name\n{{Identical|Library}}",
        "version-libraries-version": "Column header for the library's version number\n{{Identical|Version}}",
+       "version-libraries-license": "Column header for the library's license",
+       "version-libraries-description": "Column header for the library's description",
+       "version-libraries-authors": "Column header for the library's authors",
        "redirect": "{{doc-special|Redirect}}\nThis means \"Redirect by file'''name''', user '''ID''', page '''ID''', or revision ID\".",
        "redirect-legend": "Legend of fieldset around input box in [[Special:Redirect]]",
        "redirect-text": "Inside fieldset for [[Special:Redirect]]",
        "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 acc8753..866b687 100644 (file)
        "special-characters-group-khmer": "Khmeră",
        "special-characters-title-endash": "linie de pauză (en dash)",
        "special-characters-title-emdash": "linie de pauză (em dash)",
-       "special-characters-title-minus": "semnul minus"
+       "special-characters-title-minus": "semnul minus",
+       "mw-widgets-titleinput-description-new-page": "pagina nu există încă",
+       "mw-widgets-titleinput-description-redirect": "redirecționare către $1"
 }
index 7d0cf38..5c36432 100644 (file)
        "yourdiff": "Differenze",
        "copyrightwarning": "Pe piacere vide ca tutte le condrebbute de {{SITENAME}} sonde considerete de essere rilasciete sotte 'a $2 (vide $1 pe le dettaglie).\nCe tu non ge vuè ca le condrebbute tue avènene ausete da otre o avènene cangete, non le scè mettènne proprie.<br />\nTu na promettere pure ca le cose ca scrive tu, sonde 'mbormaziune libbere o copiete da 'nu pubbleche dominie.<br />\n'''NON METTE' NISCIUNA FATJE CA JE' PROTETTE DA DERITTE SENZA PERMESSE!'''",
        "copyrightwarning2": "Pe piacere vide ca tutte le condrebbute de {{SITENAME}} ponne essere cangete, alterate o luvete da otre condrebbutore.\nCe tu non ge vuè ca quidde ca scrive avène cangete da tre, allore non scè scrivenne proprie aqquà.<br />\nTu ne stè promitte ca quidde ca scrive tu, o lè scritte cu 'u penziere tue o lè cupiate da risorse de pubbliche dominie o sembre robba libbere (vide $1 pe cchiù dettaglie).\n'''NO REGGISTRA' FATIJE CUPERTE DA 'U COPYRIGHT SENZA PERMESSE! NO FA STUDECARIE!'''",
+       "editpage-cannot-use-custom-model": "'U modelle de condenute de sta pàgene non ge pò essere cangiate.",
        "longpageerror": "'''ERRORE: 'U teste ca tu vuè ccu reggistre è luenghe {{PLURAL:$1|'nu kilobyte|$1 kilobyte}}, invece 'u limite massime jè de {{PLURAL:$2|'nu kilobyte|$2 kilobyte}}.'''\nNon ge puè reggistrà sta pàggene.",
        "readonlywarning": "'''FA ATTENZIO': 'U database ha state bloccate pe manutenzione, e allore tu non ge puè reggistrà le cangiaminde ca ste face mò.'''\nTu puè fa 'na bella cose, tagghie e 'nzicche le cangiaminde jndr'à 'nu file de teste sus a 'u combiuter tune e pò cchiù tarde le reggistre sus 'a Uicchi.\n\nL'amministratore ca ha bloccate 'u database ha date stu mutive: $1",
        "protectedpagewarning": "'''ATTENZIO': Sta pàgene ha state bloccate e allore sulamende le utinde cu le privilegge de ''sysop'' ponne cangiarle.'''\nL'urteme archivie de le trasute ha state previste aqquà sotte pe referimende:",
        "content-model-css": "CSS",
        "content-json-empty-object": "Oggette vacande",
        "content-json-empty-array": "Matrice vacande",
+       "duplicate-args-warning": "<strong>Attenziò:</strong> [[:$1]] ste chiame [[:$2]] cu cchiù de 'nu valore pu parametre \"$3\". Sulamende l'urteme valore date avène ausate.",
        "duplicate-args-category": "Pàggene ca ausane le argumende a doppie jndr'à le chiamate d'u template",
        "duplicate-args-category-desc": "'A pàgene téne chiamate a template ca ausane arguminde a doppie, cumme <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Fà attenziò: Sta vosce tène 'nu sbuenne de funziune de chiamate a l'analizzatore.\n\nAvessere a essere mene de $2 {{PLURAL:$2|chiamate|chiamate}}, 'nvece mò {{PLURAL:$1|ste $1 chiamate|ne stonne $1 chiamate}}.",
        "uploaded-script-svg": "Acchiate elemende pe script \"$1\" jndr'à 'u file SVG carecate.",
        "uploaded-hostile-svg": "Acchiate 'nu CSS insecure ndr'à l'elemende de stile d'u file SVG carecate.",
        "uploaded-event-handler-on-svg": "'A 'mbostazione de le attribute de gestione de l'evende <code>$1=\"$2\"</code> non ge se pò ffà cu le file SVG.",
+       "uploaded-href-attribute-svg": "le attribbute href <code>&lt;$1 $2=\"$3\"&gt;</code> cu le destinaziune de fore (p.e. http://, javascript:, etc) non ge se ponne mettere jndr'à le file SVG.",
        "uploadscriptednamespace": "Stu file SVG tène 'nu namespace illegale '$1'",
        "uploadinvalidxml": "L'XML jndr'à 'u file carecate non ge pò essere analizzate.",
        "uploadvirus": "Alanga toje, 'u file condiene 'nu virus! Dettaglie: $1",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "trattine en",
        "special-characters-title-emdash": "trattine em",
-       "special-characters-title-minus": "segne mene"
+       "special-characters-title-minus": "segne mene",
+       "mw-widgets-titleinput-description-new-page": "'a pàgene non g'esiste angore",
+       "mw-widgets-titleinput-description-redirect": "redirezionate sus a $1"
 }
index e593b4d..9c50242 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ý?",
        "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Rozdiely",
        "prefs-help-prefershttps": "Táto voľba sa prejaví pri vašom ďalšom prihlásení.",
-       "email-address-validity-valid": "Formát e-mailovej adresa vyzerá byť správny",
+       "prefswarning-warning": "Vykonali ste zmeny v nastaveniach, ktoré zatiaľ nie sú uložené. Ak túto stránku opustíte bez kliknutia na „$1“, vaše nastavenia sa neaktualizujú.",
+       "email-address-validity-valid": "Formát e-mailovej adresy sa zdá byť správny",
        "email-address-validity-invalid": "Zadajte platnú e-mailovú adresu",
        "userrights": "Spravovanie používateľských práv",
        "userrights-lookup-user": "Spravovať skupiny používateľov",
        "right-browsearchive": "Hľadať v zmazaných stránkach",
        "right-undelete": "Obnoviť zmazanú stránku",
        "right-suppressrevision": "Kontrolovať a obnovovať revízie skryté správcom",
+       "right-viewsuppressed": "Zobrazovať revízie skryté pred všetkými používateľmi",
        "right-suppressionlog": "Zobrazovať súkromné záznamy",
        "right-block": "Blokovať ostatných používateľov",
        "right-blockemail": "Zablokovať používateľovi posielanie emailu",
        "right-protect": "Meniť úroveň zamknutia a upravovať kaskádovito zamknuté stránky",
        "right-editprotected": "Upravovať stránky zamknuté ako „{{int:protect-level-sysop}}“",
        "right-editsemiprotected": "Upravovať stránky zamknuté ako „{{int:protect-level-autoconfirmed}}“",
+       "right-editcontentmodel": "Upravovať model obsahu stránky",
        "right-editinterface": "Upravovať správy používateľského rozhrania",
        "right-editusercssjs": "Upravovať CSS a JS súbory ostatných používateľov",
        "right-editusercss": "Upravovať CSS súbory ostatných používateľov",
        "action-viewmywatchlist": "zobraziť zoznam sledovaných stránok",
        "action-viewmyprivateinfo": "zobraziť vaše súkromné údaje",
        "action-editmyprivateinfo": "upraviť vaše súkromné údaje",
+       "action-editcontentmodel": "upraviť model obsahu stránky",
        "action-managechangetags": "vytvorte a odstráňte značky z databázy",
        "nchanges": "$1 {{PLURAL:$1|úprava|úpravy|úprav}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|od poslednej návštevy}}",
        "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.",
        "unusedimages": "Nepoužité obrázky",
        "wantedcategories": "Žiadané kategórie",
        "wantedpages": "Žiadané stránky",
+       "wantedpages-summary": "Zoznam neexistujúcich stránok, na ktoré smeruje najviac odkazov, s výnimkou stránok, na ktoré odkazujú len presmerovania. Pre zoznam neexistujúcich stránok, na ktoré odkazujú presmerovania, pozri [[{{#special:BrokenRedirects}}|zoznam pokazených presmerovaní]].",
        "wantedpages-badtitle": "Neplatný názov vo výsledkoch: $1",
        "wantedfiles": "Žiadané súbory",
        "wantedfiletext-cat": "Nasledovné súbory sa používajú, ale nie sú k dispozícii. Súbory z cudzích repozitárov môžu byť uvedené aj napriek tomu, že existujú. Takéto falošné poplachy budú <del>prečiarknuté</del>. Okrem toho stránky, ktoré obsahujú vložené súbory, ktoré nie sú k dispozícii sú uvedené na [[:$1]].",
        "deadendpagestext": "Nasledujúce stránky neodkazujú na žiadne iné stránky na {{GRAMMAR:lokál|{{SITENAME}}}}.",
        "protectedpages": "Zamknuté stránky",
        "protectedpages-indef": "Zamknutia iba na neurčito",
+       "protectedpages-summary": "Táto stránka obsahuje zoznam existujúcich stránok, ktoré sú momentálne zamknuté. Zoznam názvov zamknutých proti vytvoreniu nájdete na stránke [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "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-performer": "Zamkol",
        "protectedpages-params": "Nastavenie zámku",
        "protectedpages-reason": "Dôvod",
        "protectedpages-unknown-timestamp": "Neznáme",
        "protectedpages-unknown-performer": "Neznámy redaktor",
        "protectedtitles": "Zamknuté názvy",
+       "protectedtitles-summary": "Táto stránka obsahuje zoznam názvov, ktoré sú momentálne zamknuté proti vytvoreniu. Zoznam existujúcich zamknutých stránok nájdete na stránke [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Tieto parametre momentálne nezamykajú žiadne názvy stránok.",
        "listusers": "Zoznam používateľov",
        "listusers-editsonly": "Vynechať používateľov bez úprav",
        "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 6a47a44..903bce1 100644 (file)
        "yourdiff": "Primerjava",
        "copyrightwarning": "Vsi prispevki k {{GRAMMAR:dajalnik|{{SITENAME}}}} se obravnavajo kot objave pod pogoji $2 (za podrobnosti glej $1). Če niste pripravljeni na neusmiljeno urejanje in prosto razširjanje vašega gradiva, ga ne prispevajte.<br />\nPoleg tega zagotavljate, da ste prispevke napisali oziroma ustvarili sami ali pa prepisali iz javno dostopnega ali podobnega prostega vira.\n'''Ne dodajajte avtorsko zaščitenega dela brez dovoljenja!'''",
        "copyrightwarning2": "Vedite, da lahko drugi urejevalci urejajo, spremenijo ali odstranijo kateri koli prispevek k {{GRAMMAR:dajalnik|{{SITENAME}}}}.\nČe niste pripravljeni na neusmiljeno urejanje svojega gradiva, ga ne objavljajte tukaj.<br />\nPoleg tega jamčite, da ste prispevke napisali oziroma ustvarili sami ali pa prepisali iz vira v javni lasti ali podobnega prostega vira (za podrobnosti glej $1).\n'''Ne objavljajte avtorsko zaščitenega gradiva brez dovoljenja!'''",
+       "editpage-cannot-use-custom-model": "Modela vsebine strani ni mogoče spremeniti.",
        "longpageerror": "'''Napaka: Predloženo besedilo je dolgo $1 {{PLURAL:$1|kilobajt|kilobajta|kilobajte|kilobajtov}}, s čimer presega največjo dovoljeno dolžino $2 {{PLURAL:$2|kilobajta|kilobajtov|kilobajtov|kilobajtov}}.'''\nZato ga ni mogoče shraniti.",
        "readonlywarning": "<strong>Opozorilo: Zbirka podatkov je zaradi vzdrževanja začasno zaklenjena, kar pomeni, da sprememb trenutno ne morete shraniti.</strong>\nProsimo, prenesite besedilo v urejevalnik in ga dodajte pozneje.\n\nSistemski skrbnik, ki jo je zaklenil, je podal naslednjo razlago: $1",
        "protectedpagewarning": "'''Opozorilo: Stran je bila zaklenjena in jo lahko urejajo le uporabniki z administratorskimi pravicami.'''\nZadnji vnos v dnevnik je naveden spodaj:",
        "special-characters-group-khmer": "Kmerski",
        "special-characters-title-endash": "navaden pomišljaj",
        "special-characters-title-emdash": "dolgi pomišljaj",
-       "special-characters-title-minus": "znak za minus"
+       "special-characters-title-minus": "znak za minus",
+       "mw-widgets-titleinput-description-new-page": "stran še ne obstaja",
+       "mw-widgets-titleinput-description-redirect": "preusmeritev na $1"
 }
index 7061a50..89f4154 100644 (file)
        "special-characters-group-gujarati": "гуџарати",
        "special-characters-group-thai": "тајландски",
        "special-characters-group-lao": "лаоски",
-       "special-characters-group-khmer": "кмерски"
+       "special-characters-group-khmer": "кмерски",
+       "mw-widgets-titleinput-description-new-page": "страница још увек не постоји",
+       "mw-widgets-titleinput-description-redirect": "преусмерава на $1"
 }
index c42aa89..a341526 100644 (file)
        "yourdiff": "Skillnader",
        "copyrightwarning": "Observera att alla bidrag till {{SITENAME}} är att betrakta som utgivna under $2 (se $1 för detaljer). Om du inte vill att din text ska redigeras eller kopieras efter andras gottfinnande skall du inte skriva något här.<br />\nDu lovar oss också att du skrev texten själv, eller kopierade från kulturellt allmängods som inte skyddas av upphovsrätt, eller liknande källor. '''LÄGG INTE UT UPPHOVSRÄTTSSKYDDAT MATERIAL HÄR UTAN TILLÅTELSE!'''",
        "copyrightwarning2": "Observera att alla bidrag till {{SITENAME}} kan komma att redigeras, ändras, eller tas bort av andra deltagare. Om du inte vill se din text förändrad efter andras gottfinnade skall du inte skriva in någon text här.<br />\nDu lovar oss också att du skrev texten själv, eller kopierade från kulturellt allmängods som inte skyddas av upphovsrätt, eller liknande källor - se $1 för detaljer.\n'''LÄGG INTE UT UPPHOVSRÄTTSSKYDDAT MATERIAL HÄR UTAN TILLÅTELSE!'''",
+       "editpage-cannot-use-custom-model": "Innehållsmodellen för denna sida kan inte ändras.",
        "longpageerror": "'''FEL: Texten som du försöker spara är {{PLURAL:$1|en kilobyte|$1 kilobyte}}, vilket är mer än det maximalt tillåtna {{PLURAL:$2|en kilobyte|$2 kilobyte}}.'''\nDen kan inte sparas.",
        "readonlywarning": "'''VARNING: Databasen är tillfälligt låst för underhåll. Du kommer inte att kunna spara dina ändringar just nu.\nDet kan vara klokt att kopiera texten till ett textdokument som sparas på din dator tills vidare.'''\n\nAdministratören som låste databasen gav följande förklaring: $1",
        "protectedpagewarning": "'''Varning: Den här sidan har låsts så att bara användare med administratörsrättigheter kan redigera den.'''\nDen senaste loggposten tillhandahålls nedan som referens:",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "tankstreck",
        "special-characters-title-emdash": "långt tankstreck",
-       "special-characters-title-minus": "minustecken"
+       "special-characters-title-minus": "minustecken",
+       "mw-widgets-titleinput-description-new-page": "sidan existerar inte ännu",
+       "mw-widgets-titleinput-description-redirect": "omdirigerar till $1"
 }
index 3ec0241..f1b5c3f 100644 (file)
        "yourdiff": "Відмінності",
        "copyrightwarning": "Зверніть увагу, що будь-які додавання і зміни до {{grammar:genitive|{{SITENAME}}}} розглядаються як випущені на умовах ліцензії $2 (детальніше див. $1).\nЯкщо ви не бажаєте, щоб написане вами безжально редагувалось і розповсюджувалося за бажанням будь-кого, не пишіть тут.<br />\nВи також підтверджуєте, що написане вами тут належить вам або взяте з джерела, що є суспільним надбанням чи подібного вільного джерела.\n'''Не публікуйте тут без дозволу матеріали, захищені авторським правом!'''",
        "copyrightwarning2": "Будь ласка, зверніть увагу, що всі зміни, внесені вами до {{SITENAME}}, можуть редагуватися, доповнюватися або вилучатися іншими користувачами.\nЯкщо ви не бажаєте, щоб написане вами безжально редагувалось — не пишіть тут.<br />\nВи також підтверджуєте, що наведене тут написано вами особисто або запозичено з джерела, яке є суспільним надбанням, або подібного вільного джерела (див. $1).<br />\n'''Не публікуйте тут без дозволу матеріали, захищені авторським правом!'''",
+       "editpage-cannot-use-custom-model": "Модель вмісту цієї сторінки не може бути змінена.",
        "longpageerror": "'''Помилка: Поданий вами текст становить $1 {{PLURAL:$1|кілобайт|кілобайти|кілобайтів}}, що більше за встановлену межу у {{PLURAL:$2|кілобайт|кілобайти|кілобайтів}}.'''\nЙого неможливо зберегти.",
        "readonlywarning": "'''Попередження: База даних заблокована на обслуговування, тому, на даний момент, ви не можете записати ваші зміни.\nМожливо, вам варто скопіювати текст у файл на вашому комп'ютері й зберегти його на пізніше.'''\n\nАдміністратор, що заблокував базу даних, залишив наступне пояснення: $1",
        "protectedpagewarning": "'''Попередження: Ця сторінка була захищена від змін так, що тільки користувачі з правами адміністратора можуть її редагувати.'''\nОстанній запис журналу наведений нижче для довідки:",
        "badsig": "Неправильний підпис.\nПеревірте коректність HTML-тегів.",
        "badsiglength": "Ваш підпис дуже довгий.\nПовинно бути не більше $1 {{PLURAL:$1|символу|символів|символів}}.",
        "yourgender": "Стать:",
-       "gender-unknown": "Ð\9dе Ð²Ð¸Ð·Ð½Ð°Ñ\87ена",
+       "gender-unknown": "Ð\97гадÑ\83Ñ\8eÑ\87и Ð\92аÑ\81, Ð¿Ñ\80огÑ\80амне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ\87еннÑ\8f Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82овÑ\83ваÑ\82име Ð¿Ð¾ Ð·Ð¼Ð¾Ð·Ñ\96 Ð³ÐµÐ½Ð´ÐµÑ\80но Ð½ÐµÐ¹Ñ\82Ñ\80алÑ\8cнÑ\96 Ñ\81лова",
        "gender-male": "Чоловіча",
        "gender-female": "Жіноча",
        "prefs-help-gender": "Задання цього параметру — необов'язкове. Застосовується рушієм у тих звертаннях до користувача, які залежать від статі.\nЦя інформація загальнодоступна.",
        "nmembers": "$1 {{PLURAL:$1|об'єкт|об'єкти|об'єктів}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|член|члени|членів}}",
        "nrevisions": "$1 {{PLURAL:$1|версія|версії|версій}}",
-       "nviews": "$1 {{PLURAL:$1|перегляд|перегляди|переглядів}}",
        "nimagelinks": "Використовується на $1 {{PLURAL:$1|1=сторінці|сторінках}}",
        "ntransclusions": "використовується на $1 {{PLURAL:$1|1=сторінці|сторінках}}",
        "specialpage-empty": "Запит не дав результатів.",
        "special-characters-group-khmer": "Кхмерські",
        "special-characters-title-endash": "коротке тире",
        "special-characters-title-emdash": "довге тире",
-       "special-characters-title-minus": "мінус"
+       "special-characters-title-minus": "мінус",
+       "mw-widgets-titleinput-description-new-page": "сторінка ще не існує",
+       "mw-widgets-titleinput-description-redirect": "перенаправлення на $1"
 }
index 101e5e4..7b1b65d 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": "'''警告:本页面已被保护,只有拥有管理员权限的用户可以编辑。'''下面提供最后的日志条目以供参考:",
        "watchlistedit-normal-done": "已从你的监视列表删除$1个标题:",
        "watchlistedit-raw-title": "编辑原始监视列表",
        "watchlistedit-raw-legend": "编辑原始监视列表",
-       "watchlistedit-raw-explain": "æ\82¨ç\9a\84ç\9b\91è§\86å\88\97表中ç\9a\84æ \87é¢\98å\9c¨ä¸\8bé\9d¢æ\98¾ç¤ºï¼\8cå\90\8cæ\97¶ä¹\9få\8f¯ä»¥å\8f¯ä»¥é\80\9aè¿\87ç¼\96è¾\91è¿\99个表å\8e»å\8a å\85¥ä»¥å\8f\8a移é\99¤æ \87é¢\98ï¼\9bä¸\80è¡\8cä¸\80个æ \87é¢\98ã\80\82å½\93å®\8cæ\88\90以å\90\8eï¼\8cç\82¹å\87»{{int:Watchlistedit-raw-submit}}ã\80\82æ\82¨ä¹\9få\8f¯ä»¥ä½¿ç\94¨[[Special:EditWatchlist|标准编辑器]]。",
+       "watchlistedit-raw-explain": "æ\82¨ç\9a\84ç\9b\91è§\86å\88\97表中ç\9a\84æ \87é¢\98å\9c¨ä¸\8bé\9d¢æ\98¾ç¤ºï¼\8c并å\8f¯é\80\9aè¿\87ç¼\96è¾\91此表以添å\8a æ\88\96移é\99¤æ \87é¢\98ï¼\9bæ¯\8fè¡\8cä¸\80个æ \87é¢\98ã\80\82å½\93å®\8cæ\88\90以å\90\8eï¼\8cç\82¹å\87»â\80\9c{{int:Watchlistedit-raw-submit}}â\80\9dã\80\82æ\82¨ä¹\9få\8f¯ä»¥[[Special:EditWatchlist|使ç\94¨标准编辑器]]。",
        "watchlistedit-raw-titles": "标题:",
        "watchlistedit-raw-submit": "更新监视列表",
        "watchlistedit-raw-done": "您的监视列表已经更新。",
        "special-characters-group-khmer": "高棉语字母",
        "special-characters-title-endash": "短划线",
        "special-characters-title-emdash": "长划线",
-       "special-characters-title-minus": "减号"
+       "special-characters-title-minus": "减号",
+       "mw-widgets-titleinput-description-new-page": "页面不存在",
+       "mw-widgets-titleinput-description-redirect": "重定向至$1"
 }
index 6fda808..e553b7f 100644 (file)
@@ -84,7 +84,7 @@ $specialPageAliases = array(
        'Mostlinkedcategories'      => array( 'Najviše_povezane_kategorije' ),
        'Mostlinkedtemplates'       => array( 'Najviše_povezani_šabloni' ),
        'Mostrevisions'             => array( 'Najviše_uređivane_stranice' ),
-       'Movepage'                  => array( 'PreusmjeriStranicu' ),
+       'Movepage'                  => array( 'Premjesti_stranicu', 'PreusmjeriStranicu' ),
        'Mycontributions'           => array( 'MojiDoprinosi' ),
        'Mypage'                    => array( 'MojaStranica' ),
        'Mytalk'                    => array( 'MojRazgovor' ),
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 b7fe80b..3e86d8a 100644 (file)
@@ -31,7 +31,7 @@ class ConvertExtensionToRegistration extends Maintenance {
         * @var array
         */
        protected $noLongerSupportedGlobals = array(
-               'SpecialPageGroups' => 'deprecated',
+               'SpecialPageGroups' => 'deprecated', // Deprecated 1.21, removed in 1.26
        );
 
        /**
index 6f2dd39..a3ea91c 100644 (file)
@@ -58,7 +58,9 @@
 堂姊 堂姐
 學姊 学姐
 乾姊 干姐
+清澈 清澈 #分詞用
 澈底 彻底
+仲介 中介
 卯足 铆足
 逕庭 径庭
 逕到 径到
@@ -2662,8 +2664,8 @@ A型肝炎        甲型肝炎
 電腦程式   计算机程序
 應用程式   应用程序
 雷射 激光
-鱼雷射      鱼雷射
-魚雷射      鱼雷射
+鱼雷 鱼雷 #分詞用
+魚雷 鱼雷
 尖峰時間   高峰时间
 尖峰時段   高峰时段
 咖哩 咖喱
index 6e3a7b5..61ffc4d 100644 (file)
 冲着 衝著
 干着 幹著
 干着急      干著急
+对着干      對著幹
 斗着 鬥著
 面包着      面包著
 徵狀 症狀
index 464f455..bc4bff8 100644 (file)
 乾村沙
 乾暖
 乾料
-乾敲梆子不賣油
 乾支支
 乾支剌
 乾擦
 幹人
 乾產
 乾喬
-夯幹
 大目乾連
 國之楨榦
 唇乾
 顛乾倒坤
 強幹
 乾眼
-幹的停當
 井幹
 乾巴
 偎乾
 臧穀亡羊
 種穀
 颳雪
-刮風下雪倒便宜
 广部
-亂鬨不過來
+亂鬨
 斗鬨
-亂鬨
 開鬨
 花鬨
 鬨動
 印纍綬若
 灕湘
 灕然
¾¤æ»²ç\81\95è\80\8cä¸\8bé\99\8d
»²ç\81\95
 裏勾外連
 水里溪
 二里頭
 擀麵
 過水麵
 蕎麥麵
-巧婦做不得無麵餺飥
 削麵
 小米麵
 壯麵
 麵點師
 麵點、
 、麵點
+麵製品
 冷面相
 糞穢衊面
 僕僕
 鬆元音
 鬆喉
 鬆化
+很鬆
 囉囉囌囌
 囉囌
 骨罈
 幹事
 幹什麼
 幹細胞
-配水幹管
 口燥唇乾
 舌乾唇焦
 不食乾腊
 乾物
 乾食
 乾鍋
+自乾五
+不乾膠
 楨幹
 新幹縣
 誰幹的
+他幹的
+們幹的
+人幹的
+幹的事
+幹的好事
 得力幹將
 黑幹將
 的幹將
+幹大事
+對着幹
 李連杰
 周杰
 杰倫
 鬥獸
 鬥龍
 鬥勇
+鬥狗
+鬥蛐
+鬥垮
+鬥敗
 石樑
 木樑
 藏歷史
 母醜
 一齣子
 齣兒
-獃串了皮
-占便宜的是獃
 丰標
 丰姿
 丰韻
 仲裁制
 獨裁制
 恒生
+恒基
+恒隆
 嚴云農
 伊東怜
 衛後莊公
 留長髮
 髮披肩
 髮及腰
+飄髮自由女神
 後天
 學家
 游離
 誇稱
 誇讚
 讚嘆
-繼承制
 布穀鳥
 黎克特制
 筆桿
 麻將蓆
 被廢後
 蒸製
+烹製
 體徵
 綜合徵
 价川
 菜餚
 梁啓超
 改制成
+王添灯
index d75c8a1..f7a0531 100644 (file)
@@ -1735,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',
@@ -1745,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 2d68457..db983a7 100644 (file)
 // Button styling
 // ----------------------------------------------------------------------------
 
-.button-colors(@bgColor) {
+.button-colors(@bgColor, @highlightColor) {
        background: @bgColor;
 
        &:hover {
                // The inner bottom bevel should match the active background color.
                box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%);
-               border-bottom-color: mix(#000, @bgColor, 20%);
+               border-bottom-color: @highlightColor;
        }
 
        &:focus {
 
        &:active,
        &.mw-ui-checked {
-               // lessphp doesn't implement shade (https://github.com/leafo/lessphp/issues/528);
-               // it passes it through, then ResourceLoader drops it.
-               // background: shade(@bgColor, 20%);
-               background: mix(#000, @bgColor, 20%);
+               background: @highlightColor;
                box-shadow: none;
        }
 }
 
-.button-colors(@bgColor) when (lightness(@bgColor) >= 70%) {
+.button-colors(@bgColor, @highlightColor) when (lightness(@bgColor) >= 70%) {
        color: @colorButtonText;
        border: 1px solid @colorGray12;
 
@@ -86,7 +83,7 @@
        }
 }
 
-.button-colors(@bgColor) when (lightness(@bgColor) < 70%) {
+.button-colors(@bgColor, @highlightColor) when (lightness(@bgColor) < 70%) {
        color: #fff;
        // border of the same color as background so that light background and
        // dark background buttons are the same height and width
        }
 }
 
-.button-colors-quiet(@textColor) {
+.button-colors-quiet(@textColor, @highlightColor) {
        // Quiet buttons all start gray, and reveal
        // constructive/progressive/destructive color on hover and active.
        color: @colorButtonText;
 
        &:active,
        &.mw-ui-checked {
-               // lessphp doesn't implement shade, see above
-               // color: shade(@textColor, 20%);
-               color: mix(#000, @textColor, 20%);
+               color: @highlightColor;
        }
 
        &:disabled {
index f6bf382..8ffc6ed 100644 (file)
 // Semantic background colors
 // Blue; for contextual use of a continuing action
 @colorProgressive: #347bff;
+@colorProgressiveHighlight: #2962CC;
 // Green; for contextual use of a positive finalizing action
 @colorConstructive: #00af89;
+@colorConstructiveHighlight: #008C6D;
 // Orange; for contextual use of returning to a past action
 @colorRegressive: #FF5D00;
 // Red; for contextual use of a negative action of high severity
 @colorDestructive: #d11d13;
+@colorDestructiveHighlight: #A7170F;
 // Orange; for contextual use of a potentially negative action of medium severity
 @colorMediumSevere: #FF5D00;
 // Yellow; for contextual use of a potentially negative action of low severity
@@ -41,6 +44,7 @@
 @colorText: @colorGray2;
 @colorTextLight: @colorGray6;
 @colorButtonText: @colorGray5;
+@colorButtonTextHighlight: @colorGray7;
 @colorDisabledText: @colorGray12;
 @colorErrorText: #CC0000;
 
index 9c59fc1..cbc97ab 100644 (file)
@@ -194,11 +194,14 @@ code {
        padding: 1px 4px;
 }
 
-pre, .mw-code {
+pre,
+.mw-code {
        color: black;
        background-color: #f9f9f9;
        border: 1px solid #ddd;
        padding: 1em;
+       /* Wrap lines in overflow. T2260, T103780 */
+       white-space: pre-wrap;
 }
 
 /* Tables */
index b4efa9a..5b259e7 100644 (file)
@@ -1,7 +1,8 @@
 /*!
  * Styling for Special:Version
  */
-.mw-version-ext-name {
+.mw-version-ext-name,
+.mw-version-library-name {
        font-weight: bold;
 }
 
index f88f3ee..53e13b7 100644 (file)
@@ -47,7 +47,7 @@
        zoom: 1;
 
        // Container styling
-       .button-colors(#FFF);
+       .button-colors(#FFF, #CCC);
        border-radius: @borderRadius;
        min-width: 4em;
 
        // Styleguide 2.1.1.
        &.mw-ui-progressive,
        &.mw-ui-primary {
-               .button-colors(@colorProgressive);
+               .button-colors(@colorProgressive, @colorProgressiveHighlight);
 
                &.mw-ui-quiet {
-                       .button-colors-quiet(@colorProgressive);
+                       .button-colors-quiet(@colorProgressive, @colorProgressiveHighlight);
                }
        }
 
        //
        // Styleguide 2.1.2.
        &.mw-ui-constructive {
-               .button-colors(@colorConstructive);
+               .button-colors(@colorConstructive, @colorConstructiveHighlight);
 
                &.mw-ui-quiet {
-                       .button-colors-quiet(@colorConstructive);
+                       .button-colors-quiet(@colorConstructive, @colorConstructiveHighlight);
                }
        }
 
        //
        // Styleguide 2.1.3.
        &.mw-ui-destructive {
-               .button-colors(@colorDestructive);
+               .button-colors(@colorDestructive, @colorDestructiveHighlight);
 
                &.mw-ui-quiet {
-                       .button-colors-quiet(@colorDestructive);
+                       .button-colors-quiet(@colorDestructive, @colorDestructiveHighlight);
                }
        }
 
                background: transparent;
                border: none;
                text-shadow: none;
-               .button-colors-quiet(@colorButtonText);
+               .button-colors-quiet(@colorButtonText, @colorButtonTextHighlight);
 
                &:hover,
                &:focus {
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 26b2f5d..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[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 ) );
index ec3c0c3..2c88e93 100644 (file)
 
                        /**
                         * Write a message the console's warning channel.
-                        * Also logs a stacktrace for easier debugging.
                         * Actions not supported by the browser console are silently ignored.
                         *
                         * @param {string...} msg Messages to output to console
                                var console = window.console;
                                if ( console && console.warn && console.warn.apply ) {
                                        console.warn.apply( console, arguments );
-                                       if ( console.trace ) {
-                                               console.trace();
-                                       }
                                }
                        };
 
 
                                $.each( dependencies, function ( idx, module ) {
                                        var state = mw.loader.getState( module );
+                                       // Only queue modules that are still in the initial 'registered' state
+                                       // (not ones already loading, ready or error).
                                        if ( state === 'registered' && $.inArray( module, queue ) === -1 ) {
+                                               // Private modules must be embedded in the page. Don't bother queuing
+                                               // these as the server will deny them anyway (T101806).
+                                               if ( registry[module].group === 'private' ) {
+                                                       registry[module].state = 'error';
+                                                       handlePending( module );
+                                                       return;
+                                               }
                                                queue.push( module );
                                                if ( async ) {
                                                        registry[module].async = true;
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",
diff --git a/tests/phpunit/data/media/2_webp_a.webp b/tests/phpunit/data/media/2_webp_a.webp
new file mode 100644 (file)
index 0000000..8764f06
Binary files /dev/null and b/tests/phpunit/data/media/2_webp_a.webp differ
diff --git a/tests/phpunit/data/media/2_webp_ll.webp b/tests/phpunit/data/media/2_webp_ll.webp
new file mode 100644 (file)
index 0000000..5794bbf
Binary files /dev/null and b/tests/phpunit/data/media/2_webp_ll.webp differ
diff --git a/tests/phpunit/data/media/webp_animated.webp b/tests/phpunit/data/media/webp_animated.webp
new file mode 100644 (file)
index 0000000..25c6a4d
Binary files /dev/null and b/tests/phpunit/data/media/webp_animated.webp differ
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 b5fd5f6..cac3b10 100644 (file)
@@ -27,34 +27,95 @@ class ComposerLockTest extends MediaWikiTestCase {
                        'wikimedia/cdb' => array(
                                'version' => '1.0.1',
                                'type' => 'library',
+                               'licenses' => array( 'GPL-2.0' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'Tim Starling',
+                                               'email' => 'tstarling@wikimedia.org',
+                                       ),
+                                       array(
+                                               'name' => 'Chad Horohoe',
+                                               'email' => 'chad@wikimedia.org',
+                                       ),
+                               ),
+                               'description' => 'Constant Database (CDB) wrapper library for PHP. Provides pure-PHP fallback when dba_* functions are absent.',
                        ),
                        'cssjanus/cssjanus' => array(
                                'version' => '1.1.1',
                                'type' => 'library',
+                               'licenses' => array( 'Apache-2.0' ),
+                               'authors' => array(),
+                               'description' => 'Convert CSS stylesheets between left-to-right and right-to-left.',
                        ),
                        'leafo/lessphp' => array(
                                'version' => '0.5.0',
                                'type' => 'library',
+                               'licenses' => array( 'MIT', 'GPL-3.0' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'Leaf Corcoran',
+                                               'email' => 'leafot@gmail.com',
+                                               'homepage' => 'http://leafo.net',
+                                       ),
+                               ),
+                               'description' => 'lessphp is a compiler for LESS written in PHP.',
                        ),
                        'psr/log' => array(
                                'version' => '1.0.0',
                                'type' => 'library',
+                               'licenses' => array( 'MIT' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'PHP-FIG',
+                                               'homepage' => 'http://www.php-fig.org/',
+                                       ),
+                               ),
+                               'description' => 'Common interface for logging libraries',
                        ),
                        'oojs/oojs-ui' => array(
                                'version' => '0.6.0',
                                'type' => 'library',
+                               'licenses' => array( 'MIT' ),
+                               'authors' => array(),
+                               'description' => '',
                        ),
                        'composer/installers' => array(
                                'version' => '1.0.19',
                                'type' => 'composer-installer',
+                               'licenses' => array( 'MIT' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'Kyle Robinson Young',
+                                               'email' => 'kyle@dontkry.com',
+                                               'homepage' => 'https://github.com/shama',
+                                       ),
+                               ),
+                               'description' => 'A multi-framework Composer library installer',
                        ),
                        'mediawiki/translate' => array(
                                'version' => '2014.12',
                                'type' => 'mediawiki-extension',
+                               'licenses' => array( 'GPL-2.0+' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'Niklas Laxström',
+                                               'email' => 'niklas.laxstrom@gmail.com',
+                                               'role' => 'Lead nitpicker',
+                                       ),
+                                       array(
+                                               'name' => 'Siebrand Mazeland',
+                                               'email' => 's.mazeland@xs4all.nl',
+                                               'role' => 'Developer',
+                                       ),
+                               ),
+                               'description' => 'The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software',
                        ),
                        'mediawiki/universal-language-selector' => array(
                                'version' => '2014.12',
                                'type' => 'mediawiki-extension',
+                               'licenses' => array( 'GPL-2.0+', 'MIT' ),
+                               'authors' => array(),
+                               'description' => 'The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.',
                        ),
                ), $lock->getInstalledDependencies(), false, true );
        }
diff --git a/tests/phpunit/includes/media/WebPTest.php b/tests/phpunit/includes/media/WebPTest.php
new file mode 100644 (file)
index 0000000..d36710a
--- /dev/null
@@ -0,0 +1,127 @@
+<?php
+class WebPHandlerTest extends MediaWikiTestCase {
+       public function setUp() {
+               parent::setUp();
+               // Allocated file for testing
+               $this->tempFileName = tempnam( wfTempDir(), 'WEBP' );
+       }
+       public function tearDown() {
+               parent::tearDown();
+               unlink( $this->tempFileName );
+       }
+       /**
+        * @dataProvider provideTestExtractMetaData
+        */
+       public function testExtractMetaData( $header, $expectedResult ) {
+               // Put header into file
+               file_put_contents( $this->tempFileName, $header );
+
+               $this->assertEquals( $expectedResult, WebPHandler::extractMetadata( $this->tempFileName ) );
+       }
+       public function provideTestExtractMetaData() {
+               return array(
+                       // Files from https://developers.google.com/speed/webp/gallery2
+                       array( "\x52\x49\x46\x46\x90\x68\x01\x00\x57\x45\x42\x50\x56\x50\x38\x4C\x83\x68\x01\x00\x2F\x8F\x01\x4B\x10\x8D\x38\x6C\xDB\x46\x92\xE0\xE0\x82\x7B\x6C",
+                               array( 'compression' => 'lossless', 'width' => 400, 'height' => 301 ) ),
+                       array( "\x52\x49\x46\x46\x64\x5B\x00\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x8F\x01\x00\x2C\x01\x00\x41\x4C\x50\x48\xE5\x0E",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 400, 'height' => 301) ),
+                       array( "\x52\x49\x46\x46\xA8\x72\x00\x00\x57\x45\x42\x50\x56\x50\x38\x4C\x9B\x72\x00\x00\x2F\x81\x81\x62\x10\x8D\x40\x8C\x24\x39\x6E\x73\x73\x38\x01\x96",
+                               array( 'compression' => 'lossless', 'width' => 386, 'height' => 395 ) ),
+                       array( "\x52\x49\x46\x46\xE0\x42\x00\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x81\x01\x00\x8A\x01\x00\x41\x4C\x50\x48\x56\x10",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 386, 'height' => 395 ) ),
+                       array( "\x52\x49\x46\x46\x70\x61\x02\x00\x57\x45\x42\x50\x56\x50\x38\x4C\x63\x61\x02\x00\x2F\x1F\xC3\x95\x10\x8D\xC8\x72\xDB\xC8\x92\x24\xD8\x91\xD9\x91",
+                               array( 'compression' => 'lossless', 'width' => 800, 'height' => 600 ) ),
+                       array( "\x52\x49\x46\x46\x1C\x1D\x01\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x1F\x03\x00\x57\x02\x00\x41\x4C\x50\x48\x25\x8B",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 800, 'height' => 600 ) ),
+                       array( "\x52\x49\x46\x46\xFA\xC5\x00\x00\x57\x45\x42\x50\x56\x50\x38\x4C\xEE\xC5\x00\x00\x2F\xA4\x81\x28\x10\x8D\x40\x68\x24\xC9\x91\xA4\xAE\xF3\x97\x75",
+                               array( 'compression' => 'lossless', 'width' => 421, 'height' => 163 ) ),
+                       array( "\x52\x49\x46\x46\xF6\x5D\x00\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\xA4\x01\x00\xA2\x00\x00\x41\x4C\x50\x48\x38\x1A",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 421, 'height' => 163 ) ),
+                       array( "\x52\x49\x46\x46\xC4\x96\x01\x00\x57\x45\x42\x50\x56\x50\x38\x4C\xB8\x96\x01\x00\x2F\x2B\xC1\x4A\x10\x11\x87\x6D\xDB\x48\x12\xFC\x60\xB0\x83\x24",
+                               array( 'compression' => 'lossless', 'width' => 300, 'height' => 300 ) ),
+                       array( "\x52\x49\x46\x46\x0A\x11\x01\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x2B\x01\x00\x2B\x01\x00\x41\x4C\x50\x48\x67\x6E",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 300, 'height' => 300 ) ),
+
+                       // Lossy files from https://developers.google.com/speed/webp/gallery1
+                       array( "\x52\x49\x46\x46\x68\x76\x00\x00\x57\x45\x42\x50\x56\x50\x38\x20\x5C\x76\x00\x00\xD2\xBE\x01\x9D\x01\x2A\x26\x02\x70\x01\x3E\xD5\x4E\x97\x43\xA2",
+                               array( 'compression' => 'lossy', 'width' => 550, 'height' => 368 ) ),
+                       array( "\x52\x49\x46\x46\xB0\xEC\x00\x00\x57\x45\x42\x50\x56\x50\x38\x20\xA4\xEC\x00\x00\xB2\x4B\x02\x9D\x01\x2A\x26\x02\x94\x01\x3E\xD1\x50\x96\x46\x26",
+                               array( 'compression' => 'lossy', 'width' => 550, 'height' => 404 ) ),
+                       array( "\x52\x49\x46\x46\x7A\x19\x03\x00\x57\x45\x42\x50\x56\x50\x38\x20\x6E\x19\x03\x00\xB2\xF8\x09\x9D\x01\x2A\x00\x05\xD0\x02\x3E\xAD\x46\x99\x4A\xA5",
+                               array( 'compression' => 'lossy', 'width' => 1280, 'height' => 720 ) ),
+                       array( "\x52\x49\x46\x46\x44\xB3\x02\x00\x57\x45\x42\x50\x56\x50\x38\x20\x38\xB3\x02\x00\x52\x57\x06\x9D\x01\x2A\x00\x04\x04\x03\x3E\xA5\x44\x96\x49\x26",
+                               array( 'compression' => 'lossy', 'width' => 1024, 'height' => 772) ),
+                       array( "\x52\x49\x46\x46\x02\x43\x01\x00\x57\x45\x42\x50\x56\x50\x38\x20\xF6\x42\x01\x00\x12\xC0\x05\x9D\x01\x2A\x00\x04\xF0\x02\x3E\x79\x34\x93\x47\xA4",
+                               array( 'compression' => 'lossy', 'width' => 1024, 'height' => 752) ),
+
+                       // Animated file from https://groups.google.com/a/chromium.org/d/topic/blink-dev/Y8tRC4mdQz8/discussion
+                       array( "\x52\x49\x46\x46\xD0\x0B\x02\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x12\x00\x00\x00\x3F\x01\x00\x3F\x01\x00\x41\x4E",
+                               array( 'compression' => 'unknown', 'animated' => true, 'transparency' => true, 'width' => 320, 'height' => 320 ) ),
+
+                       // Error cases
+                       array( '', false ),
+                       array( '                                    ', false ),
+                       array( 'RIFF                                ', false ),
+                       array( 'RIFF1234WEBP                        ', false ),
+                       array( 'RIFF1234WEBPVP8                     ', false ),
+                       array( 'RIFF1234WEBPVP8L                    ', false ),
+               );
+       }
+
+       /**
+        * @dataProvider provideTestWithFileExtractMetaData
+        */
+       public function testWithFileExtractMetaData( $filename, $expectedResult ) {
+               $this->assertEquals( $expectedResult, WebPHandler::extractMetadata( $filename ) );
+       }
+       public function provideTestWithFileExtractMetaData() {
+               return array(
+                               array( __DIR__ . '/../../data/media/2_webp_ll.webp',
+                                       array( 'compression' => 'lossless', 'width' => 386, 'height' => 395 ) ),
+                               array( __DIR__ . '/../../data/media/2_webp_a.webp',
+                                       array( 'compression' => 'lossy', 'animated' => false, 'transparency' => true, 'width' => 386, 'height' => 395 ) ),
+               );
+       }
+
+       /**
+        * @dataProvider provideTestGetImageSize
+        */
+       public function testGetImageSize( $path, $expectedResult ) {
+               $handler = new WebPHandler();
+               $this->assertEquals( $expectedResult, $handler->getImageSize( null, $path ) );
+       }
+       public function provideTestGetImageSize() {
+               return array(
+                       // Public domain files from https://developers.google.com/speed/webp/gallery2
+                       array( __DIR__ . '/../../data/media/2_webp_a.webp', array( 386, 395 ) ),
+                       array( __DIR__ . '/../../data/media/2_webp_ll.webp', array( 386, 395 ) ),
+                       array( __DIR__ . '/../../data/media/webp_animated.webp', array( 300, 225 ) ),
+
+                       // Error cases
+                       array( __FILE__, false ),
+               );
+       }
+
+       /**
+        * Tests the WebP MIME detection. This should really be a separate test, but sticking it
+        * here for now.
+        *
+        * @dataProvider provideTestGetMimeType
+        */
+       public function testGuessMimeType( $path ) {
+               $mime = MimeMagic::singleton();
+               $this->assertEquals( 'image/webp', $mime->guessMimeType( $path, false ) );
+       }
+       public function provideTestGetMimeType() {
+               return array(
+                               // Public domain files from https://developers.google.com/speed/webp/gallery2
+                               array( __DIR__ . '/../../data/media/2_webp_a.webp' ),
+                               array( __DIR__ . '/../../data/media/2_webp_ll.webp' ),
+                               array( __DIR__ . '/../../data/media/webp_animated.webp' ),
+               );
+       }
+}
+
+/* Python code to extract a header and convert to PHP format:
+ * print '"%s"' % ''.join( '\\x%02X' % ord(c) for c in urllib.urlopen(url).read(36) )
+ */
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 );
+       }
+}
index 83489c6..5482b97 100644 (file)
@@ -136,7 +136,7 @@ class SpecialSearchTest extends MediaWikiTestCase {
 
                # Compare :-]
                $this->assertRegExp(
-                       '/' . preg_quote( $term ) . '/',
+                       '/' . preg_quote( $term, '/' ) . '/',
                        $pageTitle,
                        "Search term '{$term}' should not be expanded in Special:Search <title>"
                );
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 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 );