Merge "Proper handling of invalid/unknown time zones"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 5 Jan 2017 15:11:02 +0000 (15:11 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 5 Jan 2017 15:11:02 +0000 (15:11 +0000)
384 files changed:
Gruntfile.js
RELEASE-NOTES-1.29
autoload.php
composer.json
docs/hooks.txt
includes/Block.php
includes/CategoryViewer.php
includes/DefaultSettings.php
includes/DerivativeRequest.php
includes/EditPage.php
includes/Hooks.php
includes/MediaWiki.php
includes/OutputPage.php
includes/Preferences.php
includes/Revision.php
includes/Sanitizer.php
includes/Title.php
includes/WebRequest.php
includes/actions/HistoryAction.php
includes/actions/RawAction.php
includes/api/ApiBase.php
includes/api/ApiClearHasMsg.php
includes/api/ApiMain.php
includes/api/ApiPageSet.php
includes/api/ApiSetPageLanguage.php [new file with mode: 0755]
includes/api/ApiUpload.php
includes/api/ApiUserrights.php
includes/api/i18n/br.json
includes/api/i18n/de.json
includes/api/i18n/diq.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/ja.json
includes/api/i18n/ko.json
includes/api/i18n/mk.json
includes/api/i18n/nb.json
includes/api/i18n/nl.json
includes/api/i18n/oc.json
includes/api/i18n/pl.json
includes/api/i18n/qqq.json
includes/api/i18n/ru.json
includes/api/i18n/sv.json
includes/api/i18n/ta.json
includes/api/i18n/zh-hans.json
includes/content/ContentHandler.php
includes/exception/MWContentSerializationException.php [new file with mode: 0644]
includes/exception/MWUnknownContentModelException.php [new file with mode: 0644]
includes/gallery/SlideshowImageGallery.php
includes/gallery/TraditionalImageGallery.php
includes/import/ImportStreamSource.php
includes/import/WikiImporter.php
includes/import/WikiRevision.php
includes/installer/i18n/bg.json
includes/installer/i18n/cs.json
includes/installer/i18n/diq.json
includes/installer/i18n/eu.json
includes/installer/i18n/fa.json
includes/installer/i18n/gl.json
includes/installer/i18n/hu.json
includes/installer/i18n/id.json
includes/installer/i18n/ko.json
includes/installer/i18n/ksh.json
includes/installer/i18n/lb.json
includes/installer/i18n/lki.json
includes/installer/i18n/nb.json
includes/installer/i18n/nl.json
includes/installer/i18n/oc.json
includes/installer/i18n/pms.json
includes/installer/i18n/pt.json
includes/json/FormatJson.php
includes/libs/rdbms/database/Database.php
includes/libs/rdbms/database/DatabaseMysqlBase.php
includes/libs/rdbms/database/DatabasePostgres.php
includes/libs/rdbms/lbfactory/LBFactoryMulti.php
includes/libs/rdbms/loadbalancer/LoadBalancer.php
includes/mail/MailAddress.php
includes/page/Article.php
includes/page/CategoryPage.php
includes/page/ImagePage.php
includes/page/WikiPage.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php
includes/search/SearchHighlighter.php
includes/specialpage/LoginSignupSpecialPage.php
includes/specialpage/SpecialPage.php
includes/specials/SpecialChangeCredentials.php
includes/specials/SpecialMIMEsearch.php
includes/specials/SpecialPageLanguage.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialTags.php
includes/specials/SpecialUnblock.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUserrights.php
includes/specials/pagers/NewFilesPager.php
includes/tidy/RaggettWrapper.php
includes/title/TitleValue.php
includes/user/User.php
languages/classes/LanguageIu.php
languages/classes/LanguageKk.php
languages/classes/LanguageShi.php
languages/classes/LanguageSr.php
languages/i18n/ar.json
languages/i18n/ary.json
languages/i18n/arz.json
languages/i18n/ast.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/bpy.json
languages/i18n/bqi.json
languages/i18n/br.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/cs.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dv.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/frr.json
languages/i18n/gl.json
languages/i18n/gsw.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hif-latn.json
languages/i18n/hr.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/inh.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jv.json
languages/i18n/ka.json
languages/i18n/ko.json
languages/i18n/ku-latn.json
languages/i18n/lb.json
languages/i18n/lez.json
languages/i18n/lij.json
languages/i18n/liv.json
languages/i18n/lo.json
languages/i18n/lt.json
languages/i18n/luz.json
languages/i18n/lv.json
languages/i18n/mk.json
languages/i18n/my.json
languages/i18n/nah.json
languages/i18n/nb.json
languages/i18n/nl.json
languages/i18n/oc.json
languages/i18n/or.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/ru.json
languages/i18n/sah.json
languages/i18n/sat.json
languages/i18n/sl.json
languages/i18n/sq.json
languages/i18n/sv.json
languages/i18n/ta.json
languages/i18n/te.json
languages/i18n/th.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/udm.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/yi.json
languages/i18n/yue.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesDsb.php
languages/messages/MessagesHsb.php
languages/messages/MessagesIo.php
languages/messages/MessagesNb.php
languages/messages/MessagesNn.php
languages/messages/MessagesPnt.php
languages/messages/MessagesRup.php [new file with mode: 0644]
maintenance/importDump.php
maintenance/populateInterwiki.php [new file with mode: 0644]
resources/Resources.php
resources/lib/oojs-ui/i18n/be.json
resources/lib/oojs-ui/i18n/hif-latn.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/tr.json
resources/lib/oojs-ui/i18n/tt-cyrl.json
resources/lib/oojs-ui/oojs-ui-apex.js
resources/lib/oojs-ui/oojs-ui-core-apex.css
resources/lib/oojs-ui/oojs-ui-core-mediawiki.css
resources/lib/oojs-ui/oojs-ui-core.js
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui-toolbars-apex.css
resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css
resources/lib/oojs-ui/oojs-ui-toolbars.js
resources/lib/oojs-ui/oojs-ui-widgets-apex.css
resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css
resources/lib/oojs-ui/oojs-ui-widgets.js
resources/lib/oojs-ui/oojs-ui-windows-apex.css
resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css
resources/lib/oojs-ui/oojs-ui-windows.js
resources/lib/oojs-ui/themes/apex/icons-interactions.json
resources/lib/oojs-ui/themes/apex/icons-moderation.json
resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.svg [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.svg [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.svg [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.svg [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.svg [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.svg [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.svg [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.svg [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/unBlock-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unBlock-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unBlock-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unBlock-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unFlag-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unFlag-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unFlag-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unFlag-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unTrash-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unTrash-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unTrash-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/unTrash-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json
resources/lib/oojs-ui/themes/mediawiki/icons-moderation.json
resources/lib/oojs-ui/themes/mediawiki/icons-wikimedia.json
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-progressive.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-progressive.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-progressive.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-progressive.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-progressive.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-progressive.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-progressive.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-progressive.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-progressive.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-progressive.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-progressive.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-progressive.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-progressive.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-progressive.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl.svg [new file with mode: 0644]
resources/src/jquery/jquery.tablesorter.js
resources/src/mediawiki.action/mediawiki.action.edit.stash.js
resources/src/mediawiki.legacy/shared.css
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterItem.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/mw.rcfilters.init.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/mw.rcfilters.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less [new file with mode: 0644]
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.less [new file with mode: 0644]
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterGroupWidget.less [new file with mode: 0644]
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterItemWidget.less [new file with mode: 0644]
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterWrapperWidget.less [new file with mode: 0644]
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FiltersListWidget.less [new file with mode: 0644]
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterGroupWidget.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterItemWidget.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js [new file with mode: 0644]
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FiltersListWidget.js [new file with mode: 0644]
resources/src/mediawiki.skinning/content.css
resources/src/mediawiki.skinning/elements.css
resources/src/mediawiki.special/mediawiki.special.apisandbox.css
resources/src/mediawiki.special/mediawiki.special.apisandbox.js
resources/src/mediawiki.ui/components/inputs.less
resources/src/mediawiki.widgets.datetime/DateTimeFormatter.js
resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js
resources/src/mediawiki.widgets.datetime/DiscordianDateTimeFormatter.js
resources/src/mediawiki.widgets.datetime/ProlepticGregorianDateTimeFormatter.js
resources/src/mediawiki/mediawiki.requestIdleCallback.js
resources/src/mediawiki/page/gallery-slideshow.js
resources/src/mediawiki/page/watch.js
tests/parser/parserTests.txt
tests/phan/bin/phan
tests/phan/config.php
tests/phpunit/includes/db/DatabaseMysqlBaseTest.php
tests/phpunit/includes/db/LBFactoryTest.php
tests/phpunit/includes/filerepo/FileBackendDBRepoWrapperTest.php
tests/phpunit/includes/filerepo/MigrateFileRepoLayoutTest.php
tests/phpunit/includes/specials/QueryAllSpecialPagesTest.php
tests/phpunit/includes/utils/BatchRowUpdateTest.php
tests/phpunit/maintenance/fetchTextTest.php
tests/qunit/QUnitTestResources.php
tests/qunit/suites/resources/jquery/jquery.tablesorter.parsers.test.js
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js
tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js [new file with mode: 0644]

index 55b7932..7b3af54 100644 (file)
@@ -14,7 +14,10 @@ module.exports = function ( grunt ) {
        grunt.loadNpmTasks( 'grunt-karma' );
        grunt.loadNpmTasks( 'grunt-stylelint' );
 
-       karmaProxy[ wgScriptPath ] = wgServer + wgScriptPath;
+       karmaProxy[ wgScriptPath ] = {
+               target: wgServer + wgScriptPath,
+               changeOrigin: true
+       };
 
        grunt.initConfig( {
                eslint: {
index 43f21ef..72c82de 100644 (file)
@@ -35,6 +35,8 @@ production.
   exceptions, largely so the API can handle them more sensibly.
 * Blocks created automatically by MediaWiki, such as for configured proxies or
   dnsbls, are now indicated as such and use a new i18n message when displayed.
+* Added new $wgHTTPImportTimeout setting. Sets timeout for
+  downloading the XML dump during a transwiki import in seconds.
 
 === External library changes in 1.29 ===
 
@@ -109,6 +111,16 @@ 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 Phabricator reports.
 
+* Based as always on linguistic studies on intelligibility and language
+  knowledge by geography, language fallbacks have been expanded. When a
+  translation is missing in the user's preferred interface language, the
+  corresponding translation for the fallback language will be used instead.
+  English will only be used as last resort when there are no translations.
+  Some configurations (such as date formats and gender namespaces) have also
+  been updated when using the fallback language's configuration was inadequate.
+  The new or reinstated language fallbacks are (after cs ↔ sk in 1.28):
+  hsb ↔ dsb, io → eo, mdf → ru, pnt → el, roa-tara → it.
+
 ==== No fallback for Ukrainian ====
 * (T39314) The fallback from Ukrainian to Russian was removed. The Ukrainian
   language will now use the default fallback language: English. When a translation
@@ -137,6 +149,14 @@ changes to languages because of Phabricator reports.
 * User::getTemporaryPassword() (deprecated in 1.27) was removed.
 * User::isPasswordReminderThrottled() (deprecated in 1.27) was removed.
 * FSRepo (deprecated in 1.19) was removed.
+* WebRequest::checkSessionCookie() (deprecated in 1.27) was removed. Use
+\MediaWiki\Session\SessionManager::singleton()->getPersistedSessionId() instead.
+* Class ImageGallery (deprecated in 1.22) was removed.
+  Use ImageGalleryBase::factory instead.
+* Title::moveNoAuth() (deprecated in 1.25) was removed. Use MovePage class instead.
+* Hook UnknownAction (deprecated in 1.19) was actually deprecated (it will now emit warnings).
+  Create a subclass of Action, and add it to $wgActions instead.
+* WikiRevision:getText() (deprecated since 1.21) is no longer marked deprecated.
 
 == Compatibility ==
 
index 38bf7cd..a38fca2 100644 (file)
@@ -139,6 +139,7 @@ $wgAutoloadLocalClasses = [
        'ApiRsd' => __DIR__ . '/includes/api/ApiRsd.php',
        'ApiSerializable' => __DIR__ . '/includes/api/ApiSerializable.php',
        'ApiSetNotificationTimestamp' => __DIR__ . '/includes/api/ApiSetNotificationTimestamp.php',
+       'ApiSetPageLanguage' => __DIR__ . '/includes/api/ApiSetPageLanguage.php',
        'ApiStashEdit' => __DIR__ . '/includes/api/ApiStashEdit.php',
        'ApiTag' => __DIR__ . '/includes/api/ApiTag.php',
        'ApiTokens' => __DIR__ . '/includes/api/ApiTokens.php',
@@ -608,7 +609,6 @@ $wgAutoloadLocalClasses = [
        'IdentityCollation' => __DIR__ . '/includes/collation/IdentityCollation.php',
        'ImageBuilder' => __DIR__ . '/maintenance/rebuildImages.php',
        'ImageCleanup' => __DIR__ . '/maintenance/cleanupImages.php',
-       'ImageGallery' => __DIR__ . '/includes/gallery/TraditionalImageGallery.php',
        'ImageGalleryBase' => __DIR__ . '/includes/gallery/ImageGalleryBase.php',
        'ImageHandler' => __DIR__ . '/includes/media/ImageHandler.php',
        'ImageHistoryList' => __DIR__ . '/includes/page/ImageHistoryList.php',
@@ -778,7 +778,7 @@ $wgAutoloadLocalClasses = [
        'LongPagesPage' => __DIR__ . '/includes/specials/SpecialLongpages.php',
        'MIMEsearchPage' => __DIR__ . '/includes/specials/SpecialMIMEsearch.php',
        'MWCallableUpdate' => __DIR__ . '/includes/deferred/MWCallableUpdate.php',
-       'MWContentSerializationException' => __DIR__ . '/includes/content/ContentHandler.php',
+       'MWContentSerializationException' => __DIR__ . '/includes/exception/MWContentSerializationException.php',
        'MWCryptHKDF' => __DIR__ . '/includes/utils/MWCryptHKDF.php',
        'MWCryptHash' => __DIR__ . '/includes/libs/MWCryptHash.php',
        'MWCryptRand' => __DIR__ . '/includes/utils/MWCryptRand.php',
@@ -799,7 +799,7 @@ $wgAutoloadLocalClasses = [
        'MWSaltedPassword' => __DIR__ . '/includes/password/MWSaltedPassword.php',
        'MWTidy' => __DIR__ . '/includes/parser/MWTidy.php',
        'MWTimestamp' => __DIR__ . '/includes/MWTimestamp.php',
-       'MWUnknownContentModelException' => __DIR__ . '/includes/content/ContentHandler.php',
+       'MWUnknownContentModelException' => __DIR__ . '/includes/exception/MWUnknownContentModelException.php',
        'MachineReadableRCFeedFormatter' => __DIR__ . '/includes/rcfeed/MachineReadableRCFeedFormatter.php',
        'MagicWord' => __DIR__ . '/includes/MagicWord.php',
        'MagicWordArray' => __DIR__ . '/includes/MagicWordArray.php',
@@ -1086,6 +1086,7 @@ $wgAutoloadLocalClasses = [
        'PopulateContentModel' => __DIR__ . '/maintenance/populateContentModel.php',
        'PopulateFilearchiveSha1' => __DIR__ . '/maintenance/populateFilearchiveSha1.php',
        'PopulateImageSha1' => __DIR__ . '/maintenance/populateImageSha1.php',
+       'PopulateInterwiki' => __DIR__ . '/maintenance/populateInterwiki.php',
        'PopulateLogSearch' => __DIR__ . '/maintenance/populateLogSearch.php',
        'PopulateLogUsertext' => __DIR__ . '/maintenance/populateLogUsertext.php',
        'PopulateParentId' => __DIR__ . '/maintenance/populateParentId.php',
index 8e98710..e103d9c 100644 (file)
@@ -25,7 +25,7 @@
                "ext-xml": "*",
                "liuggio/statsd-php-client": "1.0.18",
                "mediawiki/at-ease": "1.1.0",
-               "oojs/oojs-ui": "0.18.2",
+               "oojs/oojs-ui": "0.18.3",
                "oyejorge/less.php": "1.7.0.10",
                "php": ">=5.5.9",
                "psr/log": "1.0.0",
index b165285..2f99fff 100644 (file)
@@ -1079,6 +1079,12 @@ $params: tag params
 $rc: RecentChange being tagged when the tagging accompanies the action or null
 $user: User who performed the tagging when the tagging is subsequent to the action or null
 
+'ChangeUserGroups': Called before user groups are changed.
+$performer: The User who will perform the change
+$user: The User whose groups will be changed
+&$add: The groups that will be added
+&$remove: The groups that will be removed
+
 'Collation::factory': Called if $wgCategoryCollation is an unknown collation.
 $collationName: Name of the collation in question
 &$collationObject: Null. Replace with a subclass of the Collation class that
@@ -3379,6 +3385,15 @@ $user: Current user object
 $title: Title object to purge
 &$urls: An array of URLs to purge from the caches, to be manipulated.
 
+'UnblockUser': Before an IP address or user is unblocked.
+&$block: The Block object about to be saved
+&$user: The user performing the unblock (not the one being unblocked)
+&$reason: If the hook is aborted, the error message to be returned in an array
+
+'UnblockUserComplete': After an IP address or user has been unblocked.
+$block: The Block object that was saved
+$user: The user who performed the unblock (not the one being unblocked)
+
 'UndeleteForm::showHistory': Called in UndeleteForm::showHistory, after a
 PageArchive object has been created but before any further processing is done.
 &$archive: PageArchive object
@@ -3405,8 +3420,9 @@ Since 1.24: Paths pointing to a directory will be recursively scanned for
 test case files matching the suffix "Test.php".
 &$paths: list of test cases and directories to search.
 
-'UnknownAction': An unknown "action" has occurred (useful for defining your own
-actions).
+'UnknownAction': DEPRECATED! To add an action in an extension,
+create a subclass of Action, and add a new key to $wgActions.
+An unknown "action" has occurred (useful for defining your own actions).
 $action: action name
 $article: article "acted on"
 
index 20cb614..9d3a2f9 100644 (file)
@@ -765,8 +765,10 @@ class Block {
                        return false;
                }
 
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $block = $this;
                # Allow hooks to cancel the autoblock.
-               if ( !Hooks::run( 'AbortAutoblock', [ $autoblockIP, &$this ] ) ) {
+               if ( !Hooks::run( 'AbortAutoblock', [ $autoblockIP, &$block ] ) ) {
                        wfDebug( "Autoblock aborted by hook.\n" );
                        return false;
                }
index 4c4b8bb..facf847 100644 (file)
@@ -67,7 +67,7 @@ class CategoryViewer extends ContextSource {
        /** @var Collation */
        public $collation;
 
-       /** @var ImageGallery */
+       /** @var ImageGalleryBase */
        public $gallery;
 
        /** @var Category Category object for this page. */
index 3274480..77061df 100644 (file)
@@ -4817,6 +4817,7 @@ $wgDefaultUserOptions = [
        'previewonfirst' => 0,
        'previewontop' => 1,
        'rcdays' => 7,
+       'rcenhancedfilters' => 0,
        'rclimit' => 50,
        'rows' => 25,
        'showhiddencats' => 0,
@@ -4851,7 +4852,9 @@ $wgDefaultUserOptions = [
 /**
  * An array of preferences to not show for the user
  */
-$wgHiddenPrefs = [];
+$wgHiddenPrefs = [
+       'rcenhancedfilters',
+];
 
 /**
  * Characters to prevent during new account creations.
@@ -8055,6 +8058,12 @@ $wgShellLocale = 'en_US.utf8';
  */
 $wgHTTPTimeout = 25;
 
+/**
+ * Timeout for HTTP requests done internally for transwiki imports, in seconds.
+ * @since 1.29
+ */
+$wgHTTPImportTimeout = 25;
+
 /**
  * Timeout for Asynchronous (background) HTTP requests, in seconds.
  */
index 4c149ae..487e86c 100644 (file)
@@ -49,10 +49,6 @@ class DerivativeRequest extends FauxRequest {
                return $this->base->getCookie( $key, $prefix, $default );
        }
 
-       public function checkSessionCookie() {
-               return $this->base->checkSessionCookie();
-       }
-
        public function getHeader( $name, $flags = 0 ) {
                return $this->base->getHeader( $name, $flags );
        }
index 1f871e1..acbd130 100644 (file)
@@ -2602,7 +2602,9 @@ class EditPage {
                        $previewOutput = $this->getPreviewText();
                }
 
-               Hooks::run( 'EditPage::showEditForm:initial', [ &$this, &$wgOut ] );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $editPage = $this;
+               Hooks::run( 'EditPage::showEditForm:initial', [ &$editPage, &$wgOut ] );
 
                $this->setHeaders();
 
@@ -2679,7 +2681,9 @@ class EditPage {
                        . Xml::closeElement( 'div' )
                );
 
-               Hooks::run( 'EditPage::showEditForm:fields', [ &$this, &$wgOut ] );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $editPage = $this;
+               Hooks::run( 'EditPage::showEditForm:fields', [ &$editPage, &$wgOut ] );
 
                // Put these up at the top to ensure they aren't lost on early form submission
                $this->showFormBeforeText();
@@ -2839,7 +2843,7 @@ class EditPage {
         * @param Title[] $templates
         * @return string HTML
         */
-       protected function makeTemplatesOnThisPageList( array $templates ) {
+       public function makeTemplatesOnThisPageList( array $templates ) {
                $templateListFormatter = new TemplatesOnThisPageFormatter(
                        $this->context, MediaWikiServices::getInstance()->getLinkRenderer()
                );
@@ -3541,7 +3545,9 @@ HTML
        protected function showConflict() {
                global $wgOut;
 
-               if ( Hooks::run( 'EditPageBeforeConflictDiff', [ &$this, &$wgOut ] ) ) {
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $editPage = $this;
+               if ( Hooks::run( 'EditPageBeforeConflictDiff', [ &$editPage, &$wgOut ] ) ) {
                        $stats = MediaWikiServices::getInstance()->getStatsdDataFactory();
                        $stats->increment( 'edit.failures.conflict' );
                        // Only include 'standard' namespaces to avoid creating unknown numbers of statsd metrics
@@ -4069,7 +4075,10 @@ HTML
                                $checkboxes['watch'] = $watchThisHtml;
                        }
                }
-               Hooks::run( 'EditPageBeforeEditChecks', [ &$this, &$checkboxes, &$tabindex ] );
+
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $editPage = $this;
+               Hooks::run( 'EditPageBeforeEditChecks', [ &$editPage, &$checkboxes, &$tabindex ] );
                return $checkboxes;
        }
 
@@ -4118,7 +4127,9 @@ HTML
                $buttons['diff'] = Html::submitButton( $this->context->msg( 'showdiff' )->text(),
                        $attribs );
 
-               Hooks::run( 'EditPageBeforeEditButtons', [ &$this, &$buttons, &$tabindex ] );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $editPage = $this;
+               Hooks::run( 'EditPageBeforeEditButtons', [ &$editPage, &$buttons, &$tabindex ] );
                return $buttons;
        }
 
@@ -4132,7 +4143,10 @@ HTML
                $wgOut->prepareErrorPage( $this->context->msg( 'nosuchsectiontitle' ) );
 
                $res = $this->context->msg( 'nosuchsectiontext', $this->section )->parseAsBlock();
-               Hooks::run( 'EditPageNoSuchSection', [ &$this, &$res ] );
+
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $editPage = $this;
+               Hooks::run( 'EditPageNoSuchSection', [ &$editPage, &$res ] );
                $wgOut->addHTML( $res );
 
                $wgOut->returnToMain( false, $this->mTitle );
index 511781d..f4f86be 100644 (file)
@@ -176,22 +176,13 @@ class Hooks {
                                throw new MWException( 'Invalid callback ' . $func . ' in hooks for ' . $event . "\n" );
                        }
 
-                       /*
-                        * Call the hook. The documentation of call_user_func_array says
-                        * false is returned on failure. However, if the function signature
-                        * does not match the call signature, PHP will issue an warning and
-                        * return null instead. The following code catches that warning and
-                        * provides better error message.
-                        */
-                       $retval = null;
-                       $badhookmsg = null;
-                       $hook_args = array_merge( $hook, $args );
-
                        // mark hook as deprecated, if deprecation version is specified
                        if ( $deprecatedVersion !== null ) {
                                wfDeprecated( "$event hook (used in $func)", $deprecatedVersion );
                        }
 
+                       // Call the hook.
+                       $hook_args = array_merge( $hook, $args );
                        $retval = call_user_func_array( $callback, $hook_args );
 
                        // Process the return value.
index eaa1c99..faca533 100644 (file)
@@ -495,8 +495,15 @@ class MediaWiki {
                        $action->show();
                        return;
                }
-
-               if ( Hooks::run( 'UnknownAction', [ $request->getVal( 'action', 'view' ), $page ] ) ) {
+               // NOTE: deprecated hook. Add to $wgActions instead
+               if ( Hooks::run(
+                       'UnknownAction',
+                       [
+                               $request->getVal( 'action', 'view' ),
+                               $page
+                       ],
+                       '1.19'
+               ) ) {
                        $output->setStatusCode( 404 );
                        $output->showErrorPage( 'nosuchaction', 'nosuchactiontext' );
                }
index 9bae882..f140f54 100644 (file)
@@ -1266,10 +1266,12 @@ class OutputPage extends ContextSource {
                        }
                }
 
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $outputPage = $this;
                # Add the remaining categories to the skin
                if ( Hooks::run(
                        'OutputPageMakeCategoryLinks',
-                       [ &$this, $categories, &$this->mCategoryLinks ] )
+                       [ &$outputPage, $categories, &$this->mCategoryLinks ] )
                ) {
                        $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
                        foreach ( $categories as $category => $type ) {
@@ -1810,8 +1812,10 @@ class OutputPage extends ContextSource {
                // Link flags are ignored for now, but may in the future be
                // used to mark individual language links.
                $linkFlags = [];
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $outputPage = $this;
                Hooks::run( 'LanguageLinks', [ $this->getTitle(), &$this->mLanguageLinks, &$linkFlags ] );
-               Hooks::run( 'OutputPageParserOutput', [ &$this, $parserOutput ] );
+               Hooks::run( 'OutputPageParserOutput', [ &$outputPage, $parserOutput ] );
        }
 
        /**
@@ -1839,7 +1843,9 @@ class OutputPage extends ContextSource {
         */
        public function addParserOutputText( $parserOutput ) {
                $text = $parserOutput->getText();
-               Hooks::run( 'OutputPageBeforeHTML', [ &$this, &$text ] );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $outputPage = $this;
+               Hooks::run( 'OutputPageBeforeHTML', [ &$outputPage, &$text ] );
                $this->addHTML( $text );
        }
 
@@ -2358,9 +2364,11 @@ class OutputPage extends ContextSource {
                        }
                        MWDebug::addModules( $this );
 
+                       // Avoid PHP 7.1 warning of passing $this by reference
+                       $outputPage = $this;
                        // Hook that allows last minute changes to the output page, e.g.
                        // adding of CSS or Javascript by extensions.
-                       Hooks::run( 'BeforePageDisplay', [ &$this, &$sk ] );
+                       Hooks::run( 'BeforePageDisplay', [ &$outputPage, &$sk ] );
 
                        try {
                                $sk->outputPage();
index 38dd4bd..263ff5b 100644 (file)
@@ -1431,7 +1431,7 @@ class Preferences {
                                # Max is +14:00 and min is -12:00, see:
                                # https://en.wikipedia.org/wiki/Timezone
                                $minDiff = min( $minDiff, 840 );  # 14:00
-                               $minDiff = max( $minDiff, - 720 ); # -12:00
+                               $minDiff = max( $minDiff, -720 ); # -12:00
                                return 'Offset|' . $minDiff;
                }
        }
index aea8488..8721ef9 100644 (file)
@@ -1505,7 +1505,9 @@ class Revision implements IDBAccessObject {
                        );
                }
 
-               Hooks::run( 'RevisionInsertComplete', [ &$this, $data, $flags ] );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $revision = $this;
+               Hooks::run( 'RevisionInsertComplete', [ &$revision, $data, $flags ] );
 
                return $this->mId;
        }
index 44e4e3e..6779189 100644 (file)
@@ -1262,8 +1262,9 @@ class Sanitizer {
        static function escapeHtmlAllowEntities( $html ) {
                $html = Sanitizer::decodeCharReferences( $html );
                # It seems wise to escape ' as well as ", as a matter of course.  Can't
-               # hurt.
-               $html = htmlspecialchars( $html, ENT_QUOTES );
+               # hurt. Use ENT_SUBSTITUTE so that incorrectly truncated multibyte characters
+               # don't cause the entire string to disappear.
+               $html = htmlspecialchars( $html, ENT_QUOTES | ENT_SUBSTITUTE );
                return $html;
        }
 
index c4584bd..4d496e4 100644 (file)
@@ -1681,8 +1681,9 @@ class Title implements LinkTarget {
 
                # Finally, add the fragment.
                $url .= $this->getFragmentForURL();
-
-               Hooks::run( 'GetFullURL', [ &$this, &$url, $query ] );
+               // Avoid PHP 7.1 warning from passing $this by reference
+               $titleRef = $this;
+               Hooks::run( 'GetFullURL', [ &$titleRef, &$url, $query ] );
                return $url;
        }
 
@@ -1728,7 +1729,9 @@ class Title implements LinkTarget {
                        $dbkey = wfUrlencode( $this->getPrefixedDBkey() );
                        if ( $query == '' ) {
                                $url = str_replace( '$1', $dbkey, $wgArticlePath );
-                               Hooks::run( 'GetLocalURL::Article', [ &$this, &$url ] );
+                               // Avoid PHP 7.1 warning from passing $this by reference
+                               $titleRef = $this;
+                               Hooks::run( 'GetLocalURL::Article', [ &$titleRef, &$url ] );
                        } else {
                                global $wgVariantArticlePath, $wgActionPaths, $wgContLang;
                                $url = false;
@@ -1772,8 +1775,9 @@ class Title implements LinkTarget {
                                        $url = "{$wgScript}?title={$dbkey}&{$query}";
                                }
                        }
-
-                       Hooks::run( 'GetLocalURL::Internal', [ &$this, &$url, $query ] );
+                       // Avoid PHP 7.1 warning from passing $this by reference
+                       $titleRef = $this;
+                       Hooks::run( 'GetLocalURL::Internal', [ &$titleRef, &$url, $query ] );
 
                        // @todo FIXME: This causes breakage in various places when we
                        // actually expected a local URL and end up with dupe prefixes.
@@ -1781,7 +1785,9 @@ class Title implements LinkTarget {
                                $url = $wgServer . $url;
                        }
                }
-               Hooks::run( 'GetLocalURL', [ &$this, &$url, $query ] );
+               // Avoid PHP 7.1 warning from passing $this by reference
+               $titleRef = $this;
+               Hooks::run( 'GetLocalURL', [ &$titleRef, &$url, $query ] );
                return $url;
        }
 
@@ -1830,7 +1836,9 @@ class Title implements LinkTarget {
                $query = self::fixUrlQueryArgs( $query, $query2 );
                $server = $wgInternalServer !== false ? $wgInternalServer : $wgServer;
                $url = wfExpandUrl( $server . $this->getLocalURL( $query ), PROTO_HTTP );
-               Hooks::run( 'GetInternalURL', [ &$this, &$url, $query ] );
+               // Avoid PHP 7.1 warning from passing $this by reference
+               $titleRef = $this;
+               Hooks::run( 'GetInternalURL', [ &$titleRef, &$url, $query ] );
                return $url;
        }
 
@@ -1848,7 +1856,9 @@ class Title implements LinkTarget {
        public function getCanonicalURL( $query = '', $query2 = false ) {
                $query = self::fixUrlQueryArgs( $query, $query2 );
                $url = wfExpandUrl( $this->getLocalURL( $query ) . $this->getFragmentForURL(), PROTO_CANONICAL );
-               Hooks::run( 'GetCanonicalURL', [ &$this, &$url, $query ] );
+               // Avoid PHP 7.1 warning from passing $this by reference
+               $titleRef = $this;
+               Hooks::run( 'GetCanonicalURL', [ &$titleRef, &$url, $query ] );
                return $url;
        }
 
@@ -2052,18 +2062,22 @@ class Title implements LinkTarget {
        private function checkPermissionHooks( $action, $user, $errors, $rigor, $short ) {
                // Use getUserPermissionsErrors instead
                $result = '';
-               if ( !Hooks::run( 'userCan', [ &$this, &$user, $action, &$result ] ) ) {
+               // Avoid PHP 7.1 warning from passing $this by reference
+               $titleRef = $this;
+               if ( !Hooks::run( 'userCan', [ &$titleRef, &$user, $action, &$result ] ) ) {
                        return $result ? [] : [ [ 'badaccess-group0' ] ];
                }
                // Check getUserPermissionsErrors hook
-               if ( !Hooks::run( 'getUserPermissionsErrors', [ &$this, &$user, $action, &$result ] ) ) {
+               // Avoid PHP 7.1 warning from passing $this by reference
+               $titleRef = $this;
+               if ( !Hooks::run( 'getUserPermissionsErrors', [ &$titleRef, &$user, $action, &$result ] ) ) {
                        $errors = $this->resultToError( $errors, $result );
                }
                // Check getUserPermissionsErrorsExpensive hook
                if (
                        $rigor !== 'quick'
                        && !( $short && count( $errors ) > 0 )
-                       && !Hooks::run( 'getUserPermissionsErrorsExpensive', [ &$this, &$user, $action, &$result ] )
+                       && !Hooks::run( 'getUserPermissionsErrorsExpensive', [ &$titleRef, &$user, $action, &$result ] )
                ) {
                        $errors = $this->resultToError( $errors, $result );
                }
@@ -3595,18 +3609,6 @@ class Title implements LinkTarget {
                );
        }
 
-       /**
-        * Move this page without authentication
-        *
-        * @deprecated since 1.25 use MovePage class instead
-        * @param Title $nt The new page Title
-        * @return array|bool True on success, getUserPermissionsErrors()-like array on failure
-        */
-       public function moveNoAuth( &$nt ) {
-               wfDeprecated( __METHOD__, '1.25' );
-               return $this->moveTo( $nt, false );
-       }
-
        /**
         * Check whether a given move operation would be valid.
         * Returns true if ok, or a getUserPermissionsErrors()-like array otherwise
index e7c9b83..3bbdc3f 100644 (file)
@@ -757,22 +757,6 @@ class WebRequest {
                return $this->sessionId;
        }
 
-       /**
-        * Returns true if the request has a persistent session.
-        * This does not necessarily mean that the user is logged in!
-        *
-        * @deprecated since 1.27, use
-        *  \MediaWiki\Session\SessionManager::singleton()->getPersistedSessionId()
-        *  instead.
-        * @return bool
-        */
-       public function checkSessionCookie() {
-               global $wgInitialSessionId;
-               wfDeprecated( __METHOD__, '1.27' );
-               return $wgInitialSessionId !== null &&
-                       $this->getSession()->getId() === (string)$wgInitialSessionId;
-       }
-
        /**
         * Get a cookie from the $_COOKIE jar
         *
index 767a163..e8aec1c 100644 (file)
@@ -428,7 +428,10 @@ class HistoryPager extends ReverseChronologicalPager {
                        $queryInfo['options'],
                        $this->tagFilter
                );
-               Hooks::run( 'PageHistoryPager::getQueryInfo', [ &$this, &$queryInfo ] );
+
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $historyPager = $this;
+               Hooks::run( 'PageHistoryPager::getQueryInfo', [ &$historyPager, &$queryInfo ] );
 
                return $queryInfo;
        }
index 5bf24f6..d8c8bc3 100644 (file)
@@ -108,7 +108,9 @@ class RawAction extends FormlessAction {
                        $response->statusHeader( 404 );
                }
 
-               if ( !Hooks::run( 'RawPageViewBeforeOutput', [ &$this, &$text ] ) ) {
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $rawAction = $this;
+               if ( !Hooks::run( 'RawPageViewBeforeOutput', [ &$rawAction, &$text ] ) ) {
                        wfDebug( __METHOD__ . ": RawPageViewBeforeOutput hook broke raw page output.\n" );
                }
 
index c1ad947..063d661 100644 (file)
@@ -1936,7 +1936,10 @@ abstract class ApiBase extends ContextSource {
         */
        public function getFinalDescription() {
                $desc = $this->getDescription();
-               Hooks::run( 'APIGetDescription', [ &$this, &$desc ] );
+
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $apiModule = $this;
+               Hooks::run( 'APIGetDescription', [ &$apiModule, &$desc ] );
                $desc = self::escapeWikiText( $desc );
                if ( is_array( $desc ) ) {
                        $desc = implode( "\n", $desc );
@@ -1984,7 +1987,9 @@ abstract class ApiBase extends ContextSource {
                        ] + ( isset( $params['token'] ) ? $params['token'] : [] );
                }
 
-               Hooks::run( 'APIGetAllowedParams', [ &$this, &$params, $flags ] );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $apiModule = $this;
+               Hooks::run( 'APIGetAllowedParams', [ &$apiModule, &$params, $flags ] );
 
                return $params;
        }
@@ -2002,7 +2007,10 @@ abstract class ApiBase extends ContextSource {
                $path = $this->getModulePath();
 
                $desc = $this->getParamDescription();
-               Hooks::run( 'APIGetParamDescription', [ &$this, &$desc ] );
+
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $apiModule = $this;
+               Hooks::run( 'APIGetParamDescription', [ &$apiModule, &$desc ] );
 
                if ( !$desc ) {
                        $desc = [];
index 99242a8..a5474b5 100644 (file)
 class ApiClearHasMsg extends ApiBase {
        public function execute() {
                $user = $this->getUser();
-               if ( $this->getRequest()->wasPosted() ) {
-                       $user->setNewtalk( false );
-               } else {
-                       DeferredUpdates::addCallableUpdate( function () use ( $user ) {
-                               $user->setNewtalk( false );
-                       } );
-               }
+               $user->setNewtalk( false );
                $this->getResult()->addValue( null, $this->getModuleName(), 'success' );
        }
 
index 4220fb8..52f1d95 100644 (file)
@@ -106,6 +106,7 @@ class ApiMain extends ApiBase {
                'managetags' => 'ApiManageTags',
                'tag' => 'ApiTag',
                'mergehistory' => 'ApiMergeHistory',
+               'setpagelanguage' => 'ApiSetPageLanguage',
        ];
 
        /**
index 160ce87..d42e306 100644 (file)
@@ -174,7 +174,10 @@ class ApiPageSet extends ApiBase {
                        // populate this pageset with the generator output
                        if ( !$isDryRun ) {
                                $generator->executeGenerator( $this );
-                               Hooks::run( 'APIQueryGeneratorAfterExecute', [ &$generator, &$this ] );
+
+                               // Avoid PHP 7.1 warning of passing $this by reference
+                               $apiModule = $this;
+                               Hooks::run( 'APIQueryGeneratorAfterExecute', [ &$generator, &$apiModule ] );
                        } else {
                                // Prevent warnings from being reported on these parameters
                                $main = $this->getMain();
diff --git a/includes/api/ApiSetPageLanguage.php b/includes/api/ApiSetPageLanguage.php
new file mode 100755 (executable)
index 0000000..3f03c02
--- /dev/null
@@ -0,0 +1,147 @@
+<?php
+/**
+ *
+ *
+ * Created on January 1, 2017
+ *
+ * Copyright © 2017 Justin Du "<justin.d128@gmail.com>"
+ *
+ * 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
+ */
+
+/**
+ * API module that facilitates changing the language of a page.
+ * The API equivalent of SpecialPageLanguage.
+ * Requires API write mode to be enabled.
+ *
+ * @ingroup API
+ */
+class ApiSetPageLanguage extends ApiBase {
+       // Check if change language feature is enabled
+       protected function getDescriptionMessage() {
+               if ( !$this->getConfig()->get( 'PageLanguageUseDB' ) ) {
+                       return 'apihelp-setpagelanguage-description-disabled';
+               }
+               return parent::getDescriptionMessage();
+       }
+
+       /**
+        * Extracts the title and language from the request parameters and invokes
+        * the static SpecialPageLanguage::changePageLanguage() function with these as arguments.
+        * If the language change succeeds, the title, old language, and new language
+        * of the article changed, as well as the performer of the language change
+        * are added to the result object.
+        */
+       public function execute() {
+               // Check if change language feature is enabled
+               if ( !$this->getConfig()->get( 'PageLanguageUseDB' ) ) {
+                       $this->dieWithError( 'apierror-pagelang-disabled' );
+               }
+
+               // Check if the user has permissions
+               $this->checkUserRightsAny( 'pagelang' );
+
+               $this->useTransactionalTimeLimit();
+
+               $params = $this->extractRequestParams();
+
+               $pageObj = $this->getTitleOrPageId( $params, 'fromdbmaster' );
+               if ( !$pageObj->exists() ) {
+                       $this->dieWithError( 'apierror-missingtitle' );
+               }
+
+               $titleObj = $pageObj->getTitle();
+               $user = $this->getUser();
+
+               // Check that the user is allowed to edit the page
+               $this->checkTitleUserPermissions( $titleObj, 'edit' );
+
+               // If change tagging was requested, check that the user is allowed to tag,
+               // and the tags are valid
+               if ( count( $params['tags'] ) ) {
+                       $tagStatus = ChangeTags::canAddTagsAccompanyingChange( $params['tags'], $user );
+                       if ( !$tagStatus->isOK() ) {
+                               $this->dieStatus( $tagStatus );
+                       }
+               }
+
+               $status = SpecialPageLanguage::changePageLanguage(
+                       $this,
+                       $titleObj,
+                       $params['lang'],
+                       $params['tags'] ?: []
+               );
+
+               if ( !$status->isOK() ) {
+                       $this->dieStatus( $status );
+               }
+
+               $r = [
+                       'title' => $titleObj->getPrefixedText(),
+                       'oldlanguage' => $status->value->oldLanguage,
+                       'newlanguage' => $status->value->newLanguage,
+                       'logid' => $status->value->logId
+               ];
+               $this->getResult()->addValue( null, $this->getModuleName(), $r );
+       }
+
+       public function mustBePosted() {
+               return true;
+       }
+
+       public function isWriteMode() {
+               return true;
+       }
+
+       public function getAllowedParams() {
+               return [
+                       'title' => null,
+                       'pageid' => [
+                               ApiBase::PARAM_TYPE => 'integer'
+                       ],
+                       'lang' => [
+                               ApiBase::PARAM_TYPE => array_merge(
+                                       [ 'default' ],
+                                       array_keys( Language::fetchLanguageNames( null, 'mwfile' ) )
+                               ),
+                               ApiBase::PARAM_REQUIRED => true,
+                       ],
+                       'tags' => [
+                               ApiBase::PARAM_TYPE => 'tags',
+                               ApiBase::PARAM_ISMULTI => true,
+                       ],
+               ];
+       }
+
+       public function needsToken() {
+               return 'csrf';
+       }
+
+       protected function getExamplesMessages() {
+               return [
+                       'action=setpagelanguage&title=Main%20Page&lang=eu&token=123ABC'
+                               => 'apihelp-setpagelanguage-example-language',
+                       'action=setpagelanguage&pageid=123&lang=default&token=123ABC'
+                               => 'apihelp-setpagelanguage-example-default',
+               ];
+       }
+
+       public function getHelpUrls() {
+               return 'https://www.mediawiki.org/wiki/API:SetPageLanguage';
+       }
+}
index 311fa54..f821374 100644 (file)
@@ -719,7 +719,7 @@ class ApiUpload extends ApiBase {
         * @return StatusValue
         */
        protected function handleStashException( $e ) {
-               switch ( get_class( $exception ) ) {
+               switch ( get_class( $e ) ) {
                        case 'UploadStashFileNotFoundException':
                                $wrap = 'apierror-stashedfilenotfound';
                                break;
index 79c6866..4ef974c 100644 (file)
@@ -61,13 +61,23 @@ class ApiUserrights extends ApiBase {
 
                $user = $this->getUrUser( $params );
 
+               $tags = $params['tags'];
+
+               // Check if user can add tags
+               if ( !is_null( $tags ) ) {
+                       $ableToTag = ChangeTags::canAddTagsAccompanyingChange( $tags, $pUser );
+                       if ( !$ableToTag->isOK() ) {
+                               $this->dieStatus( $ableToTag );
+                       }
+               }
+
                $form = $this->getUserRightsPage();
                $form->setContext( $this->getContext() );
                $r['user'] = $user->getName();
                $r['userid'] = $user->getId();
                list( $r['added'], $r['removed'] ) = $form->doSaveUserGroups(
                        $user, (array)$params['add'],
-                       (array)$params['remove'], $params['reason']
+                       (array)$params['remove'], $params['reason'], $tags
                );
 
                $result = $this->getResult();
@@ -132,6 +142,10 @@ class ApiUserrights extends ApiBase {
                                // Standard definition automatically inserted
                                ApiBase::PARAM_HELP_MSG_APPEND => [ 'api-help-param-token-webui' ],
                        ],
+                       'tags' => [
+                               ApiBase::PARAM_TYPE => 'tags',
+                               ApiBase::PARAM_ISMULTI => true
+                       ],
                ];
        }
 
index 9ed9dcb..72933fe 100644 (file)
@@ -1,19 +1,34 @@
 {
        "@metadata": {
                "authors": [
-                       "Y-M D"
+                       "Y-M D",
+                       "Fulup"
                ]
        },
        "apihelp-block-description": "Stankañ un implijer",
        "apihelp-block-param-reason": "Abeg evit stankañ.",
+       "apihelp-createaccount-description": "Krouiñ ur gont implijer nevez.",
        "apihelp-createaccount-param-name": "Anv implijer.",
        "apihelp-delete-description": "Diverkañ ur bajenn.",
+       "apihelp-edit-description": "Krouiñ pajennoù ha kemmañ anezho.",
+       "apihelp-edit-param-sectiontitle": "Titl ur rannbennad nevez.",
        "apihelp-edit-param-text": "Danvez ar bajenn.",
        "apihelp-edit-param-minor": "Kemmig dister.",
        "apihelp-edit-example-edit": "Kemmañ ur bajenn.",
+       "apihelp-emailuser-description": "Kas ur postel d'un implijer.",
+       "apihelp-emailuser-param-text": "Korf ar postel.",
        "apihelp-expandtemplates-param-title": "Titl ar bajenn.",
+       "apihelp-feedcontributions-param-year": "Adalek ar bloaz (ha koshoc'h)",
+       "apihelp-feedcontributions-param-month": "Adalek ar miz (ha koshoc'h).",
+       "apihelp-feedcontributions-param-hideminor": "Kuzhat ar c'hemmoù dister.",
+       "apihelp-feedrecentchanges-param-hideminor": "Kuzhat ar c'hemmoù dister.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Silañ dre dikedennoù.",
+       "apihelp-feedrecentchanges-example-simple": "Diskouez ar c'hemmoù diwezhañ.",
        "apihelp-login-param-name": "Anv implijer.",
        "apihelp-login-param-password": "Ger-tremen.",
+       "apihelp-login-param-domain": "Domani (diret).",
        "apihelp-login-example-login": "Kevreañ.",
+       "apihelp-move-description": "Dilec'hiañ ur bajenn.",
+       "apihelp-move-param-noredirect": "Chom hep krouiñ un adkas.",
        "apihelp-protect-example-protect": "Gwareziñ ur bajenn."
 }
index 0c1c49d..c019d98 100644 (file)
        "apihelp-userrights-param-add": "Fügt den Benutzer zu diesen Gruppen hinzu.",
        "apihelp-userrights-param-remove": "Entfernt den Benutzer von diesen Gruppen.",
        "apihelp-userrights-param-reason": "Grund für die Änderung.",
+       "apihelp-userrights-param-tags": "Auf den Eintrag im Benutzerrechte-Logbuch anzuwendende Änderungsmarkierungen.",
        "apihelp-validatepassword-description": "Validiert ein Passwort gegen die Passwortrichtlinien des Wikis.\n\nDie Validität wird als <samp>Good</samp> gemeldet, falls das Passwort akzeptabel ist, <samp>Change</samp>, falls das Passwort zur Anmeldung verwendet werden kann, jedoch geändert werden muss oder <samp>Invalid</samp>, falls das Passwort nicht verwendbar ist.",
        "apihelp-validatepassword-param-password": "Zu validierendes Passwort.",
        "apihelp-validatepassword-param-user": "Der beim Austesten der Benutzerkontenerstellung verwendete Benutzername. Der angegebene Benutzer darf nicht vorhanden sein.",
index b5179bb..0c43bd7 100644 (file)
@@ -4,7 +4,9 @@
                        "Gorizon",
                        "Mirzali",
                        "Kumkumuk",
-                       "Asmen"
+                       "Asmen",
+                       "1917 Ekim Devrimi",
+                       "Gambollar"
                ]
        },
        "apihelp-main-param-action": "Performansa kamci aksiyon",
        "apihelp-expandtemplates-param-text": "Wikimetıni açarnê.",
        "apihelp-expandtemplates-paramvalue-prop-wikitext": "Herabıyaye wikimetin",
        "apihelp-feedcontributions-param-feedformat": "Formata warikerdışi",
+       "apihelp-feedcontributions-param-year": "Ser ra (u rewên)",
+       "apihelp-feedcontributions-param-month": "Meng ra (u rewên)",
        "apihelp-feedcontributions-param-hideminor": "Vuryayışanê werdiyan bınımne",
-       "apihelp-feedcontributions-param-showsizediff": "Goreyê ebati ferqê versiyoni bıasne.",
+       "apihelp-feedcontributions-param-showsizediff": "Goreyê ebati ferqê versiyoni bımotné.",
        "apihelp-feedrecentchanges-param-hideminor": "Vurriyayışanê werdiyan bınımne.",
        "apihelp-feedrecentchanges-param-hidebots": "Vurnayışanê botan bınımne.",
        "apihelp-feedrecentchanges-param-hideanons": "Vurnayışanê karberanê anoniman bınımne.",
@@ -57,5 +61,6 @@
        "apihelp-parse-example-text": "Wikimetini analiz ke",
        "apihelp-parse-example-summary": "Xulasay analiz ke",
        "apihelp-query+alllinks-paramvalue-prop-title": "Sernamey rê link dek",
+       "apihelp-query+allmessages-param-lang": "Mesaja açarn ena zıwan.",
        "apihelp-query+blocks-example-simple": "Listey bloqeyan"
 }
index f6eeffe..4b6e932 100644 (file)
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Set the notification timestamp for <kbd>Main page</kbd> so all edits since 1 January 2012 are unviewed.",
        "apihelp-setnotificationtimestamp-example-allpages": "Reset the notification status for pages in the <kbd>{{ns:user}}</kbd> namespace.",
 
+       "apihelp-setpagelanguage-description": "Change the language of a page.",
+       "apihelp-setpagelanguage-description-disabled": "Changing the language of a page is not allowed on this wiki.\n\nEnable <var>[[mw:Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]]</var> to use the API.",
+       "apihelp-setpagelanguage-param-title": "Title of the page whose language you wish to change. Cannot be used together with <var>$1pageid</var>.",
+       "apihelp-setpagelanguage-param-pageid": "Page ID of the page whose language you wish to change. Cannot be used together with <var>$1title</var>.",
+       "apihelp-setpagelanguage-param-lang": "Language code of the language to change the page to. Use <kbd>default</kbd> to reset the page to the wiki's default content language.",
+       "apihelp-setpagelanguage-param-tags": "Change tags to apply to the log entry resulting from this action.",
+       "apihelp-setpagelanguage-example-language": "Change the language of <kbd>Main Page</kbd> to Basque.",
+       "apihelp-setpagelanguage-example-default": "Change the language of the page with ID 123 to the wiki's default content language.",
+
        "apihelp-stashedit-description": "Prepare an edit in shared cache.\n\nThis is intended to be used via AJAX from the edit form to improve the performance of the page save.",
        "apihelp-stashedit-param-title": "Title of the page being edited.",
        "apihelp-stashedit-param-section": "Section number. <kbd>0</kbd> for the top section, <kbd>new</kbd> for a new section.",
        "apihelp-userrights-param-add": "Add the user to these groups.",
        "apihelp-userrights-param-remove": "Remove the user from these groups.",
        "apihelp-userrights-param-reason": "Reason for the change.",
+       "apihelp-userrights-param-tags": "Change tags to apply to the entry in the user rights log.",
        "apihelp-userrights-example-user": "Add user <kbd>FooBot</kbd> to group <kbd>bot</kbd>, and remove from groups <kbd>sysop</kbd> and <kbd>bureaucrat</kbd>.",
        "apihelp-userrights-example-userid": "Add the user with ID <kbd>123</kbd> to group <kbd>bot</kbd>, and remove from groups <kbd>sysop</kbd> and <kbd>bureaucrat</kbd>.",
 
        "apierror-autoblocked": "Your IP address has been blocked automatically, because it was used by a blocked user.",
        "apierror-badconfig-resulttoosmall": "The value of <code>$wgAPIMaxResultSize</code> on this wiki is too small to hold basic result information.",
        "apierror-badcontinue": "Invalid continue param. You should pass the original value returned by the previous query.",
-       "apierror-baddiff": "The diff cannot be retrieved, one or both revisions do not exist or you do not have permission to view them.",
+       "apierror-baddiff": "The diff cannot be retrieved. One or both revisions do not exist or you do not have permission to view them.",
        "apierror-baddiffto": "<var>$1diffto</var> must be set to a non-negative number, <kbd>prev</kbd>, <kbd>next</kbd> or <kbd>cur</kbd>.",
        "apierror-badformat-generic": "The requested format $1 is not supported for content model $2.",
        "apierror-badformat": "The requested format $1 is not supported for content model $2 used by $3.",
        "apierror-opensearch-json-warnings": "Warnings cannot be represented in OpenSearch JSON format.",
        "apierror-pagecannotexist": "Namespace doesn't allow actual pages.",
        "apierror-pagedeleted": "The page has been deleted since you fetched its timestamp.",
+       "apierror-pagelang-disabled": "Changing the language of a page is not allowed on this wiki.",
        "apierror-paramempty": "The parameter <var>$1</var> may not be empty.",
        "apierror-parsetree-notwikitext": "<kbd>prop=parsetree</kbd> is only supported for wikitext content.",
        "apierror-parsetree-notwikitext-title": "<kbd>prop=parsetree</kbd> is only supported for wikitext content. $1 uses content model $2.",
index ac6a9ae..916f8b7 100644 (file)
@@ -26,7 +26,8 @@
                        "Irus",
                        "Hamilton Abreu",
                        "Pompilos",
-                       "Igv"
+                       "Igv",
+                       "Fortega"
                ]
        },
        "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 correo]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anuncios de la API]\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ían funcionar, pero la API aún se encuentra 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 una cabecera HTTP con la clave \"MediaWiki-API-Error\". El valor de la cabecera y el código de error devuelto tomarán el mismo valor. Para más información, véase [[mw:API:Errors_and_warnings|API: Errores y advertencias]].\n\n<strong>Pruebas:</strong> para facilitar las pruebas de solicitudes a la API, consulta [[Special:ApiSandbox]].",
        "apihelp-main-param-requestid": "Cualquier valor dado aquí se incluirá en la respuesta. Se puede utilizar para distinguir solicitudes.",
        "apihelp-main-param-servedby": "Incluir el nombre del host que ha servido la solicitud en los resultados.",
        "apihelp-main-param-curtimestamp": "Incluir la marca de tiempo actual en el resultado.",
+       "apihelp-main-param-responselanginfo": "Incluye los idiomas utilizados para <var>uselang</var> y <var>errorlang</var> en el resultado.",
        "apihelp-main-param-origin": "Cuando se accede a la API usando una petición AJAX de distinto dominio (CORS), se establece este valor al dominio de origen. Debe ser incluido en cualquier petición pre-vuelo, y por lo tanto debe ser parte de la URI de la petición (no del cuerpo POST).\n\nEn las peticiones con autenticación, debe coincidir exactamente con uno de los orígenes de la cabecera <code>Origin</code>, por lo que debería ser algo como <kbd>https://en.wikipedia.org</kbd> o <kbd>https://meta.wikimedia.org</kbd>. Si este parámetro no coincide con la cabecera <code>Origin</code>, se devolverá una respuesta 403. Si este parámetro coincide con la cabecera <code>Origin</code> y el origen está en la lista blanca, se creará una cabecera <code>Access-Control-Allow-Origin</code>.\n\nEn las peticiones sin autenticación, introduce el valor <kbd>*</kbd>. Esto creará una cabecera <code>Access-Control-Allow-Origin</code>, pero el valor de <code>Access-Control-Allow-Credentials</code> será <code>false</code> y todos los datos que dependan del usuario estarán restringidos.",
        "apihelp-main-param-uselang": "El idioma que se utilizará para las traducciones de mensajes. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> con <kbd>siprop=languages</kbd> devuelve una lista de códigos de idiomas. También puedes introducir <kbd>user</kbd> para usar la preferencia de idioma del usuario actual, o <kbd>content</kbd> para usar el idioma de contenido de este wiki.",
+       "apihelp-main-param-errorformat": "Formato utilizado para la salida de texto de avisos y errores.\n; plaintext: Wikitexto en el que se han eliminado las etiquetas HTML y reemplazado las entidades.\n; wikitext: Wikitexto sin analizar.\n; html: HTML.\n; raw: Clave del mensaje y parámetros.\n; none: Ninguna salida de texto, solo códigos de error.\n; bc: Formato empleado en versiones de MediaWiki anteriores a la 1.29. No se tienen en cuenta <var>errorlang</var> y <var>errorsuselocal</var>.",
        "apihelp-block-description": "Bloquear a un usuario.",
        "apihelp-block-param-user": "Nombre de usuario, dirección IP o intervalo de IP que quieres bloquear. No se puede utilizar junto con <var>$1userid</var>",
        "apihelp-block-param-userid": "ID de usuario para bloquear. No se puede utilizar junto con <var>$1user</var>.",
        "apihelp-protect-param-title": "Título de la página a (des)proteger. No se puede utilizar con $1pageid.",
        "apihelp-protect-param-pageid": "ID de la página a (des)proteger. No se puede utilizar con $1title.",
        "apihelp-protect-param-protections": "Lista de los niveles de protección, con formato <kbd>action=level</kbd> (por ejemplo: <kbd>edit=sysop</kbd>). Un nivel de <kbd>all</kbd> («todos») significa que cualquier usuaro puede realizar la acción, es decir, no hay restricción.\n\n<strong>Nota:</strong> Cualquier acción no mencionada tendrá las restricciones eliminadas.",
+       "apihelp-protect-param-expiry": "Marcas de tiempo de expiración. Si solo se establece una marca de tiempo, se utilizará para todas las protecciones. Utiliza <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd>, o <kbd>never</kbd> para una protección indefinida.",
        "apihelp-protect-param-reason": "Motivo de la (des)protección.",
        "apihelp-protect-param-tags": "Cambiar las etiquetas para aplicar a la entrada en el registro de protección.",
        "apihelp-protect-param-cascade": "Activar la protección en cascada (o sea, proteger plantillas e imágenes transcluidas usadas en esta página). Se ignorará si ninguno de los niveles de protección dados son compatibles con la función de cascada.",
+       "apihelp-protect-param-watch": "Si se activa, añade la página en proceso de (des)protección a la lista de seguimiento del usuario actual.",
+       "apihelp-protect-param-watchlist": "Añadir o borrar incondicionalmente la página de la lista de seguimiento del usuario actual, utilizar las preferencias o no cambiar el estado de seguimiento.",
        "apihelp-protect-example-protect": "Proteger una página",
        "apihelp-protect-example-unprotect": "Desproteger una página estableciendo la restricción a <kbd>all</kbd> («todos», es decir, cualquier usuario puede realizar la acción).",
        "apihelp-protect-example-unprotect2": "Desproteger una página anulando las restricciones.",
        "apihelp-query+allimages-param-maxsize": "Limitar a imágenes con como mucho este número de bytes.",
        "apihelp-query+allimages-param-sha1": "Suma SHA1 de la imagen. Invalida $1sha1base36.",
        "apihelp-query+allimages-param-sha1base36": "Suma SHA1 de la imagen en base 36 (usada en MediaWiki).",
+       "apihelp-query+allimages-param-mime": "Tipos MIME que buscar, como, por ejemplo, <kbd>image/jpeg</kbd>.",
        "apihelp-query+allimages-param-limit": "Cuántas imágenes en total se devolverán.",
        "apihelp-query+allimages-example-B": "Mostrar una lista de archivos que empiecen por la letra <kbd>B</kbd>.",
        "apihelp-query+allimages-example-recent": "Mostrar una lista de archivos subidos recientemente, similar a [[Special:NewFiles]].",
        "apihelp-query+blocks-example-simple": "Listar bloques.",
        "apihelp-query+categories-description": "Enumera todas las categorías a las que pertenecen las páginas.",
        "apihelp-query+categories-param-prop": "Qué propiedades adicionales obtener para cada categoría:",
+       "apihelp-query+categories-paramvalue-prop-sortkey": "Añade la clave de ordenación (cadena hexadecimal) y el prefijo de la clave de ordenación (la parte legible) de la categoría.",
        "apihelp-query+categories-paramvalue-prop-timestamp": "Añade la marca de tiempo del momento en que se añadió la categoría.",
        "apihelp-query+categories-paramvalue-prop-hidden": "Etiqueta las categorías que están ocultas con <code>_&#95;HIDDENCAT_&#95;</code>.",
        "apihelp-query+categories-param-show": "Qué tipo de categorías mostrar.",
        "apihelp-query+deletedrevs-param-limit": "La cantidad máxima de revisiones que listar.",
        "apihelp-query+deletedrevs-example-mode3-talk": "Listar las primeras 50 páginas en el espacio de nombres {{ns:talk}} (modo 3).",
        "apihelp-query+disabled-description": "Se ha desactivado el módulo de consulta.",
+       "apihelp-query+duplicatefiles-description": "Enumerar todos los archivos que son duplicados de los archivos dados a partir de los valores hash.",
        "apihelp-query+duplicatefiles-param-limit": "Número de archivos duplicados para devolver.",
        "apihelp-query+duplicatefiles-param-dir": "La dirección en que ordenar la lista.",
        "apihelp-query+duplicatefiles-param-localonly": "Buscar solo archivos en el repositorio local.",
        "apihelp-query+embeddedin-param-dir": "La dirección en que ordenar la lista.",
        "apihelp-query+embeddedin-param-filterredir": "Cómo filtrar las redirecciones.",
        "apihelp-query+embeddedin-param-limit": "Cuántas páginas se devolverán.",
+       "apihelp-query+embeddedin-example-simple": "Mostrar las páginas que transcluyen <kbd>Template:Stub</kbd>.",
+       "apihelp-query+embeddedin-example-generator": "Obtener información sobre las páginas que transcluyen <kbd>Template:Stub</kbd>.",
+       "apihelp-query+extlinks-description": "Devuelve todas las URL externas (excluidos los interwikis) de las páginas dadas.",
        "apihelp-query+extlinks-param-limit": "Cuántos enlaces se devolverán.",
+       "apihelp-query+extlinks-param-protocol": "Protocolo de la URL. Si está vacío y <var>$1query</var> está definido, el protocolo es <kbd>http</kbd>. Para enumerar todos los enlaces externos, deja a la vez vacíos esto y <var>$1query</var>.",
+       "apihelp-query+extlinks-param-query": "Cadena de búsqueda sin protocolo. Útil para comprobar si una determinada página contiene una determinada URL externa.",
        "apihelp-query+extlinks-param-expandurl": "Expandir las URL relativas a un protocolo con el protocolo canónico.",
        "apihelp-query+extlinks-example-simple": "Obtener una lista de los enlaces externos en <kbd>Main Page</kbd>.",
        "apihelp-query+exturlusage-description": "Enumera páginas que contienen una URL dada.",
        "apihelp-query+exturlusage-paramvalue-prop-title": "Agrega el título y el identificador del espacio de nombres de la página.",
        "apihelp-query+exturlusage-paramvalue-prop-url": "Añade el URL utilizado en la página.",
        "apihelp-query+exturlusage-param-protocol": "Protocolo del URL. Si está vacío y se establece <var>$1query</var>, el protocolo es <kbd>http</kbd>. Deja vacío esto y <var>$1query</var> para listar todos los enlaces externos.",
+       "apihelp-query+exturlusage-param-query": "Cadena de búsqueda sin protocolo. Véase [[Special:LinkSearch]]. Deja el campo vacío para enumerar todos los enlaces externos.",
        "apihelp-query+exturlusage-param-namespace": "Los espacios de nombres que enumerar.",
        "apihelp-query+exturlusage-param-limit": "Cuántas páginas se devolverán.",
        "apihelp-query+exturlusage-param-expandurl": "Expandir las URL relativas a un protocolo con el protocolo canónico.",
        "apihelp-query+filearchive-paramvalue-prop-parseddescription": "Analizar la descripción de la versión.",
        "apihelp-query+filearchive-paramvalue-prop-mime": "Añade el MIME de la imagen.",
        "apihelp-query+filearchive-paramvalue-prop-mediatype": "Añade el tipo multimedia de la imagen.",
+       "apihelp-query+filearchive-paramvalue-prop-metadata": "Enumera los metadatos Exif para la versión de la imagen.",
        "apihelp-query+filearchive-paramvalue-prop-bitdepth": "Añade la profundidad de bit de la versión.",
        "apihelp-query+filearchive-paramvalue-prop-archivename": "Añade el nombre de archivo de la versión archivada para las versiones que no son las últimas.",
        "apihelp-query+filearchive-example-simple": "Mostrar una lista de todos los archivos eliminados.",
+       "apihelp-query+filerepoinfo-description": "Devuelve metainformación sobre los repositorios de imágenes configurados en el wiki.",
        "apihelp-query+filerepoinfo-example-simple": "Obtener información acerca de los repositorios de archivos.",
        "apihelp-query+fileusage-description": "Encontrar todas las páginas que utilizan los archivos dados.",
        "apihelp-query+fileusage-param-prop": "Qué propiedades se obtendrán:",
        "apihelp-query+imageinfo-paramvalue-prop-mime": "Añade el tipo MIME del archivo.",
        "apihelp-query+imageinfo-paramvalue-prop-thumbmime": "Añade el tipo MIME de la miniatura de la imagen (se requiere la URL y el parámetro $1urlwidth).",
        "apihelp-query+imageinfo-paramvalue-prop-mediatype": "Añade el tipo multimedia de la imagen.",
+       "apihelp-query+imageinfo-paramvalue-prop-metadata": "Enumera los metadatos Exif para la versión del archivo.",
+       "apihelp-query+imageinfo-paramvalue-prop-commonmetadata": "Enumera los metadatos genéricos del formato del archivo para la versión del archivo.",
+       "apihelp-query+imageinfo-paramvalue-prop-extmetadata": "Enumera metadatos con formato combinados de múltiples fuentes. Los resultados están en formato HTML.",
+       "apihelp-query+imageinfo-paramvalue-prop-archivename": "Añade el nombre del archivo de la versión archivada para las versiones anteriores a la última.",
        "apihelp-query+imageinfo-paramvalue-prop-bitdepth": "Añade la profundidad de bits de la versión.",
        "apihelp-query+imageinfo-param-limit": "Cuántos revisiones de archivos se devolverán por perfil.",
        "apihelp-query+imageinfo-param-start": "Marca de tiempo por la que empezar la enumeración.",
        "apierror-assertuserfailed": "La aserción de que el usuario está conectado falló.",
        "apierror-autoblocked": "Tu dirección IP ha sido bloqueada automáticamente porque fue utilizada por un usuario bloqueado.",
        "apierror-badconfig-resulttoosmall": "El valor de <code>$wgAPIMaxResultSize</code> en este wiki es demasiado pequeño como para contener información básica de resultados.",
+       "apierror-baddiff": "La comparación no puede recuperarse. Una o ambas revisiones no existen o no tienes permiso para verlas.",
        "apierror-badgenerator-notgenerator": "El módulo <kbd>$1</kbd> no puede utilizarse como un generador.",
        "apierror-badgenerator-unknown": "<kbd>generator=$1</kbd> desconocido.",
        "apierror-badip": "El parámetro IP no es válido.",
        "apierror-canthide": "No tienes permiso para ocultar nombres de usuario del registro de bloqueos.",
        "apierror-cantimport-upload": "No tienes permiso para importar páginas subidas.",
        "apierror-cantimport": "No tienes permiso para importar páginas.",
+       "apierror-databaseerror": "[$1] Error en la consulta de la base de datos.",
+       "apierror-deletedrevs-param-not-1-2": "El parámetro <var>$1</var> no se puede utilizar en los modos 1 o 2.",
+       "apierror-exceptioncaught": "[$1] Excepción capturada: $2",
+       "apierror-filedoesnotexist": "El archivo no existe.",
+       "apierror-filetypecannotberotated": "El tipo de archivo no se puede girar.",
+       "apierror-imageusage-badtitle": "El título de <kbd>$1</kbd> debe ser un archivo.",
        "apierror-import-unknownerror": "Error desconocido en la importación: $1.",
        "apierror-invalidexpiry": "Tiempo de expiración \"$1\" no válido.",
        "apierror-invalidparammix-cannotusewith": "El parámetro <kbd>$1</kbd> no se puede utilizar junto con <kbd>$2</kbd>.",
        "apierror-invalidsha1base36hash": "El hash SHA1Base36 proporcionado no es válido.",
        "apierror-invalidsha1hash": "El hash SHA1 proporcionado no es válido.",
        "apierror-invalidtitle": "Título incorrecto \"$1\".",
+       "apierror-invaliduser": "Nombre de usuario «$1» no válido.",
        "apierror-missingparam-at-least-one-of": "{{PLURAL:$2|El parámetro|Al menos uno de los parámetros}} $1 es necesario.",
        "apierror-missingparam-one-of": "{{PLURAL:$2|El parámetro|Uno de los parámetros}} $1 es necesario.",
        "apierror-missingparam": "Se debe establecer el parámetro <var>$1</var>.",
        "apierror-multpages": "<var>$1</var> no se puede utilizar más que con una sola página.",
        "apierror-noedit-anon": "Los usuarios anónimos no pueden editar páginas.",
        "apierror-noedit": "No tienes permiso para editar páginas.",
+       "apierror-nosuchuserid": "No hay ningún usuario con ID $1.",
        "apierror-paramempty": "El parámetro <var>$1</var> no puede estar vacío.",
        "apierror-permissiondenied": "No tienes permiso para $1.",
        "apierror-permissiondenied-generic": "Permiso denegado.",
        "apierror-permissiondenied-unblock": "No tienes permiso para desbloquear usuarios.",
+       "apierror-protect-invalidaction": "Tipo de protección «$1» no válido.",
+       "apierror-protect-invalidlevel": "Nivel de protección «$1» no válido.",
        "apierror-readapidenied": "Necesitas permiso de lectura para utilizar este módulo.",
        "apierror-readonly": "El wiki está actualmente en modo de solo lectura.",
        "apierror-revwrongpage": "r$1 no es una revisión de $2.",
        "apierror-specialpage-cantexecute": "No tienes permiso para ver los resultados de esta página especial.",
+       "apierror-systemblocked": "Has sido bloqueado automáticamente por el software MediaWiki.",
+       "apierror-unknownaction": "La acción especificada, <kbd>$1</kbd>, no está reconocida.",
        "apierror-unknownerror-nocode": "Error desconocido.",
        "apierror-unknownerror": "Error desconocido: «$1»",
        "apierror-unknownformat": "Formato no reconocido «$1».",
        "apierror-unrecognizedparams": "{{PLURAL:$2|Parámetro no reconocido|Parámetros no reconocidos}}: $1.",
        "apierror-unrecognizedvalue": "Valor no reconocido para el parámetro <var>$1</var>: $2.",
+       "apierror-writeapidenied": "No tienes permiso para editar este wiki a través de la API.",
        "apiwarn-deprecation-httpsexpected": "Se ha utilizado HTTP cuando se esperaba HTTPS.",
        "apiwarn-invalidcategory": "\"$1\" no es una categoría.",
        "apiwarn-invalidtitle": "«$1» no es un título válido.",
+       "apiwarn-invalidxmlstylesheet": "La hoja de estilos especificada no es válida o no existe.",
        "apiwarn-invalidxmlstylesheetns": "La hoja de estilos debería estar en el espacio de nombres {{ns:MediaWiki}}.",
        "apiwarn-notfile": "\"$1\" no es un archivo.",
+       "apiwarn-unclearnowtimestamp": "El paso de «$2» para el parámetro <var>$1</var> de la marca de tiempo ha quedado obsoleto. Si por alguna razón necesitas especificar de forma explícita la hora actual sin calcularla desde el lado del cliente, utiliza <kbd>now</kbd> («ahora»).",
+       "apiwarn-unrecognizedvalues": "{{PLURAL:$3|Valor no reconocido|Valores no reconocidos}} para el parámetro <var>$1</var>: $2.",
+       "apiwarn-validationfailed-badchars": "caracteres no válidos en la clave (solamente se admiten los caracteres <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> y <code>-</code>).",
+       "apiwarn-validationfailed-badpref": "no es una preferencia válida.",
+       "apiwarn-validationfailed-cannotset": "no puede ser establecido por este módulo.",
        "apiwarn-validationfailed-keytoolong": "clave demasiado larga (no puede tener más de $1 bytes).",
        "apiwarn-validationfailed": "Error de validación de <kbd>$1</kbd>: $2",
+       "apiwarn-wgDebugAPI": "<strong>Aviso de seguridad</strong>: <var>$wgDebugAPI</var> está habilitado.",
        "api-feed-error-title": "Error ($1)",
        "api-usage-docref": "Véase $1 para el uso de la API.",
        "api-exception-trace": "$1 en $2($3)\n$4",
index 901ff29..cb88c55 100644 (file)
        "apihelp-cspreport-param-reportonly": "Marquer comme étant un rapport d’une politique de surveillance, et non une politique exigée",
        "apihelp-cspreport-param-source": "Ce qui a généré l’entête CSP qui a déclenché ce rapport",
        "apihelp-delete-description": "Supprimer une page.",
-       "apihelp-delete-param-title": "Titre de la page que vous voulez supprimer. Impossible de l’utiliser avec <var>$1pageid</var>.",
+       "apihelp-delete-param-title": "Titre de la page que vous voulez supprimer. Impossible à utiliser avec <var>$1pageid</var>.",
        "apihelp-delete-param-pageid": "ID de la page que vous voulez supprimer. Impossible à utiliser avec <var>$1title</var>.",
        "apihelp-delete-param-reason": "Motif de suppression. Si non défini, un motif généré automatiquement sera utilisé.",
        "apihelp-delete-param-tags": "Modifier les balises à appliquer à l’entrée dans le journal des suppressions.",
        "apihelp-managetags-param-operation": "Quelle opération effectuer :\n;create:Créer une nouvelle balise de modification pour un usage manuel.\n;delete:Supprimer une balise de modification de la base de données, y compris la suppression de la marque de toutes les révisions, entrées de modification récente et entrées de journal dans lesquelles elle serait utilisée.\n;activate:Activer une balise de modification, permettant aux utilisateurs de l’appliquer manuellement.\n;deactivate:Désactiver une balise de modification, empêchant les utilisateurs de l’appliquer manuellement.",
        "apihelp-managetags-param-tag": "Balise à créer, supprimer, activer ou désactiver. Pour la création de balise, elle ne doit pas exister. Pour la suppression de balise, elle doit exister. Pour l’activation de balise, elle doit exister et ne pas être utilisée par une extension. Pour la désactivation de balise, elle doit être actuellement active et définie manuellement.",
        "apihelp-managetags-param-reason": "Un motif facultatif pour créer, supprimer, activer ou désactiver la balise.",
-       "apihelp-managetags-param-ignorewarnings": "S’il faut ignorer tout avertissement qui se produirait au cours de l’opération.",
+       "apihelp-managetags-param-ignorewarnings": "S’il faut ignorer tout avertissement qui surviendrait au cours de l’opération.",
        "apihelp-managetags-example-create": "Créer une balise nommée <kbd>spam</kbd> avec le motif <kbd>For use in edit patrolling</kbd>",
        "apihelp-managetags-example-delete": "Supprimer la balise <kbd>vandlaism</kbd> avec le motif <kbd>Misspelt</kbd>",
        "apihelp-managetags-example-activate": "Activer une balise nommée <kbd>spam</kbd> avec le motif <kbd>For use in edit patrolling</kbd>",
        "apihelp-userrights-param-add": "Ajouter l’utilisateur à ces groupes.",
        "apihelp-userrights-param-remove": "Supprimer l’utilisateur de ces groupes.",
        "apihelp-userrights-param-reason": "Motif pour la modification.",
+       "apihelp-userrights-param-tags": "Modifier les balises à appliquer à l’entrée dans le journal des droits utilisateur.",
        "apihelp-userrights-example-user": "Ajouter l’utilisateur <kbd>FooBot</kbd> au groupe <kbd>bot</kbd>, et le supprimer des groupes <kbd>sysop</kbd> et <kbd>bureaucrat</kbd>.",
        "apihelp-userrights-example-userid": "Ajouter l’utilisateur d’ID <kbd>123</kbd> au groupe <kbd>robot</kbd>, et le supprimer des groupes <kbd>sysop</kbd> et <kbd>bureaucrate</kbd>.",
        "apihelp-validatepassword-description": "Valider un mot de passe en suivant les règles des mots de passe du wiki.\n\nLa validation est <samp>Good</samp> si le mot de passe est acceptable, <samp>Change</samp> s'il peut être utilisé pour se connecter et doit être changé, ou  <samp>Invalid</samp> s'il n'est pas utilisable.",
        "apierror-autoblocked": "Votre adresse IP a été bloquée automatiquement, parce qu’elle a été utilisée par un utilisateur bloqué.",
        "apierror-badconfig-resulttoosmall": "La valeur de <code>$wgAPIMaxResultSize</code> sur ce wiki est trop petite pour contenir des informations de résultat basiques.",
        "apierror-badcontinue": "Paramètre de continuation non valide. Vous devez passer la valeur d’origine renvoyée par la requête précédente.",
-       "apierror-baddiff": "La différence ne peut être récupérée, une ou plusieurs révisions n’existent pas ou vous n’avez pas le droit de les voir.",
+       "apierror-baddiff": "La différence ne peut être récupérée. Une ou les deux révisions n’existent pas ou vous n’avez pas le droit de les voir.",
        "apierror-baddiffto": "<var>$1diffto</var> doit être fixé à un nombre positif ou nul, <kbd>prev</kbd>, <kbd>next</kbd> ou <kbd>cur</kbd>.",
        "apierror-badformat-generic": "Le format demandé $1 n’est pas supporté pour le modèle de contenu $2.",
        "apierror-badformat": "Le format demandé $1 n’est pas supporté pour le modèle de contenu $2 utilisé par $3.",
index 9e456bb..9792033 100644 (file)
@@ -30,7 +30,8 @@
        "apihelp-main-param-uselang": "Linga a usar para a tradución de mensaxes. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> con <kbd>siprop=languages</kbd> devolve unha lista de códigos de lingua, ou especificando <kbd>user</kbd> coa preferencia de lingua do usuario actual, ou especificando <kbd>content</kbd> para usar a lingua do contido desta wiki.",
        "apihelp-main-param-errorformat": "Formato a usar para a saída do texto de aviso e de erroː\n; plaintext:  texto wiki sen as etiquetas HTML e coas entidades substituídas.\n; wikitext: texto wiki sen analizar.\n; html: HTML.\n; raw: Clave de mensaxe e parámetros.\n; none: Sen saída de texto, só os códigos de erro.\n; bc: Formato utilizado antes de MediaWiki 1.29. <var>errorlang</var> e <var>errorsuselocal</var> non se teñen en conta.",
        "apihelp-block-description": "Bloquear un usuario.",
-       "apihelp-block-param-user": "Nome de usuario, dirección ou rango de IPs que quere bloquear.",
+       "apihelp-block-param-user": "Nome de usuario, dirección ou rango de IPs que quere bloquear. Non pode usarse xunto con <var>$1userid</var>",
+       "apihelp-block-param-userid": "Identificador de usuario a bloquear. Non pode usarse xunto con <var>$1user</var>.",
        "apihelp-block-param-expiry": "Tempo de caducidade. Pode ser relativo (p. ex.<kbd>5 meses</kbd> ou <kbd>2 semanas</kbd>) ou absoluto (p. ex. 2014-09-18T12:34:56Z</kbd>). Se se pon kbd>infinite</kbd>, <kbd>indefinite</kbd>, ou <kbd>never</kbd>, o bloqueo nunca caducará.",
        "apihelp-block-param-reason": "Motivo para o bloqueo.",
        "apihelp-block-param-anononly": "Bloquear só usuarios anónimos (é dicir, desactivar edicións anónimas desta dirección IP).",
        "apihelp-query+imageinfo-paramvalue-prop-archivename": "Engade o nome de ficheiro da versión do ficheiro para versións anteriores ás últimas.",
        "apihelp-query+imageinfo-paramvalue-prop-bitdepth": "Engade a profundidade de bits da versión.",
        "apihelp-query+imageinfo-paramvalue-prop-uploadwarning": "Usado pola páxina Special:Upload para obter información sobre un ficheiro existente. Non previsto para usar fóra do núcleo MediaWiki.",
+       "apihelp-query+imageinfo-paramvalue-prop-badfile": "Engadido cando o ficheiro está na [[MediaWiki:Bad image list]]",
        "apihelp-query+imageinfo-param-limit": "Cantas revisións de ficheiro a devolver por ficheiro.",
        "apihelp-query+imageinfo-param-start": "Selo de tempo dende o que comezar a lista.",
        "apihelp-query+imageinfo-param-end": "Selo de tempo no que rematar a lista.",
index 7f5b9d9..dcbeceb 100644 (file)
        "apihelp-main-param-responselanginfo": "לכלול את השפות שמשמשות ל־<var>uselang</var> ול־<var>errorlang</var> בתוצאה.",
        "apihelp-main-param-origin": "בעת גישה ל־API עם בקשת AJAX חוצה מתחמים (CORS), יש להציב כאן את המתחם שהבקשה יוצאת ממנו. זה היה להיות כלול בכל בקשה מקדימה, ולכן הוא חייב להיות חלק מה־URI של הבקשה (לא גוף ה־POST).\n\nעבור בקשות מאומתות, זה חייב להיות תואם במדויק לאחד המקורות בכותרת <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> ו־<code>Access-Control-Allow-Credentials</code>.\n\nעבור בקשות בלתי־מאומתות, יש לציין את הערך <kbd>*</kbd>. זה יגרום לכותרת להיות <code>Access-Control-Allow-Origin</code>, אבל <code>Access-Control-Allow-Credentials</code> תהיה <code>false</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-main-param-errorformat": "תסדיר לשימוש בפלט טקסט אזהרות ושגיאות.\n; plaintext: קוד ויקי ללא תגי HTML ועם ישויות מוחלפות.\n; wikitext: קוד ויקי לא מפוענח.\n; html: קוד HTML.\n; raw: מפתח הודעה ופרמטרים.\n; none: ללא פלט טקסט, רק הודעות השגיאה.\n; bc: התסדיר ששימש לפני מדיה־ויקי 1.29. התעלמות מ־<var>errorlang</var> ו־ <var>errorsuselocal</var>.",
+       "apihelp-main-param-errorlang": "השפה שתשמש לאזהרות לשגיאות <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> עם <kbd>siprop=languages</kbd> תחזיר רשימת קודי שפה, ואפשר גם לציין <kbd>content</kbd> כדי להשתמש בשפת התוכן של הוויקי הזה, או לציין <kbd>uselang</kbd> עם אותו הערך הפרמטר <var>uselang</var>.",
+       "apihelp-main-param-errorsuselocal": "אם ניתן, הטקסטים של השגיאות ישתמשו בהודעות מותאמות מקומית ממרחב השם {{ns:MediaWiki}}.",
        "apihelp-block-description": "חסימת משתמש.",
        "apihelp-block-param-user": "שם משתמש, כתובת IP, או טווח כתובות IP שברצונך לחסום. אי־אפשר להשתמש בזה יחד עם <var>$1userid</var>",
+       "apihelp-block-param-userid": "מזהה המשתמש לחסימה. לא יכול לשמש יחד עם <var>$1user</var>.",
        "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-query+imageinfo-paramvalue-prop-archivename": "הוספת שם הקובץ של גרסת הארכיון עבור הגרסאות שאינן האחרונה.",
        "apihelp-query+imageinfo-paramvalue-prop-bitdepth": "הוספת עומק הביטים של הגרסה.",
        "apihelp-query+imageinfo-paramvalue-prop-uploadwarning": "משמש את Special:Upload כדי לקבל מידע על קובץ קיים. לא נועד לשימוש מחוץ לליבת MediaWiki.",
+       "apihelp-query+imageinfo-paramvalue-prop-badfile": "מוסיף האם הקובץ נמצא ב־[[MediaWiki:Bad image list]]",
        "apihelp-query+imageinfo-param-limit": "כמה גרסאות של קובץ לכל קובץ.",
        "apihelp-query+imageinfo-param-start": "מאיז חותם־זמן להתחיל רשימה.",
        "apihelp-query+imageinfo-param-end": "באיזה חותם־זמן לסיים את הרשימה.",
        "apihelp-query+imageinfo-param-extmetadatamultilang": "אם תרגומים של המאפיין extmetadata זמינים, לאחזר את כולם.",
        "apihelp-query+imageinfo-param-extmetadatafilter": "אם זה מוגדר ולא ריק, רק המפתחות האלה יוחזרו עבור $1prop=extmetadata.",
        "apihelp-query+imageinfo-param-urlparam": "מחרוזת פרמטר ייחודית למטפל. למשל, PDF־ים יכולים להשתמש ב־<kbd>page15-100px</kbd>.‏ <var>$1urlwidth</var> צריך לשמש ולהיות עקבי עם <var>$1urlparam</var>.",
+       "apihelp-query+imageinfo-param-badfilecontexttitle": "אם <kbd>$2prop=badfile</kbd> מוגדר, זאת כותרת הדף שתשמש בזמן שערוך ה־[[MediaWiki:Bad image list]]",
        "apihelp-query+imageinfo-param-localonly": "חיפוש אחר קבצים במאגר המקומי בלבד.",
        "apihelp-query+imageinfo-example-simple": "קבלת מידע על הגרסה הנוכחית של [[:File:Albert Einstein Head.jpg]].",
        "apihelp-query+imageinfo-example-dated": "אחזור מידע על גרסאות של [[:File:Test.jpg]] מ־2008 ואחרי‏־כן.",
        "apihelp-query+users-paramvalue-prop-cancreate": "ציון האם אפשר ליצור חשבון עבור שמות משתמש תקינים, אבל לא רשומים.",
        "apihelp-query+users-param-attachedwiki": "עם <kbd>$1prop=centralids</kbd>, לציין האם המשתמש משויך לוויקי עם המזהה הזה.",
        "apihelp-query+users-param-users": "רשימת משתמשים שעליהם צריך לקבל מידע.",
+       "apihelp-query+users-param-userids": "רשימת מזהי משתמש שעבורם יתקבל המידע.",
        "apihelp-query+users-param-token": "יש להשתמש ב־<kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> במקום.",
        "apihelp-query+users-example-simple": "החזרת מידע עבור המשתמש <kbd>Example</kbd>.",
        "apihelp-query+watchlist-description": "קבלת שינויים אחרונים לדפים ברשימת המעקב של המשתמש הנוכחי.",
        "apihelp-unblock-description": "שחרור משתמש מחסימה.",
        "apihelp-unblock-param-id": "מזהה החסימה לשחרור (מתקבל דרך <kbd>list=blocks</kbd>). לא יכול לשמש יחד עם <var>$1user</var> או <var>$luserid</var>.",
        "apihelp-unblock-param-user": "שם משתמש, כתובת IP או טווח כתובות IP לחסימה. לא יכול לשמש יחד עם <var>$1id</var> או <var>$luserid</var>.",
+       "apihelp-unblock-param-userid": "מזהה המשתמש שישוחרר מחסימה. לא יכול לשמש יחד עם <var>$1id</var> או <var>$1user</var>.",
        "apihelp-unblock-param-reason": "סיבה להסרת חסימה.",
        "apihelp-unblock-param-tags": "תגי שינוי שיחולו על העיול ביומן החסימה.",
        "apihelp-unblock-example-id": "לשחרר את החסימה עם מזהה #<kbd>105</kbd>.",
        "apihelp-userrights-param-add": "הוספת המשתמש לקבוצות האלו.",
        "apihelp-userrights-param-remove": "הסרת משתמש מהקבוצות האלו.",
        "apihelp-userrights-param-reason": "סיבה לשינוי.",
+       "apihelp-userrights-param-tags": "לשנות את התגים שיוחלו על העיול ביומן הרשאות המשתמש.",
        "apihelp-userrights-example-user": "הוספת המשתמש <kbd>FooBot</kbd> לקבוצה <kbd>bot</kbd> והסרתו מהקבוצות <kbd>sysop</kbd> ו־<kbd>bureaucrat</kbd>.",
        "apihelp-userrights-example-userid": "הוספת המשתמש עם המזהה <kbd>123</kbd> לקבוצה <kbd>bot</kbd> והסרתו מהקבוצות <kbd>sysop</kbd> ו־<kbd>bureaucrat</kbd>.",
+       "apihelp-validatepassword-description": "לבדוק תקינות ססמה אל מול מדיניות הססמאות של הוויקי.\n\nהתקינות מדווחת כ־<samp>Good</samp> אם הססמה קבילה, <samp>Change</samp> אם הססמה יכולה לשמש לכניסה, אבל צריכה להשתנות, או <samp>Invalid</samp> אם הססמה אינה שמישה.",
+       "apihelp-validatepassword-param-password": "ססמה שתקינותה תיבדק.",
+       "apihelp-validatepassword-param-user": "שם משתמש, לשימוש בעת בדיקת יצירת חשבון. המשתמש ששמו ניתן צריך לא להיות קיים.",
+       "apihelp-validatepassword-param-email": "כתובת הדוא\"ל, לשימוש בעת בדיקת יצירת חשבון.",
+       "apihelp-validatepassword-param-realname": "שם אמתי, לשימוש בעת בדיקת יצירת חשבון.",
+       "apihelp-validatepassword-example-1": "לבדוק את תקינות הססמה <kbd>foobar</kbd> עבור המשתמש הנוכחי.",
+       "apihelp-validatepassword-example-2": "לבדוק את תקינות הססמה <kbd>qwerty</kbd> ליצירת החשבון <kbd>Example</kbd>.",
        "apihelp-watch-description": "להוסיף דפים לרשימת המעקב של המשתמש הנוכחי או הסרתם ממנה.",
        "apihelp-watch-param-title": "הדף להוסיף לרשימת המעקב או להסיר ממנה. יש להשתמש במקום זאת ב־<var>$1titles</var>.",
        "apihelp-watch-param-unwatch": "אם זה מוגדר, הדף יהיה לא במעקב במקום להיות במעקב.",
        "api-help-authmanagerhelper-returnurl": "כתובת URL לחזרה עם זרימות אימות צד־שלישי, חייב להיות מוחלט. נדרש או זה או <var>$1continue</var>.\n\nעם קבלת תשובת <samp>REDIRECT</samp>, בדרך־כלל תפתח דפדפן או תצוגת וב בכתובת ה־<samp>redirecttarget</samp> שצוינה בשביל זרימת אימות צד־שלישי. כשזה יושלם, הצד השלישי ישלח את הדפדפן או את תצוגת הווב לכתובת הזאת. יש לחלץ את כל הפרמטרים של שאילתה או בקשת POST מה־URL ולהעביר אותם בתור בקשת <var>$1continue</var> למודול ה־API הזה.",
        "api-help-authmanagerhelper-continue": "הבקשה הזאת היא המשך אחרי תשובת <samp>UI</samp> או <samp>REDIRECT</samp> קודמת. נדרש זה או <var>$1returnurl</var>.",
        "api-help-authmanagerhelper-additional-params": "המודול הזה מקבל פרמטרים נוספים בהתאם לבקשות אימות זמינות. יש להשתמש ב־<kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> עם <kbd>amirequestsfor=$1</kbd> (או תגובה קודמת מהמודול הזה, אם זה זמין) כדי להבין מה הבקשות הזמינות ובאילו שדות הן משתמשות.",
+       "apierror-allimages-redirect": "יש להשתמש ב־<kbd>gaifilterredir=nonredirects</kbd> במקום ב־<var>redirects</var> בעת שימוש ב־<kbd>allimages</kbd> בתור מחולל.",
+       "apierror-allpages-generator-redirects": "יש להשתמש ב־<kbd>gaifilterredir=nonredirects</kbd> במקום ב־<var>redirects</var> בעת שימוש ב־<kbd>allpages</kbd> בתור מחולל.",
        "apierror-appendnotsupported": "אי־אפשר להוסיף את זה לדפים שמשתמשים בדגם תוכן $1.",
+       "apierror-articleexists": "הערך שניסית ליצור כבר נוצר.",
+       "apierror-assertbotfailed": "הבדיקה שלמשתמש יש הרשאת <code>bot</code> נכשלה.",
+       "apierror-assertnameduserfailed": "הבדיקה שהמשתמש הוא \"$1\" נכשלה.",
+       "apierror-assertuserfailed": "הבדיקה שהמשתמש נכנס לחשבון נכשלה.",
+       "apierror-autoblocked": "כתובת ה־IP שלך נחסמה אוטומטית, כי היא שימשה משתמש חסום.",
+       "apierror-badconfig-resulttoosmall": "הערך של <code dir=\"ltr\">$wgAPIMaxResultSize</code> בוויקי הזה קטן מלהחזיק מידע בסיסי על תוצאה.",
+       "apierror-badcontinue": "פרמטר continue בלתי־תקין. יש להעביר את הערך המקורי שהחזירה השאילתה הקודמת.",
+       "apierror-baddiff": "לא ניתן לאחזר את ההשוואה. גרסה אחת לא קיימת או ששתיהן לא קיימות, או שאין לך הרשאה להציג אותן.",
+       "apierror-baddiffto": "יש להגדיר את <var>$1diffto</var> למספר שאינו שלילי, <kbd dir=\"ltr\">prev</kbd>, <kbd dir=\"ltr\">next</kbd> או <kbd dir=\"ltr\">cur</kbd>",
+       "apierror-badformat-generic": "התסדיר המבוקש $1 אינו נתמך במודל התוכן $2.",
+       "apierror-badformat": "התסדיר המבוקש $1 אינו נתמך במודל התוכן $2 שמשמש ב־$3.",
+       "apierror-badgenerator-notgenerator": "המודול <kbd>$1</kbd> אינו יכול לשמש כמחולל.",
+       "apierror-badgenerator-unknown": "<kbd>generator=$1</kbd> בלתי־ידוע.",
+       "apierror-badip": "הפרמטר IP אינו תקין.",
+       "apierror-badmd5": "גיבוב MD5 היה שגוי.",
+       "apierror-badmodule-badsubmodule": "למודול <kbd>$1</kbd> אין תת־מודול \"$2\".",
+       "apierror-badmodule-nosubmodules": "למודול <kbd>$1</kbd> אין תת־מודולים.",
+       "apierror-badparameter": "ערך בלתי־תקין לפרמטר <var>$1</var>.",
+       "apierror-badquery": "שאילתה בלתי־תקינה.",
+       "apierror-badtimestamp": "ערך בלתי־תקין \"$2\" לפרמטר חותם זמן <var>$1</var>.",
+       "apierror-badtoken": "אסימון CSRF בלתי־תקין.",
+       "apierror-badupload": "פרמטר העלאת הקובץ <var>$1</var> הוא לא העלאת קובץ; יש להקפיד להשתמש ב־<code>multipart/form-data</code> בשביל בקשת ה־POST שלך ולכלול שם קובץ בכותר <code>Content-Disposition</code>.",
+       "apierror-badurl": "ערך בלתי־תקין \"$2\" לפרמטר URL בשם <var>$1</var>.",
+       "apierror-baduser": "ערך בלתי־תקין \"$2\" לפרמטר משתמש בשם <var>$1</var>.",
+       "apierror-badvalue-notmultivalue": "הפרדת ערכים מרובים ב־U+001F אפשרית רק בפרמטרים מרובי־פרמטרים.",
+       "apierror-bad-watchlist-token": "סופק אסימון רשימת מעקב בלתי־תקין. נא להשתמש באסימון תקין ב־[[Special:Preferences]].",
+       "apierror-blockedfrommail": "נחסמת משליחת דוא״ל.",
+       "apierror-blocked": "נחסמת מעריכה.",
+       "apierror-botsnotsupported": "הממשק הזה לא נתמך עבור בוטים.",
+       "apierror-cannotreauthenticate": "הפעולה הזאת אינה זמינה, כי הזהות שלך לא יכולה להיות מאומתת.",
+       "apierror-cannotviewtitle": "אין לך הרשאה להציג את $1.",
+       "apierror-cantblock-email": "אין לך הרשאה לחסום משתמשים משליחת דואר אלקטרוני דרך הוויקי.",
+       "apierror-cantblock": "אין לך הרשאה לחסום משתמשים.",
+       "apierror-cantchangecontentmodel": "אין לך הרשאה לשנות את דגם התוכן של דף.",
+       "apierror-canthide": "אין לך הרשאה להסתיר שמות משתמשים ביומן החסימה.",
+       "apierror-cantimport-upload": "אין לך הרשאה לייבא דפים מוּעלים.",
+       "apierror-cantimport": "אין לך הרשאה לייבא דפים.",
+       "apierror-cantoverwrite-sharedfile": "קובץ היעד קיים במאגר משותף ואין לך הרשאה לעקוף אותו.",
+       "apierror-cantsend": "לא נכנסת לחשבון, אין לך חשבון דואר אלקטרוני מאושר, או שאסור לך לשלוח דואר אלקטרוני למשתמשים אחרים, אז אינך לך אפשרות לשלוח דואר אלקטרוני.",
+       "apierror-cantundelete": "לא היה אפשר לשחזר ממחיקה: אולי הגרסאות המבוקשות אינן קיימות, ואולי הן כבר נמחקו.",
+       "apierror-changeauth-norequest": "יצירת בקשת השינוי נכשלה.",
+       "apierror-chunk-too-small": "גודל הפלח המזערי הוא {{PLURAL:$1|בית אחד|$1 בתים}} בשביל פלחים לא סופיים.",
+       "apierror-cidrtoobroad": "טווחי CIDR של $1 שרחבים יותר מ־/$2 אינם קבילים.",
+       "apierror-compare-inputneeded": "כותרת, מזהה דף, או מספר גרסה נחוצים בשביל הפרמטרים <var>from</var> ו־<var>to</var>.",
+       "apierror-contentserializationexception": "הסדרת התוכן נכשלה: $1",
+       "apierror-contenttoobig": "התוכן שסיפקת חורג מגודל הערך המרבי של {{PLURAL:$1|קילובייט אחד|$1 קילובייטים}}.",
+       "apierror-copyuploadbaddomain": "העלאות לפי URL אינם מורשות מהמתחם הזה.",
+       "apierror-copyuploadbadurl": "העלאה אינה מותרת מה־URL הזה.",
+       "apierror-create-titleexists": "כותרות קיימות אינם יכולות מוגנות עם <kbd>create</kbd>.",
+       "apierror-csp-report": "בעיבוד דו\"ח CSP אירעה שגיאה: $1",
+       "apierror-databaseerror": "[$1] שגיאת שאילתת מסד נתונים.",
+       "apierror-deletedrevs-param-not-1-2": "הפרמטר <var>$1</var> אינו יכול לשמש במצבים 1 או 2.",
+       "apierror-deletedrevs-param-not-3": "הפרמטר <var>$1</var> אינו יכול במצב 3.",
+       "apierror-emptynewsection": "יצירת פסקאות חדשות ריקות בלתי־אפשרי.",
+       "apierror-emptypage": "יצירת דפים חדשים ריקים אינו מותר.",
+       "apierror-exceptioncaught": "[$1] נתפס חריג: $2",
+       "apierror-filedoesnotexist": "הקובץ אינו קיים.",
+       "apierror-fileexists-sharedrepo-perm": "קובץ היעד קיים במאגר משותף. יש להשתמש בפרמטר <var>ignorewarnings</var> כדי לעקוף אותו.",
+       "apierror-filenopath": "לא ניתן לקבל נתיב לקובץ מקומי.",
+       "apierror-filetypecannotberotated": "לא ניתן לסובב את סוג הקובץ הזה.",
+       "apierror-formatphp": "התשובה הזאת לא יכולה להיות מיוצגת עם <kbd>format=php</kbd>. ר' https://phabricator.wikimedia.org/T68776.",
+       "apierror-imageusage-badtitle": "הכותרת בשביל <kbd>$1</kbd> צריכה להיות קובץ.",
+       "apierror-import-unknownerror": "שגיאה בלתי־ידועה בייצוא: $1.",
+       "apierror-integeroutofrange-abovebotmax": "<var>$1</var> אינו יכול להיות גדול מ־$2 (עכשיו מוגדר $3) עבור בוטים או מפעילים.",
+       "apierror-integeroutofrange-abovemax": "<var>$1</var> אינו יכול להיות גדול מ־$2 (עכשיו מוגדר $3) עבור משתמשים.",
+       "apierror-integeroutofrange-belowminimum": "<var>$1</var> אינו יכול להיות גדול מ־$2 (עכשיו מוגדר $3).",
+       "apierror-invalidcategory": "שם הקטגוריה שהזנת אינו תקין.",
+       "apierror-invalid-file-key": "לא מפתח קובץ תקין.",
+       "apierror-invalidtitle": "כותרת רעה \"$1\".",
+       "apierror-invaliduser": "שם משתמש בלתי־תקין \"$1\".",
+       "apierror-maxlag": "ממתין ל־$2: שיהוי של {{PLURAL:$1|שנייה אחת|$1 שניות}}.",
+       "apierror-mustbeloggedin-generic": "חובה להיכנס.",
+       "apierror-mustbeloggedin-linkaccounts": "חובה להיכנס לחשבון כדי לקשר חשבונות.",
+       "apierror-mustbeloggedin-removeauth": "חובה להיכנס לחשבון כדי להסיר מידע אימות.",
+       "apierror-mustbeloggedin-uploadstash": "סליק ההעלאה זמין רק למשתמשים שנכנסו לחשבון.",
+       "apierror-mustbeloggedin": "חובה להיכנס לחשבון כדי $1.",
+       "apierror-nochanges": "לא התבקשו שינויים.",
+       "apierror-nodeleteablefile": "אין גרסה ישנה כזאת של הקובץ.",
+       "apierror-no-direct-editing": "עריכה ישירה דרך ה־API אינה נתמכת עבור דגם התוכן $1 שמשמש ב{{GRAMMAR:תחילית|$2}}.",
+       "apierror-noedit-anon": "משתמשים אלמוניים אינם יכולים לערוך דפים.",
        "apierror-stashnosuchfilekey": "אין מפתח קובץ כזה: $1.",
        "apierror-unknownerror-nocode": "שגיאה בלתי־ידועה.",
        "apierror-unknownerror": "שגיאה בלתי ידועה: \"$1\".",
index 63865ed..e0bb648 100644 (file)
        "apihelp-userrights-param-userid": "利用者ID。",
        "apihelp-userrights-param-add": "利用者をこのグループに追加します。",
        "apihelp-userrights-param-reason": "変更の理由。",
+       "apihelp-watch-description": "現在の利用者のウォッチリストにページを追加/除去します。",
        "apihelp-watch-example-watch": "<kbd>Main Page</kbd> をウォッチする。",
        "apihelp-watch-example-unwatch": "<kbd>Main Page</kbd> のウォッチを解除する。",
        "apihelp-format-example-generic": "クエリの結果を $1 形式に返します。",
index ff4f0d1..908f860 100644 (file)
@@ -29,6 +29,7 @@
        "apihelp-main-param-servedby": "결과에 요청을 처리한 호스트네임을 포함합니다.",
        "apihelp-main-param-curtimestamp": "결과의 타임스탬프를 포함합니다.",
        "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-main-param-errorformat": "경고 및 오류 텍스트 출력을 위해 사용할 형식입니다.\n; plaintext: HTML 태그가 제거되고 엔티티가 치환된 위키텍스트입니다.\n; wikitext: 구문 분석되지 않은 위키텍스트입니다.\n; html: HTML입니다.\n; raw: 메시지 키와 변수입니다.\n; none: 텍스트 없이 오류 코드만 출력합니다.\n; bc: 미디어위키 1.29 이전에 사용된 형식입니다. <var>errorlang</var> 및 <var>errorsuselocal</var>은 무시됩니다.",
        "apihelp-block-description": "사용자를 차단합니다.",
        "apihelp-block-param-user": "차단할 사용자 이름, IP 주소, 또는 IP 주소 대역입니다. <var>$1userid</var>와(과) 함께 사용할 수 없습니다.",
        "apihelp-block-param-userid": "차단할 사용자 ID입니다. <var>$1user</var>와(과) 함께 사용할 수 없습니다.",
        "apihelp-query+prefixsearch-param-limit": "반환할 결과의 최대 수",
        "apihelp-query+prefixsearch-param-profile": "검색 프로파일 사용",
        "apihelp-query+protectedtitles-paramvalue-prop-level": "보호 수준을 추가합니다.",
-       "apihelp-query+querypage-example-ancientpages": "[[Special:Ancientpages|특수기능:오래된문서]]에서 결과를 반환합니다.",
+       "apihelp-query+querypage-example-ancientpages": "[[Special:Ancientpages|특수:오래된문서]]에서 결과를 반환합니다.",
        "apihelp-query+recentchanges-param-prop": "추가 정보를 포함합니다:",
        "apihelp-query+recentchanges-paramvalue-prop-user": "편집에 임할 사용자를 추가하고 IP인 경우 태그합니다.",
        "apihelp-query+recentchanges-paramvalue-prop-userid": "편집에 임할 사용자를 추가합니다.",
index da23458..3abfdeb 100644 (file)
        "api-help-param-disabled-in-miser-mode": "Исклучено поради [[mw:Manual:$wgMiserMode|скржавиот режим]].",
        "api-help-param-limited-in-miser-mode": "<strong>Напомена:</strong> Бидејќи сте во [[mw:Manual:$wgMiserMode|скржав режим]], користејќи го ова може да добиете помалку од <var>$1limit</var> резултати пред да продолжите; во крајни случаи може да не добиете ниеден резултат.",
        "api-help-param-direction": "Во која насока да се набројува:\n;понови:Прво најстарите. Напомена: $1start мора да биде пред $1end.\n;постари:Прво најновите (по основно). Напомена: $1start мора да биде подоцна од $1end.",
-       "api-help-param-continue": "УпоÑ\82Ñ\80ебеÑ\82е Ð³Ð¾ Ð¾Ð²Ð° Ð·Ð° Ð´Ð° Ð¿Ñ\80одолжиÑ\82е ÐºÐ¾Ð³Ð° Ð¸Ð¼Ð° Ð¿Ð¾Ð²ÐµÑ\9cе Ñ\80аÑ\81положиви Ñ\80езÑ\83лÑ\82аÑ\82и.",
+       "api-help-param-continue": "УпоÑ\82Ñ\80ебеÑ\82е Ð³Ð¾ Ð¾Ð²Ð° Ð·Ð° Ð´Ð° Ð¿Ñ\80одолжиÑ\82е ÐºÐ¾Ð³Ð° Ð¸Ð¼Ð° Ð¿Ð¾Ð²ÐµÑ\9cе Ñ\80аÑ\81положиви Ñ\81Ñ\82авки.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(нема опис)</span>",
        "api-help-examples": "{{PLURAL:$1|Пример|Примери}}:",
        "api-help-permissions": "{{PLURAL:$1|Дозвола|Дозволи}}:",
index 8ebf223..6506036 100644 (file)
@@ -19,7 +19,7 @@
        "apihelp-main-param-curtimestamp": "Inkluder det nåværende tidsmerket i resultatet.",
        "apihelp-main-param-uselang": "Språk å bruke for meldingsoversettelser. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> med <kbd>siprop=languages</kbd> returnerer en liste over språkkoder, eller spesifiser <kbd>user</kbd> for å bruke den nåværende brukerens språkpreferanser, eller spesifiser <kbd>content</kbd> for å bruke denne wikiens innholdsspråk.",
        "apihelp-block-description": "Blokker en bruker.",
-       "apihelp-block-param-user": "Brukernavn, IP-adresse eller IP-intervall som skal blokkeres.",
+       "apihelp-block-param-user": "Brukernavn, IP-adresse eller IP-intervall som skal blokkeres. Kan ikke brukes sammen med <var>$1userid</var>",
        "apihelp-block-param-expiry": "Utløpstid. Kan være relativ (f.eks. <kbd>5 months</kbd> eller <kbd>2 weeks</kbd>) eller absolutt (f.eks. <kbd>2014-09-18T12:34:56Z</kbd>). Om den er satt til <kbd>infinite</kbd>, <kbd>indefinite</kbd> eller <kbd>never</kbd> vil blokkeringen ikke ha noen utløpsdato.",
        "apihelp-block-param-reason": "Årsak for blokkering.",
        "apihelp-block-param-anononly": "Blokker bare anonyme brukere (dvs. hindre anonyme redigeringer fra denne IP-adressen).",
@@ -89,7 +89,7 @@
        "apihelp-edit-param-minor": "Mindre redigering.",
        "apihelp-edit-param-notminor": "Ikke mindre redigering.",
        "apihelp-edit-param-bot": "Merk denne redigeringen som en botendring.",
-       "apihelp-edit-param-basetimestamp": "Tidsstempel for grunnrevisjonen, brukes for å oppdage redigeringskonflikter. Kan hentes via [[Special.ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-basetimestamp": "Tidsstempel for grunnrevisjonen, brukes for å oppdage redigeringskonflikter. Kan hentes via [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
        "apihelp-edit-param-starttimestamp": "Tidsstempel for når redigeringsprosessen begynte, brukes for å oppdage redigeringskonflikter. En gyldig verdi kan hentes med <var>[[Special:ApiHelp/main|curtimestamp]]</var> når man begynner en redigeringsprosess (f.eks. når man laster sideinnholdet som redigeres).",
        "apihelp-edit-param-recreate": "Overstyr feil om at siden har blitt slettet i mellomtiden.",
        "apihelp-edit-param-createonly": "Ikke rediger siden dersom den finnes allerede.",
        "apihelp-expandtemplates-description": "Ekspanderer alle maler i wikitekst.",
        "apihelp-expandtemplates-param-title": "Sidetittel.",
        "apihelp-expandtemplates-param-text": "Wikitekst som skal konverteres.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "Den utvidede wikiteksten.",
+       "apihelp-expandtemplates-paramvalue-prop-categories": "Kategorier som er tilstede i innputt som ikke representeres i utputt.",
        "apihelp-feedcontributions-param-year": "Fra år (og tidligere).",
        "apihelp-feedcontributions-param-month": "Fra måned (og tidligere).",
        "apihelp-feedcontributions-param-tagfilter": "Filtrer bidrag som har disse merkene.",
        "apihelp-feedcontributions-param-deletedonly": "Vis bare slettede bidrag.",
        "apihelp-feedcontributions-param-toponly": "Vis kun redigeringer som er gjeldende revisjoner.",
        "apihelp-feedcontributions-param-newonly": "Bare vis bidrag som er sideopprettinger.",
+       "apihelp-feedcontributions-param-hideminor": "Skjul mindre endringer.",
        "apihelp-feedcontributions-param-showsizediff": "Vis størrelsesforskjellen mellom revisjoner.",
+       "apihelp-feedcontributions-example-simple": "Returner bidrag for brukeren <kbd>Example</kbd>.",
+       "apihelp-feedrecentchanges-param-feedformat": "Matingens format.",
+       "apihelp-feedrecentchanges-param-namespace": "Navnerom resultater skal begrenses til.",
+       "apihelp-feedrecentchanges-param-invert": "Alle navnerom utenom det valgte.",
+       "apihelp-feedrecentchanges-param-associated": "Inkluder tilknyttede navnerom (diskusjons- eller hovednavnerom).",
+       "apihelp-feedrecentchanges-param-days": "Dager resultatene skal begrenses til.",
+       "apihelp-feedrecentchanges-param-limit": "Maksimalt antall resultater som skal returneres",
        "apihelp-feedrecentchanges-param-from": "Vis endringer siden da.",
        "apihelp-feedrecentchanges-param-hideminor": "Skjul mindre endringer.",
        "apihelp-feedrecentchanges-param-hidebots": "Skjul botendringer.",
+       "apihelp-feedrecentchanges-param-hideanons": "Skjul endringer gjort av anonyme brukere.",
+       "apihelp-feedrecentchanges-param-hideliu": "Skjul endringer gjort av registrerte brukere.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Skjul patruljerte endringer.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Skjul endringer gjort av den aktuelle brukeren.",
+       "apihelp-feedrecentchanges-param-hidecategorization": "Skjul endringer i kategorimedlemsskap.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Filtrer etter tagger.",
+       "apihelp-feedrecentchanges-param-target": "Vis bare endringer på sider som lenkes fra denne siden.",
+       "apihelp-feedrecentchanges-param-showlinkedto": "Vis endringer på sider som lenker til den valgte siden i stedet.",
+       "apihelp-feedrecentchanges-param-categories": "Vis bare endringer på sider i alle disse kategoriene.",
+       "apihelp-feedrecentchanges-param-categories_any": "Vis bare endringer på sider som er i noen av kategoriene i stedet.",
+       "apihelp-feedrecentchanges-example-simple": "Vis siste endringer.",
+       "apihelp-feedrecentchanges-example-30days": "Vis siste endringer for 30 døgn.",
+       "apihelp-feedwatchlist-description": "Returnerer en overvåkningslistemating.",
+       "apihelp-feedwatchlist-param-feedformat": "Matingens format.",
        "apihelp-help-param-toc": "Inkluder en innholdsfortegnelse i HTML-utdataen.",
        "apihelp-help-example-main": "Hjelp for hovedmodulen.",
        "apihelp-help-example-recursive": "All hjelp på en side.",
        "apihelp-help-example-help": "Hjelp for selve hjelpemodulen.",
        "apihelp-help-example-query": "Hjelp for to utspørringsundermoduler.",
        "apihelp-imagerotate-description": "Roter ett eller flere bilder.",
-       "apihelp-import-param-summary": "Importsammendrag.",
+       "apihelp-import-param-summary": "Sammendrag for importering av loggelement.",
        "apihelp-import-param-xml": "Opplastet XML-fil.",
        "apihelp-login-param-name": "Brukernavn.",
        "apihelp-login-param-password": "Passord.",
index ac2c8b7..c1a71a4 100644 (file)
@@ -14,7 +14,8 @@
                        "Robin van der Vliet",
                        "Edoderoo",
                        "Lemondoge",
-                       "Hex"
+                       "Hex",
+                       "Mainframe98"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentatie]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-maillijst]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-aankondigingen]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & verzoeken]\n</div>\n<strong>Status:</strong> Alle functies die op deze pagina worden weergegeven horen te werken. Aan de API wordt actief gewerkt, en deze kan gewijzigd worden. Abonneer u op  de [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-maillijst mediawiki-api-announce] voor meldingen over aanpassingen.\n\n<strong>Foutieve verzoeken:</strong> als de API foutieve verzoeken ontvangt, wordt er geantwoord met een HTTP-header met de sleutel \"MediaWiki-API-Error\" en daarna worden de waarde van de header en de foutcode op dezelfde waarde ingesteld. Zie [[mw:API:Errors_and_warnings|API: Errors and warnings]] voor meer informatie.\n\n<strong>Testen:</strong> u kunt [[Special:ApiSandbox|eenvoudig API-verzoeken testen]].",
@@ -28,7 +29,8 @@
        "apihelp-main-param-servedby": "Voeg de hostnaam van de server die de aanvraag heeft afgehandeld toe aan het antwoord.",
        "apihelp-main-param-curtimestamp": "Huidige tijd aan het antwoord toevoegen.",
        "apihelp-block-description": "Gebruiker blokkeren.",
-       "apihelp-block-param-user": "Gebruikersnaam, IP-adres of IP-range om te blokkeren.",
+       "apihelp-block-param-user": "Gebruikersnaam, IP-adres of IP-range om te blokkeren. Kan niet samen worden gebruikt me <var>$1userid</var>",
+       "apihelp-block-param-userid": "Gebruikers-ID om te blokkeren. Kan niet worden gebruikt in combinatie met <var>$1user</var>.",
        "apihelp-block-param-reason": "Reden voor blokkade.",
        "apihelp-block-param-anononly": "Alleen anonieme gebruikers blokkeren (uitschakelen van anonieme bewerkingen via dit IP-adres)",
        "apihelp-block-param-nocreate": "Voorkom registeren van accounts.",
        "apihelp-createaccount-param-name": "Gebruikersnaam.",
        "apihelp-createaccount-param-email": "E-mailadres van de gebruiker (optioneel).",
        "apihelp-createaccount-param-realname": "Echte naam van de gebruiker (optioneel).",
+       "apihelp-createaccount-example-pass": "Maak gebruiker <kbd>testuser</kbd> aan met wachtwoord <kbd>test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Maak gebruiker <kbd>testmailuser</kbd> aan en e-mail een willekeurig gegenereerd wachtwoord.",
        "apihelp-delete-description": "Een pagina verwijderen.",
+       "apihelp-delete-param-pageid": "ID van de pagina om te verwijderen. Kan niet samen worden gebruikt met <var>$1title</var>.",
        "apihelp-delete-param-reason": "Reden voor verwijdering. Wanneer dit niet is opgegeven wordt een automatisch gegenereerde reden gebruikt.",
        "apihelp-delete-param-watch": "De pagina aan de volglijst van de huidige gebruiker toevoegen.",
        "apihelp-delete-param-unwatch": "De pagina van de volglijst van de huidige gebruiker verwijderen.",
@@ -56,6 +61,7 @@
        "apihelp-disabled-description": "Deze module is uitgeschakeld.",
        "apihelp-edit-description": "Aanmaken en bewerken van pagina's.",
        "apihelp-edit-param-title": "Naam van de pagina om te bewerken. Kan niet gebruikt worden samen met <var>$1pageid</var>.",
+       "apihelp-edit-param-pageid": "ID van de pagina om te bewerken. Kan niet samen worden gebruikt met <var>$1title</var>.",
        "apihelp-edit-param-sectiontitle": "De naam van de nieuwe sectie.",
        "apihelp-edit-param-text": "Pagina-inhoud.",
        "apihelp-edit-param-tags": "Wijzigingslabels om aan de versie toe te voegen.",
        "apihelp-expandtemplates-paramvalue-prop-ttl": "De maximale tijdsduur waarna de cache van het resultaat moet worden weggegooid.",
        "apihelp-feedcontributions-description": "Haalt de feed van de gebruikersbijdragen op.",
        "apihelp-feedcontributions-param-feedformat": "De indeling van de feed.",
+       "apihelp-feedcontributions-param-user": "De gebruiker om de bijdragen voor te verkrijgen.",
        "apihelp-feedcontributions-param-year": "Van jaar (en eerder).",
        "apihelp-feedcontributions-param-month": "Van maand (en eerder).",
        "apihelp-feedcontributions-param-deletedonly": "Alleen verwijderde bijdragen weergeven.",
+       "apihelp-feedcontributions-param-hideminor": "Verberg kleine bewerkingen.",
+       "apihelp-feedrecentchanges-param-invert": "Alle naamruimten behalve de geselecteerde.",
+       "apihelp-feedrecentchanges-param-limit": "Het maximaal aantal weer te geven resultaten.",
        "apihelp-feedrecentchanges-param-hideminor": "Kleine wijzigingen verbergen.",
        "apihelp-feedrecentchanges-param-hidebots": "Wijzigingen gedaan door bots verbergen.",
        "apihelp-feedrecentchanges-param-hideanons": "Wijzigingen gedaan door anonieme gebruikers verbergen.",
        "apihelp-feedrecentchanges-example-simple": "Recente wijzigingen weergeven.",
        "apihelp-feedrecentchanges-example-30days": "Recente wijzigingen van de afgelopen 30 dagen weergeven.",
        "apihelp-filerevert-description": "Een oude versie van een bestand terugplaatsen.",
+       "apihelp-help-example-recursive": "Alle hulp op een pagina.",
+       "apihelp-help-example-help": "Help voor de help-module zelf.",
        "apihelp-imagerotate-description": "Een of meerdere afbeeldingen draaien.",
        "apihelp-import-param-xml": "Geüpload XML-bestand.",
        "apihelp-import-param-namespace": "Importeren in deze naamruimte. Can niet samen gebruikt worden met <var>$1rootpage</var>.",
        "apihelp-query+watchlist-paramvalue-type-log": "Logboekregels.",
        "apihelp-query+watchlist-paramvalue-type-categorize": "Wijzigingen in categorielidmaatschap.",
        "apihelp-stashedit-param-text": "Pagina-inhoud.",
+       "apihelp-unblock-param-user": "Gebruikersnaam, IP-adres of IP-range om te deblokkeren. Kan niet samen worden gebruikt met <var>$1id</var> of <var>$luserid</var>.",
+       "apihelp-unblock-param-userid": "Gebruikers-ID om te deblokkeren. Kan niet worden gebruikt in combinatie met <var>$1id</var> of <var>$1user</var>.",
        "apihelp-json-param-formatversion": "Uitvoeropmaak:\n;1:Achterwaarts compatibele opmaak (XML-stijl booleans, <samp>*</samp>-sleutels voor contentnodes, enzovoort).\n;2:Experimentele moderne opmaak. Details kunnen wijzigen!\n;latest:Gebruik de meest recente opmaak (op het moment <kbd>2</kbd>), kan zonder waarschuwing wijzigen.",
        "apihelp-php-param-formatversion": "Uitvoeropmaak:\n;1:Achterwaarts compatibele opmaak (XML-stijl booleans, <samp>*</samp>-sleutels voor contentnodes, enzovoort).\n;2:Experimentele moderne opmaak. Details kunnen wijzigen!\n;latest:Gebruik de meest recente opmaak (op het moment <kbd>2</kbd>), kan zonder waarschuwing wijzigen.",
        "apihelp-rawfm-description": "Uitvoergegevens, inclusief debugelementen, opgemaakt in JSON (nette opmaak in HTML).",
        "api-help-param-deprecated": "Verouderd.",
        "api-help-datatypes-header": "Gegevenstypen",
        "api-help-param-default": "Standaard: $1",
+       "apierror-autoblocked": "Uw IP-adres is automatisch geblokeerd, omdat het gebruikt is door een geblokkeerde gebruiker.",
+       "apierror-badmodule-nosubmodules": "De module <kbd>$1</kbd> heeft geen submodules.",
+       "apierror-blockedfrommail": "U bent geblokkeerd en kunt geen emails verzenden.",
+       "apierror-blocked": "U bent geblokkeerd en kunt niet bewerken.",
+       "apierror-filedoesnotexist": "Bestand bestaat niet.",
+       "apierror-integeroutofrange-belowminimum": "<var>$1</var> mag niet minder zijn dan $2 (ingesteld op $3).",
+       "apierror-invalidcategory": "De opgegeven categorienaam is niet geldig.",
+       "apierror-invaliduser": "Ongeldige gebruikersnaam \"$1\".",
+       "apierror-maxlag-generic": "Wachten op een database server: $1 {{PLURAL:$1|seconde|seconden}} vertraging.",
+       "apierror-maxlag": "Wachten op $2: $1 {{PLURAL:$1|seconde|seconden}} vertraging.",
+       "apierror-missingtitle": "De opgegeven pagina bestaat niet.",
+       "apierror-missingtitle-byname": "De pagina $1 bestaat niet.",
+       "apierror-mustbeloggedin-generic": "U moet ingelogd zijn.",
+       "apierror-nosuchuserid": "Er is geen gebruiker met ID $1.",
+       "apierror-permissiondenied": "U heeft geen toestemming om $1.",
+       "apierror-permissiondenied-generic": "Toegang geweigerd.",
+       "apierror-readonly": "De wiki is momenteel in alleen-lezen modus.",
+       "apierror-systemblocked": "U bent automatisch geblokkeerd door MediaWiki.",
+       "apierror-unknownerror-nocode": "Onbekende fout.",
+       "apierror-unknownerror": "Onbekende fout: \"$1\".",
+       "apierror-unrecognizedparams": "Niet-herkende {{PLURAL:$2|parameter|parameters}}: $1.",
+       "apiwarn-invalidcategory": "\"$1\" is geen categorie.",
+       "apiwarn-invalidtitle": "\"$1\" is geen geldige titel.",
+       "apiwarn-notfile": "\"$1\" is geen bestand.",
+       "apiwarn-validationfailed-badpref": "geen geldige voorkeur.",
+       "api-feed-error-title": "Fout ($1)",
+       "api-usage-docref": "Zie $1 voor API gebruik.",
        "api-credits-header": "Vermeldingen",
        "api-credits": "API-ontwikkelaars:\n* Roan Kattouw (hoofdontwikkelaar september 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (oorspronkelijke ontwikkelaar, hoofdontwikkelaar september 2006 – september 2007)\n* Brad Jorsch (hoofdontwikkelaar 2013 – heden)\n\nStuur uw opmerkingen, suggesties en vragen naar mediawiki-api@lists.wikimedia.org\nof maak een melding aan op https://phabricator.wikimedia.org/."
 }
index 7ecfebe..f03af90 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Cedric31",
-                       "Macofe"
+                       "Macofe",
+                       "Nicolas Eynaud"
                ]
        },
        "apihelp-main-param-action": "Quina accion cal efectuar.",
@@ -17,6 +18,7 @@
        "apihelp-compare-param-totitle": "Segond títol de comparar.",
        "apihelp-compare-param-toid": "ID de la segonda pagina de comparar.",
        "apihelp-compare-param-torev": "Segonda revision de comparar.",
+       "apihelp-compare-example-1": "Crear un diff entre lei revisions 1 e 2",
        "apihelp-createaccount-description": "Creatz un novèl compte d'utilizaire.",
        "apihelp-createaccount-param-name": "Nom d'utilizaire.",
        "apihelp-createaccount-param-password": "Senhal (ignorat se <var>$1mailpassword</var> es definit).",
@@ -49,6 +51,7 @@
        "apihelp-feedrecentchanges-param-feedformat": "Lo format del flux.",
        "apihelp-feedrecentchanges-param-hideminor": "Amagar las modificacions menoras.",
        "apihelp-feedrecentchanges-param-tagfilter": "Filtrar per balisa.",
+       "apihelp-feedrecentchanges-example-simple": "Mostrar lei darriers cambiaments.",
        "apihelp-filerevert-param-comment": "Telecargar lo comentari.",
        "apihelp-filerevert-param-archivename": "Nom d’archiu de la revision de restablir.",
        "apihelp-import-param-summary": "Resumit de l’importacion de l’entrada de jornal.",
@@ -58,6 +61,7 @@
        "apihelp-login-param-domain": "Domeni (facultatiu).",
        "apihelp-login-example-login": "Se connectar.",
        "apihelp-managetags-description": "Efectuar de prètzfaits de gestion relatius a la modificacion de las balisas.",
+       "apihelp-mergehistory-description": "Fusionar leis istorics de pagina",
        "apihelp-move-description": "Desplaçar una pagina.",
        "apihelp-opensearch-param-search": "Cadena de recèrca.",
        "apihelp-parse-example-page": "Analisar una pagina.",
        "apihelp-query+allcategories-description": "Enumerar totas las categorias.",
        "apihelp-query+alldeletedrevisions-param-from": "Aviar la lista a aqueste títol.",
        "apihelp-query+allimages-param-sort": "Proprietat per la quala cal triar.",
+       "apihelp-query+allredirects-paramvalue-prop-title": "Ajustatz lo títol de la redireccion.",
        "apihelp-query+blocks-example-simple": "Listar los blocatges",
        "apihelp-query+blocks-example-users": "Listar los blocatges dels utilizaires <kbd>Alice</kbd> e <kbd>Bob</kbd>.",
        "apihelp-query+imageinfo-param-urlheight": "Similar a $1urlwidth.",
        "apihelp-query+revisions+base-paramvalue-prop-content": "Tèxte de la revision.",
        "apihelp-query+revisions+base-paramvalue-prop-tags": "Balisas de la revision.",
+       "apihelp-query+watchlist-paramvalue-type-external": "Cambiaments extèrnes",
+       "apihelp-query+watchlist-paramvalue-type-new": "Creacions de pagina",
+       "apihelp-resetpassword-description": "Mandar un corrier electronic de reïnicializacion de son senhau a l'utilizaire.",
+       "apihelp-stashedit-param-text": "Contengut de la pagina",
        "apihelp-tag-param-reason": "Motiu de la modificacion.",
        "apihelp-unblock-description": "Desblocar un utilizaire.",
        "apihelp-unblock-param-reason": "Motiu del desblocatge.",
        "apihelp-unblock-example-id": "Levar lo blocatge d’ID #<kbd>105</kbd>.",
+       "apihelp-undelete-param-reason": "Motiu de restauracion.",
        "apihelp-userrights-param-user": "Nom d'utilizaire.",
        "apihelp-userrights-param-userid": "ID de l'utilizaire.",
+       "apihelp-validatepassword-param-password": "Senhau de validar.",
        "api-help-main-header": "Modul principal",
+       "api-help-flag-deprecated": "Lo module es desaprovat.",
        "api-help-source": "Font : $1",
        "api-help-source-unknown": "Font : <span class=\"apihelp-unknown\">desconeguda</span>",
        "api-help-license": "Licéncia : [[$1|$2]]",
        "api-help-param-required": "Aqueste paramètre es obligatòri.",
        "api-help-datatypes-header": "Tipe de donadas",
        "api-help-param-default": "Per defaut : $1",
+       "apierror-badquery": "Requista invalida.",
+       "apierror-cannotviewtitle": "Siatz autorizat a veire $1.",
+       "apierror-cantblock-email": "Sus aqueu wiki, avètz pas lei drechs necessaris per empedir leis utilizats de mandar de corriers electronics.",
+       "apierror-cantblock": "Avètz pas lei drechs necessaris per blocar d'utilizaires.",
+       "apierror-canthide": "Avètz pas lei drechs necessaris per escondre lo nom d'un utilizaire dins lo jornau dei blocatges.",
+       "apierror-cantimport-upload": "Avètz pas lei drechs necessaris per importar de paginas telecargadas.",
+       "apierror-cantimport": "Avètz pas lei drechs necesaris per importar de paginas.",
+       "apierror-copyuploadbadurl": "Telecargament pas autorizat a partir d'aquel URL.",
+       "apierror-create-titleexists": "Lei títols existents pòdon pas èsser protegits amb <kbd>create</kbd>.",
+       "apierror-emptynewsection": "La creacion de seccions vuejas novèlas es pas possibla.",
+       "apierror-filedoesnotexist": "Lo fichier existís pas.",
+       "apierror-noedit": "Avètz pas lei drechs necessaris per editar de paginas.",
+       "apierror-noimageredirect-anon": "Leis utilizaires anonims pòdon pas crear de redireccions d'imatge.",
+       "apierror-noimageredirect": "Avètz pas lei drechs necessaris per crear de redireccions d'imatge.",
+       "apierror-nosuchsection": "I a ges seccion $1",
+       "apierror-nosuchsection-what": "I a ges seccion $1 dins $1",
+       "apierror-permissiondenied-generic": "Autorizacion refusada.",
+       "apierror-unknownerror-nocode": "Error desconeguda.",
+       "apierror-unknownerror": "Error desconeguda : $1",
+       "apierror-unknownformat": "Format $1 non reconegut",
+       "apierror-unrecognizedvalue": "Valor pas reconeguda per lo paramètre <var>$1</var>: $2.",
+       "apiwarn-invalidcategory": "\"$1\" es pas una categoria.",
+       "apiwarn-invalidtitle": "\"$1\" es pas un títol valide.",
+       "apiwarn-notfile": "$1 es pas un fichier.",
+       "apiwarn-tokennotallowed": "L'accion $1 es pas autorizada per l'utilizaire actuau.",
+       "apiwarn-validationfailed-badpref": "Pas una preferéncia valida.",
+       "api-feed-error-title": "Error ($1)",
        "api-credits-header": "Mercejaments"
 }
index d3fc2f3..7369ee1 100644 (file)
        "apihelp-emailuser-param-text": "Treść emaila.",
        "apihelp-emailuser-param-ccme": "Wyślij kopię wiadomości do mnie.",
        "apihelp-emailuser-example-email": "Wyślij e-mail do użytkownika <kbd>WikiSysop</kbd> z tekstem <kbd>Content</kbd>.",
-       "apihelp-expandtemplates-description": "Rozwiń wszystkie szablony w wikitexcie.",
+       "apihelp-expandtemplates-description": "Rozwija wszystkie szablony zawarte w wikitekście.",
        "apihelp-expandtemplates-param-title": "Tytuł strony.",
        "apihelp-expandtemplates-param-text": "Wikitext do przekonwertowania.",
+       "apihelp-expandtemplates-param-revid": "ID wersji, dla <nowiki>{{REVISIONID}}</nowiki> i podobnych zmiennych.",
        "apihelp-expandtemplates-paramvalue-prop-wikitext": "Rozszerzony wikitext.",
+       "apihelp-feedcontributions-description": "Zwraca kanał wkładu użytkownika.",
        "apihelp-feedcontributions-param-feedformat": "Format danych wyjściowych.",
+       "apihelp-feedcontributions-param-user": "Jakich użytkowników pobrać wkład.",
+       "apihelp-feedcontributions-param-namespace": "Z jakiej przestrzeni nazw wyświetlać wkład użytkownika.",
        "apihelp-feedcontributions-param-year": "Od roku (i wcześniej).",
        "apihelp-feedcontributions-param-month": "Od miesiąca (i wcześniej).",
+       "apihelp-feedcontributions-param-tagfilter": "Pokaż tylko wkład z tymi znacznikami.",
        "apihelp-feedcontributions-param-deletedonly": "Pokazuj tylko usunięty wkład.",
        "apihelp-feedcontributions-param-toponly": "Pokazuj tylko edycje będące ostatnią zmianą strony.",
        "apihelp-feedcontributions-param-newonly": "Pokazuj tylko edycje tworzące stronę.",
        "apihelp-feedcontributions-param-hideminor": "Ukryj drobne zmiany.",
        "apihelp-feedcontributions-param-showsizediff": "Pokaż różnicę rozmiaru między wersjami.",
+       "apihelp-feedcontributions-example-simple": "Zwróć liste edycji dokonanych przez użytkownika <kbd>Example</kbd>.",
+       "apihelp-feedrecentchanges-description": "Zwraca kanał ostatnich zmian.",
        "apihelp-feedrecentchanges-param-feedformat": "Format danych wyjściowych.",
        "apihelp-feedrecentchanges-param-namespace": "Przestrzeń nazw, do której ograniczone są wyniki.",
        "apihelp-feedrecentchanges-param-invert": "Wszystkie przestrzenie nazw oprócz wybranej.",
+       "apihelp-feedrecentchanges-param-associated": "Uwzględnij powiązaną przestrzeń nazw (dyskusja lub treść).",
        "apihelp-feedrecentchanges-param-days": "Dni, do których ograniczone są wyniki.",
        "apihelp-feedrecentchanges-param-limit": "Maksymalna liczba zwracanych wyników.",
        "apihelp-feedrecentchanges-param-from": "Pokaż zmiany od tamtej chwili.",
        "apihelp-feedrecentchanges-param-hideliu": "Ukryj zmiany zrobione przez zarejestrowanych użytkowników.",
        "apihelp-feedrecentchanges-param-hidepatrolled": "Ukryj sprawdzone zmiany.",
        "apihelp-feedrecentchanges-param-hidemyself": "Ukryj zmiany zrobione przez obecnego użytkownika.",
+       "apihelp-feedrecentchanges-param-hidecategorization": "Ukryj zmiany w kategoryzacji.",
        "apihelp-feedrecentchanges-param-tagfilter": "Filtruj po znacznikach.",
+       "apihelp-feedrecentchanges-param-target": "Pokaż tylko zmiany na stronach linkowanych z tej strony.",
+       "apihelp-feedrecentchanges-param-showlinkedto": "Pokaż zmiany na stronach linkujących do wybranej strony.",
+       "apihelp-feedrecentchanges-param-categories": "Pokaż zmiany tylko na stronach będących we wszystkich tych kategoriach.",
+       "apihelp-feedrecentchanges-param-categories_any": "Pokaż zmiany tylko na stronach będących w jednej z tych kategorii.",
        "apihelp-feedrecentchanges-example-simple": "Pokaż ostatnie zmiany.",
        "apihelp-feedrecentchanges-example-30days": "Pokaż ostatnie zmiany z 30 dni.",
+       "apihelp-feedwatchlist-description": "Zwraca kanał listy obserwowanych.",
+       "apihelp-feedwatchlist-param-feedformat": "Format kanału.",
+       "apihelp-feedwatchlist-param-hours": "Wymień strony zmienione w ciągu tylu godzin licząc od teraz.",
+       "apihelp-feedwatchlist-param-linktosections": "Linkuj bezpośrednio do zmienionych sekcji jeżeli to możliwe.",
+       "apihelp-feedwatchlist-example-default": "Pokaż kanał listy obserwowanych.",
+       "apihelp-feedwatchlist-example-all6hrs": "Pokaż wszystkie zmiany na obserwowanych stronach dokonane w ciągu ostatnich 6 godzin.",
        "apihelp-filerevert-description": "Przywróć plik do starej wersji.",
        "apihelp-filerevert-param-filename": "Docelowa nazwa pliku bez prefiksu Plik:",
        "apihelp-filerevert-param-comment": "Prześlij komentarz.",
        "apihelp-filerevert-example-revert": "Przywróć <kbd>Wiki.png</kbd> do wersji z <kbd>2011-03-05T15:27:40Z</kbd>.",
        "apihelp-help-description": "Wyświetl pomoc dla określonych modułów.",
        "apihelp-help-param-modules": "Moduły do wyświetlenia pomocy dla (wartości <var>action</var> i <var>format</var> parametry, lub <kbd>main</kbd>). Może określić podmoduły z <kbd>+</kbd>.",
+       "apihelp-help-param-submodules": "Dołącz pomoc podmodułów nazwanego modułu.",
        "apihelp-help-param-recursivesubmodules": "Zawiera pomoc dla podmodułów rekursywnie.",
        "apihelp-help-param-helpformat": "Format wyjściowy pomocy.",
        "apihelp-help-param-toc": "Dołącz spis treści do wyjściowego HTML.",
        "apihelp-login-example-login": "Zaloguj się",
        "apihelp-logout-description": "Wyloguj i wyczyść dane sesji.",
        "apihelp-logout-example-logout": "Wyloguj obecnego użytkownika.",
+       "apihelp-managetags-description": "Wykonywanie zadań związanych z zarządzaniem znacznikami zmian.",
+       "apihelp-managetags-param-operation": "Jakiej operacji dokonać:\n;create:Stworzenie nowego znacznika zmian do ręcznego użycia.\n;delete:Usunięcie znacznika zmian z bazy danych, włącznie z usunięciem danego znacznika z wszystkich oznaczonych nim zmian i wpisów rejestru i ostatnich zmian.\n;activate:Aktywuj znacznik zmian, użytkownicy będą mogli go ręcznie przypisywać.\n;deactivate:Dezaktywuj znacznik zmian, użytkownicy nie będą mogli przypisywać go ręcznie.",
+       "apihelp-managetags-param-tag": "Znacznik do utworzenia, usunięcia, aktywacji lub dezaktywacji. Do utworzenia znacznika, nazwa nie misi istnieć. Do usunięcia znacznika, musi on istnieć. Do aktywacji znacznika, musi on istnieć i nie może być w użyciu przez żadne rozszerzenie. Do dezaktywowania znacznika, musi on być do tej pory aktywowany i ręcznie zdefiniowany.",
        "apihelp-managetags-param-reason": "Opcjonalny powód utworzenia, usunięcia, włączenia lub wyłączenia znacznika.",
        "apihelp-managetags-param-ignorewarnings": "Czy zignorować ostrzeżenia, które pojawiają się w trakcie operacji.",
+       "apihelp-managetags-example-create": "Stworzenie znacznika o nazwie <kbd>spam</kbd> z powodem <kbd>For use in edit patrolling</kbd>",
+       "apihelp-managetags-example-delete": "Usunięcie znacznika <kbd>vandlaism</kbd> z powodu <kbd>Misspelt</kbd>",
+       "apihelp-managetags-example-activate": "Aktywacja znacznika o nazwie <kbd>spam</kbd> z powodem <kbd>For use in edit patrolling</kbd>",
+       "apihelp-managetags-example-deactivate": "Dezaktywacja znacznika o nazwie <kbd>spam</kbd> z powodu <kbd>No longer required</kbd>",
        "apihelp-mergehistory-description": "Łączenie historii edycji.",
+       "apihelp-mergehistory-param-from": "Tytuł strony, z której historia ma zostać połączona. Nie może być używane z <var>$1fromid</var>.",
+       "apihelp-mergehistory-param-fromid": "ID strony, z której historia ma zostać połączona. Nie może być używane z <var>$1from</var>.",
+       "apihelp-mergehistory-param-to": "Tytuł strony, z którą połączyć historię. Nie może być używane z <var>$1toid</var>.",
+       "apihelp-mergehistory-param-toid": "ID strony, z którą połączyć historię. Nie może być używane z <var>$1to</var>.",
        "apihelp-mergehistory-param-reason": "Powód łączenia historii.",
+       "apihelp-mergehistory-example-merge": "Połącz całą historię strony <kbd>Oldpage</kbd> ze stroną <kbd>Newpage</kbd>.",
        "apihelp-move-description": "Przenieś stronę.",
        "apihelp-move-param-to": "Tytuł na jaki zmienić nazwę strony.",
        "apihelp-move-param-reason": "Powód zmiany nazwy.",
        "api-help-permissions-granted-to": "{{PLURAL:$1|Przydzielone dla}}: $2",
        "api-help-right-apihighlimits": "Użyj wyższych limitów w zapytaniach API (dla zapytań powolnych: $1; dla zapytań szbkich: $2). Limity zapytań powolnych są także stosowane dla parametrów z podanymi wieloma wartościami.",
        "api-help-open-in-apisandbox": "<small>[otwórz w brudnopisie]</small>",
+       "apierror-baddiff": "Różnicy wersji nie można odtworzyć. Jedna lub obie wersje nie istnieją, lub nie masz uprawnień do ich wyświetlenia.",
        "apierror-badgenerator-unknown": "Nieznany <kbd>generator=$1</kbd>.",
        "apierror-badip": "Parametr IP nie jest prawidłowy.",
        "apierror-badquery": "Nieprawidłowe zapytanie.",
index 3c82486..662020b 100644 (file)
        "apihelp-query+allfileusages-param-prefix": "{{doc-apihelp-param|query+allfileusages|prefix}}",
        "apihelp-query+allfileusages-param-unique": "{{doc-apihelp-param|query+allfileusages|unique}}",
        "apihelp-query+allfileusages-param-prop": "{{doc-apihelp-param|query+allfileusages|prop|paramvalues=1}}",
-       "apihelp-query+allfileusages-paramvalue-prop-ids": "{{doc-apihelp-param|query+allfileusages|prop|ids}}",
-       "apihelp-query+allfileusages-paramvalue-prop-title": "{{doc-apihelp-param|query+allfileusages|prop|title}}",
+       "apihelp-query+allfileusages-paramvalue-prop-ids": "{{doc-apihelp-paramvalue|query+allfileusages|prop|ids}}",
+       "apihelp-query+allfileusages-paramvalue-prop-title": "{{doc-apihelp-paramvalue|query+allfileusages|prop|title}}",
        "apihelp-query+allfileusages-param-limit": "{{doc-apihelp-param|query+allfileusages|limit}}",
        "apihelp-query+allfileusages-param-dir": "{{doc-apihelp-param|query+allfileusages|dir}}",
        "apihelp-query+allfileusages-example-B": "{{doc-apihelp-example|query+allfileusages}}",
        "apihelp-query+allredirects-param-prefix": "{{doc-apihelp-param|query+allredirects|prefix}}",
        "apihelp-query+allredirects-param-unique": "{{doc-apihelp-param|query+allredirects|unique}}",
        "apihelp-query+allredirects-param-prop": "{{doc-apihelp-param|query+allredirects|prop|paramvalues=1}}",
-       "apihelp-query+allredirects-paramvalue-prop-ids": "{{doc-apihelp-param|query+allredirects|prop|ids}}",
-       "apihelp-query+allredirects-paramvalue-prop-title": "{{doc-apihelp-param|query+allredirects|prop|title}}",
-       "apihelp-query+allredirects-paramvalue-prop-fragment": "{{doc-apihelp-param|query+allredirects|prop|fragment}}",
-       "apihelp-query+allredirects-paramvalue-prop-interwiki": "{{doc-apihelp-param|query+allredirects|prop|interwiki}}",
+       "apihelp-query+allredirects-paramvalue-prop-ids": "{{doc-apihelp-paramvalue|query+allredirects|prop|ids}}",
+       "apihelp-query+allredirects-paramvalue-prop-title": "{{doc-apihelp-paramvalue|query+allredirects|prop|title}}",
+       "apihelp-query+allredirects-paramvalue-prop-fragment": "{{doc-apihelp-paramvalue|query+allredirects|prop|fragment}}",
+       "apihelp-query+allredirects-paramvalue-prop-interwiki": "{{doc-apihelp-paramvalue|query+allredirects|prop|interwiki}}",
        "apihelp-query+allredirects-param-namespace": "{{doc-apihelp-param|query+allredirects|namespace}}",
        "apihelp-query+allredirects-param-limit": "{{doc-apihelp-param|query+allredirects|limit}}",
        "apihelp-query+allredirects-param-dir": "{{doc-apihelp-param|query+allredirects|dir}}",
        "apihelp-query+categorymembers-param-title": "{{doc-apihelp-param|query+categorymembers|title}}",
        "apihelp-query+categorymembers-param-pageid": "{{doc-apihelp-param|query+categorymembers|pageid}}",
        "apihelp-query+categorymembers-param-prop": "{{doc-apihelp-param|query+categorymembers|prop|paramvalues=1}}",
-       "apihelp-query+categorymembers-paramvalue-prop-ids": "{{doc-apihelp-param|query+categorymembers|prop|ids}}",
-       "apihelp-query+categorymembers-paramvalue-prop-title": "{{doc-apihelp-param|query+categorymembers|prop|title}}",
-       "apihelp-query+categorymembers-paramvalue-prop-sortkey": "{{doc-apihelp-param|query+categorymembers|prop|sortkey}}",
-       "apihelp-query+categorymembers-paramvalue-prop-sortkeyprefix": "{{doc-apihelp-param|query+categorymembers|prop|sortkeyprefix}}",
-       "apihelp-query+categorymembers-paramvalue-prop-type": "{{doc-apihelp-param|query+categorymembers|prop|type}}",
-       "apihelp-query+categorymembers-paramvalue-prop-timestamp": "{{doc-apihelp-param|query+categorymembers|prop|timestamp}}",
+       "apihelp-query+categorymembers-paramvalue-prop-ids": "{{doc-apihelp-paramvalue|query+categorymembers|prop|ids}}",
+       "apihelp-query+categorymembers-paramvalue-prop-title": "{{doc-apihelp-paramvalue|query+categorymembers|prop|title}}",
+       "apihelp-query+categorymembers-paramvalue-prop-sortkey": "{{doc-apihelp-paramvalue|query+categorymembers|prop|sortkey}}",
+       "apihelp-query+categorymembers-paramvalue-prop-sortkeyprefix": "{{doc-apihelp-paramvalue|query+categorymembers|prop|sortkeyprefix}}",
+       "apihelp-query+categorymembers-paramvalue-prop-type": "{{doc-apihelp-paramvalue|query+categorymembers|prop|type}}",
+       "apihelp-query+categorymembers-paramvalue-prop-timestamp": "{{doc-apihelp-paramvalue|query+categorymembers|prop|timestamp}}",
        "apihelp-query+categorymembers-param-namespace": "{{doc-apihelp-param|query+categorymembers|namespace}}",
        "apihelp-query+categorymembers-param-type": "{{doc-apihelp-param|query+categorymembers|type}}",
        "apihelp-query+categorymembers-param-limit": "{{doc-apihelp-param|query+categorymembers|limit}}",
        "apihelp-query+langbacklinks-param-title": "{{doc-apihelp-param|query+langbacklinks|title}}",
        "apihelp-query+langbacklinks-param-limit": "{{doc-apihelp-param|query+langbacklinks|limit}}",
        "apihelp-query+langbacklinks-param-prop": "{{doc-apihelp-param|query+langbacklinks|prop|paramvalues=1}}",
-       "apihelp-query+langbacklinks-paramvalue-prop-lllang": "{{doc-apihelp-param|query+langbacklinks|prop|lllang}}",
-       "apihelp-query+langbacklinks-paramvalue-prop-lltitle": "{{doc-apihelp-param|query+langbacklinks|prop|lltitle}}",
+       "apihelp-query+langbacklinks-paramvalue-prop-lllang": "{{doc-apihelp-paramvalue|query+langbacklinks|prop|lllang}}",
+       "apihelp-query+langbacklinks-paramvalue-prop-lltitle": "{{doc-apihelp-paramvalue|query+langbacklinks|prop|lltitle}}",
        "apihelp-query+langbacklinks-param-dir": "{{doc-apihelp-param|query+langbacklinks|dir}}",
        "apihelp-query+langbacklinks-example-simple": "{{doc-apihelp-example|query+langbacklinks}}",
        "apihelp-query+langbacklinks-example-generator": "{{doc-apihelp-example|query+langbacklinks}}",
        "apihelp-query+pageswithprop-description": "{{doc-apihelp-description|query+pageswithprop}}",
        "apihelp-query+pageswithprop-param-propname": "{{doc-apihelp-param|query+pageswithprop|propname}}",
        "apihelp-query+pageswithprop-param-prop": "{{doc-apihelp-param|query+pageswithprop|prop|paramvalues=1}}",
-       "apihelp-query+pageswithprop-paramvalue-prop-ids": "{{doc-apihelp-param|query+pageswithprop|prop|ids}}",
-       "apihelp-query+pageswithprop-paramvalue-prop-title": "{{doc-apihelp-param|query+pageswithprop|prop|title}}",
-       "apihelp-query+pageswithprop-paramvalue-prop-value": "{{doc-apihelp-param|query+pageswithprop|prop|value}}",
+       "apihelp-query+pageswithprop-paramvalue-prop-ids": "{{doc-apihelp-paramvalue|query+pageswithprop|prop|ids}}",
+       "apihelp-query+pageswithprop-paramvalue-prop-title": "{{doc-apihelp-paramvalue|query+pageswithprop|prop|title}}",
+       "apihelp-query+pageswithprop-paramvalue-prop-value": "{{doc-apihelp-paramvalue|query+pageswithprop|prop|value}}",
        "apihelp-query+pageswithprop-param-limit": "{{doc-apihelp-param|query+pageswithprop|limit}}",
        "apihelp-query+pageswithprop-param-dir": "{{doc-apihelp-param|query+pageswithprop|dir}}",
        "apihelp-query+pageswithprop-example-simple": "{{doc-apihelp-example|query+pageswithprop}}",
        "apihelp-setnotificationtimestamp-example-page": "{{doc-apihelp-example|setnotificationtimestamp}}",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "{{doc-apihelp-example|setnotificationtimestamp}}",
        "apihelp-setnotificationtimestamp-example-allpages": "{{doc-apihelp-example|setnotificationtimestamp}}",
+       "apihelp-setpagelanguage-description": "{{doc-apihelp-description|setpagelanguage}}",
+       "apihelp-setpagelanguage-description-disabled": "{{doc-apihelp-description|setpagelanguage|info=This message is used when changing the language of a page is not allowed on the wiki because <var>[[mw:Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]]</var> is not enabled.|seealso={{msg-mw|apihelp-setpagelanguage-description}}}}",
+       "apihelp-setpagelanguage-param-title": "{{doc-apihelp-param|setpagelanguage|title}}",
+       "apihelp-setpagelanguage-param-pageid": "{{doc-apihelp-param|setpagelanguage|pageid}}",
+       "apihelp-setpagelanguage-param-lang": "{{doc-apihelp-param|setpagelanguage|lang}}",
+       "apihelp-setpagelanguage-param-tags": "{{doc-apihelp-param|setpagelanguage|tags}}",
+       "apihelp-setpagelanguage-example-language": "{{doc-apihelp-example|setpagelanguage}}",
+       "apihelp-setpagelanguage-example-default": "{{doc-apihelp-example|setpagelanguage}}",
        "apihelp-stashedit-description": "{{doc-apihelp-description|stashedit}}",
        "apihelp-stashedit-param-title": "{{doc-apihelp-param|stashedit|title}}",
        "apihelp-stashedit-param-section": "{{doc-apihelp-param|stashedit|section}}",
        "apihelp-userrights-param-add": "{{doc-apihelp-param|userrights|add}}",
        "apihelp-userrights-param-remove": "{{doc-apihelp-param|userrights|remove}}",
        "apihelp-userrights-param-reason": "{{doc-apihelp-param|userrights|reason}}",
+       "apihelp-userrights-param-tags": "{{doc-apihelp-param|userrights|tags}}",
        "apihelp-userrights-example-user": "{{doc-apihelp-example|userrights}}",
        "apihelp-userrights-example-userid": "{{doc-apihelp-example|userrights}}",
        "apihelp-validatepassword-description": "{{doc-apihelp-description|validatepassword}}",
        "apihelp-jsonfm-description": "{{doc-apihelp-description|jsonfm|seealso=* {{msg-mw|apihelp-json-description}}}}",
        "apihelp-none-description": "{{doc-apihelp-description|none}}",
        "apihelp-php-description": "{{doc-apihelp-description|php|seealso=* {{msg-mw|apihelp-phpfm-description}}}}",
-       "apihelp-php-param-formatversion": "{{doc-apihelp-param|json|formatversion}}",
+       "apihelp-php-param-formatversion": "{{doc-apihelp-param|php|formatversion}}",
        "apihelp-phpfm-description": "{{doc-apihelp-description|phpfm|seealso=* {{msg-mw|apihelp-php-description}}}}",
        "apihelp-rawfm-description": "{{doc-apihelp-description|rawfm|seealso=* {{msg-mw|apihelp-raw-description}}}}",
        "apihelp-xml-description": "{{doc-apihelp-description|xml|seealso=* {{msg-mw|apihelp-xmlfm-description}}}}",
        "apierror-opensearch-json-warnings": "{{doc-apierror}}",
        "apierror-pagecannotexist": "{{doc-apierror}}",
        "apierror-pagedeleted": "{{doc-apierror}}",
+       "apierror-pagelang-disabled": "{{doc-apierror}}",
        "apierror-paramempty": "{{doc-apierror}}\n\nParameters:\n* $1 - Parameter name.",
        "apierror-parsetree-notwikitext": "{{doc-apierror}}",
        "apierror-parsetree-notwikitext-title": "{{doc-apierror}}\n\nParameters:\n* $1 - Page title.\n* $2 - Content model.",
        "apierror-writeapidenied": "{{doc-apierror}}",
        "apiwarn-alldeletedrevisions-performance": "{{doc-apierror}}\n\nParameters:\n* $1 - Module parameter prefix, e.g. \"bl\".",
        "apiwarn-badurlparam": "{{doc-apierror}}\n\nParameters:\n* $1 - Module parameter prefix, e.g. \"bl\".\n* $2 - Image title.",
-       "apiwarn-badutf8": "{{doc-apierror}}\n\nParameters:\n* $1 - Parameter name.",
+       "apiwarn-badutf8": "{{doc-apierror}}\n\nParameters:\n* $1 - Parameter name.\n{{doc-important|Do not translate \"\\t\", \"\\n\", and \"\\r\"}}",
        "apiwarn-checktoken-percentencoding": "{{doc-apierror}}",
        "apiwarn-deprecation-deletedrevs": "{{doc-apierror}}",
        "apiwarn-deprecation-expandtemplates-prop": "{{doc-apierror}}",
index 321731c..c012bef 100644 (file)
@@ -20,7 +20,8 @@
                        "MaxSem",
                        "Irus",
                        "MaxBioHazard",
-                       "Kareyac"
+                       "Kareyac",
+                       "Mailman"
                ]
        },
        "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: Ошибки и предупреждения]].\n\n<strong>Тестирование:</strong> для удобства тестирования API-запросов, см. [[Special:ApiSandbox]].",
@@ -39,7 +40,7 @@
        "apihelp-main-param-errorlang": "Язык, используемый для вывода предупреждений и сообщений об ошибках. Запрос «<kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>» с «<kbd>siprop=languages</kbd>» возвращает список кодов языков; укажите «<kbd>content</kbd>» для использования основного языка этой вики, или «<kbd>uselang</kbd>» для использования того же значения, что и в параметре «<var>uselang</var>».",
        "apihelp-block-description": "Блокировка участника.",
        "apihelp-block-param-user": "Имя участника, IP-адрес или диапазон IP-адресов, которые вы хотите заблокировать. Нельзя использовать вместе с <var>$1userid</var>",
-       "apihelp-block-param-userid": "ID участника, которого вы хотите заблокировать. Нельзя использовать одновременно с <var>$1user</var>.",
+       "apihelp-block-param-userid": "ID участника, которого вы хотите заблокировать. Нельзя использовать одновременно вместе с <var>$1user</var>.",
        "apihelp-block-param-expiry": "Время истечения срока действия. Могут быть относительными (например, <kbd>5 месяцев</kbd> или <kbd>2 недели</kbd>) или абсолютными (например, <kbd>2014-09-18T12:34:56Z</kbd>). Если задано <kbd>бессрочно</kbd>, <kbd>бессрочно</kbd>, или <kbd>не</kbd>, блок никогда не истекает.",
        "apihelp-block-param-reason": "Причина блокировки.",
        "apihelp-block-param-anononly": "Блокировать только анонимных пользователей (т. е. запретить анонимные правки для этого IP-адреса).",
        "apihelp-userrights-param-add": "Добавить пользователя в эти группы.",
        "apihelp-userrights-param-remove": "Удалить пользователя из этих групп.",
        "apihelp-userrights-param-reason": "Причина изменений",
+       "apihelp-userrights-param-tags": "Изменить теги для подачи заявки на запись в журнале прав пользователей.",
        "apihelp-watch-example-watch": "Следить за страницей <kbd>Main Page</kbd>.",
        "apihelp-watch-example-unwatch": "Не следить за страницей <kbd>Main Page</kbd>.",
        "apihelp-json-description": "Выходные данные в формате json.",
index ece0818..b71c88e 100644 (file)
        "api-help-param-limit2": "Inte mer än $1 ($2 för robotar) tillåts.",
        "api-help-param-multi-separate": "Separera värden med <kbd>|</kbd> eller [[Special:ApiHelp/main#main/datatypes|alternativ]].",
        "apierror-articleexists": "Artikeln du försökte skapa har redan skapats.",
+       "apierror-baddiff": "Diff kan inte hämtas. En eller båda sidversioner finns inte eller du har inte behörighet för att visa dem.",
        "apierror-nosuchuserid": "Det finns ingen användare med ID $1.",
        "apierror-protect-invalidaction": "Ogiltig skyddstyp \"$1\".",
        "apierror-systemblocked": "Du har blockerats automatiskt av MediaWiki.",
index 5626b70..6efd3f4 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "AntanO",
                        "கலைவாணன்",
-                       "Info-farmer"
+                       "Info-farmer",
+                       "ElangoRamanujam"
                ]
        },
        "apihelp-main-param-action": "எச்செயலை செயற்படுத்த",
        "apihelp-import-param-rootpage": "இப்பக்கத்தின் துணைப்பக்கமாக இறக்குமதி செய்யவும். <kbd>$1namespace</kbd> அளவுரு வழங்கப்பட்டிருந்தால் இது புறக்கணிக்கப்படும்.",
        "api-help-source": "மூலம்: $1",
        "api-help-license": "அனுமதி: [[$1|$2]]",
-       "api-help-license-noname": "அனுமதி: [[$1|இணைப்பைப் பார்]]"
+       "api-help-license-noname": "அனுமதி: [[$1|இணைப்பைப் பார்]]",
+       "apierror-invalidtitle": "தவறான தலைப்பு ”$1”",
+       "apierror-mustbeloggedin-generic": "தாங்கள் புகுபதிந்திருக்கவேண்டும்.",
+       "apierror-mustbeloggedin": "தாங்கள் $1-ல் புகுபதிந்திருக்கவேண்டும்.",
+       "apierror-nochanges": "மாற்றங்களேதும் கோரப்படவில்லை.",
+       "apierror-permissiondenied-generic": "அனுமதி மறுக்கப்பட்டது.",
+       "apierror-unknownerror-nocode": "இனம்புரியாப் பிழை.",
+       "apierror-unknownerror": "இனமறியாப் பிழை:\"$1\".",
+       "apiwarn-invalidtitle": "\"$1\" என்பது செல்லும் தலைப்பல்ல.",
+       "apiwarn-notfile": "”$1” ஒரு கோப்பல்ல.",
+       "api-feed-error-title": "பிழை ($1)"
 }
index 5d3cb68..60299ca 100644 (file)
        "apihelp-userrights-param-add": "将用户加入至这些组中。",
        "apihelp-userrights-param-remove": "将用户从这些组中移除。",
        "apihelp-userrights-param-reason": "更改原因。",
+       "apihelp-userrights-param-tags": "要在用户权限日志中应用到实体的更改标签。",
        "apihelp-userrights-example-user": "将用户<kbd>FooBot</kbd>添加至<kbd>bot</kbd>用户组,并从<kbd>sysop</kbd>和<kbd>bureaucrat</kbd>组移除。",
        "apihelp-userrights-example-userid": "将ID为<kbd>123</kbd>的用户加入至<kbd>机器人</kbd>组,并将其从<kbd>管理员</kbd>和<kbd>行政员</kbd>组移除。",
        "apihelp-validatepassword-description": "验证密码是否符合wiki的密码方针。\n\n如果密码可以接受,就报告有效性为<samp>Good</samp>,如果密码可用于登录但必须更改,则报告为<samp>Change</samp>,或如果密码不可使用,则报告为<samp>Invalid</samp>。",
        "apihelp-watch-example-unwatch": "取消监视页面<kbd>Main Page</kbd>。",
        "apihelp-watch-example-generator": "监视主名字空间中的最少几个页面。",
        "apihelp-format-example-generic": "返回查询结果为$1格式。",
-       "apihelp-format-param-wrappedhtml": "作为一个JSON对象返回渲染好的HTML和关联的ResouceLoader模块。",
+       "apihelp-format-param-wrappedhtml": "作为一个JSON对象返回优质打印的HTML和关联的ResouceLoader模块。",
        "apihelp-json-description": "输出数据为JSON格式。",
        "apihelp-json-param-callback": "如果指定,将输出内容包裹在一个指定的函数调用中。出于安全考虑,所有用户相关的数据将被限制。",
        "apihelp-json-param-utf8": "如果指定,使用十六进制转义序列将大多数(但不是全部)非ASCII的字符编码为UTF-8,而不是替换它们。默认当<var>formatversion</var>不是<kbd>1</kbd>时。",
        "apierror-autoblocked": "您的IP地址已被自动封禁,因为它曾被一位已封禁用户使用。",
        "apierror-badconfig-resulttoosmall": "此wiki上<code>$wgAPIMaxResultSize</code>的值太小,不能获得基础结果信息。",
        "apierror-badcontinue": "无效继续参数。您应该传递由之前查询返回的原始值。",
-       "apierror-baddiff": "不能取得差异一个或多个修订版本不存在,或您没有权限查看它们。",
+       "apierror-baddiff": "不能取得差异一个或多个修订版本不存在,或您没有权限查看它们。",
        "apierror-baddiffto": "<var>$1diffto</var>必须设置为非负数、<kbd>prev</kbd>、<kbd>next</kbd>或<kbd>cur</kbd>。",
        "apierror-badformat-generic": "内容模型$2尚不支持请求的内容格式$1。",
        "apierror-badformat": "由$3使用的内容模型$2尚不支持请求的内容格式$1。",
        "apierror-spamdetected": "您的编辑被拒绝,因为它包含破坏性碎片:<code>$1</code>。",
        "apierror-specialpage-cantexecute": "您没有权限查看此特殊页面的结果。",
        "apierror-stashedfilenotfound": "无法在暂存处找到文件:$1。",
+       "apierror-stashfailed-nosession": "没有带此关键词的大块上传会话。",
        "apierror-stashfilestorage": "不能在暂存处存储上传:$1",
        "apierror-stashinvalidfile": "无效暂存文件。",
        "apierror-stashnosuchfilekey": "没有这个filekey:$1。",
        "apierror-writeapidenied": "您不被允许通过API编辑此wiki。",
        "apiwarn-alldeletedrevisions-performance": "当生成标题时,为获得更好性能,请设置<kbd>$1dir=newer</kbd>。",
        "apiwarn-badurlparam": "不能为$2解析<var>$1urlparam</var>。请只使用宽和高。",
+       "apiwarn-badutf8": "<var>$1</var>通过的值包含无效或非标准化数据。正文数据应为有效的NFC标准化Unicode,没有除HT(\\t)、LF(\\n)和CR(\\r)以外的C0控制字符。",
        "apiwarn-deprecation-deletedrevs": "<kbd>list=deletedrevs</kbd>已被弃用。请改用<kbd>prop=deletedrevisions</kbd>或<kbd>list=alldeletedrevisions</kbd>。",
        "apiwarn-deprecation-httpsexpected": "当应为HTTPS时,HTTP被使用。",
        "apiwarn-deprecation-login-botpw": "通过<kbd>action=login</kbd>的主账户登录已被弃用,并可能在未事先警告的情况下停止工作。要继续通过<kbd>action=login</kbd>登录,请参见[[Special:BotPasswords]]。要安全继续使用主账户登录,请参见<kbd>action=clientlogin</kbd>。",
index 3389a00..db20f51 100644 (file)
@@ -27,41 +27,6 @@ use MediaWiki\Search\ParserOutputSearchDataExtractor;
  *
  * @author Daniel Kinzler
  */
-
-/**
- * Exception representing a failure to serialize or unserialize a content object.
- *
- * @ingroup Content
- */
-class MWContentSerializationException extends MWException {
-}
-
-/**
- * Exception thrown when an unregistered content model is requested. This error
- * can be triggered by user input, so a separate exception class is provided so
- * callers can substitute a context-specific, internationalised error message.
- *
- * @ingroup Content
- * @since 1.27
- */
-class MWUnknownContentModelException extends MWException {
-       /** @var string The name of the unknown content model */
-       private $modelId;
-
-       /** @param string $modelId */
-       function __construct( $modelId ) {
-               parent::__construct( "The content model '$modelId' is not registered on this wiki.\n" .
-                       'See https://www.mediawiki.org/wiki/Content_handlers to find out which extensions ' .
-                       'handle this content model.' );
-               $this->modelId = $modelId;
-       }
-
-       /** @return string */
-       public function getModelId() {
-               return $this->modelId;
-       }
-}
-
 /**
  * A content handler knows how do deal with a specific type of content on a wiki
  * page. Content is stored in the database in a serialized form (using a
diff --git a/includes/exception/MWContentSerializationException.php b/includes/exception/MWContentSerializationException.php
new file mode 100644 (file)
index 0000000..ed3bd27
--- /dev/null
@@ -0,0 +1,9 @@
+<?php
+/**
+ * Exception representing a failure to serialize or unserialize a content object.
+ *
+ * @ingroup Content
+ */
+class MWContentSerializationException extends MWException {
+}
+
diff --git a/includes/exception/MWUnknownContentModelException.php b/includes/exception/MWUnknownContentModelException.php
new file mode 100644 (file)
index 0000000..3524d09
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Exception thrown when an unregistered content model is requested. This error
+ * can be triggered by user input, so a separate exception class is provided so
+ * callers can substitute a context-specific, internationalised error message.
+ *
+ * @ingroup Content
+ * @since 1.27
+ */
+class MWUnknownContentModelException extends MWException {
+       /** @var string The name of the unknown content model */
+       private $modelId;
+
+       /** @param string $modelId */
+       function __construct( $modelId ) {
+               parent::__construct( "The content model '$modelId' is not registered on this wiki.\n" .
+                       'See https://www.mediawiki.org/wiki/Content_handlers to find out which extensions ' .
+                       'handle this content model.' );
+               $this->modelId = $modelId;
+       }
+       /** @return string */
+       public function getModelId() {
+               return $this->modelId;
+       }
+}
+
index 3f0c932..f29c565 100644 (file)
@@ -34,4 +34,8 @@ class SlideshowImageGallery extends TraditionalImageGallery {
        protected function getModules() {
                return [ 'mediawiki.page.gallery.slideshow' ];
        }
+
+       public function setAdditionalOptions( $params ) {
+               $this->mAttribs['data-showthumbnails'] = isset( $params['showthumbnails'] );
+       }
 }
index 0f889da..1fd7b0a 100644 (file)
@@ -348,17 +348,3 @@ class TraditionalImageGallery extends ImageGalleryBase {
        protected function adjustImageParameters( $thumb, &$imageParameters ) {
        }
 }
-
-/**
- * Backwards compatibility. This always uses traditional mode
- * if called the old way, for extensions that may expect traditional
- * mode.
- *
- * @deprecated since 1.22 Use ImageGalleryBase::factory instead.
- */
-class ImageGallery extends TraditionalImageGallery {
-       function __construct( $mode = 'traditional' ) {
-               wfDeprecated( __METHOD__, '1.22' );
-               parent::__construct( $mode );
-       }
-}
index e2e8dd5..0c12ebb 100644 (file)
@@ -104,12 +104,21 @@ class ImportStreamSource implements ImportSource {
         * @return Status
         */
        static function newFromURL( $url, $method = 'GET' ) {
+               global $wgHTTPImportTimeout;
                wfDebug( __METHOD__ . ": opening $url\n" );
                # Use the standard HTTP fetch function; it times out
                # quicker and sorts out user-agent problems which might
                # otherwise prevent importing from large sites, such
                # as the Wikimedia cluster, etc.
-               $data = Http::request( $method, $url, [ 'followRedirects' => true ], __METHOD__ );
+               $data = Http::request(
+                       $method,
+                       $url,
+                       [
+                               'followRedirects' => true,
+                               'timeout' => $wgHTTPImportTimeout
+                       ],
+                       __METHOD__
+               );
                if ( $data !== false ) {
                        $file = tmpfile();
                        fwrite( $file, $data );
index 328cdad..1769924 100644 (file)
@@ -45,6 +45,8 @@ class WikiImporter {
        private $importTitleFactory;
        /** @var array */
        private $countableCache = [];
+       /** @var bool */
+       private $disableStatisticsUpdate = false;
 
        /**
         * Creates an ImportXMLReader drawing from the source provided
@@ -303,6 +305,14 @@ class WikiImporter {
                $this->mImportUploads = $import;
        }
 
+       /**
+        * Statistics update can cause a lot of time
+        * @since 1.29
+        */
+       public function disableStatisticsUpdate() {
+               $this->disableStatisticsUpdate = true;
+       }
+
        /**
         * Default per-page callback. Sets up some things related to site statistics
         * @param array $titleAndForeignTitle Two-element array, with Title object at
@@ -381,21 +391,23 @@ class WikiImporter {
                // suffers from issues of replica DB lag. We let WikiPage handle the total page
                // and revision count, and we implement our own custom logic for the
                // article (content page) count.
-               $page = WikiPage::factory( $title );
-               $page->loadPageData( 'fromdbmaster' );
-               $content = $page->getContent();
-               if ( $content === null ) {
-                       wfDebug( __METHOD__ . ': Skipping article count adjustment for ' . $title .
-                               ' because WikiPage::getContent() returned null' );
-               } else {
-                       $editInfo = $page->prepareContentForEdit( $content );
-                       $countKey = 'title_' . $title->getPrefixedText();
-                       $countable = $page->isCountable( $editInfo );
-                       if ( array_key_exists( $countKey, $this->countableCache ) &&
-                               $countable != $this->countableCache[$countKey] ) {
-                               DeferredUpdates::addUpdate( SiteStatsUpdate::factory( [
-                                       'articles' => ( (int)$countable - (int)$this->countableCache[$countKey] )
-                               ] ) );
+               if ( !$this->disableStatisticsUpdate ) {
+                       $page = WikiPage::factory( $title );
+                       $page->loadPageData( 'fromdbmaster' );
+                       $content = $page->getContent();
+                       if ( $content === null ) {
+                               wfDebug( __METHOD__ . ': Skipping article count adjustment for ' . $title .
+                                       ' because WikiPage::getContent() returned null' );
+                       } else {
+                               $editInfo = $page->prepareContentForEdit( $content );
+                               $countKey = 'title_' . $title->getPrefixedText();
+                               $countable = $page->isCountable( $editInfo );
+                               if ( array_key_exists( $countKey, $this->countableCache ) &&
+                                       $countable != $this->countableCache[$countKey] ) {
+                                       DeferredUpdates::addUpdate( SiteStatsUpdate::factory( [
+                                               'articles' => ( (int)$countable - (int)$this->countableCache[$countKey] )
+                                       ] ) );
+                               }
                        }
                }
 
index 1e866f3..23db3e2 100644 (file)
@@ -315,12 +315,8 @@ class WikiRevision {
 
        /**
         * @return string
-        *
-        * @deprecated Since 1.21, use getContent() instead.
         */
        function getText() {
-               wfDeprecated( __METHOD__, '1.21' );
-
                return $this->text;
        }
 
index 5cdb83f..4a1ed65 100644 (file)
@@ -4,7 +4,8 @@
                        "DCLXVI",
                        "아라",
                        "StanProg",
-                       "Vodnokon4e"
+                       "Vodnokon4e",
+                       "Seb35"
                ]
        },
        "config-desc": "Инсталатор на МедияУики",
@@ -53,7 +54,7 @@
        "config-unicode-using-intl": "Използване на разширението [http://pecl.php.net/intl intl PECL] за нормализация на Уникод.",
        "config-unicode-pure-php-warning": "'''Предупреждение''': [http://pecl.php.net/intl Разширението intl PECL] не е налично за справяне с нормализацията на Уникод, превключване към по-бавното изпълнение на чист PHP.\nАко сайтът е с голям трафик, препоръчително е запознаването с [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализацията на Уникод].",
        "config-unicode-update-warning": "'''Предупреждение''': Инсталираната версия на Обвивката за нормализация на Unicode използва по-старата версия на библиотеката на [http://site.icu-project.org/ проекта ICU].\nНеобходимо е да [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations инсталирате по-нова верия], в случай че сте загрижени за използването на Unicode.",
-       "config-no-db": "Не може да бъде открит подходящ драйвер за база данни! Необходимо е да инсталирате драйвер за база данни за PHP.\n{{PLURAL:$2|Поддържа се следния тип|Поддържат се следните типове}} бази от данни: $1.\n\nАко сами сте компилирали PHP, преконфигурирайте го с включен клиент за база данни, например чрез използване на <code>./configure --with-mysql</code>.\nАко сте инсталирали PHP от пакет за Debian или Ubuntu, необходимо е също така да инсталирате и модула <code>php5-mysql</code>.",
+       "config-no-db": "Не може да бъде открит подходящ драйвер за база данни! Необходимо е да инсталирате драйвер за база данни за PHP.\n{{PLURAL:$2|Поддържа се следния тип|Поддържат се следните типове}} бази от данни: $1.\n\nАко сами сте компилирали PHP, преконфигурирайте го с включен клиент за база данни, например чрез използване на <code>./configure --with-mysqli</code>.\nАко сте инсталирали PHP от пакет за Debian или Ubuntu, необходимо е също така да инсталирате и модула <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Предупреждение:</strong> имате инсталиран SQLite  $1, а минималната допустима версия е $2. SQLite ще бъде недостъпна за ползване.",
        "config-no-fts3": "'''Предупреждение''': SQLite е компилирана без [//sqlite.org/fts3.html модула FTS3], затова възможностите за търсене няма да са достъпни.",
        "config-pcre-old": "<strong>Фатална грешка:</strong> Изисква се PCRE версия $1 или по-нова.\nИзпълнимият файл на PHP е свързан с PCRE версия $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Повече информация за PCRE].",
        "config-type-mssql": "Microsoft SQL сървър",
        "config-support-info": "МедияУики поддържа следните системи за бази от данни:\n\n$1\n\nАко не виждате желаната за използване система в списъка по-долу, следвайте инструкциите за активиране на поддръжка по-горе.",
        "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] е най-важна за МедияУики и се поддържа най-добре. МедияУики работи също така с [{{int:version-db-mariadb-url}} MariaDB] и [{{int:version-db-percona-url}} Percona Server], които са съвместими с MySQL.\n([http://www.php.net/manual/bg/mysqli.installation.php Как се компилира PHP с поддръжка на MySQL])",
-       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] е популярна система за управление на бази от данни, алтернатива на MySQL. Възможно е все още да има грешки, затова не се препоръчва да се използва в общодостъпна среда.([http://www.php.net/manual/bg/pgsql.installation.php Как се компилира PHP с поддръжка на PostgreSQL])",
+       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] е популярна система за управление на бази от данни, алтернатива на MySQL. ([http://www.php.net/manual/bg/pgsql.installation.php Как се компилира PHP с поддръжка на PostgreSQL])",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] е олекотена система за бази от данни, която е много добре поддържана. ([http://www.php.net/manual/bg/pdo.installation.php Как се компилира PHP с поддръжка на SQLite], използва PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] е комерсиална корпоративна база от данни. ([http://www.php.net/manual/en/oci8.installation.php Как се компилира PHP с поддръжка на OCI8])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] е комерсиална корпоративна база от данни за Windows. ([http://www.php.net/manual/bg/sqlsrv.installation.php Как да се компилира PHP с поддръжка на SQLSRV])",
        "config-nofile": "Файлът „$1“ не може да бъде открит. Да не е бил изтрит?",
        "config-extension-link": "Знаете ли, че това уики поддържа [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions разширения]?\n\nМожете да разгледате [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category разширенията по категория] или [https://www.mediawiki.org/wiki/Extension_Matrix Матрицата на разширенията] за пълен списък на разширенията.",
        "mainpagetext": "<strong>МедияУики беше успешно инсталирано.</strong>",
-       "mainpagedocfooter": "Разгледайте [https://meta.wikimedia.org/wiki/Help:Contents ръководството] за подробна информация относно използването на уики софтуера.\n\n== Първи стъпки ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Настройки за конфигуриране]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧЗВ за МедияУики]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Пощенски списък относно нови версии на МедияУики]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локализиране на МедияУики]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Научете как да се справяте със спама във вашето уики]"
+       "mainpagedocfooter": "Разгледайте [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents ръководството] за подробна информация относно използването на уики софтуера.\n\n== Първи стъпки ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Настройки за конфигуриране]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧЗВ за МедияУики]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Пощенски списък относно нови версии на МедияУики]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локализиране на МедияУики]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Научете как да се справяте със спама във вашето уики]"
 }
index 316ed3f..9f24ec6 100644 (file)
@@ -8,7 +8,8 @@
                        "Matěj Grabovský",
                        "Paxt",
                        "Matěj Suchánek",
-                       "LordMsz"
+                       "LordMsz",
+                       "Seb35"
                ]
        },
        "config-desc": "Instalační program pro MediaWiki",
@@ -57,7 +58,7 @@
        "config-unicode-using-intl": "Pro normalizaci Unicode se používá [http://pecl.php.net/intl PECL rozšíření intl].",
        "config-unicode-pure-php-warning": "<strong>Upozornění:</strong> Není dostupné [http://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.\nPokud provozujete wiki s velkou návštěvností, měli byste si přečíst něco o [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizaci Unicode].",
        "config-unicode-update-warning": "<strong>Upozornění:</strong> Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].\nPokud vám aspoň trochu záleží na používání Unicode, měli byste [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ji aktualizovat].",
-       "config-no-db": "Nepodařilo se nalézt vhodný databázový ovladač! Musíte nainstalovat databázový ovladač pro PHP.\n{{PLURAL:$2|Je podporován následující typ databáze|Jsou podporovány následující typy databází}}: $1.\n\nPokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysql</code>.\nPokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul <code>php5-mysql</code>.",
+       "config-no-db": "Nepodařilo se nalézt vhodný databázový ovladač! Musíte nainstalovat databázový ovladač pro PHP.\n{{PLURAL:$2|Je podporován následující typ databáze|Jsou podporovány následující typy databází}}: $1.\n\nPokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysqli</code>.\nPokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Upozornění:</strong> Máte SQLite $1, které je starší než minimálně vyžadovaná verze $2. SQLite nebude dostupné.",
        "config-no-fts3": "<strong>Upozornění:</strong> SQLite bylo přeloženo bez [//sqlite.org/fts3.html modulu FTS3], funkce pro vyhledávání zde nebudou dostupné.",
        "config-pcre-old": "<strong>Kritická chyba:</strong> Je vyžadováno PCRE verze $1 nebo novější.\nVaše binárka PHP obsahuje PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Více informací.]",
index c80d54e..68b4720 100644 (file)
@@ -4,7 +4,8 @@
                        "Erdemaslancan",
                        "Mirzali",
                        "Marmase",
-                       "Kumkumuk"
+                       "Kumkumuk",
+                       "Gambollar"
                ]
        },
        "config-desc": "Qandé MediaWiki sazi",
@@ -26,7 +27,7 @@
        "config-page-install": "Bar ke",
        "config-page-complete": "Temamyayo",
        "config-page-restart": "Barkerdışi fına ser kı",
-       "config-page-readme": "Mı bıwane",
+       "config-page-readme": "Mı bıwan",
        "config-page-releasenotes": "Notë versiyoni",
        "config-page-copying": "Kopyayeno",
        "config-page-upgradedoc": "Berzkerdış",
index f812471..7690b01 100644 (file)
        "config-download-localsettings": "Jaitsi <code>LocalSettings.php</code>",
        "config-help": "Laguntza",
        "config-help-tooltip": "sakatu zabaltzeko",
-       "mainpagetext": "'''MediaWiki arrakastaz instalatu da.'''",
+       "mainpagetext": "<strong>MediaWiki instalatu da.</strong>",
        "mainpagedocfooter": "Ikus [https://meta.wikimedia.org/wiki/Help:Contents Erabiltzaile Gida] wiki softwarea erabiltzen hasteko informazio gehiagorako.\n\n== Nola hasi ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigurazio balioen zerrenda]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ (Maiz egindako galderak)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiren argitalpenen posta zerrenda]"
 }
index 6e632d6..5275548 100644 (file)
@@ -14,7 +14,8 @@
                        "Macofe",
                        "درفش کاویانی",
                        "Hamisun",
-                       "Alifakoor"
+                       "Alifakoor",
+                       "Seb35"
                ]
        },
        "config-desc": "نصب کنندهٔ مدیاویکی",
@@ -63,7 +64,7 @@
        "config-unicode-using-intl": "برای یونیکد عادی از [http://pecl.php.net/intl افزونهٔ intl برای PECL] استفاده کنید.",
        "config-unicode-pure-php-warning": "'''هشدار:''' [http://pecl.php.net/intl intl PECL extension] برای کنترل یونیکد عادی در دسترس نیست،اجرای کاملاً آهسته به تعویق می‌افتد.\n\nاگر شما یک سایت پر‌ ترافیک را اجرا می‌کنید، باید کمی [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization] را بخوانید.",
        "config-unicode-update-warning": "'''هشدار:''' نسخهٔ نصب شدهٔ پوشهٔ یونیکد عادی از ورژن قدیمی‌تر کتابخانه [http://site.icu-project.org/ the ICU project's] استفاده می‌کند.\n\nاگر کلاً علاقه‌مند به استفاده از یونیکد هستید باید [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade].",
-       "config-no-db": "درایور پایگاه اطلاعاتی مناسب پیدا نشد! شما لازم دارید یک درایور پایگاه اطلاعاتی  برای پی‌اچ‌پی نصب کنید.انواع پایگاه اطلاعاتی زیر پشتیبانی شده‌اند:$1.\nاگر شما در گروه اشتراک‌گذاری هستید، از تهیه کنندهٔ گروه خود برای نصب یک درایور پایگاه اطلاعاتی مناسب {{PLURAL:$2|سوأل کنید.|سوأل کنید.}}\nاگر خود، پی‌اچ‌پی را تهیه کرده‌اید، با یک پردازشگر فعال دوباره پیکربندی کنید، برای مثال از <code>./configure --with-mysql</code> استفاده کنید.\nاگر پی‌اچ‌پی را از یک بستهٔ دبیان یا آبونتو نصب کرده‌اید، بنابراین لازم دارید بخش php5-mysql را نصب کنید.",
+       "config-no-db": "درایور پایگاه اطلاعاتی مناسب پیدا نشد! شما لازم دارید یک درایور پایگاه اطلاعاتی  برای پی‌اچ‌پی نصب کنید.انواع پایگاه اطلاعاتی زیر پشتیبانی شده‌اند:$1.\nاگر شما در گروه اشتراک‌گذاری هستید، از تهیه کنندهٔ گروه خود برای نصب یک درایور پایگاه اطلاعاتی مناسب {{PLURAL:$2|سوأل کنید.|سوأل کنید.}}\nاگر خود، پی‌اچ‌پی را تهیه کرده‌اید، با یک پردازشگر فعال دوباره پیکربندی کنید، برای مثال از <code>./configure --with-mysqli</code> استفاده کنید.\nاگر پی‌اچ‌پی را از یک بستهٔ دبیان یا آبونتو نصب کرده‌اید، بنابراین لازم دارید بخش php5-mysql را نصب کنید.",
        "config-outdated-sqlite": "''' هشدار:''' شما اس‌کیولایت $1 دارید، که پایین‌تر از حداقل نسخهٔ $2 مورد نیاز است.اس‌کیولایت در دسترس نخواهد بود.",
        "config-no-fts3": "'''هشدار:''' اس‌کیولایت بدون [//sqlite.org/fts3.html FTS3 module] تهیه شده‌است ، جستجوی ویژگی‌ها در این بخش پیشین در دسترس نخواهد‌بود.",
        "config-pcre-old": "''' خطای اساسی:'' ' PCRE  $1  یا بعدا مورد نیاز است.\nکد باینری پی‌اچ‌پی‌تان با PCRE  $2 پیوند دارد.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE اطلاعات بیشتر].",
index a2466c3..ab1fd7d 100644 (file)
@@ -6,7 +6,8 @@
                        "아라",
                        "Vivaelcelta",
                        "Macofe",
-                       "Banjo"
+                       "Banjo",
+                       "Seb35"
                ]
        },
        "config-desc": "O programa de instalación de MediaWiki",
@@ -55,7 +56,7 @@
        "config-unicode-using-intl": "Usando a [http://pecl.php.net/intl extensión intl PECL] para a normalización Unicode.",
        "config-unicode-pure-php-warning": "<strong>Atención:</strong> A [http://pecl.php.net/intl extensión intl PECL] non está dispoñible para manexar a normalización Unicode; volvendo á execución lenta de PHP puro.\nSe o seu sitio posúe un alto tráfico de visitantes, debería ler un chisco sobre a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
        "config-unicode-update-warning": "<strong>Atención:</strong> A versión instalada da envoltura de normalización Unicode emprega unha versión vella da biblioteca [http://site.icu-project.org/ do proxecto ICU].\nDebería [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualizar] se o uso de Unicode é importante para vostede.",
-       "config-no-db": "Non se puido atopar un controlador axeitado para a base de datos! Necesita instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|Acéptase o seguinte tipo|Acéptanse os seguintes tipos}} de base de datos: $1.\n\nSe compilou o PHP vostede mesmo, reconfigúreo activando un cliente de base de datos, por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP desde un paquete Debian ou Ubuntu, entón tamén necesita instalar, por exemplo, o módulo <code>php5-mysql</code>.",
+       "config-no-db": "Non se puido atopar un controlador axeitado para a base de datos! Necesita instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|Acéptase o seguinte tipo|Acéptanse os seguintes tipos}} de base de datos: $1.\n\nSe compilou o PHP vostede mesmo, reconfigúreo activando un cliente de base de datos, por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP desde un paquete Debian ou Ubuntu, entón tamén necesita instalar, por exemplo, o módulo <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Atención:</strong> Ten o SQLite $1, que é inferior á versión mínima necesaria: $2. O SQLite non estará dispoñible.",
        "config-no-fts3": "<strong>Atención:</strong> O SQLite está compilado sen o [//sqlite.org/fts3.html módulo FTS3]; as características de procura non estarán dispoñibles nesta instalación.",
        "config-pcre-old": "<strong>Erro fatal:</strong> Necesítase PCRE $1 ou posterior.\nO seu PHP binario está ligado con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Máis información].",
index 069bf68..ca7336a 100644 (file)
@@ -9,7 +9,8 @@
                        "Tacsipacsi",
                        "Dorgan",
                        "Macofe",
-                       "Máté"
+                       "Máté",
+                       "Seb35"
                ]
        },
        "config-desc": "A MediaWiki telepítője",
@@ -58,7 +59,7 @@
        "config-unicode-using-intl": "A rendszer Unicode normalizálására az [http://pecl.php.net/intl intl PECL kiterjesztést] használja.",
        "config-unicode-pure-php-warning": "<strong>Figyelmeztetés:</strong> Az Unicode normalizáláshoz szükséges [http://pecl.php.net/intl intl PECL kiterjesztés] nem érhető el, helyette a lassú, PHP-alapú implementáció lesz használatban.\nHa nagy látogatottságú oldalt üzemeltetsz, [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations itt] találhatsz további információkat a témáról.",
        "config-unicode-update-warning": "<strong>Figyelmeztetés:</strong> Az Unicode normalizáláshoz szükséges burkolókönyvtár [http://site.icu-project.org/ ICU projekt] függvénykönyvtárának régebbi változatát használja.\nHa ügyelni kívánsz a Unicode használatára, fontold meg a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations frissítését].",
-       "config-no-db": "Nem sikerült egyetlen használható adatbázis-illesztőprogramot sem találni. Telepítened kell egyet a PHP-hez.\nA következő {{PLURAL:$2|adatbázistípus támogatott|adatbázistípusok támogatottak}}: $1.\n\nHa a PHP-t magad fordítottad, konfiguráld újra úgy, hogy engedélyezve legyen egy adatbáziskliens, pl. a <code>./configure --with-mysql</code> parancs használatával.\nHa a PHP-t Debian vagy Ubuntu csomaggal telepítetted, akkor szükséged lesz például a php5-mysql csomagra is.",
+       "config-no-db": "Nem sikerült egyetlen használható adatbázis-illesztőprogramot sem találni. Telepítened kell egyet a PHP-hez.\nA következő {{PLURAL:$2|adatbázistípus támogatott|adatbázistípusok támogatottak}}: $1.\n\nHa a PHP-t magad fordítottad, konfiguráld újra úgy, hogy engedélyezve legyen egy adatbáziskliens, pl. a <code>./configure --with-mysqli</code> parancs használatával.\nHa a PHP-t Debian vagy Ubuntu csomaggal telepítetted, akkor szükséged lesz például a php5-mysql csomagra is.",
        "config-outdated-sqlite": "<strong>Figyelmeztetés:</strong> SQLite $1 verziód van, ami alacsonyabb a legalább szükséges $2 verziónál. Az SQLite nem lesz elérhető.",
        "config-no-fts3": "'''Figyelmeztetés''': Az SQLite [//sqlite.org/fts3.html FTS3 modul] nélkül lett fordítva, a keresési funkciók nem fognak működni ezen a rendszeren.",
        "config-pcre-old": "<strong>Kritikus hiba:</strong> PCRE $1 vagy későbbi szükséges.\nA Te PHP binárisod PCRE $2-vel lett linkelve.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE További információ].",
index fe6bb47..3717258 100644 (file)
@@ -63,7 +63,7 @@
        "config-unicode-using-intl": "Menggunakan [http://pecl.php.net/intl ekstensi PECL intl] untuk normalisasi Unicode.",
        "config-unicode-pure-php-warning": "'''Peringatan''': [http://pecl.php.net/intl Ekstensi intl PECL] untuk menangani normalisasi Unicode tidak tersedia, kembali menggunakan implementasi murni PHP yang lambat.\nJika Anda menjalankan situs berlalu lintas tinggi, Anda harus sedikit membaca [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisasi Unicode].",
        "config-unicode-update-warning": "'''Peringatan''': Versi terinstal dari pembungkus normalisasi Unicode menggunakan versi lama pustaka [http://site.icu-project.org/ proyek ICU].\nAnda harus [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations memutakhirkannya] jika Anda ingin menggunakan Unicode.",
-       "config-no-db": "Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.\n{{PLURAL:$2|Jenis|Jenis}} basis data yang didukung: $1.\n\nJika Anda mengompilasi PHP sendiri, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysql</code>.\nJika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal seperti paket <code>php5-mysql</code>.",
+       "config-no-db": "Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.\n{{PLURAL:$2|Jenis|Jenis}} basis data yang didukung: $1.\n\nJika Anda mengompilasi PHP sendiri, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysqli</code>.\nJika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal seperti paket <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Peringatan:</strong> Anda menggunakan SQLite $1, yang lebih rendah dari versi minimum yang diperlukan $2. SQLite akan tidak tersedia.",
        "config-no-fts3": "'''Peringatan''': SQLite dikompilasi tanpa [//sqlite.org/fts3.html modul FTS3], fitur pencarian tidak akan tersedia pada konfigurasi ini.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 atau kemudian diperlukan.\nBiner PHP Anda dihubungkan dengan PCRE $2. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Selengkapnya].",
index 317e4ee..18acff0 100644 (file)
@@ -60,7 +60,7 @@
        "config-unicode-using-intl": "유니코드 정규화에 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용합니다.",
        "config-unicode-pure-php-warning": "<strong>경고:</strong> 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 pure-PHP 구현을 대신 사용합니다.\n트래픽이 높은 사이트에서 실행하시려면 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 유니코드 정규화]를 읽어보셔야 합니다.",
        "config-unicode-update-warning": "<strong>경고:</strong> 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 업그레이드]해야합니다.",
-       "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP용 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 {{PLURAL:$2|유형을 지원합니다}}: $1.\n\nPHP를 직접 컴파일했다면, 예를 들어 <code>./configure --with-mysql</code>을 사용하여, 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분투 패키지에서 PHP를 설치했다면 <code>php5-mysql</code> 모듈도 설치해야 합니다.",
+       "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP용 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 {{PLURAL:$2|유형을}} 지원합니다: $1.\n\nPHP를 직접 컴파일했다면, 예를 들어 <code>./configure --with-mysqli</code>을 사용하여, 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분투 패키지에서 PHP를 설치했다면 <code>php5-mysql</code> 패키지도 설치해야 합니다.",
        "config-outdated-sqlite": "<strong>경고:</strong> 최소 요구 버전 $2 보다 낮은 SQLite $1이(가) 있습니다. SQLite를 사용할 수 없습니다.",
        "config-no-fts3": "<strong>경고:</strong> SQLite를 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일하며, 검색 기능은 백엔드에 사용할 수 없습니다.",
        "config-pcre-old": "<strong>치명:</strong> PCRE $1 또는 그 이상이 필요합니다.\nPHP 바이너리는 PCRE $2에 연결되어 있습니다. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 자세한 정보].",
index 3343db7..9a33d5b 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Mormegil",
                        "Purodha",
-                       "Reedy"
+                       "Reedy",
+                       "Seb35"
                ]
        },
        "config-desc": "Et Projramm för Mediwiki opzesäze.",
@@ -52,7 +53,7 @@
        "config-unicode-using-intl": "För et <i lang=\"en\">Unicode</i>-Nommaliseere dom_mer dä [http://pecl.php.net/intl Zohsaz <code lang=\"en\">intl</code> uss em <code lang=\"en\">PECL</code>] nämme.",
        "config-unicode-pure-php-warning": "'''Opjepaß:''' Mer kunnte dä [http://pecl.php.net/intl Zohsaz <code lang=\"en\">intl</code> uss em <code lang=\"en\">PECL</code>] för et <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"a standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems\">UNICODE</i>-Nommalisehre nit fenge. Dröm nämme mer dat eijfache, ävver ärsch lahme, <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"PHP Hypertext Preprocessor\">PHP</i>-Projrammschtök doför.\nFör jruuße Wikis met vill Metmaachere doht Üsch di Sigg övver et [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"a standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems\">UNICODE</i>-Nommaliseere] (es op Änglesch) aanloore.",
        "config-unicode-update-warning": "'''Opjepaß:''' Dat Projramm för der <i lang=\"en\">Unicode</i> zo normaliseere boud em Momang op en  ählter Version vun dä Bibliothek vum [http://site.icu-project.org/ ICU-Projäk] op.\nDoht di [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations op der neuste Shtand bränge], wann auf dat Wiki em Äänz <i lang=\"en\">Unicode</i> bruche sull.",
-       "config-no-db": "Mer kunnte kei zopaß Daatebangk-Driiverprojamm fenge.\nMer bruche e Daatebangk-Driiverprojamm för PHP. Dat moß enjeresht wääde.\nMer künne met heh dä {{PLURAL:$2|Daatebangk|Daatebangke|Daatebangk}} ömjonn: $1.\n\nWann De nit om eijene Rääshner bes, moß De Dinge <i lang=\"en\">provider</i> bedde, dat hä Der ene zopaß Driiver enresht.\nWann de PHP sellver övversaz häs, donn e Zohjangsprojramm för en Daatebangk enbenge, för e Beishpell met: <code  lang=\"en\">./configure --with-mysql</code>.\nWann De PHP uss enem <i lang=\"en\">Debian</i> udder <i lang=\"en\">Ubuntu</i> Pakätt enjeresht häs, moß De dann och noch et <code lang=\"en\">php5-mysql</code> op Dinge Räschner bränge.",
+       "config-no-db": "Mer kunnte kei zopaß Daatebangk-Driiverprojamm fenge.\nMer bruche e Daatebangk-Driiverprojamm för PHP. Dat moß enjeresht wääde.\nMer künne met heh dä {{PLURAL:$2|Daatebangk|Daatebangke|Daatebangk}} ömjonn: $1.\n\nWann De nit om eijene Rääshner bes, moß De Dinge <i lang=\"en\">provider</i> bedde, dat hä Der ene zopaß Driiver enresht.\nWann de PHP sellver övversaz häs, donn e Zohjangsprojramm för en Daatebangk enbenge, för e Beishpell met: <code  lang=\"en\">./configure --with-mysqli</code>.\nWann De PHP uss enem <i lang=\"en\">Debian</i> udder <i lang=\"en\">Ubuntu</i> Pakätt enjeresht häs, moß De dann och noch et <code lang=\"en\">php5-mysql</code> op Dinge Räschner bränge.",
        "config-outdated-sqlite": "'''Opjepaß:''' <i lang=\"en\">SQLite</i> $1 es enschtaleert. Avver MediaWiki bruch <i lang=\"en\">SQLite</i> $2 udder hühter. <i lang=\"en\">SQLite</i> kann dröm nit enjesaz wääde.",
        "config-no-fts3": "'''Opjepaß:''' De Projramme vum <i lang=\"en\">SQLite</i> sin der ohne et [//sqlite.org/fts3.html FTS3-Modul] övversaz, dröm wääde de Funxjohne för et Söhke fähle.",
        "config-pcre-old": "<strong>Fähler:</strong> PCRE $1 udder neuer es nüüdesch.\nPHP es jäz ävver met PCRE $2 zesamme jebonge.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mieh dohzoh].",
index d1b1a9b..10de248 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Robby",
                        "Soued031",
-                       "아라"
+                       "아라",
+                       "Seb35"
                ]
        },
        "config-desc": "Den Installatiounsprogramm vu MediaWiki",
@@ -45,7 +46,7 @@
        "config-env-bad": "Den Environnement gouf iwwerpréift.\nDir kënnt MediWiki net installéieren.",
        "config-env-php": "PHP $1 ass installéiert.",
        "config-env-hhvm": "HHVM $1 ass installéiert.",
-       "config-no-db": "Et konnt kee passenden Datebank-Driver fonnt ginn! Dir musst een Datebank-Driver fir PHP installéieren.\n{{PLURAL:$2|Dësn Datebank-Typ gëtt|Dës Datebank-Type ginn}} ënnerstëtzt: $1.\n\nWann Dir PHP selwer compiléiert hutt, da rekonfiguréiert en mat dem ageschalten Datebank-Client, zum Beispill an deem Dir <code>./configure --with-mysql</code> benotzt.\nWann Dir PHP vun engem Debian oder Ubuntu Package aus installéiert hutt, da musst Dir och den php5-mysql Modul installéieren.",
+       "config-no-db": "Et konnt kee passenden Datebank-Driver fonnt ginn! Dir musst een Datebank-Driver fir PHP installéieren.\n{{PLURAL:$2|Dësn Datebank-Typ gëtt|Dës Datebank-Type ginn}} ënnerstëtzt: $1.\n\nWann Dir PHP selwer compiléiert hutt, da rekonfiguréiert en mat dem ageschalten Datebank-Client, zum Beispill an deem Dir <code>./configure --with-mysqli</code> benotzt.\nWann Dir PHP vun engem Debian oder Ubuntu Package aus installéiert hutt, da musst Dir och den php5-mysql Modul installéieren.",
        "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ass installéiert. Allerdengs brauch MediaWiki SQLite $2 oder méi nei. SQLite ass dofir net disponibel.",
        "config-memory-bad": "'''Opgepasst:''' De Parameter <code>memory_limit</code> vu PHP ass $1.\nDat ass wahrscheinlech ze niddreg.\nD'Installatioun kéint net funktionéieren.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] ass installéiert",
index 1df843a..45f1331 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Hosseinblue",
                        "Arash71",
-                       "Lakzon"
+                       "Lakzon",
+                       "Seb35"
                ]
        },
        "config-desc": "نۀصب کۀر ویکی‌مدیا",
@@ -52,7 +53,7 @@
        "config-unicode-using-intl": "برای یونیکد عادی از [http://pecl.php.net/intl intl PECL extension] استفاده کنید.",
        "config-unicode-pure-php-warning": "'''هشدار:''' [http://pecl.php.net/intl intl PECL extension] برای کنترل یونیکد عادی در دسترس نیست،اجرای کاملاً آهسته به تعویق می‌افتد.\nاگر شما یک سایت پر‌ ترافیک را اجرا می‌کنید، باید کمی [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization] را بخوانید.",
        "config-unicode-update-warning": "'''هشدار:''' نسخهٔ نصب شدهٔ پوشهٔ یونیکد عادی از ورژن قدیمی‌تر کتابخانه [http://site.icu-project.org/ the ICU project's] استفاده می‌کند.\nاگر کلاً علاقه‌مند به استفاده از یونیکد هستید باید [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade].",
-       "config-no-db": "درایور پایگاه اطلاعاتی مناسب پیدا نشد! شما لازم دارید یک درایور پایگاه اطلاعاتی  برای پی‌اچ‌پی نصب کنید.انواع پایگاه اطلاعاتی زیر پشتیبانی شده‌اند:$1.\nاگر شما در گروه اشتراک‌گذاری هستید، از تهیه کنندهٔ گروه خود برای نصب یک درایور پایگاه اطلاعاتی مناسب {{PLURAL:$2|سوأل کنید.|پرسش کنید.}}\nاگر خود، پی‌اچ‌پی را تهیه کرده‌اید، با یک پردازشگر فعال دوباره پیکربندی کنید، برای مثال از <code>./configure --with-mysql</code> استفاده کنید.\nاگر پی‌اچ‌پی را از یک بستهٔ دبیان یا آبونتو نصب کرده‌اید، بنابراین لازم دارید بخش php5-mysql را نصب کنید.",
+       "config-no-db": "درایور پایگاه اطلاعاتی مناسب پیدا نشد! شما لازم دارید یک درایور پایگاه اطلاعاتی  برای پی‌اچ‌پی نصب کنید.انواع پایگاه اطلاعاتی زیر پشتیبانی شده‌اند:$1.\nاگر شما در گروه اشتراک‌گذاری هستید، از تهیه کنندهٔ گروه خود برای نصب یک درایور پایگاه اطلاعاتی مناسب {{PLURAL:$2|سوأل کنید.|پرسش کنید.}}\nاگر خود، پی‌اچ‌پی را تهیه کرده‌اید، با یک پردازشگر فعال دوباره پیکربندی کنید، برای مثال از <code>./configure --with-mysqli</code> استفاده کنید.\nاگر پی‌اچ‌پی را از یک بستهٔ دبیان یا آبونتو نصب کرده‌اید، بنابراین لازم دارید بخش php5-mysql را نصب کنید.",
        "config-outdated-sqlite": "''' هشدار:''' شما اس‌کیولایت $1 دارید، که پایین‌تر از حداقل نسخهٔ $2 مورد نیاز است.اس‌کیولایت در دسترس نخواهد بود.",
        "config-no-fts3": "'''هشدار:''' اس‌کیولایت بدون [//sqlite.org/fts3.html FTS3 module] تهیه شده‌است ، جستجوی ویژگی‌ها در این بخش پیشین در دسترس نخواهد‌بود.",
        "config-pcre-old": "''' خطای اساسی:'' ' PCRE  $1  یا بعدا مورد نیاز است.\nکد باینری پی‌اچ‌پی‌تان با PCRE  $2 پیوند دارد.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE اطلاعات بیشتر].",
index 1fcb1cb..46156b9 100644 (file)
@@ -8,7 +8,8 @@
                        "Jeblad",
                        "Macofe",
                        "SuperPotato",
-                       "Jon Harald Søby"
+                       "Jon Harald Søby",
+                       "Seb35"
                ]
        },
        "config-desc": "Installasjonsprogrammet for MediaWiki",
@@ -57,7 +58,7 @@
        "config-unicode-using-intl": "Bruker [http://pecl.php.net/intl intl PECL-utvidelsen] for Unicode-normalisering.",
        "config-unicode-pure-php-warning": "'''Advarsel''': [http://pecl.php.net/intl intl PECL-utvidelsen] er ikke tilgjengelig for å håndtere Unicode-normaliseringen, faller tilbake til en langsommere ren-PHP-implementasjon.\nOm du kjører et nettsted med høy trafikk bør du lese litt om [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
        "config-unicode-update-warning": "<strong>Advarsel:</strong> Den installerte versjonen av Unicode-normalisereren bruker en eldre versjon av [http://site.icu-project.org/ ICU-prosjektets] bibliotek.\nDu bør [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations oppgradere] om du er bekymret for å bruke Unicode.",
-       "config-no-db": "Fant ingen passende databasedriver! Du må installere en databasedriver for PHP.\nFølgende {{PLURAL:$2|databasetype|databasetyper}} støttes: $1\n\nOm du kompilerte PHP selv, rekonfigurer den med en aktivert databaseklient, for eksempel ved å bruke <code>./configure --with-mysql</code>.\nOm du installerte PHP fra en Debian- eller Ubuntu-pakke, må du også installere for eksempel <code>php5-mysql</code>-pakken.",
+       "config-no-db": "Fant ingen passende databasedriver! Du må installere en databasedriver for PHP.\nFølgende {{PLURAL:$2|databasetype|databasetyper}} støttes: $1\n\nOm du kompilerte PHP selv, rekonfigurer den med en aktivert databaseklient, for eksempel ved å bruke <code>./configure --with-mysqli</code>.\nOm du installerte PHP fra en Debian- eller Ubuntu-pakke, må du også installere for eksempel <code>php5-mysql</code>-pakken.",
        "config-outdated-sqlite": "'''Advarsel''': Du har SQLite $1, som er en eldre versjon enn minimumskravet SQLite $2. SQLite vil ikke være tilgjengelig.",
        "config-no-fts3": "'''Advarsel''': SQLite er kompilert uten [//sqlite.org/fts3.html FTS3-modulen], søkefunksjoner vil ikke være tilgjengelig på dette bakstykket.",
        "config-pcre-old": "'''Alvorlig:''' PCRE $1 eller senere kreves.\nDin PHP-kode er lenket med PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Nærmere informasjon].",
index 87a176c..24c3e3b 100644 (file)
@@ -17,7 +17,8 @@
                        "Esketti",
                        "JaapDeKleine",
                        "Macofe",
-                       "Hex"
+                       "Hex",
+                       "Mainframe98"
                ]
        },
        "config-desc": "Het installatieprogramma voor MediaWiki",
@@ -75,6 +76,7 @@
        "config-memory-bad": "'''Waarschuwing:''' PHP's <code>memory_limit</code> is $1.\nDit is waarschijnlijk te laag.\nDe installatie kan mislukken!",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] is op dit moment geïnstalleerd",
        "config-apc": "[http://www.php.net/apc APC] is op dit moment geïnstalleerd",
+       "config-apcu": "[http://www.php.net/apcu APCu] is geïnstalleerd",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] is op dit moment geïnstalleerd",
        "config-no-cache-apcu": "<strong>Waarschuwing:</strong> [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] of [http://www.iis.net/download/WinCacheForPhp WinCache] is niet aangetroffen.\nHet cachen van objecten is niet ingeschakeld.",
        "config-mod-security": "'''Waarschuwing:''' uw webserver heeft de module [http://modsecurity.org/ mod_security] ingeschakeld. Als deze onjuist is ingesteld, kan dit problemen geven in combinatie met MediaWiki of andere software die gebruikers in staat stelt willekeurige inhoud te posten.\nLees de [http://modsecurity.org/documentation/ documentatie over mod_security] of neem contact op met de helpdesk van uw provider als u tegen problemen aanloopt.",
        "config-subscribe-help": "Dit is een mailinglijst met een laag volume voor aankondigingen van nieuwe versies, inclusief belangrijke aankondigingen met betrekking tot beveiliging.\nAbonneer uzelf erop en werk uw MediaWiki-installatie bij als er nieuwe versies uitkomen.",
        "config-subscribe-noemail": "U hebt geprobeerd zich te abonneren op de mailinglijst voor release-aankondigingen zonder een e-mailadres op te geven.\nGeef een e-mailadres op als u zich wilt abonneren op de mailinglijst.",
        "config-pingback": "Gegevens over deze installatie delen met MediaWiki-ontwikkelaars.",
+       "config-pingback-help": "Wanneer deze optie is geselecteerd, zal MediaWiki periodiek https://www.mediawiki.org pingen met informatie over deze MediaWiki instantie. Deze gegevens bevatten bijvoorbeeld het type systeem, de PHP versie, en de gekozen database. De WikiMedia Foundation deelt deze informatie met MediaWiki ontwikkelaars om toekomstige ontwikkeling te ondersteunen. De volgende gegevens zullen worden verstuurd voor uw systeem: \n<pre>$1</pre>",
        "config-almost-done": "U bent bijna klaar!\nAls u wilt kunt u de overige instellingen overslaan en de wiki nu installeren.",
        "config-optional-continue": "Stel me meer vragen.",
        "config-optional-skip": "Laat maar zitten, installeer gewoon de wiki.",
        "config-install-mainpage": "Hoofdpagina aanmaken met standaard inhoud",
        "config-install-extension-tables": "Tabellen voor ingeschakelde uitbreidingen worden aangemaakt",
        "config-install-mainpage-failed": "Het was niet mogelijk de hoofdpagina in te voegen: $1",
-       "config-install-done": "<strong>Gefeliciteerd!</strong>\nU hebt MediaWiki geïnstalleerd.\n\nHet installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.\nDit bevat al uw instellingen.\n\nU moet het bestand downloaden en in de hoofdmap van uw wiki-installatie plaatsten, in dezelfde map als index.php.\nDe download moet u automatisch zijn aangeboden.\n\nAls de download niet is aangeboden of als u de download hebt geannuleerd, dan kunt u de download opnieuw starten door op de onderstaande koppeling te klikken:\n\n$3\n\n<strong>Let op:</strong> als u dit niet nu doet, dan is het bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.\n\nNa het plaatsen van het bestand met instellingen kunt u <strong>[$2 uw wiki gebruiken]</strong>.",
+       "config-install-done": "<strong>Gefeliciteerd!</strong>\nU hebt MediaWiki geïnstalleerd.\n\nHet installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.\nDit bevat al uw instellingen.\n\nU moet het bestand downloaden en in de hoofdmap van uw wiki-installatie plaatsen, in dezelfde map als index.php.\nDe download zou automatisch moeten zijn gestart.\n\nAls de download niet is gestart of als u de download hebt geannuleerd, dan kunt u de download opnieuw starten door op de onderstaande koppeling te klikken:\n\n$3\n\n<strong>Let op:</strong> als u dit niet nu doet, dan is het bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.\n\nNa het plaatsen van het bestand met instellingen kunt u <strong>[$2 uw wiki gebruiken]</strong>.",
+       "config-install-done-path": "<strong>Gefeliciteerd!</strong>\nU hebt MediaWiki geïnstalleerd.\n\nHet installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.\nDit bevat al uw instellingen.\n\nU moet het bestand downloaden en in <code>$4</code> plaatsen. De download zou automatisch moeten zijn gestart.\n\nAls de download niet is gestart of als u de download hebt geannuleerd, dan kunt u de download opnieuw starten door op de onderstaande koppeling te klikken:\n\n$3\n\n<strong>Let op:</strong> Als u dit niet nu doet, dan is het bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.\n\nNa het plaatsen van het bestand met instellingen kunt u <strong>[$2 uw wiki gebruiken]</strong>.",
        "config-download-localsettings": "<code>LocalSettings.php</code> downloaden",
        "config-help": "hulp",
        "config-help-tooltip": "klik om uit te vouwen",
index e332690..3573c3e 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Cedric31",
                        "Jfblanc",
-                       "Seb35"
+                       "Seb35",
+                       "Nicolas Eynaud"
                ]
        },
        "config-desc": "Lo programa d’installacion de MediaWiki",
        "config-install-user-grant-failed": "Fracàs al moment de l'apondon de permissions a l'utilizaire « $1 » : $2",
        "config-install-user-missing": "L'utilizaire «$1» existís pas.",
        "config-install-tables": "Creacion de las taulas",
+       "config-install-interwiki-list": "Impossible de legir lo fichier <code>interwiki.list</code>.",
        "config-install-stats": "Inicializacion de las estatisticas",
        "config-install-keys": "Generacion de la clau secreta",
        "config-install-updates": "Empachar l’execucion de las mesas a jorn inutilas",
index 0747672..e97db42 100644 (file)
@@ -6,7 +6,8 @@
                        "Krinkle",
                        "아라",
                        "Amire80",
-                       "Macofe"
+                       "Macofe",
+                       "Seb35"
                ]
        },
        "config-desc": "L'instalador për mediaWiki",
@@ -55,7 +56,7 @@
        "config-unicode-using-intl": "As deuvra l'[http://pecl.php.net/intl estension intl PECL] për la normalisassion Unicode.",
        "config-unicode-pure-php-warning": "'''Avis:''' L'[http://pecl.php.net/intl estension intl PECL] a l'é pa disponìbil për gestì la normalisassion Unicode, da già che l'implementassion an PHP pur a faliss për lentëssa.\nS'a gestiss un sit a àut tràfich, a dovrìa lese cheicòs an sla [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisassion Unicode].",
        "config-unicode-update-warning": "'''Avis:''' La version instalà dlë spassiador ëd normalisassion Unicode a deuvra na version veja ëd la librarìa dël [http://site.icu-project.org/ proget ICU].\nA dovrìa fé n'[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations agiornament] s'a l'é anteressà a dovré Unicode.",
-       "config-no-db": "Impossìbil trové un pilòta ëd base ëd dàit bon! A dev instalé un pilòta ëd base ëd dàit për PHP.\n{{PLURAL:$2|La sòrt ëd base ëd dàit mantnùa a l'é costa|Le sòrt ëd base ëd dàit mantùe a son coste}} sì-dapress: $1.\n\nS'a l'é compilasse PHP chiel-midem, ch'a lo configura torna con un client ëd base ëd dàit abilità, për esempi an dovrand <code>./configure --with-mysql</code>.\nS'a l'ha instalà PHP dai pachèt Debian o Ubuntu, antlora a dev ëdcò anstalé, për esempi, ël mòdul <code>php5-mysql</code>.",
+       "config-no-db": "Impossìbil trové un pilòta ëd base ëd dàit bon! A dev instalé un pilòta ëd base ëd dàit për PHP.\n{{PLURAL:$2|La sòrt ëd base ëd dàit mantnùa a l'é costa|Le sòrt ëd base ëd dàit mantùe a son coste}} sì-dapress: $1.\n\nS'a l'é compilasse PHP chiel-midem, ch'a lo configura torna con un client ëd base ëd dàit abilità, për esempi an dovrand <code>./configure --with-mysqli</code>.\nS'a l'ha instalà PHP dai pachèt Debian o Ubuntu, antlora a dev ëdcò anstalé, për esempi, ël mòdul <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Avis''': chiel a l'ha SQLite $1, che a l'é pi vej che la version mìnima dont a-i é damanca $2. SQLite a sarà pa disponìbil.",
        "config-no-fts3": "'''Avis''': SQLite a l'é compilà sensa ël mòdul [//sqlite.org/fts3.html FTS3], le funsion d'arserca a saran pa disponìbij su cost motor.",
        "config-pcre-no-utf8": "'''Fatal''': ël mòdul PCRE ëd PHP a smija esse compilà sensa l'apògg PCRE_UTF8.\nMediaWiki a ciama l'apògg d'UTF8 për marcé për da bin.",
index f9a1fef..cc8f993 100644 (file)
@@ -17,7 +17,8 @@
                        "Vitorvicentevalente",
                        "Macofe",
                        "Diniscoelho",
-                       "Ruila"
+                       "Ruila",
+                       "Seb35"
                ]
        },
        "config-desc": "O instalador do MediaWiki",
@@ -66,7 +67,7 @@
        "config-unicode-using-intl": "A usar a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.",
        "config-unicode-pure-php-warning": "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode. Irá recorrer-se à implementação em PHP puro, que é mais lenta.\nSe o seu site tem alto volume de tráfego, devia informar-se um pouco sobre a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/pt normalização Unicode].",
        "config-unicode-update-warning": "'''Aviso''': A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [http://site.icu-project.org/ projeto ICU].\nDevia [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations atualizá-la] se tem quaisquer preocupações sobre o uso do Unicode.",
-       "config-no-db": "Não foi possível encontrar um controlador apropriado da base de dados! Precisa de instalar um controlador da base de dados para o PHP. {{PLURAL:$2|É aceite o seguinte tipo|São aceites os seguintes tipos}} de base de dados: $1.\n\nSe fez a compilação do PHP, reconfigure-o com um cliente de base de dados ativado; por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então precisa de instalar também, por exemplo, o pacote <code>php5-mysql</code>.",
+       "config-no-db": "Não foi possível encontrar um controlador apropriado da base de dados! Precisa de instalar um controlador da base de dados para o PHP. {{PLURAL:$2|É aceite o seguinte tipo|São aceites os seguintes tipos}} de base de dados: $1.\n\nSe fez a compilação do PHP, reconfigure-o com um cliente de base de dados ativado; por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então precisa de instalar também, por exemplo, o pacote <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Aviso''': Tem a versão $1 do SQLite, que é anterior à versão mínima necessária, a $2. O SQLite não estará disponível.",
        "config-no-fts3": "'''Aviso''': O SQLite foi compilado sem o módulo [//sqlite.org/fts3.html FTS3]; as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
        "config-pcre-old": "<strong>Erro fatal:</strong> É necessário o PCRE $1 ou versão posterior.\nO <i>link</i> do seu binário PHP foi feito com o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mais informações].",
index 41541ef..0c77a7b 100644 (file)
@@ -216,7 +216,7 @@ class FormatJson {
                        $count = 0;
                        $value =
                                preg_replace( '/,([ \t]*[}\]][^"\r\n]*([\r\n]|$)|[ \t]*[\r\n][ \t\r\n]*[}\]])/', '$1',
-                                       $value, - 1, $count );
+                                       $value, -1, $count );
                        if ( $count > 0 ) {
                                $result = json_decode( $value, $assoc );
                                if ( JSON_ERROR_NONE === json_last_error() ) {
index b9beac8..69cf1ac 100644 (file)
@@ -1419,9 +1419,8 @@ abstract class Database implements IDatabase, IMaintainableDatabase, LoggerAware
                }
 
                $table = $this->tableName( $table );
-               $old = $this->ignoreErrors( true );
-               $res = $this->query( "SELECT 1 FROM $table LIMIT 1", $fname );
-               $this->ignoreErrors( $old );
+               $ignoreErrors = true;
+               $res = $this->query( "SELECT 1 FROM $table LIMIT 1", $fname, $ignoreErrors );
 
                return (bool)$res;
        }
index 668443b..5d680e2 100644 (file)
@@ -756,14 +756,20 @@ abstract class DatabaseMysqlBase extends Database {
         * @see https://www.percona.com/doc/percona-toolkit/2.1/pt-heartbeat.html
         */
        protected function getHeartbeatData( array $conds ) {
-               $whereSQL = $this->makeList( $conds, self::LIST_AND );
-               // Use ORDER BY for channel based queries since that field might not be UNIQUE.
-               // Note: this would use "TIMESTAMPDIFF(MICROSECOND,ts,UTC_TIMESTAMP(6))" but the
-               // percision field is not supported in MySQL <= 5.5.
-               $res = $this->query(
-                       "SELECT ts FROM heartbeat.heartbeat WHERE $whereSQL ORDER BY ts DESC LIMIT 1"
-               );
-               $row = $res ? $res->fetchObject() : false;
+               // Do not bother starting implicit transactions here
+               $this->clearFlag( self::DBO_TRX, self::REMEMBER_PRIOR );
+               try {
+                       $whereSQL = $this->makeList( $conds, self::LIST_AND );
+                       // Use ORDER BY for channel based queries since that field might not be UNIQUE.
+                       // Note: this would use "TIMESTAMPDIFF(MICROSECOND,ts,UTC_TIMESTAMP(6))" but the
+                       // percision field is not supported in MySQL <= 5.5.
+                       $res = $this->query(
+                               "SELECT ts FROM heartbeat.heartbeat WHERE $whereSQL ORDER BY ts DESC LIMIT 1"
+                       );
+                       $row = $res ? $res->fetchObject() : false;
+               } finally {
+                       $this->restoreFlags();
+               }
 
                return [ $row ? $row->ts : null, microtime( true ) ];
        }
index cd02177..42113b0 100644 (file)
@@ -243,9 +243,7 @@ class DatabasePostgres extends Database {
                }
                /* Transaction stays in the ERROR state until rolled back */
                if ( $this->mTrxLevel ) {
-                       $ignore = $this->ignoreErrors( true );
                        $this->rollback( __METHOD__ );
-                       $this->ignoreErrors( $ignore );
                }
                parent::reportQueryError( $error, $errno, $sql, $fname, false );
        }
index 1d22873..4158e61 100644 (file)
@@ -260,7 +260,7 @@ class LBFactoryMulti extends LBFactory {
                        throw new InvalidArgumentException( __METHOD__ . ": Unknown cluster \"$cluster\"" );
                }
                $template = $this->serverTemplate;
-               if ( isset( $this->externalTemplateOverrides ) ) {
+               if ( $this->externalTemplateOverrides ) {
                        $template = $this->externalTemplateOverrides + $template;
                }
                if ( isset( $this->templateOverridesByCluster[$cluster] ) ) {
@@ -348,7 +348,7 @@ class LBFactoryMulti extends LBFactory {
                        $serverInfo = $template;
                        if ( $master ) {
                                $serverInfo['master'] = true;
-                               if ( isset( $this->masterTemplateOverrides ) ) {
+                               if ( $this->masterTemplateOverrides ) {
                                        $serverInfo = $this->masterTemplateOverrides + $serverInfo;
                                }
                                $master = false;
index 14d049c..95f55b6 100644 (file)
@@ -241,10 +241,14 @@ class LoadBalancer implements ILoadBalancer {
 
                                $host = $this->getServerName( $i );
                                if ( $lag === false && !is_infinite( $maxServerLag ) ) {
-                                       $this->replLogger->error( "Server $host (#$i) is not replicating?" );
+                                       $this->replLogger->error(
+                                               "Server {host} (#$i) is not replicating?", [ 'host' => $host ] );
                                        unset( $loads[$i] );
                                } elseif ( $lag > $maxServerLag ) {
-                                       $this->replLogger->warning( "Server $host (#$i) has >= $lag seconds of lag" );
+                                       $this->replLogger->warning(
+                                               "Server {host} (#$i) has {lag} seconds of lag (>= {maxlag})",
+                                               [ 'host' => $host, 'lag' => $lag, 'maxlag' => $maxServerLag ]
+                                       );
                                        unset( $loads[$i] );
                                }
                        }
@@ -503,8 +507,10 @@ class LoadBalancer implements ILoadBalancer {
 
                if ( $result == -1 || is_null( $result ) ) {
                        // Timed out waiting for replica DB, use master instead
-                       $msg = __METHOD__ . ": Timed out waiting on $server pos {$this->mWaitForPos}";
-                       $this->replLogger->warning( "$msg" );
+                       $this->replLogger->warning(
+                               __METHOD__ . ": Timed out waiting on {host} pos {$this->mWaitForPos}",
+                               [ 'host' => $server ]
+                       );
                        $ok = false;
                } else {
                        $this->replLogger->info( __METHOD__ . ": Done" );
index 7a228bd..ce1df0d 100644 (file)
  * header format when requested.
  */
 class MailAddress {
+
+       /**
+        * @var string
+        */
+       public $name;
+
+       /**
+        * @var string
+        */
+       public $realName;
+
+       /**
+        * @var string
+        */
+       public $address;
+
        /**
         * @param string $address String with an email address, or a User object
         * @param string $name Human-readable name if a string address is given
index 6e3bace..4bcb655 100644 (file)
@@ -388,9 +388,12 @@ class Article implements Page {
                $this->mContentObject = $content;
                $this->mRevIdFetched = $this->mRevision->getId();
 
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $articlePage = $this;
+
                ContentHandler::runLegacyHooks(
                        'ArticleAfterFetchContentObject',
-                       [ &$this, &$this->mContentObject ],
+                       [ &$articlePage, &$this->mContentObject ],
                        '1.21'
                );
 
@@ -525,7 +528,9 @@ class Article implements Page {
                while ( !$outputDone && ++$pass ) {
                        switch ( $pass ) {
                                case 1:
-                                       Hooks::run( 'ArticleViewHeader', [ &$this, &$outputDone, &$useParserCache ] );
+                                       // Avoid PHP 7.1 warning of passing $this by reference
+                                       $articlePage = $this;
+                                       Hooks::run( 'ArticleViewHeader', [ &$articlePage, &$outputDone, &$useParserCache ] );
                                        break;
                                case 2:
                                        # Early abort if the page doesn't exist
@@ -863,9 +868,12 @@ class Article implements Page {
                $redirectTargetUrl = $this->getTitle()->getLinkURL( $query );
 
                if ( isset( $this->mRedirectedFrom ) ) {
+                       // Avoid PHP 7.1 warning of passing $this by reference
+                       $articlePage = $this;
+
                        // This is an internally redirected page view.
                        // We'll need a backlink to the source page for navigation.
-                       if ( Hooks::run( 'ArticleViewRedirect', [ &$this ] ) ) {
+                       if ( Hooks::run( 'ArticleViewRedirect', [ &$articlePage ] ) ) {
                                $redir = Linker::linkKnown(
                                        $this->mRedirectedFrom,
                                        null,
@@ -1295,7 +1303,10 @@ class Article implements Page {
         * @param int $oldid Revision ID of this article revision
         */
        public function setOldSubtitle( $oldid = 0 ) {
-               if ( !Hooks::run( 'DisplayOldSubtitle', [ &$this, &$oldid ] ) ) {
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $articlePage = $this;
+
+               if ( !Hooks::run( 'DisplayOldSubtitle', [ &$articlePage, &$oldid ] ) ) {
                        return;
                }
 
@@ -1858,7 +1869,9 @@ class Article implements Page {
                                && !$this->mRedirectedFrom && !$this->getTitle()->isRedirect();
                        // Extension may have reason to disable file caching on some pages.
                        if ( $cacheable ) {
-                               $cacheable = Hooks::run( 'IsFileCacheable', [ &$this ] );
+                               // Avoid PHP 7.1 warning of passing $this by reference
+                               $articlePage = $this;
+                               $cacheable = Hooks::run( 'IsFileCacheable', [ &$articlePage ] );
                        }
                }
 
index 6d2be51..ccc50f7 100644 (file)
@@ -54,7 +54,10 @@ class CategoryPage extends Article {
                        return;
                }
 
-               if ( !Hooks::run( 'CategoryPageView', [ &$this ] ) ) {
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $categoryPage = $this;
+
+               if ( !Hooks::run( 'CategoryPageView', [ &$categoryPage ] ) ) {
                        return;
                }
 
index db3ec14..b60b010 100644 (file)
@@ -69,6 +69,7 @@ class ImagePage extends Article {
                $this->fileLoaded = true;
 
                $this->displayImg = $img = false;
+
                Hooks::run( 'ImagePageFindFile', [ $this, &$img, &$this->displayImg ] );
                if ( !$img ) { // not set by hook?
                        $img = wfFindFile( $this->getTitle() );
@@ -335,7 +336,10 @@ class ImagePage extends Article {
                        $filename = wfEscapeWikiText( $this->displayImg->getName() );
                        $linktext = $filename;
 
-                       Hooks::run( 'ImageOpenShowImageInlineBefore', [ &$this, &$out ] );
+                       // Use of &$this in hooks triggers warnings in PHP 7.1
+                       $imagePage = $this;
+
+                       Hooks::run( 'ImageOpenShowImageInlineBefore', [ &$imagePage, &$out ] );
 
                        if ( $this->displayImg->allowInlineDisplay() ) {
                                # image
index 45540b5..0f1efe7 100644 (file)
@@ -316,7 +316,10 @@ class WikiPage implements Page, IDBAccessObject {
        protected function pageData( $dbr, $conditions, $options = [] ) {
                $fields = self::selectFields();
 
-               Hooks::run( 'ArticlePageDataBefore', [ &$this, &$fields ] );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $wikiPage = $this;
+
+               Hooks::run( 'ArticlePageDataBefore', [ &$wikiPage, &$fields ] );
 
                $row = $dbr->selectRow( 'page', $fields, $conditions, __METHOD__, $options );
 
@@ -1121,7 +1124,10 @@ class WikiPage implements Page, IDBAccessObject {
         * @return bool
         */
        public function doPurge( $flags = self::PURGE_ALL ) {
-               if ( !Hooks::run( 'ArticlePurge', [ &$this ] ) ) {
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $wikiPage = $this;
+
+               if ( !Hooks::run( 'ArticlePurge', [ &$wikiPage ] ) ) {
                        return false;
                }
 
@@ -1649,9 +1655,12 @@ class WikiPage implements Page, IDBAccessObject {
                $user = $user ?: $wgUser;
                $flags = $this->checkFlags( $flags );
 
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $wikiPage = $this;
+
                // Trigger pre-save hook (using provided edit summary)
                $hookStatus = Status::newGood( [] );
-               $hook_args = [ &$this, &$user, &$content, &$summary,
+               $hook_args = [ &$wikiPage, &$user, &$content, &$summary,
                                                        $flags & EDIT_MINOR, null, null, &$flags, &$hookStatus ];
                // Check if the hook rejected the attempted save
                if ( !Hooks::run( 'PageContentSave', $hook_args )
@@ -1878,8 +1887,10 @@ class WikiPage implements Page, IDBAccessObject {
                                                        'oldrevision' => $meta['oldRevision']
                                                ]
                                        );
+                                       // Avoid PHP 7.1 warning of passing $this by reference
+                                       $wikiPage = $this;
                                        // Trigger post-save hook
-                                       $params = [ &$this, &$user, $content, $summary, $flags & EDIT_MINOR,
+                                       $params = [ &$wikiPage, &$user, $content, $summary, $flags & EDIT_MINOR,
                                                null, null, &$flags, $revision, &$status, $meta['baseRevId'],
                                                $meta['undidRevId'] ];
                                        ContentHandler::runLegacyHooks( 'ArticleSaveComplete', $params );
@@ -1999,8 +2010,10 @@ class WikiPage implements Page, IDBAccessObject {
                                ) {
                                        // Update links, etc.
                                        $this->doEditUpdates( $revision, $user, [ 'created' => true ] );
+                                       // Avoid PHP 7.1 warning of passing $this by reference
+                                       $wikiPage = $this;
                                        // Trigger post-create hook
-                                       $params = [ &$this, &$user, $content, $summary,
+                                       $params = [ &$wikiPage, &$user, $content, $summary,
                                                $flags & EDIT_MINOR, null, null, &$flags, $revision ];
                                        ContentHandler::runLegacyHooks( 'ArticleInsertComplete', $params, '1.21' );
                                        Hooks::run( 'PageContentInsertComplete', $params );
@@ -2277,9 +2290,12 @@ class WikiPage implements Page, IDBAccessObject {
                        }
                }
 
-               Hooks::run( 'ArticleEditUpdates', [ &$this, &$editInfo, $options['changed'] ] );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $wikiPage = $this;
+
+               Hooks::run( 'ArticleEditUpdates', [ &$wikiPage, &$editInfo, $options['changed'] ] );
 
-               if ( Hooks::run( 'ArticleEditUpdatesDeleteFromRecentchanges', [ &$this ] ) ) {
+               if ( Hooks::run( 'ArticleEditUpdatesDeleteFromRecentchanges', [ &$wikiPage ] ) ) {
                        // Flush old entries from the `recentchanges` table
                        if ( mt_rand( 0, 9 ) == 0 ) {
                                JobQueueGroup::singleton()->lazyPush( RecentChangesUpdateJob::newPurgeJob() );
@@ -2323,9 +2339,12 @@ class WikiPage implements Page, IDBAccessObject {
                        if ( !$recipient ) {
                                wfDebug( __METHOD__ . ": invalid username\n" );
                        } else {
+                               // Avoid PHP 7.1 warning of passing $this by reference
+                               $wikiPage = $this;
+
                                // Allow extensions to prevent user notification
                                // when a new message is added to their talk page
-                               if ( Hooks::run( 'ArticleEditUpdateNewTalk', [ &$this, $recipient ] ) ) {
+                               if ( Hooks::run( 'ArticleEditUpdateNewTalk', [ &$wikiPage, $recipient ] ) ) {
                                        if ( User::isIP( $shortTitle ) ) {
                                                // An anonymous user
                                                $recipient->setNewtalk( true, $revision );
@@ -2454,7 +2473,10 @@ class WikiPage implements Page, IDBAccessObject {
                $nullRevision = null;
 
                if ( $id ) { // Protection of existing page
-                       if ( !Hooks::run( 'ArticleProtect', [ &$this, &$user, $limit, $reason ] ) ) {
+                       // Avoid PHP 7.1 warning of passing $this by reference
+                       $wikiPage = $this;
+
+                       if ( !Hooks::run( 'ArticleProtect', [ &$wikiPage, &$user, $limit, $reason ] ) ) {
                                return Status::newGood();
                        }
 
@@ -2541,9 +2563,12 @@ class WikiPage implements Page, IDBAccessObject {
                                __METHOD__
                        );
 
+                       // Avoid PHP 7.1 warning of passing $this by reference
+                       $wikiPage = $this;
+
                        Hooks::run( 'NewRevisionFromEditComplete',
                                [ $this, $nullRevision, $latest, $user ] );
-                       Hooks::run( 'ArticleProtectComplete', [ &$this, &$user, $limit, $reason ] );
+                       Hooks::run( 'ArticleProtectComplete', [ &$wikiPage, &$user, $limit, $reason ] );
                } else { // Protection of non-existing page (also known as "title protection")
                        // Cascade protection is meaningless in this case
                        $cascade = false;
@@ -2823,9 +2848,12 @@ class WikiPage implements Page, IDBAccessObject {
                        return $status;
                }
 
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $wikiPage = $this;
+
                $user = is_null( $user ) ? $wgUser : $user;
                if ( !Hooks::run( 'ArticleDelete',
-                       [ &$this, &$user, &$reason, &$error, &$status, $suppress ]
+                       [ &$wikiPage, &$user, &$reason, &$error, &$status, $suppress ]
                ) ) {
                        if ( $status->isOK() ) {
                                // Hook aborted but didn't set a fatal status
index 950d66d..661318b 100644 (file)
@@ -223,7 +223,8 @@ class Preprocessor_DOM extends Preprocessor {
 
                $searchBase = "[{<\n"; # }
                if ( !$wgDisableLangConversion ) {
-                       $searchBase .= '-';
+                       // FIXME: disabled due to T153761
+                       // $searchBase .= '-';
                }
 
                // For fast reverse searches
index 1317e60..2666c93 100644 (file)
@@ -155,7 +155,8 @@ class Preprocessor_Hash extends Preprocessor {
 
                $searchBase = "[{<\n";
                if ( !$wgDisableLangConversion ) {
-                       $searchBase .= '-';
+                       // FIXME: disabled due to T153761
+                       // $searchBase .= '-';
                }
 
                // For fast reverse searches
index dd41a6e..d0e3a24 100644 (file)
@@ -75,10 +75,10 @@ class SearchHighlighter {
                        if ( preg_match( $spat, $text, $matches, PREG_OFFSET_CAPTURE, $start ) ) {
                                $epat = '';
                                foreach ( $matches as $key => $val ) {
-                                       if ( $key > 0 && $val[1] != - 1 ) {
+                                       if ( $key > 0 && $val[1] != -1 ) {
                                                if ( $key == 2 ) {
                                                        // see if this is an image link
-                                                       $ns = substr( $val[0], 2, - 1 );
+                                                       $ns = substr( $val[0], 2, -1 );
                                                        if ( $wgContLang->getNsIndex( $ns ) != NS_FILE ) {
                                                                break;
                                                        }
@@ -252,10 +252,10 @@ class SearchHighlighter {
 
                // $snippets = array_map( 'htmlspecialchars', $extended );
                $snippets = $extended;
-               $last = - 1;
+               $last = -1;
                $extract = '';
                foreach ( $snippets as $index => $line ) {
-                       if ( $last == - 1 ) {
+                       if ( $last == -1 ) {
                                $extract .= $line; // first line
                        } elseif ( $last + 1 == $index
                                && $offsets[$last] + strlen( $snippets[$last] ) >= strlen( $all[$last] )
index 540ce4b..c3ee321 100644 (file)
@@ -1088,13 +1088,13 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                        // B/C for old extensions that haven't been converted to AuthManager (or have been
                        // but somebody is using the old version) and still use templates via the
                        // UserCreateForm/UserLoginForm hook.
-                       // 'header' used by ConfirmEdit, CondfirmAccount, Persona, WikimediaIncubator, SemanticSignup
+                       // 'header' used by ConfirmEdit, ConfirmAccount, Persona, WikimediaIncubator, SemanticSignup
                        // 'formheader' used by MobileFrontend
                        $fieldDefinitions['header'] = [
                                'type' => 'info',
                                'raw' => true,
                                'default' => $template->get( 'header' ) ?: $template->get( 'formheader' ),
-                               'weight' => - 110,
+                               'weight' => -110,
                        ];
                }
                if ( $this->mEntryError ) {
index 00d8c4a..ba58e92 100644 (file)
@@ -853,7 +853,7 @@ class SpecialPage {
         * @since 1.28
         * @return \MediaWiki\Linker\LinkRenderer
         */
-       protected function getLinkRenderer() {
+       public function getLinkRenderer() {
                if ( $this->linkRenderer ) {
                        return $this->linkRenderer;
                } else {
index ff70848..f22d5f3 100644 (file)
@@ -135,9 +135,9 @@ class SpecialChangeCredentials extends AuthManagerSpecialPage {
 
                $form->addPreText(
                        Html::openElement( 'dl' )
-                       . Html::element( 'dt', [], wfMessage( 'credentialsform-provider' ) )
+                       . Html::element( 'dt', [], wfMessage( 'credentialsform-provider' )->text() )
                        . Html::element( 'dd', [], $info['provider'] )
-                       . Html::element( 'dt', [], wfMessage( 'credentialsform-account' ) )
+                       . Html::element( 'dt', [], wfMessage( 'credentialsform-account' )->text() )
                        . Html::element( 'dd', [], $info['account'] )
                        . Html::closeElement( 'dl' )
                );
index d8a468f..15696bc 100644 (file)
@@ -120,7 +120,6 @@ class MIMEsearchPage extends QueryPage {
                ];
 
                HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() )
-                       ->setWrapperLegendMsg( 'mimesearch' )
                        ->setSubmitTextMsg( 'ilsubmit' )
                        ->setAction( $this->getPageTitle()->getLocalURL() )
                        ->setMethod( 'get' )
index 61b6a8c..55ae692 100644 (file)
@@ -111,68 +111,99 @@ class SpecialPageLanguage extends FormSpecialPage {
        /**
         *
         * @param array $data
-        * @return bool
+        * @return Status
         */
        public function onSubmit( array $data ) {
-               $title = Title::newFromText( $data['pagename'] );
+               $pageName = $data['pagename'];
 
-               // Check if title is valid
-               if ( !$title ) {
-                       return false;
+               // Check if user wants to use default language
+               if ( $data['selectoptions'] == 1 ) {
+                       $newLanguage = 'default';
+               } else {
+                       $newLanguage = $data['language'];
+               }
+
+               try {
+                       $title = Title::newFromTextThrow( $pageName );
+               } catch ( MalformedTitleException $ex ) {
+                       return Status::newFatal( $ex->getMessageObject() );
                }
 
+               // Url to redirect to after the operation
+               $this->goToUrl = $title->getFullURL();
+
+               return self::changePageLanguage( $this->getContext(), $title, $newLanguage );
+       }
+
+       /**
+        * @param IContextSource $context
+        * @param Title $title
+        * @param string $newLanguage Language code
+        * @param array $tags Change tags to apply to the log entry
+        * @return Status
+        */
+       public static function changePageLanguage( IContextSource $context, Title $title,
+               $newLanguage, array $tags = [] ) {
                // Get the default language for the wiki
-               $defLang = $this->getConfig()->get( 'LanguageCode' );
+               $defLang = $context->getConfig()->get( 'LanguageCode' );
 
                $pageId = $title->getArticleID();
 
                // Check if article exists
                if ( !$pageId ) {
-                       return false;
+                       return Status::newFatal(
+                               'pagelang-nonexistent-page',
+                               wfEscapeWikiText( $title->getPrefixedText() )
+                       );
                }
 
                // Load the page language from DB
                $dbw = wfGetDB( DB_MASTER );
-               $langOld = $dbw->selectField(
+               $oldLanguage = $dbw->selectField(
                        'page',
                        'page_lang',
                        [ 'page_id' => $pageId ],
                        __METHOD__
                );
 
-               // Url to redirect to after the operation
-               $this->goToUrl = $title->getFullURL();
-
-               // Check if user wants to use default language
-               if ( $data['selectoptions'] == 1 ) {
-                       $langNew = null;
-               } else {
-                       $langNew = $data['language'];
+               // Check if user wants to use the default language
+               if ( $newLanguage === 'default' ) {
+                       $newLanguage = null;
                }
 
                // No change in language
-               if ( $langNew === $langOld ) {
-                       return false;
+               if ( $newLanguage === $oldLanguage ) {
+                       // Check if old language does not exist
+                       if ( !$oldLanguage ) {
+                               return Status::newFatal(
+                                       'pagelang-unchanged-language-default',
+                                       wfEscapeWikiText( $title->getPrefixedText() )
+                               );
+                       }
+                       return Status::newFatal(
+                               'pagelang-unchanged-language',
+                               wfEscapeWikiText( $title->getPrefixedText() ),
+                               $oldLanguage
+                       );
                }
 
                // Hardcoded [def] if the language is set to null
-               $logOld = $langOld ? $langOld : $defLang . '[def]';
-               $logNew = $langNew ? $langNew : $defLang . '[def]';
+               $logOld = $oldLanguage ? $oldLanguage : $defLang . '[def]';
+               $logNew = $newLanguage ? $newLanguage : $defLang . '[def]';
 
                // Writing new page language to database
-               $dbw = wfGetDB( DB_MASTER );
                $dbw->update(
                        'page',
-                       [ 'page_lang' => $langNew ],
+                       [ 'page_lang' => $newLanguage ],
                        [
                                'page_id' => $pageId,
-                               'page_lang' => $langOld
+                               'page_lang' => $oldLanguage
                        ],
                        __METHOD__
                );
 
                if ( !$dbw->affectedRows() ) {
-                       return false;
+                       return Status::newFatal( 'pagelang-db-failed' );
                }
 
                // Logging change of language
@@ -181,9 +212,10 @@ class SpecialPageLanguage extends FormSpecialPage {
                        '5::newlanguage' => $logNew
                ];
                $entry = new ManualLogEntry( 'pagelang', 'pagelang' );
-               $entry->setPerformer( $this->getUser() );
+               $entry->setPerformer( $context->getUser() );
                $entry->setTarget( $title );
                $entry->setParameters( $logParams );
+               $entry->setTags( $tags );
 
                $logid = $entry->insert();
                $entry->publish( $logid );
@@ -191,7 +223,11 @@ class SpecialPageLanguage extends FormSpecialPage {
                // Force re-render so that language-based content (parser functions etc.) gets updated
                $title->invalidateCache();
 
-               return true;
+               return Status::newGood( (object)[
+                       'oldLanguage' => $logOld,
+                       'newLanguage' => $logNew,
+                       'logId' => $logid,
+               ] );
        }
 
        public function onSuccess() {
index 1ce61e3..b2e5674 100644 (file)
@@ -526,6 +526,14 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                parent::addModules();
                $out = $this->getOutput();
                $out->addModules( 'mediawiki.special.recentchanges' );
+               if ( $this->getUser()->getOption(
+                               'rcenhancedfilters',
+                               /*default=*/ null,
+                               /*ignoreHidden=*/ true
+                       )
+               ) {
+                       $out->addModules( 'mediawiki.rcfilters.filters' );
+               }
        }
 
        /**
index ea40cb8..e67356f 100644 (file)
@@ -98,7 +98,7 @@ class SpecialTags extends SpecialPage {
                                ],
                        ];
 
-                       $form = new HTMLForm( $fields, $this->getContext() );
+                       $form = HTMLForm::factory( 'ooui', $fields, $this->getContext() );
                        $form->setAction( $this->getPageTitle( 'create' )->getLocalURL() );
                        $form->setWrapperLegendMsg( 'tags-create-heading' );
                        $form->setHeaderText( $this->msg( 'tags-create-explanation' )->parseAsBlock() );
@@ -312,7 +312,7 @@ class SpecialTags extends SpecialPage {
                                $out->parse( $status->getWikiText() ) .
                                $this->msg( 'tags-create-warnings-below' )->parseAsBlock();
 
-                       $subform = new HTMLForm( $fields, $this->getContext() );
+                       $subform = HTMLForm::factory( 'ooui', $fields, $this->getContext() );
                        $subform->setAction( $this->getPageTitle( 'create' )->getLocalURL() );
                        $subform->setWrapperLegendMsg( 'tags-create-heading' );
                        $subform->setHeaderText( $headerText );
@@ -377,7 +377,7 @@ class SpecialTags extends SpecialPage {
                        'required' => true,
                ];
 
-               $form = new HTMLForm( $fields, $this->getContext() );
+               $form = HTMLForm::factory( 'ooui', $fields, $this->getContext() );
                $form->setAction( $this->getPageTitle( 'delete' )->getLocalURL() );
                $form->tagAction = 'delete'; // custom property on HTMLForm object
                $form->setSubmitCallback( [ $this, 'processTagForm' ] );
@@ -428,7 +428,7 @@ class SpecialTags extends SpecialPage {
                        'required' => true,
                ];
 
-               $form = new HTMLForm( $fields, $this->getContext() );
+               $form = HTMLForm::factory( 'ooui', $fields, $this->getContext() );
                $form->setAction( $this->getPageTitle( $actionStr )->getLocalURL() );
                $form->tagAction = $actionStr;
                $form->setSubmitCallback( [ $this, 'processTagForm' ] );
index 4e683f6..0d42e3f 100644 (file)
@@ -209,11 +209,18 @@ class SpecialUnblock extends SpecialPage {
                        return [ 'unblock-hideuser' ];
                }
 
+               $reason = [ 'hookaborted' ];
+               if ( !Hooks::run( 'UnblockUser', [ &$block, &$performer, &$reason ] ) ) {
+                       return $reason;
+               }
+
                # Delete block
                if ( !$block->delete() ) {
                        return [ [ 'ipb_cant_unblock', htmlspecialchars( $block->getTarget() ) ] ];
                }
 
+               Hooks::run( 'UnblockUserComplete', [ $block, $performer ] );
+
                # Unset _deleted fields as needed
                if ( $block->mHideName ) {
                        # Something is deeply FUBAR if this is not a User object, but who knows?
index 04f5be4..3d51842 100644 (file)
@@ -1806,11 +1806,9 @@ class SpecialUndelete extends SpecialPage {
                // Show revision undeletion warnings and errors
                $status = $archive->getRevisionStatus();
                if ( $status && !$status->isGood() ) {
-                       $out->addWikiText( '<div class="error">' .
-                               $status->getWikiText(
-                                       'cannotundelete',
-                                       'cannotundelete'
-                               ) . '</div>'
+                       $out->wrapWikiMsg(
+                               "<div class=\"error\" id=\"mw-error-cannotundelete\">\n$1\n</div>",
+                               'cannotundelete'
                        );
                }
 
index df98f33..38bac29 100644 (file)
@@ -233,9 +233,10 @@ class UserrightsPage extends SpecialPage {
         * @param array $add Array of groups to add
         * @param array $remove Array of groups to remove
         * @param string $reason Reason for group change
+        * @param array $tags Array of change tags to add to the log entry
         * @return array Tuple of added, then removed groups
         */
-       function doSaveUserGroups( $user, $add, $remove, $reason = '' ) {
+       function doSaveUserGroups( $user, $add, $remove, $reason = '', $tags = [] ) {
                // Validate input set...
                $isself = $user->getName() == $this->getUser()->getName();
                $groups = $user->getGroups();
@@ -250,6 +251,8 @@ class UserrightsPage extends SpecialPage {
                        $groups )
                );
 
+               Hooks::run( 'ChangeUserGroups', [ $this->getUser(), $user, &$add, &$remove ] );
+
                $oldGroups = $user->getGroups();
                $newGroups = $oldGroups;
 
@@ -287,7 +290,7 @@ class UserrightsPage extends SpecialPage {
                Hooks::run( 'UserRights', [ &$user, $add, $remove ], '1.26' );
 
                if ( $newGroups != $oldGroups ) {
-                       $this->addLogEntry( $user, $oldGroups, $newGroups, $reason );
+                       $this->addLogEntry( $user, $oldGroups, $newGroups, $reason, $tags );
                }
 
                return [ $add, $remove ];
@@ -299,8 +302,9 @@ class UserrightsPage extends SpecialPage {
         * @param array $oldGroups
         * @param array $newGroups
         * @param array $reason
+        * @param array $tags
         */
-       function addLogEntry( $user, $oldGroups, $newGroups, $reason ) {
+       function addLogEntry( $user, $oldGroups, $newGroups, $reason, $tags ) {
                $logEntry = new ManualLogEntry( 'rights', 'rights' );
                $logEntry->setPerformer( $this->getUser() );
                $logEntry->setTarget( $user->getUserPage() );
@@ -310,6 +314,9 @@ class UserrightsPage extends SpecialPage {
                        '5::newgroups' => $newGroups,
                ] );
                $logid = $logEntry->insert();
+               if ( count( $tags ) ) {
+                       $logEntry->setTags( $tags );
+               }
                $logEntry->publish( $logid );
        }
 
index 9f6c58c..e22b939 100644 (file)
@@ -27,7 +27,7 @@ use MediaWiki\MediaWikiServices;
 class NewFilesPager extends ReverseChronologicalPager {
 
        /**
-        * @var ImageGallery
+        * @var ImageGalleryBase
         */
        protected $gallery;
 
index 56d5ce7..9f6feb8 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 namespace MediaWiki\Tidy;
 
-use ReplacementArray;
 use ParserOutput;
 use Parser;
 
@@ -20,33 +19,32 @@ use Parser;
 class RaggettWrapper {
 
        /**
-        * @var ReplacementArray
+        * @var array
         */
        protected $mTokens;
 
+       /**
+        * @var int
+        */
        protected $mMarkerIndex;
 
-       public function __construct() {
-               $this->mTokens = null;
-       }
-
        /**
         * @param string $text
         * @return string
         */
        public function getWrapped( $text ) {
-               $this->mTokens = new ReplacementArray;
+               $this->mTokens = [];
                $this->mMarkerIndex = 0;
 
                // Replace <mw:editsection> elements with placeholders
                $wrappedtext = preg_replace_callback( ParserOutput::EDITSECTION_REGEX,
-                       [ &$this, 'replaceCallback' ], $text );
+                       [ $this, 'replaceCallback' ], $text );
                // ...and <mw:toc> markers
                $wrappedtext = preg_replace_callback( '/\<\\/?mw:toc\>/',
-                       [ &$this, 'replaceCallback' ], $wrappedtext );
+                       [ $this, 'replaceCallback' ], $wrappedtext );
                // ... and <math> tags
                $wrappedtext = preg_replace_callback( '/\<math(.*?)\<\\/math\>/s',
-                       [ &$this, 'replaceCallback' ], $wrappedtext );
+                       [ $this, 'replaceCallback' ], $wrappedtext );
                // Modify inline Microdata <link> and <meta> elements so they say <html-link> and <html-meta> so
                // we can trick Tidy into not stripping them out by including them in tidy's new-empty-tags config
                $wrappedtext = preg_replace( '!<(link|meta)([^>]*?)(/{0,1}>)!', '<html-$1$2$3', $wrappedtext );
@@ -66,13 +64,12 @@ class RaggettWrapper {
 
        /**
         * @param array $m
-        *
         * @return string
         */
-       public function replaceCallback( $m ) {
+       private function replaceCallback( array $m ) {
                $marker = Parser::MARKER_PREFIX . "-item-{$this->mMarkerIndex}" . Parser::MARKER_SUFFIX;
                $this->mMarkerIndex++;
-               $this->mTokens->setPair( $marker, $m[0] );
+               $this->mTokens[$marker] = $m[0];
                return $marker;
        }
 
@@ -88,7 +85,7 @@ class RaggettWrapper {
                $text = str_replace( '<li datafld=""', '<li', $text );
 
                // Restore the contents of placeholder tokens
-               $text = $this->mTokens->replace( $text );
+               $text = strtr( $text, $this->mTokens );
 
                return $text;
        }
index 597bf2f..7c370f1 100644 (file)
@@ -78,7 +78,8 @@ class TitleValue implements LinkTarget {
                Assert::parameterType( 'string', $interwiki, '$interwiki' );
 
                // Sanity check, no full validation or normalization applied here!
-               Assert::parameter( !preg_match( '/^_|[ \r\n\t]|_$/', $dbkey ), '$dbkey', 'invalid DB key' );
+               Assert::parameter( !preg_match( '/^_|[ \r\n\t]|_$/', $dbkey ), '$dbkey',
+                       "invalid DB key '$dbkey'" );
                Assert::parameter( $dbkey !== '', '$dbkey', 'should not be empty' );
 
                $this->namespace = $namespace;
index 663c5da..562f0d1 100644 (file)
@@ -1694,8 +1694,10 @@ class User implements IDBAccessObject {
                        $this->blockTrigger = false;
                }
 
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $user = $this;
                // Extensions
-               Hooks::run( 'GetBlockedStatus', [ &$this ] );
+               Hooks::run( 'GetBlockedStatus', [ &$user ] );
        }
 
        /**
@@ -1829,9 +1831,11 @@ class User implements IDBAccessObject {
         * @return bool True if a rate limiter was tripped
         */
        public function pingLimiter( $action = 'edit', $incrBy = 1 ) {
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $user = $this;
                // Call the 'PingLimiter' hook
                $result = false;
-               if ( !Hooks::run( 'PingLimiter', [ &$this, $action, &$result, $incrBy ] ) ) {
+               if ( !Hooks::run( 'PingLimiter', [ &$user, $action, &$result, $incrBy ] ) ) {
                        return $result;
                }
 
@@ -2066,9 +2070,11 @@ class User implements IDBAccessObject {
                } elseif ( !$ip ) {
                        $ip = $this->getRequest()->getIP();
                }
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $user = $this;
                $blocked = false;
                $block = null;
-               Hooks::run( 'UserIsBlockedGlobally', [ &$this, $ip, &$blocked, &$block ] );
+               Hooks::run( 'UserIsBlockedGlobally', [ &$user, $ip, &$blocked, &$block ] );
 
                if ( $blocked && $block === null ) {
                        // back-compat: UserIsBlockedGlobally didn't have $block param first
@@ -2091,7 +2097,9 @@ class User implements IDBAccessObject {
                if ( $this->mLocked !== null ) {
                        return $this->mLocked;
                }
-               $authUser = AuthManager::callLegacyAuthPlugin( 'getUserInstance', [ &$this ], null );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $user = $this;
+               $authUser = AuthManager::callLegacyAuthPlugin( 'getUserInstance', [ &$user ], null );
                $this->mLocked = $authUser && $authUser->isLocked();
                Hooks::run( 'UserIsLocked', [ $this, &$this->mLocked ] );
                return $this->mLocked;
@@ -2108,7 +2116,9 @@ class User implements IDBAccessObject {
                }
                $this->getBlockedStatus();
                if ( !$this->mHideName ) {
-                       $authUser = AuthManager::callLegacyAuthPlugin( 'getUserInstance', [ &$this ], null );
+                       // Avoid PHP 7.1 warning of passing $this by reference
+                       $user = $this;
+                       $authUser = AuthManager::callLegacyAuthPlugin( 'getUserInstance', [ &$user ], null );
                        $this->mHideName = $authUser && $authUser->isHidden();
                        Hooks::run( 'UserIsHidden', [ $this, &$this->mHideName ] );
                }
@@ -2227,8 +2237,10 @@ class User implements IDBAccessObject {
         * @return array
         */
        public function getNewMessageLinks() {
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $user = $this;
                $talks = [];
-               if ( !Hooks::run( 'UserRetrieveNewTalks', [ &$this, &$talks ] ) ) {
+               if ( !Hooks::run( 'UserRetrieveNewTalks', [ &$user, &$talks ] ) ) {
                        return $talks;
                } elseif ( !$this->getNewtalk() ) {
                        return [];
@@ -3210,8 +3222,10 @@ class User implements IDBAccessObject {
                                $this->getGroups(), // explicit groups
                                $this->getAutomaticGroups( $recache ) // implicit groups
                        ) );
+                       // Avoid PHP 7.1 warning of passing $this by reference
+                       $user = $this;
                        // Hook for additional groups
-                       Hooks::run( 'UserEffectiveGroups', [ &$this, &$this->mEffectiveGroups ] );
+                       Hooks::run( 'UserEffectiveGroups', [ &$user, &$this->mEffectiveGroups ] );
                        // Force reindexation of groups when a hook has unset one of them
                        $this->mEffectiveGroups = array_values( array_unique( $this->mEffectiveGroups ) );
                }
@@ -3578,7 +3592,9 @@ class User implements IDBAccessObject {
 
                // If we're working on user's talk page, we should update the talk page message indicator
                if ( $title->getNamespace() == NS_USER_TALK && $title->getText() == $this->getName() ) {
-                       if ( !Hooks::run( 'UserClearNewTalkNotification', [ &$this, $oldid ] ) ) {
+                       // Avoid PHP 7.1 warning of passing $this by reference
+                       $user = $this;
+                       if ( !Hooks::run( 'UserClearNewTalkNotification', [ &$user, $oldid ] ) ) {
                                return;
                        }
 
@@ -3810,7 +3826,9 @@ class User implements IDBAccessObject {
         * Log this user out.
         */
        public function logout() {
-               if ( Hooks::run( 'UserLogout', [ &$this ] ) ) {
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $user = $this;
+               if ( Hooks::run( 'UserLogout', [ &$user ] ) ) {
                        $this->doLogout();
                }
        }
@@ -4485,7 +4503,9 @@ class User implements IDBAccessObject {
                        return false;
                }
                $canSend = $this->isEmailConfirmed();
-               Hooks::run( 'UserCanSendEmail', [ &$this, &$canSend ] );
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $user = $this;
+               Hooks::run( 'UserCanSendEmail', [ &$user, &$canSend ] );
                return $canSend;
        }
 
@@ -4511,8 +4531,10 @@ class User implements IDBAccessObject {
        public function isEmailConfirmed() {
                global $wgEmailAuthentication;
                $this->load();
+               // Avoid PHP 7.1 warning of passing $this by reference
+               $user = $this;
                $confirmed = true;
-               if ( Hooks::run( 'EmailConfirmed', [ &$this, &$confirmed ] ) ) {
+               if ( Hooks::run( 'EmailConfirmed', [ &$user, &$confirmed ] ) ) {
                        if ( $this->isAnon() ) {
                                return false;
                        }
index a2288d0..e8731dc 100644 (file)
@@ -96,44 +96,6 @@ class IuConverter extends LanguageConverter {
                ];
        }
 
-       /**
-        * rules should be defined as -{Syllabic | Latin-} -or-
-        * -{code:text | code:text | ...}-
-        * update: delete all rule parsing because it's not used
-        * currently, and just produces a couple of bugs
-        *
-        * @param string $rule
-        * @param array $flags
-        * @return array
-        */
-       function parseManualRule( $rule, $flags = [] ) {
-               if ( in_array( 'T', $flags ) ) {
-                       return parent::parseManualRule( $rule, $flags );
-               }
-
-               $carray = [];
-               // otherwise ignore all formatting
-               foreach ( $this->mVariants as $v ) {
-                       $carray[$v] = $rule;
-               }
-
-               return $carray;
-       }
-
-       /**
-        * Do not convert content on talk pages
-        *
-        * @param string $text
-        * @param Parser $parser
-        * @return string
-        */
-       function parserConvert( $text, &$parser ) {
-               $this->mDoContentConvert = !( is_object( $parser->getTitle() )
-                       && $parser->getTitle()->isTalkPage() );
-
-               return parent::parserConvert( $text, $parser );
-       }
-
        /**
         * A function wrapper:
         *   - if there is no selected variant, leave the link
index 548c9a0..3605e8d 100644 (file)
@@ -216,31 +216,6 @@ class KkConverter extends LanguageConverter {
                ];
        }
 
-       /**
-        * rules should be defined as -{ekavian | iyekavian-} -or-
-        * -{code:text | code:text | ...}-
-        *
-        * update: delete all rule parsing because it's not used
-        *      currently, and just produces a couple of bugs
-        *
-        * @param string $rule
-        * @param array $flags
-        * @return array
-        */
-       function parseManualRule( $rule, $flags = [] ) {
-               if ( in_array( 'T', $flags ) ) {
-                       return parent::parseManualRule( $rule, $flags );
-               }
-
-               $carray = [];
-               // otherwise ignore all formatting
-               foreach ( $this->mVariants as $v ) {
-                       $carray[$v] = $rule;
-               }
-
-               return $carray;
-       }
-
        /**
         * A function wrapper:
         *  - if there is no selected variant, leave the link
index 0de396d..36821b0 100644 (file)
@@ -72,44 +72,6 @@ class ShiConverter extends LanguageConverter {
                ];
        }
 
-       /**
-        * rules should be defined as -{Tifinagh | Latin-} -or-
-        * -{code:text | code:text | ...}-
-        * update: delete all rule parsing because it's not used
-        * currently, and just produces a couple of bugs
-        *
-        * @param string $rule
-        * @param array $flags
-        * @return array
-        */
-       function parseManualRule( $rule, $flags = [] ) {
-               if ( in_array( 'T', $flags ) ) {
-                       return parent::parseManualRule( $rule, $flags );
-               }
-
-               $carray = [];
-               // otherwise ignore all formatting
-               foreach ( $this->mVariants as $v ) {
-                       $carray[$v] = $rule;
-               }
-
-               return $carray;
-       }
-
-       /**
-        * Do not convert content on talk pages
-        *
-        * @param string $text
-        * @param Parser $parser
-        * @return string
-        */
-       function parserConvert( $text, &$parser ) {
-               $this->mDoContentConvert = !( is_object( $parser->getTitle() )
-                       && $parser->getTitle()->isTalkPage() );
-
-               return parent::parserConvert( $text, $parser );
-       }
-
        /**
         * A function wrapper:
         *   - if there is no selected variant, leave the link
index 886ee94..6491f55 100644 (file)
@@ -75,31 +75,6 @@ class SrConverter extends LanguageConverter {
                ];
        }
 
-       /**
-        * rules should be defined as -{ekavian | iyekavian-} -or-
-        * -{code:text | code:text | ...}-
-        *
-        * update: delete all rule parsing because it's not used
-        * currently, and just produces a couple of bugs
-        *
-        * @param string $rule
-        * @param array $flags
-        * @return array
-        */
-       function parseManualRule( $rule, $flags = [] ) {
-               if ( in_array( 'T', $flags ) ) {
-                       return parent::parseManualRule( $rule, $flags );
-               }
-
-               $carray = [];
-               // otherwise ignore all formatting
-               foreach ( $this->mVariants as $v ) {
-                       $carray[$v] = $rule;
-               }
-
-               return $carray;
-       }
-
        /**
         * A function wrapper:
         *   - if there is no selected variant, leave the link
index 010a80b..c085628 100644 (file)
        "blockedtitle": "المستخدم ممنوع",
        "blockedtext": "'''اسم المستخدم أو عنوان الأيبي الخاص بك تم منعه.'''\n\nقام بالمنع $1.\nسبب المنع هو: ''$2''.\n\n* بداية المنع: $8\n* انتهاء المنع: $6\n* الممنوع المقصود: $7\n\nيمكنك الاتصال ب$1 أو مع أحد [[{{MediaWiki:Grouppage-sysop}}|الإداريين]] للنقاش حول المنع.\nلا يمكنك استخدام خاصية 'مراسلة هذا المستخدم' إلا إذا كنت قد وضعت عنوان بريدي صحيح في [[Special:Preferences|تفضيلات حسابك]] ولم يتم منعك من استخدامها.\nعنوان الأيبي الخاص بك حاليا هو $3، ورقم المنع هو #$5.\nمن فضلك اذكر كل التفاصيل بالأعلى في أي استعلامات تقوم بها.",
        "autoblockedtext": "مُنِع عنوان آيبيك تلقائيا لأن مستخدما آخرا منعه $1 استخدمه.\nالسبب المعطى هو التالي:\n\n:''$2''\n\n* بداية المنع: $8\n* انتهاء المنع: $6\n* الممنوع المقصود: $7\n\nيمكنك أن تتصل ب $1 أو أحد [[{{MediaWiki:Grouppage-sysop}}|الإداريين]] الآخرين لمناقشة المنع.\n\nلاحظ أنه لا يمكنك استخدام خاصية \"إرسال رسالة لهذا المستخدم\" إلا لو كان لديك عنوان بريد إلكتروني صحيح مسجل في [[Special:Preferences|تفضيلاتك]] ولم يتم منعك من استخدامه.\n\nعنوان آيبيك الحالي $3، ورقم المنع #$5.\nمن فضلك اذكر كل التفاصيل بالأعلى في أي استعلامات تقوم بها.",
+       "systemblockedtext": "اسم المستخدم أو عنوان الأيبي الخاص بك تم منعه تلقائيا بواسطة ميدياويكي.\nالسبب المعطى هو:\n\n:<em>$2</em>\n\n* بداية المنع: $8\n* نهاية المنع: $6\n* المقصود بالمنع: $7\n\nعنوان الأيبي الحالي الخاص بك هو $3.\nمن فضلك ضمن كل التفاصيل بالأعلى في أي استعلام تقوم به.",
        "blockednoreason": "لا سبب معطى",
        "whitelistedittext": "يجب عليك $1 لتتمكن من تعديل الصفحات.",
        "confirmedittext": "يجب عليك تأكيد بريدك الإلكتروني قبل تعديل الصفحات.\nمن فضلك اكتب وأكد بريدك الإلكتروني من خلال [[Special:Preferences|تفضيلاتك]].",
        "cant-move-to-user-page": "أنت لا تمتلك الصلاحية لنقل صفحة إلى صفحة مستخدم (ماعدا إلى صفحة مستخدم فرعية).",
        "cant-move-category-page": "أنت لا تمتلك صلاحية نقل صفحات التصانيف.",
        "cant-move-to-category-page": "أنت لا تمتلك صلاحية نقل صفحة إلى صفحة تصنيف.",
-       "movepage-max-pages": "تم نقل الحد الأقصى وهو {{PLURAL:$1||صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}} ولن يتم نقل المزيد تلقائياً.",
+       "cant-move-subpages": "أنت لا تمتلك الصلاحية لنقل الصفحات الفرعية.",
+       "namespace-nosubpages": "النطاق \"$1\" لا يسمح بالصفحات الفرعية.",
        "newtitle": "عنوان جديد:",
        "move-watch": "راقب هذه الصفحة",
        "movepagebtn": "انقل الصفحة",
        "movepage-page-exists": "الصفحة $1 موجودة بالفعل ولا يمكن الكتابة عليها تلقائياً.",
        "movepage-page-moved": "نقلت صفحة $1 إلى $2.",
        "movepage-page-unmoved": "لم يمكن نقل صفحة $1 إلى $2.",
+       "movepage-max-pages": "تم نقل الحد الأقصى وهو {{PLURAL:$1||صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}} ولن يتم نقل المزيد تلقائياً.",
        "movelogpage": "سجل النقل",
        "movelogpagetext": "بالأسفل قائمة بالصفحات التي تم نقلها.",
        "movesubpage": "{{PLURAL:$1||الصفحة الفرعية|الصفحتان الفرعيتان|الصفحات الفرعية}}",
        "logentry-protect-modify-cascade": "$1 {{GENDER:$2|غير|غيرت}} مستوى الحماية ل$3 $4 [مضمن]",
        "logentry-rights-rights": "{{GENDER:$2|غيّر|غيّرت}} $1 عضوية {{GENDER:$6|$3}} من $4 إلى $5",
        "logentry-rights-rights-legacy": "{{GENDER:$2|غيّر|غيّرت}} $1 عضوية $3",
-       "logentry-rights-autopromote": "تمت تلقائيا ترقية {{GENDER:$2|المستخدم|المستخدمة}} $1 من  $4 إلى $5",
+       "logentry-rights-autopromote": "تمَ تلقائياً ترقية {{GENDER:$2|المستخدم|المستخدمة}} $1 من  $4 إلى $5",
        "logentry-upload-upload": " {{GENDER:$2|رفع|رفعت}} $1 $3",
        "logentry-upload-overwrite": "{{GENDER:$2|رفع|رفعت}} $1 نسخة جديدة من  $3",
        "logentry-upload-revert": "{{GENDER:$2|رفع|رفعت}} $1 $3",
        "api-error-blocked": "لقد منعت من التحرير.",
        "api-error-copyuploaddisabled": "تم تعطيل تحميل من رابط على هذا الخادم.",
        "api-error-duplicate": "هناك {{PLURAL:$1|ملف آخر|بعض الملفات الأخرى}} مسبقا على الموقع بنفس المحتوى.",
-       "api-error-duplicate-archive": "Ù\87Ù\86اÙ\83 {{PLURAL:$1|Ù\83اÙ\86 Ù\85Ù\84Ù\81 Ø¢Ø®Ø± |Ù\83Ø°Ù\84Ù\83 Ø¨Ø¹Ø¶ Ø§Ù\84Ù\85Ù\84Ù\81ات Ø§Ù\84أخرÙ\89}} Ù\85سبÙ\82اÙ\8b Ø¹Ù\84Ù\89 Ø§Ù\84Ù\85Ù\88Ù\82ع Ø¨Ù\86Ù\81س Ø§Ù\84Ù\85ضÙ\85Ù\88Ù\86Ø\8c Ù\88Ù\84Ù\83Ù\86 {{PLURAL:$1|Ø£Ù\86Ù\87 ØªÙ\85 | Ø¥Ø¬Ø±Ø§Ø¡}} Ø§Ù\84حذÙ\81 Ù\84ها.",
+       "api-error-duplicate-archive": "Ù\87Ù\86اÙ\83 {{PLURAL:$1|Ù\83اÙ\86 Ù\85Ù\84Ù\81 Ø¢Ø®Ø± |Ù\83Ø°Ù\84Ù\83 Ø¨Ø¹Ø¶ Ø§Ù\84Ù\85Ù\84Ù\81ات Ø§Ù\84أخرÙ\89}} Ù\85سبÙ\82اÙ\8b Ø¹Ù\84Ù\89 Ø§Ù\84Ù\85Ù\88Ù\82ع Ø¨Ù\86Ù\81س Ø§Ù\84Ù\85ضÙ\85Ù\88Ù\86Ø\8c Ù\88Ù\84Ù\83Ù\86 {{PLURAL:$1|تÙ\85}} Ø­Ø°Ù\81ها.",
        "api-error-empty-file": "كان ملف الذي قمت بإرسال فارغة.",
        "api-error-emptypage": "إنشاء صفحات فارغة جديدة، غير مسموح به.",
        "api-error-fetchfileerror": "خطأ داخلي: قد حدث خطأ أثناء إحضار الملف.",
        "api-error-missingresult": "خطأ داخلي : لا يمكن التحديد ما إذا كان النسخ ناجحاً.",
        "api-error-mustbeloggedin": "يجب أن تكون مسجلا في لتحميل الملفات.",
        "api-error-mustbeposted": "خطأ داخلي: الطلب يتطلب HTTP POST.",
-       "api-error-noimageinfo": "Ù\86جح Ø§Ù\84تحÙ\85Ù\8aÙ\84، ولكن الخادم لم يقدم لنا أي معلومات حول الملف.",
+       "api-error-noimageinfo": "Ù\86جح Ø§Ù\84رÙ\81ع، ولكن الخادم لم يقدم لنا أي معلومات حول الملف.",
        "api-error-nomodule": "خطأ داخلي: لم يتم تعيين تحميل الوحدة النمطية.",
        "api-error-ok-but-empty": "خطأ داخلي : لم يكن هناك استجابة من الملقم.",
        "api-error-overwrite": "لا يسمح بالكتابة فوق ملف موجود.",
        "api-error-stashnotloggedin": "يجب عليك تسجيل الدخول لحفظ الملفات في مرفوعاتك.",
        "api-error-stashwrongowner": "الملف الذي كنت تحاول الوصول اليه في مخبوائتك ليس لك.",
        "api-error-stashnosuchfilekey": "الملف الذي كنت تحاول الوصول اليه في مخبوائتك غير موجود.",
-       "api-error-timeout": "لم يستجب الملقم في الوقت المتوقع.",
+       "api-error-timeout": "لم يستجب الخادم في الوقت المتوقع.",
        "api-error-unclassified": "حدث خطأ غير معروف",
        "api-error-unknown-code": "خطأ غير معروف: \"$1\"",
        "api-error-unknown-error": "خطأ داخلي: قد حدث خطأ عند محاولة تحميل الملف الخاص بك.",
-       "api-error-unknown-warning": "تحذير غير معروف: \"$1\"",
+       "api-error-unknown-warning": "تحذير غير معروف: \"$1\".",
        "api-error-unknownerror": "خطأ غير معروف: \"$1\"",
        "api-error-uploaddisabled": "تم تعطيل الرفع على هذه الويكي.",
        "api-error-verification-error": "هذا الملف قد يكون معطوباً أو يحتوي على امتداد غير صحيح.",
index dcab5ec..b490f27 100644 (file)
@@ -8,7 +8,8 @@
                        "Zanatos",
                        "زكريا",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "MtDu"
                ]
        },
        "tog-underline": "Ṣetter l-lyanaṫ:",
        "variants": "lhja:",
        "errorpagetitle": "ĥata'",
        "returnto": "Rjeĝ le $1",
-       "tagline": "Men",
+       "tagline": "Men {{SITENAME}}",
        "help": "Mosaĝada",
        "search": "Qelleb",
        "searchbutton": "Qelleb",
        "userrights-reason": "S-Sbab:",
        "userrights-no-interwiki": "ma msmoḫ-likċ ṫĝddel hoqoq l-mosṫĥdim fl-wikiat loĥra.",
        "userrights-nodatabase": "qaĝidaṫ l-bayanaṫ $1 ma kayna-ċ wlla kayna walakin maċi f-had l-wiki.",
-       "userrights-nologin": "ĥaṣṣk [[Special:UserLogin|ṫdĥol]] b-ĥisab idari baċ ṫĝti hoqoq l-mosṫĥdim.",
-       "userrights-notallowed": "l-ḫisab ṫaĝk ma mṣmoh-lihċ iĝti ḫoqoq l-mosṫĥdim.",
        "userrights-changeable-col": "lmojmoat li imkn li tghiyrha",
        "userrights-unchangeable-col": "lmjmoat li maymknch lik tghyrha",
        "userrights-irreversible-marker": "$1*",
index 947d17d..e58456d 100644 (file)
        "navigation-heading": "لستة التصفح",
        "errorpagetitle": "غلطه",
        "returnto": "ارجع ل $1.",
-       "tagline": "من ويكيبيديا, الموسوعه الحره",
+       "tagline": "من {{SITENAME}}",
        "help": "مساعده",
        "search": "تدوير",
        "searchbutton": "تدوير",
        "userrights-reason": "السبب:",
        "userrights-no-interwiki": "أنت  مش من حقك تعدل صلاحيات اليوزرز على الويكيات التانية.",
        "userrights-nodatabase": "قاعدة البيانات $1  مش موجودة أو مش محلية.",
-       "userrights-nologin": "انت لازم [[Special:UserLogin|تسجيل الدخول]] بحساب  مدير لتعديل حقوق اليوزر.",
-       "userrights-notallowed": "حسابك  ماعندوش  إذن لتعديل حقوق اليوزر.",
        "userrights-changeable-col": "المجموعات اللى تقدر تغييرها",
        "userrights-unchangeable-col": "المجموعات اللى مش ممكن انك تغيرها",
        "group": "المجموعة:",
        "right-siteadmin": "قفل وفتح قاعدة البيانات",
        "right-override-export-depth": "تصدير الصفحات مع الصفحات الموصوله لحد عمق 5",
        "right-sendemail": "يبعت إيميل لليوزرز التانيين",
-       "right-passwordreset": "إعادة ضبط كلمة سر يوزر",
        "right-managechangetags": "إنشاء و مسح [[Special:Tags|الوسوم]] من قاعدة البيانات",
        "newuserlogpage": "سجل اليوزرز الجداد",
        "newuserlogpagetext": "دا سجل لليوزرز الجداد",
index 651f0da..3c3f9ac 100644 (file)
        "apisandbox-sending-request": "Unviando solicitú a la API...",
        "apisandbox-loading-results": "Recibiendo los resultaos de la API...",
        "apisandbox-results-error": "Asocedió un error al cargar la respuesta de la consulta API: $1.",
+       "apisandbox-request-params-json": "Parámetros JSON:",
        "apisandbox-request-url-label": "URL de la solicitú:",
        "apisandbox-request-time": "Duración de la solicitú: {{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "Igua'l token y vuelve a unviar",
        "changecontentmodel-emptymodels-title": "Nun hai modelos de conteníu disponibles",
        "changecontentmodel-emptymodels-text": "El conteníu de [[:$1]] nun pue convertise a nengún tipu.",
        "log-name-contentmodel": "Rexistru de cambios del modelu de conteníu",
-       "log-description-contentmodel": "Socesos rellacionaos colos modelos de conteníu d'una páxina",
+       "log-description-contentmodel": "Esta páxina recueye los cambeos nel modelu de conteníu de les páxines, y les páxines creaes con un modelu de conteníu distintu del predetermináu.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|creó}} la páxina $3 usando un modelu de conteníu non predetermináu «$5»",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|cambió}}'l modelu de conteníu de la páxina $3 dende «$4» a «$5»",
        "logentry-contentmodel-change-revertlink": "revertir",
        "cant-move-to-user-page": "Nun tienes permisu pa treslladar una páxina a una páxina d'usuariu (sacante a una subpáxina d'usuariu).",
        "cant-move-category-page": "Nun tienes permisu pa treslladar páxines de categoría.",
        "cant-move-to-category-page": "Nun tienes permisu pa treslladar una páxina a una páxina de categoría.",
-       "movepage-max-pages": "Treslladóse'l máximu de $1 {{PLURAL:$1|páxina|páxinees}} y nun van treslladase más automáticamente.",
+       "cant-move-subpages": "Nun tienes permisu pa mover subpáxines.",
+       "namespace-nosubpages": "L'espaciu de nomes «$1» nun permite subpáxines.",
        "newtitle": "Títulu nuevu:",
        "move-watch": "Vixilar esta páxina",
        "movepagebtn": "Treslladar la páxina",
        "movepage-page-exists": "La páxina $1 yá esiste y nun se pue sobreescribir automáticamente.",
        "movepage-page-moved": "Treslladóse la páxina $1 a $2.",
        "movepage-page-unmoved": "Nun se pudo treslladar la páxina $1 a $2.",
+       "movepage-max-pages": "Treslladóse'l máximu de $1 {{PLURAL:$1|páxina|páxinees}} y nun van treslladase más automáticamente.",
        "movelogpage": "Rexistru de tresllaos",
        "movelogpagetext": "Esta ye la llista de páxines treslladaes.",
        "movesubpage": "{{PLURAL:$1|Subpáxina|Subpáxines}}",
        "api-error-blocked": "Tas bloquiáu pa editar.",
        "api-error-copyuploaddisabled": "Xubir d'una URL ta desactivao nesti sirvidor.",
        "api-error-duplicate": "Yá hai {{PLURAL:$1|otru ficheru|otros ficheros}} nesti sitiu col mesmu conteníu.",
-       "api-error-duplicate-archive": "Había {{PLURAL:$1|otru ficheru|otros ficheros}} nesti sitiu col mesmu conteníu, pero se {{PLURAL:$1|desanició|desaniciaron}}.",
+       "api-error-duplicate-archive": "Yá había {{PLURAL:$1|otru ficheru|otros ficheros}} nesti sitiu col mesmu conteníu, pero se {{PLURAL:$1|desanició|desaniciaron}}.",
        "api-error-empty-file": "El ficheru qu'unviasti taba baleru.",
        "api-error-emptypage": "Nun se permite la creación de páxines nueves baleres.",
        "api-error-fetchfileerror": "Fallu internu: daqué nun funcionó al buscar el ficheru.",
        "api-error-missingresult": "Fallu internu: nun se pudo determinar si la copia foi bien.",
        "api-error-mustbeloggedin": "Tienes de tar autenticáu pa xubir ficheros.",
        "api-error-mustbeposted": "Fallu internu: la solicitú necesita HTTP POST.",
-       "api-error-noimageinfo": "La xubida foi correuta, pero el sirvidor nun dio información dala del ficheru.",
+       "api-error-noimageinfo": "La xubida foi correuta, pero'l sirvidor nun dio información dala del ficheru.",
        "api-error-nomodule": "Fallu internu: nun se configuró dengún módulu de xubíes.",
        "api-error-ok-but-empty": "Fallu internu: nun hai respuesta del sirvidor.",
        "api-error-overwrite": "Nun ta permitío sobroscribir un ficheru esistente.",
        "api-error-unclassified": "Hebo un fallu desconocíu",
        "api-error-unknown-code": "Fallu desconocíu: «$1»",
        "api-error-unknown-error": "Fallu internu: daqué nun funcionó al tentar xubir el ficheru.",
-       "api-error-unknown-warning": "Avisu desconocíu: $1",
+       "api-error-unknown-warning": "Avisu desconocíu: «$1».",
        "api-error-unknownerror": "Fallu desconocíu: «$1».",
        "api-error-uploaddisabled": "Les xubíes tan desactivaes nesta wiki.",
        "api-error-verification-error": "Esti ficheru pudiera tar corrompíu, o tien una estensión incorreuta.",
        "log-action-filter-block-reblock": "Cambiu de bloquéu",
        "log-action-filter-block-unblock": "Desbloquéu",
        "log-action-filter-contentmodel-change": "Cambéu de modelu de conteníu",
-       "log-action-filter-contentmodel-new": "Creación de páxina con modelu de conteníu non estándar",
+       "log-action-filter-contentmodel-new": "Creación de páxina con modelu de conteníu non predetermináu",
        "log-action-filter-delete-delete": "Desaniciu de páxines",
        "log-action-filter-delete-delete_redir": "Sobreescritura de redireición",
        "log-action-filter-delete-restore": "Restauración de páxines",
index 9c58837..0736ee2 100644 (file)
        "postedit-confirmation-saved": "Вашая праўка была захаваная.",
        "edit-already-exists": "Немагчыма стварыць новую старонку.\nЯна ўжо існуе.",
        "defaultmessagetext": "Перадвызначаны тэкст паведамленьня",
-       "content-failed-to-parse": "Зьмест «$2» не адпавядае тыпу $1: $3.",
+       "content-failed-to-parse": "Зьмест «$2» не адпавядае мадэлі $1: $3.",
        "invalid-content-data": "Няслушныя зьвесткі",
        "content-not-allowed-here": "Зьмест тыпу «$1» на старонцы [[$2]] не дазволены",
        "editwarning-warning": "Пакінуўшы гэтую старонку, вы можаце страціць усе ўнесеныя зьмены.\nКалі вы ўвайшлі ў сыстэму, Вы можаце адключыць гэтае папярэджаньне ў сэкцыі «{{int:prefs-editing}}» вашых наладаў.",
        "editpage-invalidcontentmodel-text": "Мадэль зьместу «$1» не падтрымліваецца.",
        "editpage-notsupportedcontentformat-title": "Фармат зьмесьціва не падтрымліваецца",
        "editpage-notsupportedcontentformat-text": "Фармат зьмесьціва $1 не падтрымліваецца мадэльлю зьмесьціва $2.",
-       "content-model-wikitext": "вікі-тэкст",
+       "content-model-wikitext": "вікітэкст",
        "content-model-text": "просты тэкст",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "changecontentmodel-emptymodels-title": "Няма даступных мадэляў зьместу",
        "changecontentmodel-emptymodels-text": "Зьмест на [[:$1]] ня можа быць ператвораны ні ў які тып.",
        "log-name-contentmodel": "Журнал зьменаў мадэляў зьместу",
-       "log-description-contentmodel": "Ð\9fадзеÑ\96, Ð·Ñ\8cвÑ\8fзанÑ\8bÑ\8f Ð· Ð¼Ð°Ð´Ñ\8dлÑ\8fмÑ\96 Ð·Ñ\8cмеÑ\81Ñ\82Ñ\83 Ñ\81Ñ\82аÑ\80онак",
+       "log-description-contentmodel": "Ð\93Ñ\8dÑ\82аÑ\8f Ñ\81Ñ\82аÑ\80онка Ñ\9eÑ\82Ñ\80Ñ\8bмлÑ\96вае Ð·Ñ\8cменÑ\8b Ð¼Ð°Ð´Ñ\8dлÑ\96 Ð·Ñ\8cмеÑ\81Ñ\82Ñ\83 Ñ\81Ñ\82аÑ\80онак, Ð° Ñ\82акÑ\81ама Ñ\81Ñ\82аÑ\80онкÑ\96, Ñ\8fкÑ\96Ñ\8f Ð±Ñ\8bлÑ\96 Ñ\81Ñ\82воÑ\80анÑ\8bÑ\8f Ð· Ð¼Ð°Ð´Ñ\8dлÑ\8cлÑ\8e Ð·Ñ\8cмеÑ\81Ñ\82Ñ\83, Ð°Ð´Ñ\80ознай Ð°Ð´ Ñ\81Ñ\82андаÑ\80Ñ\82най.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|стварыў|стварыла}} старонку $3 з дапамогай нестандартнай мадэлі зьместу «$5»",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|зьмяніў|зьмяніла}} мадэль зьместу старонкі $3 з «$4» на «$5»",
        "logentry-contentmodel-change-revertlink": "адкаціць",
        "cant-move-to-user-page": "Вы ня маеце правоў для пераносу старонкі ў прастору ўдзельніка (апрача падстаронак).",
        "cant-move-category-page": "Вы ня маеце правоў для пераносу старонак катэгорыяў.",
        "cant-move-to-category-page": "Вы ня маеце правоў для пераносу старонак у прастору назваў катэгорыяў.",
-       "movepage-max-pages": "$1 {{PLURAL:$1|старонка была перанесеная|старонкі былі перанесеныя|старонак былі перанесеныя}} — гэта дазволены максымум, больш аўтаматычных пераносаў ня будзе.",
+       "cant-move-subpages": "Вы ня маеце дазволу на перанос падстаронак.",
+       "namespace-nosubpages": "Прастора назваў «$1» не дазваляе выкарыстаньне падстаронак.",
        "newtitle": "Новая назва:",
        "move-watch": "Назіраць за гэтай старонкай",
        "movepagebtn": "Перанесьці старонку",
        "movepage-page-exists": "Старонка $1 ужо існуе і ня можа быць перапісана аўтаматычна.",
        "movepage-page-moved": "Старонка $1 перанесеная ў $2.",
        "movepage-page-unmoved": "Старонка $1 ня можа быць перанесеная ў $2.",
+       "movepage-max-pages": "$1 {{PLURAL:$1|старонка была перанесеная|старонкі былі перанесеныя|старонак былі перанесеныя}} — гэта дазволены максымум, больш аўтаматычных пераносаў ня будзе.",
        "movelogpage": "Журнал пераносаў",
        "movelogpagetext": "Ніжэй пададзены сьпіс перанесеных старонак.",
        "movesubpage": "{{PLURAL:$1|1=Падстаронка|Падстаронкі}}",
        "api-error-unclassified": "Узьнікла невядомая памылка",
        "api-error-unknown-code": "Невядомая памылка: «$1».",
        "api-error-unknown-error": "Унутраная памылка: падчас загрузкі файла здарылася штосьці невядомае.",
-       "api-error-unknown-warning": "Невядомае папярэджаньне: $1",
+       "api-error-unknown-warning": "Невядомае папярэджаньне: «$1».",
        "api-error-unknownerror": "Невядомая памылка: «$1».",
        "api-error-uploaddisabled": "Загрузка ў гэтую вікі адключаная.",
        "api-error-verification-error": "Гэты файл можа быць пашкоджаны, ці мае няслушнае пашырэньне.",
        "sessionprovider-nocookies": "Файлы-кукі могуць быць адключаныя. Упэўніцеся, што ў вас уключаныя файлы-кукі і пачніце спачатку.",
        "randomrootpage": "Выпадковая карэнная старонка",
        "log-action-filter-block": "Тып блякаваньня:",
-       "log-action-filter-contentmodel": "ТÑ\8bп Ð¼Ð°Ð´Ñ\8bÑ\84Ñ\96каÑ\86Ñ\8bÑ\96 contentmodel:",
+       "log-action-filter-contentmodel": "ТÑ\8bп Ð·Ñ\8cменÑ\8b Ð¼Ð°Ð´Ñ\8dлÑ\96 Ð·Ñ\8cмеÑ\81Ñ\82Ñ\83:",
        "log-action-filter-delete": "Тып выдаленьня:",
        "log-action-filter-import": "Тып імпарту:",
        "log-action-filter-managetags": "Тып дзеяньня кіраваньня меткамі:",
        "authmanager-authn-not-in-progress": "Аўтэнтыфікацыя не выконваецца або страчаныя зьвесткі пра сэсію. Калі ласка, пачніце зноў з самага пачатку.",
        "authmanager-authn-no-primary": "Пададзеныя ўліковыя зьвесткі ня могуць быць правераныя на сапраўднасьць.",
        "authmanager-authn-no-local-user": "Пададзеныя ўліковыя зьвесткі не зьвязаныя зь ніводным удзельнікам гэтай вікі.",
+       "authmanager-authn-autocreate-failed": "Аўтаматычнае стварэньне лякальнага рахунку не атрымалася: $1",
+       "authmanager-change-not-supported": "Пададзеныя ўліковыя зьвесткі ня могуць быць зьмененыя, бо яны ня будуць выкарыстаныя.",
        "authmanager-realname-label": "Сапраўднае імя",
        "authmanager-provider-temporarypassword": "Часовы пароль",
        "changecredentials": "Зьмена ўліковых зьвестак",
index ee0532c..d8a0a8c 100644 (file)
        "blockedtitle": "Удзельнік заблакаваны",
        "blockedtext": "'''Ваша імя ўдзельніка або адрас IP былі пастаўлены пад блок.'''\n\nБлок быў пастаўлены ўдзельнікам: $1. Пададзеная прычына: ''$2''.\n\n* Блок пастаўлены: $8\n* Блок канчаецца: $6\n* Атрымальнік блока: $7\n\nВы можаце звярнуцца да $1 або да аднаго з іншых [[{{MediaWiki:Grouppage-sysop}}|адміністратараў]], каб паразмаўляць пра гэты блок.\nВы не зможаце дзеля гэтага карыстацца функцыяй ''{{:{{ns:mediawiki}}:emailuser/be}}'', калі гэта вам забаронена, або калі вы не наставілі правільнага пацверджанага адрасу эл.пошты ў сваіх [[Special:Preferences|настаўленнях]].\nВаш адрас IP: $3, нумар блоку: #$5. Падавайце ўсе гэтыя звесткі ў кожным сваім звароце адносна гэтага блоку.",
        "autoblockedtext": "Ваш адрас IP быў аўтаматычна заблакаваны, таму што ім карыстаўся ўдзельнік, заблакаваны адміністратарам $1.\nПададзеная прычына блоку:\n\n:''$2''\n\n* Блок пастаўлены: $8\n* Блок канчаецца: $6\n* Атрымальнік блоку: $7\n\nВы можаце звярнуцца да $1 або да аднаго з іншых [[{{MediaWiki:Grouppage-sysop}}|адміністратараў]], каб паразмаўляць пра гэты блок.\n\nВы не зможаце дзеля гэтага карыстацца функцыяй ''{{:{{ns:mediawiki}}:emailuser/be}}'', калі гэта вам забаронена, або калі вы не наставілі правільнага пацверджанага адрасу эл.пошты ў сваіх [[Special:Preferences|настаўленнях]].\n\nВаш адрас IP: $3. Ваш нумар блоку: $5. Падавайце ўсе гэтыя звесткі ў кожным сваім звароце адносна гэтага блоку.",
+       "systemblockedtext": "Вашае імя ўдзельніка ці IP-адрас былі аўтаматычна заблакаваныя MediaWiki.\nЗ наступнай прычыны:\n\n:<em>$2</em>\n\n* Пачатак блакіроўкі: $8\n* Заканчэнне блакіроўкі: $6\n* Мэта блакіравання: $7\n\nВаш цяперашні IP-адрас — $3.\nКалі ласка, уключайце ўсе пададзеныя вышэй дэталі ва ўсе запыты, што вы робіце.",
        "blockednoreason": "прычына не вызначана",
        "whitelistedittext": "Належыць $1 каб правіць старонкі.",
        "confirmedittext": "Вам трэба пацвердзіць свой адрас эл.пошты перад тым, як правіць старонкі.\nВызначце і пацвердзіце адрас ў сваіх [[Special:Preferences|настáўленнях]].",
        "cant-move-to-user-page": "Вам не дазволена пераносіць старонку ў старонку карыстальніка (не лічачы пад-старонак карыстальніка).",
        "cant-move-category-page": "Вам не дазволена пераносіць старонкі катэгорый.",
        "cant-move-to-category-page": "Вам не дазволена пераносіць старонку ў старонку катэгорыі.",
-       "movepage-max-pages": "Быў перанесены дазволены максімум $1 {{PLURAL:$1|старонкі|старонак}} і больш аўтаматычных пераносаў не будзе.",
        "newtitle": "Новая назва:",
        "move-watch": "Назіраць за старонкай",
        "movepagebtn": "Перанесці старонку",
        "movepage-page-exists": "Старонка $1 ужо існуе і не можа быць аўтаматычна перапісаная.",
        "movepage-page-moved": "Старонка $1 была перанесеная ў $2.",
        "movepage-page-unmoved": "Не ўдалося перанесці старонку $1 у $2.",
+       "movepage-max-pages": "Быў перанесены дазволены максімум $1 {{PLURAL:$1|старонкі|старонак}} і больш аўтаматычных пераносаў не будзе.",
        "movelogpage": "Журнал пераносаў",
        "movelogpagetext": "Ніжэй пададзены спіс пераносаў старонак.",
        "movesubpage": "{{PLURAL:$1|Пад-старонка|Пад-старонкі}}",
        "pageinfo-length": "Аб'ём старонкі (у байтах)",
        "pageinfo-article-id": "Ідэнтыфікатар старонкі",
        "pageinfo-language": "Мова змесціва старонкі",
+       "pageinfo-language-change": "змяніць",
        "pageinfo-content-model": "Мадэль змесціва старонкі",
        "pageinfo-content-model-change": "змяніць",
        "pageinfo-robot-policy": "Індэксаванне робатамі",
        "log-action-filter-suppress-event": "Cкрыванне журнала",
        "log-action-filter-suppress-revision": "Скрыванне версіі",
        "log-action-filter-suppress-delete": "Cкрыванне старонкі",
+       "log-action-filter-suppress-block": "Скрыванне ўдзельніка праз блакіраванне",
+       "log-action-filter-suppress-reblock": "Скрыванне ўдзельніка праз паўторнае блакіраванне",
        "log-action-filter-upload-upload": "Новая перадача",
-       "log-action-filter-upload-overwrite": "Ð\92Ñ\8bкладванне",
+       "log-action-filter-upload-overwrite": "Ð\9fаÑ\9eÑ\82оÑ\80наÑ\8f Ð·Ð°Ð³Ñ\80Ñ\83зка",
        "authmanager-authn-not-in-progress": "Праверка сапраўднасці не выконваецца або сесія перадачы дадзеных была страчана. Калі ласка, пачніце зноў з самага пачатку.",
        "authmanager-authn-no-primary": "Прадастаўленыя ўліковыя дадзеныя не могуць быць завераны.",
-       "authmanager-authn-no-local-user": "Прадастаўленыя ўліковыя дадзеныя не звязаныя з нікодным удзельнікам на гэтай Вікі.",
+       "authmanager-authn-no-local-user": "Пададзеныя ўліковыя дадзеныя не звязаныя з ніводным удзельнікам на гэтай Вікі.",
        "authmanager-authn-no-local-user-link": "Прадастаўленыя ўліковыя дадзеныя сапраўдныя, але не звязаныя з ніводным удзельнікам гэтай Вікі. Увайдзіце іншым спосабам або стварыце новы акаўнт і ў вас з'явіцца магчымасць звязаць свае папярэднія ўліковыя дадзеныя для гэтага ўліковага запісу.",
        "authmanager-authn-autocreate-failed": "Аўтаматычнае стварэнне лакальнага ўліковага запісу не ўдалося: $1",
        "authmanager-change-not-supported": "Прадастаўленыя ўліковыя дадзеныя не могуць быць зменены, як нішто не будзе іх выкарыстоўваць.",
index 649847c..2ec3bc7 100644 (file)
        "sp-contributions-newbies": "Показване само на приносите на нови потребители",
        "sp-contributions-newbies-sub": "на нови потребители",
        "sp-contributions-newbies-title": "Потребителски приноси за нови сметки",
-       "sp-contributions-blocklog": "Ð\94невник на блокиранията",
+       "sp-contributions-blocklog": "дневник на блокиранията",
        "sp-contributions-deleted": "изтрити приноси на {{GENDER:$1|потребител}}",
        "sp-contributions-uploads": "качвания",
        "sp-contributions-logs": "дневници",
        "tags-deactivate": "спиране",
        "tags-hitcount": "$1 {{PLURAL:$1|промяна|промени}}",
        "tags-manage-no-permission": "Нямате права за управление на етикети за промени.",
-       "tags-manage-blocked": "Ð\92ие Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ñ\83пÑ\80авлÑ\8fваÑ\82е ÐµÑ\82икеÑ\82и Ð·Ð° Ð¿Ñ\80омени, Ð´Ð¾ÐºÐ°Ñ\82о Ñ\81Ñ\82е Ð±Ð»Ð¾ÐºÐ¸Ñ\80ани.",
+       "tags-manage-blocked": "Ð\9dе Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\83пÑ\80авлÑ\8fваÑ\82е ÐµÑ\82икеÑ\82и Ð·Ð° Ð¿Ñ\80омени, Ð´Ð¾ÐºÐ°Ñ\82о Ñ\81Ñ\82е {{GENDER:$1|блокиÑ\80ани}}.",
        "tags-create-heading": "Създаване на нов етикет",
        "tags-create-explanation": "По подразбиране, новосъздадените етикети са достъпни за използване от потребители и ботове.",
        "tags-create-tag-name": "Име на етикета:",
index 595d3e6..17c49d2 100644 (file)
        "gender-unknown": "যখন আপনাকে উল্লেখ করা হবে, সফটওয়্যার যখনই সম্ভব লিঙ্গ নিরপেক্ষ শব্দ ব্যবহার করবে",
        "gender-male": "তিনি (পুরুষ) উইকি পাতা সম্পাদনা করেন",
        "gender-female": "তিনি (মহিলা) উইকি পাতা সম্পাদনা করেন",
-       "prefs-help-gender": "সেটিংসের এই পরিবর্তন ঐচ্ছিক।\nসফটওয়্যারে মাধ্যমে লিঙ্গ অনুযায়ী সম্বধনের ক্ষেত্রে এটি ব্যবহৃত হয়।\nএই তথ্য সকলের জন্য উন্মুক্ত থাকেবে।",
+       "prefs-help-gender": "সà§\87à¦\9fিà¦\82সà§\87র à¦\8fà¦\87 à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦\90à¦\9aà§\8dà¦\9bিà¦\95।\nসফà¦\9fà¦\93য়à§\8dযারà§\87 à¦®à¦¾à¦§à§\8dযমà§\87 à¦²à¦¿à¦\99à§\8dà¦\97 à¦\85নà§\81যায়à§\80 à¦¸à¦®à§\8dবà§\8bধনà§\87র à¦\95à§\8dষà§\87তà§\8dরà§\87 à¦\8fà¦\9fি à¦¬à§\8dযবহà§\83ত à¦¹à¦¯à¦¼à¥¤\nà¦\8fà¦\87 à¦¤à¦¥à§\8dয à¦¸à¦\95লà§\87র à¦\9cনà§\8dয à¦\89নà§\8dমà§\81à¦\95à§\8dত à¦¥à¦¾à¦\95à§\87বà§\87।",
        "email": "ই-মেইল",
        "prefs-help-realname": "আসল নাম দেওয়া অনাবশ্যক।\nযদি আসল নাম দেন, তবে আপনার কাজের স্বীকৃতি দানে তা ব্যবহার করা হবে।",
        "prefs-help-email": "ইমেইল ঠিকানা ঐচ্ছিক, তবে পাসওয়ার্ড ভুলে গেলে নতুন করে পাসওয়ার্ড নিতে এটির প্রয়োজন হবে।",
        "prefs-help-email-others": "আপনি আপনার পরিচয় প্রকাশ না করেও আপনার ব্যবহারকারী অথবা আলাপ পাতাটির মাধ্যমে অন্যদেরকে আপনার সাথে যোগাযোগ করতে দিতে পারেন।",
        "prefs-help-email-required": "ই-মেইল ঠিকানা আবশ্যক।",
        "prefs-info": "সাধারণ তথ্য",
-       "prefs-i18n": "à¦\86নà§\8dতরà§\8dà¦\9cাতিà¦\95িকরণ",
+       "prefs-i18n": "à¦\86নà§\8dতরà§\8dà¦\9cাতিà¦\95à§\80করণ",
        "prefs-signature": "স্বাক্ষর",
        "prefs-dateformat": "তারিখ বিন্যাস",
        "prefs-timeoffset": "সময় অফসেট",
        "nchanges": "$1টি {{PLURAL:$1|পরিবর্তন}}",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|সর্বশেষ প্রদর্শনের পর}} $1টি",
        "enhancedrc-history": "ইতিহাস",
-       "recentchanges": "সাম্প্রতিক পরিবর্তনসমূহ",
+       "recentchanges": "সাম্প্রতিক পরিবর্তন",
        "recentchanges-legend": "সাম্প্রতিক পরিবর্তনের পছন্দসমূহ",
        "recentchanges-summary": "এই পাতায় উইকিটির সবচেয়ে সাম্প্রতিক পরিবর্তনগুলি অনুসরণ করুন।",
        "recentchanges-noresult": "নির্ধারিত সময়ের মধ্যে কোনো পরিবর্তন পাওয়া যায়নি।",
        "cant-move-to-user-page": "আপনার কোনো পাতা ব্যবহারকারী পাতার স্থানান্তরের অনুমতি নেই (ব্যবহারকারী উপপাতা ব্যতিত)।",
        "cant-move-category-page": "আপনার বিষয়শ্রেণী পাতা স্থানান্তরের অনুমতি নেই।",
        "cant-move-to-category-page": "আপনার পাতাটিকে বিষয়শ্রেণী পাতায় স্থানান্তরের অনুমতি নেই।",
-       "movepage-max-pages": "সর্বোচ্চ $1টি {{PLURAL:$1|উপপাতা}}স্থানান্তর করা হয়েছে এবং এর থেকে বেশি সংখ্যক পাতা সয়ংক্রিয়ভাবে স্থানান্তর সম্ভব নয়।",
+       "cant-move-subpages": "আপনার উপপাতা স্থানান্তরের অনুমতি নেই।",
        "newtitle": "নতুন শিরোনাম:",
        "move-watch": "এই পাতাটি নজরে রাখুন",
        "movepagebtn": "পাতা স্থানান্তর করুন",
        "movepage-page-exists": "$1 পাতাটি ইতিমধ্যেই বিদ্যমান এবং স্বয়ংক্রিয়ভাবে পুনর্লিখন করা সম্ভব নয়।",
        "movepage-page-moved": "$1 পাতাটি $2 পাতায় স্থানান্তর করা হয়েছে।",
        "movepage-page-unmoved": "$1 পাতাটি $2 -এ সরিয়ে নেওয়া সম্ভপর নয়।",
+       "movepage-max-pages": "সর্বোচ্চ $1টি {{PLURAL:$1|উপপাতা}}স্থানান্তর করা হয়েছে এবং এর থেকে বেশি সংখ্যক পাতা সয়ংক্রিয়ভাবে স্থানান্তর সম্ভব নয়।",
        "movelogpage": "পাতা স্থানান্তর লগ",
        "movelogpagetext": "সরানো পাতাগুলির একটি তালিকা নিচে দেয়া হল।",
        "movesubpage": "{{PLURAL:$1|উপপাতা|উপপাতাসমূহ}}",
        "log-action-filter-block-block": "বাধাদান",
        "log-action-filter-block-reblock": "বাধাদান পরিবর্তন",
        "log-action-filter-block-unblock": "বাধা অপসারণ",
-       "log-action-filter-contentmodel-change": "বিষয়বসà§\8dতà§\81র à¦®à¦¡à§\87ল পরিবর্তন",
+       "log-action-filter-contentmodel-change": "বিষয়বসà§\8dতà§\81র à¦°à§\82প পরিবর্তন",
        "log-action-filter-contentmodel-new": "অ-মানক বিষয়বস্তুর রূপসহ পাতা তৈরি",
        "log-action-filter-delete-delete": "পাতা অপসারণ",
        "log-action-filter-delete-restore": "পাতা পুনঃরুদ্ধার",
index 0bdaf65..f1b084d 100644 (file)
@@ -4,7 +4,8 @@
                        "Usingha",
                        "Uttam Singha, Dec 2006",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "MtDu"
                ]
        },
        "tog-underline": "লিঙ্কর তলে দুরগ দিক:",
        "variants": "ভেরিয়েন্টহানি",
        "errorpagetitle": "লাল",
        "returnto": "$1-ত আলথকে যাগা।",
-       "tagline": "মুক্ত বিশ্বকোষ উইকিপিডিয়াত্ত",
+       "tagline": "মুক্ত বিশ্বকোষ উইকিপিডিয়াত্ত {{SITENAME}}",
        "help": "পাংলাক",
        "search": "বিসারিয়া চা",
        "searchbutton": "বিসারানি",
index 5f63b94..cf50e95 100644 (file)
        "userlogin-yourpassword-ph": "رازينإ گوڤأرتن نأ بزأ",
        "createacct-yourpassword-ph": "رازينإ گوڤأرتن نأ بزأ",
        "createacct-yourpasswordagain": "پشت راسدکاري رازينإ گوڤأرتن",
+       "createacct-yourpasswordagain-ph": "ز نۉ رازينإ گوڤأرتن نأ بزأ",
        "userlogin-remembermypassword": "مۈنإ مإن سامۈنإ ڤاڌار",
        "login": "اویدن به سیستم",
        "nav-login-createaccount": "اویدن به سیستم",
        "gotaccountlink": "اویدن به",
        "userlogin-resetpassword-link": "رازینإ گوڤأرتن تۈ ز ڤيرتۈن رأهڌإ",
        "userlogin-helplink2": "هومياري کردن سي ڤامإن أڤوڌن",
+       "createacct-emailoptional": "تيرنشۈن أنجومانامأ",
+       "createacct-email-ph": "تيرنشۈن أنجومانامأ تۈنأ بزنين",
        "createacct-submit": "هساڤ خوتۈنإ راسد کونين",
        "createacct-benefit-body1": "{{PLURAL:$1|ڤيرایشد|ڤيرایشدا}}",
        "createacct-benefit-body2": "{{PLURAL:$1|بألگأ|بألگإ آ}}",
+       "createacct-benefit-body3": "تازأ{{PLURAL:$1|هوميار|هوميارا}}",
        "loginsuccesstitle": "اویدن با بخت وتوفیق به سیستم",
        "loginsuccess": "''' ایسا اویدن به داخل سایت {{SITENAME}} بعنوان \"$1\".'''",
        "nosuchuser": "کاربری به ای نام وجود نداره \"$1\".\nحروف نام را چک کنین, یا [[Special:CreateAccount|درست کنین یه حساب کاربری تازه]].",
        "prevn": "قبلی {{PLURAL:$1|$1}}",
        "nextn": "بعدی {{PLURAL:$1|$1}}",
        "nextn-title": "نيایي $1 {{PLURAL:$1|نتيجه|نتيجإآ}}",
+       "shown-title": "نإشۈن دائن $1 {{PLURAL:$1|نتيجأ|نتيجإ آ}} سي هر بألگأ",
        "viewprevnext": "مشاهده ($1 {{int:pipe-separator}} $2) ($3)",
        "searchprofile-articles": "بلگه آ مینونه دار",
        "searchprofile-images": "ڤارسگرا خلکمند",
        "searchprofile-advanced": "پیشکرده",
        "searchprofile-articles-tooltip": "بگرد مئن $1",
        "searchprofile-images-tooltip": "جانیاانه پی جوری کو",
+       "searchprofile-everything-tooltip": "همإ مإنۈنإ آ نأ پی جۈري کو(د ڤر گرهڌإ بألگإیل چأک چنأ)",
+       "searchprofile-advanced-tooltip": "نوم جایل نوم ديار نأ بگرد.",
        "search-result-size": "$1 ({{PLURAL:$2|1 ڤاجه یل|$2 ڤاجه یل}})",
        "search-redirect": "(ڤاگردۈني ز $1)",
        "search-section": "(بهرجا $1)",
        "filehist-current": "جاری",
        "filehist-datetime": "تاریخ/زمان",
        "filehist-thumb": "عسگ کۈچير وابيه",
+       "filehist-thumbtext": "كۈچير کردن سی نوسقإ $1",
        "filehist-user": "کاربر",
        "filehist-dimensions": "ابعاد",
        "filehist-filesize": "اندازه فایل",
        "linkstoimage": "ذیل الذکر {{PLURAL:$1|لینکهای صفحه|$1 لینک صفحات}} به ای فایل:",
        "nolinkstoimage": "هیچ صفحه ای نه که لینک وابیده بوه به ای فایل",
        "sharedupload": "ای فایل یک آپلود اشتراکی هده و ممکنه زه طریق  پروژه‌های دیگه  هم قابل دسترسی بوه",
+       "sharedupload-desc-here": "جانيایي کإ مإن $1 گاشا مإن پوروجأیل هإني ب کار گرهڌإ وابيڌإ.\nتۉزي سي [$2 file description page] مإن دإڤۈن دياري کردإ",
        "uploadnewversion-linktext": "آپلود کردن یه نسخه تازه زه ای فایل",
+       "upload-disallowed-here": "ايسا نترين اي جانيا نأ ز نۉ سوڤار کونين",
        "mimesearch": "MIME جستجو رو پایه",
        "listredirects": "لیست تغییر مسیرها",
        "unusedtemplates": "قالبها یا الگوهای استفاده نوابیده",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|چک چنه]])",
        "version": "ترجمه یا تفسیر",
        "specialpages": "صفحات ویژه",
-       "tag-filter": "[[Special:سرديسا|سرديس]] فيلتر:",
+       "tag-filter": "[[Special:سرديسا|سرديس]] فيلتر :",
        "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",
        "searchsuggest-search": "جستن {{SITENAME}}"
 }
index dddc4f1..3ca7f21 100644 (file)
@@ -35,6 +35,7 @@
        "tog-watchdefault": "Ouzhpennañ ar pajennoù kemmet ganin da'm roll evezhiañ",
        "tog-watchmoves": "Ouzhpennañ ar pajennoù dilec'hiet ganin da'm roll evezhiañ",
        "tog-watchdeletion": "Ouzhpennañ ar pajennoù diverket ganin da'm roll evezhiañ",
+       "tog-watchuploads": "Ouzhpennañ em roll-evezhiañ ar restroù nevez a enporzhian.",
        "tog-minordefault": "Sellet ouzh ar c'hemmoù degaset ganin<br /> evel kemmoù dister dre ziouer",
        "tog-previewontop": "Rakwelet tres ar bajenn a-us ar prenestr skridaozañ",
        "tog-previewonfirst": "Rakwelet tres ar bajenn kerkent hag an aozadenn gentañ",
        "virus-scanfailed": "Skannadenn c'hwitet (kod $1)",
        "virus-unknownscanner": "diviruzer dianav :",
        "logouttext": "'''Digevreet oc'h bremañ.'''\n\nNotit mat e c'hallo pajennoù zo kenderc'hel da vezañ diskwelet evel pa vefec'h kevreet c'hoazh, betek ma vo riñset krubuilh ho merdeer ganeoc'h.",
+       "cannotlogoutnow-title": "N'haller ket digevreañ bremañ",
+       "cannotlogoutnow-text": "N'haller ket digevreañ pa vezer oc'h implijout $1.",
        "welcomeuser": "Degemer mat $1 !",
        "welcomecreation-msg": "Krouet eo bet ho kont implijer.\nNa zisoñjit ket resisaat ho [[Special:Preferences|penndibaboù evit {{SITENAME}}]].",
        "yourname": "Anv implijer :",
        "createacct-yourpasswordagain-ph": "Skrivit ar ger-tremen adarre",
        "userlogin-remembermypassword": "Derc'hel ac'hanon kevreet",
        "userlogin-signwithsecure": "Implijout ur gevreadenn suraet",
+       "cannotlogin-title": "N'haller ket kevreañ",
+       "cannotlogin-text": "N'haller ket kevreañ.",
+       "cannotloginnow-title": "N'haller ket kevreañ bremañ",
+       "cannotloginnow-text": "N'haller ket kevreañ pa vezer oc'h implijout $1.",
+       "cannotcreateaccount-title": "N'haller ket krouiñ kontoù",
+       "cannotcreateaccount-text": "N'eo ket gweredekaet ar c'hrouiñ kontoù war-eeun er wiki-mañ.",
        "yourdomainname": "Ho tomani",
        "password-change-forbidden": "Ne c'hallit ket kemmañ ar gerioù-tremen er wiki-mañ.",
        "externaldberror": "Pe ez eus bet ur fazi gwiriekaat diavaez er bank titouroù pe n'oc'h ket aotreet da nevesaat ho kont diavaez.",
        "login": "Kevreañ",
+       "login-security": "Gwiriit hoc'h identelezh",
        "nav-login-createaccount": "Krouiñ ur gont pe kevreañ",
        "userlogin": "Kevreañ / krouiñ ur gont",
        "userloginnocreate": "Kevreañ",
        "userlogin-resetpassword-link": "Ankouaet ho ker-tremen ganeoc'h ?",
        "userlogin-helplink2": "Skoazell evit kevreañ",
        "userlogin-loggedin": "Kevreet oc'h dija evel {{GENDER:$1|$1}}.\nImplijit ar furmskrid amañ dindan evit kevreañ evel un implijer all.",
+       "userlogin-reauth": "Ret eo deoc'h adkevreañ evit prouiñ ez oc'h mat {{GENDER:$1|$1}}",
        "userlogin-createanother": "Krouiñ ur gont all",
        "createacct-emailrequired": "Chomlec'h postel",
        "createacct-emailoptional": "Chomlec'h postel (diret)",
        "createacct-email-ph": "Skrivit ho chomlec'h postel",
        "createacct-another-email-ph": "Ebarzhiñ ur chomlec'h postel",
        "createaccountmail": "Implijout ur ger-tremen dibad ha kas anezhañ d'ar chomlec'h postel diferetDre bostel",
+       "createaccountmail-help": "Gallout a ra bezañ implijet evit krouiñ ur gont evit unan bennak all hep gouzout ar ger-tremen.",
        "createacct-realname": "Anv gwir (diret)",
        "createaccountreason": "Abeg :",
        "createacct-reason": "Abeg",
        "createacct-reason-ph": "Perak emaoc'h o krouiñ ur gont all",
+       "createacct-reason-help": "Kemennadenn embannet e marilh ar c'hrouiñ kontoù",
        "createacct-submit": "Krouiñ ho kont",
        "createacct-another-submit": "Krouiñ ur gont",
+       "createacct-continue-submit": "Kenderc'hel da grouiñ ar gont",
+       "createacct-another-continue-submit": "Kenderc'hel da grouiñ ar gont",
        "createacct-benefit-heading": "{{SITENAME}} zo graet gant tud eveldoc'h.",
        "createacct-benefit-body1": "$1 {{PLURAL:$1|kemm}}",
        "createacct-benefit-body2": "pajenn{{PLURAL:$1|}}",
        "createacct-benefit-body3": "{{PLURAL:$1|c'henlabourer|kenlabourer}} nevez",
        "badretype": "Ne glot ket ar gerioù-tremen an eil gant egile.",
+       "usernameinprogress": "Emeur c'hoazh oc'h ober war-dro krouiñ ur gont evit an anv implijer-mañ. Gortozit un tamm bihan.",
        "userexists": "Implijet eo an anv implijer lakaet ganeoc'h dija.\nDibabit un anv all mar plij.",
        "loginerror": "Kudenn gevreañ",
        "createacct-error": "Ur fazi 'zo bet o krouiñ ar gont",
        "nocookiesnew": "Krouet eo bet ar gont implijer met n'oc'h ket kevreet. {{SITENAME}} a implij toupinoù evit ar c'hevreañ met diweredekaet eo an toupinoù ganeoc'h. Trugarez da weredekaat anezho ha da gevreañ en-dro.",
        "nocookieslogin": "{{SITENAME}} a implij toupinoù evit kevreañ met diweredekaet eo an toupinoù ganeoc'h. Trugarez da weredekaat anezho ha da gevreañ en-dro.",
        "nocookiesfornew": "N'eo ket bet krouet ar gont implijer peogwir n'eus ket bet gallet gwiriañ an orin anezhi.\nGwiriit eo bet gweredekaet an toupinoù, adkargit ar bajenn ha klaskit en-dro.",
+       "createacct-loginerror": "Krouet eo bet ar gont ervat met n'hallit ket kevreañ en un doare emgefre. [[Special:UserLogin|Kevreit gant an dorn]].",
        "noname": "N'hoc'h eus lakaet anv implijer ebet.",
        "loginsuccesstitle": "Kevreet oc'h.",
        "loginsuccess": "'''Kevreet oc'h bremañ ouzh {{SITENAME}} evel \"$1\".'''",
-       "nosuchuser": "N'eus ket eus an implijer \"$1\".\nKizidik eo anv an implijer ouzh ar pennlizherennoù\nGwiriit eo bet skrivet mat an anv ganeoc'h pe [[Special:CreateAccount|krouit ur gont nevez]].",
+       "nosuchuser": "N'eus ket eus an implijer \"$1\".\nKizidik eo anv an implijerien ouzh ar pennlizherennoù.\nGwiriit eo bet skrivet mat an anv ganeoc'h pe [[Special:CreateAccount|krouit ur gont nevez]].",
        "nosuchusershort": "N'eus perzhiad ebet gantañ an anv « $1 ». Gwiriit ar reizhskrivadur.",
        "nouserspecified": "Ret eo deoc'h spisaat un anv implijer.",
        "login-userblocked": "Stanket eo an implijer-mañ. N'eo ket aotret da gevreañ.",
        "wrongpassword": "Ger-tremen kamm. Klaskit en-dro.",
        "wrongpasswordempty": "Ger-tremen ebet. Lakait unan mar plij.",
        "passwordtooshort": "{{PLURAL:$1|1 arouezenn|$1 arouezenn}} hir a rank bezañ ar gerioù-tremen da nebeutañ.",
+       "passwordtoolong": "N'hall ket ar gerioù-tremen bezañ enno ouzhpenn $1 arouezenn.",
        "password-name-match": "Rankout a ra ho ker-tremen bezañ disheñvel diouzh hoc'h anv implijer.",
        "password-login-forbidden": "Berzet eo ober gant an anv implijer hag ar ger-tremen-mañ.",
        "mailmypassword": "Adderaouekaat ar ger-tremen",
        "createacct-another-realname-tip": "Diret eo skrivañ hoc'h anv gwir. Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset ganeoc'h.",
        "pt-login": "Kevreañ",
        "pt-login-button": "Kevreañ",
+       "pt-login-continue-button": "Kenderc'hel da gevreañ",
        "pt-createaccount": "Krouiñ ur gont",
        "pt-userlogout": "Digevreañ",
        "php-mail-error-unknown": "Fazi dianav en arc'hwel postel () PHP",
        "botpasswords-label-cancel": "Nullañ",
        "botpasswords-label-delete": "Dilemel",
        "botpasswords-label-resetpassword": "Adderaouekaat ar ger-tremen",
+       "botpasswords-label-grants-column": "Aotreet",
        "botpasswords-bad-appid": "N'eo ket reizh anv ar robot « $1 »",
        "botpasswords-insert-failed": "C'hwitet eo ouzhpennadenn ar robot « $1 ». Hag ouzhpennet eo bet ?",
        "botpasswords-update-failed": "C'hwitet eo bet hizivadur anv ar robot « $1 ». Ha dilamet eo bet ?",
        "passwordreset-emailtext-user": "Goulennet en deus an implijer $1 war  {{SITENAME}} e vefe degaset soñj dezhañ eus titouroù e gont evit {{SITENAME}} ($4). Emañ liammet {{PLURAL:$3|ar gont implijer|ar c'hontoù implijer}} da-heul gant ar chomlec'h postel-mañ :\n\n$2\n\nMont a raio da get {{PLURAL:$3|ar ger-tremen da c'hortoz|ar gerioù-tremen da c'hortoz}} a-benn {{PLURAL:$5|un devezh|$5 deiz}}.\nMat e vefe deoc'h kevreañ ha dibab ur ger-tremen nevez bremañ. Mard eo bet goulennet kement-se gant unan bennak all pe m'hoc'h eus soñj eus ho ker-tremen orin ha mar ne fell ket deoc'h e cheñch ken, na daolit ket evezh ouzh ar gemennadenn-mañ ha dalc'hit d'ober gant ho ker-tremen kozh.",
        "passwordreset-emailelement": "Anv implijer :           \n$1\n\nGer-tremen da c'hortoz : \n$2",
        "passwordreset-emailsentemail": "Kaset ez eus bet ur postel deoc'h da adderaouekaat ho ker-tremen.",
+       "passwordreset-invalidemail": "Chomlec'h postel direizh",
        "changeemail": "Kemmañ ar chomlec'h postel",
        "changeemail-header": "Kemmañ chomlec'h postel ar gont",
        "changeemail-no-info": "Ret eo deoc'h bezañ kevreet a-benn mont d'ar bajenn-se war-eeun.",
        "missingcommenttext": "Skrivit hoc'h evezhiadenn a-is.",
        "missingcommentheader": "'''Taolit evezh :''' N'hoc'h eus lakaet tamm danvez/titl ebet d'hoc'h evezhiadenn.\nMar klikit war \"{{int:savearticle}}\" en-dro, e vo enrollet ho testenn evel m'emañ hepmuiken.",
        "summary-preview": "Rakwelet an diverrañ :",
-       "subject-preview": "Rakwelet danvez/titl :",
+       "subject-preview": "Rakwelet an danvez :",
+       "previewerrortext": "C'hoarvezet ez eus ur fazi e-ser klask rakwelet ho kemmoù",
        "blockedtitle": "Implijer stanket",
        "blockedtext": "'''Stanket eo bet ho kont implijer pe ho chomlec'h IP'''\n\nGant $1 eo bet graet.\nSetu an abeg evit se : ''$2''.\n\n* Stanket adalek : $8\n* Stanket betek : $6\n* Pad ar stankadenn : $7\n\nGallout a rit mont e darempred gant $1 pe gant unan eus ar [[{{MediaWiki:Grouppage-sysop}}|verourien]] all evit eskemm ganto war se. N'hallit implijout an arc'hwel 'kas ur postel d'an implijer-mañ' nemet ma'z eus bet spisaet ganeoc'h ur chomlec'h postel reizh en ho [[Special:Preferences|penndibaboù kont]] ha ma n'eo ket bet stanket.\n$3 eo ho chomlec'h IP, ha #$5 eo niverenn an identelezh stanket.\nMerkit anezho en ho koulennoù bep tro.",
        "autoblockedtext": "Stanket eo bet ho chomlec'h IP ent emgefreek rak implijet e veze gant un implijer all bet stanket gant $1.\nSetu aze an abeg :\n\n: ''$2''\n\n* Deroù ar stankadenn : $8\n* Termen ar stankadenn : $6\n* Kont stanket : $7\n\nGallout a rit mont e darempred gant $1 pe gant unan eus ar\n[[{{MediaWiki:Grouppage-sysop}}|verourien]] all ma kavit abeg er stankadenn.\n\nNotennit mat ne c'hallot implijout an dibarzh \"kas ur postel d'an implijer\" nemet ma'z eus bet merket ganeoc'h ur chomlec'h postel reizh en ho [[Special:Preferences|penndibaboù implijer]] ha ma n'eo ket bet stanket ivez.\n\n$3 eo ho chomlec'h IP evit poent ha #$5 ho niverenn stankadenn.\nMerkit mat an titouroù-se war kement goulenn savet ganeoc'h.\n\n$5 eo ho niverenn stankadenn. Merkit mat an niverenn-se pa rit goulennoù.",
        "searchprofile-advanced-tooltip": "Klask en esaouennoù anv personelaet",
        "search-result-size": "$1 ({{PLURAL:$2|1 ger|$2 ger}})",
        "search-result-category-size": "{{PLURAL:$1|1|$1}} ezel ({{PLURAL:$2|1|$2}} is-rummad, {{PLURAL:$3|1|$3}} restr)",
-       "search-redirect": "(adkas $1)",
+       "search-redirect": "(adkas adal $1)",
        "search-section": "(rann $1)",
        "search-category": "(rummad $1)",
        "search-file-match": "(klotañ a ra gant endalc'had ar restr)",
        "editusergroup": "Kemmañ ar strolladoù implijerien",
        "editinguser": "Kemmañ gwirioù an implijer '''[[User:$1|$1]]''' $2",
        "userrights-editusergroup": "Kemmañ strolladoù an implijer",
-       "saveusergroups": "Enrollañ ar strolladoù implijer",
+       "userrights-viewusergroup": "Gwelet ar strolladoù implijerien",
+       "saveusergroups": "Enrollañ strolladoù an {{GENDER:$1|implijer|implijerez}}",
        "userrights-groupsmember": "Ezel eus :",
        "userrights-groupsmember-auto": "Ezel emplegat eus :",
        "userrights-groups-help": "Cheñch strollad an implijer a c'hallit ober.\n* Ul log asket a verk emañ an implijer er strollad.\n* Ul log diask a verk n'emañ ket an implijer er strollad.\n* Ur * a verk n'hallit ket dilemel ar strollad ur wech bet ouzhpennet, pe ar c'hontrol.",
        "group-bot": "Robotoù",
        "group-sysop": "Merourien",
        "group-bureaucrat": "Burevidi",
-       "group-suppress": "Dindan evezh",
+       "group-suppress": "Diverkerien",
        "group-all": "(pep tra)",
        "group-user-member": "{{GENDER:$1|implijer}}",
        "group-autoconfirmed-member": "{{GENDER:$1|Implijer bet kadarnaet ent emgefre}}",
        "group-bot-member": "{{GENDER:$1|robot}}",
        "group-sysop-member": "{{GENDER:$1|merour}}",
        "group-bureaucrat-member": "{{GENDER:$1|bureviad}}",
-       "group-suppress-member": "{{GENDER:$1|evezhier}}",
+       "group-suppress-member": "{{GENDER:$1|diverker|diverkerez}}",
        "grouppage-user": "{{ns:project}}:Implijerien",
        "grouppage-autoconfirmed": "{{ns:project}}: Implijerien bet kadarnaet ent emgefre",
        "grouppage-bot": "{{ns:project}}:Botoù",
        "right-override-export-depth": "Ezporzhiañ ar pajennoù en ur lakaat e-barzh ar pajennoù liammet betek un donder a 5 live",
        "right-sendemail": "Kas ur postel d'an implijerien all",
        "grant-group-email": "Kas ur postel",
+       "grant-blockusers": "Stankañ ha distankañ implijerien",
        "grant-createaccount": "Krouiñ kontoù",
        "grant-createeditmovepage": "Krouiñ, aozañ ha dilec'hiañ pajennoù",
        "grant-editmywatchlist": "Aozañ ho roll evezhiañ",
        "grant-editpage": "Aoañ pajennoù a zo anezho dija",
        "grant-editprotected": "Aozañ pajennoù gwarezet",
        "grant-sendemail": "Kas ur postel d'an implijerien all",
+       "grant-basic": "Gwirioù diazez",
        "grant-viewdeleted": "Gwelet an titouroù dilamet",
        "grant-viewmywatchlist": "Gwelet ho roll evezhiañ",
        "newuserlogpage": "Marilh ar c'hontoù krouet",
        "action-viewmywatchlist": "gwelet ho roll evezhiañ",
        "action-viewmyprivateinfo": "Gwelet ho titouroù prevez",
        "action-editmyprivateinfo": "aozañ ho titouroù prevez",
+       "action-deletechangetags": "Diverkañ tikedennoù a-ziwar an diaz-roadennoù",
        "nchanges": "$1 {{PLURAL:$1|kemm|kemm}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|abaoe ho kweladenn diwezhañ}}",
        "enhancedrc-history": "istor",
        "recentchanges-label-plusminus": "Kemmet eo ment ar bajenn eus an niver-mañ a oktedoù",
        "recentchanges-legend-heading": "<strong>Alc'hwez :</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (gwelet ivez [[Special:NewPages|roll ar pajennoù nevez]])",
+       "recentchanges-submit": "Diskouez",
        "rcnotefrom": "Setu aze roll ar c'hemmoù c'hoarvezet abaoe an <strong>$2</strong> (<strong>$1</strong> d'ar muiañ).",
        "rclistfrom": "Diskouez ar c'hemmoù diwezhañ abaoe an/ar $3 $2",
        "rcshowhideminor": "$1 ar c'hemmoù dister",
        "rcshowhidemine": "$1 ma c'hemmoù",
        "rcshowhidemine-show": "Diskouez",
        "rcshowhidemine-hide": "Kuzhat",
+       "rcshowhidecategorization-show": "Diskouez",
+       "rcshowhidecategorization-hide": "Kuzhat",
        "rclinks": "Diskouez an/ar $1 kemm diwezhañ c'hoarvezet e-pad an/ar $2 devezh diwezhañ.<br />$3",
        "diff": "diforc'h",
        "hist": "ist",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|implijer o heuliañ|implijer}} o heuliañ]",
        "rc_categories": "Bevenn ar rummadoù (dispartiañ gant \"|\")",
-       "rc_categories_any": "An holl",
+       "rc_categories_any": "Unan e-touez ar re zibabet",
        "rc-change-size-new": "$1 {{PLURAL:$1|okted|okted}} goude kemmañ",
        "newsectionsummary": "/* $1 */ rann nevez",
        "rc-enhanced-expand": "Diskouez ar munudoù",
        "recentchangeslinked-summary": "Rollet eo war ar bajenn dibar-mañ ar c'hemmoù diwezhañ bet degaset war ar pajennoù liammet ouzh ur bajenn lakaet (pe ouzh izili ur rummad lakaet).\nE '''tev''' emañ ar pajennoù zo war ho [[Special:Watchlist|roll evezhiañ]].",
        "recentchangeslinked-page": "Anv ar bajenn :",
        "recentchangeslinked-to": "Diskouez ar c'hemmoù war-du ar pajennoù liammet kentoc'h eget re ar bajenn lakaet",
+       "recentchanges-page-removed-from-category": "Diverket eo bet [[$1]] diouzh ar rummad",
        "upload": "Kargañ war ar servijer",
        "uploadbtn": "Kargañ ur restr",
        "reuploaddesc": "Distreiñ d'ar furmskrid.",
        "upload-too-many-redirects": "Re a adkasoù zo en URL-mañ.",
        "upload-http-error": "Ur fazi HTTP zo bet : $1",
        "upload-copy-upload-invalid-domain": "N'haller ket seveniñ enporzhiadennoù a-bell adalek an domani-mañ.",
+       "upload-dialog-title": "Kargañ ar restr",
        "upload-dialog-button-cancel": "Nullañ",
+       "upload-dialog-button-back": "Kent",
        "upload-dialog-button-done": "Graet",
        "upload-dialog-button-save": "Enrollañ",
        "upload-dialog-button-upload": "Enporzhiañ",
        "protectedpages-performer": "Gwareziñ an implijer",
        "protectedpages-params": "Arventennoù gwareziñ",
        "protectedpages-reason": "Abeg",
+       "protectedpages-submit": "Diskwel ar pajennoù",
        "protectedpages-unknown-timestamp": "Dianav",
        "protectedpages-unknown-performer": "Implijer dianav",
        "protectedtitles": "Titloù gwarezet",
        "protectedtitlesempty": "N'eus bet gwarezet titl ebet dezhañ an arventennoù-se evit poent.",
+       "protectedtitles-submit": "Diskwel an titloù",
        "listusers": "Roll an implijerien",
        "listusers-editsonly": "Na ziskouez nemet an implijerien o deus degaset un dra bennak",
        "listusers-creationsort": "Renket dre urzh krouiñ",
        "nopagetext": "N'eus ket eus ar bajenn dal merket ganeoc'h.",
        "pager-newer-n": "{{PLURAL:$1|1 nevesoc'h|$1 nevesoc'h}}",
        "pager-older-n": "{{PLURAL:$1|1 koshoc'h|$1 koshoc'h}}",
-       "suppress": "Dindan evezh",
+       "suppress": "Dilemel",
        "querypage-disabled": "Diweredekaet eo bet ar bajenn dibar-mañ evit aesaat d'ar reizhiad un tammig.",
+       "apihelp": "Skoazell an API",
        "apihelp-no-such-module": "N'eo ket bet kavet ar vodulenn \"$1\".",
        "apisandbox": "Poull-traezh API",
        "apisandbox-api-disabled": "Diweredekaet eo API war al lec'hienn-mañ.",
        "apisandbox-submit": "Sevel ar goulenn",
        "apisandbox-reset": "Riñsañ",
        "apisandbox-retry": "Klask en-dro",
+       "apisandbox-helpurls": "Liammoù skoazell",
        "apisandbox-examples": "Skouerioù",
        "apisandbox-dynamic-parameters": "Arventenn ouzhpenn",
        "apisandbox-dynamic-parameters-add-label": "Ouzhpennañ un arventenn:",
        "apisandbox-results": "Disoc'hoù",
        "apisandbox-request-url-label": "Goulenn URL :",
        "apisandbox-request-time": "Pad ar goulenn: $1",
+       "apisandbox-continue": "Kenderc'hel",
+       "apisandbox-continue-clear": "Riñsañ",
        "booksources": "Oberennoù dave",
        "booksources-search-legend": "Klask en oberennoù dave",
        "booksources-isbn": "ISBN :",
        "listgrouprights-removegroup-self-all": "Gallout a ra tennañ kuit an holl strolladoù eus kont an-unan.",
        "listgrouprights-namespaceprotection-namespace": "Esaouenn anv",
        "listgrouprights-namespaceprotection-restrictedto": "Gwir(ioù) hag a aotre an implijer da aozañ",
+       "listgrants": "Aotreoù",
+       "listgrants-grant": "Aotren",
        "listgrants-rights": "Gwirioù",
        "trackingcategories": "Rummadoù evezhiañ",
        "trackingcategories-msg": "Rummad evezhiañ",
        "trackingcategories-name": "Anv ar gemennadenn",
+       "trackingcategories-desc": "Dezverkoù evit degemer rummadoù",
        "broken-file-category-desc": "Er bajenn-mañ ez eus ul liamm restr torr (ul liamm da enframmañ ur restr pa n'eus ket eus ar restr-se).",
        "trackingcategories-nodesc": "N'eus deskrivadur ebet.",
        "trackingcategories-disabled": "Diweredekaet eo ar rummad",
        "sessionfailure": "Evit doare ez eus ur gudenn gant ho talc'h;\nNullet eo bet an ober-mañ a-benn en em wareziñ diouzh an tagadennoù preizhañ.\nKlikit war \"kent\" hag adkargit ar bajenn oc'h deuet drezi; goude klaskit en-dro.",
        "changecontentmodel-title-label": "Anv ar bajenn",
        "changecontentmodel-reason-label": "Abeg :",
+       "changecontentmodel-submit": "Kemmañ",
+       "logentry-contentmodel-change-revertlink": "disteuler",
+       "logentry-contentmodel-change-revert": "disteuler",
        "protectlogpage": "Log_gwareziñ",
        "protectlogtext": "Setu aze a-is roll ar c'hemmoù degaset ouzh live gwareziñ ar pajennoù.\nSellet ouzh ar [[Special:ProtectedPages|roll ar pajennoù gwarezet]] evit kaout roll ar pajennoù gwarezet bremañ.",
        "protectedarticle": "{{Gender:.|en|he}} deus gwarezet [[$1]]",
        "sp-contributions-username": "Anv implijer pe chomlec'h IP :",
        "sp-contributions-toponly": "Na ziskouez nemet an adweladennoù diwezhañ",
        "sp-contributions-newonly": "Diskouez an aozadennoù a zo krouidigezhioù pajennoù hepken",
+       "sp-contributions-hideminor": "Kuzhat ar c'hemmoù dister",
        "sp-contributions-submit": "Klask",
        "whatlinkshere": "Pajennoù liammet",
        "whatlinkshere-title": "Pajennoù liammet ouzh \"$1\"",
        "whatlinkshere-hideredirs": "$1 adkas",
        "whatlinkshere-hidetrans": "$1 treuzkluzadur",
        "whatlinkshere-hidelinks": "$1 liamm",
-       "whatlinkshere-hideimages": "$1 ar restroù liammet",
+       "whatlinkshere-hideimages": "$1 al liammoù war-zu ar restr",
        "whatlinkshere-filters": "Siloù",
        "whatlinkshere-submit": "Mont",
        "autoblockid": "Emstankañ #$1",
        "ipb-unblock": "Distankañ un implijer pe ur chomlec'h IP",
        "ipb-blocklist": "Teuler ur sell ouzh roll an dud stanket evit poent",
        "ipb-blocklist-contribs": "Degasadennoù evit $1",
+       "ipb-blocklist-duration-left": "$1 a chom",
        "unblockip": "Distankañ ur chomlec'h IP",
        "unblockiptext": "Grit gant ar furmskrid a-is evit adsevel ar moned skrivañ ouzh ur chomlec'h IP bet stanket a-gent.",
        "ipusubmit": "Paouez gant ar stankadenn-mañ",
        "lockdbsuccesstext": "Prennet eo bank roadennnoù {{SITENAME}}.\n\n<br />Na zisoñjit ket e zibrennañ pa vo bet kaset da benn vat hoc'h oberiadenn drezalc'h.",
        "unlockdbsuccesstext": "Dibrennet eo bank roadennoù {{SITENAME}}.",
        "lockfilenotwritable": "N'haller ket skrivañ war restr prennañ ar bank roadennoù. A-benn prennañ-dibrennañ ar bank e rankit bezañ aotreet da skrivañ war ar servijer Kenrouedad.",
+       "databaselocked": "Prennet eo an diaz roadennoù c'hoazh.",
        "databasenotlocked": "N'eo ket prennet an diaz roadennoù.",
        "lockedbyandtime": "(gant $1 d'an $2 da $3)",
        "move-page": "Dilec'hiañ $1",
        "export-download": "Aotren enrollañ evel ur restr",
        "export-templates": "Lakaat ar patromoù e-barzh ivez",
        "export-pagelinks": "Lakaat ar pajennoù liammet e-barzh betek un donder a :",
+       "export-manual": "Ouzhpennañ pajennoù gant an dorn :",
        "allmessages": "Roll kemennoù ar reizhiad",
        "allmessagesname": "Anv",
        "allmessagesdefault": "Kemennadenn dre ziouer",
        "tooltip-feed-atom": "Magañ ar red Atom evit ar bajenn-mañ",
        "tooltip-t-contributions": "Gwelet roll degasadennoù {{GENDER:$1|this user}} an implijer-mañ",
        "tooltip-t-emailuser": "Kas ur postel d'an implijer-mañ",
+       "tooltip-t-info": "Titouroù ouzhpenn a-zivout ar bajenn-mañ",
        "tooltip-t-upload": "Enporzhiañ ur skeudenn pe ur restr media war ar servijer",
        "tooltip-t-specialpages": "Roll an holl bajennoù dibar",
        "tooltip-t-print": "Stumm moulladus ar bajenn-mañ",
        "pageinfo-length": "Ment ar bajenn (en oktedoù)",
        "pageinfo-article-id": "Niverenn ar bajenn",
        "pageinfo-language": "Yezh ar bajenn",
+       "pageinfo-language-change": "kemmañ",
        "pageinfo-content-model": "Patrom endalc'had ar bajenn",
+       "pageinfo-content-model-change": "kemmañ",
        "pageinfo-robot-policy": "Menegeriñ gant robotoù",
        "pageinfo-robot-index": "Aotreet",
        "pageinfo-robot-noindex": "Diaotreet",
        "pageinfo-category-pages": "Niver a bajennoù",
        "pageinfo-category-subcats": "Niver a isrummadoù",
        "pageinfo-category-files": "Niver a restroù",
+       "pageinfo-user-id": "ID an implijer",
        "markaspatrolleddiff": "Merkañ evel gwiriet",
        "markaspatrolledtext": "Merkañ ar pennad-mañ evel gwiriet",
        "markedaspatrolled": "Merkañ evel gwiriet",
        "patrol-log-page": "Log gwiriañ",
        "patrol-log-header": "Setu ur marilh eus ar stummoù patrouilhet.",
        "log-show-hide-patrol": "$1 istor ar stummoù gwiriet",
+       "confirm-markpatrolled-button": "Mat eo",
        "deletedrevision": "Diverket stumm kozh $1.",
        "filedeleteerror-short": "Fazi e-ser diverkañ ar restr : $1",
        "filedeleteerror-long": "Fazioù zo bet kavet e-ser diverkañ ar restr :\n\n$1",
        "watchlistedit-clear-legend": "Diverkañ ar roll-evezhiañ",
        "watchlistedit-clear-explain": "Lamet e vo an holl ditloù eus ho roll evezhiañ",
        "watchlistedit-clear-titles": "Titloù :",
+       "watchlistedit-clear-submit": "Riñsañ ar roll-evezhiañ (da vat e vo !)",
        "watchlistedit-clear-done": "Goulloet eo bet ho roll evezhiañ.",
        "watchlistedit-clear-removed": "Dilamet ez eus bet {{PLURAL:$1|1 titl|$1 a ditloù}} :",
        "watchlistedit-too-many": "Re a bajennoù zo da ziskwel amañ.",
        "version-entrypoints": "URLoù ar poent mont e-barzh",
        "version-entrypoints-header-entrypoint": "Poent mont e-barzh",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Levraouegoù staliet",
        "version-libraries-library": "Levraoueg",
        "version-libraries-version": "Stumm",
        "version-libraries-license": "Aotre-implijout",
        "version-libraries-description": "Deskrivadur",
+       "version-libraries-authors": "Aozerien",
        "redirect-submit": "Mont",
        "redirect-lookup": "Klask :",
        "redirect-value": "Talvoud :",
        "redirect-page": "ID ar bajenn",
        "redirect-revision": "Adwel ar bajenn",
        "redirect-file": "Anv ar restr",
+       "redirect-logid": "ID ar marilh",
        "redirect-not-exists": "Talvoud n'eo ket bet kavet",
        "fileduplicatesearch": "Klask ar restroù e doubl",
        "fileduplicatesearch-summary": "Klask restroù e doubl war diazez talvoudennoù krennet.",
        "tags-active-yes": "Ya",
        "tags-active-no": "Ket",
        "tags-edit": "aozañ",
+       "tags-delete": "diverkañ",
        "tags-activate": "gweredekaat",
        "tags-deactivate": "diweredekaat",
        "tags-hitcount": "$1 {{PLURAL:$1|kemm|kemm}}",
+       "tags-create-heading": "Krouiñ un dikedenn nevez",
+       "tags-create-tag-name": "Anv an dikedenn :",
        "tags-create-reason": "Abeg :",
        "tags-create-submit": "Krouiñ",
+       "tags-create-no-name": "Rekis eo merkañ anv un dikedenn.",
+       "tags-delete-title": "Diverkañ an dikedenn",
        "tags-delete-reason": "Abeg :",
        "tags-activate-reason": "Abeg :",
        "tags-activate-submit": "Gweredekaat",
        "tags-deactivate-reason": "Abeg :",
        "tags-deactivate-submit": "Diweredekaat",
        "tags-edit-existing-tags-none": "''Hini ebet''",
+       "tags-edit-new-tags": "Tikedennoù nevez :",
+       "tags-edit-add": "Ouzhpennañ an tikedennoù-mañ :",
+       "tags-edit-remove": "Dilemel an tikedennoù-mañ :",
+       "tags-edit-remove-all-tags": "(dilemel an holl dikedennoù)",
+       "tags-edit-chosen-placeholder": "Diuzañ un nebeud tikedennoù",
        "tags-edit-reason": "Abeg :",
+       "tags-edit-success": "Lakaet eo bet ar c'hemmoù da dalvezout",
        "comparepages": "Keñveriañ pajennoù",
        "compare-page1": "Pajenn 1",
        "compare-page2": "Pajenn 2",
        "htmlform-cloner-create": "Ouzhpennañ muioc'h",
        "htmlform-cloner-delete": "Dilemel",
        "htmlform-cloner-required": "Un dalvoudenn a zo ret da vihanañ.",
+       "htmlform-date-placeholder": "BBBB-MM-DD",
+       "htmlform-time-placeholder": "HH:MM:SS",
+       "htmlform-datetime-placeholder": "BBBB-MM-DD HH:MM:SS",
+       "htmlform-title-not-exists": "N'eus ket eus $1.",
+       "htmlform-user-not-exists": "N'eus ket eus <strong>$1</strong>.",
+       "htmlform-user-not-valid": "Un anv implijer direizh eo <strong>$1</strong>.",
        "logentry-delete-delete": "Diverket eo bet ar bajenn $3 gant $1",
        "logentry-delete-restore": "Assavet eo bet ar bajenn $3 gant $1",
        "logentry-delete-event": "Kemmet eo bet gwelusted {{PLURAL:$5|un darvoud eus ar marilh|$5 darvoud eus ar marilh}} d'an $3 gant $1 : $4",
        "feedback-submit": "Kas",
        "feedback-thanks": "Ho trugarekaat ! Postet eo bet hoc'h evezhiadenn d'ar bajenn \"[$2 $1]\".",
        "feedback-thanks-title": "Trugarez !",
-       "searchsuggest-search": "Klask",
+       "searchsuggest-search": "Klask e {{SITENAME}}",
        "searchsuggest-containing": "ennañ...",
        "api-error-badaccess-groups": "N'oc'h ket aotreet da enporzhiañ restroù war ar wiki-mañ.",
        "api-error-badtoken": "Fazi diabarzh : \"jedouer\" fall.",
        "expand_templates_generate_xml": "Gwelet ar gwezennadur XML",
        "expand_templates_generate_rawhtml": "Diskouez an HTML kriz",
        "expand_templates_preview": "Rakwelet",
-       "pagelanguage": "Diuzañ yezh ar bajenn",
+       "pagelanguage": "Kemmañ yezh ar bajenn",
        "pagelang-name": "Pajenn",
        "pagelang-language": "Yezh",
        "pagelang-use-default": "Implijout ar yezh dre ziouer",
        "pagelang-select-lang": "Dibab ar yezh",
+       "pagelang-submit": "Kas",
        "right-pagelang": "Cheñch yezh ar bajenn",
        "action-pagelang": "cheñch yezh ar bajenn",
        "log-name-pagelang": "Cheñch yezh",
        "mediastatistics-header-office": "Burev",
        "mediastatistics-header-text": "Testenn",
        "mediastatistics-header-archive": "Furmadoù gwasket",
+       "mediastatistics-header-total": "An holl restroù",
        "json-warn-trailing-comma": "$1 {{PLURAL:$1|virgulenn|a virgulennoù}} dibenn zo bet lamet eus JSON",
        "json-error-unknown": "Ur gudenn a oa gant ar JSON. Fazi : $1",
        "json-error-depth": "Aet eur en tu all da zonder brasañ an torn",
        "json-error-state-mismatch": "JSON direizh pe stummet fall",
        "json-error-syntax": "Fazi ereadur",
        "json-error-utf8": "Arouezennoù UTF-8 stummet fall, enkodet en un doare direizh marteze",
+       "headline-anchor-title": "Liamm war-zu ar rannbennad-mañ",
        "special-characters-group-latin": "Latin",
        "special-characters-group-latinextended": "Latin astennet",
        "special-characters-group-ipa": "LFE (IPA)",
        "special-characters-group-thai": "Thai",
        "special-characters-group-lao": "Laoseg",
        "special-characters-group-khmer": "Khmer",
-       "randomrootpage": "Pajenn wrizienn dargouezhek"
+       "mw-widgets-titleinput-description-redirect": "adkas war-zu $1",
+       "mw-widgets-categoryselector-add-category-placeholder": "Ouzhpennañ ur rummad...",
+       "randomrootpage": "Pajenn wrizienn dargouezhek",
+       "log-action-filter-block": "Seurt bloc'had :",
+       "log-action-filter-all": "An holl",
+       "log-action-filter-block-block": "Stankañ",
+       "log-action-filter-block-unblock": "Distankañ",
+       "log-action-filter-protect-protect": "Gwarez",
+       "log-action-filter-protect-unprotect": "Diwarez",
+       "log-action-filter-rights-autopromote": "Kemm emgefre",
+       "authmanager-authplugin-setpass-failed-title": "C'hwitet eo bet ar cheñchamant ger-tremen",
+       "authmanager-authplugin-setpass-bad-domain": "Domani direizh.",
+       "authmanager-userdoesnotexist": "N'eo ket enrollet ar gont implijer \"$1\".",
+       "authmanager-retype-help": "Adkadarnaat ar ger-tremen.",
+       "authmanager-email-label": "Postel",
+       "authmanager-email-help": "Chomlec'h postel",
+       "authmanager-realname-label": "Anv gwir",
+       "authmanager-realname-help": "Anv gwir an implijer",
+       "authmanager-provider-password": "Gwiriekadur diazezet war ur ger-termen",
+       "authmanager-provider-temporarypassword": "Ger-tremen da c'hortoz",
+       "authprovider-confirmlink-success-line": "$1: bet liammet ervat.",
+       "authprovider-resetpass-skip-label": "Lammat",
+       "authprovider-resetpass-skip-help": "Lammat adderaouekaat ar ger-tremen.",
+       "authform-newtoken": "Jedouer a vank. $1",
+       "authform-notoken": "Jedouer a vank",
+       "authform-wrongtoken": "Jedouer fall",
+       "specialpage-securitylevel-not-allowed-title": "Berzet",
+       "authpage-cannot-login": "N'haller ket kregiñ da gevreañ",
+       "authpage-cannot-create": "N'haller ket kregiñ da grouiñ ar gont.",
+       "cannotauth-not-allowed-title": "Aotre nac'het",
+       "cannotauth-not-allowed": "N'oc'h ket aotreet d'ober gant ar bajenn-mañ",
+       "credentialsform-account": "Anv ar gont :",
+       "cannotlink-no-provider-title": "N'eus kont ebet da liammañ",
+       "cannotlink-no-provider": "N'eus kont ebet da liammañ.",
+       "linkaccounts": "Kontoù liammet",
+       "linkaccounts-success-text": "Liammet eo bet ar gont.",
+       "linkaccounts-submit": "Liammañ ar c'hontoù",
+       "unlinkaccounts": "Diliammañ ar c'hontoù",
+       "unlinkaccounts-success": "Diliammet eo bet ar gont.",
+       "revid": "Adweladenn $1",
+       "pageid": "ID ar bajenn $1"
 }
index 5f7ca63..c02cb2d 100644 (file)
        "createacct-email-ph": "Introduïu la vostra adreça de correu electrònic",
        "createacct-another-email-ph": "Introduïu una adreça de correu electrònic",
        "createaccountmail": "Utilitza una contrasenya aleatòria temporal i envia-la a l'adreça de correu indicada",
+       "createaccountmail-help": "Pot utilitzar-se per crear un compte per a una altra persona sense necessitar una contrasenya.",
        "createacct-realname": "Nom real (opcional)",
        "createaccountreason": "Motiu:",
        "createacct-reason": "Motiu",
        "action-deleterevision": "suprimeix les revisions",
        "action-deletelogentry": "suprimeix les entrades de registre",
        "action-deletedhistory": "mostra l'historial esborrat d'una pàgina",
+       "action-deletedtext": "mostra el text de la revisió eliminada",
        "action-browsearchive": "cercar pàgines esborrades",
        "action-undelete": "restaura les pàgines",
        "action-suppressrevision": "revisa i restaura les revisions ocultes",
        "apisandbox-dynamic-error-exists": "Ja existeix un paràmetre anomenat \"$1\".",
        "apisandbox-deprecated-parameters": "Paràmetres obsolets",
        "apisandbox-submit-invalid-fields-title": "Alguns camps no són vàlids",
+       "apisandbox-submit-invalid-fields-message": "Corregiu els camps marcats i torneu-ho a provar.",
        "apisandbox-results": "Resultats",
        "apisandbox-sending-request": "S'està enviant una sol·licitud API...",
        "apisandbox-loading-results": "S'estan reben els resultats de l'API...",
+       "apisandbox-results-error": "S'ha produït un error en carregar la resposta de la consulta de l'API: $1.",
        "apisandbox-request-url-label": "Sol·licita URL:",
        "apisandbox-request-time": "Temps de sol·licitud: {{PLURAL:$1|$1 ms}}",
+       "apisandbox-results-fixtoken": "Corregeix el testimoni i torna-ho a enviar",
+       "apisandbox-results-fixtoken-fail": "No s'ha pogut recuperar el testimoni «$1».",
+       "apisandbox-alert-page": "Els camps en aquesta pàgina no són vàlids.",
+       "apisandbox-alert-field": "El valor d'aquest camp no és vàlid.",
        "apisandbox-continue": "Continua",
        "apisandbox-continue-clear": "Neteja",
        "apisandbox-multivalue-all-namespaces": "$1 (tots els espais de noms)",
        "activeusers-intro": "Aquí hi ha una llista d'usuaris que han tingut algun tipus d'activitat en {{PLURAL:$1|el darrer dia|els darrers $1 dies}}.",
        "activeusers-count": "$1 {{PLURAL:$1|acció|accions}} en {{PLURAL:$3|el darrer dia|els $3 darrers dies}}",
        "activeusers-from": "Mostra els usuaris començant per:",
+       "activeusers-groups": "Mostra els usuaris que pertanyen als grups:",
        "activeusers-excludegroups": "Exclou els usuaris que pertanyen als grups:",
        "activeusers-noresult": "No s'han trobat usuaris.",
        "activeusers-submit": "Mostra els usuaris actius",
        "rollbacklinkcount": "reverteix $1 {{PLURAL:$1|edició|edicions}}",
        "rollbacklinkcount-morethan": "reverteix més de $1 {{PLURAL:$1|edició|edicions}}",
        "rollbackfailed": "No s'ha pogut revocar",
+       "rollback-missingparam": "Paràmetres necessaris que falten en la sol·licitud.",
        "rollback-missingrevision": "No es poden carregar les dades de revisió.",
        "cantrollback": "No s'han pogut revertir les edicions; el darrer col·laborador és l'únic autor de la pàgina.",
        "alreadyrolled": "No es pot revertir la darrera modificació de [[:$1]]\nde l'usuari [[User:$2|$2]] ([[User talk:$2|Discussió]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]). Algú altre ja ha modificat o revertit la pàgina.\n\nLa darrera modificació l'ha fet l'usuari [[User:$3|$3]] ([[User talk:$3|Discussió]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "revertpage": "Revertides les edicions de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussió]]) a l'última versió de [[User:$1|$1]]",
        "revertpage-nouser": "Edicions revertides per un usuari ocult a l'última revisió de {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Edicions revertides de $1; s'ha canviat a la darrera versió de $2.",
+       "rollback-success-notify": "Modificacions revertides per $1;\ns'ha revertit a la darrera versió de $2. [$3 Mostra els canvis]",
        "sessionfailure-title": "Error de sessió",
        "sessionfailure": "S'ha produït un error amb la vostra sessió. S'ha anul·lat aquesta acció en prevenció de pirateig de sessió. Premeu «Torna», recarregueu la pàgina des d'on veniu i torneu-ho a intentar.",
        "changecontentmodel": "Canvia el model de contingut d'una pàgina",
        "changecontentmodel-emptymodels-title": "No hi ha models de contingut",
        "changecontentmodel-emptymodels-text": "El contingut a [[:$1]] no pot convertir-se a cap tipus.",
        "log-name-contentmodel": "Registre de canvis del model de contingut",
-       "log-description-contentmodel": "Esdeveniments relacionats amb els models de contingut d'una pàgina",
+       "log-description-contentmodel": "Aquesta pàgina llista els canvis al model de contingut de les pàgines, i les pàgines que van ser creades amb un model de contingut diferent del que és per defecte.",
+       "logentry-contentmodel-new": "$1 {{GENDER:$2|va crear}} la pàgina $3 utilitzant un model de contingut no per defecte («$5»)",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|ha canviat}} el model de contingut de la pàgina $3 de «$4» a «$5»",
        "logentry-contentmodel-change-revertlink": "reverteix",
        "logentry-contentmodel-change-revert": "reverteix",
        "pageinfo-length": "Mida de la pàgina (en bytes)",
        "pageinfo-article-id": "ID de la pàgina",
        "pageinfo-language": "Llengua del contingut de la pàgina",
+       "pageinfo-language-change": "canvia",
        "pageinfo-content-model": "Plantilla de contingut de pàgina",
        "pageinfo-content-model-change": "canvia",
        "pageinfo-robot-policy": "Indexació per robots",
        "htmlform-user-not-exists": "<strong>$1</strong> no existeix.",
        "htmlform-user-not-valid": "<strong>$1</strong> no és nom d'usuari vàlid.",
        "logentry-delete-delete": "$1 {{GENDER:$2|ha esborrat}} la pàgina $3",
+       "logentry-delete-delete_redir": "$1 {{GENDER:$2|ha esborrat}} la redirecció $3 sobreescrivint-la",
        "logentry-delete-restore": "$1 ha restaurat $3",
        "logentry-delete-event": "$1 {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'un esdeveniment al registre|de $5 esdeveniments al registre}} de $3: $4",
        "logentry-delete-revision": "$1 {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'una revisió|de $5 revisions}} a la pàgina $3: $4",
        "logentry-newusers-create2": "El compte d'usuari $3 {{GENDER:$2|ha estat creat}} per $1",
        "logentry-newusers-byemail": "El compte d'usuari $3 {{GENDER:$2|ha estat creat}} per $1 i la contrasenya ha estat enviada per correu electrònic",
        "logentry-newusers-autocreate": "El compte d'usuari $1 {{GENDER:$2|ha estat creat}} automàticament",
+       "logentry-protect-move_prot": "$1 {{GENDER:$2|ha traslladat}} els valors de protecció de $4 a $3",
        "logentry-protect-protect": "$1 {{GENDER:$2|ha protegit}} $3 $4",
        "logentry-protect-protect-cascade": "$1 {{GENDER:$2|ha protegit}} $3 $4 [en cascada]",
        "logentry-protect-modify": "$1 {{GENDER:$2|ha canviat}} el nivell de protecció de $3 $4",
        "authmanager-authplugin-setpass-failed-title": "El canvi de contrasenya ha fallat",
        "authmanager-authplugin-setpass-bad-domain": "Domini invàlid.",
        "authmanager-userdoesnotexist": "El compte d'usuari «$1» no està registrat.",
+       "authmanager-username-help": "Nom d'usuari per a l'autenticació.",
+       "authmanager-password-help": "Contrasenya per a l'autenticació.",
+       "authmanager-domain-help": "Domini per a l'autenticació externa.",
        "authmanager-retype-help": "Contrasenya de nou per confirmar",
        "authmanager-email-label": "Correu electrònic",
        "authmanager-email-help": "Adreça electrònica",
        "changecredentials-submit": "Canvia les dades credencials",
        "removecredentials": "Suprimeix les credencials",
        "removecredentials-submit": "Suprimeix les credencials",
+       "removecredentials-invalidsubpage": "$1 no és un tipus de credencial vàlid.",
        "removecredentials-success": "S'ha suprimit les vostres credencials.",
        "credentialsform-provider": "Tipus de dades credencials:",
        "credentialsform-account": "Nom del compte:",
        "unlinkaccounts": "Desenllaça els comptes",
        "unlinkaccounts-success": "El compte s'ha desenllaçat.",
        "authenticationdatachange-ignored": "No s'ha gestionat el canvi de dades d'autenticació. Potser no s'ha configurat cap proveïdor?",
+       "userjsispublic": "Tingueu en compte que les subpàgines de JavaScript no haurien de contenir dades confidencials perquè poden ser visibles per altres usuaris.",
        "restrictionsfield-badip": "Adreça o interval d'IP no vàlid: $1",
        "restrictionsfield-label": "Intervals d'IP permesos:",
+       "revid": "revisió $1",
        "pageid": "ID de pàgina $1"
 }
index e446a64..eecc893 100644 (file)
        "listingcontinuesabbrev": "(кхин дlа)",
        "index-category": "Меттигтерахьйо агӀонаш",
        "noindex-category": "ДӀахьушйоцу агӀонаш",
-       "broken-file-category": "{{#switch:{{NAMESPACE}}\n |{{ns:0}}=Болх цабеш файлийн хьажоргаш йолу агӀонаш}}",
+       "broken-file-category": "{{#switch:{{NAMESPACE}}\n |{{ns:0}}=Болх ца бен файлийн хьажоргаш йолу агӀонаш}}",
        "about": "Цуьнах лаьцна",
        "article": "Яззам",
        "newwindow": "(керлачу корехь)",
        "revertmove": "юхаяккха",
        "delete_and_move_text": "== ДӀаяккха хьокъ ю ==\nИ цӀе йолу аг1о «[[:$1]]» йолуш ю. \nЛаьий хьуна и дӀаяккха, цӀе хийца таро хилийта?",
        "delete_and_move_confirm": "ХӀаъ, дӀаяккха хӀара агӀо",
-       "delete_and_move_reason": "Ð\94Ó\80аÑ\8fÑ\8cккÑ\85ина Ñ\86Ó\80е Ñ\85ийÑ\86а Ñ\8f Ñ\82аÑ\80о Ñ\85илийÑ\82а  Â«[[$1]]»",
+       "delete_and_move_reason": "ДӀаяьккхина цӀе хийца таро хилийта  «[[$1]]»",
        "selfmove": "АгӀона цӏе хийца йиш яц: и цӏе хӏокху агӏона йолуш ю.",
        "immobile-source-page": "ХӀокху агӏона цӏе хийца йиш яц.",
        "bad-target-model": "Йиш яц хийца $1 оцу $2: цхьаьна ца догӀу моделин хаамаш.",
        "confirm-watch-top": "ТӀетоха хӀара агӀо хьан тергаме могӀам юкъа?",
        "confirm-unwatch-button": "ХӀаъ",
        "confirm-unwatch-top": "ДӀаяккха хӀара агӀо хьай тергаме могӀанан юкъар?",
-       "comma-separator": ",&#32;",
+       "comma-separator": "a,&#32;",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "← хьалха йоьду агӀо",
        "imgmultipagenext": "тӀаьхьа йоьгӀу агӀо →",
        "htmlform-user-not-exists": "<strong>$1</strong> яц.",
        "htmlform-user-not-valid": "<strong>$1</strong> — декъашхочун магийна йоцу цӀе.",
        "logentry-delete-delete": "$1 {{GENDER:$2|дӀаяьккхина}} агӀо $3",
+       "logentry-delete-delete_redir": "$1 {{GENDER:$2|дӀаяьккхина}} $3 дӀасахьажорг гӀоьнца",
        "logentry-delete-restore": "$1 {{GENDER:$2|меттахӀоттайина|меттахӀоттайина}} агӀо $3",
        "logentry-delete-event": "$1 {{GENDER:$2|хийцина}} гуш хилар {{PLURAL:$5|1=$5 дӀаяздаран|$5 дӀаяздаршан}} тептаран → $3: $4",
        "logentry-delete-revision": "$1 {{GENDER:$2|хийцина}} {{PLURAL:$5|1=$5 верси|$5 версеш}} гуш хилар $3: $4 агӀорахь",
index a447400..0d9d219 100644 (file)
        "movenotallowedfile": "ڕێگەت پێ‌نەدراوە بۆ گواستنەوەی پەڕگەکان.",
        "cant-move-user-page": "ڕێگەت پێ‌نەدراوە بۆ گواستنەوەی لاپەڕەکانی بەکارهێنەر (جیاواز لە ژێرلاپەڕەکان).",
        "cant-move-to-user-page": "مافی ئەوەت نییە کە پەڕەیەک بگوێزیتەوە بۆ پەڕەیەکی بەکارھێنەری (بەڵام بۆ ژێرپەڕەیەکی بەکارھێنەری دەتوانیت).",
-       "movepage-max-pages": "زۆرینەی ژمارەی $1 {{PLURAL:$1|لاپەڕە|لاپەڕە}} گوێستراوەتەوە و لەوە زیاتر خۆکار ناگوێسترێتەوە.",
        "newtitle": "بۆ ناوی نوێی:",
        "move-watch": "پەڕەی سەرچاوە و مەبەست بخە ژێر چاودێری",
        "movepagebtn": "ئەم پەڕەیە بگوازەوە",
        "movepage-page-exists": "پەڕەی $1 هەیە و ناتوانرێت خۆکار بخرێتە جێی.",
        "movepage-page-moved": "پەڕەی $1 گۆزرایەوە بۆ $2.",
        "movepage-page-unmoved": "ناکرێ پەڕەی $1 بگوێزرێتەوە بۆ $2.",
+       "movepage-max-pages": "زۆرینەی ژمارەی $1 {{PLURAL:$1|لاپەڕە|لاپەڕە}} گوێستراوەتەوە و لەوە زیاتر خۆکار ناگوێسترێتەوە.",
        "movelogpage": "لۆگی گواستنەوە",
        "movelogpagetext": "لە خوارەوەدا لیستی ھەموو پەڕە گواستنەوەکان دەبینن.",
        "movesubpage": "{{PLURAL:$1|ژێرپەڕە|ژێرپەڕە}}",
index 2da6b16..f0a86b9 100644 (file)
        "eauthentsent": "Na zadanou adresu byl zaslán potvrzovací e-mail.\nŽádné další zprávy vám však na tuto adresu nebudou odeslány, dokud podle instrukcí v e-mailu nepotvrdíte, že tato adresa skutečně patří vám.",
        "throttled-mailpassword": "Během {{PLURAL:$1|poslední hodiny|posledních $1 hodin}} již bylo heslo jednou zasláno.\nKvůli prevenci zneužívání lze heslo zaslat jen jednou za $1 {{PLURAL:$1|hodinu|hodiny|hodin}}.",
        "mailerror": "Chyba při zasílání e-mailu: $1",
-       "acct_creation_throttle_hit": "Uživatelé používající vaši IP adresu už dnes vytvořili $1 {{PLURAL:$1|účet|účty|účtů}} za poslední $2, což je dovolené maximum.\nProto není v tuto chvíli dovoleno z této IP adresy zakládat další účty.",
+       "acct_creation_throttle_hit": "Uživatelé používající vaši IP adresu za poslední $2 vytvořili už $1 {{PLURAL:$1|účet|účty|účtů}}, což je pro toto období maximum.\nProto není v tuto chvíli dovoleno z této IP adresy zakládat další účty.",
        "emailauthenticated": "Vaše e-mailová adresa byla ověřena $2 v $3.",
        "emailnotauthenticated": "Vaše e-mailová adresa dosud nebyla ověřena.\nU následujících funkcí nebudou zasílány žádné e-maily.",
        "noemailprefs": "Pro zprovoznění následujících možností musíte zadat svou e-mailovou adresu.",
        "changecontentmodel-emptymodels-title": "Nejsou k dispozici žádné modely obsahu",
        "changecontentmodel-emptymodels-text": "Obsah stránky [[:$1]] nelze zkonvertovat na žádný typ.",
        "log-name-contentmodel": "Kniha změn modelů obsahu",
-       "log-description-contentmodel": "Události týkající se modelů obsahu stránek",
+       "log-description-contentmodel": "Na této stránce jsou zaznamenány změny modelu obsahu stránek a stránky, které byly vytvořeny s modelem obsahu různým od výchozího.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|založil|založila}} stránku $3 za použití nestandardního modelu obsahu „$5“",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|změnil|změnila}} model obsahu stránky $3 z „$4“ na „$5“",
        "logentry-contentmodel-change-revertlink": "vrátit",
        "cant-move-to-category-page": "Nemáte oprávnění přesunout stránku na stránku kategorie.",
        "cant-move-subpages": "Nemáte oprávnění přesouvat podstránky.",
        "namespace-nosubpages": "Ve jmenném prostoru „$1“ nejsou podstránky povoleny.",
-       "movepage-max-pages": "{{PLURAL:$1|Byla přesunuta maximálně povolená jedna stránka|Byly přesunuty maximálně povolené $1 stránky|Bylo přesunuto maximálně povolených $1 stránek}}, více jich už automaticky přesunuto nebude.",
        "newtitle": "Nový název:",
        "move-watch": "Sledovat tuto stránku",
        "movepagebtn": "Přesunout stránku",
        "movepage-page-exists": "Stránka $1 již existuje a nemůže být automaticky přepsána.",
        "movepage-page-moved": "Stránka $1 byla přesunuta na $2.",
        "movepage-page-unmoved": "Stránka $1 nemůže být přesunuta na $2.",
+       "movepage-max-pages": "{{PLURAL:$1|Byla přesunuta maximálně povolená jedna stránka|Byly přesunuty maximálně povolené $1 stránky|Bylo přesunuto maximálně povolených $1 stránek}}, více jich už automaticky přesunuto nebude.",
        "movelogpage": "Kniha přesunů",
        "movelogpagetext": "Toto je záznam všech přesunů stránek.",
        "movesubpage": "{{PLURAL:$1|Podstránka|Podstránky}}",
index 5b56d6d..96f4e0c 100644 (file)
        "action-upload_by_url": "lægge denne fil op fra en URL-adresse",
        "action-writeapi": "bruge skrive-API'et",
        "action-delete": "slette denne side",
-       "action-deleterevision": "slette denne version",
-       "action-deletedhistory": "se denne sides slettede historik",
+       "action-deleterevision": "slette siderevisioner",
+       "action-deletedhistory": "se en sides slettede historik",
        "action-browsearchive": "søge i slettede sider",
-       "action-undelete": "gendanne denne side",
-       "action-suppressrevision": "se og gendanne denne skjulte version",
+       "action-undelete": "gendanne sider",
+       "action-suppressrevision": "se og gendanne skjulte siderevisioner",
        "action-suppressionlog": "se denne private log",
        "action-block": "blokere denne bruger fra at redigere",
        "action-protect": "ændre på beskyttelsen af denne side",
        "action-userrights-interwiki": "ændre brugerrettigheder for brugere på andre wikier",
        "action-siteadmin": "låse eller låse databasen op",
        "action-sendemail": "sende e-mail",
+       "action-editmyoptions": "ændre dine indstillinger",
        "action-editmywatchlist": "rediger din overvågningsliste",
        "action-viewmywatchlist": "se din overvågningsliste",
        "action-viewmyprivateinfo": "se din private information",
        "uploadstash-badtoken": "Udførelse af handlingen mislykkedes, måske fordi dine redigerings legitimationsoplysninger udløbet. Prøv igen.",
        "uploadstash-errclear": "Rydning af filerne mislykkedes.",
        "uploadstash-refresh": "Opdatér filoversigten",
+       "uploadstash-thumbnail": "vis miniature",
        "invalid-chunk-offset": "Ugyldig segmentstart",
        "img-auth-accessdenied": "Adgang nægtet",
        "img-auth-nopathinfo": "PATH_INFO mangler.\nDin server er ikke sat op til at give denne information.\nDen bruger måske CGI og understøtter ikke img_auth.\nSe https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
        "protectedpages-performer": "Beskyttende bruger",
        "protectedpages-params": "Beskyttelsesparametre",
        "protectedpages-reason": "Årsag",
+       "protectedpages-submit": "Vis sider",
        "protectedpages-unknown-timestamp": "Ukendt",
        "protectedpages-unknown-performer": "Ukendt bruger",
        "protectedtitles": "Beskyttede sidenavne",
        "protectedtitles-summary": "Denne side indeholder en liste over titler, der i øjeblikket er beskyttet fra oprettelse. For en liste over eksisterende sider, der er beskyttet, se [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Der er ingen sidetitler der er beskyttet med disse parametre.",
+       "protectedtitles-submit": "Vis sidetitler",
        "listusers": "Brugerliste",
        "listusers-editsonly": "Vis kun brugere med redigeringer",
        "listusers-creationsort": "Sorter efter oprettelsesdato",
        "apisandbox-unfullscreen": "Vis side",
        "apisandbox-submit": "Lav forespørgsel",
        "apisandbox-reset": "Ryd",
+       "apisandbox-retry": "Forsøg igen",
        "apisandbox-examples": "Eksempler",
        "apisandbox-results": "Resultater",
        "apisandbox-request-url-label": "Forespurgt URL:",
        "apisandbox-request-time": "Forespørgselstid: {{PLURAL:$1|$1 ms}}",
+       "apisandbox-continue": "Fortsæt",
+       "apisandbox-continue-clear": "Ryd",
+       "apisandbox-multivalue-all-namespaces": "$1 (alle navnerum)",
+       "apisandbox-multivalue-all-values": "$1 (alle værdier)",
        "booksources": "Bogkilder",
        "booksources-search-legend": "Søgning efter bøger",
        "booksources-search": "Søg",
        "booksources-text": "Dette er en liste med henvisninger til Internetsider, som sælger nye og brugte bøger. Der kan der også findes yderligere informationer om bøgerne. {{SITENAME}} er ikke forbundet med nogen af dem.",
        "booksources-invalid-isbn": "Det angivne ISBN-nummer ser forkert ud. Tjek med kilden om det er skrevet korrekt.",
+       "magiclink-tracking-isbn": "Sider, der bruger automatiske ISBN-henvisninger",
        "specialloguserlabel": "Udført af:",
        "speciallogtitlelabel": "Mål (titel eller {{ns:user}}:brugernavn for bruger):",
        "log": "Loglister",
        "log-title-wildcard": "Søg i titler som begynder med teksten",
        "showhideselectedlogentries": "Vis/skjul de markerede loghændelser",
        "log-edit-tags": "Rediger tags i valgte logposter",
+       "checkbox-select": "Vælg: $1",
        "checkbox-all": "Alle",
        "checkbox-none": "Ingen",
        "allpages": "Alle sider",
        "sessionfailure-title": "Sessionsfejl",
        "sessionfailure": "Der lader til at være et problem med din loginsession; denne handling blev annulleret som en sikkerhedsforanstaltning mod kapring af sessionen. Tryk på \"tilbage\"-knappen og genindlæs den side du kom fra, og prøv dernæst igen.",
        "changecontentmodel-title-label": "Sidetitel",
+       "changecontentmodel-model-label": "Ny indholdsmodel",
        "changecontentmodel-reason-label": "Begrundelse:",
        "protectlogpage": "Skrivebeskyttelseslog",
        "protectlogtext": "Herunder er en liste over ændringer til sidebeskyttelser.\nSe [[Special:ProtectedPages|listen over beskyttede sider]] for listen over sidebeskyttelser, der er i kraft i øjeblikket.",
        "patrol-log-page": "Kontrollog",
        "patrol-log-header": "Patruljerede versioner.",
        "log-show-hide-patrol": "$1 patruljeringslog",
+       "confirm-markpatrolled-button": "OK",
        "deletedrevision": "Slettede gammel version $1",
        "filedeleteerror-short": "Fejl under sletning af fil: $1",
        "filedeleteerror-long": "Der opstod en fejl under sletningen af filen:\n\n$1",
        "watchlistedit-raw-done": "Din overvågningsliste blev opdateret.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 side|$1 sider}} er tilføjet:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 side|$1 sider}} er fjernet:",
-       "watchlistedit-clear-title": "Ryddet overvågningsliste",
+       "watchlistedit-clear-title": "Ryd overvågningsliste",
        "watchlistedit-clear-legend": "Ryd overvågningsliste",
        "watchlistedit-clear-explain": "Alle siderne vil blive fjernet fra din overvågningsliste",
        "watchlistedit-clear-titles": "Sider:",
        "watchlisttools-edit": "Rediger overvågningsliste",
        "watchlisttools-raw": "Rediger rå overvågningsliste",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskussion]])",
+       "timezone-local": "Lokal",
        "duplicate-defaultsort": "Advarsel: Standardsorteringsnøglen \"$2\" tilsidesætter den tidligere sorteringsnøgle \"$1\".",
        "version": "Information om MediaWiki",
        "version-extensions": "Installerede udvidelser",
        "htmlform-cloner-delete": "Fjern",
        "htmlform-cloner-required": "Der kræves mindst en værdi.",
        "htmlform-date-placeholder": "ÅÅÅÅ-MM-DD",
+       "htmlform-time-placeholder": "TT:MM:SS",
+       "htmlform-datetime-placeholder": "ÅÅÅÅ-MM-DD TT:MM:SS",
+       "htmlform-title-not-exists": "$1 findes ikke.",
        "logentry-delete-delete": "$1 {{GENDER:$2|slettede}} siden $3",
+       "logentry-delete-delete_redir": "$1 {{GENDER:$2|slettede}} omdirigering $3 ved overskrivning",
        "logentry-delete-restore": "$1 {{GENDER:$2|gendannede}} siden $3",
        "logentry-delete-event": "$1 {{GENDER:$2|ændrede}} synligheden af {{PLURAL:$5|en loghændelse|$5 loghændelser}} for siden $3: $4",
        "logentry-delete-revision": "$1 {{GENDER:$2|ændrede}} synligheden af {{PLURAL:$5|en version|$5 versioner}} af siden $3: $4",
        "mw-widgets-titleinput-description-redirect": "omdiriger til $1",
        "randomrootpage": "Tilfældig stamside",
        "log-action-filter-block": "Blokeringstype:",
+       "log-action-filter-delete": "Sletningstype:",
+       "log-action-filter-import": "Importtype:",
        "log-action-filter-move": "Flyttetype:",
        "log-action-filter-patrol": "Patruljeringstype:",
        "log-action-filter-protect": "Beskyttelsestype:",
+       "log-action-filter-all": "Alle",
        "log-action-filter-block-block": "Blokering",
        "log-action-filter-block-reblock": "Ændring af blokering",
+       "log-action-filter-block-unblock": "Ophævelse af blokering",
        "log-action-filter-delete-delete": "Sidesletning",
+       "log-action-filter-delete-delete_redir": "Overskrivning af omdirigering",
        "log-action-filter-delete-restore": "Sidegendannelse",
        "log-action-filter-delete-event": "Logsletning",
        "log-action-filter-delete-revision": "Revisionssletning",
        "log-action-filter-move-move": "Flytning uden overskrivelse af omdirigeringer",
        "log-action-filter-move-move_redir": "Flytning med overskrivelse af omdirigeringer",
+       "log-action-filter-newusers-autocreate": "Automatisk oprettelse",
        "log-action-filter-patrol-patrol": "Manuel patruljering",
        "log-action-filter-patrol-autopatrol": "Automatisk patruljering",
        "log-action-filter-protect-protect": "Beskyttelse",
index 0362418..ed98ba9 100644 (file)
        "apisandbox-sending-request": "Sende API-Anfrage …",
        "apisandbox-loading-results": "Rufe API-Ergebnisse ab …",
        "apisandbox-results-error": "Beim Laden der API-Anfragenantwort ist ein Fehler aufgetreten: $1.",
+       "apisandbox-request-params-json": "JSON-Parameter:",
        "apisandbox-request-url-label": "Anforderungs-URL:",
        "apisandbox-request-time": "Dauer der Anfrage: {{PLURAL:$1|Eine Millisekunde|$1 Millisekunden}}",
        "apisandbox-results-fixtoken": "Token korrigieren und erneut übertragen",
        "changecontentmodel-emptymodels-title": "Keine Inhaltsmodelle verfügbar",
        "changecontentmodel-emptymodels-text": "Der Inhalt auf [[:$1]] kann zu keinem Typ konvertiert werden.",
        "log-name-contentmodel": "Inhaltsmodell-Änderungs-Logbuch",
-       "log-description-contentmodel": "Ereignisse bezüglich den Inhaltsmodellen einer Seite",
+       "log-description-contentmodel": "Diese Seite listet Änderungen an dem Inhaltsmodell von Seiten auf sowie Seiten, die mit einem Inhaltsmodell erstellt wurden, das nicht dem Standard entspricht.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|erstellte}} die Seite $3 mit einem Nicht-Standard-Inhaltsmodell „$5“",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|änderte}} das Inhaltsmodell der Seite $3 von „$4“ nach „$5“",
        "logentry-contentmodel-change-revertlink": "zurücksetzen",
        "cant-move-to-category-page": "Du hast keine Berechtigung, um eine Seite zu einer Kategorieseite zu verschieben.",
        "cant-move-subpages": "Du hast keine Berechtigung, um Unterseiten zu verschieben.",
        "namespace-nosubpages": "Der Namensraum „$1“ erlaubt keine Unterseiten.",
-       "movepage-max-pages": "Die Maximalanzahl von $1 {{PLURAL:$1|Seite|Seiten}} wurde verschoben, Alle weiteren Seiten können nicht automatisch verschoben werden.",
        "newtitle": "Neuer Titel:",
        "move-watch": "Quell- und Zielseite beobachten",
        "movepagebtn": "Seite verschieben",
        "movepage-page-exists": "Die Seite „$1“ ist bereits vorhanden und kann nicht automatisch überschrieben werden.",
        "movepage-page-moved": "Die Seite „$1“ wurde nach „$2“ verschoben.",
        "movepage-page-unmoved": "Die Seite „$1“ konnte nicht nach „$2“ verschoben werden.",
+       "movepage-max-pages": "Die Maximalanzahl von $1 {{PLURAL:$1|Seite|Seiten}} wurde verschoben, Alle weiteren Seiten können nicht automatisch verschoben werden.",
        "movelogpage": "Verschiebungs-Logbuch",
        "movelogpagetext": "Dies ist eine Liste aller verschobenen Seiten.",
        "movesubpage": "{{PLURAL:$1|Unterseite|Unterseiten}}",
        "api-error-unclassified": "Ein unbekannter Fehler ist aufgetreten.",
        "api-error-unknown-code": "Unbekannter Fehler: „$1“",
        "api-error-unknown-error": "Interner Fehler: Ein unbekannter Fehler ist beim Hochladen der Datei aufgetreten.",
-       "api-error-unknown-warning": "Unbekannte Warnung: $1",
+       "api-error-unknown-warning": "Unbekannte Warnung: „$1“.",
        "api-error-unknownerror": "Unbekannter Fehler: „$1“",
        "api-error-uploaddisabled": "Das Hochladen ist in diesem Wiki deaktiviert.",
        "api-error-verification-error": "Die hochzuladende Datei ist entweder fehlerhaft oder hat keine Dateinamenserweiterung.",
index 971eeb4..334e655 100644 (file)
@@ -26,7 +26,9 @@
                        "Kumkumuk",
                        "Gırd",
                        "Velg",
-                       "1917 Ekim Devrimi"
+                       "1917 Ekim Devrimi",
+                       "Gambollar",
+                       "Dılmıc"
                ]
        },
        "tog-underline": "Bınê gırey de xete bance:",
        "tog-watchrollback": "Pelê ke mı peyser ardi inan lista mına seyrkerdışi ke",
        "tog-minordefault": "Vurnayışanê xo pêrune ''vurnayışo qıckek'' nışan bıde",
        "tog-previewontop": "Verqayti pela nuştışi ser de bımocne",
-       "tog-previewonfirst": "Vurnayışo verên de verqayti tım bımocne",
+       "tog-previewonfirst": "Vurnayışo verên de verqayti tım bımotne",
        "tog-enotifwatchlistpages": "Jû pele ya ki dosyawa ke lista mına seyrkerdışi de vurnae, mı rê e-mail bırışe",
        "tog-enotifusertalkpages": "Pela mına werênayışi ke vurnayê mı rê e-poste bırışe",
        "tog-enotifminoredits": "Pelan de vurnayışanê qıckekan u dosyan de ki mı rê e-mail bırışe",
        "tog-enotifrevealaddr": "Adresa e-posteyê mı posteyê xeberan de bımocne",
-       "tog-shownumberswatching": "Amarê karberanê seyrkerdoğan bımocne",
+       "tog-shownumberswatching": "Amarê karberanê seyr kerdoğan bımotne",
        "tog-oldsig": "İmzaya mewcud:",
        "tog-fancysig": "İmza rê mameleyê wikimeqaley bıke (bê gıreyo otomatik)",
        "tog-uselivepreview": "Verqayto giyane bıgureyne",
@@ -68,7 +70,7 @@
        "tog-watchlisthidecategorization": "Pera kategorizasyoni bınımne",
        "tog-ccmeonemails": "E-posteyanê ke ez karberanê binan rê rışenan, mı rê kopya inan bırışe",
        "tog-diffonly": "Zerrekê muhtevay, qıyasê versiyonan de tek ferqan bımocne",
-       "tog-showhiddencats": "Kategoriyanê nımneya bıasne",
+       "tog-showhiddencats": "Kategoriyanê nımneya bımotné",
        "tog-norollbackdiff": "Peyser ardışi ra dıme ferqi measne",
        "tog-useeditwarning": "Wexto ke mı yew pela nizami be vurnayışanê nêqeydbiyayeyan caverdê, hay be mı ser de",
        "tog-prefershttps": "Ronışten akerden de tım greyo itimadın bıkarne",
        "underline-never": "Qet",
        "underline-default": "Cild ya zi cı geyrayoğo hesebiyaye",
        "editfont-style": "Cayê vurnayışi de terzê nuştışi:",
-       "editfont-default": "Cı geyrayoğo hesabiyaye",
+       "editfont-default": "Browsero standard",
        "editfont-monospace": "Terzê nusteyê sabıt mesafi",
        "editfont-sansserif": "Fontê Sans-serifi",
        "editfont-serif": "Font (çêşıdê nuştey) Serif",
        "sunday": "Kırê",
-       "monday": "Dışeme",
+       "monday": "Bahdêbazari",
        "tuesday": "Sêşeme",
        "wednesday": "Çarşeme",
        "thursday": "Pancşeme",
        "faq": "PVP",
        "faqpage": "Project: PVP",
        "actions": "Hereketi",
-       "namespaces": "Heruna nameyan",
+       "namespaces": "Heruna naman",
        "variants": "Varyanti",
        "navigation-heading": "Menuyê navigasyoni",
        "errorpagetitle": "Xeta",
        "returnto": "Peyser şo $1.",
        "tagline": "{{SITENAME}} ra",
-       "help": "Pasti",
+       "help": "Pti",
        "search": "Cı geyre",
        "searchbutton": "Cı geyre",
        "go": "Şori",
-       "searcharticle": "Şori",
+       "searcharticle": "Şo",
        "history": "Tarixê perrer",
        "history_short": "Veror",
        "updatedmarker": "cı kewtena mına peyêne ra dıme biyo rocane",
        "deletethispage": "Na perrer bestern",
        "undeletethispage": "Na perer mebesterne",
        "undelete_short": "{{PLURAL:$1|Yew vurnayışi|$1 Vurnayışan}} mestere",
-       "viewdeleted_short": "{{PLURAL:$1|Yew vurnayışo esterıte|$1 Vurnayışanê esterıtan}} bımocne",
+       "viewdeleted_short": "{{PLURAL:$1|Jew vurnayış esternayi|$1 Vurnayışanê esternayan}} bımotne",
        "protect": "Bıstarnê",
        "protect_change": "bıvurne",
        "protectthispage": "Ena perer bıpawe",
        "newpage": "Perra newi",
        "talkpage": "Na per dı vatan kew",
        "talkpagelinktext": "Mesac",
-       "specialpage": "Perra xısusi",
+       "specialpage": "Pera hısusi",
        "personaltools": "Hacetê şexsiy",
        "articlepage": "Pera zerreki bıvin",
        "talk": "Vaten",
        "tool-link-emailuser": "E-posta ya në {{GENDER:$1|karberi}}",
        "userpage": "Perra karberi bıvin",
        "projectpage": "Perra proji bıvin",
-       "imagepage": "Pera dosya bıasne",
-       "mediawikipage": "Pera mesaci bıasne",
-       "templatepage": "Pera şabloni bıasne",
+       "imagepage": "Pera dosye bımotné",
+       "mediawikipage": "Pera mesaji bımotné",
+       "templatepage": "Pera şabloni bımotné",
        "viewhelppage": "Pera peşti bıvin",
-       "categorypage": "Pela kategoriya bıasne",
+       "categorypage": "Pera kategori bımotné",
        "viewtalkpage": "Vaten bıvin",
        "otherlanguages": "Zıwananê binan dı",
        "redirectedfrom": "($1 ra kırışı yê)",
-       "redirectpagesub": "Perra kırıştışi",
+       "redirectpagesub": "Pera kırıştışi",
        "redirectto": "Kırışêno:",
-       "lastmodifiedat": "Ena pele tewr peyên $1 dı $2 dı vuriyaya.",
+       "lastmodifiedat": "Ena perre roca $1 de, saete $2 de arde ro cı.",
        "viewcount": "Ena pele {{PLURAL:$1|rae|$1 rey}} vêniya.",
-       "protectedpage": "Perra pawıyayi",
+       "protectedpage": "Pera pawıyayi",
        "jumpto": "Şo be:",
        "jumptonavigation": "Navigasyon",
        "jumptosearch": "cı geyre",
        "pool-errorunknown": "Xeta nêzanıtiye",
        "pool-servererror": "Amordoğa xızmeti ya istifade nëbena $1",
        "poolcounter-usage-error": "Xırab karyayış:$1",
-       "aboutsite": "Heqa {{SITENAME}} de",
+       "aboutsite": "Heqa {{SITENAME}} dı",
        "aboutpage": "Project:Heqa",
        "copyright": "Zerrekacı $1 bındı not biya.",
        "copyrightpage": "{{ns:project}}:Heqa telifi",
        "currentevents": "Hediseyê rocaney",
        "currentevents-url": "Project:Hediseyê rocaney",
-       "disclaimers": "Reddé  Mesuliyeti",
+       "disclaimers": "Redê mesuliyeti",
        "disclaimerpage": "Project:Redê mesulêtê pêro",
        "edithelp": "Pastiyer vurnayış",
-       "helppage-top-gethelp": "Pasti",
-       "mainpage": "Pela Seri",
-       "mainpage-description": "Pela seri",
+       "helppage-top-gethelp": "Pti",
+       "mainpage": "Perra Seri",
+       "mainpage-description": "Pera seri",
        "policy-url": "Project:Terzê hereketi",
        "portal": "Portalê cemati",
        "portal-url": "Project:Portalê cemati",
        "badaccess-group0": "Heqa şıma çıniya, karo ke şıma waşt, bıkerê.",
        "badaccess-groups": "No fealiyeto ke şıma waşt, tenya karberanê {{PLURAL:$2|grubi|gruban ra yewi}} rê akerdeyo: $1.",
        "versionrequired": "No $1 MediaWiki lazımo",
-       "versionrequiredtext": "Seba gurenayışê na pele versiyonê MediaWiki $1 lazımo. \n[[Special:Version|Versiyonê pele]] bıvêne.",
+       "versionrequiredtext": "Gırweynayışê ena perre rê gani versiyonê $1ê MediaWiki bo. \n[[Special:Version|Versiyonê perre]] bıvêne.",
        "ok": "Temam",
        "pagetitle": "$1 – {{SITENAME}}",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "viewsourcelink": "çımey bıvêne",
        "editsectionhint": "Leteyo ke bıvuriyo: $1",
        "toc": "Zerreki",
-       "showtoc": "bıasnê",
+       "showtoc": "bımotne",
        "hidetoc": "bınımne",
        "collapsible-collapse": "Teng kı",
        "collapsible-expand": "Hera ke",
        "red-link-title": "$1 (pele çıniya)",
        "sort-descending": "Rêzkerdışo kêmbiyaye",
        "sort-ascending": "Rêzkerdışo zêdiyaye",
-       "nstab-main": "Perr",
-       "nstab-user": "Perra karberi",
+       "nstab-main": "Perre",
+       "nstab-user": "Pera karberi",
        "nstab-media": "Perra medya",
-       "nstab-special": "Perra xısusi",
+       "nstab-special": "Pera hısusi",
        "nstab-project": "Perra proji",
        "nstab-image": "Dosya",
        "nstab-mediawiki": "Mesac",
        "nstab-template": "Şablon",
        "nstab-help": "Perra pasti",
        "nstab-category": "Kategori",
-       "mainpage-nstab": "Pela seri",
+       "mainpage-nstab": "Perra seri",
        "nosuchaction": "Fealiyeto wınasi çıniyo",
        "nosuchactiontext": "URL ra kar qebul nêbı.\nŞıma belka URL şaş nuşt, ya zi gıreyi şaş ra ameyi.\nKeyepelê {{SITENAME}} eşkeno xeta eşkera bıkero.",
        "nosuchspecialpage": "Pela hısusiya wınasiyên çıniya.",
        "italic_tip": "Metno çewt",
        "link_sample": "Serekê gıri",
        "link_tip": "Gırey Żerri",
-       "extlink_sample": "http://www.misal.com sernameyê gırey",
+       "extlink_sample": "http://www.misal.com sernamey gırey",
        "extlink_tip": "Gırey teberi (xo vira mekerên http:// prefix)",
        "headline_sample": "metnê sernamey",
        "headline_tip": "Sewiya 2ıne sername",
        "image_sample": "Misal resim.jpg",
        "image_tip": "Dosya tewrkerdiye",
        "media_sample": "misal.jpg",
-       "media_tip": "Gıreyê dosya",
+       "media_tip": "Gırey dosye",
        "sig_tip": "İmzay şıma be morê zemani",
        "hr_tip": "Xeta verardiye (teserrufın bıgureyne/bıxebetne)",
        "summary": "Xulasa:",
        "subject": "Mewzu:",
        "minoredit": "No yew vurnayışo werdiyo",
        "watchthis": "Bewni ena per",
-       "savearticle": "Pele qeyd kı",
+       "savearticle": "Perre qeyd ke",
        "savechanges": "Vurnayışan qeyd kı",
        "publishpage": "Perer bıhesırne",
        "publishchanges": "Vurnayışa vıla ke",
        "preview": "Verqayt",
-       "showpreview": "Verasayışi bımocne",
-       "showdiff": "Vurnayışan bımocne",
+       "showpreview": "Verasayışi bımotne",
+       "showdiff": "Vurnayışan bımotne",
        "anoneditwarning": "<strong>İqaz:</strong> Şıma be hesabê xo nêkewtê cı. \nAdresê şımayê IP tarixê vırnayışê na pele de do qeyd bo. Eke şıma <strong>[$1 cıkewê]</strong> ya zi <strong>[$2 hesab vırazê]</strong>, vurnayışê şıma be zewbina kare ra nameyê şıma rê bar beno.",
        "anonpreviewwarning": "\"Şıma be hesabê xo nêkewtê cı. Eke qeyd kerê, adresê şımaê IP tarixê vırnayışê na pele de do qeyd bo.\"",
        "missingsummary": "'''DİQET:''' Şıma jû xulasa nênuşte.\nEke şıma \"{{int:savearticle}}\" reyna bıtıknê, vırnayışê şıma bê xulasa qeyd beno.",
        "nonunicodebrowser": "'''DİQET: Browserê şıma u unicode yewbini nêgeni. Qey izin dayişê vurnayişê pelan: Karakteri ke ASCII niyê; zerreyê qutiyê vurnayişi de kodi (cod) şiyes-şiyes aseni.'''",
        "editingold": "'''İkaz: Şımayé rewizyon da kehan da perer d vırnayış kené.'''\nVanése qeyd k,lakin rewziyoné veréni dé vınibé.",
        "yourdiff": "pêverronayiş",
-       "copyrightwarning": "'''Recaya iqazi:'''Sita {{SITENAME}} ra iştıraqi pêro umışiya $2 zerredeyo (teferuatan rê $1 bıvênê).\n\nİştıraqê şıma, şıma qayıl niyê ke yewna merdumi kerpeyina bıvurnê ya zi yewna cayi ra vıla kerê ke, iştıraq mekewê.<br />\nFına zi qayılê ke iştıraq kewê, şıma qayılê ke şar vaco eno nuşte fılan kesi nusnayo ya zi meqemanê resmiyan ra zanayışê cı û malumatê cı esto / cayanê xoseran ra gırewtışi rê şıma garanti danê. '''Tiya de şıma werê telifi ra ke mısade nêgırewto, eserê cı tiya vıla mekerê! '''",
+       "copyrightwarning": "'''Recay iqazi:'''Sitey {{SITENAME}} ra iştıraki pêro umışiya $2 zerre deyo (teferuatan rê $1 bıvênê).\n\nİştırakê şıma, şıma qayıl niyê ke yewna merdımi kerpeyina bıvurnê ya zi yewna cayi ra vıla kerê ke, iştırakiştıraq = iştırak. mekewê.<br />\nFına zi qayılê ke iştıraq kewê, şıma qayılê ke şar vaco eno nuşte fılan kesi nusnayo ya zi meqemanê resmiyan ra zanayışê cı û malumatê cı esto / cayanê xoseran ra gırewtışi rê şıma garanti danê. '''Tiya de şıma werê telifi ra ke mısade nêgırewto, eserê cı tiya vıla mekerê! '''",
        "copyrightwarning2": "Ney bızanê ke nuşteyê ke şıma ruşnenê (şawenê) keyepela {{SITENAME}} herkes eşkeno nê nuşteyanê şıma ser kay bıkero. Eke şıma qayil niyê kes bıvurno, nuşteyanê xo meerzê ita. <br />\nWexto ke şıma nuşteyi zi erzenê ita; şıma gani teahud bıdê koti ra ardo (qandê teferuati ra referans: $1).",
        "editpage-cannot-use-custom-model": "Zerrekê  modelê ena peler şıma nêşenê bıvurnê",
        "longpageerror": "'''Xırab: Dergeya nuşte dê şıma nezdi {{PLURAL:$1|kilobayto|$1 kilobayto}}, feqet {{PLURAL:$2|kilobayt|$2 kilobayt}} ra vêşiyo. Qeyd biyayişê cı nêbeno'''",
        "undo-summary": "Vırnayışê $1'i [[Special:Contributions/$2|$2i]] ([[User talk:$2|Werênayış]]) peyser gırot",
        "undo-summary-username-hidden": "Rewizyona veri $1'i hewada",
        "cantcreateaccount-text": "Hesabvıraştışê na IP adrese ('''$1''') terefê [[User:$3|$3]] kılit biyo.\n\nSebebo ke terefê $3 ra diyao ''$2''",
-       "viewpagelogs": "Qeydanê na pele bımocne",
-       "nohistory": "Verê vurnayışanê na pele çıniyo.",
+       "viewpagelogs": "Qeydanê na perrer bımotne",
+       "nohistory": "Verorê vurnayışanê na perer çıni yo.",
        "currentrev": "Çımraviyarnayışo rocane",
        "currentrev-asof": "$1 ra tepya mewcud weziyeta pela",
        "revisionasof": "Çımraviyarnayışê $1",
        "revision-info": "Vurnayışo ke $1 de terefê {{GENDER:$6|$2}}$7 ra biyo",
        "previousrevision": "← Çımraviyarnayışo kıhanêr",
        "nextrevision": "Rewizyono newên →",
-       "currentrevisionlink": "Tewr halê rocaniye bımocne",
+       "currentrevisionlink": "Tewr halê peyn",
        "cur": "ferq",
        "next": "bahdoyên",
        "last": "peyên",
        "page_first": "verên",
        "page_last": "peyên",
-       "histlegend": "Ferqê weçinayışi: Qutiya versiyonan seba têversanayış işaret ke u dest be ''enter''i ya zi gocega cêrêne ro ne.<br />\nCetwel: <strong>({{int:ferq}})</strong> = ferqê verziyonê peyêni, <strong>({{int:peyên}})</strong> = ferqê versiyonê verêni, <strong>{{int:q}}</strong> = vurnayışo werdi yo.",
+       "histlegend": "Ferqê weçinayışi: Qutiya versiyonan qandé  têversanayış işaret ke u dest be ''enter''i ya zi gocega cêrêne rone.<br />\nCetwel: <strong>({{int:ferq}})</strong> = ferqê versiyonê peyêni, <strong>({{int:peyên}})</strong> = ferqê versiyonê verêni, <strong>{{int:q}}</strong> = vurnayışo werdi yo.",
        "history-fieldset-title": "Çımberz verori",
        "history-show-deleted": "Tenya esterıtey",
        "histfirst": "Verênêr",
        "histlast": "Peyênêr",
        "historysize": "({{PLURAL:$1|1 bayt|$1 bayti}})",
        "historyempty": "(veng)",
-       "history-feed-title": "Tarixê çımraviyarnayışi",
+       "history-feed-title": "Tarixê çım eştışi",
        "history-feed-description": "Wiki de tarixê çım ra viyarnayışë na perer",
        "history-feed-item-nocomment": "$1 miyanê $2i de",
        "history-feed-empty": "Pela cıgeyrayiye çıniya.\nBeno ke ena esteriya, ya zi namê cı vuriyo.\nSeba pelanê muhimanê newan [[Special:Search|cıgeyrayışê wiki de]] bıcerebne.",
        "rev-suppressed-unhide-diff": "Nê Timarkerdışi ra yewi '''çap biyo'''.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rocaneyê vındertışi] de teferru'ati esti.\nEke şıma serkari u devam bıkeri [$1 no vurnayiş şıma eşkeni bıvini].",
        "rev-deleted-diff-view": "Jew timarkerdışê ena versiyon '''wedariyayo''.\nÎdarekarî şenê ena versiyon bivîne; belki tiya de [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} wedarnayişî] de teferruat esto.",
        "rev-suppressed-diff-view": "Jew timarkerdışê ena versiyon '''Ploxneyış'' biyo.\nÎdarekarî eşkeno ena dif bivîne; belki tiya de [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} ploxnayış] de teferruat esto.",
-       "rev-delundel": "bımocne/bınımne",
-       "rev-showdeleted": "bımocne",
+       "rev-delundel": "bımotne/bınımne",
+       "rev-showdeleted": "bımotne",
        "revisiondelete": "Çımraviyarnayışan bestere/peyser biya",
        "revdelete-nooldid-title": "Çımraviyarnayışo waşte nêvêreno",
        "revdelete-nooldid-text": "Şıma vıraştışê nê fonksiyoni rê ya yew çımraviyarnayışo waşte diyar nêkerdo, çımraviyarnayışo diyarkerde çıniyo, ya ki şıma wazenê ke çımraviyarnayışê nıkayêni bınımnê.",
        "suppressionlog": "qeydê pinani kerdışi",
        "suppressionlogtext": "Cêr de, kahyayan ra zerreko nımıte esto,eno listey besterneya u merdumê bloke kerdışiyo. \nListey xırabi u bloki re pelay [[Special:BlockList|IP'yê ke bloke biyê]] bivinê.",
        "mergehistory": "vere cûye pelan bıhewelın",
-       "mergehistory-header": "No pel, reviyonê yew peli eşkeno yewna pelo newe de piyawano.\nno vurnayişo ke şıma keni kontrol bıkere yew pelo kehen nêbo.",
-       "mergehistory-box": "revizyonê pelanî yew bike:",
-       "mergehistory-from": "Pela çımey:",
-       "mergehistory-into": "Pela destinasyonî",
+       "mergehistory-header": "Na per, revizyonê ju perer şena juna perer ra pêser kero.  \nNo vurnayişo ke şıma kenê kontrol bıkere ju pera kehen wa nêbo.",
+       "mergehistory-box": "revizyonê peran pêser kerê:",
+       "mergehistory-from": "Pera çımey:",
+       "mergehistory-into": "Pera hedef:",
        "mergehistory-list": "Tarixê vurnayışiyo yewbiyaye",
        "mergehistory-merge": "[[:$1]] qey ney revizyonê cêrini [[:$2]] şıma ekeni piyawani. Benatê wexto muwaqqet de piyayanayişê rezizyonan de tuşa radyo bıxebitne.",
-       "mergehistory-go": "Yew bıyaye vurriyayışa bıasne",
+       "mergehistory-go": "Pêser bıyaye vurriyayışa bımotné",
        "mergehistory-submit": "revizyonî yew bike",
        "mergehistory-empty": "Revizyonî yew nibenê.",
        "mergehistory-done": "$1 ra $3 {{PLURAL:$3|revizyon|revizyoni}} [[:$2]] de {{PLURAL:$3|biyo|biyê}} têmiyan.",
        "mergelog": "Qeydé zew kerdışi",
        "revertmerge": "Abırnê",
        "mergelogpagetext": "Cêr de yew liste esta ke mocnena ra, raya tewr peyêne kamci pela tarixi be a bine ra şanawa pê.",
-       "history-title": "Tarixê çımraviyarnayışê \"$1\"",
+       "history-title": "Verorê \"$1\"",
        "difference-title": "Pela \"$1\" ferqê çım ra viyarnayışan",
        "difference-title-multipage": "Ferkê pelan dê \"$1\" u \"$2\"",
        "difference-multipage": "(Ferqê pelan)",
        "lineno": "Xeta $1:",
        "compareselectedversions": "Rewizyonanê weçineyan pêver ke",
-       "showhideselectedversions": "Revizyonanê weçinıtan bımocne/bınımne",
+       "showhideselectedversions": "weçinaye revizyona bımotne/bınımne",
        "editundo": "Peyser bıgêre",
        "diff-empty": "(Babetna niyo)",
        "diff-multi-sameuser": "(Terefê eyni karberi ra {{PLURAL:$1|yew revizyono miyanên nêmocno|$1 revizyonê miyanêni nêmocnê}})",
        "prevn-title": "$1o verên  {{PLURAL:$1|netice|neticeyan}}",
        "nextn-title": "$1o ke yeno {{PLURAL:$1|netice|neticey}}",
        "shown-title": "Her pele sero $1 {{PLURAL:$1|netici|netica}} bımocne",
-       "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) bıvênên",
+       "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) bıviné",
        "searchmenu-exists": "''Ena 'Wikipediya de ser \"[[:$1]]\" yew pel esto'''",
        "searchmenu-new": "<strong>Na wiki de pela \"[[:$1]]\" vıraze!</strong> {{PLURAL:$2|0=|Sewbina pela ke şıma geyrayê cı aye bıvênê.|Yew zi neticanê cıgeyrayışê xo bıvênê.}}",
        "searchprofile-articles": "Pelê zerreki",
        "searchprofile-advanced-tooltip": "Cayê namanê xısusiyan de cı geyre",
        "search-result-size": "$1 ({{PLURAL:$2|1 çeku|$2 çekuy}})",
        "search-result-category-size": "{{PLURAL:$1|1 eza|$1 ezayan}} ({{PLURAL:$2|1 kategoriyê bini|$2 kategirayanê binan}}, {{PLURAL:$3|1 dosya|$3 dosyayan}})",
-       "search-redirect": "($1 ra kırışya ya)",
+       "search-redirect": "($1 ra kırışiyaya)",
        "search-section": "(qısmê $1)",
        "search-category": "(kategori $1)",
        "search-file-match": "(zerreyê dosya yewbini gêno)",
        "searchall": "pêro",
        "showingresults": "#<strong>$2</strong> netican ra {{PLURAL:$1|<strong>1</strong> netice cêr dero|<strong>$1</strong> neticey cêr derê}}.",
        "showingresultsinrange": "{{PLURAL:$1|<strong>1</strong> netice|<strong>$1</strong> neticey}} be mabeynê #<strong>$2</strong> ra be #<strong>$3</strong> cêr asenê.",
-       "search-showingresults": "{{PLURAL:$4|Netice <strong>$1</strong> be <strong>$3</strong>|Neticeyi <strong>$1 - $2</strong> be <strong>$3</strong>}}",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong>| <strong>$3</strong> netican ra <strong>$1 ra hetana $2</strong> asenê}}",
        "search-nonefound": "Zey perskerdışê şıma peyniye çıniya.",
        "search-nonefound-thiswiki": "Ena sita dı zey waşten da şıma theba nêvineya",
        "powersearch-legend": "Cıgeyrayışo hera",
-       "powersearch-ns": "Cayanê nameyan de cıgeyrayış:",
+       "powersearch-ns": "Cayanê naman de cıgeyrayış:",
        "powersearch-togglelabel": "Kontrol ke:",
        "powersearch-toggleall": "Pêro",
        "powersearch-togglenone": "Çıniyo",
        "prefs-user-pages": "Pelê karberi",
        "prefs-personal": "Profilê karberi",
        "prefs-rc": "Vurnayışê peyêni",
-       "prefs-watchlist": "Lista seyrkerdışi",
+       "prefs-watchlist": "Liste ya seyr kerdışi",
        "prefs-editwatchlist": "Lista seyrkerdışi bıvurne",
        "prefs-editwatchlist-label": "Listey serkerdışanê cıkewtışi timar kerê",
-       "prefs-editwatchlist-edit": "Sernamanê listey serkerdışanê xo bıasne u timar kerê",
+       "prefs-editwatchlist-edit": "Listey seyr kerdışê sernameyanê xo bımotné u timar kerê",
        "prefs-editwatchlist-raw": "Lista seyrkerdışia xame bıvurne",
        "prefs-editwatchlist-clear": "Lista serykerdışê xo pak kerê",
        "prefs-watchlist-days": "Rocê ke lista seyrkerdışi de bêrê ramocnaene",
        "group-bot": "Roboti",
        "group-sysop": "İdarekari",
        "group-bureaucrat": "Buroqrati",
-       "group-suppress": "Çımpawıtoği",
+       "group-suppress": "Pawıteri",
        "group-all": "(pêro)",
        "group-user-member": "{{GENDER:$1|karber}}",
        "group-autoconfirmed-member": "{{GENDER:$1|Karberê ke otomatikmen biyê araşt}}",
        "right-editmyuserjs": "JavaScript dosyaya karberinda ğo timar ke",
        "right-viewmywatchlist": "Lista seyr de xo bıvin",
        "right-editmywatchlist": "Listeya temaşiya karberinda ğo timar ke.Not  tay karfinayışi na icazet nédeyo zi pera dekeno de.",
-       "right-viewmyprivateinfo": "Bağse malumatané ğo bıasne (e-posta, nameyo raştay vs.)",
+       "right-viewmyprivateinfo": "Bağse malumatané ğo bımotné (e-posta, nameyo raştay vs.)",
        "right-editmyprivateinfo": "Melumatanê xoyê şexsiyan bıvurne (adresa e-postey, nameyo raştıkên uêb.)",
        "right-editmyoptions": "Tercihanê xo bıvurne",
        "right-rollback": "Lez/herbi vurnayışanê karberê peyêni tekrar bıke, oyo ke yew be yew pelê sero gureyao",
        "recentchanges-legend-heading": "<strong>Kıtabekê Vurriyayışê peyêni:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} Şıma şenê ([[Special:NewPages|Listey peranê  newan]] zi bıvinê)",
        "recentchanges-legend-plusminus": "''(±123)''",
-       "recentchanges-submit": "Bımocne",
+       "recentchanges-submit": "Bımotne",
        "rcnotefrom": "Cêr de <strong>$2</strong> ra nata {{PLURAL:$5|vurnayışiyê}} asenê (tewr vêşi <strong>$1</strong> asenê) <strong>$3, $4</strong>",
-       "rclistfrom": "$3 $2 ra tepiya vurnayışanê neweyan bımocne",
+       "rclistfrom": "$3 sehat $2 ra tepiya vurnayışanê neweyan bımotne",
        "rcshowhideminor": "Vurnayışê werdiy $1",
-       "rcshowhideminor-show": "Bımocne",
+       "rcshowhideminor-show": "Bımotne",
        "rcshowhideminor-hide": "Bınımne",
        "rcshowhidebots": "botan $1",
-       "rcshowhidebots-show": "Bımocne",
+       "rcshowhidebots-show": "Bımotne",
        "rcshowhidebots-hide": "Bınımne",
        "rcshowhideliu": "karberanê qeydina $1",
-       "rcshowhideliu-show": "Bımocne",
+       "rcshowhideliu-show": "Bımotne",
        "rcshowhideliu-hide": "Bınımne",
        "rcshowhideanons": "karberê bênamey $1",
-       "rcshowhideanons-show": "Bımocne",
+       "rcshowhideanons-show": "Bımotne",
        "rcshowhideanons-hide": "Bınımne",
        "rcshowhidepatr": "$1 vurnayışê ke dewriya geyrayê",
-       "rcshowhidepatr-show": "Bımocne",
+       "rcshowhidepatr-show": "Bımotne",
        "rcshowhidepatr-hide": "Bınımne",
        "rcshowhidemine": "vurnayışê mı $1",
-       "rcshowhidemine-show": "Bımocne",
+       "rcshowhidemine-show": "Bımotne",
        "rcshowhidemine-hide": "Bınımne",
-       "rcshowhidecategorization": "kategorizasyonê pele $1",
-       "rcshowhidecategorization-show": "Bımocne",
+       "rcshowhidecategorization": "kategorizasyoni $1",
+       "rcshowhidecategorization-show": "Bımotné",
        "rcshowhidecategorization-hide": "Bınımne",
-       "rclinks": "Peyniya $2 rocan de $1 vurriyayışan ra <br />$3 asenê",
+       "rclinks": "Peyni $2 rocan dı $1 vurriyayışan ra <br />$3 motnênê",
        "diff": "ferq",
        "hist": "verên",
        "hide": "Bınımne",
-       "show": "Bımocne",
+       "show": "Bımotne",
        "minoreditletter": "q",
        "newpageletter": "N",
        "boteditletter": "b",
        "recentchangeslinked-title": "Heqa \"$1\" de vurnayışi",
        "recentchangeslinked-summary": "Lista cêrêne, pela bêlikerdiye rê (ya zi karberanê kategoriya bêlikerdiye rê) pelanê gırêdayoğan de lista de vurnayışê peyênana.\n[[Special:Watchlist|Lista şımaya seyrkedışi de]] peli be nuşteyo '''qolınd''' bêli kerdê.",
        "recentchangeslinked-page": "Namey perrer:",
-       "recentchangeslinked-to": "Heruna pela ke yena dayene, vurnayışanê pelanê ke daye ra gırêdayiyê inan bımocne",
+       "recentchangeslinked-to": "Heruna perra kı yena dayene, vurnayışanê perranê ke daye ra gırêdayiyê inan bımotne",
        "recentchanges-page-added-to-category": "[[:$1]] kerd kategoriye miyan",
        "recentchanges-page-removed-from-category": "[[:$1]] kategoriye ra vet",
        "autochange-username": "MediaWiki vurnayışo otomatik",
-       "upload": "Dosye bıselagnê",
+       "upload": "Dosye bar kı",
        "uploadbtn": "Dosye bar kı",
        "reuploaddesc": "Barkerdışi iptal ke u peyser şo formê barkerdışi",
        "upload-tryagain": "Deskripyonê dosyayî ke vurîya ey qeyd bike",
        "filehist-help": "Seba diyayışê viyarteyê dosya tarixê ke qısımê tarix/zemani derê inan bıtıkne.",
        "filehist-deleteall": "pêro bestere",
        "filehist-deleteone": "bestere",
-       "filehist-revert": "reyna biyere",
+       "filehist-revert": "Peyd bıgi",
        "filehist-current": "nıkayên",
        "filehist-datetime": "Tarix/Zeman",
        "filehist-thumb": "Resmo qıckek",
        "shared-repo-name-wikimediacommons": "Wikimedia Commons",
        "filepage.css": "/* CSS placed here is included on the file description page, also included on foreign client wikis */",
        "upload-disallowed-here": "Şıma nêşenê serê na dosya ra bınusên.",
-       "filerevert": "$1 reyna biyere",
+       "filerevert": "$1 Peyd bıgi",
        "filerevert-legend": "Dosya raçarne",
        "filerevert-intro": "Ti ho ena dosyayê '''[[Media:$1|$1]]'''î  [$4 versiyonê $3, $2] rê reyna anî.",
        "filerevert-comment": "Sebeb:",
        "filerevert-defaultcomment": "Versiyonê $2, $1 rê reyna ard ($3)",
-       "filerevert-submit": "Reyna biyere",
+       "filerevert-submit": "Peyd bıgi",
        "filerevert-success": "'''[[Media:$1|$1]]''' peyser çarna ra [versiyonanê $4, $3, $2].",
        "filerevert-badversion": "Vesiyonê lokalê verniyê eno dosya pê ena pulêwext de çin o.",
        "filedelete": "$1 bestere",
        "randomredirect": "Serçarnayışo rastameye",
        "randomredirect-nopages": "Cayê nameyê \"$1\" de serşıkıtışi çıniyê.",
        "statistics": "İstatistiki",
-       "statistics-header-pages": "İstatıstıkê perrer",
+       "statistics-header-pages": "İstatistikê perer",
        "statistics-header-edits": "İstatistikê vurnayışan",
        "statistics-header-users": "İstatistikê karberi",
        "statistics-header-hooks": "Yewbina istatistiki",
-       "statistics-articles": "Meqaley",
-       "statistics-pages": "Peli",
-       "statistics-pages-desc": "Wiki de peley pêro, kategoriy, hetenayışi wesaire...",
-       "statistics-files": "Dosyayê bar biye",
+       "statistics-articles": "Perê zerreki",
+       "statistics-pages": "Peri",
+       "statistics-pages-desc": "Peri heme, kategoriy, şabloni, moduli uçb.",
+       "statistics-files": "Barneyaye dosyey",
        "statistics-edits": "Ronayen da {{SITENAME}} ra newke amora vıryayışan",
        "statistics-edits-average": "Her pele sero nısbi vurnayış",
        "statistics-users": "[[Special:ListUsers|Karber]]ê qeydıni",
        "withoutinterwiki": "Perrê ke zıwananê binan rê gıreyê cı çıni yo",
        "withoutinterwiki-summary": "Enê pelî ke versiyonê ziwanî binî ra link nidano.",
        "withoutinterwiki-legend": "Verole",
-       "withoutinterwiki-submit": "Bımocne",
+       "withoutinterwiki-submit": "Bımotne",
        "fewestrevisions": "Perrê kı tewr tayn timaryayê",
        "nbytes": "$1 {{PLURAL:$1|bayt|bayti}}",
        "ncategories": "$1 {{PLURAL:$1|Kategori|Kategoriy}}",
        "mostrevisions": "Pelan ke tewr zaf revizyonî biyê.",
        "prefixindex": "Verbenda pelli heme",
        "prefixindex-namespace": "Peleyê Veroleyıni ($1 cay nami)",
-       "prefixindex-submit": "Bımocne",
+       "prefixindex-submit": "Bımotne",
        "prefixindex-strip": "Listeya réz bıyayışi",
        "shortpages": "Pelê kılmi",
        "longpages": "Pelê dergi",
        "protectedpages-unknown-performer": "Karbero nêzanaye",
        "protectedtitles": "Sernameyê pawıteyi",
        "protectedtitlesempty": "pê ney parametreyan sernuşteyê pawite çinê",
-       "protectedtitles-submit": "Sernameyan bımocne",
+       "protectedtitles-submit": "Sereki bımotne",
        "listusers": "Listeyê Karberan",
-       "listusers-editsonly": "Teyna karberan bimucne ke ey nuştê",
+       "listusers-editsonly": "Teyna karberanê vurnayış kerdoğan bımotne",
        "listusers-creationsort": "goreyê wextê vıraştışi rêz ker",
        "listusers-desc": "Kemeyen rézed ratn",
        "usereditcount": "$1 {{PLURAL:$1|vurnayîş|vurnayîşî}}",
        "usercreated": "$2 de $1 {{GENDER:$3|viraziya}}",
        "newpages": "Perrê newey",
-       "newpages-submit": "Bımocne",
+       "newpages-submit": "Bımotne",
        "newpages-username": "Nameyê karberi:",
        "ancientpages": "Tewr pelê kıhani",
        "move": "Bıkırışe",
        "apihelp-no-such-module": "Modulê \"$1\" çıniyo.",
        "apisandbox": "API qumdor",
        "apisandbox-fullscreen": "Panela hera kerdışi",
-       "apisandbox-unfullscreen": "Pele bımocne",
+       "apisandbox-unfullscreen": "Perrer bımotne",
        "apisandbox-submit": "Bıwazê",
        "apisandbox-reset": "Bestere",
        "apisandbox-retry": "Fına",
        "specialloguserlabel": "Kerdoğ:",
        "speciallogtitlelabel": "Meqsed (sername ya zi {{ns:user}}:karberi rê nameyê karberi):",
        "log": "Qeydi",
-       "logeventslist-submit": "Bımocne",
-       "all-logs-page": "Rocekê degme pêron",
+       "logeventslist-submit": "Bımotne",
+       "all-logs-page": "Heme qeydê pêroyi",
        "alllogstext": "qey {{SITENAME}}i mocnayişê heme rocaneyani.\ntipa rocaneyi, nameyê karberi (herfa pil u qıci re hessas a), ya zi peli (reyna hessasiyê herfa pil u qıciyi) bıweçine u esayiş qıc kerê.",
        "logempty": "Qeydan dı malumato unasin çıni yo.",
        "log-title-wildcard": "Sernameyê ke be nê nuşteyi ra destkenê pê, cıgeyre",
-       "showhideselectedlogentries": "Qeydê weçinayışê bımocne/bınımne dekerê",
+       "showhideselectedlogentries": "Motnayışê qeydê weçinayışê cı kerdeyan bıvurne",
        "log-edit-tags": "Etiketanê weçinayê qeydan bıvurnê",
        "checkbox-select": "Weçinaye: $1",
        "checkbox-all": "Pêro",
        "allpages": "Pêro peli",
        "nextpage": "Pela badê cû ($1)",
        "prevpage": "Pela verêne ($1)",
-       "allpagesfrom": "Pera liste kerdışi bıasne:",
-       "allpagesto": "Pelanê ke be ena herfe qediyenê bımocne:",
-       "allarticles": "Peli pêro",
+       "allpagesfrom": "Herfa kı pa liste bo:",
+       "allpagesto": "Perranê ke ena herfe qediyenê bımotne:",
+       "allarticles": "Peri pêro",
        "allinnamespace": "Peli pênro ( $1 cayênameyî)",
        "allpagessubmit": "Şo",
        "allpagesprefix": "herfê ke şıma tiya de nuşti, pê ney herfan pelê ke destpêkenê liste ker:",
        "cachedspecial-viewing-cached-ts": "Na pela raşt niya, şımayê enewke versiyonê verhafızada na pela vinenê.",
        "cachedspecial-refresh-now": "Peyêni bıvin.",
        "categories": "Kategoriy",
-       "categories-submit": "Bımocne",
+       "categories-submit": "bımotne",
        "categoriespagetext": "{{PLURAL:$1|Kategoriya cêrene|Kategoriyanê cêrênan}} de peli ya zi medya estê.\n[[Special:UnusedCategories|Kategoriyê ke nêxebetiyenê]] tiya de nêmocniyayê.\n[[Special:WantedCategories|Kategoriyanê waşteyeyan]] de zi bıvêne.",
-       "categoriesfrom": "Kategoriyê ke be ninan dest pêkenê, bımocne:",
+       "categoriesfrom": "Kategoriyê ke ney ra sergendênê bımotne:",
        "deletedcontributions": "İştırakê karberi esterdi",
        "deletedcontributions-title": "İştırakê karberi esterdi",
        "sp-deletedcontributions-contribs": "iştiraki",
        "linksearch-line": "$1, $2 ra link biya",
        "linksearch-error": "jokeri têna nameyê makina ya serekini de aseni/eseni.",
        "listusersfrom": "karber ê ke pey ıney detpêkeni ramocın:",
-       "listusers-submit": "Bımocne",
+       "listusers-submit": "Bımotne",
        "listusers-noresult": "karber nêdiyayo/a.",
        "listusers-blocked": "(blok biy)",
        "activeusers": "Listey karberan de aktivan",
-       "activeusers-intro": "Ena yew listeya karberê ke $1 {{PLURAL:$1|roc|rocan}} ra tepya iştiraq kerdo ênan mocneno.",
+       "activeusers-intro": "Ena yew lista karberê ke $1 {{PLURAL:$1|roc|rocan}} ra tepiya iştirak kerdo inan motneno.",
        "activeusers-count": "Peyni  {{PLURAL:$3|roc de|$3 rocan de}} $1  {{PLURAL:$1|hereket kerdo|hereketi kerdê}}",
        "activeusers-from": "Enê karberi ra tepya bımocne:",
        "activeusers-noresult": "Karberi nêdiyayê.",
        "usermessage-editor": "Xeberdarê sistemi",
        "usermessage-template": "MediaWiki:UserMessage",
        "watchlist": "Listey pawıteyan",
-       "mywatchlist": "Lista mına cıewniyayışi",
+       "mywatchlist": "Seyr kerdışi",
        "watchlistfor2": "Qandê $1 ($2)",
        "nowatchlist": "listeya temaşa kerdıişê şıma de yew madde zi çina.",
        "watchlistanontext": "qey vurnayişê maddeya listeya temaşakerdiş ronıştış akerê",
        "wlnote": "$3 saete $4 ra dıme {{PLURAL:$2|yew saete de|'''$2''' saetan de}} {{PLURAL:$1|vurnayışo peyên|vurnayışê '''$1''' peyêni}} cêrderê.",
        "wlshowlast": "Peyni de  $1 seata u $2 roca  bıasne",
        "watchlist-hide": "Bınımne",
-       "watchlist-submit": "Bımocne",
+       "watchlist-submit": "Bımotne",
        "wlshowtime": "Periyoda zemani asenayışi:",
        "wlshowhideminor": "vurriyayışê werdiy",
        "wlshowhidebots": "boti",
        "delete-confirm": "\"$1\" bestere",
        "delete-legend": "Bestere",
        "historywarning": "'''Teme:''' Pela ke şıma esterenê tede yew viyarte be teqriben $1 {{PLURAL:$1|versiyon esto|versiyoni estê}}:",
-       "historyaction-submit": "Bımocne",
+       "historyaction-submit": "Bımotne",
        "confirmdeletetext": "Tı ho yew pele u tarixê pele wederneno.\nTı ra rica keno, tı zani tı ho sekeno, tı zani neticeyanê eno wedarnayışi u tı zani tı ser [[{{MediaWiki:Policy-url}}|poliçe]] kar keno.",
        "actioncomplete": "Kar bi temam",
        "actionfailed": "kar nêbı",
        "rollbackfailed": "Peyserardış nêbi",
        "cantrollback": "karbero peyin têna paşt dayo, no semedi ra vuriyayiş tepiya nêgeriyeni.",
        "alreadyrolled": "[[User:$2|$2]] ([[User talk:$2|Talk]]{{int:pipe-separator}} hetê [[Special:Contributions/$2|{{int:contribslink}}]]) ra pelê ıney[[:$1]] de vurnayiş biyo u no vurnayiş tepiya nêgeriyeno;\nyewna ten pel de vurnayiş kerdo u pel tepiya nêgeriyeno.\n\noyo ke vurnayişo peyin kerdo: [[User:$3|$3]] ([[User talk:$3|Talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
-       "editcomment": "Xulasaya vurnayışi: <em>$1</em>.",
+       "editcomment": "Xulasay vurnayışi: <em>$1</em> bi",
        "revertpage": "Hetê [[Special:Contributions/$2|$2]] ([[User talk:$2|Mesac]]) ra vurnayiş biyo u ney vurnayişi tepiya geriyayo u no [[User:$1|$1]] kes o ke cuwa ver revizyon kerdo revizyonê no kesi tepiya anciyayo.",
        "revertpage-nouser": "No keso ke vuriyayiş kerdo vuriyayişé{{GENDER:$1|[[User:$1|$1]]}} ker o",
        "rollback-success": "vurnayişê no kesi $1 tepiya geriyayo u hetê no\n$2 kesi ra cıwa ver o ke revizyon biyo no revizyon tepiya anciyayo.",
        "restriction-level-sysop": "tam pawiyayo",
        "restriction-level-autoconfirmed": "nêm pawiyayo",
        "restriction-level-all": "kamci be sewiya",
-       "undelete": "Peranê esteryayan bıasne",
+       "undelete": "Peranê esteryayan bımotné",
        "undeletepage": "bıewn revizyonê peli yê hewn a şiyayeyan u tepiya biyar",
        "undeletepagetitle": "'''pelo [[:$1|$1]] cêrın, wayirê revizyonê hewn a şiyayeyan o'''.",
-       "viewdeletedpage": "Pelanê esteriyayeyan bımocne",
+       "viewdeletedpage": "Perranê esteriyayan bıvin",
        "undeletepagetext": "{{PLURAL:$1|pelo|$1 pelo}} cerın hewn a şiyo labele hema zi arşiv de yo u tepiya geriyeno.\nArşiv daimi pak beno.",
        "undelete-fieldset-title": "revizyonan tepiya bar ker",
        "undeleteextrahelp": "Qey ardışê pel u verê pelani tuşê '''tepiya biya!'''yi bıtıknê. qey ciya ciya ardışê verê pelani zi qutiye tesdiqi nişane kerê u tuşê '''tepiya biya!'''yi bıtıknê '''''{{int:undeletebtn}}'''''.. qey hewn a kerdışê qutiya tesdiqan u qey sıfır kerdışê cayê sebebani zi tuşê '''agêr caverd/aça ker'''i bıtıknê '''''{{int:undeletebtn}}'''''..",
        "undelete-error-long": "hewn a kerdışê na dosyayi wexta tepiya geriyenê xeta vıraziya:\n\n$1",
        "undelete-show-file-confirm": "\"<nowiki>$1</nowiki>\" şıma emin î dosyaya revizyonê no $2 $3 tarixi bıvini?",
        "undelete-show-file-submit": "Eya",
-       "namespace": "Heruna namey",
+       "namespace": "Namey herun:",
        "invert": "Weçinayışi dimlaşt ke",
        "tooltip-invert": "nameyo ke nışan biyo (u nameyo elekeyın zi nışanyyayo se) vurnayışan  zerrekan nımtışi re ena dore tesdiqi nışan kerê",
        "namespace_association": "Heruna namanê elaqedaran",
        "tooltip-namespace_association": "Herunda canemiya elekeyın nışan kerdışi sero qıse kerdışi yana zerre dekerdışi rê ena dora tesdiqi nışan kerê",
        "blanknamespace": "(Wesiqe)",
-       "contributions": "İştırakê {{GENDER:$1|karber}}i",
-       "contributions-title": "Dekerdenê karber de $1",
+       "contributions": "İştirakê {{GENDER:$1|karber}}i",
+       "contributions-title": "Dekerdenê karberê  $1",
        "mycontris": "İştıraki",
        "anoncontribs": "İştıraki",
        "contribsub2": "Qandê {{GENDER:$3|$1}} ($2)",
        "nolinkshere-ns": "Ena cayê nameyî de yew pel zi '''[[:$1]]''' rê link nibeno.",
        "isredirect": "pera hetenayışi",
        "istemplate": "Açarnayene",
-       "isimage": "gıreyê dosya",
+       "isimage": "gırey dosye",
        "whatlinkshere-prev": "{{PLURAL:$1|veror|veror $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|verni|verni $1}}",
        "whatlinkshere-links": "← gırey",
        "whatlinkshere-hideredirs": "Hetenayışê $1",
        "whatlinkshere-hidetrans": "Çarnayışan $1",
        "whatlinkshere-hidelinks": "Gıreyê $1",
-       "whatlinkshere-hideimages": "Gıreyê dosya $1",
+       "whatlinkshere-hideimages": "Gıreyanê dosye $1",
        "whatlinkshere-filters": "Parzûn",
        "whatlinkshere-submit": "Şo",
        "autoblockid": "Otomatik vındarnayış #$1",
        "movenotallowedfile": "desturê şıma çino, şıma pelan bıkırışi",
        "cant-move-user-page": "desturê şıma çino, şıma pelanê karberani bıkırışi (bê pelê cerıni).",
        "cant-move-to-user-page": "desturê şıma çino, şıma yew peli bıkırışi pelê yew karberi.",
-       "movepage-max-pages": "tewr ziyed $1 {{PLURAL:$1|peli|peli}} kırışiya u hıni ziyedê ıney otomotikmen nêkırışiyeno.",
        "newtitle": "Sernameyo newe:",
        "move-watch": "Pela çıme u meqsedi seyr ke",
        "movepagebtn": "Pele bere",
        "movepage-page-exists": "maddeya $1i ca ra esta u newe ra otomatikmen nênusyena.",
        "movepage-page-moved": "pelê $1i kırışiya pelê $2i.",
        "movepage-page-unmoved": "pelê $1i nêkırışiyeno sernameyê $2i.",
+       "movepage-max-pages": "tewr ziyed $1 {{PLURAL:$1|peli|peli}} kırışiya u hıni ziyedê ıney otomotikmen nêkırışiyeno.",
        "movelogpage": "Qeydê wegrotışi",
-       "movelogpagetext": "nameyê liste ya ke cêr de yo, pelê vuriyayeyani mocneno",
+       "movelogpagetext": "Cêr de listê da kırşiyayışanê perran pêrıne esta.",
        "movesubpage": "{{PLURAL:$1|Subpage|pelê bınıni}}",
        "movesubpagetext": "{{PLURAL:$1|pelê bınıni yê|pelê bınıni yê}} no $1 peli cer de yo.",
        "movenosubpage": "pelê bınıni yê no peli çino.",
        "movereason": "Sebeb:",
-       "revertmove": "peyser biya",
+       "revertmove": "Peyd bıgi",
        "delete_and_move_text": "==gani hewn a bıbıo/bıesteriyo==\n\n\" no [[:$1]]\" name de yew pel ca ra esto. şıma wazeni pê hewn a kerdışê ey peli vurnayişê nameyi bıkeri?",
        "delete_and_move_confirm": "Eya, na pele bestere",
        "delete_and_move_reason": "\"[[$1]]\" qande nami re ca akerdışi re besteriyaye",
        "bad-target-model": "Hedefo ke waştiyayo zerreke cı babetna model karneno. Ke nêşeno $1 ra açarno $2.",
        "imagenocrossnamespace": "Dosya, ca yo ke qey nameyê dosyayan nêbıbo nêkırışiyeno",
        "nonfile-cannot-move-to-file": "Ekê dosya niyê, cade namande dosyaya nêahulneyênê",
-       "imagetypemismatch": "tipa dosyaya neweyi re pênêgıneno/nêgıneno pê",
+       "imagetypemismatch": "Tipê dosyey newey rê pê nêgıneno",
        "imageinvalidfilename": "nameyê dosyayi ya hedefi meqbul niyo.",
        "fix-double-redirects": "rayberdış ê ke sernameyê orjinali re işaret keni rocane bıker.",
        "move-leave-redirect": "pey de yew rayberdış roni",
        "tooltip-pt-mytalk": "Pela {{GENDER:|toya}} werênayışi",
        "tooltip-pt-anontalk": "vurnayiş ê ke no Ipadresi ra biyo muneqeşa bıker",
        "tooltip-pt-preferences": "Tercihê {{GENDER:|to}}",
-       "tooltip-pt-watchlist": "Lista pelanê ke to gırewtê seyrkerdış",
+       "tooltip-pt-watchlist": "Listey peranê ke to gırotê seyr kerdış",
        "tooltip-pt-mycontris": "Yew lista iştırakanê {{GENDER:|şıma}}",
        "tooltip-pt-login": "Mayê şıma ronıştış akerdışi rê dawet keme; labelê ronıştış mecburi niyo",
        "tooltip-pt-logout": "Bıveciye",
        "tooltip-ca-protect": "Ena pele bışevekne",
        "tooltip-ca-unprotect": "Starkerdışe ena peler bıvurne",
        "tooltip-ca-delete": "Ena pele bestere",
-       "tooltip-ca-undelete": "peli biyarê halê ver hewnakerdışi",
+       "tooltip-ca-undelete": "Perer fına zey verê esternayışi kerê",
        "tooltip-ca-move": "Ena pele bıkırışe",
        "tooltip-ca-watch": "Ena pele lista xoya seyrkerdışi ke",
        "tooltip-ca-unwatch": "Ena pele lista xoya seyrkerdışi ra vece",
        "tooltip-search": "{{SITENAME}} de cı geyre",
        "tooltip-search-go": "Ebe nê namey tami şo yew pela ke esta",
        "tooltip-search-fulltext": "Pelan miyan de nê metıni cı geyre",
-       "tooltip-p-logo": "Pela seri bıvêne",
+       "tooltip-p-logo": "Şo pela seri",
        "tooltip-n-mainpage": "Şo pela seri",
        "tooltip-n-mainpage-description": "Şo pela seri",
-       "tooltip-n-portal": "Heqa proceyi de, kes çı şeno bıkero, çı koti vêniyeno",
+       "tooltip-n-portal": "Heqa procey de, kes çı şeno bıkero, çı kamca vêniyeno",
        "tooltip-n-currentevents": "Vurnayışanê peyênan de melumatê pey bıvêne",
-       "tooltip-n-recentchanges": "Wiki de yew lista vurriyayışanê peyênan",
+       "tooltip-n-recentchanges": "Wiki dı yew lista vurnayışanê peyênan",
        "tooltip-n-randompage": "Pelê da raştameyiye bar ke",
-       "tooltip-n-help": "Cayê pesti gırotış",
+       "tooltip-n-help": "Caê doskerdışi",
        "tooltip-t-whatlinkshere": "Lista pelanê wikiya pêroina ke tiya gırê bena",
        "tooltip-t-recentchangeslinked": "Vurnayışê peyênê pelanê ke ena pela ra gırê biyê",
        "tooltip-feed-rss": "RSS feed qe ena pele",
        "tooltip-t-contributions": "{{GENDER:$1|Enê karberi}} ra listey iştirakan",
        "tooltip-t-emailuser": "Ena karber ri yew email bırış",
        "tooltip-t-upload": "Dosyeyan bar ke",
-       "tooltip-t-specialpages": "Yew lista pelanê xasanê pêroyinan",
-       "tooltip-t-print": "Versiyonê çapkerdışê ena pele",
+       "tooltip-t-specialpages": "Listeya peranê hısusiyan hemın",
+       "tooltip-t-print": "Versiyono perre ro ke nuşterniyaye.",
        "tooltip-t-permalink": "Gırêyo daimi be ena versiyonê pele",
        "tooltip-ca-nstab-main": "Pela zerreki bıvêne",
        "tooltip-ca-nstab-user": "Pela karberi bıvêne",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Kategoriya nımıtiye|Kategoriyê nımıtey}} ($1)",
        "pageinfo-templates": "{{PLURAL:$1|Şablono|Şablonê}} ke mocniyenê ($1)",
        "pageinfo-transclusions": "{{PLURAL:$1|1 Pele|$1 Pelan}} de bestiya pıra",
-       "pageinfo-toolboxlink": "Melumatê perrer",
+       "pageinfo-toolboxlink": "Melumatê perre",
        "pageinfo-redirectsto": "Beno hetê",
        "pageinfo-redirectsto-info": "melumat",
        "pageinfo-contentpage": "Zey jû pela zerreki hesebiyena",
        "variantname-shi": "shi",
        "metadata": "Melumato serên",
        "metadata-help": "Ena dosya dı zafyer informasyoni esto. Belki ena dosya yew kamareyo dijital ya zi skaner ra vıraziyo.\nEg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.",
-       "metadata-expand": "Detayan bıasne",
+       "metadata-expand": "Detayan bımotné",
        "metadata-collapse": "melumati bınımne",
        "metadata-fields": "Resımê meydanê metadataê ke na pele de benê lista, pela resımmocnaene de ke tabloê metadata gına waro, gureniyenê.\nÊ bini zey sayekerdoğan nımiyenê.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "metadata-langitem": "'''$2:''' $1",
        "version": "Versiyon",
        "version-extensions": "Ekstensiyonî ke ronaye",
        "version-skins": "Bar kerde bejni",
-       "version-specialpages": "Pelê hısusiy",
+       "version-specialpages": "Perê hısusiy",
        "version-parserhooks": "Çengelê Parserî",
        "version-variables": "Vurnayeyî",
        "version-antispam": "Spam vındarnayış",
        "fileduplicatesearch-result-1": "Dosyayê ''$1î'' de hem-kopya çini yo.",
        "fileduplicatesearch-result-n": "Dosyayê ''$1î'' de {{PLURAL:$2|1 hem-kopya|$2 hem-kopyayî'}} esto.",
        "fileduplicatesearch-noresults": "Ebe namey \"$1\" ra dosya nêdiyayê.",
-       "specialpages": "Pelê hısusiy",
+       "specialpages": "Perrê hısusi",
        "specialpages-note-top": "Kıtabek",
        "specialpages-note": "* Pelê xasê normali.\n* <span class=\"mw-specialpagerestricted\">Pelê xasê nımıtey.</span>",
        "specialpages-group-maintenance": "Raporê pawıtışi",
        "revdelete-summary-hid": "xulasaya vurnayışi nımıtiya",
        "revdelete-uname-hid": "nameyê karberi nımıteyo",
        "revdelete-content-unhid": "zerrek nênımıteyo",
-       "revdelete-summary-unhid": "xulasaya vurnayışi nênımıtiya",
+       "revdelete-summary-unhid": "xulasay vurnayışi musneyêna",
        "revdelete-uname-unhid": "nameyê karberi nênımıteyo",
        "revdelete-restricted": "vergırewtışê ke xızmekaran rê biye",
        "revdelete-unrestricted": "vergırewtışê ke xızmekaran rê dariyê we",
-       "logentry-move-move": "$1 pela $3 {{GENDER:$2|berd}} $4",
-       "logentry-move-move-noredirect": "Hetenayışi sera pela $3 ra $1 {{GENDER:$2|berd}} pela $4",
-       "logentry-move-move_redir": "Hetenayışi sera pela $3 ra $1 {{GENDER:$2|berd}} pela $4",
+       "logentry-move-move": "{| style=\"border:1px solid skyblue; margin-bottom: 1em\" cellspacing=\"0\" cellpadding=\"2\" width=\"60%\"\n\t\n| style=\"font: 100% verdana; color:black\" align=\"center\" bgcolor=\"greenyellow\" | $1,  pera $3'i {{GENDER:$2|kırışt}} $4\n|}",
+       "logentry-move-move-noredirect": "$1, pera $3'i bêhetenayış {{GENDER:$2|kırışt}} pera $4`i",
+       "logentry-move-move_redir": "Hetenayışi sera karber $1 pera $3'i  {{GENDER:$2|kırışt}} pera $4",
        "logentry-move-move_redir-noredirect": "Hetenayışi sera pela $3 ra $1 {{GENDER:$2|berd}} pela $4",
        "logentry-patrol-patrol": "$1 versiyono $4 ke {{GENDER:$2|nişan biyo}} pela $3 ra qontrol kerd",
        "logentry-patrol-patrol-auto": "Çımraviyarnayışê $4 pela $3 ke $1 otomatikman {{GENDER:$2|nişan biyo}} qontrol kerd",
        "revdelete-summary": "kılmvatışê vuriyayişi",
        "feedback-adding": "Pela rê peyxeberdar defêno...",
        "feedback-bugcheck": "Harika! Sadece [xırabina ke $1 ] çınyayışê cı kontrol keno.",
-       "feedback-bugnew": "Mı qontrol ke. Xetaya newi xeber ke",
+       "feedback-bugnew": "Mı kontrol kı. Xetay newi xeber kı.",
        "feedback-bugornote": "Jew mersela teferruato teknik esta şıma reca malumatê şıma hazıro se [ $1  jew xırab rapor] bıvinê.Zewbi zi, formê cerê xo rê şenê karfiyê. Vatışê xo pela da \"[ $3  $2 ]\", namey karber dê xoya piya u wasteriya karfiye.",
        "feedback-cancel": "Peyd kı",
        "feedback-close": "Biya star",
        "searchsuggest-search": "{{SITENAME}} de cı geyre",
        "searchsuggest-containing": "estebiyaye...",
        "api-error-badaccess-groups": "Ena wiki de dosya barkerdışi rê mısade nêdeyêno.",
-       "api-error-badtoken": "Xetaya zerreki: Antışo xırabın.",
+       "api-error-badtoken": "Xetay zerreki: Antışo xırabın.",
        "api-error-copyuploaddisabled": "URL barkerdış ena waster dı qefılyayo.",
        "api-error-duplicate": "Pele de xora be nê zerreki ra {{PLURAL:$1|dosyaya bine esta|dosyeyê bini estê}}.",
        "api-error-duplicate-archive": "Ena {{PLURAL:$1|vurneyaya zey na dosya|zerrey cı zey dosya}} aseno,feqet {{PLURAL:$1|ena dosya|tewr veri}} besterneyaya.",
        "api-error-ok-but-empty": "Xırabiya zerrek:Wastero cıwan nêdano.",
        "api-error-overwrite": "Ser yew dosyayê ke hama esta, ser ey qeyd nibena.",
        "api-error-stashfailed": "Xırabiya zerrek:Wasteri idari dosyey kerdi vıni.",
-       "api-error-publishfailed": "Xetaya zerrey: Cıgeyrayoği nêşiya dosyaya rocaniye akero.",
+       "api-error-publishfailed": "Xetay zerrey: Cıgeyrayoği nêşiya dosya rocane akero.",
        "api-error-stasherror": "Dosya embari rê ke bar biye xeta veciye.",
        "api-error-timeout": "Cıwab dayışê wasteri peyra mend.",
        "api-error-unclassified": "Yew xeteyê nizanyeni biya.",
index 40d6931..2f0c263 100644 (file)
@@ -7,7 +7,8 @@
                        "Ushau97",
                        "Zhatre",
                        "לערי ריינהארט",
-                       "Glaisher"
+                       "Glaisher",
+                       "MtDu"
                ]
        },
        "tog-hideminor": "ކުދި އުނި އިތުރުތައް އެންމެފަހުގެ ބަދަލުތަކުގެ ލިސްޓުން ފޮރުއްވަވާ",
        "namespaces": "ނަންސްޕޭސަސް",
        "errorpagetitle": "ކުށް",
        "returnto": "އަނބުރާ $1 އަށް ވަޑައިގަންނަވާ!",
-       "tagline": "ވިކިޕީޑިއާ އިން",
+       "tagline": "ވިކިޕީޑިއާ އިން{{SITENAME}}",
        "help": "އެހީ",
        "search": "ހޯއްދަވާ",
        "searchbutton": "ހޯއްދަވާ",
index e1fdc42..de4943d 100644 (file)
        "recentchanges-legend-unpatrolled": "{{int:recentchanges-label-unpatrolled}}",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "recentchanges-submit": "Show",
+       "rcfilters-activefilters": "Active filters",
+       "rcfilters-search-placeholder": "Filter recent changes (browse or start typing)",
+       "rcfilters-invalid-filter": "Invalid filter",
+       "rcfilters-filterlist-title": "Filters",
+       "rcfilters-filterlist-noresults": "No filters found",
+       "rcfilters-filtergroup-authorship": "Edit authorship",
+       "rcfilters-filter-editsbyself-label": "Your own edits",
+       "rcfilters-filter-editsbyself-description": "Edits by you.",
+       "rcfilters-filter-editsbyother-label": "Edits by others",
+       "rcfilters-filter-editsbyother-description": "Edits created by other users (not you.)",
        "rcnotefrom": "Below {{PLURAL:$5|is the change|are the changes}} since <strong>$3, $4</strong> (up to <strong>$1</strong> shown).",
        "rclistfrom": "Show new changes starting from $2, $3",
        "rcshowhideminor": "$1 minor edits",
        "apisandbox-sending-request": "Sending API request...",
        "apisandbox-loading-results": "Receiving API results...",
        "apisandbox-results-error": "An error occurred while loading the API query response: $1.",
+       "apisandbox-request-params-json": "JSON parameters:",
        "apisandbox-request-url-label": "Request URL:",
        "apisandbox-request-time": "Request time: {{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "Correct token and resubmit",
        "changecontentmodel-emptymodels-title": "No content models available",
        "changecontentmodel-emptymodels-text": "The content on [[:$1]] cannot be converted to any type.",
        "log-name-contentmodel": "Content model change log",
-       "log-description-contentmodel": "Events related to the content models of a page",
+       "log-description-contentmodel": "This page lists changes to the content model of pages, and pages that were created with a content model other than the default.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|created}} the page $3 using a non-default content model \"$5\"",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|changed}} the content model of the page $3 from \"$4\" to \"$5\"",
        "logentry-contentmodel-change-revertlink": "revert",
        "cant-move-to-category-page": "You do not have permission to move a page to a category page.",
        "cant-move-subpages": "You do not have permission to move subpages.",
        "namespace-nosubpages": "Namespace \"$1\" does not allow subpages.",
-       "movepage-max-pages": "The source page has more than the maximum $1 {{PLURAL:$1|subpage|subpages}}.",
        "newtitle": "New title:",
        "move-watch": "Watch source page and target page",
        "movepagebtn": "Move page",
        "pagelang-use-default": "Use default language",
        "pagelang-select-lang": "Select language",
        "pagelang-submit": "Submit",
+       "pagelang-nonexistent-page": "The page $1 does not exist.",
+       "pagelang-unchanged-language": "The page $1 is already set to language $2.",
+       "pagelang-unchanged-language-default": "The page $1 is already set to the wiki's default content language.",
+       "pagelang-db-failed": "The database failed to change the page language.",
        "right-pagelang": "Change page language",
        "action-pagelang": "change the page language",
        "log-name-pagelang": "Language change log",
        "sessionprovider-nocookies": "Cookies may be disabled. Ensure you have cookies enabled and start again.",
        "randomrootpage": "Random root page",
        "log-action-filter-block": "Type of block:",
-       "log-action-filter-contentmodel": "Type of contentmodel modification:",
+       "log-action-filter-contentmodel": "Type of content model change:",
        "log-action-filter-delete": "Type of deletion:",
        "log-action-filter-import": "Type of import:",
        "log-action-filter-managetags": "Type of tag management action:",
        "log-action-filter-block-block": "Block",
        "log-action-filter-block-reblock": "Block modification",
        "log-action-filter-block-unblock": "Unblock",
-       "log-action-filter-contentmodel-change": "Change of Contentmodel",
-       "log-action-filter-contentmodel-new": "Creation of page with non-standard Contentmodel",
+       "log-action-filter-contentmodel-change": "Change of content model",
+       "log-action-filter-contentmodel-new": "Creation of page with non-default content model",
        "log-action-filter-delete-delete": "Page deletion",
        "log-action-filter-delete-delete_redir": "Redirect overwrite",
        "log-action-filter-delete-restore": "Page undeletion",
index 67216ff..2056f6d 100644 (file)
        "cant-move-to-user-page": "Vi ne rajtas movi paĝon al uzantopaĝo (krom al uzantosubpaĝo).",
        "cant-move-category-page": "Vi ne rajtas movi kategoriajn paĝojn.",
        "cant-move-to-category-page": "Vi ne rajtas movi paĝon al kategoria paĝo.",
-       "movepage-max-pages": "La maksimumo de $1 {{PLURAL:$1|paĝo|paĝoj}} estis {{PLURAL:$1|alinomita|alinomitaj}} kaj neniuj pliaj estos alinomitaj aŭtomate.",
        "newtitle": "Nova titolo:",
        "move-watch": "Atenti ĉi tiun paĝon",
        "movepagebtn": "Alinomi paĝon",
        "movepage-page-exists": "La paĝo $1 jam ekzistas kaj ne povas esti aŭtomate anstataŭigita.",
        "movepage-page-moved": "La paĝo $1 estis alinomita al $2.",
        "movepage-page-unmoved": "La paĝo $1 ne povas esti alinomita al $2.",
+       "movepage-max-pages": "La maksimumo de $1 {{PLURAL:$1|paĝo|paĝoj}} estis {{PLURAL:$1|alinomita|alinomitaj}} kaj neniuj pliaj estos alinomitaj aŭtomate.",
        "movelogpage": "Protokolo pri paĝmovoj",
        "movelogpagetext": "Jen listo de movitaj paĝoj",
        "movesubpage": "{{PLURAL:$1|Subpaĝo|Subpaĝoj}}",
index 7f5f8b0..9a37b03 100644 (file)
        "emailnotauthenticated": "Aún no has confirmado tu dirección de correo electrónico.\nHasta que lo hagas, las siguientes funciones no estarán disponibles.",
        "noemailprefs": "Especifica una dirección electrónica para habilitar estas características.",
        "emailconfirmlink": "Confirmar dirección de correo electrónico",
-       "invalidemailaddress": "La dirección electrónica no puede ser aceptada, pues parece que tiene un formato no válido.\nPor favor, escribe una dirección en el formato adecuado o deja el campo en blanco.",
+       "invalidemailaddress": "No se puede aceptar la dirección de correo electrónico, pues parece que tiene un formato no válido.\nPor favor, escribe una dirección bien formada o deja el campo en blanco.",
        "cannotchangeemail": "En este wiki no se pueden cambiar las direcciones de correo electrónico de las cuentas de usuario.",
        "emaildisabled": "Este sitio no puede enviar correos electrónicos.",
        "accountcreated": "Se ha creado la cuenta",
        "resetpass-validity-soft": "Tu contraseña no es válida: $1\n\nCámbiala ahora por una nueva, o haz clic en \"{{int:authprovider-resetpass-skip-label}}\" para cambiarla más tarde.",
        "passwordreset": "Restablecer contraseña",
        "passwordreset-text-one": "Completa este formulario para recibir una contraseña temporal por correo electrónico.",
-       "passwordreset-text-many": "{{PLURAL:$1|Elige una de las opciones para recibir una contraseña temporal por correo electrónico.}}",
+       "passwordreset-text-many": "{{PLURAL:$1|Rellena uno de los campos para recibir una contraseña temporal por correo electrónico.}}",
        "passwordreset-disabled": "Se ha desactivado el restablecimiento de contraseñas en este wiki.",
        "passwordreset-emaildisabled": "Se han desactivado las funciones de correo electrónico en este wiki.",
        "passwordreset-username": "Nombre de usuario:",
        "content-json-empty-object": "Objeto vacío",
        "content-json-empty-array": "Matriz vacía",
        "deprecated-self-close-category": "Páginas que utilizan etiquetas HTML autocerradas no válidas",
-       "deprecated-self-close-category-desc": "Esta página contiene etiquetas HTML de autocierre inválidas, tales como <code>&lt;b/></code> o <code>&lt;span/></code>. El comportamiento de estas cambiará pronto para ser coherente con la especificación de HTML5, por lo que su utilización en el wikitexto está en desuso.",
+       "deprecated-self-close-category-desc": "Esta página contiene etiquetas HTML de autocierre no válidas, tales como <code>&lt;b/></code> o <code>&lt;span/></code>. El comportamiento de estas cambiará pronto para ser consistente con la especificación de HTML5, por lo que su utilización en el wikitexto está obsoleta.",
        "duplicate-args-warning": "<strong>Aviso:</strong> [[:$1]] llama a [[:$2]] con más de un valor para el parámetro «$3». Se usará solo el último valor proporcionado.",
        "duplicate-args-category": "Páginas que usan argumentos duplicados en invocaciones de plantillas",
        "duplicate-args-category-desc": "La página contiene invocaciones de plantillas que utilizan argumentos duplicados, como <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "userrights-user-editname": "Escribe un nombre de usuario:",
        "editusergroup": "Cargar grupos de usuarios",
        "editinguser": "Cambio de los permisos {{GENDER:$1|del usuario|de la usuaria}} <strong>[[User:$1|$1]]</strong> $2",
+       "viewinguserrights": "Visualización de los derechos {{GENDER:$1|del usuario|de la usuaria}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Modificar grupos {{GENDER:$1|del usuario| de la usuaria}}",
        "userrights-viewusergroup": "Ver grupos de usuarios",
        "saveusergroups": "Guardar grupos {{GENDER:$1|del usuario|de la usuaria}}",
        "right-autoconfirmed": "No resultar afectado por los límites de frecuencia de edición para las IP",
        "right-bot": "Ser tratado como un programa automático",
        "right-nominornewtalk": "No accionar el aviso de mensajes nuevos al realizar ediciones menores en páginas de discusión",
-       "right-apihighlimits": "Tener límites más altos para las peticiones a través de la API",
+       "right-apihighlimits": "Usar límites más altos en peticiones a través de la API",
        "right-writeapi": "Hacer uso de la API de escritura",
        "right-delete": "Borrar páginas",
        "right-bigdelete": "Borrar páginas con historiales grandes",
        "right-editusercssjs": "Editar las páginas de CSS y JavaScript de otros usuarios",
        "right-editusercss": "Editar las páginas de CSS de otros usuarios",
        "right-edituserjs": "Editar las páginas de JavaScript de otros usuarios",
-       "right-editmyusercss": "Editar tus páginas de CSS",
+       "right-editmyusercss": "Editar tus archivos CSS",
        "right-editmyuserjs": "Editar tus archivos JavaScript",
        "right-viewmywatchlist": "Ver tu lista de seguimiento",
        "right-editmywatchlist": "Editar tu lista de seguimiento. Algunas acciones seguirán agregando páginas aun sin este permiso.",
        "right-managechangetags": "Crear y (des)activar [[Special:Tags|etiquetas]]",
        "right-applychangetags": "Aplicar [[Special:Tags|etiquetas]] junto con los cambios propios",
        "right-changetags": "Agregar y quitar [[Special:Tags|etiquetas]] arbitrarias a revisiones individuales y entradas del registro",
-       "right-deletechangetags": "Eliminar [[Special:Tags|tags]] de la base de datos",
+       "right-deletechangetags": "Eliminar [[Special:Tags|etiquetas]] de la base de datos",
        "grant-generic": "Paquete de permisos \"$1\"",
        "grant-group-page-interaction": "Interactuar con páginas",
        "grant-group-file-interaction": "Interactuar con multimedia",
        "statistics-users-active-desc": "Usuarios que han ejecutado una acción en {{PLURAL:$1|el último día|los últimos $1 días}}",
        "pageswithprop": "Páginas con una propiedad de página",
        "pageswithprop-legend": "Páginas con una propiedad de página",
-       "pageswithprop-text": "Esta página muestra las páginas que usan la propiedad de una página en particular",
+       "pageswithprop-text": "Esta página muestra las páginas que usan una determinada propiedad de página.",
        "pageswithprop-prop": "Nombre de la propiedad:",
        "pageswithprop-submit": "Ir",
        "pageswithprop-prophidden-long": "hay un largo valor en la propiedad texto oculta ($1)",
        "apisandbox-alert-field": "El valor de este campo no es válido.",
        "apisandbox-continue": "Continuar",
        "apisandbox-continue-clear": "Vaciar",
+       "apisandbox-continue-help": "{{int:apisandbox-continue}} [https://www.mediawiki.org/wiki/API:Query#Continuing_queries continuará] la última petición; {{int:apisandbox-continue-clear}} borrará los parámetros relativos a la continuación.",
        "apisandbox-param-limit": "Escribe <kbd>max</kbd> para usar el límite máximo.",
        "apisandbox-multivalue-all-namespaces": "$1 (Todos los espacios de nombres)",
        "apisandbox-multivalue-all-values": "$1 (Todos los valores)",
        "allpagesbadtitle": "El título dado era inválido o tenía un prefijo de enlace inter-idioma o inter-wiki. Puede contener uno o más caracteres que no se pueden usar en títulos.",
        "allpages-bad-ns": "{{SITENAME}} no tiene un espacio de nombres llamado «$1».",
        "allpages-hide-redirects": "Ocultar redirecciones",
-       "cachedspecial-viewing-cached-ttl": "Usted está viendo una versión en caché de esta página, que puede tener hasta  $1 días de antigüedad.",
+       "cachedspecial-viewing-cached-ttl": "Estás viendo una versión de esta página que está almacenada en caché y que puede tener hasta $1 de antigüedad.",
        "cachedspecial-viewing-cached-ts": "Está viendo una versión en caché de esta página, que puede no estar completamente actualizada.",
-       "cachedspecial-refresh-now": "Ver lo más reciente.",
+       "cachedspecial-refresh-now": "Ver la más reciente.",
        "categories": "Categorías",
        "categories-submit": "Mostrar",
        "categoriespagetext": "Las siguientes {{PLURAL:$1|categoría contiene|categorías contienen}} páginas o medios.\nNo se muestran aquí las [[Special:UnusedCategories|categorías sin uso]].\nVéanse también las [[Special:WantedCategories|categorías requeridas]].",
        "changecontentmodel-emptymodels-title": "No hay modelos de contenido disponibles",
        "changecontentmodel-emptymodels-text": "El contenido de [[:$1]] no se puede convertir a ningún tipo.",
        "log-name-contentmodel": "Registro de cambios del modelo de contenido",
-       "log-description-contentmodel": "Eventos relacionados con los modelos de contenido de una página",
+       "log-description-contentmodel": "Esta página muestra cambios en el modelo de contenido de las páginas, así como las páginas creadas con un modelo de contenido distinto del estándar.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|creó}} la página $3 usando un modelo de contenido no predeterminado \"$5\"",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|cambió}} el modelo de contenido de la página $3 de \"$4\" a \"$5\"",
        "logentry-contentmodel-change-revertlink": "revertir",
        "unblock": "Desbloquear usuario",
        "blockip": "Bloquear {{GENDER:$1|al usuario|a la usuaria}}",
        "blockip-legend": "Bloquear usuario",
-       "blockiptext": "Usa el siguiente formulario para bloquear el acceso de escritura desde una dirección IP específica o nombre de usuario.\nEsto debería hacerse sólo para prevenir vandalismos, y de acuerdo a las [[{{MediaWiki:Policy-url}}|políticas]].\nExplica la razón específica del bloqueo (por ejemplo, citando las páginas en particular que han sido objeto de vandalismo).\nPuedes bloquear intervalos IP con la sintaxis [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; el intervalo más grande permitido es /$1 para IPv4 y /$2 para IPv6.",
+       "blockiptext": "Utiliza el siguiente formulario para bloquear el acceso de escritura a un determinado usuario o dirección IP.\nEsto debería hacerse solo para prevenir vandalismo y de acuerdo a las [[{{MediaWiki:Policy-url}}|políticas]].\nExplica la razón específica del bloqueo (por ejemplo, citando las páginas en particular que han sido objeto de vandalismo).\nPuedes bloquear intervalos IP con la sintaxis [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; el intervalo más grande permitido es /$1 para IPv4 y /$2 para IPv6.",
        "ipaddressorusername": "Dirección IP o nombre de usuario:",
        "ipbexpiry": "Caducidad:",
        "ipbreason": "Motivo:",
        "cant-move-to-user-page": "No tienes permiso para trasladar una página a una página de usuario (excepto a subpáginas de usuario).",
        "cant-move-category-page": "No tienes permiso para trasladar páginas de categoría.",
        "cant-move-to-category-page": "No tienes permiso para trasladar una página a una página de categoría.",
-       "movepage-max-pages": "Se {{PLURAL:$1|ha trasladado un máximo de una página|han trasladado un máximo de $1 páginas}}, y no van a trasladarse más automáticamente.",
+       "cant-move-subpages": "No tienes permiso para trasladar subpáginas.",
+       "namespace-nosubpages": "El espacio de nombres «$1» no permite subpáginas.",
        "newtitle": "Título nuevo:",
        "move-watch": "Vigilar páginas de origen y destino",
        "movepagebtn": "Renombrar página",
        "movepage-page-exists": "La página $1 ya existe, por lo que no puede ser renombrada automáticamente.",
        "movepage-page-moved": "La página $1 ha sido trasladada a $2.",
        "movepage-page-unmoved": "La página $1 no se ha podido trasladar a $2.",
+       "movepage-max-pages": "Se {{PLURAL:$1|ha trasladado un máximo de una página|han trasladado un máximo de $1 páginas}}, y no van a trasladarse más automáticamente.",
        "movelogpage": "Registro de traslados",
        "movelogpagetext": "Abajo se encuentra una lista de páginas trasladadas.",
        "movesubpage": "{{PLURAL:$1|Subpágina|Subpáginas}}",
        "log-show-hide-patrol": "$1 registro de verificación",
        "log-show-hide-tag": "$1 registro de etiquetas",
        "confirm-markpatrolled-button": "Aceptar",
-       "confirm-markpatrolled-top": "marcar la revisión $3 de $2 como revisada?",
+       "confirm-markpatrolled-top": "¿Marcar la revisión $3 de $2 como verificada?",
        "deletedrevision": "Borrada revisión antigua $1",
        "filedeleteerror-short": "Error al borrar el archivo: $1",
        "filedeleteerror-long": "Se han producido errores mientras se borraba el archivo:\n\n$1",
        "watchlistedit-normal-done": "{{PLURAL:$1|1 página ha sido borrada|$1 páginas han sido borradas}} de tu lista de seguimiento:",
        "watchlistedit-raw-title": "Editar lista de seguimiento en crudo",
        "watchlistedit-raw-legend": "Editar tu lista de seguimiento en modo texto",
-       "watchlistedit-raw-explain": "A continuación se listan las páginas en tu lista de seguimiento. Esta lista puede editarse añadiendo o eliminando líneas de la lista;\nun título por línea.\nCuando acabes, pulsa «{{int:Watchlistedit-raw-submit}}».\nTambién puedes [[Special:EditWatchlist|usar el editor estándar]].",
+       "watchlistedit-raw-explain": "A continuación se muestran los títulos de las páginas en tu lista de seguimiento. Puedes editar la lista añadiendo o eliminando títulos de la lista (un título por línea).\nCuando acabes, pulsa «{{int:Watchlistedit-raw-submit}}».\nTambién puedes [[Special:EditWatchlist|usar el editor estándar]].",
        "watchlistedit-raw-titles": "Páginas:",
        "watchlistedit-raw-submit": "Actualizar lista de seguimiento",
        "watchlistedit-raw-done": "Tu lista de seguimiento se ha actualizado.",
        "version-libraries-license": "Licencia",
        "version-libraries-description": "Descripción",
        "version-libraries-authors": "Autores",
-       "redirect": "Redirigir por archivo, o identificador de usuario, página, revisión o registro",
+       "redirect": "Redirigir por archivo o por identificador de usuario, página, revisión o registro.",
        "redirect-summary": "Esta página especial redirige a un archivo (dado un nombre), a una página (dado un identificador de revisión o de página), a una página de usuario (dado un identificador numérico de usuario) o a una entrada del registro (dado un identificador de registro). Uso: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]] o [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Ir",
        "redirect-lookup": "Buscar:",
        "redirect-value": "Valor:",
-       "redirect-user": "Id. del usuario",
+       "redirect-user": "Identificador del usuario",
        "redirect-page": "Identificador de la página",
        "redirect-revision": "Revisión de página",
-       "redirect-file": "Nombre de archivo",
+       "redirect-file": "Nombre del archivo",
        "redirect-logid": "Identificador de registro",
        "redirect-not-exists": "No se encontró el valor",
        "fileduplicatesearch": "Búsqueda de archivos duplicados",
        "api-error-unclassified": "Ocurrió un error desconocido.",
        "api-error-unknown-code": "Error desconocido: «$1»",
        "api-error-unknown-error": "Error interno: Algo salió mal al intentar cargar el archivo.",
-       "api-error-unknown-warning": "Advertencia desconocida: $1",
+       "api-error-unknown-warning": "Advertencia desconocida: «$1».",
        "api-error-unknownerror": "Error desconocido: «$1».",
        "api-error-uploaddisabled": "Las subidas están desactivadas en este wiki.",
        "api-error-verification-error": "Este archivo puede estar dañado, o tiene una extensión incorrecta.",
        "default-skin-not-found-no-skins": "¡Vaya! La apariencia predeterminada de tu wiki, definida en <code>$wgDefaultSkin</code> como <code>$1</code>, no está disponible.\n\nNo tienes apariencias instaladas.\n\n; Si has instalado o actualizado MediaWiki recientemente:\n: Probablemente has instalado desde git, o directamente desde el código fuente usando algún otro método. Esto puede ocurrir en este caso. A partir de MediaWiki 1.24 ya no se incluye ninguna apariencia en el repositorio principal. Trata de instalar algunas apariencias desde el [https://www.mediawiki.org/wiki/Category:All_skins directorio de apariencias de mediawiki.org], ya sea:\n:* Descargando el [https://www.mediawiki.org/wiki/Download instalador tarball], que viene con varias apariencias y extensiones. Puedes copiar y pegar el directorio <code>skins/</code> desde ahí.\n:* Descargando tarballs individuales de cada apariencia de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Usando Git para descargar apariencias].\n: Hacer esto no debería interferir con tu repositorio de MediaWiki si eres un desarrollador de MediaWiki. Revisa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Configuración de apariencias] para información sobre cómo habilitar las apariencias y seleccionar la predeterminada.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activada)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>desactivada</strong>)",
-       "mediastatistics": "Estadísticas de multimedia",
-       "mediastatistics-summary": "Estadísticas sobre los tipos de archivos cargados. Sólo se incluyen las versiones más recientes. Los archivos antiguos o eliminados están excluidos.",
+       "mediastatistics": "Estadísticas multimedia",
+       "mediastatistics-summary": "Estadísticas sobre los tipos de archivos cargados. Solo se tiene en cuenta la versión más reciente de cada archivo. Los archivos antiguos o eliminados están excluidos.",
        "mediastatistics-nfiles": "$1 ($2 %)",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 ''byte''|$1 ''bytes''}} ($2; $3 %)",
        "mediastatistics-bytespertype": "Tamaño de archivo total para esta sección: {{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%).",
        "sessionprovider-nocookies": "Puede que las cookies estén desactivadas. Actívalas y comienza de nuevo.",
        "randomrootpage": "Página raíz aleatoria",
        "log-action-filter-block": "Tipo de bloqueo:",
-       "log-action-filter-contentmodel": "Tipo de contentmodel modificación:",
+       "log-action-filter-contentmodel": "Tipo de modificación del modelo de contenido:",
        "log-action-filter-delete": "Tipo de eliminación:",
        "log-action-filter-import": "Tipo de importación:",
        "log-action-filter-managetags": "Tipo de administración de la etiqueta de acción:",
        "log-action-filter-block-reblock": "Modificación de bloqueo",
        "log-action-filter-block-unblock": "Desbloquear",
        "log-action-filter-contentmodel-change": "Cambio de modelo de contenido",
-       "log-action-filter-contentmodel-new": "Creación de página con modelo de contenidos no estándar",
+       "log-action-filter-contentmodel-new": "Creación de página con modelo de contenido no estándar",
        "log-action-filter-delete-delete": "Eliminación de páginas",
        "log-action-filter-delete-delete_redir": "Sobrescritura de la redirección",
        "log-action-filter-delete-restore": "Restauración de páginas",
index a155678..0ab9653 100644 (file)
        "cant-move-to-user-page": "Sul ei ole õigust teisaldada lehekülge kasutajaleheks (ei käi kasutaja alamlehe kohta).",
        "cant-move-category-page": "Sul pole õigust kategoorialehekülgi teisaldada.",
        "cant-move-to-category-page": "Sul pole õigust teisaldada lehekülge kategoorialeheküljele.",
-       "movepage-max-pages": "Teisaldatud on $1 {{PLURAL:$1|lehekülg|lehekülge}}, mis on teisaldatavate lehekülgede ülemmäär. Rohkem lehekülgi automaatselt ei teisaldata.",
        "newtitle": "Uus pealkiri:",
        "move-watch": "Jälgi lähte- ja sihtlehekülge",
        "movepagebtn": "Teisalda lehekülg",
        "movepage-page-exists": "Lehekülg $1 on juba olemas ja seda ei saa automaatselt üle kirjutada.",
        "movepage-page-moved": "Lehekülg $1 on teisaldatud pealkirja $2 alla.",
        "movepage-page-unmoved": "Lehekülge $1 ei saanud teisaldada pealkirja $2 alla.",
+       "movepage-max-pages": "Teisaldatud on $1 {{PLURAL:$1|lehekülg|lehekülge}}, mis on teisaldatavate lehekülgede ülemmäär. Rohkem lehekülgi automaatselt ei teisaldata.",
        "movelogpage": "Teisaldamislogi",
        "movelogpagetext": "See logi sisaldab infot lehekülgede teisaldamistest.",
        "movesubpage": "{{PLURAL:$1|Alamlehekülg|Alamleheküljed}}",
index d713023..5269c65 100644 (file)
        "virus-scanfailed": "eskaneatze txarra ($1 kodea)",
        "virus-unknownscanner": "antibirus ezezaguna:",
        "logouttext": "'''Saioa itxi egin duzu.'''\n\nJakin ezazu hainbat orrialdetan ager daitekela oraindik saioa ez duzula itxi, zure nabigatzailearen katxea garbitzen ez duzun arte.",
+       "cannotlogoutnow-title": "Ezin da saioa itxi orain",
+       "cannotlogoutnow-text": "Saioa ezin da itxi $1 erabiltzean.",
        "welcomeuser": "Ongi etorri, $1!",
        "welcomecreation-msg": "Zure kontua sortua izan da.\nEz ezazu ahaztu zure [[Special:Preferences|{{SITENAME}} hobespenak]] aldatzea.",
        "yourname": "Erabiltzaile izena",
        "createacct-yourpasswordagain-ph": "Sartu pasahitza berriro ere",
        "userlogin-remembermypassword": "Manten nazazu barruan",
        "userlogin-signwithsecure": "Erabili konexio ziurra",
+       "cannotlogin-title": "Ezin da saioa hasi",
+       "cannotlogin-text": "Saioa hastea ez da posible izan.",
+       "cannotloginnow-title": "Ezin da saioa hasi orain",
+       "cannotloginnow-text": "Saioa ezin da hasi $1 erabiltzean.",
+       "cannotcreateaccount-title": "Kontuak ezin dira sortu",
        "yourdomainname": "Zure domeinua",
        "password-change-forbidden": "Ezin duzu pasahitzarik aldatu wiki honetan.",
        "externaldberror": "Kanpoko datu-base autentifikazio errorea gertatu da edo ez duzu zure kanpo kontua eguneratzeko baimenik.",
        "login": "Hasi saioa",
+       "login-security": "Zure nortasuna egiaztatu",
        "nav-login-createaccount": "Hasi saioa / sortu kontua",
        "userlogin": "Saioa hasi / kontua sortu",
        "userloginnocreate": "Hasi saioa",
        "prefs-help-prefershttps": "Hobespen hauek eragina izango dute sartzen zaren hurrengoan.",
        "prefs-tabs-navigation-hint": "Gomendioa: Fitxen zerrendan nabigatzeko ezker eta eskuin geziak erabil ditzakezu.",
        "userrights": "Erabiltzaile baimenen kudeaketa",
-       "userrights-lookup-user": "Erabiltzaile taldeak kudeatu",
+       "userrights-lookup-user": "Erabiltzailea aukeratu",
        "userrights-user-editname": "Erabiltzaile izena idatzi:",
-       "editusergroup": "{{GENDER:$1|Erabiltzaile}} taldeak editatu",
-       "editinguser": "'''[[User:$1|$1]]''' $2 lankidearen erabiltzaile-eskubideak aldatzen",
+       "editusergroup": "Erabiltzaile taldeak kargatu",
+       "editinguser": "<strong>[[User:$1|$1]]</strong> $2 {{GENDER:$1|lankidearen}} erabiltzaile-eskubideak aldatzen",
        "userrights-editusergroup": "Erabiltzaile taldeak editatu",
        "saveusergroups": "Erabiltzaile {{GENDER:$1|taldeak}} gorde",
        "userrights-groupsmember": "Ondorengo talde honetako kide da:",
        "action-upload_by_url": "URL helbide batetik fitxategi hau igo",
        "action-writeapi": "idazteko APIa erabili",
        "action-delete": "orrialde hau ezabatu",
-       "action-deleterevision": "berrikuspen hau ezabatu",
-       "action-deletedhistory": "ikusi orri honen historia ezabatua",
+       "action-deleterevision": "berrikuspenak ezabatu",
+       "action-deletedhistory": "ikusi orri baten historia ezabatua",
        "action-browsearchive": "ezabatutako orrialdeak bilatu",
-       "action-undelete": "ezabatutako orrialde hau bergaitu",
-       "action-suppressrevision": "izkutuko berrikuspen hau berrikusi eta gaitu",
+       "action-undelete": "Orrialdeak birgaitu",
+       "action-suppressrevision": "Ezkutuko berrikuspenak berrikusi eta birgaitu",
        "action-suppressionlog": "log pribatu hau ikusi",
        "action-block": "lankide honi aldaketak egitea ekidin",
        "action-protect": "orrialde honetako babes mailak aldatu",
        "sp-contributions-newbies-title": "Lankideen ekarpenak lankide berrietn",
        "sp-contributions-blocklog": "Blokeaketa erregistroa",
        "sp-contributions-suppresslog": "{{GENDER:$1|(r)en}} lankide-ekarpen ezabatuak",
-       "sp-contributions-deleted": "lankide-ekarpen ezabatuak",
+       "sp-contributions-deleted": "{{GENDER:$1|lankide}}-ekarpen ezabatuak",
        "sp-contributions-uploads": "igoerak",
        "sp-contributions-logs": "erregistroak",
        "sp-contributions-talk": "eztabaida",
        "cant-move-user-page": "Ez duzu lankide orrialdeak mugitzeko eskumenik (azpiorrialdeetatik at).",
        "cant-move-to-user-page": "Ez duzu orrialde bat lankide orrialde batera mugitzeko eskumenik (lankide azpiorrialde batera izan ezik).",
        "cant-move-to-category-page": "Ez duzu baimenik orrialde bat kategoria-orrialde batera mugitzeko.",
-       "movepage-max-pages": "$1 {{PLURAL:$1|orrialderen|orrialdeen}} kopuru maximoa jada mugitu da, eta ez dira gehiago mugituko modu automatikoan.",
        "newtitle": "Izenburu berria:",
        "move-watch": "Orrialde hau jarraitu",
        "movepagebtn": "Mugitu orria",
        "movepage-page-exists": "$1 orrialdea jada badago eta ezin da automatikoki gainetik idatzi.",
        "movepage-page-moved": "«$1» orria «$2» izenera aldatu da.",
        "movepage-page-unmoved": "$1 orrialdea ezin da $2(e)ra mugitu.",
+       "movepage-max-pages": "$1 {{PLURAL:$1|orrialderen|orrialdeen}} kopuru maximoa jada mugitu da, eta ez dira gehiago mugituko modu automatikoan.",
        "movelogpage": "Mugimendu erregistroa",
        "movelogpagetext": "Mugitutako orrialdeen zerrenda bat azaltzen da jarraian.",
        "movesubpage": "{{PLURAL:$1|Azpiorrialde|Azpiorrialdeak}}",
index 7bff637..f33653a 100644 (file)
        "cant-move-to-user-page": "شما اجازه ندارید که یک صفحه را به یک صفحهٔ کاربر انتقال دهید (به استثنای زیر صفحه‌های کاربری).",
        "cant-move-category-page": "شما اجازهٔ انتقال دادن صفحهٔ رده‌ها را ندارید.",
        "cant-move-to-category-page": "شما مجوز برای انتقال صفحه به صفحه رده ندارید.",
-       "movepage-max-pages": "حداکثر تعداد صفحه‌های ممکن ($1 {{PLURAL:$1|صفحه|صفحه}}) که می‌توان انتقال داد منتقل شدند و صفحه‌های دیگر را نمی‌توان به طور خودکار منتقل کرد.",
        "newtitle": "عنوان تازه:",
        "move-watch": "پی‌گیری صفحه‌های مبدأ و مقصد",
        "movepagebtn": "صفحه منتقل شود",
        "movepage-page-exists": "صفحهٔ $1 از قبل وجود دارد و نمی‌تواند به طور خودکار جایگزین شود.",
        "movepage-page-moved": "صفحهٔ $1 به $2 انتقال یافت.",
        "movepage-page-unmoved": "صفحهٔ $1 را نمی‌توان به $2 انتقال داد.",
+       "movepage-max-pages": "حداکثر تعداد صفحه‌های ممکن ($1 {{PLURAL:$1|صفحه|صفحه}}) که می‌توان انتقال داد منتقل شدند و صفحه‌های دیگر را نمی‌توان به طور خودکار منتقل کرد.",
        "movelogpage": "سیاههٔ انتقال",
        "movelogpagetext": "در زیر فهرستی از انتقال صفحات آمده‌است.",
        "movesubpage": "{{PLURAL:$1|زیرصفحه|زیرصفحه‌ها}}",
        "revdelete-restricted": "مدیران را محدود کرد",
        "revdelete-unrestricted": "محدودیت مدیران را لغو کرد",
        "logentry-block-block": "$1 {{GENDER:$4|$3}} را تا $5 {{GENDER:$2|بست}} $6",
-       "logentry-block-unblock": "$1 {{GENDER:$2|بازکرد}} {{GENDER:$4|$3}}",
+       "logentry-block-unblock": "$1 {{GENDER:$4|$3}} را {{GENDER:$2|بازکرد}}",
        "logentry-block-reblock": "$1 {{GENDER:$2|تنظیمات}} بستن {{GENDER:$4|$3}} را به پایان قطع دسترسی $5 $6 تغییر داد.",
        "logentry-suppress-block": "$1 {{GENDER:$2|بسته شد}} {{GENDER:$4|$3}} با پایان قطع دسترسی در زمان $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|تنظیمات}} بستن برای  {{GENDER:$4|$3}} به پایان قطع دسترسی  $5 $6 تغییر یافت",
index b53e692..fdd94bc 100644 (file)
        "cant-move-to-user-page": "Sinulla ei ole oikeutta siirtää sivua käyttäjäsivuksi (paitsi käyttäjän alasivuksi).",
        "cant-move-category-page": "Sinulla ei ole oikeutta siirtää luokkien sivuja.",
        "cant-move-to-category-page": "Sinulla ei ole oikeutta siirtää sivua luokkasivuksi.",
-       "movepage-max-pages": "Enimmäismäärä sivuja on siirretty, eikä enempää siirretä enää automaattisesti.\n$1 {{PLURAL:$1|sivu|sivua}} siirrettiin.",
        "newtitle": "Uusi nimi sivulle:",
        "move-watch": "Tarkkaile tätä sivua",
        "movepagebtn": "Siirrä sivu",
        "movepage-page-exists": "Sivu $1 on jo olemassa ja sen päälle ei voida automaattisesti siirtää.",
        "movepage-page-moved": "Sivu $1 on siirretty nimelle $2.",
        "movepage-page-unmoved": "Sivua $1 ei voitu siirtää nimelle $2.",
+       "movepage-max-pages": "Enimmäismäärä sivuja on siirretty, eikä enempää siirretä enää automaattisesti.\n$1 {{PLURAL:$1|sivu|sivua}} siirrettiin.",
        "movelogpage": "Siirtoloki",
        "movelogpagetext": "Tämä on luettelo kaikista sivujen siirroista.",
        "movesubpage": "{{PLURAL:$1|Alasivu|Alasivut}}",
index c822829..99f1c8f 100644 (file)
        "apisandbox-sending-request": "Envoi de la requête à l'API...",
        "apisandbox-loading-results": "Réception des résultats de l'API...",
        "apisandbox-results-error": "Une erreur s'est produite lors du chargement de la réponse à la requête de l'API: $1.",
+       "apisandbox-request-params-json": "Paramètres JSON :",
        "apisandbox-request-url-label": "Requête URL :",
        "apisandbox-request-time": "Durée de la demande: {{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "Corrigez le jeton et renvoyez",
        "changecontentmodel-emptymodels-title": "Aucun modèle de contenu disponible",
        "changecontentmodel-emptymodels-text": "Le contenu sur [[:$1]] ne peut être converti en aucun type.",
        "log-name-contentmodel": "Journal de modification de modèle de contenu",
-       "log-description-contentmodel": "Événements relatifs aux modèles de contenu d’une page",
+       "log-description-contentmodel": "Cette page montre des modifications dans le modèle de contenu des pages, ainsi que les pages créées avec un modèle de contenu différent du contenu par défaut.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|a créé}} la page $3 en utilisant un modèle de contenu « $5 » autre que celui par défaut",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|a modifié}} le modèle de contenu de la page $3 de « $4 » en « $5 »",
        "logentry-contentmodel-change-revertlink": "rétablir",
        "cant-move-to-user-page": "Vous n’avez pas la permission de renommer une page vers une page utilisateur (mais vous pouvez le faire vers une sous-page utilisateur).",
        "cant-move-category-page": "Vous n'avez pas la permission de renommer les pages de catégorie.",
        "cant-move-to-category-page": "Vous n'avez pas la permission de renommer une page vers une page de catégorie.",
-       "cant-move-subpages": "Vous n’avez pas le droit de déplacer des sous-pages.",
+       "cant-move-subpages": "Vous n’avez pas le droit de renommer des sous-pages.",
        "namespace-nosubpages": "L’espace de noms « $1 » n’autorise pas les sous-pages.",
-       "movepage-max-pages": "Le maximum de $1 {{PLURAL:$1|page renommée|pages renommées}} a été atteint et aucune autre page ne sera renommée automatiquement.",
        "newtitle": "Nouveau titre :",
        "move-watch": "Suivre les pages originale et nouvelle",
        "movepagebtn": "Renommer la page",
        "movepage-page-exists": "La page $1 existe déjà et ne peut pas être écrasée automatiquement.",
        "movepage-page-moved": "La page $1 a été renommée en $2.",
        "movepage-page-unmoved": "La page $1 n'a pas pu être renommée en $2.",
+       "movepage-max-pages": "Le maximum de $1 {{PLURAL:$1|page renommée|pages renommées}} a été atteint et aucune autre page ne sera renommée automatiquement.",
        "movelogpage": "Journal des renommages",
        "movelogpagetext": "Voici la liste de toutes les pages renommées ou déplacées.",
        "movesubpage": "Sous-page{{PLURAL:$1||s}}",
        "api-error-badtoken": "Erreur interne : mauvais « jeton ».",
        "api-error-blocked": "Vous avez été bloqué en édition.",
        "api-error-copyuploaddisabled": "Les versements via URL sont désactivés sur ce serveur.",
-       "api-error-duplicate": "Il y a déjà {{PLURAL:$1|un autre fichier présent|d'autres fichiers présents}} sur le site avec le même contenu.",
-       "api-error-duplicate-archive": "Il y avait déjà {{PLURAL:$1|un autre fichier présent|d'autres fichiers présents}} sur le site avec le même contenu, mais {{PLURAL:$1|il a été supprimé|ils ont été supprimés}}.",
+       "api-error-duplicate": "Il y a déjà {{PLURAL:$1|un autre fichier présent|dautres fichiers présents}} sur le site avec le même contenu.",
+       "api-error-duplicate-archive": "Il y avait déjà {{PLURAL:$1|un autre fichier présent|dautres fichiers présents}} sur le site avec le même contenu, mais {{PLURAL:$1|il a été supprimé|ils ont été supprimés}}.",
        "api-error-empty-file": "Le fichier que vous avez soumis était vide.",
        "api-error-emptypage": "Création de pages vide n'est pas autorisée.",
        "api-error-fetchfileerror": "Erreur interne : Quelque chose s'est mal passé lors de la récupération du fichier.",
        "api-error-missingresult": "Erreur interne : Nous n'avons pas pu déterminer si la copie avait réussi.",
        "api-error-mustbeloggedin": "Vous devez être connecté pour télécharger des fichiers.",
        "api-error-mustbeposted": "Erreur interne : cette requête nécessite la méthode HTTP POST.",
-       "api-error-noimageinfo": "Le téléversement a réussi, mais le serveur n'a pas donné d'informations sur le fichier.",
+       "api-error-noimageinfo": "Le téléchargement a réussi, mais le serveur n’a pas fourni d’information sur le fichier.",
        "api-error-nomodule": "Erreur interne : aucun module de versement défini.",
        "api-error-ok-but-empty": "Erreur interne : Le serveur n'a pas répondu.",
        "api-error-overwrite": "Écraser un fichier existant n'est pas autorisé.",
        "api-error-stashnotloggedin": "Vous devez être connecté pour enregistrer des fichiers dans la cachette de téléchargement.",
        "api-error-stashwrongowner": "Le fichier auquel vous essayez d’accéder dans la cachette ne vous appartient pas.",
        "api-error-stashnosuchfilekey": "La clé du fichier auquel vous essayez d’accéder dans la cachette n’existe pas.",
-       "api-error-timeout": "Le serveur n'a pas répondu dans le délai imparti.",
+       "api-error-timeout": "Le serveur na pas répondu dans le délai imparti.",
        "api-error-unclassified": "Une erreur inconnue s'est produite",
        "api-error-unknown-code": "Erreur inconnue : « $1 »",
        "api-error-unknown-error": "Erreur interne : quelque chose s'est mal passé lors du téléversement de votre fichier.",
-       "api-error-unknown-warning": "Avertissement inconnu : « $1 ».",
+       "api-error-unknown-warning": "Avertissement inconnu : « $1 ».",
        "api-error-unknownerror": "Erreur inconnue : « $1 ».",
        "api-error-uploaddisabled": "Le téléversement est désactivé sur ce wiki.",
        "api-error-verification-error": "Ce fichier est peut-être corrompu, ou son extension est incorrecte.",
        "expand_templates_generate_rawhtml": "Afficher le HTML brut",
        "expand_templates_preview": "Aperçu du rendu",
        "expand_templates_preview_fail_html": "<em>Comme {{SITENAME}} a l’HTML brut activé et qu’il y a eu une perte de données de session, l’aperçu est masqué par précaution contre les attaques JavaScript.</em>\n\n<strong>Si c’est une demande d’aperçu légitime, veuillez réessayer.</strong>\nSi cela ne fonctionne toujours pas, essayez de [[Special:UserLogout|vous déconnecter]] et de vous reconnecter, et vérifiez que votre navigateur accepte les témoins (''cookies'') de ce site.",
-       "expand_templates_preview_fail_html_anon": "<em>Comme {{SITENAME}} a HTML brut activé et que vous n’êtes pas connecté, l’aperçu est masqué par précaution contre les attaques JavaScript.</em>\n\n<strong>Si c’est une demande d’aperçu légitime, veuillez [[Special:UserLogin|vous connecter]] et réessayer.</strong>",
+       "expand_templates_preview_fail_html_anon": "<em>Comme {{SITENAME}} a activé le HTML brut et que vous n’êtes pas connecté, l’aperçu est masqué par précaution contre les attaques JavaScript.</em>\n\n<strong>Si c’est une demande d’aperçu légitime, veuillez [[Special:UserLogin|vous connecter]] et réessayer.</strong>",
        "expand_templates_input_missing": "Vous devez fournir au moins un texte d’entrée.",
        "pagelanguage": "Modifier la langue de la page",
        "pagelang-name": "Page",
        "sessionprovider-nocookies": "Il est possible que les témoins (''cookies'') soient désactivés. Assurez-vous que vous avez activé les témoins et recommencez.",
        "randomrootpage": "Page racine aléatoire",
        "log-action-filter-block": "Type de blocage :",
-       "log-action-filter-contentmodel": "Type de modification de modèle de contenu :",
+       "log-action-filter-contentmodel": "Type de modification du modèle de contenu :",
        "log-action-filter-delete": "Type de suppression :",
        "log-action-filter-import": "Type d’import :",
        "log-action-filter-managetags": "Type d’action de gestion des étiquettes :",
        "log-action-filter-block-reblock": "Modification de blocage",
        "log-action-filter-block-unblock": "Débloquer",
        "log-action-filter-contentmodel-change": "Changement de modèle de contenu",
-       "log-action-filter-contentmodel-new": "Création de page avec un modèle de contenu non-standard",
+       "log-action-filter-contentmodel-new": "Création de page avec un modèle de contenu différent du contenu par défaut",
        "log-action-filter-delete-delete": "Suppression de pages",
-       "log-action-filter-delete-delete_redir": "Rediriger l'écrasement",
+       "log-action-filter-delete-delete_redir": "Rediriger la réécriture",
        "log-action-filter-delete-restore": "Restauration de page",
        "log-action-filter-delete-event": "Suppression du journal",
        "log-action-filter-delete-revision": "Suppression de révison",
index e45c1b6..063cdae 100644 (file)
        "cant-move-to-user-page": "Dü mutst nian sidjen üüb en brükersidj fersküüw (bluas üüb onersidjen).",
        "cant-move-category-page": "Dü mutst nian kategoriisidjen fersküüw.",
        "cant-move-to-category-page": "Dü mutst nian sidj tu en kategoriisidj fersküüw.",
-       "movepage-max-pages": "Diar kön ei muar üs {{PLURAL:$1|sidj|sidjen}} fersköwen wurd. Muar sidjen kön ei automaatisk fersköwen wurd.",
        "newtitle": "Müülj:",
        "move-watch": "Jodiar sidjen uun't uug behual",
        "movepagebtn": "Sidj fersküüw",
        "movepage-page-exists": "Det sidj „$1“ as al diar an koon ei automaatisk auerskrewen wurd.",
        "movepage-page-moved": "Det sidj $1 as efter $2 fersköwen wurden.",
        "movepage-page-unmoved": "Det sidj $1 küd ei efter $2 fersköwen wurd.",
+       "movepage-max-pages": "Diar kön ei muar üs {{PLURAL:$1|sidj|sidjen}} fersköwen wurd. Muar sidjen kön ei automaatisk fersköwen wurd.",
        "movelogpage": "Fersküüw-logbuk",
        "movelogpagetext": "Det as en list mä fersköwen sidjen.",
        "movesubpage": "{{PLURAL:$1|Onersidj|Onersidjen}}",
index 2744dde..f5da074 100644 (file)
        "wlshowhideanons": "usuarios anónimos",
        "wlshowhidepatr": "edicións vixiadas",
        "wlshowhidemine": "as miñas edicións",
-       "wlshowhidecategorization": "categorización da páxina",
+       "wlshowhidecategorization": "categorización de páxinas",
        "watchlist-options": "Opcións de vixilancia",
        "watching": "Vixiando...",
        "unwatching": "Deixando de vixiar...",
        "cant-move-to-user-page": "Non ten os permisos necesarios para mover unha páxina a unha páxina de usuario (agás a unha subpáxina).",
        "cant-move-category-page": "Non ten os permisos necesarios para mover páxinas de categoría.",
        "cant-move-to-category-page": "Non ten os permisos necesarios para mover unha páxina a unha páxina de categoría.",
-       "movepage-max-pages": "Foi movido o número máximo {{PLURAL:$1|dunha páxina|de $1 páxinas}} e non poderán ser movidas automaticamente máis.",
+       "cant-move-subpages": "Non ten os permisos necesarios para mover subpáxinas.",
+       "namespace-nosubpages": "O espazo de nomes \"$1\" non deixa subpáxinas.",
        "newtitle": "Novo título:",
        "move-watch": "Vixiar esta páxina",
        "movepagebtn": "Mover a páxina",
        "movepage-page-exists": "A páxina \"$1\" xa existe e non pode ser sobrescrita automaticamente.",
        "movepage-page-moved": "A páxina \"$1\" foi movida a \"$2\".",
        "movepage-page-unmoved": "A páxina \"$1\" non pode ser movida a \"$2\".",
+       "movepage-max-pages": "Foi movido o número máximo {{PLURAL:$1|dunha páxina|de $1 páxinas}} e non poderán ser movidas automaticamente máis.",
        "movelogpage": "Rexistro de traslados",
        "movelogpagetext": "A continuación móstrase a lista con todas as páxinas trasladadas.",
        "movesubpage": "{{PLURAL:$1|Subpáxina|Subpáxinas}}",
        "api-error-unclassified": "Houbo un erro descoñecido.",
        "api-error-unknown-code": "Erro descoñecido: \"$1\"",
        "api-error-unknown-error": "Erro interno: Houbo un problema ao intentar cargar o ficheiro.",
-       "api-error-unknown-warning": "Advertencia descoñecida: $1",
+       "api-error-unknown-warning": "Advertencia descoñecida: \"$1\".",
        "api-error-unknownerror": "Erro descoñecido: \"$1\".",
        "api-error-uploaddisabled": "As cargas están desactivadas neste wiki.",
        "api-error-verification-error": "Este ficheiro podería estar corrupto ou ter unha extensión incorrecta.",
        "log-action-filter-block-reblock": "Modificación de bloqueo",
        "log-action-filter-block-unblock": "Desbloquear",
        "log-action-filter-contentmodel-change": "Cambio de modelo de contido",
-       "log-action-filter-contentmodel-new": "Creación de páxins cun modelo de contido non estándar",
+       "log-action-filter-contentmodel-new": "Creación de páxina cun modelo de contido diferente do contido por defecto",
        "log-action-filter-delete-delete": "Borrado de páxinas",
        "log-action-filter-delete-delete_redir": "Sobreescritura de redirección",
        "log-action-filter-delete-restore": "Restauración de páxinas",
index 4a3207f..c6f36fa 100644 (file)
@@ -40,6 +40,7 @@
        "tog-watchdefault": "Sälber gändereti Syte un Dateie automatisch beobachte",
        "tog-watchmoves": "Sälber verschobeni Sytene un Dateie automatisch beobachte",
        "tog-watchdeletion": "Sälber gleschti Sytene un Dateie automatisch beobachte",
+       "tog-watchuploads": "Die Dateie, wonni uffelad, automatisch uff myni Beobachtigslischt druff due",
        "tog-watchrollback": "Syte, wun i zruckgsetzt haa, automatisch beobachte",
        "tog-minordefault": "Alli dyni Änderigen als «chlyni Änderige» markiere",
        "tog-previewontop": "Vorschou oberhalb vom Editierfänschter aazeige",
@@ -63,7 +64,7 @@
        "tog-ccmeonemails": "Schick mr Kopie vo de E-Mails, won i andere schick.",
        "tog-diffonly": "Numme Versionsunterschiid aazeige, ohni d Syte",
        "tog-showhiddencats": "Zeig di versteckte Kategorie",
-       "tog-norollbackdiff": "Unterschid noch em Zrucksetze unterdrucke",
+       "tog-norollbackdiff": "Unterschid noch em Zrucksetze nit aazeige",
        "tog-useeditwarning": "Warn mi, wänn I ne Syte verloss mit Bearbeitige, wu nonig gspycheret sin",
        "tog-prefershttps": "Wänn aagmäldet, alliwyl e sicheri Verbindig bruuche",
        "underline-always": "immer",
        "october-date": "$1. Oktober",
        "november-date": "$1. Novämber",
        "december-date": "$1. Dezämber",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Kategori|Kategorie}}",
        "category_header": "Artikel in de Kategori \"$1\"",
        "subcategories": "Unterkategorie",
        "newwindow": "(imene nöie Fänschter)",
        "cancel": "Abbräche",
        "moredotdotdot": "Meh …",
-       "morenotlisted": "Die Lischt isch nit vollständig.",
+       "morenotlisted": "Die Lischt isch vilycht nit vollständig.",
        "mypage": "Syte",
        "mytalk": "Diskussionsyte",
        "anontalk": "Diskussionssyste vo sellere IP",
        "talk": "Diskussion",
        "views": "Wievylmol agluegt",
        "toolbox": "Wärchzyyg",
+       "tool-link-userrights": "{{GENDER:$1|Benutzergruppe}} ändere",
+       "tool-link-userrights-readonly": "{{GENDER:$1|Benutzergruppe}} aaluege",
+       "tool-link-emailuser": "E-Mail an {{GENDER:$1|dää Benutzer|die Benutzeri}} schicke",
        "userpage": "Benutzersyte",
        "projectpage": "Projektsyte azeige",
        "imagepage": "Dateisyte",
        "virus-scanfailed": "Scan het nid funktioniert (code $1)",
        "virus-unknownscanner": "Virescanner, wu nid bekannt isch:",
        "logouttext": "'''Du bisch jetz abgmäldet.'''\n\nObacht: s cha syy, ass bstimmti Syte eso aazeigt wäre, wie wänn Du allno aagmäldet wärsch, bis Du dr Zwischespycher vu Dyym Browser glescht hesch.",
+       "cannotlogoutnow-title": "Abmälde goot grad nit",
+       "cannotlogoutnow-text": "Abmälde goot nit, derwyylscht du $1 bruuchsch",
        "welcomeuser": "Willchuu, $1!",
        "welcomecreation-msg": "Dyy Benutzerkonto isch aagleit wore.\nVergiss nit, Dyni [[Special:Preferences|{{SITENAME}}-Yystellige]] z ändere.",
        "yourname": "Dyy Benutzername",
        "createacct-yourpasswordagain-ph": "Gib s Passwort nomol yy",
        "userlogin-remembermypassword": "Aagmäldet blyybe",
        "userlogin-signwithsecure": "Sicheri Verbindig bruuche",
+       "cannotlogin-title": "Aamälde goot nit",
+       "cannotlogin-text": "Aamälde goot nit",
+       "cannotloginnow-title": "Aamälde goot grad nit",
+       "cannotloginnow-text": "Aamälde goot nit, derwyylscht du $1 bruuchsch",
+       "cannotcreateaccount-title": "Benutzerkonto cha nid aagleit wäre.",
        "yourdomainname": "Dyyni Domäne",
        "password-change-forbidden": "Du chasch uf däm Wiki kei Passwerter ändere.",
        "externaldberror": "Entwäder s lit e Fähler bi dr externe Authentifizierung vor, oder Du derfsch Dyy extern Benutzerkonto nid aktualisiere.",
        "login": "Aamälde",
+       "login-security": "Due dyni Identität verifiziere",
        "nav-login-createaccount": "Aamälde / Konto aalege",
        "userlogin": "Aamälde/Konto aalege",
        "userloginnocreate": "Aamälde",
        "resetpass_submit": "Passwort ibermittle un aamälde",
        "changepassword-success": "Dyy Passwort isch erfolgryych gänderet wore.",
        "changepassword-throttled": "Du hesch z vilmol versuecht Di aazmälde. Bitte wart $1, voreb Du s non emol versuechsch.",
+       "botpasswords-label-appid": "Name vum Bot:",
+       "botpasswords-label-create": "Aalege",
+       "botpasswords-label-update": "Aktualisiere",
+       "botpasswords-label-cancel": "Abbräche",
+       "botpasswords-label-delete": "Lösche",
+       "botpasswords-label-resetpassword": "Passwort zruggsetze",
        "resetpass_forbidden": "S Passwort cha nid gänderet wäre.",
        "resetpass-no-info": "Du muesch Di aamälde zum uf die Syte diräkt zuegryfe z chenne.",
        "resetpass-submit-loggedin": "Passwort ändere",
        "passwordreset-emaildisabled": "D E-Mail-Funktione sin uf däm Wiki deaktiviert wore.",
        "passwordreset-username": "Benutzername:",
        "passwordreset-domain": "Domain:",
-       "passwordreset-capture": "Die E-Mail aaluege?",
-       "passwordreset-capture-help": "Wänn du des Chäschtli aachrüüzesch, no wird die E-Mail (mit em temporäre Passwort) dir aazeigt, un au em Benutzer zuegschiggt.",
        "passwordreset-email": "E-Mail-Adräss:",
        "passwordreset-emailtitle": "Benutzerkontoinformationen uf {{SITENAME}}",
        "passwordreset-emailtext-ip": "Eber mit dr IP-Adresse $1, wahrschyns Du sälber, het e Erinnerig an Dyyni Benutzerkonteninformatione fir {{SITENAME}} aagforderet ($4). \n\n{{PLURAL:$3|Des Benutzerkonto isch|Die Benutzerkonte sin}} mit däre E-Mail-Adräss verchnipft: \n\n$2 \n\n{{PLURAL:$3|Des temporär Passwort lauft|Die temporäre Passwerter laufe}} in {{PLURAL:$5|eim Tag|$5 Täg}} ab.\nDu sottsch di aamälden un e nej Passwort vergee. Wänn eber ander die Aafrog gstellt het oder Du di wider an Dyy alt Passwort chasch erinnere un s nimi wettsch ändere, chasch die Nochricht ignorieren un alsfurt Dyy alt Passwort bruche.",
        "searchprofile-advanced-tooltip": "Suech in wytere Namensryym",
        "search-result-size": "$1 ({{PLURAL:$2|1 Wort|$2 Werter}})",
        "search-result-category-size": "{{PLURAL:$1|1 Kategorii|$1 Kategorie}} ({{PLURAL:$2|1 Unterkategorii|$2 Unterkategorie}}, {{PLURAL:$3|1 Datei|$3 Dateie}})",
-       "search-redirect": "(Wyterleitig $1)",
+       "search-redirect": "(Wyterleitig vo $1)",
        "search-section": "(Abschnitt $1)",
        "search-category": "(Kategorie $1)",
        "search-file-match": "(Resultat us em Inhalt vo Dateie)",
        "userrights-reason": "Grund:",
        "userrights-no-interwiki": "Du hesch nit d Berächtigung, Benutzerrächt in andere Wiki z ändere.",
        "userrights-nodatabase": "D Datebank $1 git s nit oder si isch nit lokal.",
-       "userrights-nologin": "Du muesch Di mit eme Ammanne-Benutzerkonto [[Special:UserLogin|aamälde]], zum Benutzerrächt z ändere.",
-       "userrights-notallowed": "Du hesch nit d Berächtigung zum Benutzerrächt vergee oder ewägnee.",
        "userrights-changeable-col": "Gruppezuegherigkeit, wu Du chasch ändere",
        "userrights-unchangeable-col": "Gruppezuegherigkeit, wu Du nit chasch ändere",
        "userrights-conflict": "Di veränderete Rächt göh nid uuf! Bitte lueg d Änderige düren u tue se nomal spychere.",
-       "userrights-removed-self": "Du hesch dir di eigete Rächt erfolgrych furtgnoh. Drum hesch kei Zuegriff meh uf die Syte.",
        "group": "Grupp:",
        "group-user": "Benutzer",
        "group-autoconfirmed": "Bstetigti Benutzer",
        "right-siteadmin": "Datebank sperre un entsperre",
        "right-override-export-depth": "Exportier Syte mitsamt dr vergleichte Syte bis zuen ere Tiefi vu 5",
        "right-sendemail": "E-Mail an anderi Benutzer schicke",
-       "right-passwordreset": "Passwort vun eme Benutzer zruggsetze",
        "right-managechangetags": "[[Special:Tags|Markierigen]] ir Datebank schaffen oder lösche",
        "right-applychangetags": "Zäme mit den eigeten Änderige [[Special:Tags|Markierigen]] abringe",
        "right-changetags": "Beliebigi [[Special:Tags|Markierige]] by einzelne Versionen oder Logbuechyträg derzuetue oder lösche",
        "feedback-thanks": "Dankschen. Dyy Ruckmäldig isch uf dr Syte „[$2 $1]“ gspycheret wore.",
        "feedback-thanks-title": "Merci!",
        "feedback-useragent": "User Agent:",
-       "searchsuggest-search": "Suechi",
+       "searchsuggest-search": "{{SITENAME}} dursueche",
        "searchsuggest-containing": "din het s …",
        "api-error-badaccess-groups": "Du derfsch keini Dateie in des Wiki uffelade.",
        "api-error-badtoken": "Intärne Fähler: Dr Token isch fählerhaft.",
index 83d2f22..f60d6be 100644 (file)
        "changecontentmodel-emptymodels-title": "לא קיים מודל תוכן מתאים",
        "changecontentmodel-emptymodels-text": "לא ניתן להמיר את התוכן של [[:$1]] לאף סוג.",
        "log-name-contentmodel": "יומן שינויי מודל תוכן",
-       "log-description-contentmodel": "×\90×\99ר×\95×¢×\99×\9d ×©×§×©×\95ר×\99×\9d ×\9c×\9e×\95×\93×\9c ×ª×\95×\9b×\9f ×©×\9c ×\93פ×\99×\9d",
+       "log-description-contentmodel": "×\91×\93×£ ×\96×\94 ×\9e×\95פ×\99×¢×\99×\9d ×©×\99× ×\95×\99×\99×\9d ×\91×\9e×\95×\93×\9c ×\94ת×\95×\9b×\9f ×©×\9c ×\93פ×\99×\9d, ×\95×\9b×\9f ×\93פ×\99×\9d ×©× ×\95צר×\95 ×¢×\9d ×\9e×\95×\93×\9c ×ª×\95×\9b×\9f ×©×\95× ×\94 ×\9e×\91ר×\99רת ×\94×\9e×\97×\93×\9c.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|יצר|יצרה}} את הדף $3 תוך שימוש במודל התוכן \"$5\" השונה ממודל ברירת המחדל",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|שינה|שינתה}} את מודל התוכן של הדף $3 מ\"$4\" ל\"$5\"",
        "logentry-contentmodel-change-revertlink": "שחזור",
        "cant-move-to-category-page": "אין לך הרשאה להעביר דף לדף קטגוריה.",
        "cant-move-subpages": "אין לך הרשאה להעביר דפי משנה.",
        "namespace-nosubpages": "מרחב השם \"$1\" לא יכול להכיל דפי משנה.",
-       "movepage-max-pages": "{{PLURAL:$1|דף אחד כבר הועבר|$1 דפים כבר הועברו}}. זה המספר המרבי ולא ניתן להעביר דפים נוספים אוטומטית.",
        "newtitle": "השם החדש:",
        "move-watch": "מעקב אחרי דף המקור ואחרי דף היעד",
        "movepagebtn": "העברת הדף",
        "movepage-page-exists": "הדף $1 קיים כבר ולא ניתן לדרוס אותו אוטומטית.",
        "movepage-page-moved": "הדף $1 הועבר לשם $2.",
        "movepage-page-unmoved": "לא ניתן להעביר את הדף $1 לשם $2.",
+       "movepage-max-pages": "{{PLURAL:$1|דף אחד כבר הועבר|$1 דפים כבר הועברו}}. זה המספר המרבי ולא ניתן להעביר דפים נוספים אוטומטית.",
        "movelogpage": "יומן העברות",
        "movelogpagetext": "להלן רשימה של כל הדפים ששמם שוּנה.",
        "movesubpage": "{{PLURAL:$1|דף משנה|דפי משנה}}",
        "api-error-missingresult": "שגיאה פנימית: לא ניתן לקבוע אם ההעתקה הצליחה.",
        "api-error-mustbeloggedin": "יש להיכנס לחשבון כדי להעלות קבצים.",
        "api-error-mustbeposted": "שגיאה פנימית: הבקשה דורשת שימוש בשיטת POST של HTTP.",
-       "api-error-noimageinfo": "×\94×\94×¢×\9c×\90×\94 ×\94×\95ש×\9c×\9e×\94 ×\91×\94צ×\9c×\97ה, אבל השרת לא נתן לנו שום מידע על הקובץ.",
+       "api-error-noimageinfo": "×\94×\94×¢×\9c×\90×\94 ×¢×\91×\93ה, אבל השרת לא נתן לנו שום מידע על הקובץ.",
        "api-error-nomodule": "שגיאה פנימית: מודול ההעלאה אינו מוגדר.",
        "api-error-ok-but-empty": "שגיאה פנימית: אין תשובה מהשרת.",
        "api-error-overwrite": "לא מותרת החלפת קובץ קיים.",
        "api-error-unclassified": "אירעה שגיאה בלתי ידועה.",
        "api-error-unknown-code": "שגיאה בלתי ידועה: \"$1\".",
        "api-error-unknown-error": "שגיאה פנימית: משהו השתבש בעת ניסיון להעלות את הקובץ שלך.",
-       "api-error-unknown-warning": "אזהרה בלתי ידועה: \"$1\".",
+       "api-error-unknown-warning": "אזהרה בלתי־ידועה: \"$1\".",
        "api-error-unknownerror": "שגיאה בלתי ידועה: \"$1\".",
        "api-error-uploaddisabled": "ההעלאה מבוטלת באתר הוויקי הזה.",
        "api-error-verification-error": "קובץ זה עשוי להיות פגום או בעל סיומת שגויה.",
index 563059c..456ba8d 100644 (file)
        "qbedit": "सम्पादन",
        "qbpageoptions": "यह पृष्ठ",
        "qbmyoptions": "मेरे पृष्ठ",
-       "faq": "à¤\85à¤\95à¥\8dसर पूछे जाने वाले प्रश्न",
-       "faqpage": "Project:à¤\85à¤\95à¥\8dसर पूछे जाने वाले सवाल",
+       "faq": "बहà¥\81धा पूछे जाने वाले प्रश्न",
+       "faqpage": "Project:बहà¥\81धा पूछे जाने वाले सवाल",
        "actions": "क्रियाएँ",
        "namespaces": "नामस्थान",
        "variants": "संस्करण",
        "editusergroup": "{{GENDER:$1|सदस्य}} समूहों का संपादन करें",
        "editinguser": "सदस्य '''[[User:$1|$1]]''' $2 के अधिकार बदलें\n{{GENDER:$1|सदस्य}} के सदस्य अधिकार बदले जा रहे हैं <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "सदस्य समूहों का संपादन करें",
+       "userrights-viewusergroup": "सदस्य समूह देखें",
        "saveusergroups": "{{GENDER:$1|सदस्य}} समूह सहेजें",
        "userrights-groupsmember": "निम्न {{PLURAL:$1|समूह|समूहों}} का सदस्य:",
        "userrights-groupsmember-auto": "निम्न {{PLURAL:$1|समूह|समूहों}} का अंतर्निहित सदस्य:",
        "action-userrights-interwiki": "अन्य विकियों पर सदस्य अधिकार बदलने",
        "action-siteadmin": "डाटाबेस को ताला लगाने या खोलने",
        "action-sendemail": "ई-मेल भेजने",
+       "action-editmyoptions": "अपनी पसंद संपादित करें",
        "action-editmywatchlist": "ध्यानसूची सम्पादित करने",
        "action-viewmywatchlist": "अपनी ध्यानसूची देखें",
        "action-viewmyprivateinfo": "अपनी व्यक्तिगत जानकारी देखने",
        "cant-move-to-user-page": "आपको किसी पन्नो को सदस्य पृष्ठ पर ले जाने की अनुमति नहीं है (सिवाय सदस्य उप पृष्ठ के)",
        "cant-move-category-page": "आपको श्रेणी प्रष्ठों को स्थानांतरित करने की अनुमति नहीं है।",
        "cant-move-to-category-page": "आपको किसी पृष्ठ को श्रेणी पृष्ठ पर स्थानांतरित करने की अनुमति नहीं है।",
-       "movepage-max-pages": "$1 की अधिकतम सीमा तक पृष्ठ स्थानांतरित कर {{PLURAL:$1|दिया गया है|दिये गये हैं}}, अब और पृष्ठ अपने-आप स्थानांतरित नहीं होंगे।",
+       "namespace-nosubpages": "\"$1\" नामस्थान उपपृष्ठ की अनुमति नहीं देता है।",
        "newtitle": "नया शीर्षक:",
        "move-watch": "ध्यान रखें",
        "movepagebtn": "नाम बदलें",
        "movepage-page-exists": "$1 पृष्ठ पहले से अस्तित्वमें हैं और उसपर अपनेआप पुनर्लेखन नहीं कर सकतें।",
        "movepage-page-moved": "$1 पृष्ठ $2 नाम पर स्थानांतरित कर दिया गया है।",
        "movepage-page-unmoved": "$1 पृष्ठ $2 नाम पर स्थानांतरित नहीं किया जा सका।",
+       "movepage-max-pages": "$1 की अधिकतम सीमा तक पृष्ठ स्थानांतरित कर {{PLURAL:$1|दिया गया है|दिये गये हैं}}, अब और पृष्ठ अपने-आप स्थानांतरित नहीं होंगे।",
        "movelogpage": "स्थानान्तरण लॉग",
        "movelogpagetext": "नीचे सभी स्थानान्तरणों की सूची दी गई है।",
        "movesubpage": "{{PLURAL:$1|उप पृष्ठ|उप पृष्ठ}}",
        "special-characters-title-minus": "ऋण चिह्न",
        "mw-widgets-dateinput-no-date": "कुछ चयनित नहीं",
        "mw-widgets-dateinput-placeholder-day": "DD-MM-YYYY",
+       "mw-widgets-mediasearch-noresults": "कोई परिणाम नहीं मिला",
        "mw-widgets-titleinput-description-new-page": "पृष्ठ अभी मौजूद नहीं है",
        "mw-widgets-titleinput-description-redirect": "$1 को अनुप्रेषित",
        "mw-widgets-categoryselector-add-category-placeholder": "श्रेणी जोड़ें...",
index f694e21..fb78acc 100644 (file)
@@ -16,7 +16,8 @@
                        "Macofe",
                        "Matma Rex",
                        "V6rg",
-                       "C.R."
+                       "C.R.",
+                       "Smcnarayan"
                ]
        },
        "tog-underline": "Jorr ke niche line khicho:",
@@ -34,6 +35,7 @@
        "tog-watchdefault": "Ham se badla gais panna aur file ke hamaar dhyaan suchi me jorro",
        "tog-watchmoves": "Uu panna aur file jiske naam ham badla hai ke hamaar dhyaan suchi me jorro",
        "tog-watchdeletion": "Uu panna, aur file jiske ham mitaya hai ke hamaar dhyaan suchi me jorro",
+       "tog-watchuploads": "Nawaa upload karaa gais file ke hamaar dhyaan suchi me jorro",
        "tog-watchrollback": "Uu panna ke jorro jisme ham aapan watchlist me rollback karaa hae",
        "tog-minordefault": "Mamuli badlao ke apne se nishaan lagao",
        "tog-previewontop": "Badlao waala dabba se pahile ek jhalak dekhao",
        "october-date": "October $1",
        "november-date": "November $1",
        "december-date": "December $1",
+       "period-am": "sabere",
+       "period-pm": "sanjhaa",
        "pagecategories": "{{PLURAL:$1|Vibhag|Vibhag}}",
        "category_header": "\"$1\" vibhag ke panna",
        "subcategories": "Vibhag ke bhitar vibhag",
        "tagline": "{{SITENAME}} se",
        "help": "Madat karo",
        "search": "Khojo",
+       "search-ignored-headings": " #<!-- leave this line exactly as it is --> <pre>\n# Heading, jispe dhyaan nai dewaa jaai.\n# Isme badlao uu time hoi jaise panna ke heading ke index karaa jaai ki.\n# Aap null edit kar ke panna ke reindexing ke force kare saktaa hai.\n# Iske syntax aise hai:\n#   * Sab chij \"#\" character se lae ke line ke ant talak, comment hai.\n#   * Sab non-blank line is the exact title to ignore, case and everything.\nReferences\nBahaari jorr\nAur dekho\n #</pre> <!-- leave this line exactly as it is -->",
        "searchbutton": "Khojo",
        "go": "Jao",
        "searcharticle": "Jaao",
        "talk": "Salah",
        "views": "Bichar",
        "toolbox": "Aujaar ke dabba",
+       "tool-link-userrights": "Badlo {{GENDER:$1|sadasya}} groups",
+       "tool-link-userrights-readonly": "Dekho {{GENDER:$1|sadasya}} groups",
+       "tool-link-emailuser": "Email karo ii {{GENDER:$1|sadasya}}",
        "userpage": "Sadasya ke panna dekho",
        "projectpage": "Project waala panna dekho",
        "imagepage": "File panna ke dekho",
        "protectedinterface": "Ii panna, ii wiki ke khatir, software ke interface text dewe hai, aur iske barbaadi se roke ke khatir band kar dewa gais hai.\nSab wiki me anuwaad ke jorre nai to badle ke khatir, meharbaani kar ke [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation project ke kaam me laao.",
        "editinginterface": "'''Chetawani:''' Aap ek panna ke badaltaa hai jon ki software ke interface text dewe hae.\nIi panna me badlao ke asar duusra sadasya ke interface pe bhi hoi.",
        "translateinterface": "Sab wiki me translate kare ke khatir [https://translatewiki.net/translatewiki.net], the MediaWiki localisation project, ke kaam me lao.",
-       "cascadeprotected": "Ii panna ke badlao se bachawa gais hai, kaheki iske {{PLURAL:$1|panna, jon ki|panna, jon ki}} surakchhit hae \"cascading\" option turned on ke saathe me rakkhaa gais hai:\n$2",
+       "cascadeprotected": "Ii panna ke badlao se bachawa gais hai, kaheki iske {{PLURAL:$1|panna, jon ki}} surakchhit hae \"cascading\" option turned on ke saathe me rakkhaa gais hai:\n$2",
        "namespaceprotected": "Aap ke paas '''$1''' namespace me panna ke badle ke adhikar nai hai.",
        "customcssprotected": "Aap ke ii CSS panna ke badle ke ijaajat nai hae, kaahe ki isme duusra sadasya ke personal settings hae.",
        "customjsprotected": "Aap ke ii JavaScript panna ke badle ke ijaajat nai hae, kaahe ki isme duusra sadasya ke personal settings hae.",
        "virus-scanfailed": "scan fail hoe gais (code $1)",
        "virus-unknownscanner": "jaana waala antivirus nai hai:",
        "logouttext": "'''Aap abhi logged out hai.'''\n\nYaad rakhna ki kuch panna wahi rakam se dekhai jaise ki aap log in bhaya hai, jab talak ki browser ke cache safaa nai hoe jaae.",
+       "cannotlogoutnow-title": "Abhi log out nai kare saktaa hai",
+       "cannotlogoutnow-text": "$1 ke kaam me laae ke time, loggong out nai hoe sake hai",
        "welcomeuser": "Swagat, $1!",
        "welcomecreation-msg": "Aap ke account banae dewa gais hai.\nAapan [[Special:Preferences|{{SITENAME}} pasand]]  ke badle nai bhulna.",
        "yourname": "Username:",
        "createacct-yourpasswordagain-ph": "Hame lagged in rahan do",
        "userlogin-remembermypassword": "Secure connection ke kaam me lao",
        "userlogin-signwithsecure": "Secure connection ke kaam me lao",
+       "cannotlogin-title": "Log in nai kare saktaa hai",
+       "cannotlogin-text": "Logging in possible nai hai",
+       "cannotloginnow-title": "Abhi log in nai kare saktaa hai",
+       "cannotloginnow-text": "$1 ke kaam me laae ke time logging in possible nai hai.",
+       "cannotcreateaccount-title": "Account nai banae saktaa hai",
+       "cannotcreateaccount-text": "Ii wiki me direct account creation enabled nai hai.",
        "yourdomainname": "Aap ke domain:",
        "password-change-forbidden": "Aap ii wiki me password nai badle saktaa hae.",
        "externaldberror": "Koi bahaari database authentication error hai, nai to aap ke bahaari account badle ke adhikar nai hai.",
        "login": "Log in karo",
+       "login-security": "Aapan account ke verify karo",
        "nav-login-createaccount": "Log in karo/ nawaa account banao",
        "userlogin": "Log in karo/ nawaa account banao",
        "userloginnocreate": "Log in karo",
        "userlogin-resetpassword-link": "Aapan password ke bhool gayaa?",
        "userlogin-helplink2": "Log in kare ke khatir madat.",
        "userlogin-loggedin": "Aap {{GENDER:$1|$1}} ke naam ke niche login bhayaa hae.\nNiche ke form ke kaam me laae ke duusra naam ke niche login ho.",
+       "userlogin-reauth": "Aap ke fir se log in kare ke parri, ii verify kare ke khaatir, ki aap {{GENDER:$1|$1}} hai.",
        "userlogin-createanother": "Duusra account banao",
        "createacct-emailrequired": "Email address",
        "createacct-emailoptional": "Email address (jaruri nai hae)",
        "createacct-email-ph": "Aapan mail address ke likho",
        "createacct-another-email-ph": "Email address ke likho",
        "createaccountmail": "Ek temporary password ke kaam me laao aur iske batawa gais Email pe bhej do",
+       "createaccountmail-help": "Binaa password ke jaane iske duusra jan ke khaatir account banae me use karaa jaae sake hai.",
        "createacct-realname": "Aslii naam (jaruri nai hae)",
        "createaccountreason": "Kaaran:",
        "createacct-reason": "Kaaran",
        "createacct-reason-ph": "Aap ke ii account ke banae ke kaaran",
+       "createacct-reason-help": "Ii sandes ke account creation log me dekhaawa jaae hai",
        "createacct-submit": "Aapan account banao",
        "createacct-another-submit": "Account banao",
+       "createacct-continue-submit": "Account banaate raho",
+       "createacct-another-continue-submit": "Account banaate raho",
        "createacct-benefit-heading": "Aap ke rakam log {{SITENAME}} ke banain hae.",
        "createacct-benefit-body1": "{{PLURAL:$1|badlao}}",
        "createacct-benefit-body2": "{{PLURAL:$1|panna}}",
        "nocookiesnew": "Aap ke account banae dewa gais hae lekin aap logged in nai hae.\n{{SITENAME}} me sadasya ke login khatir cookies hae.\nAap cookies ke rok diya hae.\nCookies ke enable kar ke, aapan nawaa username aur password se login karo.",
        "nocookieslogin": "{{SITENAME}} me sadasya ke login khatir cookies hae.\nAap cookies ke disabled karaa hae.\nCookies ke enable kar ke fir se kosis karo.",
        "nocookiesfornew": "Sadasya ke account ke nai banawa gais hae, kaahe ki source ke confirm nai karaa jaae sakis hae.\nCookies ke enable kar ke, ii panna ke fir se load karo aur fir se kosis karo.",
+       "createacct-loginerror": "Ii account ke banae dewa gais hai, lekin aap ke automatically login nai karaa jaae sakis hai. Meharbaani kar ke  [[Special:UserLogin|manual login]] me jaao.",
        "noname": "Aap achchha user name ke nai specify karaa hai.",
        "loginsuccesstitle": "Login safal bhais",
        "loginsuccess": "'''Aap \"$1\" ke naam pe {{SITENAME}} me logged in hai.'''",
        "eauthentsent": "Ek confirmation e-mail aap ke dewa gae e-mail address pe bhej dewa gais hai. Aur mail ii account pe bheje se pahile e-mail me likha instructions ke follow karo, ii confirm kare ke khatir ki account aap ke hai.",
        "throttled-mailpassword": "Ek password reset Email ke pahile bheja gais hae, pichhle  {{PLURAL:$1|ghanta|$1 ghanta}} me bhej me.\nAbuse ke roke ke khatir, khali ek password reminer har {{PLURAL:$1|ghanta|$1 ghanta}} me bheja jaai.",
        "mailerror": "Mail bheje me galti hoe gais hai: $1",
-       "acct_creation_throttle_hit": "Ii wiki me visitors log aap ke IP address ke use kar ke {{PLURAL:$1|1 account|$1 accounts}}, pichhle kuch din me, banae liin hai, jis se jaada ii time nai banawa jaae sake hai.\nIi kaaran se visitors log jon ki ii IP address use kare hai, ke aur account banae ke ijajat nai hai.",
+       "acct_creation_throttle_hit": "Ii wiki me visitors log aap ke IP address ke use kar ke {{PLURAL:$1|1 account|$1 accounts}}, pichhle $2 din me, banae liin hai, jis se jaada ii time nai banawa jaae sake hai.\nIi kaaran se visitors log jon ki ii IP address use kare hai, ke aur account banae ke ijajat nai hai.",
        "emailauthenticated": "Aap ke e-mail address ke $2 ke roj aur $3 baje confirm karaa gais rahaa.",
        "emailnotauthenticated": "Aap ke e-mail address ke abi tak authenticate nai karaagais hai.\nIi sab feature khatir koi e-mail nai bheja jaai.",
        "noemailprefs": "Ii sab feature ke kaam kare khatir e-mail specify karo.",
        "createacct-another-realname-tip": "Aslii naam ke jaruri nai hae.\nAgar aap iske diya hae tab iske aapke kaam ke attribute kare ke khatir kaam me lawa jaai.",
        "pt-login": "Log in karo",
        "pt-login-button": "Log in karo",
+       "pt-login-continue-button": "Login karte raho",
        "pt-createaccount": "Nawaa account banao",
        "pt-userlogout": "Log out ho",
        "php-mail-error-unknown": "PHP ke mail() function me koi anjaan kharaabi hae",
        "newpassword": "Nawaa password:",
        "retypenew": "Password fir se type karo:",
        "resetpass_submit": "Password ke set kar ke login karo",
-       "changepassword-success": "Aap ke password ke safalta se badal dewa gais hai!",
+       "changepassword-success": "Aap ke password ke badal dewa gais hai!",
        "changepassword-throttled": "Aap bahut jaada dafe ii account ke password ke enter kare ke kosis karaa hae.\n$1 talak wait kar ke fir se try karo.",
+       "botpasswords": "Bot passwords",
+       "botpasswords-summary": "<em>Bot passwords</em> sadasya ke account ke access API se dewe hai, bina account ke main login credentials ke use kare. Bot password se login kare se bahut restricted rights mile hai. \n\nAgar aap ii nai janta hai ki kaahe aap ii chij kaahe kartaa hai, tab aap ke saait ii chij nai kare ke chaahi. Koi jane ke ii nai maange ke chaahi ki aap aapan bot credentials ke generate kar ke uske de.",
+       "botpasswords-disabled": "Bot passwords ke disable kar dewa gais hai.",
+       "botpasswords-no-central-id": "Bot password use kare ke khaatir, aap ke ek centralized account me logged in hoe ke chaahi.",
+       "botpasswords-existing": "Abhi ke bot passwords",
+       "botpasswords-createnew": "Nawaa bot password banao",
+       "botpasswords-editexisting": "Ek bot password ke badlo",
+       "botpasswords-label-appid": "Bot ke naam:",
+       "botpasswords-label-create": "Banao",
+       "botpasswords-label-update": "Update karo",
+       "botpasswords-label-cancel": "Cancel karo",
+       "botpasswords-label-delete": "Mitao",
+       "botpasswords-label-resetpassword": "Password ke badlo",
+       "botpasswords-label-grants": "Applicable grants:",
+       "botpasswords-label-grants-column": "Ijaajat hai",
+       "botpasswords-bad-appid": "Bot ke naam \"$1\" valid nai hai",
+       "botpasswords-insert-failed": "Bot ke naam \"$1\"nai jorre sakaa. Ka iske pahile jorraa gais rahaa?",
+       "botpasswords-update-failed": "Bot ke naam \"$1\" nai badle sakaa. Ka iske pahile mitaawa gais rahaa?",
+       "botpasswords-created-title": "Bot password ke banae dewa gais hai",
+       "botpasswords-created-body": "User \"$2\" ke khaatir, bot jiske naam \"$1\" hai, ke password ke mitaae dewa gais hai.",
+       "botpasswords-updated-title": "Bot password ke mitae dewa gais hai",
+       "botpasswords-updated-body": "User \"$2\" ke khaatir, jiske bot naam \"$1\" hai, ke password ke badal dewa gais hai.",
+       "botpasswords-deleted-title": "Bot ke password ke mitae dewa gais hai",
+       "botpasswords-deleted-body": "User \"$2\" ke khaatir, bot jiske naam \"$1\" hai, ke password ke mitaae dewa gais hai.",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider abhi available nai hai.",
+       "botpasswords-restriction-failed": "Bot password restrictions ii login ke roke hai.",
+       "botpasswords-invalid-name": "Jon username ke dewa gais hai, me bot password separator (\"$1\") nai hai.",
+       "botpasswords-not-exist": "Sadasya \"$1\" ke lage bot password \"$2\" nai hai.",
        "resetpass_forbidden": "Password nai badlaa jaae sake hai",
+       "resetpass_forbidden-reason": "Password nai badlaa jaae sake hai: $1",
        "resetpass-no-info": "Ii panna ke sidha access kare ke khatir aap ke logged in rahe ke parri.",
        "resetpass-submit-loggedin": "Password ke badlo",
        "resetpass-submit-cancel": "Nai karo",
-       "resetpass-wrong-oldpass": "Temporary nai to abhi ke password valid nai hai.\nSait aap password ke safalta se badal sia hoga nai to nawaa temporary password ke maang karaa hoga.",
+       "resetpass-wrong-oldpass": "Temporary, nai to abhi ke password, valid nai hai.\nSait aap password ke badal dia hoga, nai to, nawaa temporary password ke maang karaa hoga.",
        "resetpass-recycled": "Meharbaani kar ke aap aapan password ke badal ke duusra password banao.",
        "resetpass-temp-emailed": "Aap ke temporary code, jiske emai karaa gais rahaa, se login bhayaa hae.\nLogin khatam kare ke khatir aap ke nawaa password banae ke chaahi.",
        "resetpass-temp-password": "Kachcha password:",
        "passwordreset-emaildisabled": "Ii wiki me email ke band kar dewa gais hae.",
        "passwordreset-username": "Sadasya ke naam:",
        "passwordreset-domain": "Domain:",
-       "passwordreset-capture": "Banawa gais e-mail ke dekho",
-       "passwordreset-capture-help": "Agar aap ii box ke tick karaa, tab e-mail (aur uske saathe temporary password)  ke aap ke ii rakam se dekhawa jaai jaise ki iske sadasya ke lage bhej dewa gais hae.",
        "passwordreset-email": "E-mail ke address",
        "passwordreset-emailtitle": "{{SITENAME}} me account ke jaankari",
        "passwordreset-emailtext-ip": "Koi (hoe sake aap, IP address $1 se) {{SITENAME}} ($4) pe aap ke account ke baare me jaankari maanga hae. Niche likha gias sadasya ii e-mail se associated hae.  {{PLURAL:$3|account hae|accounts hae}}\n\n$2\n\n{{PLURAL:$3|Ii temporary password|Ii sab temporary passwords}}  {{PLURAL:$5|ek din|$5 din}} me khalaas hoi.\nAap ke chaahi ki aap login kar ke ek nawaa password banao.  Agar aur koi ii request karis hae, nai to agae aap aapan purana paasword ke yaad kar liya hae, tab ii sandes ke baare me bhuul jaao aur purana password use karte raho.",
        "passwordreset-emailelement": "Sadasya ke naam: \n$1\n\nKuchh din ke khatir password: \n$2",
        "passwordreset-emailsentemail": "Agar ii email aap ke account se associated hai tab ek password reset email ke bheja jaai.",
        "passwordreset-emailsentusername": "Agar ii email aap ke username se associated hai tab ek password reset email ke bheja jaai.",
+       "passwordreset-nocaller": "A caller must be provided",
+       "passwordreset-nosuchcaller": "Caller exist nai hoe hai: $1",
+       "passwordreset-invalidemail": "Email address invalid hai",
+       "passwordreset-nodata": "Na username, na email address ke dewa gais rahaa",
        "changeemail": "E-mail address ke badlo, nai to, hatao",
        "changeemail-header": "Aapan email ke badle ke khatir ii form ke bharo. Agar aap koi email ke aapan account se nai associate kare mangtaa hai tab form ke submit kare ke time email address ke blank chhorr do.",
        "changeemail-no-info": "Ii panna ke sidha dekhe ke khaatir, aap ke login kare ke parri.",
        "minoredit": "Ii chhota badlao hai",
        "watchthis": "Ii panna pe dhyaan rakkho",
        "savearticle": "Panna ke bachao",
+       "savechanges": "Badlao ke bachao",
+       "publishpage": "Panna ke publish karo",
+       "publishchanges": "Badlao ke publish karo",
        "preview": "Jhalak dekhao",
        "showpreview": "Preview dekhao",
        "showdiff": "Badlao dekhao",
        "accmailtext": "Ek randomly banawal password ke [[User talk:$1|$1]] ke khatir $2 ke lage bhaja gais hai.\nIi nawa account ke password ke ''[[Special:ChangePassword|change password]]''  panna pe badla jaae sake hai jab aap login karta hai.",
        "newarticle": "(Nawaa)",
        "newarticletext": "Aap ek panna ke jorr ke follow kara hae jon ki abhi nai hae.\nIi panna banae khatir, niche box me type karo (see the [$1 help page] for more info).\nAgar jo aap hian par galti se aae hai tab aapan browser ke '''back''' button pe click karo.",
-       "anontalkpagetext": "----''Ii salah kare waala panna uu anonymous sadasya ke baare me jon abhi account nai banais hai, nai to account ke kaam me nai lawe hai.\nIi kaaran se ham log ke IP address kaam me lae ke ii sadasya ke jaana jae hai.\n\nIi rakam ke IP address ke dher sadasya kaam me lae sake hai.\nAgar aap ek anonymous user hai aur ii sochta hai ki bekar baat aap ke baare me karaa gais hai, tab\n[[Special:CreateAccount|create an account]] or [[Special:UserLogin|log in]] aage ke garrbarri roke khatir aur duusra anonymous users se mistake nai kare ke khatir .''",
+       "anontalkpagetext": "----\n<em>Ii salah kare waala panna uu anonymous sadasya ke baare me jon abhi account nai banais hai, nai to, account ke kaam me nai lawe hai.</em>\nIi kaaran se ham log ke IP address ke kaam me lae ke ii sadasya ke jaana jae hai.\n\nIi rakam ke IP address ke dher sadasya kaam me lae sake hai.\nAgar aap ek anonymous user hai aur ii sochta hai ki bekaar baat aap ke baare me karaa gais hai, tab\n[[Special:CreateAccount|create an account]] nai to [[Special:UserLogin|log in]] aage ke garrbarri roke khatir aur duusra anonymous users se mistake nai kare ke khatir .''",
        "noarticletext": "Abhi ii panna me kuchh likhaa nai hai.\nAap saktaa hai [[Special:Search/{{PAGENAME}}|ii panna ke title khoje]] duusra panna me,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],\nnai to [{{fullurl:{{FULLPAGENAME}}|action=edit}} ii panna ke badlo]</span>.",
        "noarticletext-nopermission": "Abhi ii panna me koi chij likha nai hae.\nAap sakta hae [[Special:Search/{{PAGENAME}}|ii panna ke title ke khoje]] duusra panna me,\nnai to <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>, lekin aap ke ii panna ke banae ke ijaaja tnai hae.",
        "missing-revision": "Panna \"{{FULLPAGENAME}}\" me #$1 badlao nai hae.\nIske kaaran ii hoe sake hae ki ek mitawa gais panna se link karaa jaawe hae.\nIske baare me aur jaankari [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] me paawa jaae sake hae.",
        "userpage-userdoesnotexist": "User account \"<nowiki>$1</nowiki>\" abi registered nai hai.\nCheck karo ki Ii panna ke aap banae/badle mangta hai.",
        "userpage-userdoesnotexist-view": "User account \"$1\" abhi register nai karaa gais hae",
        "blocked-notice-logextract": "Ii sadasya ke abhi rok dewa gais hae.\nSab se nawaa block log entry, aap ke reference ke khatir,  niche dewa gais hae:",
-       "clearyourcache": "'''Note:''' - Save kare ke baad, aap ke sait browser ke cache ke bypass kare ke parri badlao ke dekhe khatir.\n* '''Firefox / Safari:''' me ''Shift'' ke dabae ke ''Reload,'' pe click karo, nai to chaahe ''Ctrl-F5'' nai to ''Ctrl-R'' (''⌘-R''  Mac pe)\n* '''Google Chrome:''' me ''Ctrl-Shift-R'' dabao (''⌘-Shift-R'' Mac pe)\n*  '''Internet Explorer:''' me ''Ctrl'' dabae ke  ''Refresh'' pe click karo, nai to  ''Ctrl-F5'' dabao",
+       "clearyourcache": "<strong>Note:</strong> - Save kare ke baad, aap ke sait browser ke cache ke bypass kare ke parri badlao ke dekhe khatir.\n* <strong>Firefox / Safari:</strong> me <em>Shift</em> ke dabae ke <em>Reload</em/>, pe click karo, nai to chaahe <em>Ctrl-F5</em> nai to <em>Ctrl-R</em> (<em>⌘-R</em>  Mac pe)\n* <strong>Google Chrome:</strong> me <em>Ctrl-Shift-R</em> dabao (<em>⌘-Shift-R</em> Mac pe)\n*  <strong>Internet Explorer:</strong> me <em>Ctrl</em> dabae ke  <em>Refresh</em> pe click karo, nai to  <em>Ctrl-F5</em> dabao\n* <strong>Opera:</strong> Go to <em>Menu → Settings</em> (<em>Opera → Preferences</em> on a Mac) and then to <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
        "usercssyoucanpreview": "'''Salah:''' Bachae se pahile \"{{int:showpreview}}\"  button ke kaam me laae ke aapan nawaa CSS ke test karo.",
        "userjsyoucanpreview": "'''Salah:''' Bachae se pahile  \"{{int:showpreview}}\"  button ke kaam me laae ke aapan nawaa JavaScript ke test karo.",
        "usercsspreview": "'''Yaad rakhna ki aap khali aapan CSS ke jhalak dekhta hai.\nIske abhi save nai karaa gais hai!'''",
        "previewnote": "'''Ii khaali ek jhalak dekhae hai'''\nTumar badlao abhi bachawa nai gais hai!",
        "continue-editing": "Badle waala jagha jaao",
        "previewconflict": "Ii preview uu text dekhae hai jon ki uppar ke text editing area me dekhai agar aap iske save karaa.",
-       "session_fail_preview": "''' Maaf karna! Ham log aap ke badlao ke process nai kare paya hai due to a loss of session data.\nFir se kosis karna.\nAgar ii fir bhi nai chale tab kosis karna [[Special:UserLogout|logging out]]aur fir logging back in.'''",
-       "session_fail_preview_html": "'''Maaf karna! Ham log aap ke badlao ke process ke process nai kare sakaa kahe ki session data abhi nai dekhae hai.'''\n\n''Iske kaaran hai ki {{SITENAME}} me raw HTML enabled hai, preview ke lukae dewa gais hai as a precaution against JavaScript attacks.''\n\n'''Agar ii kanuni badlao hai, tab fir se kosis karna.\nAgar ii fir bhi kaam nai kare, tab [[Special:UserLogout|logging out]] aur logging back in ke kosis karna.'''",
+       "session_fail_preview": "''' Maaf karna! Ham log aap ke badlao ke process nai kare paaya hai due to a loss of session data.\nSaait app ke logout kar dewa gais hai. <strong> Meharbaani kar ii verify karo ki aap logged in hai aur fir se kosis karo.</strong>\nAgar ii fir bhi nai chale tab kosis karna [[Special:UserLogout|logging out]] aur fir logging back in, aur ii check karo ki browser me cookies enabled hai.",
+       "session_fail_preview_html": "Maaf karna! Ham log aap ke badlao ke process nai kare sakaa kahe ki session data abhi nai dekhae hai.\n\n<em>Iske kaaran hai ki {{SITENAME}} me raw HTML enabled hai, preview ke lukae dewa gais hai as a precaution against JavaScript attacks.</em>\n\n<strong>Agar ii kanuni badlao hai, tab fir se kosis karna.</strong>\nAgar ii fir bhi kaam nai kare, tab [[Special:UserLogout|logging out]] aur logging back in ke kosis karna, aur ii check karna ki ii site ke khaatir cookies enabled hai.",
        "token_suffix_mismatch": "''' Aap ke badlao ke reject kar dewa gais hai kahe ki aap ke client punctuation charcters ke token edit me mangle kar diis hai.\nIi badlao ke reject kar dewa gais hai to prevent corruption of the page text.\nIi kabhi kabhi hoe hai jab aap ek buggy web-based anonymous proxy service ke use karta hai.'''",
        "edit_form_incomplete": "Edit form ke kuchh hissa server ke lage nai pahunche paais hae; fir se check karo ki aap ke badlao form me hae, aur fir se form ke bhejo.",
        "editing": "$1 badlawa jae hai",
        "invalid-content-data": "Panna me likha gais chij right nai hae",
        "content-not-allowed-here": "Panna [[$2]] me \"$1\" likhe ke ijaajat nai hae",
        "editwarning-warning": "Ii panna ke chhore se jetna changes aap  karaa hae nai save hoi.\nAgar aap logged in hae, tab aap ii chetauni ke \"{{int:prefs-editing}}\"  vibhag me disable kare saktaa hae.",
+       "editpage-invalidcontentmodel-title": "Content model not supported",
        "editpage-notsupportedcontentformat-title": "Content ke format ke support nai karaa jaawe hae.",
        "editpage-notsupportedcontentformat-text": "Content format $1 ke content model $2 nai support kare hae.",
        "content-model-wikitext": "wikitext",
        "searchprofile-advanced-tooltip": "Custom namespaces me khojo",
        "search-result-size": "$1 ({{PLURAL:$2|1 sabd|$2 sabd}})",
        "search-result-category-size": " {{PLURAL:$1|1 sadasya|$1 sadasya}} ({{PLURAL:$2|1 chhota vibhag|$2 chhota vibhag}}, {{PLURAL:$3|1 file|$3 files}})",
-       "search-redirect": "(redirect $1)",
+       "search-redirect": "($1 se redirect karo)",
        "search-section": "(section $1)",
        "search-category": "(category $1)",
        "search-file-match": "(file content ke match kare hae)",
        "userrights-reason": "Kaaran:",
        "userrights-no-interwiki": "Aap ke duusra wiki me user rights ke badle ke adhikaar nai hai.",
        "userrights-nodatabase": "Database $1 abhi hai nai, nai to local nai hai.",
-       "userrights-nologin": "Sadasya ke user rights de ke khatir, ap ke chaahi ki aap [[Special:UserLogin|log in]] karo ek administrator ke account se.",
-       "userrights-notallowed": "Aap ke lage user rights de aur hatae ke adhikar nai hae.",
        "userrights-changeable-col": "Groups jiske aap badle sakta hai",
        "userrights-unchangeable-col": "Groups jiske aap badle nai sakta hai",
        "userrights-conflict": "User right me conflict hae! Meharbaani kar ke aapan badlao ke fir se review aur confirm karo.",
-       "userrights-removed-self": "App appan ijaajat ke hatae dia hae. Iske natija ii hoi ki app ii panna ke ab nai access kare sakegaa",
        "group": "Jhund:",
        "group-user": "Sadasya",
        "group-autoconfirmed": "Autoconfirmed sadasya",
        "right-siteadmin": "Database ke band karo aur kholo",
        "right-override-export-depth": "Panna aur jurra panna, 5 ke gahirrai talak, ke export karo",
        "right-sendemail": "Duusra sadasya ke lage e-mail bhejo",
-       "right-passwordreset": "Password ke badle waala e-mail ke dekho",
        "right-managechangetags": "Database se banao aur mitao [[Special:Tags|tags]]",
        "newuserlogpage": "Sadasya ke banae waala log",
        "newuserlogpagetext": "Ii sadasya ke banae waala log hai.",
        "contributions": "{{GENDER:$1|Sadasya}} ke yogdaan",
        "contributions-title": "$1 ke yogdaan",
        "mycontris": "Yogdaan",
+       "anoncontribs": "Yogdaan",
        "contribsub2": "{{GENDER:$3|$1}} ($2) ke khatir",
        "contributions-userdoesnotexist": "User account \"$1\" register nai karaa gais hae",
        "nocontribs": "Ii critera ke rakam ke koi badlao nai pawa gais hai.",
        "whatlinkshere-prev": "{{PLURAL:$1|pahile waala|pahile waala $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|aage waala|aage waala $1}}",
        "whatlinkshere-links": "← jorr",
-       "whatlinkshere-hideredirs": "$1 redirects",
-       "whatlinkshere-hidetrans": "$1 transclusions",
+       "whatlinkshere-hideredirs": "$1 redirect",
+       "whatlinkshere-hidetrans": "$1 transclusion",
        "whatlinkshere-hidelinks": "$1 jorr",
        "whatlinkshere-hideimages": "$1 file ke jorr",
        "whatlinkshere-filters": "Filters",
        "javascripttest": "JavaScript ke testing",
        "javascripttest-pagetext-unknownaction": "Unknown action \"$1\".",
        "javascripttest-qunit-intro": "mediawiki.org me [$1 testing documentation] ke dekho.",
-       "tooltip-pt-userpage": "Aap ke sadasya panna",
+       "tooltip-pt-userpage": "{{GENDER:|Aap ke user}} panna",
        "tooltip-pt-anonuserpage": "IP jisme se aap edit karta hai ke sadasya panna",
-       "tooltip-pt-mytalk": "Aap ke baat waala panna",
+       "tooltip-pt-mytalk": "{{GENDER:|Aap ke}} baat waala panna",
        "tooltip-pt-anontalk": "Ii IP address se badlao pe salah",
-       "tooltip-pt-preferences": "Hamaar pasand",
+       "tooltip-pt-preferences": "{{GENDER:|Aap ke}} pasand",
        "tooltip-pt-watchlist": "Panna ke suchi jispe aap dhyan rakhaa hae",
-       "tooltip-pt-mycontris": "Aap ke yogdaan ke suchi",
+       "tooltip-pt-mycontris": "{{GENDER:|Aap ke}} yogdaan ke suchi",
        "tooltip-pt-login": "Aap log in kartaa tab achchha rahataa; lekin jaruri nai hae.",
        "tooltip-pt-logout": "Log out",
        "tooltip-pt-createaccount": "Aap ke ek account banae ke log in kare ke encourage karaa jaae hae; lekin iske jaruri nai hae",
        "tooltip-ca-talk": "Content waala panna ke baare me salah",
-       "tooltip-ca-edit": "Aap ii panna ke badle sakta hai. Meherbaani kar ke bachae se pahile preview button ke kaam me laana.",
+       "tooltip-ca-edit": "Ii panna ke badlo",
        "tooltip-ca-addsection": "Nawaa section suruu karo",
        "tooltip-ca-viewsource": "Ii panna surakchhit hai. Aap iske sooti dekhe sakta hai.",
        "tooltip-ca-history": "Ii panna ke pahile ke badlao",
        "tooltip-t-recentchangeslinked": "Panna jon ki ii panna se jurra hai ke nawaa badlao",
        "tooltip-feed-rss": "Ii panna ke khatir RSS feed",
        "tooltip-feed-atom": "Ii panna ke khatir atom feed",
-       "tooltip-t-contributions": "Ii sadasya ke yogdaan ke suchi dekho",
+       "tooltip-t-contributions": "Yogdaan ke suchi dekho {{GENDER:$1|ii sadasya se}}",
        "tooltip-t-emailuser": "Ii user ke lage ek mail bhejo",
        "tooltip-t-info": "Ii panna ke bare me aur jankari",
        "tooltip-t-upload": "File upload karo",
        "spam_reverting": "Pahile waala badalo, jisme $1 se link nai hai, pe karaa jaawe hai",
        "spam_blanking": "Sab badlao jisme $1 se jorr hai, ke mitawa jaawe hai",
        "spam_deleting": "Sab badlao jisme $1 se jorr hai, ke mitawa jaawe hai",
-       "simpleantispam-label": "Anti-spam check.\nIske fill <strong>NAI</strong> karo!",
+       "simpleantispam-label": "Anti-spam check.\nIske fill <strong>nai</strong> karo!",
        "pageinfo-title": "\"$1\" ke khatir jaankari",
        "pageinfo-not-current": "Maaf karna, lekin purana badlao ke baare me ii jaankari nai de saktaa hae.",
        "pageinfo-header-basic": "Basic jaankari",
        "feedback-subject": "Subject:",
        "feedback-submit": "Submit karo",
        "feedback-thanks": "Dhanyabaad! Aap ke feedback ke panna \"[$2 $1]\" me post karaa gais hae.",
-       "searchsuggest-search": "Khojo",
+       "searchsuggest-search": "{{SITENAME}} me khojo",
        "searchsuggest-containing": "isme hae.....",
        "api-error-badaccess-groups": "Aap ke ii wiki me file upload kare ke ijajat nai hae.",
        "api-error-badtoken": "Internal error: Bad token.",
index 81bfd77..1e48a43 100644 (file)
        "period-am": "AM",
        "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Kategorija|Kategorije|Kategorija}}",
-       "category_header": "Članci u kategoriji \"$1\"",
+       "category_header": "Stranice u kategoriji \"$1\"",
        "subcategories": "Potkategorije",
        "category-media-header": "Mediji u kategoriji \"$1\":",
        "category-empty": "''U ovoj kategoriji trenutačno nema članaka ni medija.''",
        "hidden-category-category": "Skrivene kategorije",
        "category-subcat-count": "Ova kategorija sadrži $2 {{PLURAL:$2|podkategoriju|podkategorije|podkategorija}}, ovaj popis prikazuje $1.",
        "category-subcat-count-limited": "Ova kategorija ima {{PLURAL:$1|podkategoriju|$1 podkategorije|$1 podkategorija}}.",
-       "category-article-count": "{{PLURAL:$2|Ova kategorija sadrži $2 članak.|{{PLURAL:$1|Prikazano je $1 članak|Prikazana su $1 članka|Prikazano je $1 članaka}} od njih $2 ukupno.}}",
+       "category-article-count": "{{PLURAL:$2|Ova kategorija sadrži jednu stranicu.|{{PLURAL:$1|Prikazana je $1 stranica|Prikazane su $1 stranice|Prikazano je $1 stranica}} od njih $2 ukupno.}}",
        "category-article-count-limited": "{{PLURAL:$1|stranica je|$1 stranice su|$1 stranica je}} u ovoj kategoriji.",
        "category-file-count": "Ova kategorija sadrži $2 {{PLURAL:$2|datoteku|datoteke|datoteka}}. {{PLURAL:$1|Slijedi $1 datoteka|Slijede $1 datoteke|Slijedi $1 datoteka}}.",
        "category-file-count-limited": "{{PLURAL:$1|datoteka je|$1 datoteke su|$1 datoteka su}} u ovoj kategoriji.",
        "template-protected": "(zaštićen)",
        "template-semiprotected": "(djelomično zaštićen)",
        "hiddencategories": "Ova stranica je član {{PLURAL:$1|1 skrivene kategorije|$1 skrivene kategorije|$1 skrivenih kategorija}}:",
+       "edittools": "<!-- Ovaj će tekst biti prikazan ispod obrasca za uređivanje i postavljanje. -->",
        "nocreatetext": "Na ovom je projektu ograničeno otvaranje novih stranica.\nMožete se vratiti i uređivati već postojeće stranice ili se [[Special:UserLogin|prijaviti ili otvoriti suradnički račun]].",
        "nocreate-loggedin": "Nemate ovlasti za stvaranje novih stranica.",
        "sectioneditnotsupported-title": "Uređivanje odjeljka nije podržano",
        "revdelete-unsuppress": "Ukloni ograničenja na vraćenim izmjenama",
        "revdelete-log": "Razlog:",
        "revdelete-submit": "Primijeni na {{PLURAL:$1|odabranu inačicu|odabrane inačice}}",
-       "revdelete-success": "'''Vidljivost izmjene uspješno ažurirana.'''",
+       "revdelete-success": "Vidljivost izmjene ažurirana.",
        "revdelete-failure": "'''Vidljivost inačice nije mogla biti ažurirana:'''\n$1",
-       "logdelete-success": "'''Vidljivost uređivanja uspješno postavljena.'''",
+       "logdelete-success": "Vidljivost uređivanja postavljena.",
        "logdelete-failure": "'''Vidljivost evidencije ne može biti postavljena:'''\n$1",
        "revdel-restore": "promijeni dostupnost",
        "pagehist": "stare izmjene",
        "search-suggest": "Mislili ste: $1",
        "search-rewritten": "Prikazuju se rezultati za $1. Umjesto toga pretraži $2.",
        "search-interwiki-caption": "Sestrinski projekti",
-       "search-interwiki-default": "$1 rezultati:",
+       "search-interwiki-default": "Rezultati s projekta $1:",
        "search-interwiki-more": "(više)",
        "search-relatedarticle": "Povezano",
        "searchrelated": "povezano",
        "prefs-watchlist-token": "Token popisa praćenja:",
        "prefs-misc": "Razno",
        "prefs-resetpass": "promijeni zaporku",
-       "prefs-changeemail": "promijeni adresu e-pošte",
+       "prefs-changeemail": "promijeni ili ukloni adresu e-pošte",
        "prefs-setemail": "Postavite E-mail adresu",
        "prefs-email": "Mogućnosti e-maila",
        "prefs-rendering": "Izgled",
        "userrights-lookup-user": "Izaberi suradnika",
        "userrights-user-editname": "Unesite suradničko ime:",
        "editusergroup": "Učitaj suradničke skupine",
-       "editinguser": "Promjena suradničkih prava za suradnika '''[[User:$1|$1]]''' $2",
+       "editinguser": "Promjena suradničkih prava {{GENDER:$1|suradnika|suradnice}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Uredi suradničke skupine",
-       "saveusergroups": "Snimi suradničke skupine",
+       "userrights-viewusergroup": "Pregled suradničkih skupina",
+       "saveusergroups": "Spremi {{GENDER:$1|suradničke}} grupe",
        "userrights-groupsmember": "Član:",
        "userrights-groupsmember-auto": "Uključeni član:",
        "userrights-groups-help": "Možete promijeniti skupine za ovog suradnika:\n* označena kućica pokazuje skupinu kojoj suradnik pripada;\n* neoznačena kućica pokazuje skupinu kojoj suradnik ne pripada;\n* zvjezdica (*) označava skupinu koju ne možete ukloniti kad ju jednom dodate, ili obratno.",
        "rightslogtext": "Ovo je evidencija promjena suradničkih prava.",
        "action-read": "čitanje ove stranice",
        "action-edit": "uređivanje ove stranice",
-       "action-createpage": "stvaranje stranica",
-       "action-createtalk": "stvaranje stranica za razgovor",
+       "action-createpage": "započni ovu stranicu",
+       "action-createtalk": "započni stranicu za razgovor",
        "action-createaccount": "stvaranje ovog suradničkog računa",
        "action-history": "Vidi povijest uređivanja ove stranice",
        "action-minoredit": "označavanje ove izmjene kao manju",
        "action-upload_by_url": "postavljanje ove datoteke preko URL adrese",
        "action-writeapi": "za korištenje pisanja API",
        "action-delete": "brisanje ove stranice",
-       "action-deleterevision": "brisanje ove izmjene",
+       "action-deleterevision": "brisanje izmjena",
        "action-deletedhistory": "gledanje obrisane povijesti ove stranice",
        "action-browsearchive": "pretraživanje izbrisanih stranica",
-       "action-undelete": "vraćanje ove stranice",
-       "action-suppressrevision": "pregledavanje i vraćanje ove sakrivene izmjene",
+       "action-undelete": "vraćanje stranica",
+       "action-suppressrevision": "pregledavanje i vraćanje sakrivenih izmjena",
        "action-suppressionlog": "gledanje ove privatne evidencije",
        "action-block": "blokiranje ovog suradnika",
        "action-protect": "promjenu stupnja zaštite ove stranice",
        "recentchanges-label-plusminus": "Promjena veličine stranice (u bajtovima)",
        "recentchanges-legend-heading": "<strong>Legenda:</strong>",
        "recentchanges-legend-newpage": "Nova stranica",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "recentchanges-submit": "Prikaži",
        "rcnotefrom": "Slijede promjene od <b>$2</b> (prikazano ih je do <b>$1</b>).",
        "rclistfrom": "Prikaži nove promjene počevši od $3 $2",
        "uploadnewversion-linktext": "Postavi novu inačicu datoteke",
        "shared-repo-from": "s projekta $1",
        "shared-repo": "zajednički poslužitelj",
+       "shared-repo-name-wikimediacommons": "Zajednički poslužitelj",
        "upload-disallowed-here": "Ne možete prepisati ovu datoteku.",
        "filerevert": "Ukloni ← $1",
        "filerevert-legend": "Vrati datoteku",
        "listgrants-summary": "Slijedi popis dozvola s pridruženim pristupom suradničkim pravima. Suradnici mogu omogućiti aplikacijama uporabu svojih računa, ali s ograničenim ovlastima na temelju dozvola koje je suradnik dodijelio aplikaciji. Aplikacija koja djeluje u ime suradnika međutim ne može rabiti prava koje suradnik nema.\nMoguće su [[{{MediaWiki:Listgrouprights-helppage}}|dodatne informacije]] o pojedinim pravima.",
        "listgrants-grant": "Dozvola",
        "listgrants-rights": "Prava",
+       "restricted-displaytitle-ignored": "Stranice sa zanemarenim naslovima za prikaz",
        "trackingcategories-nodesc": "Opis nije dostupan.",
        "mailnologin": "Nema adrese pošiljatelja",
        "mailnologintext": "Morate biti [[Special:UserLogin|prijavljeni]]\ni imati valjanu adresu e-pošte u svojim [[Special:Preferences|postavkama]]\nda bi mogli slati poštu drugim suradnicima.",
        "movenotallowedfile": "Nemate ovlasti za premještanje datoteka.",
        "cant-move-user-page": "Nemate dopuštenja za premještanje root suradničkih stranica.",
        "cant-move-to-user-page": "Nemate dopuštenje za premještanje stranice na suradničku stranicu (osim kao podstranicu)",
-       "movepage-max-pages": "Najveća količina od $1 {{PLURAL:$1|stranice|stranica}} je premještena i više od toga neće biti automatski premješteno.",
        "newtitle": "Novi naziv:",
        "move-watch": "Prati ovu stranicu",
        "movepagebtn": "Premjesti stranicu",
        "movepage-page-exists": "Stranica $1 već postoji i ne može biti automatski prepisana",
        "movepage-page-moved": "Stranica $1 je premještena na $2.",
        "movepage-page-unmoved": "Stranica $1 nije mogla biti premještena na $2.",
+       "movepage-max-pages": "Najveća količina od $1 {{PLURAL:$1|stranice|stranica}} je premještena i više od toga neće biti automatski premješteno.",
        "movelogpage": "Evidencija premještanja",
        "movelogpagetext": "Ispod je popis premještenih stranica.",
        "movesubpage": "{{PLURAL:$1|Podstranica|Podstranice}}",
        "tooltip-pt-login": "Predlažemo Vam da se prijavite, međutim nije obvezno.",
        "tooltip-pt-logout": "Odjavi se",
        "tooltip-pt-createaccount": "Predlažemo Vam mogućnost stvaranja računa i prijave, iako to nije nužno.",
-       "tooltip-ca-talk": "Razgovor o stranici",
+       "tooltip-ca-talk": "Razgovorna stranica",
        "tooltip-ca-edit": "Uredi ovu stranicu",
        "tooltip-ca-addsection": "Dodaj novi odlomak",
        "tooltip-ca-viewsource": "Ova stranica je zaštićena. Možete pogledati izvorni kod.",
index 6b1e806..30353f9 100644 (file)
        "pageinfo-length": "Ծավալ (բայթերով)",
        "pageinfo-article-id": "Էջի N",
        "pageinfo-language": "Բովանդակության լեզու",
+       "pageinfo-language-change": "փոխել",
        "pageinfo-robot-policy": "Կարգավիճակը որոնողական համակարգերում",
        "pageinfo-robot-index": "ինդեքսավորվող",
        "pageinfo-robot-noindex": "ինդեքսավորվող չէ",
        "confirmrecreate": "[[User:$1|$1]] ([[User talk:$1|քննարկում]]) մասնակիցը ջնջել է այս էջը ձեր խմաբգրումը սկսելուց հետո՝ հետևյալ պատճառով.\n: ''$2''\nԽնդրում ենք հաստատել, որ դուք իսկապես ուզում եք վերստեղծել այս էջը։",
        "recreate": "Վերստեղծել",
        "unit-pixel": " փիքսել",
-       "confirm_purge_button": "ԼԱՎ",
+       "confirm_purge_button": "Լավ",
        "confirm-purge-top": "Մաքրե՞լ այս էջի քեշը։",
-       "confirm-watch-button": "ԼԱՎ",
+       "confirm-watch-button": "Լավ",
        "confirm-watch-top": "Ավելացնե՞լ ձեր հսկացանկին",
-       "confirm-unwatch-button": "ԼԱՎ",
+       "confirm-unwatch-button": "Լավ",
        "confirm-unwatch-top": "Հեռացնե՞լ Ձեր հսկացանկից։",
        "imgmultipageprev": "← նախորդ էջ",
        "imgmultipagenext": "հաջորդ էջ →",
index 708026c..7430931 100644 (file)
        "changecontentmodel-emptymodels-title": "Nulle modello de contento disponibile",
        "changecontentmodel-emptymodels-text": "Le contento in [[:$1]] non pote esser convertite in alcun typo.",
        "log-name-contentmodel": "Registro de cambiamentos de modello de contento",
-       "log-description-contentmodel": "Eventos relative al modellos de contento de un pagina",
+       "log-description-contentmodel": "Iste pagina monstra cambiamentos in le modello de contento de paginas, e paginas que ha essite create con un modello de contento altere que le predefinite.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|creava}} le pagina $3 con le modello de contento non predefinite \"$5\"",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|cambiava}} le modello de contento del pagina $3 de \"$4\" a \"$5\"",
        "logentry-contentmodel-change-revertlink": "reverter",
        "cant-move-to-user-page": "Tu non ha le permission de renominar un pagina verso un pagina de usator (excepte un subpagina de usator).",
        "cant-move-category-page": "Tu non ha le permission de renominar paginas de categoria.",
        "cant-move-to-category-page": "Tu non ha le permission de renominar un pagina in un pagina de categoria.",
-       "movepage-max-pages": "Le maximo de $1 {{PLURAL:$1|pagina|paginas}} ha essite renominate e nulle altere pagina pote esser renominate automaticamente.",
+       "cant-move-subpages": "Tu non ha le permission de renominar subpaginas.",
+       "namespace-nosubpages": "Le spatio de nomines \"$1\" non permitte subpaginas.",
        "newtitle": "Nove titulo:",
        "move-watch": "Observar le paginas de origine e de destination",
        "movepagebtn": "Renominar pagina",
        "movepage-page-exists": "Le pagina $1 existe ja e non pote esser automaticamente superscribite.",
        "movepage-page-moved": "Le pagina $1 ha essite renominate a $2.",
        "movepage-page-unmoved": "Le pagina $1 non poteva esser renominate a $2.",
+       "movepage-max-pages": "Le maximo de $1 {{PLURAL:$1|pagina|paginas}} ha essite renominate e nulle altere pagina pote esser renominate automaticamente.",
        "movelogpage": "Registro de renominationes",
        "movelogpagetext": "Infra es un lista de paginas renominate.",
        "movesubpage": "{{PLURAL:$1|Subpagina|Subpaginas}}",
        "api-error-badtoken": "Error interne: indicio invalide.",
        "api-error-blocked": "Le modification ha essite blocate pro te.",
        "api-error-copyuploaddisabled": "Le incargamentos per URL es disactivate in iste servitor.",
-       "api-error-duplicate": "Existe jam {{PLURAL:$1|un altere file|altere files}} in le wiki con le mesme contento.",
+       "api-error-duplicate": "Existe jam {{PLURAL:$1|un altere file|altere files}} in le sito con le mesme contento.",
        "api-error-duplicate-archive": "Il habeva jam {{PLURAL:$1|un altere file|altere files}} in le sito con le mesme contento, ma {{PLURAL:$1|illo|illos}} ha essite delite.",
        "api-error-empty-file": "Le file que tu submitteva es vacue.",
        "api-error-emptypage": "Le creation de nove paginas vacue non es permittite.",
        "api-error-missingresult": "Error interne: non poteva determinar si le copia succedeva.",
        "api-error-mustbeloggedin": "Es necessari aperir session pro incargar files.",
        "api-error-mustbeposted": "Error interne: le requesta require HTTP POST.",
-       "api-error-noimageinfo": "Le incargamento succedeva, ma le servitor non forniva alcun information super le file.",
+       "api-error-noimageinfo": "Le incargamento ha succedite, ma le servitor non ha fornite alcun information sur le file.",
        "api-error-nomodule": "Error interne: nulle modulo de incargamento definite.",
        "api-error-ok-but-empty": "Error interne: nulle responsa del servitor.",
        "api-error-overwrite": "Superscriber un file existente non es permittite.",
        "api-error-unclassified": "Un error incognite ha occurrite.",
        "api-error-unknown-code": "Error incognite: \"$1\"",
        "api-error-unknown-error": "Error interne: qualcosa errava durante le tentativa de incargar le file.",
-       "api-error-unknown-warning": "Advertimento incognite: $1",
+       "api-error-unknown-warning": "Advertimento incognite: \"$1\".",
        "api-error-unknownerror": "Error incognite: \"$1\".",
        "api-error-uploaddisabled": "Le incargamento es disactivate in iste wiki.",
        "api-error-verification-error": "Le file pote esser corrumpite o su nomine pote haber un extension errate.",
        "sessionprovider-nocookies": "Le cookies pote esser disactivate. Assecura te de haber activate le cookies e recomencia.",
        "randomrootpage": "Pagina radice aleatori",
        "log-action-filter-block": "Typo de blocada:",
-       "log-action-filter-contentmodel": "Typo de modification de modello de contento:",
+       "log-action-filter-contentmodel": "Typo de cambiamento del modello de contento:",
        "log-action-filter-delete": "Typo de deletion:",
        "log-action-filter-import": "Typo de importation:",
        "log-action-filter-managetags": "Typo de action de gestion de etiquettas:",
        "log-action-filter-block-block": "Blocar",
        "log-action-filter-block-reblock": "Modification de blocada",
        "log-action-filter-block-unblock": "Disblocar",
-       "log-action-filter-contentmodel-change": "Cambio de modello de contento",
-       "log-action-filter-contentmodel-new": "Creation de pagina con modello de contento non standard",
+       "log-action-filter-contentmodel-change": "Cambiamento de modello de contento",
+       "log-action-filter-contentmodel-new": "Creation de pagina con un modello de contento non predefinite",
        "log-action-filter-delete-delete": "Deletion de pagina",
        "log-action-filter-delete-delete_redir": "Superscriptura de redirection",
        "log-action-filter-delete-restore": "Restauration de pagina",
index 3bfc369..45be55c 100644 (file)
        "cant-move-to-user-page": "Anda tidak memiliki hak akses untuk memindahkan halaman ke suatu halaman pengguna (kecuali ke subhalaman pengguna).",
        "cant-move-category-page": "Anda tidak memiliki izin untuk memindahkan halaman kategori.",
        "cant-move-to-category-page": "Anda tidak memiliki izin untuk memindahkan halaman ke halaman kategori.",
-       "movepage-max-pages": "Sejumlah maksimum $1 {{PLURAL:$1|halaman|halaman}} telah dipindahkan dan tidak ada lagi yang akan dipindahkan secara otomatis.",
        "newtitle": "Judul baru:",
        "move-watch": "Pantau halaman ini",
        "movepagebtn": "Pindahkan halaman",
        "movepage-page-exists": "Halaman $1 telah ada dan tidak dapat ditimpa secara otomatis.",
        "movepage-page-moved": "Halaman $1 telah dipindahkan ke $2.",
        "movepage-page-unmoved": "Halaman $1 tidak dapat dipindahkan ke $2.",
+       "movepage-max-pages": "Sejumlah maksimum $1 {{PLURAL:$1|halaman|halaman}} telah dipindahkan dan tidak ada lagi yang akan dipindahkan secara otomatis.",
        "movelogpage": "Log pemindahan",
        "movelogpagetext": "Di bawah ini adalah log pemindahan halaman.",
        "movesubpage": "{{PLURAL:$1|Subhalaman|Subhalaman}}",
index 4184353..6990ca0 100644 (file)
        "searchprofile-advanced-tooltip": "Iочуязаяь цIерий аренашка лаха",
        "search-result-size": "$1 ({{PLURAL:$2|$2 дош|$2 дешаш}})",
        "search-result-category-size": "{{PLURAL:$1|1=$1 дакъа|$1 дакъаш}} ({{PLURAL:$2|1=$2 кIалцатег|$2 кIалцатегаш}}, {{PLURAL:$3|1=$3 паьла|$3 паьлий}})",
-       "search-redirect": "(дIа-Ñ\81ахьожадар $1 тIара)",
+       "search-redirect": "(дIа-Ñ\85Ñ\8cахьожадар $1 тIара)",
        "search-section": "(дáкъа «$1»)",
        "search-suggest": "Хьона эшар ер хила мега: $1",
        "search-interwiki-caption": "Гаргара проекташ",
        "logentry-upload-upload": "$1 {{GENDER:$2|чуяьккхай}} $3",
        "rightsnone": "(яц)",
        "revdelete-summary": "хувцамий сурт оттадар",
-       "searchsuggest-search": "Ð\9bаÑ\85аÑ\80",
+       "searchsuggest-search": "Ð¥Ñ\8cалаÑ\85а {{grammar:prepositional|{{SITENAME}}}} Ñ\87Ñ\83",
        "expand_templates_preview": "Хьалххе бIаргтохар",
        "pagelang-name": "ОагIув",
        "special-characters-group-latin": "Латиной",
index 2fa922a..e61655e 100644 (file)
        "search-external": "Ricerca esterna",
        "searchdisabled": "La ricerca interna di {{SITENAME}} non è attiva; nel frattempo si può provare ad usare un motore di ricerca esterno come Google. (Si noti però che i contenuti di {{SITENAME}} presenti in tali motori potrebbero non essere aggiornati.)",
        "search-error": "Si è verificato un errore durante la ricerca: $1",
+       "search-warning": "Si è verificato un avviso durante la ricerca: $1",
        "preferences": "Preferenze",
        "mypreferences": "preferenze",
        "prefs-edits": "Modifiche effettuate:",
        "changecontentmodel-emptymodels-title": "Nessun modello di contenuto disponibile",
        "changecontentmodel-emptymodels-text": "Il contenuto di [[:$1]] non può essere convertito in alcun tipo.",
        "log-name-contentmodel": "Modifiche del modello contenuti",
-       "log-description-contentmodel": "Eventi relativi al modello di contenuto di una pagina",
+       "log-description-contentmodel": "Questa pagina elenca le modifiche al modello di contenuto delle pagine, e le pagine che sono state create con un modello di contenuto diverso da quello predefinito.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|ha creato}} la pagina $3 utilizzando un modello di contenuto non predefinito \"$5\"",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|ha modificato}} il modello di contenuto della pagina $3 da \"$4\" a \"$5\"",
        "logentry-contentmodel-change-revertlink": "ripristina",
        "cant-move-to-category-page": "Non si dispone dei permessi necessari per spostare la pagina su una categoria.",
        "cant-move-subpages": "Non si dispone dei permessi necessari per spostare le sottopagine.",
        "namespace-nosubpages": "Il namespace \"$1\" non consente sottopagine.",
-       "movepage-max-pages": "È stato spostato il numero massimo di $1 {{PLURAL:$1|pagina|pagine}} e non potranno essere spostate ulteriori pagine automaticamente.",
        "newtitle": "Nuovo titolo:",
        "move-watch": "Aggiungi la pagina agli osservati speciali",
        "movepagebtn": "Sposta la pagina",
        "movepage-page-exists": "La pagina $1 esiste già e non può essere automaticamente sovrascritta.",
        "movepage-page-moved": "La pagina $1 è stata spostata a $2.",
        "movepage-page-unmoved": "La pagina $1 non può essere spostata a $2.",
+       "movepage-max-pages": "È stato spostato il numero massimo di $1 {{PLURAL:$1|pagina|pagine}} e non potranno essere spostate ulteriori pagine automaticamente.",
        "movelogpage": "Spostamenti",
        "movelogpagetext": "Di seguito sono elencate le pagine spostate di recente.",
        "movesubpage": "{{PLURAL:$1|Sottopagina|Sottopagine}}",
        "pageinfo-length": "Lunghezza della pagina (in byte)",
        "pageinfo-article-id": "ID della pagina",
        "pageinfo-language": "Lingua del contenuto della pagina",
+       "pageinfo-language-change": "cambia",
        "pageinfo-content-model": "Modello del contenuto della pagina",
        "pageinfo-content-model-change": "cambia",
        "pageinfo-robot-policy": "Indicizzazione per i robot",
        "api-error-badtoken": "Errore interno: token errato.",
        "api-error-blocked": "Sei stato bloccato, non puoi fare modifiche.",
        "api-error-copyuploaddisabled": "Il caricamento tramite URL è disabilitato su questo server.",
-       "api-error-duplicate": "Sul sito {{PLURAL:$1|c'è già un altro documento|ci sono già altri documenti}} con lo stesso contenuto.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|C'era un altro file|C'erano altri file}} già nel sito con lo stesso contenuto, ma {{PLURAL:$1|è stato cancellato|sono stati cancellati}}.",
+       "api-error-duplicate": "{{PLURAL:$1|Esiste già un altro file|Esistono già altri file}} sul sito con lo stesso contenuto.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Esiste già un altro file|Esistono già altri file}} sul sito con lo stesso contenuto, ma {{PLURAL:$1|è stato cancellato|sono stati cancellati}}.",
        "api-error-empty-file": "Il file selezionato era vuoto.",
        "api-error-emptypage": "La creazione di nuove pagine vuote non è consentita.",
        "api-error-fetchfileerror": "Errore interno: si è verificato un problema durante il recupero del file.",
        "api-error-missingresult": "Errore interno: impossibile determinare se la copia è riuscita.",
        "api-error-mustbeloggedin": "Devi aver effettuato l'accesso per caricare i file.",
        "api-error-mustbeposted": "Errore interno: la richiesta richiede HTTP POST.",
-       "api-error-noimageinfo": "Il caricamento è riuscito, ma il server non ci ha dato alcuna informazione sul file.",
+       "api-error-noimageinfo": "Il caricamento è riuscito, ma il server non ci ha restituito alcuna informazione sul file.",
        "api-error-nomodule": "Errore interno: non è stato impostato il modulo di caricamento.",
        "api-error-ok-but-empty": "Errore interno: nessuna risposta dal server.",
        "api-error-overwrite": "Sovrascrivere un file esistente non è consentito.",
        "api-error-unclassified": "Si è verificato un errore sconosciuto.",
        "api-error-unknown-code": "Errore sconosciuto: \"$1\"",
        "api-error-unknown-error": "Errore interno: qualcosa è andato storto provando a caricare il file.",
-       "api-error-unknown-warning": "Avviso sconosciuto: $1",
+       "api-error-unknown-warning": "Avvertimento sconosciuto: \"$1\".",
        "api-error-unknownerror": "Errore sconosciuto: \"$1\".",
        "api-error-uploaddisabled": "Il caricamento è disabilitato su questa wiki.",
        "api-error-verification-error": "Questo file potrebbe essere danneggiato, o avere l'estensione sbagliata.",
        "log-action-filter-block-reblock": "Modifica blocco",
        "log-action-filter-block-unblock": "Sblocco",
        "log-action-filter-contentmodel-change": "Modifica del modello di contenuto",
-       "log-action-filter-contentmodel-new": "Creazione di pagina con modello di contenuto non standard",
+       "log-action-filter-contentmodel-new": "Creazione di pagina con modello di contenuto non predefinito",
        "log-action-filter-delete-delete": "Cancellazione pagina",
        "log-action-filter-delete-restore": "Ripristino pagina",
        "log-action-filter-delete-event": "Cancellazione registro",
index b1d73f6..e5b0f23 100644 (file)
        "log-action-filter-newusers": "アカウント作成の種類:",
        "log-action-filter-patrol": "巡回の種類:",
        "log-action-filter-protect": "保護の種類:",
+       "log-action-filter-rights": "権限変更の種類:",
        "log-action-filter-suppress": "秘匿の種類:",
        "log-action-filter-upload": "アップロードの種類",
        "log-action-filter-all": "すべて",
index bd26006..aedb811 100644 (file)
        "talk": "Parembugan",
        "views": "Praèn",
        "toolbox": "Piranti",
-       "tool-link-userrights": "Owahi golongan {{GENDER:$1|naraguna}}",
-       "tool-link-userrights-readonly": "Deleng golongan {{GENDER:$1|naraguna}}",
-       "tool-link-emailuser": "Kirimi {{GENDER:$1|naraguna}} iki layangtronik",
+       "tool-link-userrights": "Owahi golongan {{GENDER:$1|panganggo}}",
+       "tool-link-userrights-readonly": "Deleng golongan {{GENDER:$1|panganggo}}",
+       "tool-link-emailuser": "Kirimi {{GENDER:$1|panganggo}} iki layang-é",
        "userpage": "Deleng kaca panganggo",
        "projectpage": "Deleng kaca proyèk",
        "imagepage": "Deleng kaca barkas",
        "cannotchangeemail": "Alamat layang èlèktronik akun ora bisa diganti nèng wiki iki.",
        "emaildisabled": "Situs iki ora bisa ngirim layang èlèktronik.",
        "accountcreated": "Akun wis kagawé",
-       "accountcreatedtext": "Akun naraguna [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|rembug]]) wis digawé.",
+       "accountcreatedtext": "Akun panganggo [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|rembug]]) wis digawé.",
        "createaccount-title": "Gawé rékening kanggo {{SITENAME}}",
        "createaccount-text": "Ana wong sing nggawé sawijining akun utawa rékening kanggo alamat e-mail panjenengan ing {{SITENAME}} ($4) mawa jeneng \"$2\" lan tembung sandi \"$3\". Panjenengan disaranaké kanggo mlebu log lan ngganti tembung sandi panjenengan saiki.\n\nPanjenengan bisa nglirwakaké pesen iki yèn akun utawa rékening iki digawé déné sawijining kaluputan.",
        "login-throttled": "Panjenengan wis kakèhan njajal mlebu log.\nTulung nunggu dhisik $1 sadurungé njajal manèh.",
        "readonlywarning": "'''PÈNGET: Basis data lagi dikunci amerga ana pangopènan, dadi saiki panjenengan ora bisa nyimpen kasil panyuntingan panjenengan. Panjenengan mbokmenawa prelu mindhahaké kasil panyuntingan panjenengan iki menyang panggonan liya kanggo disimpen bésuk.'''\n\nPangurus sing ngunci basis data mènèhi katrangan kaya mengkéné: $1",
        "protectedpagewarning": "'''PÈNGET:  Kaca iki wis dikunci dadi namung panganggo sing nduwé hak aksès pangurus baé sing bisa nyunting.'''\nEntri cathetan pungkasan disadiakake ing ngisor kanggo referensi:",
        "semiprotectedpagewarning": "'''Cathetan:''' Kaca iki lagi pinuju direksa, dadi namung panganggo kadaftar sing bisa nyunting.\nEntri cathetan pungkasan disadiakake ing ngisor kanggo referensi:",
-       "cascadeprotectedwarning": "<strong>Pènget:</strong> Kaca iki wis direksa saéngga mung naraguna kanthi hak pangurus waé sing bisa mbesut amarga kaca iki katransklusi ing {{PLURAL:$1|kaca|kaca-kaca}} sing kareksa runut ngisor iki:",
+       "cascadeprotectedwarning": "<strong>Pènget:</strong> Kaca iki wis direksa saéngga mung panganggo kanthi hak pangurus waé sing bisa mbesut amarga kaca iki katranklusi ing {{PLURAL:$1|kaca|kaca-kaca}} sing kareksa runut ngisor iki:",
        "titleprotectedwarning": "'''Pènget: Kaca iki wis dikunci saéngga perlu [[Special:ListGroupRights|hak mligi]] kanggo gawéné.'''\nEntri cathetan pungkasan disadiakake ing ngisor kanggo referensi:",
        "templatesused": "{{PLURAL:$1|Cithakan|Cithakan}} sing dienggo ing kaca iki:",
        "templatesusedpreview": "{{PLURAL:$1|Cithakan|Cithakan-cithakan}} sing dienggo ing pratilik iki:",
        "showhideselectedversions": "Tampilaké/dhelikaké révisi kapilih",
        "editundo": "wurung",
        "diff-empty": "(Ora ana bedane)",
-       "diff-multi-sameuser": "({{PLURAL:$1|$1 owahan antara}} déning naraguna sing padha ora katuduhaké)",
+       "diff-multi-sameuser": "({{PLURAL:$1|$1 owahan antara}} déning panganggo sing padha ora katuduhaké)",
        "diff-multi-manyusers": "({{PLURAL:$1Siji rèvisi sedhengan|$1 rèvisi sedhengan}} déning luwih saka $2 {{PLURAL:$2|panganggo|panganggo}} ora dituduhaké)",
        "difference-missing-revision": "{{PLURAL:$2|Sak pambenahan|$2 pambenahan}} saka prabédan iki ($1) {{PLURAL:$2|ora ditemokaké|ora ditemokaké}}.\n\nIki biasané kasebab pranala prabedan sing wis ora kanggo saka kaca isi wis dibusak.\nRinciané bisa ditemokaké nèng [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log busak].",
        "searchresults": "Kasiling golèk",
        "grant-editinterface": "Besut jagad aran MediaWiki lan CSS/JavaScript panganggo",
        "grant-editmycssjs": "Besut CSS/JavaScript panganggomu",
        "grant-editmyoptions": "Besut préferènsi panganggomu",
-       "newuserlogpage": "Log naraguna anyar",
+       "newuserlogpage": "Log panganggo anyar",
        "newuserlogpagetext": "Ing ngisor iki kapacak log pandaftaran panganggo anyar.",
        "rightslog": "Log hak panganggo",
        "rightslogtext": "Ing ngisor iki kapacak log pangowahan marang hak-hak panganggo.",
        "listfiles_thumb": "Gambar mini",
        "listfiles_date": "Tanggal",
        "listfiles_name": "Jeneng",
-       "listfiles_user": "Naraguna",
+       "listfiles_user": "Panganggo",
        "listfiles_size": "Ukuran (bita)",
        "listfiles_description": "Dèskripsi",
        "listfiles_count": "Vèrsi",
        "filehist-thumb": "Gambar cilik",
        "filehist-thumbtext": "Gambar cilik kanggo owahan $1",
        "filehist-nothumb": "Ora ana miniatur",
-       "filehist-user": "Naraguna",
+       "filehist-user": "Panganggo",
        "filehist-dimensions": "Alang ujur",
        "filehist-filesize": "Gedhené berkas",
        "filehist-comment": "Tanggapan",
        "linksearch-error": "''Wildcards'' namung bisa dienggo ing bagéyan awal saka jeneng host.",
        "listusersfrom": "Tuduhna panganggo sing diawali karo:",
        "listusers-submit": "Tuduhna",
-       "listusers-noresult": "Naraguna ora ana.",
+       "listusers-noresult": "Panganggo ora ana.",
        "listusers-blocked": "(diblokir)",
        "activeusers": "Dhaptar panganggo aktif",
        "activeusers-intro": "Iki daptar panganggo sing katon lakuné ing $1 {{PLURAL:$1|dina|dina}} kapungkur.",
        "activeusers-count": "$1 {{PLURAL:$1|suntingan|suntingan}} ing {{PLURAL:$3|dina|$3 dina}} pungkasan",
        "activeusers-from": "Tampilna panganggo wiwit saka:",
-       "activeusers-noresult": "Naraguna ora ana.",
+       "activeusers-noresult": "Panganggo ora ana.",
        "listgrouprights": "Hak-hak grup panganggo",
        "listgrouprights-summary": "Ing ngisor iki kapacak dhaftar grup panganggo sing didéfinisi ing wiki iki, kanthi hak-hak aksès gandhèngané.\nInformasi tambahan perkara hak-hak individual bisa ditemokaké ing [[{{MediaWiki:Listgrouprights-helppage}}|kéné]].",
        "listgrouprights-key": "* <span class=\"listgrouprights-granted\">Hak sing diidinaké</span>\n* <span class=\"listgrouprights-revoked\">Hak sing dijabel</span>",
        "ipaddressorusername": "Alamat IP utawa jeneng panganggo",
        "ipbexpiry": "Kadaluwarsa",
        "ipbreason": "Alesan:",
-       "ipbreason-dropdown": "*Alesan umum mblokir\n** Mènèhi informasi palsu\n** Mbusak isi kaca\n** Spam pranala menyang situs njaba\n** Nglebokaké tulisan ngawur ing kaca\n** Tumindak nglècèhaké\n** Ngujar-ujari sawenèh akun\n** Jeneng naraguna ora patut",
+       "ipbreason-dropdown": "*Alesan umum mblokir\n** Mènèhi informasi palsu\n** Mbusak isi kaca\n** Spam pranala menyang situs njaba\n** Nglebokaké tulisan ngawur ing kaca\n** Tumindak nglècèhaké\n** Ngujar-ujari sawenèh akun\n** Jeneng panganggo ora patut",
        "ipb-hardblock": "Alangi panganggo sing wis mlebu log nyunting saka alamat IP iki",
        "ipbcreateaccount": "Penggak nggawé akun utawa rékening",
        "ipbemailban": "Penggak panganggo ngirim layang e-mail",
        "movepagetext": "Formulir ing ngisor iki bakal ngowahi jeneng sawijining kaca, mindhah kabèh sajarahé menyang kaca sing anyar. Irah-irahan utawa judhul sing lawas bakal dadi kaca pangalihan menyang irah-irahan sing anyar. Pranala menyang kaca sing lawas ora bakal diowahi; dadi pastèkna dhisik mriksa pangalihan [[Special:DoubleRedirects|dobel]] utawa [[Special:BrokenRedirects|pangalihan sing rusak]] sawisé pamindhahan. Panjenengan sing tanggung jawab mastèkaké menawa kabèh pranala-pranala tetep nyambung ing kaca panujon kaya samesthiné.\n\nGatèkna yèn kaca iki '''ora''' bakal dipindhah yèn wis ana kaca liyané sing nganggo irah-irahan sing anyar, kejaba kaca iku kosong utawa ora nduwé sajarah panyuntingan. Dadi tegesé panjenengan bisa ngowahi jeneng kaca iku manèh kaya sedyakala menawa panjenengan luput, lan panjenengan ora bisa nimpani kaca sing wis ana.\n\n'''PÈNGET!'''\nPerkara iki bisa ngakibataké owah-owahan sing drastis lan ora kaduga kanggo kaca-kaca sing populèr;\npastekaké dhisik panjenengan ngerti konsekwènsi saka panggayuh panjenengan sadurungé dibanjuraké.",
        "movepagetext-noredirectfixer": "Formulir di bawah ini digunakan untuk mengubah nama suatu halaman dan memindahkan semua data sejarah ke nama baru.\nJudul yang lama akan menjadi halaman peralihan menuju judul yang baru.\nPastikan untuk memeriksa pengalihan [[Special:DoubleRedirects|ganda]] atau [[Special:BrokenRedirects|rusak]].\nAnda bertanggung jawab untuk memastikan bahwa pranala terus menyambung ke halaman yang seharusnya.\n\nPerhatikan bahwa halaman '''tidak''' akan dipindah apabila telah ada halaman yang menggunakan judul yang baru, kecuali bila halaman tersebut kosong atau merupakan halaman peralihan dan tidak mempunyai sejarah penyuntingan.\nIni berarti Anda dapat mengubah nama halaman kembali seperti semula apabila Anda membuat kesalahan, dan Anda tidak dapat menimpa halaman yang telah ada.\n\n'''Peringatan:'''\nHal ini dapat mengakibatkan perubahan yang tak terduga dan drastis bagi halaman yang populer;\nPastikan Anda mengerti konsekuensi dari perbuatan ini sebelum melanjutkan.",
        "movepagetalktext": "Menawa sampéyan nyénthang kothak iki, kaca parembugan sing magepokan bakal otomatis dilih nyang sesirah anyar, kajaba kaca parembugané sing dituju wis ana isiné.\n\nYèn mangkéné, sampéyan kudu ngalih utawa nggabung kaca-kaca iku kanthi manual.",
-       "moveuserpage-warning": "<strong>Pènget:</strong> Panjenengan iki arep ngalih kaca naraguna. Mangga ngèlingi yèn mung kacané sing bakal dilih, déné naragunané <em>ora</em> bakal salin jeneng.",
+       "moveuserpage-warning": "<strong>Pènget:</strong> Panjenengan iki arep ngalih kaca panganggo. Mangga èlingana yèn mung kacané waé sing bakal dilih, déné panganggoné <em>ora</em> bakal ganti jeneng.",
        "movenologintext": "Panjenengan kudu dadi panganggo sing wis ndaftar lan wis [[Special:UserLogin|mlebu log]] kanggo mindhah kaca.",
        "movenotallowed": "Panjenengan ora pareng ngalihaké kaca.",
        "movenotallowedfile": "Panjenengan ora duwé hak kanggo mindhahaké berkas.",
index 04fed96..3a6eec5 100644 (file)
        "cant-move-to-user-page": "თქვენ ვერ გადაიტანთ მომხმარებლის გვერდებს (გარდა მომხმარებელთა ქვეგვერდებისა)",
        "cant-move-category-page": "თქვენ არ გაქვთ კატეგორიის გვერდების გადამისამართების უფლება",
        "cant-move-to-category-page": "თქვენ არ გაქვთ გვერდების გადამისამართების უფლება კატეგორიის გვერდებში",
-       "movepage-max-pages": "$1 {{PLURAL:$1|გვერდი გადაიტანა|გვერდები გადაიტანეს|გადატანილი გვერდების}} — ეს მაქსიმუმია. ავტომატურად მეტი გვერდის გადატანა არ შეიძლება.",
        "newtitle": "ახალი სათაური:",
        "move-watch": "ამ გვერდის კონტროლი",
        "movepagebtn": "გვერდის გადატანა",
        "movepage-page-exists": "გვერდი $1უკვე არსებობს და არ შეიძლება იყოს ავტომატურად გადაწერილი.",
        "movepage-page-moved": "გვერდი $1 გადატანილი იქნა $2-ში.",
        "movepage-page-unmoved": "გვერდი $1 არ შეიძლება გადატანილი იქნას $2-ზე.",
+       "movepage-max-pages": "$1 {{PLURAL:$1|გვერდი გადაიტანა|გვერდები გადაიტანეს|გადატანილი გვერდების}} — ეს მაქსიმუმია. ავტომატურად მეტი გვერდის გადატანა არ შეიძლება.",
        "movelogpage": "გადატანის რეგისტრაცია",
        "movelogpagetext": "ქვემოთ წარმოდგენილია გადატანილ გვერდთა სია.",
        "movesubpage": "{{PLURAL:$1|ქვეგვერდი|ქვეგვერდები}}",
index 6d4f808..ed5ffde 100644 (file)
        "cant-move-to-user-page": "문서를 사용자 문서로 이동할 권한이 없습니다 (하위 문서는 예외).",
        "cant-move-category-page": "분류 문서를 이동할 권한이 없습니다.",
        "cant-move-to-category-page": "문서를 분류 문서로 이동할 권한이 없습니다.",
-       "movepage-max-pages": "{{PLURAL:$1|문서}}를 최대 $1개 이동했으며 나머지 문서는 자동으로 이동하지 않습니다.",
        "newtitle": "새 제목:",
        "move-watch": "원래 문서와 대상 문서를 주시하기",
        "movepagebtn": "문서 이동",
        "movepage-page-exists": "$1 문서가 이미 존재하므로 자동으로 덮어쓸 수 없습니다.",
        "movepage-page-moved": "\"$1\" 문서를 \"$2\" 문서로 이동했습니다.",
        "movepage-page-unmoved": "$1 문서를 $2 문서로 이동할 수 없습니다.",
+       "movepage-max-pages": "{{PLURAL:$1|문서}}를 최대 $1개 이동했으며 나머지 문서는 자동으로 이동하지 않습니다.",
        "movelogpage": "이동 기록",
        "movelogpagetext": "아래는 이동된 모든 문서의 목록입니다.",
        "movesubpage": "{{PLURAL:$1|하위 문서}}",
index dcc8529..d4b7d83 100644 (file)
        "shown-title": "Li her rûpelê $1 {{PLURAL:$1|encam|encaman}} nîşan bide",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) nîşan bide",
        "searchmenu-exists": "'''Rûpeleke bi navê \"[[:$1]]\" li ser vê wîkiyê heye.'''",
-       "searchmenu-new": "<strong>Rûpela \"[[:$1]]\" çêke!</strong>{{PLURAL:$2|0=|See also the page found with your search.|Herwiha li encamên hatiye dîtin jî binêre.}}",
+       "searchmenu-new": "<strong>Rûpela \"[[:$1]]\" çêke!</strong> {{PLURAL:$2|0=|Herwiha li encama hatiye dîtin jî binêre.|Herwiha li encamên hatine dîtin jî binêre.}}",
        "searchprofile-articles": "Rûpelên naverokê",
        "searchprofile-images": "Multîmedya",
        "searchprofile-everything": "Her tişt",
index 42ac1ce..5fe5262 100644 (file)
        "passwordreset-emailelement": "Benotzernumm: \n$1\n\nTemporärt Passwuert: \n$2",
        "passwordreset-emailsentemail": "Wann dës E-Mailadress mat Ärem Benotzerkont assoziéiert ass, da gëtt Eng E-Mail fir d'Passwuert zréckzesetze geschéckt.",
        "passwordreset-emailsentusername": "Wann eng E-Mailadress mat dësem Benotzernumm associéiert ass, da gëtt Eng E-Mail fir d'Passwuert zeréckzesetze geschéckt.",
+       "passwordreset-ignored": "D'Zrécksetze vum Passwuert gouf net verschafft. Vläicht war de Fournisseur net agestallt?",
        "passwordreset-invalidemail": "Net-valabel E-Mail-Adress",
        "passwordreset-nodata": "Et gouf weder e Benotzernumm nach e Passwuert uginn",
        "changeemail": "E-Mail-Adress änneren oder ewechhuelen",
        "action-delete": "dës Säit ze läschen",
        "action-deleterevision": "Versioune läschen",
        "action-deletedhistory": "déi geläscht Versiounen vun enger Säit weisen",
+       "action-deletedtext": "geläschte Versiounstext weisen",
        "action-browsearchive": "no geläschte Säiten ze sichen",
        "action-undelete": "Säite restauréieren",
        "action-suppressrevision": "verstoppt Versiounen nokucken a restauréieren",
        "uploadscripted": "An dësem Fichier ass HTML- oder Scriptcode, dee vun engem Webbrowser falsch interpretéiert kéint ginn.",
        "upload-scripted-pi-callback": "Et ass net méiglech XML-Fichieren eropzelueden an deenen XML-Stylesheet Instruktioune fir d'Verschaffen drastinn",
        "uploaded-hostile-svg": "Net sécheren CSS am Stilelement vum eropgeluedene SVG-Fichier fonnt.",
+       "uploaded-image-filter-svg": "Bildfilter mat der URL: <code>&lt;$1 $2=\"$3\"&gt;</code> am eropgeluedenen SVG-Fichier fonnt.",
        "uploadscriptednamespace": "An dësem SVG-Fichier ass en illegalen Nummraum \"$1\"",
        "uploadinvalidxml": "Den XML am eropgelueden Fichier konnt net verschafft ginn.",
        "uploadvirus": "An dësem Fichier ass ee Virus! Detailer: $1",
        "apisandbox": "API-Sandkëscht",
        "apisandbox-jsonly": "Fir d'API-Sandkëscht ze benotze braucht Dir JavaScript.",
        "apisandbox-api-disabled": "API ass op dësem Site ausgeschalt.",
+       "apisandbox-fullscreen": "Panel expandéieren",
        "apisandbox-unfullscreen": "Säit weisen",
        "apisandbox-submit": "Ufro maachen",
        "apisandbox-reset": "Eidel maachen",
        "apisandbox-results": "Resultater",
        "apisandbox-sending-request": "Schécke vun der API-Ufro...",
        "apisandbox-loading-results": "Ofruffe vun den API-Resultater...",
+       "apisandbox-request-params-json": "JSON-Parameteren:",
        "apisandbox-request-url-label": "URL fir Ufroen:",
        "apisandbox-request-time": "Dauer vun der Ufro: {{PLURAL:$1|$1 ms}}",
        "apisandbox-alert-page": "Felder op dëser Säit sinn net valabel.",
        "cant-move-to-user-page": "Dir hutt net d'Recht fir eng Säit op eng Benotzersäit (ausser op eng Ënnersäit vun enger Benotzersäit) ze réckelen.",
        "cant-move-category-page": "Dir hutt net déi néideg Rechter fir Kategorie-Säiten ze réckelen.",
        "cant-move-to-category-page": "Dir hutt net déi néideg Rechter fir eng Säit op eng Kategoriesäit ze réckelen.",
-       "movepage-max-pages": "Déi Maximalzuel vu(n) $1 {{PLURAL:$1|Säit gouf|Säite goufe}} gouf geréckelt. All déi aner Säite kënnen net automatesch geréckelt ginn.",
+       "cant-move-subpages": "Dir hutt net d'Recht fir Ënnersäiten ze réckelen.",
        "newtitle": "Neien Titel:",
        "move-watch": "Dës Säit iwwerwaachen",
        "movepagebtn": "Säit réckelen",
        "movepage-page-exists": "D'Säit $1 gëtt et schonn a kann net automatesch iwwerschriwwe ginn.",
        "movepage-page-moved": "D'Säit $1 gouf op $2 geréckelt.",
        "movepage-page-unmoved": "D'Säit $1 konnt net op $2 geréckelt ginn.",
+       "movepage-max-pages": "Déi Maximalzuel vu(n) $1 {{PLURAL:$1|Säit gouf|Säite goufe}} gouf geréckelt. All déi aner Säite kënnen net automatesch geréckelt ginn.",
        "movelogpage": "Réckellëscht",
        "movelogpagetext": "Dëst ass eng Lëscht vun alle geréckelte Säiten.",
        "movesubpage": "{{PLURAL:$1|Ënnersäit|Ënnersäiten}}",
        "svg-long-error": "Ongëltegen SVG-Fichier: $1",
        "show-big-image": "Original Fichier",
        "show-big-image-preview": "Gréisst vun dësem Preview: $1.",
+       "show-big-image-preview-differ": "Gréisst vun dësem $3-Preview vun dësem $2-Fichier: $1.",
        "show-big-image-other": "Aner {{PLURAL:$2|Opléisung|Opléisungen}}: $1.",
        "show-big-image-size": "$1 × $2 Pixel",
        "file-info-gif-looped": "endlos Schleef",
        "bad_image_list": "Format:\n\nNëmmen Zeilen, déi mat engem * ufänken, ginn ausgewäert. Als éischt no dem * muss ee Link op een net gewënscht Bild stoen.\nDuerno sti Linken déi Ausnamen definéieren, an deenen hirem Kontext dat Bild awer opdauchen däerf.",
        "metadata": "Metadaten",
        "metadata-help": "An dësem Fichier si weider Informatiounen, déi normalerweis vun der Digitalkamera oder dem benotzte Scanner kommen. Wann de Fichier nodréiglech geännert gouf, kann et sinn datt eenzel Detailer net mat dem aktuelle Fichier iwwereneestëmmen.",
-       "metadata-expand": "Weis detailléiert Informatiounen",
-       "metadata-collapse": "Verstopp detailléiert Informatiounen",
+       "metadata-expand": "Detailléiert Informatioune weisen",
+       "metadata-collapse": "Detailléiert Informatioune verstoppen",
        "metadata-fields": "D'Bild-Meta-Felder aus dëser Lëscht ginn op Bildbeschreiwungssäite gewise wann d'Metadatentafel zesummegeklappt ass.\nDéi aner sinn am Standard verstoppt.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Breet",
        "exif-imagelength": "Längt",
        "htmlform-user-not-exists": "<strong>$1</strong> gëtt et net.",
        "htmlform-user-not-valid": "<strong>$1</strong> ass kee valabele Benotzernumm.",
        "logentry-delete-delete": "$1 {{GENDER:$2|huet}} d'Säit $3 geläscht",
+       "logentry-delete-delete_redir": "$1 huet d'Viruleedung $3 duerch Iwwerschreiwe {{GENDER:$2|geläscht}}.",
        "logentry-delete-restore": "$1 {{GENDER:$2|huet}} d'Säit $3 restauréiert",
        "logentry-delete-event": "$1 huet d'Visibilitéit vun {{PLURAL:$5|engem Evenement|$5 Evenementer}} am Logbuch op $3:$4 {{GENDER:$2|geännert}}",
        "logentry-delete-revision": "$1 huet d'Visibilitéit {{PLURAL:$5|vun enger Versioun|vu(n) $5 Versiounen}} op der Säit $3:$4 {{GENDER:$2|geännert}}",
        "api-error-badtoken": "Interne Feeler: falschen Token.",
        "api-error-blocked": "Dir gouft gespaart a  kënnt dofir keng Ännerunge maachen.",
        "api-error-copyuploaddisabled": "D'Eroplueden iwwer eng URL ass op dësem Server desaktivéiert.",
-       "api-error-duplicate": "Et gëtt schonn {{PLURAL:$1|en anere Fichier|e puer aner Fichiere}} mat dem selwechten Inhalt op dem Site",
-       "api-error-duplicate-archive": "Et gouf schonn {{PLURAL:$1| een anere Fichier|e puer aner Fichieren}} op dem Site mat deemselwechten Inhalt, {{PLURAL:$1|e gouf|se goufen}} awer geläscht.",
+       "api-error-duplicate": "Et gëtt schonn {{PLURAL:$1|een anere Fichier|e puer aner Fichiere}} mam selwechten Inhalt um Site",
+       "api-error-duplicate-archive": "Et gouf schonn {{PLURAL:$1|een anere Fichier|e puer aner Fichieren}} um Site mam selwechten Inhalt, {{PLURAL:$1|e gouf|se goufen}} awer geläscht.",
        "api-error-empty-file": "De Fichier deen Dir geschéckt hutt war eidel.",
        "api-error-emptypage": "Et ass net erlaabt nei, eidel Säiten unzeleeën.",
        "api-error-fetchfileerror": "Interne Feeler: beim Opruffe vum Fichier huet eppes net funktionéiert.",
        "api-error-stashfilestorage": "Beim Späichere vum Fichier ass ee Feeler geschitt.",
        "api-error-stashzerolength": "De Server konnt de Fichier net späicheren, well en eng Längt vun Null hat.",
        "api-error-stashnotloggedin": "Dir musst ageloggt si fir Fichiere späicheren ze kënnen.",
+       "api-error-stashnosuchfilekey": "De Schlëssel vum Fichier op deen Dir am Späicher zréckgräife wëllt gëtt et net.",
        "api-error-timeout": "De Server huet net bannen där Zäit geäntwert déi virgesinn ass.",
        "api-error-unclassified": "En onbekannte Feeler ass geschitt",
        "api-error-unknown-code": "Onbekannte Feeler: \"$1\"",
        "api-error-unknown-error": "Interne Feeler: beim Versuch fir Äre Fichier eropzelueden ass eppes schif gaang",
-       "api-error-unknown-warning": "Onbekannte Warnung: $1",
+       "api-error-unknown-warning": "Onbekannte Warnung: \"$1\".",
        "api-error-unknownerror": "Onbekannte Feeler: \"$1\".",
        "api-error-uploaddisabled": "D'Eroplueden ass op dëser Wiki ausgeschalt.",
        "api-error-verification-error": "Dëse Fichier kéint korrupt sinn, oder en huet eng falsch Erweiderung.",
        "sessionprovider-nocookies": "Cookië sinn eventuell desaktivéiert. Vergewëssert Iech datt Dir d'Cookien aktivéiert hutt a probéiert nach eng Kéier.",
        "randomrootpage": "Zoufalls-Stammsäit",
        "log-action-filter-block": "Typ vun der Spär:",
+       "log-action-filter-contentmodel": "Ännerung vum Typ vum Modell vum Inhalt:",
        "log-action-filter-delete": "Läschtyp:",
        "log-action-filter-import": "Importtyp:",
        "log-action-filter-move": "Réckeltyp:",
        "log-action-filter-block-block": "Spären",
        "log-action-filter-block-reblock": "Ännere vun enger Spär",
        "log-action-filter-block-unblock": "Spär ophiewen",
+       "log-action-filter-contentmodel-change": "Ännerung vum Modell vum Inhalt",
        "log-action-filter-delete-delete": "Säite läschen",
        "log-action-filter-delete-delete_redir": "Viruleedung iwwerschreiwen",
        "log-action-filter-delete-restore": "Säiterestauratioun",
        "authform-wrongtoken": "Falschen Token",
        "specialpage-securitylevel-not-allowed-title": "Net erlaabt",
        "specialpage-securitylevel-not-allowed": "Leider däerft Dir dës Säit net benotze well Är Identitéit net konnt iwwerpréift ginn.",
+       "authpage-cannot-create-continue": "Onméiglech fir mam Uleeë vum Benotzerkont virunzefueren. Är Sessioun hat wahrscheinlech en Timeout.",
+       "authpage-cannot-link": "D'Linke mam Benotzerkont konnt net ugefaange ginn.",
        "cannotauth-not-allowed-title": "Autorisatioun refuséiert",
        "cannotauth-not-allowed": "Dir däerft dës Säit net benotzen",
        "changecredentials-submit": "Idendifikatiounsinformatiounen änneren",
index a497488..90e5058 100644 (file)
        "actions": "Крар",
        "namespaces": "ТӀварарин генгвилер",
        "variants": "Жуьреяр",
+       "navigation-heading": "Навигация",
        "errorpagetitle": "ГъалатӀ",
        "returnto": "$1 ччиниз элкъвена хтун",
        "tagline": "{{SITENAME}} Cайтдихъай",
        "nstab-template": "Чешне",
        "nstab-help": "Куьмекдин ччин",
        "nstab-category": "Категория",
+       "mainpage-nstab": "Кьилин чин",
        "nosuchaction": "Ихьтин кар авайд ттуш",
        "nosuchspecialpage": "Ихьтин куьмекчи ччин авайд ттуш",
        "error": "ГъалатӀ",
        "emailconfirmlink": "Куь электрон почтунин адрес тестикьун.",
        "accountcreated": "Аккаунт туькӀуьрнава",
        "loginlanguagelabel": "ЧӀал: $1",
+       "pt-login": "Гьахьун",
+       "pt-createaccount": "Аккаунт туькӀуьрун",
+       "pt-userlogout": "ЭкъечӀун",
        "changepassword": "Парол дегишарун",
        "resetpass_header": "Аккаунтдин парол дегишун",
        "oldpassword": "ЦӀуру парол:",
        "prevn": "Вилик фейи  {{PLURAL:$1|$1}}",
        "nextn": "Гуьгъуьнин {{PLURAL:$1|$1}}",
        "prevn-title": "Вилик фейи  $1 {{PLURAL:$1|1=нетижа|нетижаяр}}",
-       "nextn-title": "КЪведай $1 {{PLURAL:$1|1=нетижа|нетижаяр}}",
+       "nextn-title": "Къведай $1 {{PLURAL:$1|1=нетижа|нетижаяр}}",
        "shown-title": "Къалурин $1 {{PLURAL:$1|1=нетижа|нетижаяр}} чъина",
        "viewprevnext": "Килигун ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''И вики-проектда \"[[:$1]]\" тlвар алай ччин ава.'''",
        "newpageletter": "Цl",
        "boteditletter": "б",
        "rc_categories_any": "ГЬар са",
+       "rc-change-size-new": "Масакlа авунилай ахпа кьадар: $1 байт",
        "rc-enhanced-expand": "Куьлуь-шуьлуьяр къалурун (JavaScript герекзава)",
        "rc-enhanced-hide": "Куьлуь-шуьлуьяр чуьнуьха",
        "recentchangeslinked": "Галкlанвай дуьзар хъувунар",
        "brokenredirects-edit": "дуьзар хъувун",
        "brokenredirects-delete": "алудун",
        "withoutinterwiki-submit": "Къалурун",
-       "nbytes": "$1 {{PLURAL:$1|1=байт|байтар}}",
+       "nbytes": "$1 {{PLURAL:$1|байт|байт}}",
        "nmembers": "$1 {{PLURAL:$1|1=уьзви|уьзвияр}}",
        "lonelypages": "Eтим xъувун",
        "prefixindex": "Префикс галай вири ччинар",
        "suppress": "Чуьнуьхун",
        "booksources": "Ктабрин чешмеяр",
        "booksources-search-legend": "Ктабдикай малумат жугъурун",
+       "magiclink-tracking-isbn": "ISBN элячӀуникай менфят къачузвай чинар",
        "log": "Журналар",
        "allpages": "Вири ччинар",
        "prevpage": "Алатай чар ($1)",
        "namespace": "Тlварарин генгвал:",
        "invert": "Хкягънавайди элкъуьрун",
        "blanknamespace": "(Асул)",
-       "contributions": "Уртахди кутур крар",
+       "contributions": "{{GENDER:$1|Уртахдин}} кутур крар",
        "contributions-title": "$1 уртахди кутур крар",
        "mycontris": "Кутур кар",
+       "anoncontribs": "Кутур кар",
        "contribsub2": "($1)-ин кутур пай  ($2)",
        "uctop": "алай",
        "month": " Вацралай (ва адалай вилик)",
        "tooltip-pt-mycontris": "Куьне авунвай дуьзар хъувунрин сиягь",
        "tooltip-pt-login": "Квез гьахьиз теклифзава, анжах им мажбури туш",
        "tooltip-pt-logout": "ЭкъечIун",
+       "tooltip-pt-createaccount": "Им мажбури туштlани, чна квез учетдин кхьей затlар туькlуьриз ва системадиз гьахьиз теклифзава.",
        "tooltip-ca-talk": "Къене авайбурун ччин веревирд авун",
-       "tooltip-ca-edit": "Ð\9aвевай Ð¸ Ñ\87Ñ\87ин Ð¼Ð°Ñ\81акIа Ð¸Ð¹Ð¸Ð· Ð¶ÐµÐ´Ð°. Ð§Ñ\87ин Ñ\85Ñ\83Ñ\8cдалди Ð²Ð¸Ð»Ð¸Ðº, Ñ\81иÑ\84Ñ\82е ÐºÐ¸Ð»Ð¸Ð³Ñ\83ндиз Ð¸Ð»Ð¸Ñ\81.",
+       "tooltip-ca-edit": "Ð\98 Ñ\87Ñ\87ин Ð´Ñ\83Ñ\8cзаÑ\80 Ñ\85Ñ\8aÑ\83вÑ\83н",
        "tooltip-ca-addsection": "Гатlунив цlийи кьил",
        "tooltip-ca-viewsource": "И ччин хвенвайд я, амма квевай адан къене авайбуруз килигиз жеда.",
        "tooltip-ca-history": "И ччинин алатай масакIавилерин журнал",
        "tooltip-rollback": "«Кьулухъди чӀугун» и ччиндиз эхиримжи кар кутазвайди патай авунвай дуьзар хъувунар са тӀампуналди paxкурзава",
        "tooltip-undo": "«Гьич авун»  авунвай дуьзар хъувун paxкурзава ва сифтедин килигунин режимда  дуьзар хъувундин форма ахъа йийзва. Им нетижадиз себеб алава йийз мумкинвал гузва",
        "tooltip-summary": "Куьруь нетижа гьадрун",
+       "simpleantispam-label": "Анти-спам юхламишун.\nИнал ацlур <strong>мийир</strong>!",
        "pageinfo-header-edits": "Дуьзар хъувун",
        "pageinfo-edits": "Дьузар хъувунрин кьадар",
+       "pageinfo-toolboxlink": "Чиникай малумат",
        "previousdiff": "Вилик алатай дуьзар хъувун",
        "nextdiff": "ЦIийи масакIаяр",
        "file-info-size": "$1 × $2 пикселар, файлдин кьадар: $3, MIME жуьре: $4",
        "file-nohires": "Идалайни хъсан ери авайд туш",
        "svg-long-desc": "SVG файл, номилдаказ $1 $2 × пикселяр, файлдин кьадар: $3",
        "show-big-image": "ЦӀарафа хвена тунвай жергедай",
+       "show-big-image-size": "$1 × $2 пиксел",
        "bad_image_list": "Формат гьихьтинди хьана кlанда:\n\nCиягьда авай анжах (* лишандихъ галаз эгечIзавай цIарарин) элементар гьисабдиз къачуда.\nЦlарцIе авай сад лагьай элячIун ттун патал къадагъа алай шикилдиз элячIун хьана кlанзава.\nГьар са цlарцIе авай гьар са ахпагьан элячIунар кьетIендинбур хьиз кьабулда, мисал яз, суьрет тваз мумкинвал авай ччинар.",
        "metadata": "Метамалуматар",
        "metadata-help": "И файлдин къене гилигнавай адет яз камера ва я сканер куьмекдалди алава авунвай  малумат ава. Файл ахпа дуьзур хъувуначтlа, бязи параметрар алай суьретдив кьун тахьун мумкин я.",
        "feedback-close": "Авунва",
        "feedback-message": "Чар:",
        "feedback-subject": "Тема:",
+       "searchsuggest-search": "{{SITENAME}} къекъуьн",
        "expand_templates_xml_output": "XML акъудун",
        "expand_templates_ok": "ОК",
        "expand_templates_remove_comments": "Баянар алудун"
index ebf6524..54bd07e 100644 (file)
        "cant-move-to-user-page": "No ti g'hæ o permisso pe mesciâ a pagina insce 'na pagina utente (escluse e sottopagine utente).",
        "cant-move-category-page": "No ti g'hæ o permisso pe mesciâ de categorie.",
        "cant-move-to-category-page": "No ti g'hæ o permisso pe mesciâ a pagina insce 'na categoria.",
-       "movepage-max-pages": "L'è stæto mesciou o nummero mascimo de $1 {{PLURAL:$1|paggina|paggine}}: aotomaticamente no ne saiâ mesciou ciu.",
        "newtitle": "Noeuvo tittolo:",
        "move-watch": "Azzonze a li osservæ speçiâli",
        "movepagebtn": "Stramûâ a paggina",
        "movepage-page-exists": "A paggina $1 a l'existe za e a no poeu ese aotomaticamente soviascrita.",
        "movepage-page-moved": "A paggina $1 a l'è stæta mesciaa a $2.",
        "movepage-page-unmoved": "A paggina $1 a no poeu ese mesciâ a $2.",
+       "movepage-max-pages": "L'è stæto mesciou o nummero mascimo de $1 {{PLURAL:$1|paggina|paggine}}: aotomaticamente no ne saiâ mesciou ciu.",
        "movelogpage": "Lista di stramûi",
        "movelogpagetext": "De sotta una lista de tutti i stramui de paggina.",
        "movesubpage": "{{PLURAL:$1|Sottopagina|Sottopagine}}",
index c906996..b0e88f5 100644 (file)
@@ -5,7 +5,8 @@
                        "Erdemaslancan",
                        "Ohpuu",
                        "Warbola",
-                       "아라"
+                       "아라",
+                       "Kengšepā"
                ]
        },
        "sunday": "pivāpǟva",
@@ -71,7 +72,7 @@
        "noindex-category": "Lēḑõd bäz indeksõ",
        "about": "Titõl-tīetõkst",
        "newwindow": "(lǟb vāldiž ūdsõ läbūs)",
-       "cancel": " Kitõgid jarā",
+       "cancel": "Tijālizõks",
        "mytalk": "Nõvpidāmi",
        "navigation": "Navigīerimi",
        "qbfind": "Vȯtšõgid",
@@ -90,6 +91,8 @@
        "history_short": "Istōrij",
        "printableversion": "Drukkimiz versij",
        "permalink": "Iggi siḑīm",
+       "view": "Vaņțõl",
+       "view-foreign": "Vaņțõl pāikas $1",
        "edit": "Redigīer",
        "create": "Lūo",
        "editthispage": "Redigīer siedā līedtõ",
        "lastmodifiedat": "Perri mõitiņtimi: $2 $1",
        "jumpto": "Li:",
        "jumptonavigation": "navigīerimiz kast",
-       "jumptosearch": "Vȯtšõgid",
+       "jumptosearch": "vȯtš",
        "aboutsite": "Iļ {{SITENAME}}",
        "aboutpage": "Project:Tītõl tieutõkst",
        "copyright": "Amā tekstõ um kȭlbatõmist litsents #$1 pierrõ",
        "editold": "redigīerõgid",
        "viewsourceold": "vaņ ovāt-tekstõ",
        "editlink": "redigīerõgid",
-       "viewsourcelink": "vaņ ovāt-tekstõ",
+       "viewsourcelink": "vaņțõl ovāt-tekstõ",
        "editsectionhint": "Redigīer jaggõ $1",
        "toc": "Sižāli",
        "showtoc": "nägţõgid",
-       "hidetoc": "vōrõgid jarā",
+       "hidetoc": "vaŗț",
        "site-rss-feed": "$1 RSS sīeţ",
        "site-atom-feed": "$1 Atom sīeţ",
        "page-rss-feed": "\"$1\" RSS sīeţ",
        "nstab-image": "Bīlda",
        "nstab-template": "Mall",
        "nstab-category": "Kategōrij",
+       "mainpage-nstab": "Eḑḑilēḑ",
        "missing-article": " Datubāz äb lieudõn kizdõd līed ''$1'' $2 tekstõ. Sīkõks võib vȱlda mõitõkst agā istōrij siḑīm jarā kištāntõd lēḑ pǟlõ.  Až ažād äb ūo nei,  võib vȱlda ka vigā sistēms. Siz um kītõmõst ka [[Special:ListUsers/sysop| administrātorõn]] ja tämmõn āndamizt ka sīe līed internet adres",
        "missingarticle-rev": "(redaktsij: $1)",
        "badtitle": "Vigāli pēļikēra",
        "viewsource": "Vaņ ovāt tekstõ",
        "yourname": "Kȭlbatijiznim:",
        "yourpassword": "Sallisõnä:",
+       "userlogin-yourpassword": "Sallisõnā",
+       "userlogin-yourpassword-ph": "Kērat sallisõnā",
        "yourpasswordagain": "Kēratigid sallisõnā ūtstõ:",
        "login": "Log sīezõ",
        "nav-login-createaccount": "Log sīezõ agā registrīer kȭlbatijizõks",
        "userlogout": "Log ulzõ",
        "nologin": "Až täddõn äb ūo eņtš konto, '''$1'''.",
        "nologinlink": "Registrīerõgid täs",
-       "createaccount": "Lūogid ūž konto",
+       "createaccount": "Lūo kont",
        "gotaccount": "Až täddõn jubā um eņtš konto, '''$1'''.",
        "gotaccountlink": "Log sīezõ",
        "userlogin-resetlink": "Kas tēg unīztõ jarā eņtš sizzõlkēratimiz tīetõkst?",
+       "createacct-submit": "Lūo kont",
        "mailmypassword": "Sōtõgid e-kēras ūž sallisõnā",
        "loginlanguagelabel": "Kēļ: $1",
+       "pt-createaccount": "Lūo kont",
        "bold_sample": "Razzi kēra",
        "bold_tip": "Razzi kēra",
        "italic_sample": "Slīp kēra",
        "histfirst": "Ežmizt",
        "histlast": "Perrizt",
        "history-feed-item-nocomment": "$1 - $2",
-       "rev-delundel": "nägţ/vaŗ jarā",
+       "rev-delundel": "nägț/vaŗț",
        "revdel-restore": "Mõitiņt nǟdõbõzt",
        "revertmerge": "Kīeld jarā kubbõ vieddimi",
        "history-title": "Līed mõitõkst istōrij \"$1\"",
        "rightslog": "Kȭlbatijiz õigõmt log",
        "action-edit": "siedā līedtõ mõitiņtõ",
        "nchanges": "$1 {{PLURAL:$1|mõitõks|mõitõkst}}",
-       "recentchanges": "Perrizt mõitõkst",
+       "enhancedrc-history": "Istōrij",
+       "recentchanges": "Perrizt mȭitõkst",
        "recentchanges-legend": "Perrizt mõitõkst",
        "recentchanges-summary": "Vaņ sīe līed pǟl tīedõd perīži mõitõkši.",
        "recentchanges-feed-description": "Vaņ iļ vikipēdijõz tīedõd perīži mõitõkši.",
        "rcnotefrom": "Allõ-pūol um tūodõd mõitõkst  '''$2''' sōņõst: (nägţõbõd amā jemīņ '''$1''' mõitõkst)",
        "rclistfrom": "Nägţ mõitõkši sōņõst: $3 $2",
        "rcshowhideminor": "$1 piškizt parāmtimizt",
+       "rcshowhideminor-show": "Nägț",
+       "rcshowhideminor-hide": "vaŗț",
        "rcshowhidebots": "$1 robōtõd",
+       "rcshowhidebots-show": "Nägț",
+       "rcshowhidebots-hide": "Vaŗț",
        "rcshowhideliu": "$1 sīezõ loggõnd kȭlbatijizt",
+       "rcshowhideliu-hide": "vaŗț",
        "rcshowhideanons": "$1 bäz nimmõ kȭlbatijizt",
+       "rcshowhideanons-show": "Nägț",
+       "rcshowhideanons-hide": "vaŗț",
        "rcshowhidepatr": "$1 vaņtlõd mõitõkst",
        "rcshowhidemine": "$1 min parāmtimizt",
+       "rcshowhidemine-show": "Nägț",
+       "rcshowhidemine-hide": "vaŗț",
        "rclinks": "Nägţ perīži $1 mõitõkši lǟndz $2 pǟva āigal <br />$3",
        "diff": "vaiţ",
        "hist": "istōrij",
-       "hide": "Vaŗ jarā",
+       "hide": "vaŗț",
        "show": "Nägţ",
        "minoreditletter": "p",
        "newpageletter": "N",
        "pager-older-n": "{{PLURAL:$1|jo vaņīmi 1|jo vaņīmizt $1}}",
        "booksources": "Rōntõ vȯtšimi",
        "booksources-search-legend": "Rōntõ vȯtšimi",
+       "booksources-search": "Vȯtš",
        "log": "Logūd",
        "allpages": "Amād lēḑõd",
        "prevpage": "Jedmõli lēḑ ($1)",
        "watchlistfor2": "Kȭlbatijiz $1 ($2) pierāst",
        "addedwatchtext": "Lēḑ \"[[:$1]]\" um sin [[Special:Watchlist|iļ-vaņtlimiz nimkērrõz]] jūrõ pandõd. Jeddõpēḑõn tulbõd mõitõkst sīe līed pǟl ja sīenkõks sidtõd nõvpidāmiz-līed pǟl sugõbõd iļ-vaņtlimiz nimkērrõz  āt [[Special:RecentChanges|perrizt mõitõkst līed pǟl]]  kēratõd  '''razīz''' kēraks.",
        "removedwatchtext": "Lēḑ \"[[:$1]]\" um [[Special:Watchlist|iļ-vaņtlimiz nimkērast]] jarā viedtõd.",
-       "watch": "Vaņtligid iļ sīe",
+       "watch": "Vaņțõl iļ sīe",
        "watchthispage": "Vaņ iļ siedā līedpūoltõ",
        "unwatch": "Lopta iļ-vaņtlimi",
        "watchlist-details": " {{PLURAL:$1|$1 lēḑ|$1 līedtõ}} ātõ iļ-vaņtlimiz nimkēras,  bäz luggõmõt nõvpidāmiz-līedidi.",
        "wlshowlast": "Nägţ perīzt $1 stuņdõ $2 päuvõ",
+       "watchlist-hide": "↓Vaŗț",
        "watchlist-options": "Iļ-vaņtlimiz nimkēra pie-lēmizt",
        "watching": "Vaņtlimi iļ sīe...",
        "unwatching": "Iļ-vaņtlimiz loptimi...",
        "blanknamespace": "(Kēratõkst)",
        "contributions": "{{GENDER:$1|Kȭlbatijiz}} kubsõtīe",
        "contributions-title": "Kȭlbatijiz $1 kubsõtīe",
-       "mycontris": "Min kubsõtīed",
+       "mycontris": "Īņõtīe",
+       "anoncontribs": "Īņõtīe",
        "contribsub2": "Kȭlbatiji $1 ($2) pierāst",
        "uctop": "(tutkāms)",
        "month": " Kūstõ sōņist (un jo vārald)",
        "blocklink": "blokīer",
        "unblocklink": "lopta blokīerimi",
        "change-blocklink": "mõitiņt blokīerimizt",
-       "contribslink": "kubsõtīe",
+       "contribslink": "īņõtīe",
        "blocklogpage": "Blokīerimiz log",
        "blocklogentry": "Blokīerimiz kȭlbatijiz [[$1]], jarā loppõmiz āiga um $2 $3",
        "unblocklogentry": "võtiz jarā kȭlbatijiz $1 blokīerimiz",
        "tooltip-pt-mytalk": "Täd nõvpidāmiz lēḑ",
        "tooltip-pt-preferences": "Min mīeldõbõd ulzõ-vēļimizt",
        "tooltip-pt-watchlist": "Lēḑõd nimkēra, mis iļ vaņtlõd mõitõkši",
-       "tooltip-pt-mycontris": "Sin kubsõtīed nimkēra",
+       "tooltip-pt-mycontris": "Sin īņõtīe nimkēra",
        "tooltip-pt-login": "Mēg panām jeddõl tēḑi sīezõ kēratõm, bet siedā äb ūo vajāg",
        "tooltip-pt-logout": "Log ulzõ",
        "tooltip-ca-talk": "Nõvpidāmi sīe kēratõks iļ",
index 31d3584..a6faaf2 100644 (file)
@@ -9,7 +9,7 @@
                ]
        },
        "tog-underline": "ການຂີດເສັ້ນກ້ອງລິງກ໌:",
-       "tog-hideminor": "à»\80àº\8aືà»\88ອàº\87àº\81າàº\99àº\94ັàº\94à»\81àº\81à»\89ເລັກນ້ອຍໃນໜ້າປັບປຸງລ້າສຸດ",
+       "tog-hideminor": "à»\80àº\8aືà»\88ອàº\87àº\81າàº\99à»\81àº\81à»\89à»\84àº\82ເລັກນ້ອຍໃນໜ້າປັບປຸງລ້າສຸດ",
        "tog-hidepatrolled": "ເຊື່ອງການແກ້ໄຂທີ່ກວດສອບແລ້ວໃນໜ້າປັບປຸງລ້າສຸດ",
        "tog-newpageshidepatrolled": "ເຊື່ອງໜ້າທີ່ກວດສອບແລ້ວໃນລາຍການໜ້າໃໝ່",
        "tog-hidecategorization": "ເຊື່ອງການຈັດໝວດໝູ່ໜ້າ",
@@ -17,8 +17,8 @@
        "tog-usenewrc": "ຈັດກຸ່ມການປ່ຽນແປງແບ່ງຕາມໜ້າຢູ່ໃນລາຍການປັບປຸງລ້າສຸດແລະລາຍການຕິດຕາມ",
        "tog-numberheadings": "ກຳນົດເລກຫົວເລື່ອງອັດຕະໂນມັດ",
        "tog-showtoolbar": "ສະແດງແຖບເຄື່ອງມືແກ້ໄຂ",
-       "tog-editondblclick": "à»\81àº\81à»\89à»\84àº\82à»\9cà»\89າà»\80ມືà»\88ອàº\84ລິàº\81ສອງເທື່ອ",
-       "tog-editsectiononrightclick": "à»\80àº\9bີàº\94à»\83àº\8aà»\89àº\87າàº\99àº\81າàº\99à»\81àº\81à»\89à»\84àº\82ສà»\88ວàº\99à»\82àº\94àº\8dàº\84ລິàº\81ຂວາຢູ່ເທິງຊື່ເລື່ອງຂອງສ່ວນນັ້ນ",
+       "tog-editondblclick": "à»\81àº\81à»\89à»\84àº\82à»\9cà»\89າà»\80ມືà»\88ອàº\81ົàº\94ສອງເທື່ອ",
+       "tog-editsectiononrightclick": "à»\80àº\9bີàº\94à»\83àº\8aà»\89àº\87າàº\99àº\81າàº\99à»\81àº\81à»\89à»\84àº\82ສà»\88ວàº\99à»\82àº\94àº\8dàº\81ົàº\94à»\80ມົາສà»\8càº\94à»\89າàº\99ຂວາຢູ່ເທິງຊື່ເລື່ອງຂອງສ່ວນນັ້ນ",
        "tog-watchcreations": "ເພີ່ມໜ້າທີ່ຂ້ອຍສ້າງແລະໄຟລ໌ທີ່ຂ້ອຍອັບໂຫຼດເຂົ້າໃນລາຍການຕິດຕາມ",
        "tog-watchdefault": "ເພີ່ມໜ້າແລະໄຟລ໌ທີ່ຂ້ອຍແກ້ໄຂເຂົ້າໃນລາຍການຕິດຕາມ",
        "tog-watchmoves": "ເພີ່ມໜ້າແລະໄຟລ໌ທີ່ຂ້ອຍຍ້າຍເຂົ້າໃນລາຍການຕິດຕາມ",
        "tog-minordefault": "ກຳນົດການແກ້ໄຂທຸກຄັ້ງເປັນການແກ້ໄຂເລັກນ້ອຍໂດຍປະລິຍາຍ",
        "tog-previewontop": "ສະແດງໂຕຢ່າງກ່ອນກ່ອງແກ້ໄຂ",
        "tog-previewonfirst": "ສະແດງໂຕຢ່າງໃນການແກ້ໄຂຄັ້ງທຳອິດ",
-       "tog-enotifwatchlistpages": "ອີà»\80ມລຫາà»\80ມືà»\88ອà»\9cà»\89າຫຼືà»\84àº\9fລà»\8cà»\83àº\99ລາàº\8dàº\81າàº\99àº\95ິàº\94àº\95າມປ່ຽນແປງ",
-       "tog-enotifusertalkpages": "ອີà»\80ມລຫາà»\80ມືà»\88ອມີàº\81າàº\99àº\9bà»\88ຽàº\99à»\81àº\9bàº\87à»\9cà»\89າສົàº\99àº\97ະàº\99າàº\81ັàº\9aàº\9cູà»\89à»\83àº\8aà»\89àº\82ອàº\87àº\82à»\89ອàº\8d",
-       "tog-enotifminoredits": "ອີà»\80ມລຫາເຊັ່ນກັນສຳລັບການແກ້ໄຂໜ້າແລະໄຟລ໌ເລັກນ້ອຍ",
-       "tog-enotifrevealaddr": "à»\80àº\9bີàº\94à»\80àº\9cີàº\8dàº\97ີà»\88ຢູà»\88ອີà»\80ມລàº\82ອàº\87àº\82à»\89ອàº\8dà»\83àº\99ອີà»\80ມລແຈ້ງເຕືອນ",
+       "tog-enotifwatchlistpages": "ອີà»\80ມວàº\9aອàº\81àº\82à»\89ອàº\8dà»\80ມືà»\88ອà»\9cà»\89າຫຼືà»\84àº\9fລà»\8cà»\83àº\94à»\9cຶà»\88àº\87à»\83àº\99ລາàº\8dàº\81າàº\99àº\95ິàº\94àº\95າມມີàº\81າàº\99ປ່ຽນແປງ",
+       "tog-enotifusertalkpages": "ອີà»\80ມວàº\9aອàº\81àº\82à»\89ອàº\8dà»\80ມືà»\88ອà»\9cà»\89າສົàº\99àº\97ະàº\99າàº\81ັàº\9aàº\9cູà»\89à»\83àº\8aà»\89àº\82ອàº\87àº\82à»\89ອàº\8dມີàº\81າàº\99àº\9bà»\88ຽàº\99à»\81àº\9bàº\87",
+       "tog-enotifminoredits": "ອີà»\80ມວàº\9aອàº\81àº\82à»\89ອàº\8dເຊັ່ນກັນສຳລັບການແກ້ໄຂໜ້າແລະໄຟລ໌ເລັກນ້ອຍ",
+       "tog-enotifrevealaddr": "à»\80àº\9bີàº\94à»\80àº\9cີàº\8dàº\97ີà»\88ຢູà»\88ອີà»\80ມວàº\82ອàº\87àº\82à»\89ອàº\8dà»\83àº\99ອີà»\80ມວແຈ້ງເຕືອນ",
        "tog-shownumberswatching": "ສະແດງຈຳນວນຜູ້ໃຊ້ທີ່ຕິດຕາມ",
        "tog-oldsig": "ລາຍເຊັນຂອງທ່ານທີ່ມີຢູ່:",
-       "tog-fancysig": "àº\96ືລາàº\8dà»\80àº\8aັàº\99à»\80àº\9bັàº\99àº\82à»\8dà»\89àº\84ວາມວິàº\81ິ (à»\82àº\94àº\8dàº\9aà»\8dà»\88ມີລິàº\87àº\84໌ອັດຕະໂນມັດ)",
+       "tog-fancysig": "àº\96ືລາàº\8dà»\80àº\8aັàº\99à»\80àº\9bັàº\99àº\82à»\8dà»\89àº\84ວາມວິàº\81ິ (à»\82àº\94àº\8dàº\9aà»\8dà»\88ມີລິàº\87àº\81໌ອັດຕະໂນມັດ)",
        "tog-uselivepreview": "ໃຊ້ການສະແດງໂຕຢ່າງແບບສົດ",
        "tog-forceeditsummary": "ເຕືອນເມື່ອຊ່ອງຄຳອະທິບາຍໂດຍຫຍໍ້ວ່າງເປົ່າ",
        "tog-watchlisthideown": "ເຊື່ອງການແກ້ໄຂຂອງຂ້ອຍຈາກລາຍການຕິດຕາມ",
-       "tog-watchlisthidebots": "ເຊື່ອງ ການດັດແກ້ ໂດຍ ບອທ໌ ໃນລາຍການຕິດຕາມຂອງຂ້ອຍ",
-       "tog-watchlisthideminor": "ເຊື່ອງ ການດັດແກ້ເລັກນ້ອຍ ໃນ ລາຍການຕິດຕາມຂອງຂ້ອຍ",
-       "tog-watchlisthideliu": "ເຊື່ອງການດັດແກ້ ໂດຍ ຜູ້ໃຊ້ໄດ້ເຊັນເຂົາ ໃນ ລາຍການຕິດຕາມ",
-       "tog-watchlisthideanons": "ເຊື່ອງ ການດັດແກ້ໂດຍຜູ້ໃຊ້ ບໍ່ສະແດງຊື່ ຈາກ ລາຍການຕິດຕາມ",
-       "tog-watchlisthidepatrolled": "ເຊື່ອງ ການລາດຕະເວນດັດແກ້ ໃນ ລາຍການຕິດຕາມ",
-       "tog-ccmeonemails": "ສົ່ງສຳເນົາ ອີເມລ ທີ່ ຂ້ອຍສົ່ງຫາຜູ້ອື່ນ ໃຫ້ ຂ້ອຍ",
-       "tog-diffonly": "ບໍ່ສະແດງເນື້ອໃນຂອງບົດຄວາມ ຢູ່ທາງລຸ່ມ ສ່ວນຕ່າງ",
-       "tog-showhiddencats": "ສະແດງໝວດເຊື່ອງ",
+       "tog-watchlisthidebots": "ເຊື່ອງການແກ້ໄຂໂດຍບັອດໃນລາຍການຕິດຕາມຂອງຂ້ອຍ",
+       "tog-watchlisthideminor": "ເຊື່ອງການແກ້ໄຂເລັກນ້ອຍໃນລາຍການຕິດຕາມຂອງຂ້ອຍ",
+       "tog-watchlisthideliu": "ເຊື່ອງການແກ້ໄຂໂດຍຜູ້ໃຊ້ທີ່ໄດ້ເຂົ້າສູ່ລະບົບແລ້ວໃນລາຍການຕິດຕາມ",
+       "tog-watchlistreloadautomatically": "ໂຫຼດລາຍການຕິດຕາມຄືນໃໝ່ເມື່ອໃດກໍຕາມທີ່ໂຕກັ່ນຕອງມີການປ່ຽນແປງ (ຕ້ອງໃຊ້ JavaScript)",
+       "tog-watchlisthideanons": "ເຊື່ອງການແກ້ໄຂໂດຍຜູ້ໃຊ້ທີ່ບໍ່ສະແດງຊື່ໃນລາຍການຕິດຕາມ",
+       "tog-watchlisthidepatrolled": "ເຊື່ອງການແກ້ໄຂແບບລາດຕະເວນໃນລາຍການຕິດຕາມ",
+       "tog-watchlisthidecategorization": "ເຊື່ອງການຈັດໝວດໝູ່ໜ້າ",
+       "tog-ccmeonemails": "ສົ່ງສຳເນົາອີເມວທີ່ຂ້ອຍໄດ້ສົ່ງຫາຜູ້ອື່ນໃຫ້ຂ້ອຍ",
+       "tog-diffonly": "ບໍ່ສະແດງເນື້ອໃນຂອງບົດຄວາມຢູ່ຂ້າງລຸ່ມ ສ່ວນຕ່າງ",
+       "tog-showhiddencats": "ສະແດງໝວດທີ່ເຊື່ອງຢູ່",
+       "tog-norollbackdiff": "ບໍ່ຕ້ອງສະແດງສ່ວນຕ່າງຫຼັງຈາກດຳເນີນການກັບຄືນຢ່າງສຸກເສີນ",
+       "tog-useeditwarning": "ເຕືອນຂ້ອຍເມື່ອຂ້ອຍຈະອອກຈາກໜ້າແກ້ໄຂໂດຍທີ່ຍັງບໍ່ໄດ້ບັນທຶກການປ່ຽນແປງ",
+       "tog-prefershttps": "ໃຊ້ການເຊື່ອມຕໍ່ແບບປອດໄພທຸກຄັ້ງທີ່ເຂົ້າສູ່ລະບົບແລ້ວ",
        "underline-always": "ທຸກຄັ້ງ",
-       "underline-never": "ບໍ່ຂີດ",
-       "underline-default": "ສະກິນຫຼືຄ່າທີ່ຖືກກຳນົດໄວ້ຂອງບຣາວເຊີ",
+       "underline-never": "ບໍ່ຕ້ອງ",
+       "underline-default": "ສະກິນຫຼືຄ່າເລີ່ມຕົ້ນຂອງບຣາວເຊີ",
+       "editfont-style": "ແກ້ໄຂຮູບແບບໂຕໜັງສືໃນພື້ນທີ່:",
+       "editfont-default": "ຄ່າເລີ່ມຕົ້ນຂອງບຣາວເຊີ",
+       "editfont-monospace": "ແບບໂຕໜັງສືທີ່ມີຄວາມກວ້າງຄົງທີ່",
+       "editfont-sansserif": "ແບບໂຕໜັງສືແບບບໍ່ມີເຊີງ",
+       "editfont-serif": "ແບບໂຕໜັງສືແບບມີເຊີງ",
        "sunday": "ວັນອາທິດ",
        "monday": "ວັນຈັນ",
        "tuesday": "ວັນອັງຄານ",
        "oct": "ຕຸລາ",
        "nov": "ພະຈິກ",
        "dec": "ທັນວາ",
+       "january-date": "$1 ມັງກອນ",
+       "february-date": "$1 ກຸມພາ",
+       "march-date": "$1 ມີນາ",
+       "april-date": "$1 ເມສາ",
+       "may-date": "$1 ພຶດສະພາ",
+       "june-date": "$1 ມິຖຸນາ",
+       "july-date": "$1 ກໍລະກົດ",
+       "august-date": "$1 ສິງຫາ",
+       "september-date": "$1 ກັນຍາ",
+       "october-date": "$1 ຕຸລາ",
+       "november-date": "$1 ພະຈິກ",
+       "december-date": "$1 ທັນວາ",
+       "period-am": "ກ່ອນທ່ຽງ",
+       "period-pm": "ຫຼັງທ່ຽງ",
        "pagecategories": "{{PLURAL:$1|ໝວດ|ໝວດ}}",
        "category_header": "ບົດຄວາມໃນໝວດ \"$1\"",
        "subcategories": "ໝວດຍ່ອຍ",
-       "category-media-header": "ໜ້າຕ່າງ າ ໃນ \"$1\"",
-       "category-empty": "''ບໍ່ມີໜ້າໃດຢູ່ໃນໝວດນີ້''",
-       "hidden-categories": "{{PLURAL:$1|ໜວດທີ່ຖືກເຊື່ອງ|ໜວດທີ່ຖືກເຊື່ອງ}}",
-       "hidden-category-category": "ບັນດາໜວດເຊື່ອງ",
-       "category-subcat-count-limited": "ໜວດນີ້ ມີ ໜວດຍ່ອຍ ດັ່ງຕໍ່ໄປນີ້ {{PLURAL:$1|ໜວດຍ່ອຍ|$1 ໜວດຍ່ອຍ}}.",
-       "category-article-count": "{{PLURAL:$2|ໝວດນີ້ມີໜ້າຢູ່ພຽງໜ້າດຽວ|ມີ {{PLURAL:$1|ໜ້າດຽວ|$1 ໜ້າ}} ໃນໝວດນີ້ ເຕັມ $2}}",
+       "category-media-header": "ສື່ໃນໝວດ \"$1\"",
+       "category-empty": "<em>ປັດຈຸບັນໜ້ານີ້ບໍ່ມີໜ້າຫຼືສື່ໃດໆ.</em>",
+       "hidden-categories": "{{PLURAL:$1|ໝວດທີ່ຖືກເຊື່ອງ}}",
+       "hidden-category-category": "ໝວດທີ່ຖືກເຊື່ອງຢູ່",
+       "category-subcat-count": "{{PLURAL:$2|ໝວດນີ້ມີສະເພາະໝວດຍ່ອຍດັ່ງຕໍ່ໄປນີ້.|ໝວດນີ້ມີ {{PLURAL:$1|ໝວດຍ່ອຍ|$1 ໝວດຍ່ອຍ}}, ຈາກ $2 ທັງໝົດ.}}",
+       "category-subcat-count-limited": "ໝວດນີ້ມີ {{PLURAL:$1|ໜວດຍ່ອຍ|$1 ໜວດຍ່ອຍ}} ດັ່ງຕໍ່ໄປນີ້.",
+       "category-article-count": "{{PLURAL:$2|ໝວດນີ້ມີພຽງໜ້າດັ່ງຕໍ່ໄປນີ້.|ມີ {{PLURAL:$1|ໜ້າດຽວ|$1 ໜ້າ}} ໃນໝວດນີ້, ຈາກທັງໝົດ $2.}}",
+       "category-article-count-limited": "ມີ {{PLURAL:$1|ໜ້າດຽວ|$1 ໜ້າ}} ໃນໝວດນີ້.",
+       "category-file-count": "{{PLURAL:$2|ໝວດນີ້ມີພຽງໄຟລ໌ດັ່ງຕໍ່ໄປນີ້.|ມີ {{PLURAL:$1|ໄຟລ໌ດຽວ|ໄຟລ໌ $1 ໄຟລ໌}} ໃນໝວດນີ້, ຈາກທັງໝົດ $2.}}",
+       "category-file-count-limited": "ມີ {{PLURAL:$1|ໄຟລ໌|ໄຟລ໌ $1 ໄຟລ໌}} ໃນໝວດນີ້.",
        "listingcontinuesabbrev": "ຕໍ່.",
+       "index-category": "ໜ້າທີ່ມີດັດຊະນີ",
+       "noindex-category": "ໜ້າທີ່ບໍ່ມີດັດຊະນີ",
+       "broken-file-category": "ໜ້າທີ່ມີລິງກ໌ໄຟລ໌ເສຍ",
        "about": "ກ່ຽວກັບ",
-       "article": "ບົດຄວາມ",
-       "newwindow": "(ເປີດເປັນ ປ່ອງຢ້ຽມ(ວິນໂດ)ໃໝ່ )",
-       "cancel": "ລົບລ້າງ",
-       "moredotdotdot": "ຕື່ມ...",
+       "article": "ໜ້າເນື້ອໃນ",
+       "newwindow": "(ເປີດໃນວິນໂດໃໝ່)",
+       "cancel": "ຍົກເລີກ",
+       "moredotdotdot": "ເພີ່ມເຕີມ...",
+       "morenotlisted": "ລາຍການນີ້ອາດຈະບໍ່ສົມບູນ.",
        "mypage": "ໜ້າ",
        "mytalk": "ສົນທະນາ",
        "anontalk": "ສົນທະນາ",
-       "navigation": "àº\99ຳàº\97ິàº\94",
+       "navigation": "àº\9bà»\89າàº\8dàº\9aອàº\81àº\97າàº\87",
        "and": "&#32;ແລະ",
-       "qbfind": "ຊອກຫາ",
-       "qbedit": "ດັດແກ້",
+       "qbfind": "ຄົ້ນຫາ",
+       "qbbrowse": "ເອີ້ນເບິ່ງ",
+       "qbedit": "ແກ້ໄຂ",
        "qbpageoptions": "ໜ້ານີ້",
-       "qbmyoptions": "ໝ້າຂ້ອຍ",
-       "navigation-heading": "ເມນູນຳທາງ",
-       "errorpagetitle": "ຜິດພາດ",
-       "returnto": "ກັບໄປ  $1.",
+       "qbmyoptions": "ໜ້າຂອງຂ້ອຍ",
+       "faq": "ຄຳຖາມທີ່ພົບເລື້ອຍໆ",
+       "faqpage": "Project:ຄຳຖາມທີ່ພົບເລື້ອຍໆ",
+       "actions": "ການກະທຳ",
+       "namespaces": "ເນມສະເປດ",
+       "variants": "ຄວາມແຕກຕ່າງ",
+       "navigation-heading": "ລາຍການການນຳທາງ",
+       "errorpagetitle": "ຂໍ້ຜິດພາດ",
+       "returnto": "ກັບໄປຫາ $1.",
        "tagline": "ຈາກ {{SITENAME}}",
        "help": "ຊ່ວຍເຫຼືອ",
        "search": "ຄົ້ນຫາ",
        "searcharticle": "ໄປ",
        "history": "ປະຫວັດ",
        "history_short": "ປະຫວັດການດັດແກ້",
+       "updatedmarker": "ອັບເດດຕັ້ງແຕ່ຄັ້ງທີ່ຂ້ອຍມາຢ້ຽມຊົມລ້າສຸດ",
        "printableversion": "ສະບັບພິມໄດ້",
-       "permalink": "ລິàº\87àº\84໌ຖາວອນ",
+       "permalink": "ລິàº\87àº\81໌ຖາວອນ",
        "print": "ພິມ",
+       "view": "ເບິ່ງ",
+       "view-foreign": "ເບິ່ງໃນ $1",
        "edit": "ແກ້ໄຂ",
+       "edit-local": "ແກ້ໄຂຄຳອະທິບາຍທ້ອງຖິ່ນ",
        "create": "ສ້າງ",
-       "editthispage": "ດັດແກ້ໜ້ານີ້",
+       "create-local": "ເພີ່ມຄຳອະທິບາຍທ້ອງຖິ່ນ",
+       "editthispage": "ແກ້ໄຂໜ້ານີ້",
        "create-this-page": "ສ້າງໜ້ານີ້",
        "delete": "ລຶບ",
        "deletethispage": "ລຶບໜ້ານີ້",
+       "undeletethispage": "ຍົກເລີກການລຶບໜ້ານີ້",
+       "undelete_short": "ຍົກເລີກການລຶບ {{PLURAL:$1|ການແກ້ໄຂໜຶ່ງຄັ້ງ|ການແກ້ໄຂ $1 ຄັ້ງ}}",
+       "viewdeleted_short": "ເບິ່ງ {{PLURAL:$1|ການແກ້ໄຂໜຶ່ງຄັ້ງທີ່ລຶບໄປແລ້ວ|ການແກ້ໄຂ $1 ຄັ້ງທີ່ລຶບໄປແລ້ວ}}",
        "protect": "ປົກປ້ອງ",
        "protect_change": "ການປ່ຽນແປງ",
-       "protectthispage": "ປ້ອງກັນໜ້ານີ້",
-       "unprotect": "ປ່ຽນແປງການປ້ອງກັນ",
+       "protectthispage": "ປົກປ້ອງໜ້ານີ້",
+       "unprotect": "ປ່ຽນແປງການປົກປ້ອງ",
+       "unprotectthispage": "ປ່ຽນແປງການປົກປ້ອງຂອງໜ້ານີ້",
        "newpage": "ໜ້າໃໝ່",
-       "talkpage": "ປຶກສາຫາລືໜ້ານີ້",
+       "talkpage": "àº\9bຶàº\81ສາຫາລືàº\81à»\88ຽວàº\81ັàº\9aà»\9cà»\89າàº\99ີà»\89",
        "talkpagelinktext": "ສົນທະນາ",
-       "specialpage": "à»\9d້າພິເສດ",
+       "specialpage": "à»\9c້າພິເສດ",
        "personaltools": "ເຄື່ອງມືສ່ວນບຸກຄົນ",
        "articlepage": "ເບິ່ງໜ້າເນື້ອໃນ",
        "talk": "ສົນທະນາ",
        "views": "ເທື່ອເບິ່ງ",
        "toolbox": "ເຄື່ອງມື",
-       "tool-link-emailuser": "ສົ່ງອີເມວຫາ{{GENDER:$1|ຜູ້ໃຊ້}}ນີ້",
-       "userpage": "ເບິ່ງໜ້າສົນທະນາຂອງຜູ້ໃຊ້",
-       "projectpage": "ເບິ່ງໝ້າໂຄງການ",
-       "mediawikipage": "ເບິ່ງ ໝ້າຂໍ້ຄວາມ",
+       "tool-link-userrights": "ປ່ຽນກຸ່ມ{{GENDER:$1|ຜູ້ໃຊ້}}",
+       "tool-link-userrights-readonly": "ເບິ່ງກຸ່ມ{{GENDER:$1|ຜູ້ໃຊ້}}",
+       "tool-link-emailuser": "ສົ່ງອີເມວຫາ{{GENDER:$1|ຜູ້ໃຊ້}}ຄົນນີ້",
+       "userpage": "ເບິ່ງໜ້າຜູ້ໃຊ້",
+       "projectpage": "ເບິ່ງໜ້າໂຄງການ",
+       "imagepage": "ເບິ່ງໜ້າໄຟລ໌",
+       "mediawikipage": "ເບິ່ງໜ້າຂໍ້ຄວາມ",
        "templatepage": "ເບິ່ງໜ້າແມ່ແບບ",
-       "viewhelppage": "ເບິ່ງ ໝ້າຊ່ອຍເຫຼືອ",
-       "categorypage": "ເບິ່ງ ໜ້າ ໝວດ",
+       "viewhelppage": "ເບິ່ງໜ້າວິທີໃຊ້",
+       "categorypage": "ເບິ່ງໜ້າໝວດ",
+       "viewtalkpage": "ເບິ່ງການປຶກສາຫາລື",
        "otherlanguages": "ເປັນພາສາອື່ນໆ",
-       "redirectedfrom": "(ໂອນມາຈາກ $1)",
-       "redirectpagesub": "ໜ້າໂອນ",
-       "lastmodifiedat": "ໜ້ານີ້ຖຶກດັດແກ້ຫຼ້າສຸດ $2, $1.",
-       "viewcount": "ໜ້ານີ້ຖືກເຂົ້າເບິ່ງ {{PLURAL:$1|ເທື່ອໜຶ່ງ|$1 ເທື່ອ}}.",
-       "protectedpage": "ໜ້າຖືກປົກປ້ອງ",
-       "jumpto": "ໄປຫາ:",
+       "redirectedfrom": "(ປ່ຽນເສັ້ນທາງມາຈາກ $1)",
+       "redirectpagesub": "ໜ້າປ່ຽນເສັ້ນທາງ",
+       "redirectto": "ປ່ຽນເສັ້ນທາງໄປຫາ:",
+       "lastmodifiedat": "ໜ້ານີ້ຖຶກແກ້ໄຂຄັ້ງລ້າສຸດເມື່ອວັນທີ່ $1, ເວລາ $2.",
+       "viewcount": "ໜ້ານີ້ຖືກເຂົ້າເບິ່ງແລ້ວ {{PLURAL:$1|ເທື່ອໜຶ່ງ|$1 ເທື່ອ}}.",
+       "protectedpage": "ໜ້າທີ່ຖືກປົກປ້ອງ",
+       "jumpto": "ຂ້າມໄປຫາ:",
        "jumptonavigation": "ປ້າຍບອກທາງ",
        "jumptosearch": "ຄົ້ນຫາ",
-       "aboutsite": "ກ່ຽວກັບ{{SITENAME}}",
+       "view-pool-error": "ຂໍອະໄພ, ເຊີເວີກຳລັງເຮັດວຽກໜັກເກີນໄປໃນຂະນະນີ້.\nຈຳນວນຜູ້ໃຊ້ທີ່ກຳລັງພະຍາຍາມເຂົ້າເບິ່ງໜ້ານີ້ມີຫຼາຍເກີນໄປ.\nກະລຸນາລໍຖ້າໄລຍະໜຶ່ງ ແລ້ວຈຶ່ງພະຍາຍາມເຂົ້າເບິ່ງໜ້ານີ້ໃໝ່.\n\n$1",
+       "generic-pool-error": "ຂໍອະໄພ, ເຊີເວີກຳລັງເຮັດວຽກໜັກເກີນໄປໃນຂະນະນີ້.\nຈຳນວນຜູ້ໃຊ້ທີ່ກຳລັງພະຍາຍາມເຂົ້າເບິ່ງຊັບພະຍາກອນນີ້ມີຫຼາຍເກີນໄປ.\nກະລຸນາລໍຖ້າໄລຍະໜຶ່ງ ແລ້ວຈຶ່ງພະຍາຍາມເຂົ້າເບິ່ງຊັບພະຍາກອນນີ້ໃໝ່.",
+       "pool-timeout": "ການລໍຖ້າການໝົດເວລາສຳລັບການລັອກ",
+       "pool-errorunknown": "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ຈັກ",
+       "poolcounter-usage-error": "ຂໍ້ຜິດພາດໃນການໃຊ້ງານ: $1",
+       "aboutsite": "ກ່ຽວກັບ {{SITENAME}}",
        "aboutpage": "Project:ກ່ຽວກັບ",
-       "copyright": "à»\80àº\99ືà»\89ອà»\83àº\99à»\81ມà»\88àº\99ສາມາàº\94à»\83àº\8aà»\89à»\84àº\94à»\89àº\9eາàº\8dà»\83àº\95à»\89 $1 àº\96à»\89າàº\9aà»\8dà»\88à»\81ມà»\88àº\99ຢà»\88າàº\87ອືà»\88àº\99à»\83àº\94àº\97ີà»\88ລະàº\9aຸà»\84ວà»\89.",
+       "copyright": "ເນື້ອໃນສາມາດໃຊ້ໄດ້ພາຍໃຕ້ $1 ຖ້າບໍ່ແມ່ນຢ່າງອື່ນໃດທີ່ລະບຸໄວ້.",
        "copyrightpage": "{{ns:project}}:ລິຂະສິດ",
        "currentevents": "ເຫດການປັດຈຸບັນ",
        "currentevents-url": "Project:ເຫດການປັດຈຸບັນ",
        "disclaimers": "ຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບ",
        "disclaimerpage": "Project:ຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບ",
-       "edithelp": "ວິàº\97ີàº\94ັàº\94à»\81àº\81à»\89à»\9cà»\89າ",
-       "helppage-top-gethelp": "àº\8aà»\88ວàº\8dà»\80ຫຼືອ",
+       "edithelp": "ວິàº\97ີà»\81àº\81à»\89à»\84àº\82",
+       "helppage-top-gethelp": "ວິàº\97ີà»\83àº\8aà»\89",
        "mainpage": "ໜ້າຫຼັກ",
        "mainpage-description": "ໜ້າຫຼັກ",
-       "policy-url": "Project:àº\9bະàº\95ູສູà»\88àº\8aຸມàº\8aົàº\99",
-       "portal": "ປະຕູຊຸມຊົນ",
+       "policy-url": "Project:àº\99ະà»\82àº\8dàº\9aາàº\8d",
+       "portal": "àº\9bະàº\95ູສູà»\88àº\8aຸມàº\8aົàº\99",
        "portal-url": "Project:ປະຕູສູ່ຊຸມຊົນ",
        "privacy": "ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ",
        "privacypage": "Project:ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ",
        "badaccess": "ການອະນຸມັດບໍ່ຖືກຕ້ອງ",
        "badaccess-group0": "ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ປະຕິບັດການຕາມທີ່ທ່ານຮ້ອງຂໍໄວ້.",
-       "versionrequired": "ຕ້ອງການເວີຣ໌ຊັ່ນ $1 ຂອງມີເດຍວິກິ",
+       "badaccess-groups": "ການກະທຳທີ່ທ່ານຮ້ອງຂໍຖືກຈຳກັດໃຫ້ກັບຜູ້ໃຊ້ໃນ{{PLURAL:$2|ກຸ່ມ}}ດັ່ງຕໍ່ໄປນີ້: $1.",
+       "versionrequired": "ຕ້ອງໃຊ້ມີເດຍວິກິເວີຊັນ $1",
+       "versionrequiredtext": "ຕ້ອງໃຊ້ມີເດຍວິກິເວີຊັນ $1 ເພື່ອເຂົ້າເບິ່ງໜ້ານີ້.\nເບິ່ງ [[Special:Version|ໜ້າເວີຊັນ]].",
        "ok": "ຕົກລົງ",
        "retrievedfrom": "ດຶງຂໍ້ມູນຈາກ \"$1\"",
-       "youhavenewmessages": "ທ່ານ ມີ $1 ($2).",
-       "youhavenewmessagesmulti": "ທ່ານມີຂໍ້ຄວາມໃໝ່ ຢູ່ $1",
+       "youhavenewmessages": "{{PLURAL:$3|ທ່ານມີ}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|ທ່ານມີ}} $1 ຈາກ {{PLURAL:$3|ຜູ້ໃຊ້ຄົນອື່ນ|ຜູ້ໃຊ້ຄົນອື່ນ $3 ຄົນ}} ($2).",
+       "youhavenewmessagesmanyusers": "ທ່ານມີ $1 ຈາກຜູ້ໃຊ້ຫຼາຍຄົນ ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|ຂໍ້ຄວາມໃໝ່ໜຶ່ງຂໍ້ຄວາມ|999=ຂໍ້ຄວາມໃໝ່}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|ການປ່ຽນແປງ|999=ການປ່ຽນແປງ}}ລ້າສຸດ",
+       "youhavenewmessagesmulti": "ທ່ານມີຂໍ້ຄວາມໃໝ່ຢູ່ $1",
        "editsection": "ແກ້ໄຂ",
-       "editold": "ດັດແກ້",
-       "viewsourceold": "ເບິ່ງ ຊອສ",
-       "editlink": "ດັດແກ້",
+       "editold": "ແກ້ໄຂ",
+       "viewsourceold": "ເບິ່ງຊອຣ໌ສ",
+       "editlink": "ແກ້ໄຂ",
+       "viewsourcelink": "ເບິ່ງຊອຣ໌ສ",
        "editsectionhint": "ແກ້ໄຂພາກ: $1",
        "toc": "ເນື້ອໃນ",
        "showtoc": "ສະແດງ",
        "hidetoc": "ເຊື່ອງ",
-       "viewdeleted": "ເບິ່ງ $1 ບໍ?",
+       "collapsible-collapse": "ຍຸບ",
+       "collapsible-expand": "ຂະຫຍາຍ",
+       "confirmable-confirm": "{{GENDER:$1|ທ່ານ}}ແນ່ໃຈບໍ່?",
+       "confirmable-yes": "ແມ່ນ",
+       "confirmable-no": "ບໍ່",
+       "thisisdeleted": "ຕ້ອງການເບິ່ງຫຼືຄືນຄ່າ $1 ບໍ່?",
+       "viewdeleted": "ຕ້ອງການເບິ່ງ $1 ບໍ່?",
+       "restorelink": "{{PLURAL:$1|ການແກ້ໄຂໜຶ່ງຄັ້ງທີ່ຖືກລຶບໄປແລ້ວ|ການແກ້ໄຂ $1 ຄັ້ງທີ່ຖືກລຶບໄປແລ້ວ}}",
+       "feedlinks": "ຟີດ:",
+       "feed-invalid": "ປະເພດຂອງຟີດການຕິດຕາມບໍ່ຖືກຕ້ອງ.",
        "site-rss-feed": "$1 RSS ຟີດ",
        "site-atom-feed": "ອະຕອມຟີດ $1",
        "page-rss-feed": "\"$1\" RSS ຟີດ",
+       "page-atom-feed": "\"$1\" Atom feed",
        "red-link-title": "$1 (ບໍ່ມີໜ້ານີ້)",
        "nstab-main": "ໜ້າ",
        "nstab-user": "ໜ້າຜູ້ໃຊ້",
+       "nstab-media": "ໜ້າສື່",
        "nstab-special": "ໜ້າພິເສດ",
        "nstab-project": "ໜ້າໂຄງການ",
        "nstab-image": "ໄຟລ໌",
        "nstab-mediawiki": "ຂໍ້ຄວາມ",
        "nstab-template": "ແມ່ແບບ",
-       "nstab-help": "à»\9cà»\89າàº\8aà»\88ອàº\8dà»\80ຫຼືອ",
+       "nstab-help": "à»\9cà»\89າວິàº\97ີà»\83àº\8aà»\89",
        "nstab-category": "ໝວດ",
        "mainpage-nstab": "ໜ້າຫຼັກ",
-       "nosuchspecialpage": "ບໍ່ມີໝ້າພິເສດຊື່ນັ້ນ",
-       "databaseerror": "ມີຄວາມຜິດພາດ ດ້ານ ຖານຂໍ້ມູນ",
-       "readonly": "ຖານຂໍ້ມູນຖືກລອັກ",
-       "enterlockreason": "ກະລຸນາຂຽນເຫດຜົນໃນການລອັກ, ລວມທັງ ປະມານເວລາທີ່ຈະປົດລອັກ",
+       "nosuchaction": "ບໍ່ມີການກະທຳດັ່ງກ່າວ",
+       "nosuchspecialpage": "ບໍ່ມີໝ້າພິເສດດັ່ງກ່າວ",
+       "error": "ຂໍ້ຜິດພາດ",
+       "databaseerror": "ມີຂໍ້ຜິດພາດກ່ຽວກັບຖານຂໍ້ມູນ",
+       "laggedslavemode": "<strong>ຄຳເຕືອນ:</strong> ໜ້ານີ້ອາດຈະບໍ່ລວມຂໍ້ມູນລ້າສຸດ.",
+       "readonly": "ຖານຂໍ້ມູນຖືກລັອກ",
+       "enterlockreason": "ກະລຸນາຂຽນເຫດຜົນໃນການລັອກ, ລວມທັງປະມານເວລາທີ່ຈະປົດລັອກ",
        "missingarticle-diff": "(ສ່ວນຕ່າງ: $1, $2)",
        "readonly_lag": "ຖານຂໍ້ມຸນໄດ້ຖືກລັອກແລ້ວໂດຍອັດຕະໂນມັດຂະນະທີ່ເຊີເວີ slave database ຖືກຈັບໃຫ້ອັນຫຼັກ",
-       "internalerror": "ມີຄວາມຜິດພາດພາຍໃນ",
-       "filerenameerror": "ບໍ່ສາມາດ ປ່ຽນ ຊື່ໄຟລ໌  \"$1\" ໄປເປັນ  \"$2\" ໄດ້.",
+       "internalerror": "ມີຂໍ້ຜິດພາດພາຍໃນ",
+       "internalerror_info": "ມີຂໍ້ຜິດພາດພາຍໃນ: $1",
+       "filecopyerror": "ບໍ່ສາມາດເຮັດສຳເນົາໄຟລ໌ \"$1\" ໄປເປັນ \"$2\" ໄດ້.",
+       "filerenameerror": "ບໍ່ສາມາດປ່ຽນຊື່ໄຟລ໌  \"$1\" ໄປເປັນ  \"$2\" ໄດ້.",
+       "filedeleteerror": "ບໍ່ສາມາດລຶບໄຟລ໌ \"$1\" ໄດ້.",
+       "directorycreateerror": "ບໍ່ສາມາດສ້າງໄດເຣກທໍຣີ \"$1\" ໄດ້.",
+       "directoryreadonlyerror": "ໄດເຣກທໍຣີ \"$1\" ສາມາດອ່ານໄດ້ເທົ່ານັ້ນ.",
+       "directorynotreadableerror": "ໄດເຣກທໍຣີ \"$1\" ບໍ່ສາມາດອ່ານໄດ້.",
+       "filenotfound": "ບໍ່ພົບໄຟລ໌ \"$1\".",
+       "badarticleerror": "ບໍ່ສາມາດດຳເນີນການນີ້ຢູ່ເທິງໜ້ານີ້ໄດ້.",
        "cannotdelete": "ບໍ່ສາມາດລຶບໜ້າຫຼືໄຟລ໌ \"$1\" ໄດ້.\nມັນອາດຈະຖືກລຶບໂດຍໃຜຜູ້ໜຶ່ງແລ້ວ.",
+       "cannotdelete-title": "ບໍ່ສາມາດລຶບໜ້າ \"$1\" ໄດ້",
        "badtitle": "ຫົວຂໍ້ບໍ່ຖືກຕ້ອງ",
-       "viewsource": "ເບິ່ງຊອສ໌",
-       "namespaceprotected": "ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດ ໃຫ້ ດັດແກ້ ໜ້າ ໃນ  '''$1'''.",
+       "viewsource": "ເບິ່ງຊອຣ໌ສ",
+       "viewsource-title": "ເບິ່ງຊອຣ໌ສສຳລັບ $1",
+       "viewsourcetext": "ທ່ານສາມາດເບິ່ງແລະເຮັດສຳເນົາຊອຣ໌ສຂອງໜ້ານີ້ໄດ້.",
+       "viewyourtext": "ທ່ານສາມາດເບິ່ງແລະເຮັດສຳເນົາຊອຣ໌ສ<strong>ການແກ້ໄຂຂອງທ່ານ</strong>ຂອງໜ້ານີ້ໄດ້.",
+       "namespaceprotected": "ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ແກ້ໄຂໜ້າທີ່ມີເນມສະເປດ <strong>$1</strong>.",
+       "customcssprotected": "ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ແກ້ໄຂໜ້າ CSS ນີ້ເນື່ອງຈາກມີຂໍ້ມູນການຕັ້ງຄ່າສ່ວນບຸກຄົນຂອງຜູ້ໃຊ້ລວມມີຢູ່.",
+       "customjsprotected": "ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ແກ້ໄຂໜ້າ JavaScript ນີ້ເນື່ອງຈາກມີຂໍ້ມູນການຕັ້ງຄ່າສ່ວນບຸກຄົນຂອງຜູ້ໃຊ້ລວມຢູ່ໃນໜ້ານີ້.",
+       "mycustomcssprotected": "ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ແກ້ໄຂໜ້າ CSS ນີ້.",
+       "mycustomjsprotected": "ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ແກ້ໄຂໜ້າ JavaScript ນີ້.",
+       "myprivateinfoprotected": "ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ແກ້ໄຂໜ້າຂໍ້ມູນສ່ວນບຸກຄົນຂອງທ່ານ.",
+       "mypreferencesprotected": "ທ່ານບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ແກ້ໄຂການຕັ້ງຄ່າຂອງທ່ານ.",
+       "ns-specialprotected": "ບໍ່ສາມາດແກ້ໄຂໜ້າພິເສດໄດ້.",
+       "exception-nologin": "ບໍ່ໄດ້ເຂົ້າສູ່ລະບົບ",
+       "exception-nologin-text": "ກະລຸນາເຂົ້າສູ່ລະບົບເພື່ອໃຫ້ສາມາດເຂົ້າເບິ່ງ ຫຼື ດຳເນີນການໃດໆກັບໜ້ານີ້ໄດ້.",
+       "exception-nologin-text-manual": "ກະລຸນາ $1 ເພື່ອໃຫ້ສາມາດເຂົ້າເບິ່ງ ຫຼື ດຳເນີນການໃດໆກັບໜ້ານີ້ໄດ້.",
        "logouttext": "<strong>ທ່່ານໄດ້ອອກຈາກລະບົບແລ້ວ.<strong>\n\nກະລຸນາຮັບຊາບວ່າບາງໜ້າຈະຍັງຄົງສະແດງຜົນຕໍ່ໄປເຖິງແມ້ວ່າທ່ານຈະເຂົ້າສູ່ລະບົບແລ້ວ, ຈົນກວ່າທ່ານຈະລ້າງແຄຊໃນບຣາວເຊີຂອງທ່ານທັງໝົດ.",
-       "yourname": "ຊື່ຜູ້ໃຊ້",
-       "yourpassword": "ລະຫັດຜ່ານ",
-       "yourpasswordagain": "ພິມລະຫັດຜ່ານອີກ",
-       "yourdomainname": "ໂດເມນ ຂອງ ທ່ານ",
-       "login": "ເຊັນເຂົ້າ",
-       "nav-login-createaccount": "ເຊັນເຂົ້າ / ສ້າງບັນຊີ",
-       "userlogin": "ເຊັນເຂົ້າ / ສ້າງບັນຊີ",
-       "logout": "ເຊັນອອກ",
-       "userlogout": "ເຊັນອອກ",
+       "cannotlogoutnow-title": "ບໍ່ສາມາດອອກຈາກລະບົບໄດ້ໃນຂະນະນີ້",
+       "welcomeuser": "ຍິນດີຕ້ອນຮັບ, $1!",
+       "welcomecreation-msg": "ບັນຊີຜູ້ໃຊ້ຂອງທ່ານໄດ້ຖືກສ້າງຂຶ້ນແລ້ວ.\nທ່ານສາມາດປ່ຽນແປງ[[Special:Preferences|ການຕັ້ງຄ່າ]]ຂອງທ່ານໃນ {{SITENAME}} ຖ້າທ່ານຕ້ອງການ.",
+       "yourname": "ຊື່ຜູ້ໃຊ້:",
+       "userlogin-yourname": "ຊື່ຜູ້ໃຊ້",
+       "userlogin-yourname-ph": "ປ້ອນຊື່ຜູ້ໃຊ້ຂອງທ່ານ",
+       "createacct-another-username-ph": "ປ້ອນຊື່ຜູ້ໃຊ້",
+       "yourpassword": "ລະຫັດຜ່ານ:",
+       "userlogin-yourpassword": "ລະຫັດຜ່ານ",
+       "userlogin-yourpassword-ph": "ປ້ອນລະຫັດຜ່ານຂອງທ່ານ",
+       "createacct-yourpassword-ph": "ປ້ອນລະຫັດຜ່ານ",
+       "yourpasswordagain": "ພິມລະຫັດຜ່ານໃໝ່ອີກ:",
+       "createacct-yourpasswordagain": "ຢືນຢັນລະຫັດຜ່ານ",
+       "createacct-yourpasswordagain-ph": "ປ້ອນລະຫັດຜ່ານໃໝ່ອີກ",
+       "userlogin-remembermypassword": "ໃຫ້ຂ້ອຍຢູ່ໃນລະບົບຕໍ່ໄປ",
+       "userlogin-signwithsecure": "ໃຊ້ການເຊື່ອມຕໍ່ແບບປອດໄພ",
+       "cannotlogin-title": "ບໍ່ສາມາດເຂົ້າສູ່ລະບົບໄດ້",
+       "cannotlogin-text": "ບໍ່ສາມາດດຳເນີນການເຂົ້າສູ່ລະບົບໄດ້.",
+       "cannotloginnow-title": "ບໍ່ສາມາດເຂົ້າສູ່ລະບົບໄດ້ໃນຂະນະນີ້",
+       "cannotloginnow-text": "ບໍ່ສາມາດດຳເນີນການເຂົ້າສູ່ລະບົບໄດ້ເມື່ອກຳລັງໃຊ້ $1 ຢູ່.",
+       "cannotcreateaccount-title": "ບໍ່ສາມາດສ້າງບັນຊີໄດ້",
+       "cannotcreateaccount-text": "ການສ້າງບັນຊີໂດຍກົງບໍ່ໄດ້ຖືກເປີດໃຊ້ໃນວິກິນີ້.",
+       "yourdomainname": "ໂດເມນຂອງທ່ານ:",
+       "password-change-forbidden": "ທ່ານບໍ່ສາມາດປ່ຽນລະຫັດຜ່ານໃນວິກິນີ້ໄດ້.",
+       "login": "ເຂົ້າສູ່ລະບົບ",
+       "login-security": "ຢືນຢັນຕົວຕົນຂອງທ່ານ",
+       "nav-login-createaccount": "ເຂົ້າສູ່ລະບົບ / ສ້າງບັນຊີ",
+       "userlogin": "ເຂົ້າສູ່ລະບົບ / ສ້າງບັນຊີ",
+       "userloginnocreate": "ເຂົ້າສູ່ລະບົບ",
+       "logout": "ອອກຈາກລະບົບ",
+       "userlogout": "ອອກຈາກລະບົບ",
+       "notloggedin": "ບໍ່ໄດ້ເຂົ້າສູ່ລະບົບ",
+       "userlogin-noaccount": "ຍັງບໍ່ມີບັນຊີເທື່ອບໍ່?",
+       "userlogin-joinproject": "ເຂົ້າຮ່ວມກັບ {{SITENAME}}",
        "nologin": "ຍັງບໍ່ມີບັນຊີເທື່ອບໍ່? $1.",
        "nologinlink": "ສ້າງບັນຊີໃໝ່",
        "createaccount": "ສ້າງບັນຊີ",
-       "gotaccount": "ມີ ບັນຊີແລ້ວບໍ? '''$1'''.",
-       "gotaccountlink": "ເຊັນເຂົ້າ",
+       "gotaccount": "ມີບັນຊີແລ້ວບໍ? $1.",
+       "gotaccountlink": "ເຂົ້າສູ່ລະບົບ",
+       "userlogin-resetlink": "ລືມຂໍ້ມູນການເຂົ້າສູ່ລະບົບຂອງທ່ານບໍ່?",
+       "userlogin-resetpassword-link": "ລືມລະຫັດຜ່ານຂອງທ່ານບໍ່?",
+       "userlogin-helplink2": "ວິທີໃຊ້ການເຂົ້າສູ່ລະບົບ",
+       "userlogin-loggedin": "ທ່ານໄດ້ເຂົ້າສູ່ລະບົບໃນຊື່ {{GENDER:$1|$1}} ແລ້ວ.\nກະລຸນາໃຊ້ແບບຟອມຂ້າງລຸ່ມເພື່ອເຂົ້າສູ່ລະບົບໃນຊື່ອື່ນໆ.",
        "createaccountmail": "ໃຊ້ລະຫັດຜ່ານແບບສຸ່ມຊົ່ວຄາວແລະສົ່ງມັນໄປໃຫ້ທີ່ຢູ່ອີເມວທີ່ລະບຸ",
-       "badretype": "ລະຫັດຜ່ານ ທີ່ ທ່ານພິມຄືນ ບໍ່ຖືກກັບ ທີ່ພິມກ່ອນ.",
-       "loginerror": "ມີບັນຫາໃນການເຊັນເຂົ້າ",
+       "badretype": "ລະຫັດຜ່ານທີ່ທ່ານໄດ້ພິມຄືນບໍ່ກົງກັບທີ່ພິມກ່ອນ.",
+       "loginerror": "ຂໍ້ຜິດພາດໃນການເຂົ້າສູ່ລະບົບ",
+       "createacct-error": "ຂໍ້ຜິດພາດໃນການສ້າງບັນຊີ",
+       "createaccounterror": "ບໍ່ສາມາດສ້າງບັນຊີໄດ້: $1",
        "loginsuccesstitle": "ເຂົ້າສູ່ລະບົບແລ້ວ",
        "loginsuccess": "'''ທ່ານ ເຊັນເຂົ້າ  {{SITENAME}} ໃນນາມ \"$1\".'''",
        "wrongpassword": "ລະຫັດຜ່ານບໍ່ຖືກ. ກະລຸນາເຮັດຄືນໃໝ່.",
        "wrongpasswordempty": "ບໍ່ມີລະຫັດຜ່ານຖືກພິມເຂົ້າ. ກະລຸນາເຮັດຄືນໃໝ່.",
        "mailmypassword": "ຕັ້ງຄ່າລະຫັດຜ່ານໃໝ່",
+       "blocked-mailpassword": "ທີ່ຢູ່ IP ຂອງທ່ານໄດ້ຖືກບລັອກບໍ່ໃຫ້ແກ້ໄຂ. ເພື່ອເປັນການປ້ອງກັນການໃຊ້ງານໃນທາງທີ່ຜິດ, ຈຶ່ງບໍ່ອະນຸຍາດໃຫ້ໃຊ້ການກູ້ຄືນລະຫັດຜ່ານໂດຍໃຊ້ທີ່ຢູ່ IP ນີ້.",
        "acct_creation_throttle_hit": "ຂໍໂທດຫຼາຍໆ, ທ່ານ ໄດ້ສ້າງ $1 ບັນຊີແລ້ວ. ທ່ານ ບໍ່ສາມາດ ສ້ງບັນຊີໄດ້ອີກ.",
        "emailauthenticated": "ອີເມລຂອງທ່ານໄດ້ຖືກຢືນຢັນແລ້ວເມື່ອວັນທີ່ $2 ເວລາ $3.",
        "emailconfirmlink": "ຢືນຢັນ ທີ່ຢູ່ ອີເມລ ຂອງ ທ່ານ",
        "accountcreated": "ບັນຊີ ໄດ້ຖືກສ້າງ ແລ້ວ",
-       "accountcreatedtext": "ບັນຊີ ຂອງ  $1 ໄດ້ ຖືກສ້າງແລ້ວ.",
+       "accountcreatedtext": "ບັນຊີຜູ້ໃຊ້ຂອງ [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) ໄດ້ຖືກສ້າງຂຶ້ນແລ້ວ.",
        "pt-login": "ເຂົ້າສູ່ລະບົບ",
        "pt-createaccount": "ສ້າງບັນຊີ",
        "changepassword": "ປ່ຽນລະຫັດຜ່ານ",
        "newpassword": "ລະຫັດຜ່ານໃໝ່:",
        "retypenew": "ພິມລະຫັດຜ່ານໃໝ່ອີກ:",
        "resetpass_submit": "ຕັ້ງລະຫັດຜ່ານ ແລະ ເຊັນເຂົ້າ",
-       "changepassword-success": "ສຳà»\80ລັàº\94àº\81າàº\99àº\9bà»\88ຽàº\99à»\81àº\9bàº\87 àº¥àº°àº«àº±àº\94àº\9cà»\88າàº\99àº\82ອàº\87àº\97à»\88າàº\99à»\81ລà»\89ວ! àº\94ຽວàº\99ີà»\89 àº\97à»\88າàº\99 à»\80àº\8aັà»\88àº\99à»\80àº\82ົà»\89າ à»\83àº\99 ...",
+       "changepassword-success": "ລະຫັàº\94àº\9cà»\88າàº\99àº\82ອàº\87àº\97à»\88າàº\99àº\96ືàº\81àº\9bà»\88ຽàº\99à»\81ລà»\89ວ!",
        "passwordreset-invalidemail": "ທີ່ຢູ່ອີເມລບໍ່ຖືກຕ້ອງ",
        "bold_sample": "ໂຕໜັງສືເຂັ້ມ",
        "bold_tip": "ໂຕໜັງສືເຂັ້ມ",
        "preview": "ລອງເບິ່ງຜົນ",
        "showpreview": "ລອງເບິ່ງຜົນ",
        "showdiff": "ສະແດງສ່ວນຕ່າງ",
-       "anoneditwarning": "'''ເຕືອນ:''' ທ່ານ ບໍ່ໄດ້ເຊັນເຂົ້າ. ທີ່ຢູ່ IP ຂອງ ທ່ານ ຈະຖືກບັນທຶກໄວ້ ໃນ ປະຫວັດການດັດແກ້ ຂອງ ໜ້ານີ້.",
+       "anoneditwarning": "<strong>ເຕືອນ:</strong> ທ່ານບໍ່ໄດ້ເຂົ້າສູ່ລະບົບ. ທຸກໆຄົນຈະເຫັນທີ່ຢູ່ IP ຂອງທ່ານ ຖ້າທ່ານເຮັດການແກ້ໄຂໃດໆ. ຖ້າທ່ານ<strong>[$1 ເຂົ້າສູ່ລະບົບ]</strong> ຫຼື <strong>[$2 ສ້າງບັນຊີ]</strong>, ການແກ້ໄຂຂອງທ່ານຈະຖືວ່າແມ່ນຂອງຜູ້ໃຊ້ຄົນນັ້ນແທນ, ນອກຈາກນີ້ ຍັງມີປະໂຫຍດອື່ນໆອີກຫຼາຍຢ່າງນຳກັນ.",
        "blockedtitle": "ຜູ້ໃຊ້ຖືກຫ້າມ",
        "whitelistedittext": "ທ່ານ ຈະຕ້ອງ  $1 ເພື່ອ ຈະດັດແກ້.",
        "loginreqtitle": "ຈຳເປັນຕ້ອງ ເຊັນເຂົ້າ",
-       "loginreqlink": "ເຊັນເຂົ້າ",
+       "loginreqlink": "ເຂົ້າສູ່ລະບົບ",
+       "loginreqpagetext": "ກະລຸນາ $1 ເພື່ອເຂົ້າເບິ່ງໜ້າອື່ນໆ.",
        "accmailtitle": "ໄດ້ສົ່ງ ລະຫັດຜ່ານ ໄປແລ້ວ.",
        "accmailtext": "ລະຫັດຜ່ານ ຂອງ \"$1\" ໄດ້ຖືກສົ່ງໄປ  $2 ແລ້ວ.",
        "newarticle": "(ໃໝ່)",
        "newarticletext": "ທ່ານ ໄດ້ມາຮອດ ໜ້າທີ່ຍັງບໍ່ໄດ້ຖືກສ້າງຂຶ້ນເທື່ອ. ທ່ານ ສາມາດເລີ່ມ ສ້າງໜ້າ ໂດຍ ພິມໃສ່ ກັບ ຂ້າງລຸ່ມ.(ເບິ່ງລາຍລະອຽດຕື່ມ ທີ່ [$1 ໜ້າຊ່ວຍເຫຼືອ]).\nຖ້າ ທ່ານ ມາຮອດນີ້ ໂດຍຄວາມຜິດພາດ, ກະລຸນາ ກົດ ປຸ່ມ '''ກັບຄືນ''', ຢູ່ ໂປຣແກຣມ ທ່ອງເວັບ ຂອງທ່ານ.",
-       "noarticletext": "àº\8dັàº\87àº\9aà»\8dà»\88ມີà»\80àº\99ືà»\89ອà»\83àº\99 àº¢àº¹à»\88 à»\9cà»\89າàº\99ີà»\89, àº\97à»\88າàº\99ສາມາàº\94 [[Special:Search/{{PAGENAME}}|àº\84ົà»\89àº\99ຫາà»\9cà»\89າຫົວàº\82à»\8dà»\89àº\99ີà»\89]] àº«àº¼àº· [{{fullurl:{{FULLPAGENAME}}|action=edit}} àº\94ັàº\94à»\81àº\81à»\89ໜ້ານີ້].",
-       "previewnote": "'''ນີ້ ແມ່ນ ການລອງເບິ່ງຜົນເທົ່ານັ້ນ; ການດັດແກ້ຍັງບໍ່ທັນຖືກບັນທຶກ!'''",
+       "noarticletext": "àº\95ອàº\99àº\99ີà»\89à»\9cà»\89າàº\99ີà»\89àº\8dັàº\87àº\9aà»\8dà»\88ມີà»\80àº\99ືà»\89ອà»\83àº\99à»\83àº\94à»\86, àº\97à»\88າàº\99ສາມາàº\94[[Special:Search/{{PAGENAME}}|àº\84ົà»\89àº\99ຫາà»\9cà»\89າຫົວàº\82à»\8dà»\89àº\99ີà»\89]]à»\83àº\99à»\9cà»\89າອືà»\88àº\99à»\86, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} àº\84ົà»\89àº\99ຫາàº\9aັàº\99àº\97ຶàº\81ອືà»\88àº\99à»\86àº\97ີà»\88àº\81à»\88ຽວàº\82à»\89ອàº\87], àº«àº¼àº· [{{fullurl:{{FULLPAGENAME}}|action=edit}} àºªà»\89າàº\87ໜ້ານີ້].",
+       "previewnote": "<strong>ຈຳໄວ້ວ່ານີ້ແມ່ນພຽງການສະແດງໂຕຢ່າງເທົ່ານັ້ນ.</strong>\nການແກ້ໄຂຂອງທ່ານຍັງບໍ່ທັນຖືກບັນທຶກ!",
        "editing": "ພວມດັດແກ້ $1",
        "editingsection": "ພວມດັດແກ້ $1 (ພາກ)",
        "yourtext": "ເນື້ອໃນ",
        "page_first": "ທຳອິດ",
        "page_last": "ສຸດທ້າຍ",
        "histlegend": "ເລືອກສ່ວນຕ່າງ: ເລືອກກັບວົງມົນ ລະຫວ່າງສະບັບ ຢາກສົມທຽບ ແລ້ວ ກົດເອັນເຕີ ຫຼື ປຸ່ນຢູ່ທາງລຸ່ມ.<br />\nຄວາມໝາຍ: (ດຽວນີ້) = ສ່ວນຕ່າງສົມທຽບໃສ່ສະບັບດຽວນີ້,\n(ຫຼ້າສຸດ) = ສ່ວນຕ່າງສົມທຽບໃສ່ສະບັບກ່ອນໜ້ານີ້, M = ດັດແກ້ເລັກນ້ອຍ.",
-       "histfirst": "àº\97ຳອິດ",
-       "histlast": "ຫຼà»\89າສຸດ",
+       "histfirst": "à»\80àº\81ົà»\88າສຸດ",
+       "histlast": "à»\83à»\9dà»\88ສຸດ",
        "rev-delundel": "ສະແດງ/ເຊື່ອງ",
-       "history-title": "àº\9bະຫວັàº\94àº\81າàº\99àº\94ັàº\94à»\81àº\81à»\89 ຂອງ \"$1\"",
+       "history-title": "àº\9bະຫວັàº\94àº\81າàº\99à»\81àº\81à»\89à»\84àº\82ຂອງ \"$1\"",
        "lineno": "ແຖວ $1:",
        "compareselectedversions": "ສົມທຽບ ລະຫວ່າງ ສະບັບເລືອກ",
        "editundo": "ກັບຄືນ",
        "nextn": "{{PLURAL:$1|$1}} ຕໍ່ໄປ",
        "viewprevnext": "ເບິ່ງ ($1 {{int:pipe-separator}} $2) ($3).",
        "search-result-size": "$1 ({{PLURAL:$2|1 ຄຳ|$2 ຄຳ}})",
-       "search-redirect": "(à»\82ອàº\99 $1)",
+       "search-redirect": "(àº\9bà»\88ຽàº\99à»\80ສັà»\89àº\99àº\97າàº\87ມາàº\88າàº\81 $1)",
        "search-relatedarticle": "ກ່ຽວຂ້ອງ",
        "searchrelated": "ກ່ຽວຂ້ອງ",
        "searchall": "ທັງໜົດ",
        "showingresults": "ສະແດງທາງລຸ່ມ ຮອດ {{PLURAL:$1|'''1''' ຜົນ|'''$1''' ຜົນ}} ເລີ່ມຈາກ  #'''$2'''.",
        "preferences": "ການຕັ້ງຄ່າ",
-       "mypreferences": "ຕັ້ງຄ່າ",
+       "mypreferences": "àº\81າàº\99àº\95ັà»\89àº\87àº\84à»\88າ",
        "prefs-edits": "ຈຳນວນການດັດແກ້:",
        "prefs-skin": "ລວດລາຍ",
        "skin-preview": "ລອງເບິ່ງ",
        "columns": "ຖັນ:",
        "searchresultshead": "ຊອກຫາ",
        "recentchangesdays": "ຈຳນວນມື້ສະແດງໃນການປ່ຽນແປງຫຼ້າສຸດ:",
-       "recentchangescount": "àº\88ຳàº\99ວàº\99àº\81າàº\99àº\94ັàº\94à»\81àº\81à»\89ສະà»\81àº\94àº\87à»\83àº\99àº\81າàº\99àº\9bà»\88ຽàº\99à»\81àº\9bàº\87ຫຼà»\89າສຸàº\94:",
+       "recentchangescount": "àº\88ຳàº\99ວàº\99àº\81າàº\99à»\81àº\81à»\89à»\84àº\82àº\97ີà»\88àº\95à»\89ອàº\87àº\81າàº\99ສະà»\81àº\94àº\87à»\82àº\94àº\8dàº\9bະລິàº\8dາàº\8d:",
        "savedprefs": "ການຕັ້ງຄ່າຂອງທ່ານໄດ້ຖືກບັນທຶກແລ້ວ.",
-       "timezonelegend": "ເຂດເວລາ",
-       "localtime": "ເວລາທ້ອງຖິ່ນ",
-       "servertime": "ເວລາເຊີເວີ",
+       "timezonelegend": "ເຂດເວລາ:",
+       "localtime": "ເວລາທ້ອງຖິ່ນ:",
+       "servertime": "ເວລາເຊີເວີ:",
        "guesstimezone": "ເອົາເວລາຈາກໂປຣແກຣມທ່ອງເວັບ",
        "allowemail": "ອະນຸຍາດ ໃຫ້ຜູ້ໃຊ້ອື່ນ ສົ່ງອີເມລຫາຂ້ອຍ",
        "prefs-files": "ໄຟລ໌",
        "youremail": "ອີເມລ *:",
-       "username": "ຊື່ຜູ້ໃຊ້:",
+       "username": "{{GENDER:$1|ຊື່ຜູ້ໃຊ້}}:",
        "yourrealname": "ຊື່ແທ້ *:",
        "yourlanguage": "ພາສາ:",
        "yournick": "ຊື່ຫຼິ້ນ:",
        "show": "ສະແດງ",
        "minoreditletter": "ລ",
        "newpageletter": "ມ",
-       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ຫຼັງການປ່ຽນແປງ",
+       "rc-change-size-new": "$1 {{PLURAL:$1|ໄບຕ໌}}ຫຼັງຈາກການປ່ຽນແປງ",
        "recentchangeslinked": "ການດັດແກ້ທີ່ກ່ຽວຂ້ອງ",
        "recentchangeslinked-feed": "ການດັດແກ້ທີ່ກ່ຽວຂ້ອງ",
        "recentchangeslinked-toolbox": "ການປ່ຽນແປງທີ່ກ່ຽວຂ້ອງ",
        "ipblocklist": "ລາຍການ ທີ່ຢູ່ IP ແລະ ຊື່ຜູ້ໃຊ້ ທີ່ຖືກຫ້າມ",
        "blocklink": "ຫ້າມ",
        "contribslink": "ເລື່ອງທີ່ຂຽນ",
-       "autoblocker": "ຫà»\89າມà»\82àº\94àº\8dອັàº\94àº\95າà»\82àº\99ມັàº\94 àº\8dà»\89ອàº\99 àº\97ີà»\88ຢູà»\88 IP àº\82ອàº\87àº\97à»\88າàº\99 àº\96ືàº\81à»\83àº\8aà»\89à»\82àº\94àº\8d \"[[User:$1|$1]]\" à»\83àº\99à»\84ລàº\8dະຫຼັàº\87. à»\80ຫàº\94àº\9cົàº\99à»\83àº\99àº\81າàº\99ຫà»\89າມ  $1 à»\81ມà»\88àº\99 : \"$2\"",
+       "autoblocker": "àº\96ືàº\81àº\9aລັອàº\81à»\82àº\94àº\8dອັàº\94àº\95ະà»\82àº\99ມັàº\94àº\8dà»\89ອàº\99àº\97ີà»\88ຢູà»\88 IP àº\82ອàº\87àº\97à»\88າàº\99àº\96ືàº\81à»\83àº\8aà»\89à»\82àº\94àº\8d \"[[User:$1|$1]]\" à»\80ມືà»\88ອà»\84ວà»\86àº\99ີà»\89.\nà»\80ຫàº\94àº\9cົàº\99à»\83àº\99àº\81າàº\99àº\9aລັອàº\81 $1 à»\81ມà»\88àº\99 \"$2\"",
        "blocklogpage": "ບັນທຶກການຫ້າມ",
        "blocklogentry": "ໄດ້ຫ້າມ \"[[$1]]\" ຈົນຮອດ $2 $3",
        "move-page-legend": "ຍ້າຍໜ້າ",
        "tooltip-pt-mycontris": "ລາຍການປະກອບສ່ວນຂອງຂ້ອຍ",
        "tooltip-pt-login": "ນີ້ບໍ່ແມ່ນການບັງຄັບ. ແຕ່ຢ່າງໃດກໍຕາມ, ທ່ານຄວນທີ່ຈະເຂົ້າສູ່ລະບົບ.",
        "tooltip-pt-logout": "ເຊັນອອກ",
-       "tooltip-pt-createaccount": "àº\99ີà»\89ິàº\9aà»\8dà»\88à»\81ມà»\88àº\99àº\81າàº\99àº\9aັàº\87àº\84ັàº\9a. à»\81àº\95à»\88ຢà»\88າàº\87à»\83àº\94àº\81à»\8dàº\95າມ, àº\97à»\88າàº\99àº\84ວàº\99àº\97ີà»\88àº\88ະສà»\89າàº\87àº\9aັàº\99àº\8aີà»\81ລະà»\80àº\82ົà»\89າສູà»\88ລະàº\9aົàº\9a.",
+       "tooltip-pt-createaccount": "ນີ້ບໍ່ແມ່ນການບັງຄັບ. ແຕ່ຢ່າງໃດກໍຕາມ, ທ່ານຄວນທີ່ຈະສ້າງບັນຊີແລະເຂົ້າສູ່ລະບົບ.",
        "tooltip-ca-talk": "ສົນທະນາກ່ຽວກັບເນື້ອໃນຂອງໜ້າ",
        "tooltip-ca-edit": "ແກ້ໄຂໜ້ານີ້",
        "tooltip-ca-addsection": "ເພີ່ມ ຄຳເຫັນ ໃສ່ ການສົນທະນານີ້.",
index 7e3aa46..16ed0bb 100644 (file)
        "cant-move-to-user-page": "Jūs neturite teisių perkelti puslapį į naudotojo puslapį (išskyrus į naudotojo popuslapį).",
        "cant-move-category-page": "Neturite teisių pervadinti kategorijų puslapius.",
        "cant-move-to-category-page": "Neturite teisės pervadinti puslapio į kategorijos puslapį.",
-       "movepage-max-pages": "Daugiausiai $1 {{PLURAL:$1|puslapis buvo perkeltas|puslapiai buvo perkelti|puslapių buvo perkelta}} ir daugiau nebus perkelta automatiškai.",
        "newtitle": "Naujas pavadinimas:",
        "move-watch": "Stebėti šį puslapį",
        "movepagebtn": "Pervadinti puslapį",
        "movepage-page-exists": "Puslapis $1 jau egzistuoja ir negali būti automatiškai perrašytas.",
        "movepage-page-moved": "Puslapis $1 perkeltas į $2.",
        "movepage-page-unmoved": "Puslapio $1 negalima perkelti į $2.",
+       "movepage-max-pages": "Daugiausiai $1 {{PLURAL:$1|puslapis buvo perkeltas|puslapiai buvo perkelti|puslapių buvo perkelta}} ir daugiau nebus perkelta automatiškai.",
        "movelogpage": "Perkėlimų sąrašas",
        "movelogpagetext": "Pervardintų puslapių sąrašas.",
        "movesubpage": "{{PLURAL:$1|Subpuslapis|Subpuslapiai}}",
        "special-characters-title-emdash": "em brūkšnys",
        "special-characters-title-minus": "minuso ženklas",
        "mw-widgets-dateinput-no-date": "Nepasirinkta data",
+       "mw-widgets-mediasearch-input-placeholder": "Ieškoti medijų",
        "mw-widgets-mediasearch-noresults": "Rezultatų nerasta.",
        "mw-widgets-titleinput-description-new-page": "puslapis dar neegzistuoja",
        "mw-widgets-titleinput-description-redirect": "nukreipti į $1",
index 0adbac6..ee597e7 100644 (file)
@@ -4,7 +4,8 @@
                        "Bonevarluri",
                        "علی ساکی لرستانی",
                        "Mjbmr",
-                       "Hosseinblue"
+                       "Hosseinblue",
+                       "MtDu"
                ]
        },
        "tog-underline": "لینکیا خط وه دومن",
        "pool-queuefull": "صف استخر پر هسی",
        "pool-errorunknown": "خطا ناشناخته",
        "pool-servererror": "شمارنده سرویس استخر ور تیه نی ($1).",
-       "aboutsite": "پۉرۉجھ : دأربارھ",
+       "aboutsite": "پۉرۉجھ : دأربارھ{{SITENAME}}",
        "aboutpage": "Project:دأربارھ",
        "copyright": "مطلب دومن $ 1 هس نکه خلاف هونو ذکر وابی.",
        "copyrightpage": "{{ns:project}}:کۉپی رایت",
index 3cfe703..53ca304 100644 (file)
        "tooltip-pt-anoncontribs": "Labojumi, kas veikti no šīs IP adreses",
        "tooltip-pt-login": "Aicinām tevi ieiet {{grammar:lokatīvs|{{SITENAME}}}}, tomēr tas nav obligāti.",
        "tooltip-pt-logout": "Iziet",
+       "tooltip-pt-createaccount": "Ieteicams izveidot kontu un pieslēgties; tomēr tas nav obligāti.",
        "tooltip-ca-talk": "Diskusija par šī raksta lapu",
        "tooltip-ca-edit": "Labot šo lapu",
        "tooltip-ca-addsection": "Sākt jaunu sadaļu",
index 1c599af..63e207a 100644 (file)
        "grant-editprotected": "Уредување на заштитени страници",
        "grant-highvolume": "Високообемно уредување",
        "grant-oversight": "Скривање на корисници и преработки",
-       "grant-patrol": "Ð\9fаÑ\82Ñ\80ола Ð½Ð° Ð¸Ð·мени во страници",
+       "grant-patrol": "Ð\9fаÑ\82Ñ\80ола Ð½Ð° Ð¿Ñ\80омени во страници",
        "grant-privateinfo": "Пристап до лични информации",
        "grant-protect": "Заштита на незаштитени страници",
-       "grant-rollback": "Ð\9eÑ\82повикÑ\83ваÑ\9aе Ð½Ð° Ð¸Ð·мени во страници",
+       "grant-rollback": "Ð\9eÑ\82повикÑ\83ваÑ\9aе Ð½Ð° Ð¿Ñ\80омени во страници",
        "grant-sendemail": "Испраќање на е-пошта до други корисници",
        "grant-uploadeditmovefile": "Подигање, замена и преместување на податотеки",
        "grant-uploadfile": "Подигање нови податотеки",
        "filename": "Име на податотеката",
        "filedesc": "Опис",
        "fileuploadsummary": "Опис:",
-       "filereuploadsummary": "Ð\98змени во податотеката:",
+       "filereuploadsummary": "Ð\9fÑ\80омени во податотеката:",
        "filestatus": "Авторскоправен статус:",
        "filesource": "Извор:",
        "ignorewarning": "Занемари ги предупредувањата и зачувај ја податотеката",
        "changecontentmodel-emptymodels-title": "Нема содржински модели на располагање",
        "changecontentmodel-emptymodels-text": "Содржината на [[:$1]] не може да се претвори во ниеден тип.",
        "log-name-contentmodel": "Дневник на измени во содржинските модели",
-       "log-description-contentmodel": "Настани поврзани со содржинските модели на една страница",
+       "log-description-contentmodel": "На страницава се наведени промените во содржинскиот модел на страниците, како и страници создадени со содржински модел поинаков од основно зададениот.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|ја создаде}} страницата $3 користејќи го нестандардниот содржински модел „$5“",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|го смени}} содржиснкиот модел на страницата $3 од „$4“ на „$5“",
        "logentry-contentmodel-change-revertlink": "отповикај",
        "cant-move-to-user-page": "Немате дозвола за преместување на страница во ваша корисничка страница (освен во корисничка потстраница)",
        "cant-move-category-page": "Немате дозвола да преместувате категориски страници.",
        "cant-move-to-category-page": "Немате дозвола да преместувате страници во категориски страници.",
-       "movepage-max-pages": "{{PLURAL:$1|Преместен е највеќе $1 страница|Преместени се највеќе $1 страници}}. Повеќе од тоа не може да се преместува автоматски.",
+       "cant-move-subpages": "Немате дозвола за преместување на потстраници.",
+       "namespace-nosubpages": "Именскиот простор „$1“ не дозволува потстраници.",
        "newtitle": "Нов наслов:",
        "move-watch": "Набљудувај ја страницава",
        "movepagebtn": "Премести страница",
        "movepage-page-exists": "Страницата $1 веќе постои и не може автоматски да биде заменета.",
        "movepage-page-moved": "Страницата $1 е преместена на $2.",
        "movepage-page-unmoved": "Страницата $1 не може да биде преместена во $2.",
+       "movepage-max-pages": "{{PLURAL:$1|Преместен е највеќе $1 страница|Преместени се највеќе $1 страници}}. Повеќе од тоа не може да се преместува автоматски.",
        "movelogpage": "Дневник на преместувања",
        "movelogpagetext": "Подолу е наведен список на преместени страници.",
        "movesubpage": "{{PLURAL:$1|Потстраница|Потстраници}}",
        "file-info": "големина: $1, MIME-тип: $2",
        "file-info-size": "$1 × $2 пиксели, големина: $3, MIME-тип: $4",
        "file-info-size-pages": "$1 × $2 пиксели, големина: $3, MIME-тип: $4, $5 {{PLURAL:$5|страница|страници}}",
-       "file-nohires": "Ð\9dема Ð²ÐµÑ\80зиÑ\98а Ñ\81о Ð¿Ð¾Ð³Ð¾Ð»ÐµÐ¼Ð° Ñ\80азделеноÑ\81Ñ\82.",
+       "file-nohires": "Нема верзија со поголема разделност.",
        "svg-long-desc": "SVG податотека, номинално $1 × $2 пиксели, големина: $3",
        "svg-long-desc-animated": "Анимирана SVG-податотека, номинално: $1 × $2 пиксели, големина: $3",
        "svg-long-error": "Неважечка SVG-податотека: $1",
        "show-big-image": "Изворна податотека",
        "show-big-image-preview": "Големина на овој преглед: $1.",
        "show-big-image-preview-differ": "Големина на овој $3-преглед на оваа $2-податотека: $1.",
-       "show-big-image-other": "{{PLURAL:$2|Ð\94Ñ\80Ñ\83га Ñ\80азделеноÑ\81Ñ\82\94Ñ\80Ñ\83ги Ñ\80азделености}}: $1.",
+       "show-big-image-other": "{{PLURAL:$2|Ð\94Ñ\80Ñ\83га Ñ\80азделноÑ\81Ñ\82\94Ñ\80Ñ\83ги Ñ\80азделности}}: $1.",
        "show-big-image-size": "$1 × $2 пиксели",
        "file-info-gif-looped": "кружно",
        "file-info-gif-frames": "$1 {{PLURAL:$1|кадар|кадри}}",
        "file-info-png-repeat": "пуштено {{PLURAL:$1|еднаш|$1 пати}}",
        "file-info-png-frames": "$1 {{PLURAL:$1|кадар|кадри}}",
        "file-no-thumb-animation": "'''Напомена: Поради технички ограничувања, минијатурите на оваа податотека нема да се анимираат.'''",
-       "file-no-thumb-animation-gif": "'''Ð\9dапомена: Ð\9fоÑ\80ади Ñ\82еÑ\85ниÑ\87ки Ð¾Ð³Ñ\80аниÑ\87Ñ\83ваÑ\9aа, Ð¼Ð¸Ð½Ð¸Ñ\98аÑ\82Ñ\83Ñ\80иÑ\82е Ð½Ð° GIF-Ñ\81лики Ñ\81о Ð²Ð¸Ñ\81ока Ñ\80азделеноÑ\81Ñ\82 ÐºÐ°ÐºÐ¾ Ð¾Ð²Ð°Ð° Ð½ÐµÐ¼Ð° Ð´Ð° Ñ\81е Ð°Ð½Ð¸Ð¼Ð¸Ñ\80ааÑ\82.'''",
+       "file-no-thumb-animation-gif": "'''Напомена: Поради технички ограничувања, минијатурите на GIF-слики со висока разделност како оваа нема да се анимираат.'''",
        "newimages": "Галерија на нови податотеки",
        "imagelisttext": "Следи список на '''$1''' {{PLURAL:$1|податотека|податотеки}} подредени $2.",
        "newimages-summary": "Оваа службена страница ги покажува скоро подигнатите податотеки.",
        "exif-planarconfiguration": "Распоред на податоците",
        "exif-ycbcrsubsampling": "Однос на величината на Y спрема C",
        "exif-ycbcrpositioning": "Положби на Y и C",
-       "exif-xresolution": "ХоÑ\80изонÑ\82ална Ñ\80азделеноÑ\81Ñ\82",
-       "exif-yresolution": "Ð\92еÑ\80Ñ\82икална Ñ\80азделеноÑ\81Ñ\82",
+       "exif-xresolution": "Хоризонтална разделност",
+       "exif-yresolution": "Вертикална разделност",
        "exif-stripoffsets": "Положба на податоците",
        "exif-rowsperstrip": "Број на редови по блок",
        "exif-stripbytecounts": "Бајти по набиен блок",
        "exif-focallength-format": "$1 мм",
        "exif-subjectarea": "Положба и површина на објектот",
        "exif-flashenergy": "Енергија на блицот",
-       "exif-focalplanexresolution": "РазделеноÑ\81Ñ\82 Ð½Ð° Ð¶Ð°Ñ\80иÑ\88наÑ\82а Ñ\80амнина X",
-       "exif-focalplaneyresolution": "РазделеноÑ\81Ñ\82 Ð½Ð° Ð¶Ð°Ñ\80иÑ\88наÑ\82а Ñ\80амнина Y",
-       "exif-focalplaneresolutionunit": "Ð\95диниÑ\86а Ð·Ð° Ñ\80азделеноÑ\81Ñ\82 Ð½Ð° Ð¶Ð°Ñ\80иÑ\88наÑ\82а Ñ\80амнина",
+       "exif-focalplanexresolution": "Разделност на жаришната рамнина X",
+       "exif-focalplaneyresolution": "Разделност на жаришната рамнина Y",
+       "exif-focalplaneresolutionunit": "Единица за разделност на жаришната рамнина",
        "exif-subjectlocation": "Положба на субјектот",
        "exif-exposureindex": "Показател на изложувањето",
        "exif-sensingmethod": "Метод на сензорот",
        "api-error-unclassified": "Се појави непозната грешка.",
        "api-error-unknown-code": "Непозната грешка: „$1“",
        "api-error-unknown-error": "Внатрешна грешка: нешто тргна наопаку при обидот да ја подигнете податотеката.",
-       "api-error-unknown-warning": "Непознато предупредување: $1",
+       "api-error-unknown-warning": "Непознато предупредување: „$1“",
        "api-error-unknownerror": "Непозната грешка: „$1“.",
        "api-error-uploaddisabled": "Подигањето е оневозможено на ова вики.",
        "api-error-verification-error": "Податотеката е оштетена или има погрешна наставка.",
        "sessionprovider-nocookies": "Колачињата може да се оневозможени. Ако е така, овозможете ги, и почнете одново.",
        "randomrootpage": "Случајна основна страница",
        "log-action-filter-block": "Тип на блок:",
-       "log-action-filter-contentmodel": "Тип Ð½Ð° Ð·мена на содржинскиот модел:",
+       "log-action-filter-contentmodel": "Тип Ð½Ð° Ð¿Ñ\80омена на содржинскиот модел:",
        "log-action-filter-delete": "Тип на бришење:",
        "log-action-filter-import": "Тип на увоз:",
        "log-action-filter-managetags": "Тип на дејство за управување со ознаки:",
index 36707b3..9eb9458 100644 (file)
@@ -27,7 +27,7 @@
                ]
        },
        "tog-underline": "လင့်ကို မျဉ်းသားသည့် ပုံစံ -",
-       "tog-hideminor": "á\80\9cá\80\90á\80ºá\80\90á\80\9cá\80±á\80¬ á\80¡á\80\95á\80¼á\80±á\80¬á\80\84á\80ºá\80¸á\80¡á\80\9cá\80²á\80\99á\80»á\80¬á\80¸á\80\90á\80½á\80\84á\80º á\80¡á\80\9bá\80±á\80¸á\80\99á\80\80á\80¼á\80®á\80¸á\80\9eá\80\8aá\80ºá\80\99á\80»á\80¬á\80¸á\80\80á\80­á\80¯ ဝှက်ရန်",
+       "tog-hideminor": "á\80¡á\80\9bá\80±á\80¸á\80\99á\80\80á\80¼á\80®á\80¸á\80\9eá\80±á\80¬ á\80\90á\80\8aá\80ºá\80¸á\80\96á\80¼á\80\90á\80ºá\80\99á\80¾á\80¯á\80\99á\80»á\80¬á\80¸á\80\80á\80­á\80¯ á\80\9cá\80\90á\80ºá\80\90á\80\9cá\80±á\80¬ á\80¡á\80\95á\80¼á\80±á\80¬á\80\84á\80ºá\80¸á\80¡á\80\9cá\80²á\80\99á\80»á\80¬á\80¸á\80\99á\80¾ ဝှက်ရန်",
        "tog-hidepatrolled": "လတ်တလော အပြောင်းအလဲများတွင် ကင်းလှည့်တည်းဖြတ်မှုများကို ဝှက်ရန်",
        "tog-newpageshidepatrolled": "စာမျက်နှာသစ်စာရင်းတွင် ကင်းလှည့်စာမျက်နှာများကို ဝှက်ရန်",
        "tog-hidecategorization": "စာမျက်နှာများ၏ ကဏ္ဍကို ဝှက်ရန်",
@@ -38,7 +38,7 @@
        "tog-editondblclick": "ကလစ်နှစ်ခါနှိပ်ပြီး စာမျက်နှာများအား ပြင်ဆင်ရန်",
        "tog-editsectiononrightclick": "အပိုင်းလိုက်ခေါင်းစဉ်များကို ညာကလစ်နှိပ်ခြင်းဖြင့် အပိုင်းလိုက် တည်းဖြတ်ခြင်းကို အသုံးပြုရန်",
        "tog-watchcreations": "ကျွန်ုပ်စတင်ရေးသားခဲ့သည့်စာမျက်နှာများနှင့် အပ်လုပ်တင်ခဲ့သည့် ဖိုင်များကို စောင့်​ကြည့်​စာ​ရင်း​ထဲ ပေါင်းထည့်ရန်",
-       "tog-watchdefault": "á\80\80á\80»á\80½á\80\94á\80ºá\80¯á\80\95á\80º á\80\90á\80\8aá\80ºá\80¸á\80\96á\80¼á\80\90á\80ºá\80\81á\80²á\80·á\80\9eá\80\8aá\80·á\80º á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\99á\80»á\80¬á\80¸á\80\94á\80¾á\80\84á\80·á\80º á\80\96á\80­á\80¯á\80\84á\80ºá\80\99á\80»á\80¬á\80¸á\80\80á\80­á\80¯ á\80\85á\80±á\80¬á\80\84á\80·á\80ºá\80\80á\80¼á\80\8aá\80·á\80ºá\80\85á\80¬á\80\9bá\80\84á\80ºá\80¸á\80\9eá\80­á\80¯á\80·  á\80\95á\80±á\80«á\80\84á\80ºá\80¸á\80\91á\80\8aá\80·á\80ºá\80\95á\80«á\81\8b",
+       "tog-watchdefault": "á\80\80á\80»á\80½á\80\94á\80ºá\80¯á\80\95á\80º á\80\90á\80\8aá\80ºá\80¸á\80\96á\80¼á\80\90á\80ºá\80\81á\80²á\80·á\80\9eá\80\8aá\80·á\80º á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\99á\80»á\80¬á\80¸á\80\94á\80¾á\80\84á\80·á\80º á\80\96á\80­á\80¯á\80\84á\80ºá\80\99á\80»á\80¬á\80¸á\80\80á\80­á\80¯ á\80\85á\80±á\80¬á\80\84á\80·á\80ºá\80\80á\80¼á\80\8aá\80·á\80ºá\80\85á\80¬á\80\9bá\80\84á\80ºá\80¸á\80\9eá\80­á\80¯á\80·  á\80\95á\80±á\80«á\80\84á\80ºá\80¸á\80\91á\80\8aá\80·á\80ºá\80\9bá\80\94á\80º",
        "tog-watchmoves": "ကျွန်ုပ်ရွှေ့လိုက်သော စာမျက်နှာများနှင့် ဖိုင်များကို စောင့်ကြည့်စာရင်းသို့ ပေါင်းထည့်ရန်",
        "tog-watchdeletion": "ဖျက်လိုက်သောစာမျက်နှာများနှင့် ဖိုင်များကို စောင့်ကြည့်စာရင်သို့ ပေါင်းထည့်ရန်",
        "tog-watchuploads": "ကျွန်ုပ်တင်လိုက်သော ဖိုင်အသစ်များအား ကျွန်ုပ်၏ စောင့်ကြည့်စာရင်းသို့ ပေါင်းထည့်ရန်",
        "talk": "ဆွေးနွေးချက်",
        "views": "အမြင်ပုံစံများ",
        "toolbox": "ကိရိယာများ",
+       "tool-link-userrights": "{{GENDER:$1|အသုံးပြုသူ}}အုပ်စုများကို ပြောင်းလဲရန်",
+       "tool-link-userrights-readonly": "{{GENDER:$1|အသုံးပြုသူ}}အုပ်စုများကို ကြည့်ရန်",
+       "tool-link-emailuser": "ဤ{{GENDER:$1|အသုံးပြုသူ}}ကို အီးမေးပို့ရန်",
        "userpage": "အသုံးပြုသူ၏ စာမျက်နှာကို ကြည့်ရန်",
        "projectpage": "ပရောဂျက်စာမျက်နှာကို ကြည့်ရန်",
        "imagepage": "ဖိုင်စာမျက်နှာကိုကြည့်ရန်",
        "all-logs-page": "အများနှင့်ဆိုင်သောမှတ်တမ်းအားလုံး",
        "alllogstext": "{{SITENAME}}၏ ရရှိနိုင်သော မှတ်တမ်းများအားလုံး ပေါင်းစည်းပြသခြင်း ဖြစ်သည်။\nမှတ်တမ်းအမျိုးအစား၊ အသုံးပြုသူအမည် (စာလုံးအကြီးအသေး)၊ သို့မဟုတ် သက်ဆိုင်ရာ စာမျက်နှာ (စာလုံးအကြီးအသေး) ကို ရွေးချယ်ခြင်းဖြင့် ကြည့်ရှုမှုကို အကျဉ်းချုံးနိုင်ပါသည်။",
        "logempty": "မှတ်တမ်းထဲတွင် ကိုက်ညီသော အရာများ မရှိပါ။",
+       "checkbox-all": "အားလုံး",
        "allpages": "စာမျက်နှာအားလုံး",
        "nextpage": "နောက်ထပ်စာမျက်နှာ ($1)",
        "prevpage": "ယခင် စာမျက်နှာ ($1)",
        "mycontris": "ဆောင်ရွက်ချက်များ",
        "anoncontribs": "ဆောင်ရွက်ချက်များ",
        "contribsub2": "{{GENDER:$3|$1}}အတွက် ($2)",
+       "nocontribs": "ဤသတ်မှတ်ချက်များနှင့် ကိုက်ညီသည့် ပြောင်းလဲမှုများ မရှိပါ။",
        "uctop": "(လက်ရှိ)",
        "month": "အဆိုပါ လမှစ၍ ( အဆိုပါလထက်လည်း စောသော) :",
        "year": "အဆိုပါ နှစ်မှစ၍ ( အဆိုပါနှစ်ထက်လည်း စောသော) :",
        "sp-contributions-newbies": "အကောင့်အသစ်များ၏ ပံ့ပိုးမှုများကိုသာ ပြရန်",
        "sp-contributions-newbies-sub": "အကောင့်အသစ်များအတွက်",
        "sp-contributions-blocklog": "ပိတ်ပင်တားဆီးမှု မှတ်တမ်း",
+       "sp-contributions-deleted": "ဖျက်ခံထားရသည့် {{GENDER:$1|အသုံးပြုသူ}} ဆောင်ရွက်ချက်များ",
        "sp-contributions-uploads": "အပ်လုပ်တင်ထားသည်များ",
        "sp-contributions-logs": "မှတ်​တမ်း​များ​",
        "sp-contributions-talk": "ဆွေးနွေး",
        "sp-contributions-search": "ပံ့ပိုးမှုများကို ရှာရန်",
        "sp-contributions-username": "အိုင်ပီလိပ်စာ သို့ အသုံးပြုသူအမည် :",
        "sp-contributions-toponly": "နောက်ဆုံးတည်းဖြတ်မူများသာပြရန်",
+       "sp-contributions-hideminor": "အရေးမကြီးသော တည်းဖြတ်မှုများကို ဝှက်ရန်",
        "sp-contributions-submit": "ရှာဖွေရန်",
        "whatlinkshere": "ဘယ်ကလင့်ခ်ထားလဲ",
        "whatlinkshere-title": "\"$1\" ကို လင့်ထားသော စာမျက်နှာများ",
        "ipaddressorusername": "အိုင်ပီလိပ်စာ သို့ အသုံးပြုသူအမည် -",
        "ipbexpiry": "သက်တမ်းကုန်လွန်ရက် -",
        "ipbreason": "အ​ကြောင်း​ပြ​ချက်:",
+       "ipb-hardblock": "ဤအိုင်ပီလိပ်စာမှ လော့ဂ်အင်ဝင်ထားသော အသုံးပြုသူများကို တည်းဖြတ်ခြင်းမှ တားမြစ်ရန်",
        "ipbcreateaccount": "အကောင့်အသစ်ပြုလုပ်ခြင်းကို တားဆီးရန်",
        "ipbemailban": "အီးမေးပို့ခြင်းမှ အသုံးပြုသူကို တားဆီးရန်",
+       "ipbenableautoblock": "ဤအသုံးပြုသူ အသုံးပြုသော အိုင်ပီလိပ်စာနှင့် သူတို့ ပြင်ဆင်ရန် ကြိုးစားသည့် နောက်ဆက်တွဲ အိုင်ပီလိပ်စာများကိုပါ အလိုအလျောက်ပိတ်ပင်ရန်",
        "ipbsubmit": "ဤအသုံးပြုသူကို ပိတ်ပင်ရန်",
        "ipbother": "အခြားအချိန်:",
        "ipboptions": "၂ နာရီ:2 hours,၁ ရက်:1 day,၃ ရက်:3 days,၁ ပတ်:1 week,၂ ပတ်:2 weeks,၁ လ:1 month,၃ လ:3 months,၆ လ:6 months,၁ နှစ်:1 year,အနန္တ:infinite",
        "ipbhidename": "အသုံးပြုသူအမည်ကို တည်းဖြတ်မှုများနှင့် စာရင်းမှထဲတွင် ဝှက်ထားရန်",
-       "ipbwatchuser": "ဤအသုံးပြုသူ၏စာမျက်နှနှင့် ဆွေးနွေးချက်တို့ကို စောင့်ကြည့်ရန်",
+       "ipbwatchuser": "ဤအသုံးပြုသူ၏ စာမျက်နှာနှင့် ဆွေးနွေးချက်တို့ကို စောင့်ကြည့်ရန်",
+       "ipb-disableusertalk": "ပိတ်ပင်ထားစဉ်အတွင်း ဤအသုံးပြုသူအား သူတို့၏ ကိုယ်ပိုင်ဆွေးနွေးချက် စာမျက်နှာကို ပြင်ဆင်ခြင်းမှ ပိတ်ပင်ရန်",
+       "ipb-change-block": "အသုံးပြုသူအား ဤအပြင်အဆင်များဖြင့် ထပ်မံပိတ်ပင်ရန်",
        "badipaddress": "တရားမဝင်သော IP address",
        "blockipsuccesssub": "ပိတ်ပင်ခြင်း အောင်မြင်သည်",
        "ipb-edit-dropdown": "ပိတ်ပင်ရသောအကြောင်းရင်းများ",
        "change-blocklink": "စာကြောင်းအမည် ပြောင်းရန်",
        "contribslink": "ပံ့ပိုး",
        "blocklogpage": "ပိတ်ပင်တားဆီးမှု မှတ်တမ်း",
+       "blocklog-showlog": "ဤအသုံးပြုသူအား ယခင်က ပိတ်ပင်ထားပြီး ဖြစ်သည်။\nပိတ်ပင်မှု မှတ်တမ်းအား ကိုးကားနိုင်ရန် အောက်တွင် ဖော်ပြထားသည်။",
        "blocklogentry": "[[$1]] ကို $2 ကြာအောင် ပိတ်ပင် တားဆီးလိုက်သည် $3",
        "blocklogtext": "ဤသည်မှာ အသုံးပြုသူအား ပိတ်ပင်ခြင်းနှင့် ပိတ်ပင်မှုဖယ်ရှားခြင်း ဆောင်ရွက်မှု မှတ်တမ်း ဖြစ်သည်။\nအလိုအလျောက် ပိတ်ပင်ထားသည့် အိုင်ပီလိပ်စာများအား မထည့်သွင်းထားပါ။\nလက်ရှိ တားမြစ်မှုများနှင့် ပိတ်ပင်မှုများ စာရင်းအတွက် [[Special:BlockList|ပိတ်ပင်စာရင်း]]ကို ကြည့်ပါ။",
        "unblocklogentry": "$1 ကို ပိတ်ထားရာမှ ပြန်ဖွင့်ရန်",
        "block-log-flags-nousertalk": "မိမိ၏ဆွေးနွေးချက်စာမျက်နှာကို တည်းဖြတ်မရနိုင်ပါ",
        "block-log-flags-hiddenname": "အသုံးပြုသူအမည် ဝှက်ထားသည်",
        "ipb_expiry_invalid": "သက်တမ်းကုန်လွန်မည့် အချိန်သည် တရားမဝင်ပါ။",
-       "ipb_already_blocked": "\"$1\" ကို အစကတည်းက ပိတ်ထားသည်",
+       "ipb_already_blocked": "\"$1\" ကို ပိတ်ပင်ထားပြီး ဖြစ်သည်။",
+       "ipb-needreblock": "$1 ကို ပိတ်ပင်ထားပြီး ဖြစ်သည်။ အပြင်အဆင်များကို ပြောင်းလဲလိုပါသလား?",
        "move-page": "$1 ကို ရွှေ့ရန်",
        "move-page-legend": "စာ​မျက်​နှာ​ကို ရွှေ့ပြောင်းရန်",
        "movepagetext": "အောက်ပါပုံစံကို အသုံးပြုခြင်းသည် စာမျက်နှာကို အမည်ပြောင်းလဲပေးမည် ဖြစ်ပြီး အမည်သစ်သို့ ယင်း၏ မှတ်တမ်းနှင့်တကွ ရွှေ့ပေးမည် ဖြစ်သည်။\nအမည်ဟောင်းသည် အမည်သစ်သို့ ပြန်ညွှန်းစာမျက်နှာ ဖြစ်လာမည်။\nသင်သည် မူလခေါင်းစဉ်သို့ ပြန်ညွှန်းများကို အလိုအလျောက် အပ်ဒိတ် update လုပ်နိုင်သည်။\nအကယ်၍ မပြုလုပ်လိုပါက [[Special:DoubleRedirects|နှစ်ဆင့်ပြန်ညွှန်းများ]] သို့မဟုတ် [[Special:BrokenRedirects|ပြန်ညွှန်း အပျက်များ]] ကို မှတ်သားရန် မမေ့ပါနှင့်။\nလင့်များ ညွှန်းလိုသည့် နေရာသို့ ညွှန်ပြနေရန် သင့်တွင် တာဝန် ရှိသည်။\n\nအကယ်၍ ခေါင်းစဉ်အသစ်တွင် စာမျက်နှာတစ်ခု ရှိနှင့်ပြီး ဖြစ်ပါက (သို့) ယင်းစာမျက်နှာသည် အလွတ်မဖြစ်ပါက (သို့) ပြန်ညွှန်းတစ်ခု မရှိပါက (သို့) ယခင်က ပြုပြင်ထားသော မှတ်တမ်း မရှိပါက စာမျက်နှာသည် <strong>ရွေ့မည်မဟုတ်</strong> သည်ကို သတိပြုပါ။ \nဆိုလိုသည်မှာ သင်သည် အမှားတစ်ခု ပြုလုပ်မိပါက စာမျက်နှာကို ယခင်အမည်ကို ပြန်လည် ပြောင်းလဲပေးနိုင်သည်။ ရှိပြီသားစာမျက်နှာတစ်ခုကို စာမျက်နှာ အသစ်နှင့် ပြန်အုပ် overwrite ခြင်း မပြုနိုင်။\n\n<strong>မှတ်ချက်။</strong>\nဤသည်မှာ လူဖတ်များသော စာမျက်နှာတစ်ခုဖြစ်ပါက မမျှော်လင့်ထားသော၊ ကြီးမားသော အပြောင်းအလဲတစ်ခု ဖြစ်ပေါ်လာနိုင်သည်။\nထို့ကြောင့် ဆက်လက် မဆောင်ရွက်မီ သင်သည် နောက်ဆက်တွဲ အကျိုးဆက်များကို နားလည်ကြောင်း ကျေးဇူးပြု၍ သေချာပါစေ။",
        "tags": "အသုံးပြုနေသော အပြောင်းအလဲစာတွဲများ",
        "tag-filter": "[[Special:Tags|Tag]] သီးသန့်စစ်ထုတ်ရန် -",
        "tag-filter-submit": "စိစစ်မှု",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|စာတွဲ|စာတွဲများ}}]]: $2)",
        "tags-title": "အမည်တွဲ",
        "tags-tag": "အမည်တွဲ အမည်",
        "tags-edit": "ပြင်​ဆင်​ရန်",
        "revdelete-content-hid": "အကြောင်းအရာ ဝှက်ခြင်း",
        "revdelete-restricted": "အက်ဒမင်များသို့ ကန့်သတ်ချက်များ သက်ရောက်ရန်",
        "revdelete-unrestricted": "အက်ဒမင်များအတွက် ကန့်သတ်ချက်များကို ဖယ်ရှားရန်",
+       "logentry-suppress-block": "{{GENDER:$4|$3}} အား $5 ကြာအောင် $1 က {{GENDER:$2|ပိတ်ပင်ခဲ့သည်}} $6",
        "logentry-move-move": "$3 စာမျက်နှာကို $4 သို့ $1က {{GENDER:$2|ရွှေ့ခဲ့သည်}}",
        "logentry-move-move-noredirect": "$3 မှ $4 သို့ စာမျက်နှာကို ပြန်ညွှန်းချန်မထားပဲ $1 {{GENDER:$2|က ရွှေ့ခဲ့သည်}}",
        "logentry-newusers-create": "အသုံးပြုသူအကောင့် $1 ကို {{GENDER:$2|ဖန်တီးခဲ့သည်}}",
+       "logentry-newusers-autocreate": "အသုံးပြုသူအကောင့် $1 ကို အလိုအလျောက် {{GENDER:$2|ဖန်တီးခဲ့သည်}}",
        "logentry-upload-upload": "$1 သည် $3 ကို {{GENDER:$2|upload တင်ခဲ့သည်}}",
        "logentry-upload-overwrite": "$3 ၏ ဗားရှင်းအသစ်ကို $1 {{GENDER:$2|upload တင်ခဲ့သည်}}",
        "rightsnone": "(ဘာမှမရှိ)",
        "pagelang-use-default": "ပင်မ ဘာသာစကားကို အသုံးပြုရန်",
        "right-pagelang": "စာမျက်နှာ ဘာသာစကား ပြောင်းလဲရန်",
        "log-name-pagelang": "ဘာသာစကား ပြောင်းလဲမှု မှတ်တမ်း",
-       "log-description-pagelang": "ဤအရာသည် စာမျက်နှာ၏ဘာသာစကားများ ပြောင်းလဲမှုမှတ်တမ်း ဖြစ်သည်။"
+       "log-description-pagelang": "ဤအရာသည် စာမျက်နှာ၏ဘာသာစကားများ ပြောင်းလဲမှုမှတ်တမ်း ဖြစ်သည်။",
+       "log-action-filter-newusers": "အကောင့်ဖန်တီးမှု အမျိုးအစား:",
+       "log-action-filter-all": "အားလုံး",
+       "log-action-filter-newusers-create": "အမည်မသိ အသုံးပြုသူများမှ ဖန်တီးမှု",
+       "log-action-filter-newusers-create2": "မှတ်ပုံတင်ထားသော အသုံးပြုသူမှ ဖန်တီးမှု",
+       "log-action-filter-newusers-autocreate": "အလိုအလျောက် ဖန်တီးမှု",
+       "log-action-filter-newusers-byemail": "အီးမေးလ်မှတဆင့် စကားဝှက်ပို့၍ ဖန်တီးမှု"
 }
index 6c21e03..58efd6f 100644 (file)
@@ -38,9 +38,9 @@
        "tog-oldsig": "Nicān tōcāyoh:",
        "tog-fancysig": "Wikitext īpan ticmatiz tōcāyoh (in ahtleh auto-link)",
        "tog-forceeditsummary": "Xinēchnōtzāz ihcuāc ahmo niquihtōz inōn ōnitlapatlac",
-       "tog-watchlisthideown": "Tiquintlātīz mopatlaliz motlachiyalizpan",
+       "tog-watchlisthideown": "Tictlatiz mopatlaliz ipan motlachiyaliz",
        "tog-watchlisthidebots": "Tiquintlātīz tepozpatlaliztli motlachiyalizpan",
-       "tog-watchlisthideminor": "Tiquintlātīz tlapatlalitzintli motlachiyalizpan",
+       "tog-watchlisthideminor": "Tictlatiz in tlapatlalitzintli ipan motlachiyaliz",
        "tog-watchlisthideliu": "Tiquintlātīz tlācah ōmocalacqueh īntlapatlaliz motlachiyalizpan",
        "tog-watchlisthideanons": "Tiquintlātīz tlācah ahtōcāitl īntlapatlaliz motlachiyalizpan",
        "tog-ccmeonemails": "Nō xinēch-mailīz ihcuāc nitē-mailīz tlatequitiltilīlli",
        "editfont-monospace": "Cencoyahualiztli machiyotlahtoliztli",
        "editfont-sansserif": "Sans-serif machiyotlahtoliztli",
        "editfont-serif": "Serif machiyotlahtoliztli",
-       "sunday": "Īccemilhuitl",
-       "monday": "Īcōmilhuitl",
+       "sunday": "Iccemilhuitl",
+       "monday": "Icomilhuitl",
        "tuesday": "Icyeyilhuitl",
-       "wednesday": "Īcnāhuilhuitl",
-       "thursday": "Īcmācuīlilhuitl",
-       "friday": "Īcchicuacemilhuitl",
-       "saturday": "Īcchicōmilhuitl",
+       "wednesday": "Icnahuilhuitl",
+       "thursday": "Icmacuililhuitl",
+       "friday": "Icchicuacemilhuitl",
+       "saturday": "Icchicomilhuitl",
        "sun": "Cemilhui",
        "mon": "Ōmilhui",
        "tue": "Ēyilhui",
        "september-gen": "Īcchiucnāhuimētztli",
        "october-gen": "Īcmahtlāctetlmētztli",
        "november-gen": "Īcmahtlāctetloncēmētztli",
-       "december-gen": "Īcmahtlāctetlomōmemētztli",
-       "jan": "Ic cē",
-       "feb": "2 Metz",
-       "mar": "Ic ēyi",
-       "apr": "Nāhui",
-       "may": "Mācuilli",
-       "jun": "Chicuacē",
-       "jul": "Chicōme",
-       "aug": "Chicuēyi",
-       "sep": "Chiucnāhui",
-       "oct": "Mahtlāctli",
-       "nov": "Mahtlāctlioncē",
-       "dec": "Mahtlāctliomōme",
+       "december-gen": "Icmahtlactetlomomemetztli",
+       "jan": "Icce m",
+       "feb": "Icome m",
+       "mar": "Ic eyi m",
+       "apr": "Icnahui m",
+       "may": "Icmacuil m",
+       "jun": "Icchicuace m",
+       "jul": "Icchicome m",
+       "aug": "Icchicueyi m",
+       "sep": "Icchiucnauh m",
+       "oct": "Icmahtlac m",
+       "nov": "Icmahtlacce m",
+       "dec": "Icmahtlacome m",
        "january-date": "Īccēmētztli $1",
        "february-date": "Īcōmemētztli $1",
        "march-date": "Īquēyimētztli $1",
        "variants": "Nepapan",
        "navigation-heading": "Nemiliztlahtolpohualamatl",
        "errorpagetitle": "Aiuhcāyōtl",
-       "returnto": "Ximocuepa īhuīc $1.",
+       "returnto": "Ximocuepa ihuic $1.",
        "tagline": "Itechcopa {{SITENAME}}",
        "help": "Tepalehuiliztli",
        "search": "Tlatemoliztli",
        "searchbutton": "Tlatemoliztli",
-       "go": "Xiyauh",
-       "searcharticle": "Xiyauh",
+       "go": "Yaliztica",
+       "searcharticle": "Yaliztica",
        "history": "Tlahtollotl",
        "history_short": "Tlahtollotl",
        "updatedmarker": "ōmoyancuīx īhuīcpa xōcoyōc notlahpololiz",
        "view-foreign": "Īpan xiquitta in $1",
        "edit": "Xicpatla",
        "edit-local": "Xicpatla nicān tlahtōlli",
-       "create": "Xicchīhua",
+       "create": "Xicchihua",
        "create-local": "Xicahxilti nicān tlahtōlli",
-       "editthispage": "Xicpatla inīn tlaīxtli",
+       "editthispage": "Xicpatla inin tlahcuilolamatl",
        "create-this-page": "Xicchīhua inīn tlaīxtli",
        "delete": "Xicpolo",
        "deletethispage": "Xicpolo inīn tlaīxtli",
        "privacy": "Tlahcuilolli piyaliznahuatilli",
        "privacypage": "Project:Tlahcuilōlpiyaliztechcopa nahuatīltōn",
        "badaccess": "Tlahuelītiliztechcopa ahcuallōtl",
-       "badaccess-group0": "Tehhuātl ahmo tiquichīhua inōn tiquiēlēhuia.",
-       "badaccess-groups": "Inōn tiquiēlēhuia zan quichīhuah tlatequitiltilīlli {{PLURAL:$2|oncān}}: $1.",
-       "ok": "Cualli",
+       "badaccess-group0": "Tehhuatl ahmo hueli ticchihua in tlein tiquelehuia.",
+       "badaccess-groups": "Inin tlen tiquelehuia zan quichihuah tequitiuhqueh {{PLURAL:$2|itech necentlaliliztli| centetl itech inin $2 necentlaliliztin}}: $1.",
+       "ok": "Cayecualli",
        "retrievedfrom": "Ōquīzqui ītech  \"$1\"",
        "youhavenewmessages": "Tiquimpiya $1 ($2).",
        "youhavenewmessagesmulti": "Tiquimpiya yancuīc tlahcuilōlli īpan $1",
        "red-link-title": "$1 (ahmo oncah tlahcuilolamatl)",
        "nstab-main": "Tlahcuilolamatl",
        "nstab-user": "Tequitiuhqui itlahcuilolamauh",
-       "nstab-media": "Mēdiatl",
+       "nstab-media": "Multimedia",
        "nstab-special": "Noncuahquizqui tlahcuilolli",
        "nstab-project": "Ìtlaìxtlapal in tlayẻkàntekitl",
        "nstab-image": "Tlahcuilolpiyalli",
        "nstab-mediawiki": "Tlahcuilōltzintli",
        "nstab-template": "Nemachiyotilli",
-       "nstab-help": "Tèpalèwilistli",
+       "nstab-help": "Tepalehuiliztli",
        "nstab-category": "Neneuhcayotl",
        "mainpage-nstab": "Yacatlahcuilolli",
        "nosuchaction": "Ahmo ia tlachīhualiztli",
        "summary-preview": "Tlahcuilōltōn achtochīhualiztli:",
        "blockedtitle": "Ōmotzacuili tlatequitiltilīlli",
        "blockednoreason": "ahmo cah īxtlamatiliztli",
-       "whitelistedittext": "Tihuīquilia $1 ic ticpatla zāzaniltin.",
+       "whitelistedittext": "Monequi tlen $1 ic ticpatla tlahcuilolamatl.",
        "nosuchsectiontitle": "In xeliuhcayotl ahmo oquinamic",
        "loginreqtitle": "Ximocalaqui",
        "loginreqlink": "ximocalaqui",
-       "loginreqpagetext": "Tihuīquilia $1 ic tiquintta occequīntīn zāzaniltin.",
+       "loginreqpagetext": "Monequi $1 ic tiquimitta occequintin tlahcuilolamameh.",
        "accmailtitle": "Tlahtōlichtacāyōtl ōmoihuah.",
        "accmailtext": "Oquiyocox ce ichtacatlahtolli ipan [[User talk:$1|$1]] auh omoquititlan ihuic $2. Hueli ticpatlazquia ipan ''[[Special:ChangePassword|Ticpatlaz in ]]'' niman oticalaco achtopa.",
        "newarticle": "(Yancuic)",
        "userjspreview": "'''Ca inīn moachtochīhualiz ītechcopa moJavaScript.'''\n'''¡Ahmo ōmochīuh nozan!'''",
        "updated": "(Ōmoyancuīli)",
        "note": "'''Tlahtōlcaquiliztilōni:'''",
-       "previewnote": "'''Xiquilnamiqui tein inīn zan tlaachtopaittaliztli.'''\n¡Motlapatlaliz ayamo ōquinpix!",
+       "previewnote": "'''Xiquilnamiqui tlein inin zan tlaachtopaittaliztli.'''\n¡Ayamo omopix motlapatlaliz!",
        "editing": "Ticpatla $1",
        "creating": "Ticchīhua $1",
        "editingsection": "Ticpatlacah $1 (tlahtōltzintli)",
        "templatesusedsection": "{{PLURAL:$1|Nemachiotl tlen motequiuhtia|Nemachiomeh tlen moquintequiuhtiah}} ipan inin tlaxeloliztli:",
        "template-protected": "(ōmoquīxti)",
        "hiddencategories": "Inin tlahcuilolli pohui {{PLURAL:$1|1 tlatlalilli neneuhcayotl|$1 tlatlaliltin neneuhcayomeh}}:",
-       "nocreatetext": "Inīn huiqui ōquitzacuili tlahuelītiliztli ic tlachīhua yancuīc zāzaniltin. Tichuelīti ticcuepa auh ticpatla cē zāzanilli, [[Special:UserLogin|xicalaqui nozo xicchīhua cē cuentah]].",
-       "nocreate-loggedin": "Ahmo tihuelīti tiquinchīhua yancuīc zāzaniltin.",
+       "nocreatetext": "Inin huiqui oquitzacuili ic mochihua yancuic tlahcuilolamatl. Quil ticcuepaznequi auh ticpatlaz occe tlahcuilolamatl, [[Special:UserLogin|xicalaqui nozo xicchihua ce cuentah]].",
+       "nocreate-loggedin": "Ahmo hueli ticchihua yancuic tlahcuilolamatl.",
        "permissionserrors": "Tēmācāhualiztli aiuhcāyōtl",
        "permissionserrorstext": "Ahmo tihuelīti quichīhua inōn, inīn {{PLURAL:$1|īxtlamatilizpampa}}:",
        "permissionserrorstext-withaction": "Ahmo tiquihuelīti $2 inīn {{PLURAL:$1|īxtlamatilizpampa}}:",
        "mypreferences": "Notlaelehuiliz",
        "prefs-edits": "Tlapatlaliztli tlapōhualli:",
        "prefs-skin": "Ēhuatl",
-       "skin-preview": "Xiquitta quemeh yez",
+       "skin-preview": "Xiquitta quenin yez",
        "datedefault": "Ayāc tlanequiliztli",
        "prefs-labs": "Ìntlâtlamảtilis in tlayêyẻkòyàntìn",
        "prefs-personal": "Tequihuihcātlapōhualli",
        "rclinks": "Xiquitta yancuic $1 tlapatlaliztli yancuic $2 tonalpan.<br />$3",
        "diff": "ahneneuhqui",
        "hist": "tlahtollotl",
-       "hide": "Tiquintlātīz",
+       "hide": "Tictlatiz",
        "show": "Xicnēxti",
        "minoreditletter": "p",
        "newpageletter": "Y",
        "uploadbtn": "Tlahcuilōlquetza",
        "uploadnologin": "Ahmo ōtimocalac",
        "uploaderror": "Tlaquetzaliztli ahcuallōtl",
-       "uploadlogpage": "Tlaquetzaliztli tlahcuilōlloh",
+       "uploadlogpage": "Tlaquetzaliztli itlahcuilolloh",
        "filename": "Tlahcuilōlli ītōcā",
        "filedesc": "Tlahcuilōltōn",
        "fileuploadsummary": "Tlahcuilōltōn:",
        "filetype-missing": "Tlahcuilōlli ahmo quipiya huēiyaquiliztli (quemeh \".jpg\").",
        "large-file": "Mā tlahcuilōlli ahmo achi huēiyac $1; inīn cah $2.",
        "fileexists-extension": "Tlahcuilōlli zan iuh tōcātica ia: [[$2|thumb]]\n* Tlahcuilōlli moquetzacah: <strong>[[:$1]]</strong>\n* Tlahcuilōlli tlein ia ītōca: <strong>[[:$2]]</strong>\nTimitztlātlauhtiah, xitlahcuiloa occē tōcāitl.",
-       "savefile": "Quipiyāz tlahcuilōlli",
+       "savefile": "Mopiyaz in tlahcuilolli",
        "uploaddisabled": "Ahmo mohuelīti tlahcuilōlquetzā",
        "uploaddisabledtext": "Ahmo huelīti moquetzazqueh tlahcuilōlli.",
        "upload-source": "Mēyalihcuilōlli",
        "uploadnewversion-linktext": "Ticquetzāz yancuīc tlahcuilōlli",
        "filerevert": "Ticcuepāz $1",
        "filerevert-legend": "Tlahcuilōlli tlacuepaliztli",
-       "filerevert-comment": "Tlèka:",
+       "filerevert-comment": "Tleca:",
        "filerevert-submit": "Tlacuepāz",
        "filedelete": "Ticpolōz $1",
        "filedelete-legend": "Ticpolōz tlahcuilōlli",
        "filedelete-nofile": "'''$1''' ahmo ia.",
        "filedelete-otherreason": "Occē īxtlamatiliztli:",
        "filedelete-reason-otherlist": "Occē īxtlamatiliztli",
-       "filedelete-edit-reasonlist": "Tiquimpatlāz īxtlamatiliztli tlapoloaliztechcopa",
-       "mimesearch": "MIME tlatēmoliztli",
+       "filedelete-edit-reasonlist": "Xiquihto ipampa ticpohpoloznequi in",
+       "mimesearch": "MIME tlatemoliztli",
        "mimetype": "MIME iuhcāyōtl:",
        "download": "tictemōz",
        "unwatchedpages": "Zāzaniltin ahmo motlachiya",
        "unusedtemplateswlh": "occequīntīn tzonhuiliztli",
        "randompage": "Cecen tlahcuilolli",
        "randompage-nopages": "Ahmo oncah tlahcuilolamameh ipan inin {{PLURAL:$2|tocatlacauhtli|tocatlacauhtin}}: $1.",
-       "randomincategory-submit": "Yāuh",
+       "randomincategory-submit": "Yaliztica",
        "randomredirect": "Zāzotlacuepaliztli",
        "statistics": "Tlapōhualiztli",
        "statistics-header-pages": "Zāzaniltin tlapōhualli",
        "uncategorizedcategories": "Tlaìxmatkàtlàlilòmë âmò tlatlaìxmatkàtlàlìltìn",
        "uncategorizedimages": "Ìxiptìn âmò tlatlaìxmatkàtlàlìltìn",
        "uncategorizedtemplates": "Nemachiòmë âmò tlatlaìxmatkàtlàlìltìn",
-       "unusedcategories": "Tlaìxmatkàtlàlilòmë tlèn âmò mokìntekìuhtia",
+       "unusedcategories": "Neneuhcayomeh tlen ahmo motequitiltia",
        "unusedimages": "Ìxiptìn tlèn âmò mokìntekìuhtia",
-       "wantedcategories": "Ìtech kineki tlaìxmatkàtlàlilòtl",
-       "wantedpages": "Zāzaniltin moēlēhuiah",
+       "wantedcategories": "Itech monequini neneuhcayotl",
+       "wantedpages": "Tlahcuilolamameh tlen elehuiloh",
        "wantedfiles": "Ìpan moneki èwaltìn",
        "wantedtemplates": "Ìtech moneki nemachiòmë",
        "mostlinked": "Tlâkuilòlpiltìn tlèn okachi tlatzòtzòwìllôkë",
        "booksources-search": "Tlatemoliztli",
        "specialloguserlabel": "Tlatequitiltilīlli:",
        "speciallogtitlelabel": "Tōcāitl:",
-       "log": "Tlahcuilōlloh",
+       "log": "Tlahcuilolloh",
        "all-logs-page": "Mochintin nohuiyanyoh intlahcuilolhuan",
        "allpages": "Mochintin tlahcuilolamatl",
        "nextpage": "Niman zāzanilli ($1)",
        "allinnamespace": "Mochintin tlahcuilolamameh (tocatlacauhtli $1)",
        "allpagessubmit": "Tiyaz",
        "categories": "Neneuhcayotl",
-       "categoriespagetext": "{{PLURAL:$1|Inìn tlaìxmatkàyòtlàlilòtl kimpia|Inîke tlaìxmatkàyòtlàlilòme kimpiâke}} tlaìxtlapaltìn noso medios.\nÂmò monèxtiâke nikàn in [[Special:UnusedCategories|tlaìxmatkàyòtlàlilòme tlèn âmò mokìntekitìltia]].\nNò mà mỏta in tlèn [[Special:WantedCategories|ìpan kineki tlaìxmatkàyòtlàlilòtl]].",
-       "categoriesfrom": "Mà monèxtìkàn tlaìxmatkàtlàlilòmë tlèn pèwâkë ìka:",
+       "categoriespagetext": "In tetoquiltin {{PLURAL:$1|neneuhcayotl quimpiya|neneuhcayomeh quimpiyah}} tlahcuiloltin nozo medios.\nAhmo monextiah nican in [[Special:UnusedCategories|neneuhcayomeh tlen ahmo moquintequitiltia]].\nNo ma motta in tlen [[Special:WantedCategories|ipan quinequi neneuhcayomeh]].",
+       "categoriesfrom": "Ma monextican neneuhcayomeh tlen pehuaz ica:",
        "linksearch": "Tlatemoliztli ihuic quiyahuac tzonhuiliztli",
        "linksearch-ns": "Tōcātzin:",
        "linksearch-ok": "Tictēmōz",
        "removedwatchtext": "Zāzanilli \"[[:$1]]\" ōmopolo [[Special:Watchlist|motlachiyalizco]].",
        "watch": "Tictlachiyāz",
        "watchthispage": "Tictlachiyāz inīn zāzanilli",
-       "unwatch": "Ahtictlachiyāz",
+       "unwatch": "Ahmo titlachiyaz",
        "watchlist-details": "{{PLURAL:$1|$1 zāzanilli|$1 zāzaniltin}} motlachiyaliz, ahmo mopōhua tēixnāmiquiliztli.",
        "wlshowlast": "Tiquinttāz tlapatlaliztli īhuīcpa achto $1 yēmpohualminuhtli, $2 tōnaltin",
        "watching": "Tlachiyacah...",
        "excontentauthor": "Tlapiyaliztli ōcatca: '$1' (auh zancē ōquipatlac ōcatca '[[Special:Contributions/$2|$2]]')",
        "delete-confirm": "Ticpolōz \"$1\"",
        "delete-legend": "Ticpolōz",
-       "actioncomplete": "Cēntetl",
+       "actioncomplete": "Ye tlachihualiztli",
        "deletedtext": "\"$1\" ōmopolo.\nXiquitta $2 ic yancuīc tlapololiztli.",
        "dellogpage": "Tlapololiztli tlahcuilōlloh",
-       "deletionlog": "tlapololiztli tlahcuilōlloh",
+       "deletionlog": "tlapohpololiztli itlahcuilolloh",
        "deletecomment": "Īxtlamatiliztli:",
-       "deleteotherreason": "Occē īxtlamatiliztli:",
+       "deleteotherreason": "Occe ixtlamatiliztli:",
        "deletereasonotherlist": "Occē īxtlamatiliztli",
-       "delete-edit-reasonlist": "Tiquimpatlāz īxtlamatiliztli tlapoloaliztechcopa",
-       "rollbacklink": "ticcuepaz",
+       "delete-edit-reasonlist": "Xiquihto ipampa ticpohpoloznequi in",
+       "rollbacklink": "ticxitiniz",
        "rollback-success": "Ōmotlacuep $1 ītlahcuilōl; āxcān achto $2 ītlahcuilōl.",
        "changecontentmodel-title-label": "Tlaīxtōcāitl",
        "changecontentmodel-reason-label": "Tleīpampa:",
        "restriction-move": "Ticzacāz",
        "restriction-create": "Ticchīhuāz",
        "restriction-upload": "Tlahcuilōlquetza",
-       "undelete": "Xiquitta mopoloh tlaīxtli",
-       "viewdeletedpage": "Tiquinttāz zāzaniltin ōmopolōzqueh",
+       "undelete": "Tiquimittaz tlahcuilolamameh tlen omopohpolohqueh",
+       "viewdeletedpage": "Tiquimittaz tlahcuilolamameh tlen omopohpolohqueh",
        "undelete-revision": "Tlapoloc $1 ītlachiyaliz (īpan $4, $5) īpal $3:",
        "undeletebtn": "Ahticpolōz",
        "undeletelink": "tlattaliztli/tlacuepaliztli",
        "undeleteviewlink": "tiquittaz",
        "undeletecomment": "Tleīpampa:",
-       "undelete-search-box": "Tiquintlatēmōz zāzaniltin ōmopolōz",
-       "undelete-search-prefix": "Tiquittāz zāzaniltin mopēhua īca:",
-       "undelete-search-submit": "Tlatēmōz",
+       "undelete-search-title": "Tiquintemoz tlahcuilolamameh tlen omopohpolohqueh",
+       "undelete-search-box": "Tiquintemoz tlahcuilolamameh tlen omopohpolohqueh",
+       "undelete-search-prefix": "Tiquimittaz tlahcuilolamameh tlen pehuah ica:",
+       "undelete-search-submit": "Tlatemoliztli",
        "undelete-error-short": "Ahcuallōtl ihcuāc momāquīxtiya: $1",
        "undelete-show-file-submit": "Quemah",
        "namespace": "Tocatlacauhtli:",
-       "invert": "Tlacuepaz motlahtol",
+       "invert": "Ticcuepaz in tocatecpanaliztli",
        "blanknamespace": "(Tlayacatic)",
        "contributions": "In {{GENDER:$1|tlatequitiltilīlli}} ītlahcuilōl",
        "contributions-title": "Tlatequitiltilīlli $1 ītlahcuilōl",
        "sp-contributions-blocklog": "Tlatzacuiliztli tlahcuilōlloh",
        "sp-contributions-uploads": "tlahcuilolquetzaliztli",
        "sp-contributions-talk": "teixnamiquiliztli",
-       "sp-contributions-search": "Tiquintlatēmōz tlapatlaliztli",
+       "sp-contributions-search": "Tiquitemoz tlapatlaliztin",
        "sp-contributions-username": "IP nozo tlatequitiltilīlli ītōcā:",
        "sp-contributions-submit": "Tlatemoliztli",
        "whatlinkshere": "In tlein quitzonhuilia nican",
        "unblockip": "Ahtiquitzacuilīz tlatequitiltilīlli",
        "ipblocklist": "Tlatequitiltilīltzacualli",
        "blocklist-reason": "Tleīpampa",
-       "ipblocklist-submit": "Tlatēmōz",
+       "ipblocklist-submit": "Tlatemoliztli",
        "infiniteblock": "ahtlamic",
        "expiringblock": "tlami ipan $1 ipan $2",
-       "anononlyblock": "zan ahtōcā",
+       "anononlyblock": "zan ahtocaitl",
        "blocklink": "tictzacuiliz",
        "unblocklink": "ahtiquitzacuilīz",
        "change-blocklink": "Ticpatlaz tlatzacualli",
        "export-addcat": "Ticcētilīz",
        "export-download": "Ticpiyāz quemeh tlahcuilōlli",
        "export-templates": "Tiquimpiyāz nemachiyōtīlli",
-       "allmessages": "Mochīntīn Huiquimedia tlahcuilōltzintli",
+       "allmessages": "Mochintin tetitlaniliztli ipan liHuiquimedia",
        "allmessagesname": "Tocaitl",
        "allmessagescurrent": "Tlahcuilolpiyaliztli itech axcan",
        "allmessages-filter-all": "Mochi",
        "tooltip-pt-userpage": "{{GENDER:|Motequitiuhcatlahcuilolamauh}}",
        "tooltip-pt-mytalk": "{{GENDER:|Moteixnamiquiliz}}",
        "tooltip-pt-preferences": "{{GENDER:|Motlaēlēhuiliz}}",
-       "tooltip-pt-watchlist": "Zāzaniltin tiquintlachiya ic tlapatlaliztli",
+       "tooltip-pt-watchlist": "Tlahcuilolamatl itecpantiliz tlen tictlachiyalia itlapatlaliz",
        "tooltip-pt-mycontris": "{{GENDER:|Motlahcuilol}}",
        "tooltip-pt-login": "Tihueliti timocalaqui, tel ahmo tihuiquilia.",
        "tooltip-pt-logout": "Tiquizaz",
        "tooltip-ca-undelete": "Ahticpolōz inīn zāzanilli",
        "tooltip-ca-move": "Ticzacaz inin tlahcuilolamatl",
        "tooltip-ca-watch": "Ticcentiliz inin tlahtolli motecpanaliz",
-       "tooltip-ca-unwatch": "Ahtictlachiyāz inīn zāzanilli",
+       "tooltip-ca-unwatch": "Ticpohpoloz inin tlahcuilolamatl ipan motlachiyaliz",
        "tooltip-search": "Tlatemoliztli ipan {{SITENAME}}",
        "tooltip-search-go": "Tiyaz ihuicpa tlahcuilolamatl ica inin huel melahuac tocaitl intla oncah",
        "tooltip-search-fulltext": "Tictemoz inin tlahcuilolli ipan amatl",
        "tooltip-n-help": "In tēmachtīlōyān",
        "tooltip-t-whatlinkshere": "Mochintin tlahcuiloltin huiquipan quitzonhuiliah nican",
        "tooltip-t-recentchangeslinked": "Yancuic tlapatlaliztli ipan tlahcuiloltin tlein quitzonhuilia nican",
-       "tooltip-feed-rss": "RSS tlachicāhualiztli inīn zāzaniltechcopa",
+       "tooltip-feed-rss": "RSS tlachicahualiztli inin tlahcuilolamatl",
        "tooltip-feed-atom": "Atom tlachicāhualiztli inīn zāzaniltechcopa",
        "tooltip-t-contributions": "Tlapōhualmatl ītechpa {{GENDER:$1|inīn tlatequitiltilīlli}} ītlahcuilōl",
        "tooltip-t-emailuser": "Tiquihcuilōz inīn tlatequitiltililhuīc",
        "tooltip-ca-nstab-main": "Tiquittaz tlein quipiya in tlahcuilolli",
        "tooltip-ca-nstab-user": "Xiquitta tequitiuhqui itlahcuilolamauh",
        "tooltip-ca-nstab-special": "Inīn nōncuahquīzqui āmatl, auh ahmohuelitizpatla",
-       "tooltip-ca-nstab-project": "Xiquitta in tlatequipanōllaīxtli",
+       "tooltip-ca-nstab-project": "Xiquitta in tlayecantequitl itlahcuilolamauh",
        "tooltip-ca-nstab-image": "Xiquittāz īxipzāzanilli",
        "tooltip-ca-nstab-mediawiki": "Xiquitta in tlahcuilōltzin",
        "tooltip-ca-nstab-template": "Xiquitta in nemachiyōtīlli",
        "tooltip-summary": "Xiquihcuilo ce tepiton tlahcuiloltontli",
        "anonymous": "Ahtōcāitl {{PLURAL:$1|tlatequitiltilīlli}} īpan {{SITENAME}}",
        "siteuser": "$1 tlatequitiltilīlli īpan {{SITENAME}}",
-       "lastmodifiedatby": "Inīn zāzanilli ōtlapatlac catca īpan $2, $1 īpal $3.",
+       "lastmodifiedatby": "Inin tlahcuilolamatl omopatlac ipan $2, $1 ipal $3.",
        "others": "occequīntīn",
-       "siteusers": "$1 {{PLURAL:$2|tlatequitiltilīlli}} īpan {{SITENAME}}",
+       "siteusers": "$1 {{PLURAL:$2|{{GENDER:$1|tequitiuhqui}}|tequitiuhqueh}} īpan {{SITENAME}}",
        "spam_reverting": "Mocuepacah īhuīc xōcoyōc tlapatlaliztli ahmo tzonhuilizca īhuīc $1",
        "spam_blanking": "Mochi tlapatlaliztli quimpiyah tzonhuiliztli īhuīc $1, iztāctiliacah",
        "pageinfo-firstuser": "Tlaīxchīuhqui",
        "newimages": "Yancuīc īxipcān",
        "imagelisttext": "Nicān {{PLURAL:$1|mopiya|mopiyah}} '''$1''' īxiptli $2 iuhcopa.",
        "noimages": "Ahtlein ic tlatta.",
-       "ilsubmit": "Tlatēmōz",
-       "bydate": "tōnalcopa",
+       "ilsubmit": "Tlatemoliztli",
+       "bydate": "tonaltica",
        "metadata": "Metadata",
        "metadata-expand": "Tiquittāz tlanōnōtzaliztli huehca ōmpa",
        "metadata-collapse": "Tictlātīz tlanōnōtzaliztli huehca ōmpa",
        "exif-photometricinterpretation": "Pixel tlachīhualiztli",
-       "exif-imagedescription": "Īxiptli ītōcā",
+       "exif-imagedescription": "Ixiptli itoca",
        "exif-software": "Software ōmotēquitilti",
        "exif-artist": "Chīhualōni",
        "exif-exifversion": "Exif-cuepaliztli",
        "confirm_purge_button": "Cualli",
        "imgmultipageprev": "← achto zāzanilli",
        "imgmultipagenext": "niman zāzanilli →",
-       "imgmultigo": "¡uh!",
-       "imgmultigoto": "Yāuh $1 zāzanilhuīc",
+       "imgmultigo": "¡Ma xiyauh!",
+       "imgmultigoto": "Yaliztica ihuicpa tlahtolamatl $1",
        "ascending_abbrev": "quetza",
        "descending_abbrev": "temoa",
        "table_pager_next": "Niman zāzanilli",
        "table_pager_prev": "Achto zāzanilli",
        "table_pager_first": "Achtopa zāzanilli",
        "table_pager_last": "Xōcoyōc zāzanilli",
-       "table_pager_limit_submit": "Yāuh",
+       "table_pager_limit_submit": "Yaliztica",
        "table_pager_empty": "Ahtlein",
        "autosumm-blank": "Tlaiztaliztli in tlahcuilolamatl",
        "autoredircomment": "Mocuepahua īhuīc [[$1]]",
-       "autosumm-new": "Tlachihuhtli tlahcuilolamatl ica: \"$1\"",
+       "autosumm-new": "Tlachiuhtli tlahcuilolamatl ica: \"$1\"",
        "size-bytes": "$1 B",
        "size-kilobytes": "$1 KB",
        "size-megabytes": "$1 MB",
        "version-version": "($1)",
        "version-software-version": "Machiyōtzin",
        "fileduplicatesearch-filename": "Tlahcuilōlli ītōcā:",
-       "fileduplicatesearch-submit": "Tlatēmōz",
+       "fileduplicatesearch-submit": "Tlatemoliztli",
        "fileduplicatesearch-info": "$1 × $2 pixelli<br />Tlahcuilōlli īxquichiliz: $3<br />MIME iuhcāyōtl: $4",
        "specialpages": "Noncuahquizqui tlahcuilolli",
        "specialpages-note": "* Yeliztli nōncuahquīzqui āmatl.\n* <span class=\"mw-specialpagerestricted\">Tlaquīxtīlli nōncuahquīzqui āmatl.</span>\n* <span class=\"mw-specialpagecached\">Tlatlātīlli nōncuahquīzqui āmatl (aocmo monemitīa).</span>",
        "api-error-unknownerror": "Âmò ìxmatkàyo îtlakawilistli: \"$1\".",
        "api-error-uploaddisabled": "Sèuhtok in êkawilistli ìpan inìn wiki.",
        "api-error-verification-error": "Inìn èwalli welis îtlakauhtok, noso âmò kualli motzòwîtok.",
-       "expand_templates_ok": "Cualli",
+       "expand_templates_ok": "Cayecualli",
        "expand_templates_preview": "Xiquitta achtochīhualiztli",
        "special-characters-group-latin": "Latintlahcuilolli",
        "special-characters-group-latinextended": "Mantoc latintlahcuilolli",
        "special-characters-group-thai": "Taitlahcuilōlli",
        "special-characters-group-lao": "Laotlahcuilōlli",
        "special-characters-group-khmer": "Jemertlahcuilōlli",
-       "randomrootpage": "Sâsaìntlèn nelwatlaìxtlapalli"
+       "randomrootpage": "Zazantlen nelhuatlahcuilolamatl"
 }
index ba7f6a1..f7acd4f 100644 (file)
        "right-writeapi": "Redigere via API",
        "right-delete": "Slette sider",
        "right-bigdelete": "Slette sider med stor historikk",
-       "right-deletelogentry": "Slett og gjenopprett spesifikke loggoppføringer",
+       "right-deletelogentry": "Slette og gjenopprette spesifikke loggoppføringer",
        "right-deleterevision": "Slette og gjenopprette enkeltrevisjoner av sider",
        "right-deletedhistory": "Se slettet sidehistorikk uten tilhørende sidetekst",
        "right-deletedtext": "Vise slettet tekst og endringer mellom slettede versjoner",
        "right-browsearchive": "Søke i slettede sider",
        "right-undelete": "Gjenopprette sider",
-       "right-suppressrevision": "Se på, skjul og hent frem igjen spesifikke siderevisjoner for alle brukere",
+       "right-suppressrevision": "Se, skjule og hente frem igjen spesifikke siderevisjoner for alle brukere",
        "right-viewsuppressed": "Se på revisjoner som er skjult for alle brukere",
        "right-suppressionlog": "Se private logger",
        "right-block": "Blokkere andre brukere fra å redigere",
        "right-ipblock-exempt": "Kan redigere fra blokkerte IP-adresser",
        "right-unblockself": "Fjerne blokkering av seg selv",
        "right-protect": "Endre beskyttelsesnivåer og redigere beskyttete sider",
-       "right-editprotected": "Redigere beskyttede sider som «{{int:protect-level-sysop}}»",
-       "right-editsemiprotected": "Redigere beskyttede sider som «{{int:protect-level-autoconfirmed}}»",
-       "right-editcontentmodel": "Rediger innholdsmodellen til en side",
+       "right-editprotected": "Redigere beskyttede sider som er «{{int:protect-level-sysop}}»",
+       "right-editsemiprotected": "Redigere beskyttede sider som er «{{int:protect-level-autoconfirmed}}»",
+       "right-editcontentmodel": "Redigere innholdsmodellen til en side",
        "right-editinterface": "Redigere brukergrensesnittet",
        "right-editusercssjs": "Redigere andre brukeres CSS- og JS-filer",
        "right-editusercss": "Redigere andre brukeres CSS-filer",
        "right-edituserjs": "Redigere andre brukeres JS-filer",
-       "right-editmyusercss": "Rediger dine egne CSS-filer",
-       "right-editmyuserjs": "Rediger dine egne Javascript-filer",
-       "right-viewmywatchlist": "Vis din egen overvåkningsliste",
-       "right-editmywatchlist": "Redigere din egen overvåkningsliste. Legg merke til at noen aksjoner fortsatt vil legge til sider uten denne rettigheten.",
-       "right-viewmyprivateinfo": "Vise dine egne private data (f.eks. epostadresse og virkelig navn)",
-       "right-editmyprivateinfo": "Redigere dine egne private data (f.eks. epostadresse og virkelig navn)",
-       "right-editmyoptions": "Redigere dine egne innstillinger",
+       "right-editmyusercss": "Redigere sine egne CSS-filer",
+       "right-editmyuserjs": "Redigere sine egne JavaScript-filer",
+       "right-viewmywatchlist": "Vise sin egen overvåkningsliste",
+       "right-editmywatchlist": "Redigere sin egen overvåkningsliste. Legg merke til at noen handlinger fortsatt vil legge til sider uten denne rettigheten.",
+       "right-viewmyprivateinfo": "Vise sine egne private data (f.eks. epostadresse og virkelig navn)",
+       "right-editmyprivateinfo": "Redigere sine egne private data (f.eks. epostadresse og virkelig navn)",
+       "right-editmyoptions": "Redigere sine egne innstillinger",
        "right-rollback": "Raskt tilbakestille den siste brukeren som har redigert en gitt side",
        "right-markbotedits": "Markere tilbakestillinger som robotredigeringer",
        "right-noratelimit": "Påvirkes ikke av hastighetsgrenser",
        "right-import": "Importere sider fra andre wikier",
        "right-importupload": "Importere sider via opplasting",
        "right-patrol": "Markere redigeringer som patruljerte",
-       "right-autopatrol": "Får sine egne redigeringer merket som patruljerte",
+       "right-autopatrol": "Få sine egne redigeringer merket som patruljerte",
        "right-patrolmarks": "Bruke patruljeringsfunksjoner i siste endringer",
        "right-unwatchedpages": "Se listen over uovervåkede sider",
        "right-mergehistory": "Flette sidehistorikker",
        "right-userrights-interwiki": "Redigere rettigheter for brukere på andre wikier",
        "right-siteadmin": "Låse og låse opp databasen",
        "right-override-export-depth": "Eksporter sider inkludert lenkede sider til en dypde på 5",
-       "right-sendemail": "Send e-post til andre brukere",
+       "right-sendemail": "Sende e-post til andre brukere",
        "right-managechangetags": "Opprette og (de)aktivere [[Special:Tags|tagger]]",
-       "right-applychangetags": "Legg til [[Special:Tags|merker]] sammen med ens endringer",
-       "right-changetags": "Legg til og fjern vilkårlige [[Special:Tags|merker]] på individuelle revisjoner og loggposter",
+       "right-applychangetags": "Legge til [[Special:Tags|tagger]] sammen med ens endringer",
+       "right-changetags": "Legge til og fjerne vilkårlige [[Special:Tags|tagger]] på individuelle revisjoner og loggoppføringer",
        "right-deletechangetags": "Slette [[Special:Tags|tagger]] fra databasen",
        "grant-generic": "Rettighetspakken «$1»",
        "grant-group-page-interaction": "Interagere med sider",
        "changecontentmodel-emptymodels-title": "Ingen innholdsmodeller er tilgjengelige",
        "changecontentmodel-emptymodels-text": "Innholdet på [[:$1]] kan ikke konverteres til noen type.",
        "log-name-contentmodel": "Logg over endringer i endringsloggen",
-       "log-description-contentmodel": "Hendelseslogg relatert til innholdsmodellen for en side",
+       "log-description-contentmodel": "Denne siden lister endringer i innholdsmodellen til sider, og sider som ble laget med andre innholdsmodeller enn den som er standard.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|opprettet}} siden $3 med den ikke-standard innholdsmodellen «$5»",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|endret}} innholdsmodellen for siden $3 fra «$4» til «$5»",
        "logentry-contentmodel-change-revertlink": "tilbakestill",
        "cant-move-to-user-page": "Du har ikke tillatelse til å flytte brukersider (bortsett fra undersider).",
        "cant-move-category-page": "Du har ikke tillatelse til å flytte kategorisider.",
        "cant-move-to-category-page": "Du har ikke tillatelse til å flytte en side til en kategoriside.",
-       "movepage-max-pages": "Grensen på {{PLURAL:$1|én side|$1 sider}} er nådd; ingen flere sider vil bli flyttet automatisk.",
+       "cant-move-subpages": "Du har ikke tillatelse til å flytte undersider.",
+       "namespace-nosubpages": "Navnerommet «$1» tillater ikke undersider.",
        "newtitle": "Ny tittel:",
        "move-watch": "Overvåk kilde- og målsiden",
        "movepagebtn": "Flytt side",
        "movepage-page-exists": "Siden $1 finnes allerede og kan ikke overskrives automatisk.",
        "movepage-page-moved": "Siden $1 har blitt flyttet til $2.",
        "movepage-page-unmoved": "Siden $1 kunne ikke flyttes til $2.",
+       "movepage-max-pages": "Grensen på {{PLURAL:$1|én side|$1 sider}} er nådd; ingen flere sider vil bli flyttet automatisk.",
        "movelogpage": "Flyttelogg",
        "movelogpagetext": "Her er ei liste over sider som har blitt flyttet.",
        "movesubpage": "{{PLURAL:$1|Underside|Undersider}}",
        "version-variables": "Variabler",
        "version-antispam": "Søppelpostforebygging",
        "version-other": "Annet",
-       "version-mediahandlers": "Mediahåndterere",
+       "version-mediahandlers": "Mediehåndterere",
        "version-hooks": "Haker",
        "version-parser-extensiontags": "Tilleggstagger",
        "version-parser-function-hooks": "Parserfunksjoner",
        "api-error-missingresult": "Intern feil: Kan ikke bekrefte at kopieringen var vellykket.",
        "api-error-mustbeloggedin": "Du må være logget inn for å laste opp filer.",
        "api-error-mustbeposted": "Intern feil: forespørsel krever HTTP POST.",
-       "api-error-noimageinfo": "Opplastingen var vellykket, men serveren returnerte ikke noe informasjon om filen.",
+       "api-error-noimageinfo": "Opplastingen var vellykket, men tjeneren returnerte ikke noe informasjon om filen.",
        "api-error-nomodule": "Intern feil: ingen opplastningsmodul har blitt valgt.",
        "api-error-ok-but-empty": "Intern feil: ingen svar fra server.",
        "api-error-overwrite": "Det er ikke tillatt å overskrive eksisterende filer.",
        "api-error-stashnotloggedin": "Du må være innlogget for å lagre filene i opplastingslageret.",
        "api-error-stashwrongowner": "Filen du prøvde å få tilgang til tilhører ikke deg.",
        "api-error-stashnosuchfilekey": "Filnøkkelen du prøvde å få tilgang til finnes ikke.",
-       "api-error-timeout": "Serveren svarte ikke innenfor forventet tid.",
+       "api-error-timeout": "Tjeneren svarte ikke innenfor forventet tid.",
        "api-error-unclassified": "En ukjent feil har oppstått",
        "api-error-unknown-code": "Ukjent feil: \"$1\"",
        "api-error-unknown-error": "Intern feil: Noe gikk galt ved opplastning av filen din.",
-       "api-error-unknown-warning": "Ukjent advarsel: $1",
+       "api-error-unknown-warning": "Ukjent advarsel: «$1».",
        "api-error-unknownerror": "Ukjent feil: «$1».",
        "api-error-uploaddisabled": "Opplastning har blitt deaktivert på denne wikien.",
        "api-error-verification-error": "Filen kan være korrupt, eller ha feil filendelse.",
index 8895acf..e85c61d 100644 (file)
@@ -85,7 +85,7 @@
                        "Mainframe98"
                ]
        },
-       "tog-underline": "Koppelingen onderstrepen:",
+       "tog-underline": "Verwijzingen onderstrepen:",
        "tog-hideminor": "Kleine bewerkingen verbergen in recente wijzigingen",
        "tog-hidepatrolled": "Gemarkeerde wijzigingen verbergen in recente wijzigingen",
        "tog-newpageshidepatrolled": "Gemarkeerde pagina's verbergen in de lijst met nieuwe pagina's",
        "cant-move-to-user-page": "U hebt geen rechten om een pagina naar een gebruikerspagina te hernoemen. Hernoemen naar een subpagina is wel mogelijk.",
        "cant-move-category-page": "U hebt geen rechten om categoriepagina's te hernoemen.",
        "cant-move-to-category-page": "U hebt geen rechten om een pagina naar een categoriepagina te hernoemen.",
-       "movepage-max-pages": "Het maximale aantal automatisch te hernoemen pagina's is bereikt ({{PLURAL:$1|$1|$1}}).\nDe overige pagina's worden niet automatisch hernoemd.",
+       "cant-move-subpages": "U hebt geen rechten om deelpagina's te hernoemen.",
+       "namespace-nosubpages": "Naamruimte \"$1\" laat geen deelpagina's toe.",
        "newtitle": "Nieuwe paginanaam:",
        "move-watch": "Bronpagina en doelpagina volgen",
        "movepagebtn": "Pagina hernoemen",
        "movepage-page-exists": "De pagina $1 bestaat al en kan niet automatisch verwijderd worden.",
        "movepage-page-moved": "De pagina $1 is hernoemd naar $2.",
        "movepage-page-unmoved": "De pagina $1 kon niet hernoemd worden naar $2.",
+       "movepage-max-pages": "Het maximale aantal automatisch te hernoemen pagina's is bereikt ({{PLURAL:$1|$1|$1}}).\nDe overige pagina's worden niet automatisch hernoemd.",
        "movelogpage": "Hernoemingslogboek",
        "movelogpagetext": "Hieronder staan hernoemde pagina's.",
        "movesubpage": "{{PLURAL:$1|Subpagina|Subpagina's}}",
        "confirmemail_body_set": "Iemand, waarschijnlijk u, met het IP-adres $1,\nheeft het e-mailadres voor gebruiker \"$2\" op {{SITENAME}} ingesteld op dit e-mailadres.\n\nOpen de volgende koppeling in uw webbrowser om te bevestigen dat u deze gebruiker bent en om de e-mailmogelijkheden op {{SITENAME}} opnieuw te activeren:\n\n$3\n\nAls deze gebruiker *niet* aan u toebehoort, klik dan op de volgende koppeling om de bevestiging van uw e-mailadres te annuleren:\n\n$5\n\nDe bevestigingscode vervalt op $4.",
        "confirmemail_invalidated": "De e-mailbevestiging is geannuleerd",
        "invalidateemail": "E-mailbevestiging annuleren",
+       "notificationemail_subject_changed": "{{SITENAME}} geregistreerd e-mailadres is gewijzigd",
+       "notificationemail_subject_removed": "{{SITENAME}} geregistreerd e-mailadres is verwijderd",
        "notificationemail_body_changed": "Iemand, waarschijnlijk u, met het IP-adres $1, heeft het e-mailadres van de gebruiker \"$2\" op {{SITENAME}} gewijzigd naar \"$3\". \n\nAls u dit niet was, neem dan onmiddellijk contact op met een sitebeheerder.",
        "notificationemail_body_removed": "Iemand, waarschijnlijk u, met het IP-adres $1, heeft het e-mailadres geregistreerd voor gebruiker \"$2\" verwijderd op {{SITENAME}}. \n\nAls u dit niet was, neem dan onmiddellijk contact op met een sitebeheerder.",
        "scarytranscludedisabled": "[Interwiki-invoeging van sjablonen is uitgeschakeld]",
        "htmlform-datetime-invalid": "De waarde die u hebt opgegeven is niet herkend als datum en tijd. Probeer het JJJJ-MM-DD HH:MM:SS formaat.",
        "htmlform-date-toolow": "De waarde die u hebt opgegeven ligt voor de vroegste toegestane datum van $1.",
        "htmlform-date-toohigh": "De waarde die u hebt opgegeven ligt na de laatste toegestane datum van $1.",
+       "htmlform-time-toolow": "De waarde die u hebt opgegeven ligt voor de vroegste toegestane tijd van $1.",
+       "htmlform-time-toohigh": "De waarde die u hebt opgegeven ligt na de laatste toegestane tijd van $1.",
+       "htmlform-datetime-toolow": "De waarde die u hebt opgegeven ligt voor de vroegste toegestane datum en tijd van $1.",
+       "htmlform-datetime-toohigh": "De waarde die u hebt opgegeven ligt na de laatste toegestane datum en tijd van $1.",
        "htmlform-title-badnamespace": "[[:$1]] bevindt zich niet in de naamruimte \"{{ns:$2}}\".",
        "htmlform-title-not-creatable": "\"$1\" is geen paginanaam die aangemaakt kan worden",
        "htmlform-title-not-exists": "$1 bestaat niet.",
        "api-error-badtoken": "Interne fout: het token klopt niet.",
        "api-error-blocked": "U bent geblokkeerd en kunt niet bewerken.",
        "api-error-copyuploaddisabled": "Uploaden via URL is uitgeschakeld op deze server.",
-       "api-error-duplicate": "Er {{PLURAL:$1|staat al een bestand|staan al bestanden}} met dezelfde inhoud in de wiki.",
-       "api-error-duplicate-archive": "Er {{PLURAL:$1|was al een ander bestand|waren al $1 andere bestanden}}  op de site met dezelfde inhoud, maar {{PLURAL:$1|dat is|die zijn}} verwijderd.",
+       "api-error-duplicate": "Er {{PLURAL:$1|bestaat al een bestand|bestaan al bestanden}} met dezelfde inhoud op de wiki.",
+       "api-error-duplicate-archive": "Er {{PLURAL:$1|was al een ander bestand|waren al andere bestanden}} op de site met dezelfde inhoud, maar {{PLURAL:$1|deze is|deze zijn}} verwijderd.",
        "api-error-empty-file": "Het bestand dat u hebt geüpload is leeg.",
        "api-error-emptypage": "Het aanmaken van nieuwe, lege pagina's is niet toegestaan.",
        "api-error-fetchfileerror": "Interne fout: er is iets misgegaan bij het ophalen van het bestand.",
        "api-error-unclassified": "Er is een onbekende fout opgetreden",
        "api-error-unknown-code": "Interne fout: \"$1\"",
        "api-error-unknown-error": "Interne fout: er is iets misgegaan tijdens het uploaden van uw bestand.",
-       "api-error-unknown-warning": "Onbekende waarschuwing: $1",
+       "api-error-unknown-warning": "Onbekende waarschuwing: \"$1\".",
        "api-error-unknownerror": "Onbekende fout: \"$1\"",
        "api-error-uploaddisabled": "Uploaden is niet mogelijk in deze wiki.",
        "api-error-verification-error": "Dit bestand is mogelijk beschadigd of heeft een onjuiste extensie.",
        "mw-widgets-dateinput-no-date": "Geen datum geselecteerd",
        "mw-widgets-dateinput-placeholder-day": "JJJJ-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
+       "mw-widgets-mediasearch-input-placeholder": "Zoeken naar media",
        "mw-widgets-mediasearch-noresults": "Geen resultaten gevonden.",
        "mw-widgets-titleinput-description-new-page": "pagina bestaat nog niet",
        "mw-widgets-titleinput-description-redirect": "doorverwijzing naar $1",
        "randomrootpage": "Willekeurige hoofdpagina",
        "log-action-filter-block": "Soort blokkade:",
        "log-action-filter-delete": "Soort verwijdering:",
+       "log-action-filter-import": "Type import:",
        "log-action-filter-managetags": "Type labelbeheerhandeling:",
        "log-action-filter-move": "Soort hernoeming:",
        "log-action-filter-newusers": "Type accountaanmaak:",
        "log-action-filter-block-reblock": "Aanpassing van blokkade",
        "log-action-filter-block-unblock": "Opheffing van blokkade",
        "log-action-filter-delete-delete": "Verwijderen van pagina",
+       "log-action-filter-delete-delete_redir": "Overschrijven van doorverwijzingen",
        "log-action-filter-delete-restore": "Terugplaatsen van pagina",
+       "log-action-filter-delete-event": "Verwijderen van logboekregels",
+       "log-action-filter-delete-revision": "Verwijderen van versies",
+       "log-action-filter-import-interwiki": "Transwiki imports",
+       "log-action-filter-import-upload": "Import doormiddel van XML uploads",
        "log-action-filter-managetags-create": "Aanmaken van label",
        "log-action-filter-managetags-delete": "Verwijderen van label",
        "log-action-filter-managetags-activate": "Activeren van label",
        "log-action-filter-upload-overwrite": "Herupload",
        "authmanager-authn-autocreate-failed": "Het automatisch aanmaken van een lokaal account is mislukt: $1",
        "authmanager-create-disabled": "Het aanmaken van accounts is uitgeschakeld.",
+       "authmanager-create-from-login": "Om een account aan te maken, gelieve de velden in te vullen.",
        "authmanager-authplugin-setpass-failed-title": "Wachtwoord wijzigen is mislukt",
+       "authmanager-authplugin-setpass-bad-domain": "Ongeldig domein.",
+       "authmanager-autocreate-noperm": "Het automatisch aanmaken van accounts is niet toegestaan.",
+       "authmanager-autocreate-exception": "Het automatisch aanmaken van accounts is tijdelijk uitgeschakelijk vanwege eerdere fouten.",
        "authmanager-userdoesnotexist": "Gebruikersaccount \"$1\" is niet geregistreerd.",
+       "authmanager-userlogin-remembermypassword-help": "Of het wachtwoord moet worden opgeslagen voor langer dan de duur van de sessie.",
+       "authmanager-username-help": "Gebruikersnaam for authentificatie.",
+       "authmanager-password-help": "Wachtwoord for authentificatie.",
+       "authmanager-domain-help": "Domein voor externe authentificatie.",
+       "authmanager-retype-help": "Wachtwoord ter bevestiging.",
        "authmanager-email-label": "E-mail",
        "authmanager-email-help": "E-mailadres",
        "authmanager-realname-label": "Echte naam",
        "authmanager-realname-help": "Echte naam van de gebruiker",
        "authmanager-provider-password": "Op wachtwoord gebaseerde authenticatie",
+       "authmanager-provider-password-domain": "Wachtwoord- en domeingebaseerde authentificatie",
        "authmanager-provider-temporarypassword": "Tijdelijk wachtwoord",
+       "authprovider-confirmlink-success-line": "$1: Succesvol gekoppeld.",
        "authprovider-resetpass-skip-label": "Overslaan",
        "authprovider-resetpass-skip-help": "Sla het resetten van het wachtwoord over.",
+       "authform-newtoken": "Ontbrekend token. $1",
+       "authform-notoken": "Ontbrekend token",
+       "authform-wrongtoken": "Verkeerd token",
        "specialpage-securitylevel-not-allowed-title": "Niet toegestaan",
        "cannotauth-not-allowed-title": "Geen toegang",
+       "cannotauth-not-allowed": "U hebt geen toestemming om deze pagina te gebruiken",
        "changecredentials": "Authenticatiegegevens wijzigen",
        "changecredentials-submit": "Authenticatiegegevens wijzigen",
        "changecredentials-success": "Uw authenticatiegegevens zijn gewijzigd.",
        "linkaccounts-submit": "Accounts koppelen",
        "unlinkaccounts": "Accounts ontkoppelen",
        "unlinkaccounts-success": "Het account is ontkoppeld.",
+       "userjsispublic": "Let op: JavaScript deelpagina's moeten geen vertrouwelijke gegevens bevatten omdat ze kunnen worden bekeken door andere gebruikers.",
+       "usercssispublic": "Let op: CSS deelpagina's moeten geen vertrouwelijke gegevens bevatten omdat ze kunnen worden bekeken door andere gebruikers.",
+       "restrictionsfield-badip": "Ongeldig IP-adres of range: $1",
+       "restrictionsfield-label": "Toegestane IP-ranges:",
        "revid": "versie $1",
        "pageid": "Pagina-ID $1"
 }
index eb65fbf..266aa8a 100644 (file)
@@ -15,7 +15,8 @@
                        "아라",
                        "Macofe",
                        "Matma Rex",
-                       "Xð"
+                       "Xð",
+                       "Nicolas Eynaud"
                ]
        },
        "tog-underline": "Soslinhar los ligams :",
        "no-null-revision": "Impossible de crear una novèla revision voida per la pagina « $1 »",
        "badtitle": "Títol marrit",
        "badtitletext": "Lo títol de la pagina demandada es invalid, void o s’agís d’un títol interlenga o interprojècte mal ligat. Benlèu conten un o maites caractèrs que pòdon pas èsser utilizats dins los títols.",
+       "title-invalid-talk-namespace": "La pagina de títol demandada fa referéncia a una pagina de discussion qu'existís pas.",
+       "title-invalid-characters": "La pagina de títol demandada contèn de caractèrs invalides : $1",
        "perfcached": "Las donadas seguendas son en cache e benlèu, son pas a jorn. Un maximum de {{PLURAL:$1|un resultat|$1 resultats}} es disponible dins lo cache.",
        "perfcachedts": "Las donadas seguendas son en cache e benlèu, son pas a jorn. Un maximum de {{PLURAL:$1|un resultat|$1 resultats}} es disponible dins lo cache.",
        "querypage-no-updates": "Las mesas a jorn per aquesta pagina son actualamnt desactivadas. Las donadas çaijós son pas mesas a jorn.",
        "changepassword-success": "Vòstre senhal es estat modificat !",
        "changepassword-throttled": "Avètz ensajat un tròp grand nombre de connexions darrièrament.\nEsperatz $1 abans d’ensajar tornarmai.",
        "botpasswords": "Senhals de robòts",
+       "botpasswords-no-central-id": "Per intrar lo senhau d'un bot, devètz èsser connectat amb un còmpte globau.",
+       "botpasswords-createnew": "Crear un novèu senhau de bot",
+       "botpasswords-editexisting": "Editar un senhau de bot existent",
        "botpasswords-label-appid": "Nom del robòt :",
        "botpasswords-label-create": "Crear",
        "botpasswords-label-update": "Metre a jorn",
        "botpasswords-label-grants": "Dreits aplicables :",
        "botpasswords-label-grants-column": "Acordat",
        "botpasswords-bad-appid": "Lo nom del robòt «$1» es pas valid.",
+       "botpasswords-created-title": "Senhau de bot creat",
+       "botpasswords-created-body": "Lo senhau dau bot per lo bot $1 de l'utilizaire $2 es estat creat",
+       "botpasswords-updated-title": "Senhau dau bot més a jorn",
+       "botpasswords-updated-body": "Lo senhau dau bot $1 de l'utilizaire $2 es estat més a jorn",
+       "botpasswords-deleted-title": "Senhau dau bot escafat",
+       "botpasswords-deleted-body": "Lo senhay dau bot $1 de l'utilizaire $2 es estat escafat",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider es pas disponible",
        "resetpass_forbidden": "Los senhals pòdon pas èsser cambiats",
+       "resetpass_forbidden-reason": "Lei senhaus pòdon pas èsser cambiats : $1",
        "resetpass-no-info": "Vos cal èsser connectat per aver accès a aquesta pagina.",
        "resetpass-submit-loggedin": "Modificar lo senhal",
        "resetpass-submit-cancel": "Anullar",
        "passwordreset-emailtext-ip": "Qualqu'un (probablament vos, dempuèi l'adreça IP $1) a demandat una reïnicializacion de vòstre senhal per {{SITENAME}} ($4). {{PLURAL:$3|Lo compte d'utilizaire seguent es associat|Los comptes d'utilizaires seguents son associats}} a aquesta adreça de corrièr electronic :\n\n$2\n\n{{PLURAL:$3|Aqueste senhal temporari expirarà|Aquestes senhals temporaris expiraràn}} dins {{PLURAL:$5|un jorn|$5 jorns}}. Ara, vos cal vos connectar e causir un senhal novèl. Se aquesta demanda proven pas de vos, o que vos sètz remembrat de vòstre senhal inicial, e que volètz pas mai lo modificar, podètz ignorar aqueste messatge e contunhar d'utilizar vòstre ancian senhal.",
        "passwordreset-emailtext-user": "L'utilizaire $1 sus {{SITENAME}} a demandat una reïnicializacion de vòstre senhal per {{SITENAME}} ($4). {{PLURAL:$3|Lo compte d'utilizaire seguent es associat|Los comptes d'utilizaires seguents son associats}} a aquesta adreça de corrièr electronic :\n\n$2\n\n{{PLURAL:$3|Aqueste senhal temporari expirarà|Aquestes senhals temporaris expiraràn}} dins {{PLURAL:$5|un jorn|$5 jorns}}. Ara, vos cal vos connectar e causir un senhal novèl. Se aquesta demanda proven pas de vos, o que vos sètz remembrat de vòstre senhal inicial, e que lo volètz pas mai modificar, podètz ignorar aqueste messatge e contunhar d'utilizar vòstre ancian senhal.",
        "passwordreset-emailelement": "Utilizaire: \n$1\n\nSenhal temporari: \n$2",
-       "passwordreset-emailsentemail": "Un corrièr electronic de reïnicializacion de senhal es estat mandat.",
+       "passwordreset-emailsentemail": "Se aquela adreiça de corrièr electrnic es associat ambé vòstre compte, un corrièr electronic de reïnicializacion de senhal es estat mandat.",
+       "passwordreset-emailsentusername": "Se una adreiça de corrier electronic es associada amb aqueu còmpte d'utilizaire, un senhau de reïnicializacion serà mandat.",
+       "passwordreset-invalidemail": "Adreiça electronica invalida",
        "changeemail": "Cambiar o suprimir l'adreça electronica",
        "changeemail-header": "Cambiar l'adreça electronica del compte",
        "changeemail-no-info": "Vos cal èsser connectat per aver accès a aquesta pagina.",
        "mergehistory-done": "$3 version{{PLURAL:$3||s}} de $1 {{PLURAL:$3|es estada fusionada|son estada fusionadas}} dins [[:$2]].",
        "mergehistory-fail": "Impossible de procedir a la fusion dels istorics. Seleccionatz  tornamai la pagina e mai los paramètres de data.",
        "mergehistory-fail-bad-timestamp": "L’orodatatge es pas valid.",
+       "mergehistory-fail-invalid-dest": "La pagina de destinacion es invalida",
        "mergehistory-fail-toobig": "Impossible d’efectuar la fusion de l’istoric perque un nombre de {{PLURAL:$1|revisions}} superior al limit de $1 deuriá èsser desplaçat.",
        "mergehistory-no-source": "La pagina d'origina $1 existís pas.",
        "mergehistory-no-destination": "La pagina de destinacion $1 existís pas.",
        "editusergroup": "Cargar de gropes d’utilizaires",
        "editinguser": "Modificacion dels dreits de l’{{GENDER:$1|utilizaire|utilizaira}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Modificar los gropes de l’utilizaire",
+       "userrights-viewusergroup": "Veire lei grops d'utilizaires",
        "saveusergroups": "Enregistrar los gropes de l’{{GENDER:$1|utilizaire|utilizaira}}",
        "userrights-groupsmember": "Membre de :",
        "userrights-groupsmember-auto": "Membre implicit de :",
        "grant-blockusers": "Blocar e desblocar d'utilizaires",
        "grant-createaccount": "Crear de comptes",
        "grant-createeditmovepage": "Crear, modificar e desplaçar de paginas",
+       "grant-editpage": "Editar lei paginas existentas",
+       "grant-editprotected": "Editar lei paginas protegidas",
        "grant-patrol": "Verificar las modificacions de paginas",
+       "grant-uploadeditmovefile": "Telecargar, remplaçar e desplaçar de fichiers",
+       "grant-uploadfile": "Telecargar un novèu fichier",
        "grant-basic": "Dreits de basa",
+       "grant-viewdeleted": "Veire lei fichiers e lei paginas escafats",
        "newuserlogpage": "Istoric de las creacions de comptes",
        "newuserlogpagetext": "Jornal de las creacions de comptes d'utilizaires.",
        "rightslog": "Istoric de las modificacions d'estatut",
        "action-writeapi": "utilizar l‘API d’escritura",
        "action-delete": "suprimir aquesta pagina",
        "action-deleterevision": "suprimir aquesta version",
+       "action-deletelogentry": "Escafar lo jornau deis intradas",
        "action-deletedhistory": "veire l’istoric suprimit d'aquesta pagina",
        "action-browsearchive": "recercar de paginas suprimidas",
        "action-undelete": "restablir aquesta pagina",
        "action-userrights-interwiki": "modificar los dreits d’utilizaire e los sus d’autres wikis",
        "action-siteadmin": "verrolhar o desverrolhar la basa de donadas",
        "action-sendemail": "mandar corrièrs electronics",
+       "action-editmyoptions": "Editar vòstrei preferéncias",
        "action-editmywatchlist": "modificar vòstra lista de seguiment",
        "action-viewmywatchlist": "afichar vòstra pròpria lista de seguiment",
        "action-viewmyprivateinfo": "veire vòstras informacions personalas",
        "action-editmyprivateinfo": "modificar vòstras informacions personalas",
+       "action-purge": "Purgar la pagina",
        "nchanges": "$1 {{PLURAL:$1|cambiament|cambiaments}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|dempuèi la darrièra visita}}",
        "enhancedrc-history": "istoric",
        "recentchangeslinked-page": "Nom de la pagina :",
        "recentchangeslinked-to": "Afichar los cambiaments cap a las paginas ligadas al luòc de la pagina donada",
        "recentchanges-page-added-to-category": "[[:$1]] apondut a la categoria",
+       "recentchanges-page-removed-from-category": "[[:$1]] retirat de la categoria",
+       "autochange-username": "Cambiament automatic MediaWiki",
        "upload": "Importar un fichièr",
        "uploadbtn": "Importar un fichièr",
        "reuploaddesc": "Anullar lo cargament e tornar al formulari.",
        "file-thumbnail-no": "Lo nom del fichièr comença per <strong>$1</strong>.\nEs possible que s’agisca d’una version reducha ''(miniatura)''.\nSe dispausatz del fichièr en resolucion nauta, importatz-lo, si que non cambiatz lo nom del fichièr.",
        "fileexists-forbidden": "Un fichièr amb aqueste nom existís ja e pòt pas èsser espotit.\nSe volètz totjorn importar aquel fichièr, mercé de tornar en arrièr e d'utilizar un nom novèl. [[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "Un fichièr amb lo meteis nom existís ja dins la basa de donadas comuna.\nS'o volètz importar tornamai, tornatz en rèire e importatz-lo jos un autre nom. [[File:$1|thumb|center|$1]]",
+       "fileexists-no-change": "Lo telecargament es un doblon de <strong>[[:$1]]</strong>.",
+       "fileexists-duplicate-version": "Lo telecargament es un doblon de {{PLURAL:$2|an older version|older versions}} de <strong>[[:$1]]</strong>.",
        "file-exists-duplicate": "Aqueste fichièr es un doble {{PLURAL:$1|del fichièr seguent|dels fichièrs seguents}} :",
        "file-deleted-duplicate": "Un fichièr identic a aqueste ([[:$1]]) ja es estat suprimit. Vos caldriá verificar lo jornal de las supressions d'aqueste fichièr abans de la tornar telecargar.",
        "file-deleted-duplicate-notitle": "Un fichièr identic a aqueste fichièr es ja estat suprimit amai lo títol. \nVos caldriá demandar a qualqu'un la possibilitat de verificar lo jornal d'aqueste fichièr suprimit per tal d'examinar la situacion  abans de l'importar tornarmai.",
        "upload-form-label-own-work": "Soi l'autor d'aquesta òbra",
        "upload-form-label-infoform-categories": "Categorias",
        "upload-form-label-infoform-date": "Data",
+       "upload-form-label-own-work-message-generic-foreign": "Compreni que siáu a telecargar aquest fichier vèrs un estocatge partejat. Confiermi que siáu a lo faire segon lei reglas d'utilizacion e de licéncia en vigor.",
+       "upload-form-label-not-own-work-message-generic-foreign": "Se siatz pas capable de telecargar aqust fichir segon lei reglas d'aquest estocatge partejat, mercé de sarrar aquest boita de dialògue a d'assaiar un autre metòde.",
        "backend-fail-stream": "Impossible de legir lo fichièr $1.",
        "backend-fail-backup": "Impossible de salvar lo fichièr $1.",
        "backend-fail-notexists": "Lo fichièr $1 existís pas.",
        "zip-bad": "Lo fichièr es un archiu ZIP corromput o illegible.\nPòt pas èsser verificat corrèctament per la seguretat.",
        "zip-unsupported": "Lo fichièr es un archiu ZIP qu'utiliza de caracteristicas pas suportadas per MediaWiki. \nSa seguretat pòt pas èsser verificada corrèctament.",
        "uploadstash": "Cache d'impòrt",
+       "uploadstash-summary": "La pagina dona accès ai fichiers que son telecargats o en cors de telecargament, mai pas encara publicats sus lo wiki. Aquelei fichiers son unicament visibles per l'utilizaire a l'origina dau telecargament.",
        "uploadstash-clear": "Escafar los fichièrs en cache",
        "uploadstash-nofiles": "Avètz pas de fichièrs en cache d'impòrt.",
        "uploadstash-errclear": "La supression dels fichièrs a fracassat.",
        "listfiles-delete": "suprimir",
        "listfiles-summary": "Aquesta pagina especiala permet de far la lista de totes los fichièrs importats.",
        "listfiles_search_for": "Recèrca del mèdia nomenat :",
+       "listfiles-userdoesnotexist": "L'utilizaire \"$1\" es pas enregistrat.",
        "imgfile": "fichièr",
        "listfiles": "Lista dels imatges",
        "listfiles_thumb": "Apercebut",
        "filerevert-submit": "Revocar",
        "filerevert-success": "'''[[Media:$1|$1]]''' es estat revocat fins a [$4 la version del $2 a $3].",
        "filerevert-badversion": "I a pas de version mai anciana del fichièr amb lo Timestamp donat.",
+       "filerevert-identical": "La version actuala d'aqueu fichier es ja identica an aquela qu'es seleccionada.",
        "filedelete": "Suprimir $1",
        "filedelete-legend": "Suprimir lo fichièr",
        "filedelete-intro": "Sètz a suprimir '''[[Media:$1|$1]]''' amb tot son istoric.",
        "protectedpages-unknown-timestamp": "Desconegut",
        "protectedpages-unknown-performer": "Utilizaire desconegut",
        "protectedtitles": "Títols protegits",
+       "protectedtitles-summary": "Aquò es una lista dei títols de pagina que son a l'ora d'ara protegits còntra la creacion. Per una lista dei paginas existentas que son protegidas, veire [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Cap de títol es pas actualament protegit amb aquestes paramètres.",
        "protectedtitles-submit": "Afichar los títols",
        "listusers": "Lista dels participants",
        "apisandbox-dynamic-parameters-add-label": "Apondon del paramètre",
        "apisandbox-dynamic-parameters-add-placeholder": "Nom del paramètre",
        "apisandbox-deprecated-parameters": "Paramètres obsolèts",
+       "apisandbox-submit-invalid-fields-title": "De camps son invalides",
        "apisandbox-results": "Resultats",
        "apisandbox-request-url-label": "Requèsta URL :",
        "apisandbox-request-time": "Durada de la demanda : {{PLURAL:$1|$1 ms}}",
        "activeusers-count": "$1 {{PLURAL:$1|accion|accions}} al moment {{PLURAL:$3|del darrièr jorn|dels $3 darrièrs jorns}}",
        "activeusers-from": "Afichar los utilizaires dempuèi :",
        "activeusers-noresult": "Cap d'utilizaire pas trobat.",
+       "activeusers-submit": "Mostrar leis utilizaires actius",
        "listgrouprights": "Dreits dels gropes d'utilizaires",
        "listgrouprights-summary": "Aquesta pagina conten una lista de gropes definits sus aqueste wiki e mai los dreits d'accès qu'i son associats.\nI pòt aver [[{{MediaWiki:Listgrouprights-helppage}}|d'entresenhas complementàrias]] a prepaus dels dreits.",
        "listgrouprights-key": "Legenda :\n*<span class=\"listgrouprights-granted\">Dreit autrejat</span>\n*<span class=\"listgrouprights-revoked\">Dreit revocat</span>",
        "cant-move-user-page": "Avètz pas la permission de renomenar las paginas principalas d'utilizaires.",
        "cant-move-to-user-page": "Avètz pas la permission de tornar nomenar una pagina cap a una pagina d'utilizaire (a l'excepcion d'una sospagina).",
        "cant-move-category-page": "Avètz pas la permission de renomenar las paginas de categorias.",
+       "cant-move-to-category-page": "Avètz pas lei drechs necessaris per desplaçar una pagina vèrs una categoria",
+       "cant-move-subpages": "Avètz pas lei drechs necessaris per desplaçar de sota-paginas.",
+       "namespace-nosubpages": "Lo nom d'espaci $1 autoriza pas lei sota-paginas.",
        "newtitle": "Títol novèl :",
        "move-watch": "Seguir aquesta pagina",
        "movepagebtn": "Renomenar l'article",
        "export-download": "Salvar en tant que fichièr",
        "export-templates": "Enclure los modèls",
        "export-pagelinks": "Enclure las paginas ligadas a una prigondor de :",
+       "export-manual": "Ajustar de paginas manualament :",
        "allmessages": "Lista dels messatges del sistèma",
        "allmessagesname": "Nom del camp",
        "allmessagesdefault": "Messatge per defaut",
        "htmlform-date-placeholder": "AAAA-MM-JJ",
        "htmlform-time-placeholder": "HH:MM:SS",
        "htmlform-datetime-placeholder": "AAAA-MM-JJ HH:MM:SS",
+       "htmlform-title-not-exists": "$1 existís pas.",
+       "htmlform-user-not-exists": "<strong>$1</strong> existís pas.",
+       "htmlform-user-not-valid": "<strong>$1</strong> es pas un nom d'utilizaire valide.",
        "logentry-delete-delete": "$1 {{GENDER:$2|a suprimit}} la pagina $3",
        "logentry-delete-restore": "$1 {{GENDER:$2|a restablit}} la pagina $3",
        "logentry-delete-event": "$1 {{GENDER:$2|a modificat}} la visibilitat {{PLURAL:$5|d'un eveniment del jornal|de $5 eveniments del jornal}} sus $3 : $4",
        "api-error-stashfailed": "Error intèrna : lo servidor a pas pogut enregistrar lo fichièr temporari.",
        "api-error-publishfailed": "Error intèrna: Lo servidor a pas pogut publicar lo fichièr temporari.",
        "api-error-stasherror": "Una error s'es produsida al moment del telecargament del fichièr per lo dissimular.",
+       "api-error-stashzerolength": "Lo servidor pòu pas estocar aqueu fichier perqué sa talha es nulla.",
+       "api-error-stashnotloggedin": "Devètz èsser connectat per enregistrar de fichiers dins l'espaci de telecargament.",
        "api-error-timeout": "Lo servidor a pas respondut dins lo relambi pervist.",
        "api-error-unclassified": "Una error desconeguda s'es produita.",
        "api-error-unknown-code": "Error desconeguda : « $1 »",
        "pagelang-language": "Lenga",
        "pagelang-use-default": "Utilizar la lenga per defaut",
        "pagelang-select-lang": "Seleccionar la lenga",
+       "pagelang-submit": "Validar",
        "right-pagelang": "Cambiar la lenga de la pagina",
        "action-pagelang": "cambiar la lenga de la pagina",
        "log-name-pagelang": "Traçar los cambiaments de lenga",
        "special-characters-title-endash": "jonhent anglés",
        "special-characters-title-emdash": "jonhent em",
        "special-characters-title-minus": "signe mens",
+       "mw-widgets-mediasearch-noresults": "Ges de resultat trobat",
+       "mw-widgets-categoryselector-add-category-placeholder": "Ajustar una categoria...",
+       "sessionprovider-generic": "$1 sessions",
+       "sessionprovider-mediawiki-session-cookiesessionprovider": "sessions basadas sus de cookies",
+       "sessionprovider-nocookies": "Lei cookies son benlèu desactivats. Verificatz que lei cookies siegan ben activat e tornatz assaiar.",
        "randomrootpage": "Pagina raiç aleatòria",
+       "log-action-filter-block": "Tipe d'accion :",
+       "log-action-filter-delete": "Tipe d'accion :",
+       "log-action-filter-import": "Tipe d'importacion :",
+       "log-action-filter-managetags": "Tipe d'accion :",
+       "log-action-filter-move": "Tipe de desplaçament :",
+       "log-action-filter-newusers": "Tipe de creacion :",
+       "log-action-filter-patrol": "Tipe de patrolha :",
+       "log-action-filter-protect": "Tipe d'accion :",
        "log-action-filter-rights": "Tipe de cambiament de dreits :",
        "log-action-filter-suppress": "Tipe de supression :",
+       "log-action-filter-upload": "Tipe de telecargament :",
        "log-action-filter-all": "Tot",
        "log-action-filter-block-block": "Blocatge",
+       "log-action-filter-block-reblock": "Modificacion de blocatge",
        "log-action-filter-block-unblock": "Desblocar",
+       "log-action-filter-delete-delete": "Escafament de pagina",
+       "log-action-filter-delete-restore": "Restauracion de pagina",
+       "log-action-filter-import-interwiki": "Impòrt transwiki",
+       "log-action-filter-managetags-create": "Creacion d'etiqueta",
+       "log-action-filter-managetags-delete": "Supression d'etiqueta",
+       "log-action-filter-managetags-activate": "Activacion d'etiqueta",
+       "log-action-filter-managetags-deactivate": "Desactivacion d'etiqueta",
+       "log-action-filter-newusers-create": "Creacion per un utilizaire anonim",
+       "log-action-filter-newusers-create2": "Creacion per un utilizaire enregistrat",
+       "log-action-filter-newusers-autocreate": "Creacion automatica",
+       "log-action-filter-newusers-byemail": "Creacion amb un senhau mandat per corrier electronic",
+       "log-action-filter-patrol-patrol": "Patrolha manuala",
+       "log-action-filter-patrol-autopatrol": "Patrolha automatica",
+       "log-action-filter-protect-protect": "Proteccion",
+       "log-action-filter-protect-modify": "Modificacion de proteccion",
+       "log-action-filter-rights-rights": "Cambiament manuau",
+       "log-action-filter-rights-autopromote": "Cambiament automatic",
+       "log-action-filter-suppress-delete": "Supression de pagina",
+       "log-action-filter-upload-upload": "Telecargament novèu",
+       "log-action-filter-upload-overwrite": "Retelecargament",
+       "authmanager-create-disabled": "La creacion de còmptes es blocada.",
+       "authmanager-authplugin-setpass-bad-domain": "Domeni invalide",
+       "authmanager-autocreate-noperm": "La creacion automatica de còmptes es blocada.",
+       "authmanager-password-help": "Senhau per autentificacion.",
+       "authmanager-domain-help": "Domeni per autentificacion extèrna.",
+       "authmanager-retype-help": "Mercé de confiermar vòstre senhau.",
        "authmanager-email-label": "Corrièr electronic",
        "authmanager-email-help": "Adreça de corrièr electronic",
        "authmanager-realname-label": "Nom vertadièr",
        "authmanager-realname-help": "Nom real de l'utilizaire",
+       "authmanager-provider-password": "Autentificacion ambé senhau",
+       "authmanager-provider-temporarypassword": "Senhau provisòri",
+       "authprovider-confirmlink-message": "Segon lei vòstreis assais recents de connexion, lei còmptes seguents pòdon èsser liats vèrs lo vòstre còmpte wiki. Lei liar permet de se connectar amb aqueleis còmptes. Mercé de seleccionar lei còmptes de liar.",
+       "authprovider-confirmlink-request-label": "Còmptes de liar",
+       "authprovider-confirmlink-success-line": "$1 : operacion capitada, lei còmptes son estats liats.",
+       "authprovider-confirmlink-failed": "La temptativa de liar lei còmptes a pas capitat : $1",
        "authprovider-resetpass-skip-label": "Sautar",
-       "changecredentials": "Modificar las informacions d’identificacion"
+       "specialpage-securitylevel-not-allowed-title": "Pas autorizat",
+       "changecredentials": "Modificar las informacions d’identificacion",
+       "linkaccounts": "Liar lei còmptes",
+       "linkaccounts-success-text": "Lo còmpte èra estat liat.",
+       "linkaccounts-submit": "Liar lei còmptes",
+       "revid": "Revision $1",
+       "pageid": "Pagina ID $1"
 }
index 7516ba5..d2376a5 100644 (file)
        "cant-move-to-user-page": "ଆପଣଙ୍କର ଗୋଟିଏ ପୃଷ୍ଠାକୁ ବ୍ୟବହାରକାରୀ ପୃଷ୍ଠାକୁ ଘୁଞ୍ଚାଇବାର ଅଧିକାର ନହିଁ ।",
        "cant-move-category-page": "ଆପଣଙ୍କୁ ଶ୍ରେଣୀ ପୃଷ୍ଠାଟିଏ ଘୁଞ୍ଚାଇବା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ ।",
        "cant-move-to-category-page": "ପୃଷ୍ଠାଟିଏକୁ ଶ୍ରେଣୀ ପୃଷ୍ଠାକୁ ଘୁଞ୍ଚାଇବା ଲାଗି ଆପଣଙ୍କୁ ଅନୁମତି ମିଳିନାହିଁ ।",
-       "movepage-max-pages": "ସବୁଠାରୁ ଅଧିକ ହେଲେ $1 ଗୋଟି {{PLURAL:$1|ପୃଷ୍ଠା|ପୃଷ୍ଠା}} ଘୁଞ୍ଚାଇଦିଆଯାଇଛି ଓ ଆଉ ଅଧିକ ଆପେଆପେ ଘୁଞ୍ଚାଇଦିଆଯିବ ନାହିଁ ।",
        "newtitle": "ନୂଆ ନାଆଁକୁ:",
        "move-watch": "ମୂଳ ପୃଷ୍ଠା ଓ ବଦଳାଇବାକୁ ଚାହୁଁଥିବା ପୃଷ୍ଠା ଦେଖାଇବେ",
        "movepagebtn": "ପୃଷ୍ଠା ଘୁଞ୍ଚେଇବେ",
        "movepage-page-exists": "$1 ପୃଷ୍ଠାଟି ଆଗରୁ ଅଛି ଓ ଆଉଥରେ ଲେଖାଯାଇପାରିବ ନାହିଁ ।",
        "movepage-page-moved": "$1 ପୃଷ୍ଠାଟିକୁ $2କୁ ଘୁଞ୍ଚାଇ ଦିଆଗଲା ।",
        "movepage-page-unmoved": "$1 ପୃଷ୍ଠାରୁ $2କୁ ଘୁଞ୍ଚାଯାଇ ପାରିବ ନାହିଁ ।",
+       "movepage-max-pages": "ସବୁଠାରୁ ଅଧିକ ହେଲେ $1 ଗୋଟି {{PLURAL:$1|ପୃଷ୍ଠା|ପୃଷ୍ଠା}} ଘୁଞ୍ଚାଇଦିଆଯାଇଛି ଓ ଆଉ ଅଧିକ ଆପେଆପେ ଘୁଞ୍ଚାଇଦିଆଯିବ ନାହିଁ ।",
        "movelogpage": "ଲଗଟିକୁ ଘୁଞ୍ଚାଇବେ",
        "movelogpagetext": "ତଳେ ଘୁଞ୍ଚାଯାଇଥିବା ସବୁଯାକ ପୃଷ୍ଠାର ତାଲିକା ଦିଆଗଲା ।",
        "movesubpage": "{{PLURAL:$1|ସାନପୃଷ୍ଠା|ସାନପୃଷ୍ଠାମାନ}}",
index d088364..e86a079 100644 (file)
        "blockedtitle": "Użytkownik jest zablokowany",
        "blockedtext": "'''Twoje konto lub adres IP zostały zablokowane.'''\n\nBlokada została nałożona przez $1.\nPodany powód to: ''$2''.\n\n* Początek blokady: $8\n* Wygaśnięcie blokady: $6\n* Zablokowany został: $7\n\nW celu wyjaśnienia przyczyny zablokowania możesz się skontaktować z $1 lub innym [[{{MediaWiki:Grouppage-sysop}}|administratorem]].\nNie możesz użyć funkcji „Wyślij e‐mail do tego użytkownika”, jeśli brak jest poprawnego adresu e‐mail w Twoich [[Special:Preferences|preferencjach]] lub jeśli taka możliwość została Ci zablokowana.\nTwój obecny adres IP to $3, a numer identyfikacyjny blokady to $5.\nProsimy o podanie obu tych informacji przy wyjaśnianiu blokady.",
        "autoblockedtext": "Ten adres IP został zablokowany automatycznie, gdyż korzysta z niego inny użytkownik, zablokowany przez administratora $1.\nPowód blokady:\n\n:''$2''\n\n* Początek blokady: $8\n* Wygaśnięcie blokady: $6\n* Zablokowany został: $7\n\nMożesz skontaktować się z $1 lub jednym z pozostałych [[{{MediaWiki:Grouppage-sysop}}|administratorów]] w celu uzyskania informacji o blokadzie.\n\nNie możesz użyć funkcji „Wyślij e‐mail do tego użytkownika”, jeśli brak jest poprawnego adresu e‐mail w Twoich [[Special:Preferences|preferencjach]] lub jeśli taka możliwość została Ci zablokowana.\n\nTwój obecny adres IP to $3, a numer identyfikacyjny blokady to $5.\nProsimy o podanie obu tych numerów przy wyjaśnianiu blokady.",
+       "systemblockedtext": "Twoja nazwa użytkownika lub adres IP zostały automatycznie zablokowane przez MediaWiki.\nPodany powód to:\n\n:<em>$2</em>\n\n* Początek blokady: $8\n* Wygaśnięcie blokady: $6\n* Zamierzano zablokować: $7\n\nTwój obecny adres IP to $3.\nProsimy o dołączenie powyższych szczegółów w jakichkolwiek zadawanych pytaniach.",
        "blockednoreason": "nie podano przyczyny",
        "whitelistedittext": "Musisz $1, by edytować strony.",
        "confirmedittext": "Edytowanie jest możliwe dopiero po zweryfikowaniu adresu e‐mail.\nPodaj adres e‐mail i potwierdź go w swoich [[Special:Preferences|ustawieniach użytkownika]].",
        "userrights-user-editname": "Wprowadź nazwę użytkownika:",
        "editusergroup": "Wczytaj grupy użytkownika",
        "editinguser": "Zmiana uprawnień {{GENDER:$1|użytkownika|użytkowniczki}} <strong>[[User:$1|$1]]</strong> $2",
+       "viewinguserrights": "Przeglądanie grup do których należy {{GENDER:$1|użytkownik|użytkowniczka}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Edytuj grupy użytkownika",
+       "userrights-viewusergroup": "Przeglądanie grup {{GENDER:$1|użytkownika|użytkowniczki}}",
        "saveusergroups": "Zapisz grupy {{GENDER:$1|użytkownika|użytkowniczki}}",
        "userrights-groupsmember": "Należy do:",
        "userrights-groupsmember-auto": "Na stałe należy do:",
        "action-writeapi": "zapisu poprzez interfejs API",
        "action-delete": "usunięcia tej strony",
        "action-deleterevision": "usuwania wersji",
+       "action-deletelogentry": "usuwania wpisów w rejestrze",
        "action-deletedhistory": "podglądu historii usunięć strony",
+       "action-deletedtext": "wyświetlania tekstu usuniętej wersji",
        "action-browsearchive": "przeszukiwania usuniętych stron",
        "action-undelete": "odtwarzania stron",
        "action-suppressrevision": "podglądu i odtwarzania ukrytych wersji",
        "upload-scripted-pi-callback": "Nie można przesłać pliku, zawierającego instrukcję obsługi arkusza stylów XML.",
        "uploaded-script-svg": "Znaleziono element skryptowy „$1” we przesyłanym pliku SVG.",
        "uploaded-hostile-svg": "Znaleziono niebezpieczny kod CSS w przesyłanym pliku SVG.",
+       "uploaded-event-handler-on-svg": "Ustawianie atrybutów obsługi zdarzeń <code>$1=\"$2\"</code> jest niedozwolone w plikach SVG.",
+       "uploaded-href-attribute-svg": "atrybuty href w plikach SVG mogą linkować tylko do celów z http:// lub https://, znaleziono <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-href-unsafe-target-svg": "Znaleziono atrybut href kierujący do niebezpiecznych danych: cel URI <code>&lt;$1 $2=\"$3\"&gt;</code> w przesłanym pliku SVG.",
+       "uploaded-animate-svg": "Znaleziono znacznik \"animate\", który może zmieniać atrybut href, przy użyciu atrybutu \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> w przesłanym pliku SVG.",
+       "uploaded-setting-event-handler-svg": "Ustawianie atrybutów obsługi zdarzeń jest zablokowane, znaleziono <code>&lt;$1 $2=\"$3\"&gt;</code> w przesyłanym pliku SVG.",
+       "uploaded-setting-href-svg": "Użycie znacznika \"set\" do dodania atrybutu \"href\" do elementu nadrzędnego jest zablokowane.",
+       "uploaded-wrong-setting-svg": "Użycie znacznika \"set\" do dodania do dowolnych atrybutów zdalnych elementów/danych/skryptów jest zablokowane. Znaleziono <code>&lt;set to=\"$1\"&gt;</code> w przesyłanym pliku SVG.",
+       "uploaded-setting-handler-svg": "SVG ustawiające atrybut \"handler\" z zdalnymi elementami/danymi/skryptami są blokowane. Znaleziono <code>$1=\"$2\"</code> w przesyłanym pliku SVG.",
+       "uploaded-remote-url-svg": "SVG, które ustawiają w dowolnym atrybucie stylu zdalne URL, są blokowane. Znaleziono <code>$1=\"$2\"</code> w przesyłanym pliku SVG.",
+       "uploaded-image-filter-svg": "Znaleziono filtr obrazu zawierający URL: <code>&lt;$1 $2=\"$3\"&gt;</code> w przesyłanym pliku SVG.",
        "uploadscriptednamespace": "Ten plik SVG zawiera niedozwoloną przestrzeń nazw '$1'",
        "uploadinvalidxml": "Nie udało się przeanalizować XML w załadowanym pliku.",
        "uploadvirus": "W pliku jest wirus! Szczegóły: $1",
        "apisandbox-sending-request": "Wysyłanie zapytania API…",
        "apisandbox-loading-results": "Pobieranie wyników API...",
        "apisandbox-results-error": "Wystąpił błąd podczas pobierania odpowiedzi na zapytanie API: $1.",
+       "apisandbox-request-params-json": "Parametry JSON:",
        "apisandbox-request-url-label": "URL zapytania:",
        "apisandbox-request-time": "Czas przetwarzania zapytania: {{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "Popraw token i wyślij ponownie",
        "apisandbox-alert-field": "Wartość tego pola jest nieprawidłowa.",
        "apisandbox-continue": "Kontynuuj",
        "apisandbox-continue-clear": "Wyczyść",
+       "apisandbox-continue-help": "{{int:apisandbox-continue}} spowoduje [https://www.mediawiki.org/wiki/API:Query#Continuing_queries pobranie kolejnej części wyników] ostatnio wykonanego żądania; {{int:apisandbox-continue-clear}} wyczyści parametry związane z kontynuowaniem wyników.",
        "apisandbox-param-limit": "Wpisz <kbd>max</kbd>, aby wykorzystać maksymalny limit.",
        "apisandbox-multivalue-all-namespaces": "$1 (wszystkie przestrzenie nazw)",
        "apisandbox-multivalue-all-values": "$1 (wszystkie wartości)",
        "emailccsubject": "Kopia Twojej wiadomości do $1: $2",
        "emailsent": "Wiadomość została wysłana",
        "emailsenttext": "Twoja wiadomość została wysłana.",
-       "emailuserfooter": "Ten e-mail został {{GENDER:$1|wysłany}} z {{GRAMMAR:D.lp|{{SITENAME}}}} do {{GENDER:$2|$2}} przez $1 przy użyciu funkcji „{{int:emailuser}}”.",
+       "emailuserfooter": "Ten e-mail został {{GENDER:$1|wysłany}} z {{GRAMMAR:D.lp|{{SITENAME}}}} do {{GENDER:$2|$2}} przez $1 przy użyciu funkcji „{{int:emailuser}}”. {{GENDER:$2|Twoja}} odpowiedź na ten e-mail zostanie wysłana do {{GENDER:$1|oryginalnego nadawcy}}, a {{GENDER:$2|Twój}} adres e-mail zostanie {{GENDER:$1|mu|jej}} ujawniony.",
        "usermessage-summary": "Pozostawianie komunikatu systemowego.",
        "usermessage-editor": "Nadawca komunikatów systemowych",
        "watchlist": "Obserwowane",
        "cant-move-to-user-page": "Nie masz uprawnień do przenoszenia strony do strony użytkownika (za wyjątkiem podstron użytkownika).",
        "cant-move-category-page": "Nie masz uprawnień do przenoszenia stron kategorii.",
        "cant-move-to-category-page": "Nie masz uprawnień do przenoszenia strony do strony kategorii.",
-       "movepage-max-pages": "Przeniesionych zostało $1 {{PLURAL:$1|strona|strony|stron}}. Większa liczba nie może być przeniesiona automatycznie.",
+       "cant-move-subpages": "Nie masz uprawnień do przenoszenia podstron.",
+       "namespace-nosubpages": "Przestrzeń nazw „$1” nie pozwala na korzystanie z podstron.",
        "newtitle": "Nowy tytuł:",
        "move-watch": "Obserwuj",
        "movepagebtn": "Przenieś stronę",
        "movepage-page-exists": "Strona $1 istnieje. Automatyczne nadpisanie nie jest możliwe.",
        "movepage-page-moved": "Strona $1 została przeniesiona do $2.",
        "movepage-page-unmoved": "Nazwa strony $1 nie może zostać zmieniona na $2.",
+       "movepage-max-pages": "Przeniesionych zostało $1 {{PLURAL:$1|strona|strony|stron}}. Większa liczba nie może być przeniesiona automatycznie.",
        "movelogpage": "Przeniesione",
        "movelogpagetext": "Lista stron, które ostatnio zostały przeniesione.",
        "movesubpage": "{{PLURAL:$1|Podstrona|Podstrony}}",
        "api-error-badtoken": "Błąd wewnętrzny – nieprawidłowy kod weryfikacyjny (token).",
        "api-error-blocked": "Została ci zablokowana możliwość edycji.",
        "api-error-copyuploaddisabled": "Przesyłanie poprzez podanie adresu URL zostało na tym serwerze wyłączone.",
-       "api-error-duplicate": "{{PLURAL:$1|Jest już inny plik|Są już inne pliki}} o tej samej zawartości",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Był już inny plik|Były już inne pliki}} o takiej samej zawartości, ale {{PLURAL:$1|został usunięty|zostały usunięte}}.",
+       "api-error-duplicate": "{{PLURAL:$1|Jest już inny plik|Są już inne pliki}} na tej stronie o tej samej zawartości.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Był już inny plik|Były już inne pliki}} na tej stronie o takiej samej zawartości, ale {{PLURAL:$1|został usunięty|zostały usunięte}}.",
        "api-error-empty-file": "Przesłany przez Ciebie plik jest pusty.",
        "api-error-emptypage": "Tworzenie nowych, pustych stron jest niedozwolone.",
        "api-error-fetchfileerror": "Błąd wewnętrzny – wystąpił błąd w trakcie pobierania pliku.",
        "api-error-missingresult": "Błąd wewnętrzny – nie można określić czy kopiowanie się udało.",
        "api-error-mustbeloggedin": "Aby przesyłać pliki, musisz się zalogować.",
        "api-error-mustbeposted": "Wystąpił błąd w oprogramowaniu. Nie użyto właściwej metody HTTP.",
-       "api-error-noimageinfo": "Plik przesłano, ale serwer nie zwrócił informacji na jego temat.",
+       "api-error-noimageinfo": "Plik przesłano pomyślnie, ale serwer nie zwrócił informacji na jego temat.",
        "api-error-nomodule": "Błąd wewnętrzny – nie określono modułu przesyłania plików.",
        "api-error-ok-but-empty": "Błąd wewnętrzny – brak odpowiedzi od serwera.",
        "api-error-overwrite": "Nadpisanie istniejącego pliku nie jest dopuszczalne.",
        "api-error-stashnotloggedin": "Musisz się zalogować, aby móc zapisać plik zapasowy do archiwum.",
        "api-error-stashwrongowner": "Plik w archiwum, do którego próbujesz uzyskać dostęp, nie należy do Ciebie.",
        "api-error-stashnosuchfilekey": "Klucz zbioru w archiwum, do którego próbujesz uzyskać dostęp, nie należy do Ciebie.",
-       "api-error-timeout": "Serwer nie odpowiedział w oczekiwanym czasie.",
+       "api-error-timeout": "Serwer nie odpowiedział w spodziewanym czasie.",
        "api-error-unclassified": "Wystąpił nieznany błąd",
        "api-error-unknown-code": "Błąd nieznany – „$1”",
        "api-error-unknown-error": "Błąd wewnętrzny – wysŧapił nierozpoznany błąd w trakcie próby przesłania pliku.",
-       "api-error-unknown-warning": "Nieznane ostrzeżenie – $1",
+       "api-error-unknown-warning": "Nieznane ostrzeżenie: „$1”.",
        "api-error-unknownerror": "Nieznany błąd: „$1”",
        "api-error-uploaddisabled": "Na tej wiki przesyłanie zostało wyłączone.",
        "api-error-verification-error": "Plik może być uszkodzony lub nazwa pliku ma nieprawidłowe rozszerzenie.",
        "expand_templates_generate_rawhtml": "Pokaż surowy HTML",
        "expand_templates_preview": "Podgląd",
        "expand_templates_preview_fail_html": "<em>Ponieważ {{SITENAME}} ma włączony surowy kod HTML i zaistniała strata danych z sesji, podgląd jest ukryty jako zabezpieczenie przed atakiem JavaScript.</em>\n\n<strong>Jeśli to jest próba słusznego podglądu, proszę spróbować ponownie.</strong>\nJeśli to nie pomoże – spróbuj [[Special:UserLogout|wylogować się]] i zalogować ponownie, a także upewnij się, że twoja przeglądarka akceptuje ciasteczka z tej witryny.",
+       "expand_templates_preview_fail_html_anon": "<em>Ponieważ {{SITENAME}} ma włączoną możliwość korzystania z surowego HTML a jesteś niezalogowany, podgląd został ukryty - jest to środek zapobiegawczy przeciwko atakom JavaScript.</em>\n\n<strong>Jeżeli jest to spodziewana próba podglądu, [[Special:UserLogin|zaloguj się]] i spróbuj ponownie.</strong>",
        "expand_templates_input_missing": "Trzeba wpisać jakiś tekst.",
        "pagelanguage": "Zmiana języka strony",
        "pagelang-name": "Strona",
        "log-description-pagelang": "Rejestr zmian języków przypisanych do poszczególnych stron",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|zmienił|zmieniła}} język strony $3 z „$4” na „$5”.",
        "default-skin-not-found": "Ups! Domyślna skórka dla Twojej wiki, zdefiniowana jako <code dir=\"ltr\">$wgDefaultSkin</code> jako <code>$1</code>, nie jest dostępna.\n\nTwoja instalacja, jak się wydaje, zawiera {{PLURAL:$4|następującą skórkę|następujące skórki}}. Zobacz [https://www.mediawiki.org/wiki/Manual:Skin_configuration/pl Podręcznik:Konfiguracja skórki] z informacjami o tym, jak {{PLURAL:$4|ją włączyć|je włączyć i wybrać domyślną}}.\n\n$2\n\n; Jeśli zainstalowałeś właśnie MediaWiki:\n: Prawdopodobnie zrobiłeś to z Git lub bezpośrednio z kodu źródłowego z wykorzystaniem innej metody. Wtedy jest to możliwe. Spróbuj zainstalować niektóre skórki z [https://www.mediawiki.org/wiki/Category:All_skins/pl folderu skórek serwisu mediawiki.org]:\n:* pobierając [https://www.mediawiki.org/wiki/Download/pl archiwum plików instalacyjnych], zawierające kilka skórek i rozszerzeń. Możesz skopiować i wkleić z niego folder <code>skins/</code>;\n:* pobierając archiwa poszczególnych skórek z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org];\n:* [https://www.mediawiki.org/wiki/Download_from_Git/pl#Korzystanie_z_Git_do_pobrania_rozszerzeń_MediaWiki Używając Git do pobrania skórek].\n: Jeśli jesteś programistą MediaWiki, nie powinno to zaszkodzić twojemu repozytorium Git.\n\n\n; Jeśli tylko aktualizowałeś MediaWiki:\n: MediaWiki w wersji 1.24 i nowszej nie zawiera automatycznie zainstalowanych skórek (zobacz [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual:Skin autodiscovery]).\nMożna wstawić {{PLURAL:$5|następujący linię|następujące linie}} do <code>LocalSettings.php</code>, aby włączyć {{PLURAL:$5|zainstalowaną skórkę|wszystkie zainstalowane skórki}}: \n\n<pre dir=\"ltr\">$3</pre>\n\n; Jeśli właśnie zmodyfikowałeś <code>LocalSettings.php</code>:\n: Dokładnie sprawdź nazwy skórek pod kątem literówek.",
+       "default-skin-not-found-no-skins": "Ups! Domyślna skórka dla Twojej wiki, zdefiniowana w <code>$wgDefaultSkin</code> jako <code>$1</code> nie jest dostępna.\n\nNie masz zainstalowanych żadnych skórek.\n\n; Jeżeli właśnie zainstalowałeś lub zaktualizowałeś MediaWiki:\n: Prawdopodobnie zainstalowałeś z gita lub bezpośrednio z kodu źródłowego z użyciem innej metody. Jest to możliwe. MediaWiki 1.24 i nowsze nie mają dołączonych żadnych skórek w głównym repozytorium. Spróbuj zainstalować jakieś skórki z [https://www.mediawiki.org/wiki/Category:All_skins katalogu skórek na mediawiki.org], poprzez:\n:* Pobranie [https://www.mediawiki.org/wiki/Download spakowanej wersji instalacyjnej], która zawiera kilka skórek i rozszerzeń. Możesz skopiować i wkleić z niej katalog <code>skins/</code>.\n:* Pobranie pojedynczych archiwów tar z [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Wykorzystanie Gita do pobierania skórek].\n: Zrobienie tego nie powinno kolidować z Twoim repozytorium git, jeżeli jesteś twórcą MediaWiki. Zobacz [https://www.mediawiki.org/wiki/Manual:Skin_configuration/pl Podręcznik: Konfiguracja skórek] po informacje jak włączać skórki i wybrać domyślną.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (włączone)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>wyłączone</strong>)",
        "mediastatistics": "Statystyki mediów",
        "log-action-filter-contentmodel-change": "Zmiana modelu zawartości",
        "log-action-filter-contentmodel-new": "Utworzenie strony z niestandardowym modelem zawartości",
        "log-action-filter-delete-delete": "Usunięcie strony",
+       "log-action-filter-delete-delete_redir": "Nadpisanie przekierowania",
        "log-action-filter-delete-restore": "Odtworzenie strony",
        "log-action-filter-delete-event": "Usunięcie wpisu rejestru",
        "log-action-filter-delete-revision": "Usunięcie wersji",
        "authmanager-provider-password": "Uwierzytelnianie oparte na haśle",
        "authmanager-provider-password-domain": "Uwierzytelnianie na podstawie hasła i domeny",
        "authmanager-provider-temporarypassword": "Hasło tymczasowe",
+       "authprovider-confirmlink-request-label": "Konta, które powinny być powiązane",
        "authprovider-confirmlink-success-line": "$1: Połączono.",
+       "authprovider-confirmlink-failed": "Powiązanie konta nie udało się w pełni: $1",
        "authprovider-confirmlink-ok-help": "Kontynuuj po wyświetleniu komunikatów o błędach linkowania.",
        "authprovider-resetpass-skip-label": "Pomiń",
        "authprovider-resetpass-skip-help": "Pomiń resetowanie hasła.",
        "restrictionsfield-badip": "Nieprawidłowy adres IP lub zakres adresów: $1",
        "restrictionsfield-label": "Dozwolone zakresy adresów IP:",
        "restrictionsfield-help": "Jeden adres IP lub zakres CIDR w wierszu. Aby zaznaczyć wszystkie, użyj<br><code>0.0.0.0/0</code><br><code>::/0</code>",
-       "revid": "wersja $1"
+       "revid": "wersja $1",
+       "pageid": "ID strony: $1"
 }
index df3f7f7..a873752 100644 (file)
        "unprotectthispage": "Alterar a proteção desta página",
        "newpage": "Página nova",
        "talkpage": "Discutir sobre esta página",
-       "talkpagelinktext": "Discussão",
+       "talkpagelinktext": "discussão",
        "specialpage": "Página especial",
        "personaltools": "Ferramentas pessoais",
        "articlepage": "Ver página de conteúdo",
        "views": "Visualizações",
        "toolbox": "Ferramentas",
        "tool-link-userrights": "Editar grupos {{GENDER:$1|do usuário|da usuária|do(a) usuário(a)}}",
+       "tool-link-userrights-readonly": "Ver grupos {{GENDER:$1|do usuário|da usuária}}",
        "tool-link-emailuser": "Enviar e-mail a {{GENDER:$1|este usuário|esta usuária|este(a) usuário(a)}}",
        "userpage": "Ver página de usuário",
        "projectpage": "Ver página de projeto",
        "eauthentsent": "Uma mensagem de confirmação foi enviada para o endereço de e-mail fornecido.\nAntes de qualquer outro e-mail ser enviado para a sua conta, você precisará seguir as instruções da mensagem, de modo a confirmar que a conta é mesmo sua.",
        "throttled-mailpassword": "Um lembrete de senha já foi enviado {{PLURAL:$1|na última hora|nas últimas $1 horas}}.\nPara prevenir abusos, apenas um lembrete poderá ser enviado a cada {{PLURAL:$1|hora|$1 horas}}.",
        "mailerror": "Erro a enviar o email: $1",
-       "acct_creation_throttle_hit": "Visitantes deste wiki utilizando o seu endereço IP criaram {{PLURAL:$1|1 conta|$1 contas}} no último dia, o que é o máximo permitido neste período de tempo.\nComo resultado, visitantes que usam este endereço IP não podem criar mais nenhuma conta no momento.",
+       "acct_creation_throttle_hit": "Visitantes desta wiki com endereço IP igual ao seu criaram {{PLURAL:$1|uma conta|$1 contas}} nos últimos (ou últimas) $2, o que é o máximo permitido neste período de tempo.\nComo resultado, visitantes com este endereço IP não podem criar mais nenhuma conta no momento.",
        "emailauthenticated": "O seu endereço de e-mail foi autenticado às $3 de $2.",
        "emailnotauthenticated": "O seu endereço de e-mail ainda não foi autenticado.\nNão lhe será enviado nenhum e-mail sobre nenhuma das seguintes funcionalidades.",
        "noemailprefs": "Especifique um endereço de e-mail para que os seguintes recursos funcionem.",
        "blockedtitle": "O usuário está bloqueado",
        "blockedtext": "'''O seu nome de usuário ou endereço de IP foi bloqueado.'''\n\nO bloqueio foi realizado por $1.\nO motivo apresentado foi ''$2''.\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destino do bloqueio: $7\n\nVocê pode contatar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir sobre o bloqueio.\n\nVocê só poderá utilizar a funcionalidade \"Contatar usuário\" se um endereço de ''e-mail'' válido estiver especificado em suas [[Special:Preferences|preferências de usuário]] e você não tiver sido bloqueado de utilizar tal recurso.\nO seu endereço de IP atual é $3 e a ID de bloqueio é #$5.\nPor favor, inclua todos os detalhes acima em quaisquer tentativas de esclarecimento.",
        "autoblockedtext": "O seu endereço de IP foi bloqueado de forma automática, uma vez que foi utilizado recentemente por outro usuário, o qual foi bloqueado por $1.\nO motivo apresentado foi:\n\n:''$2''\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destino do bloqueio: $7\n\nVocê pode contatar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir sobre o bloqueio.\n\nNote que não poderá utilizar a funcionalidade \"Contatar usuário\" se não possuir uma conta nesta wiki ({{SITENAME}}) com um endereço de ''e-mail'' válido indicado nas suas [[Special:Preferences|preferências de usuário]] ou se tiver sido bloqueado de utilizar tal recurso.\n\nSeu endereço de IP no momento é $3 e sua ID de bloqueio é #$5.\nPor favor, inclua tais dados em qualquer tentativa de esclarecimentos que for realizar.",
+       "systemblockedtext": "O seu nome de usuário ou endereço IP foram bloqueados automaticamente pelo MediaWiki.\nO motivo fornecido é:\n\n:<em>$2</em>\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destinatário do bloqueio: $7\n\nO seu endereço IP atual é $3.\nInclua todos os detalhes acima em quaisquer contatos sobre este assunto, por favor.",
        "blockednoreason": "sem motivo especificado",
        "whitelistedittext": "Você precisa $1 para poder editar páginas.",
        "confirmedittext": "Você precisa confirmar o seu endereço de e-mail antes de começar a editar páginas.\nPor favor, introduza um e valide-o através das suas [[Special:Preferences|preferências de usuário]].",
        "search-external": "Pesquisa externa",
        "searchdisabled": "A busca em {{SITENAME}} se encontra desativada.\nVocê poderá pesquisar através do Google enquanto isso.\nNote que os índices do sistema de busca externo poderão conter referências desatualizadas a {{SITENAME}}.",
        "search-error": "Ocorreu um erro ao buscar por: $1",
+       "search-warning": "Ocorreu um aviso ao pesquisar: $1",
        "preferences": "Preferências",
        "mypreferences": "Preferências",
        "prefs-edits": "Número de edições:",
        "prefs-help-recentchangescount": "Isto inclui mudanças recentes, histórico de páginas e registros.",
        "prefs-help-watchlist-token2": "Esta é a senha secreta para o feed da Web com sua lista de tokens vigiados.\nQualquer pessoa que descobrir esta senha será capaz de ler sua lista, então não a compartilhe.\n[[Special:ResetTokens|Clique aqui para redefini-la]].",
        "savedprefs": "As suas preferências foram salvas.",
-       "savedrights": "Os direitos de usuário de {{GENDER:$1|$1}} foram salvos.",
+       "savedrights": "Os grupos {{GENDER:$1|do usuário|da usuária}} $1 foram gravados.",
        "timezonelegend": "Fuso horário:",
        "localtime": "Horário local:",
        "timezoneuseserverdefault": "Utilizar padrão do wiki ($1)",
        "prefswarning-warning": "Você fez alterações em suas preferências, que não foram salvas ainda. \nSe você sair desta página sem clicar em \"$1\" suas preferências não serão atualizado.",
        "prefs-tabs-navigation-hint": "Dica: Você pode usar as teclas de seta esquerda e direita para navegar entre as abas da lista de abas.",
        "userrights": "Gestão de privilégios {{GENDER:{{BASEPAGENAME}}|do usuário|da usuária|de usuário(a)}}",
-       "userrights-lookup-user": "Administrar grupos de usuários",
+       "userrights-lookup-user": "Selecionar um usuário",
        "userrights-user-editname": "Forneça um nome de usuário(a):",
-       "editusergroup": "Editar grupos {{GENDER:$1|do(a) usuário(a)}}",
+       "editusergroup": "Carregar grupos de usuários",
        "editinguser": "Modificando privilégios d{{GENDER:$1|o usuário|a usuária|o(a) usuário(a)}} <strong>[[User:$1|$1]]</Strong> $2",
+       "viewinguserrights": "Visualizar os privilégios {{GENDER:$1|do usuário|da usuária}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Editar grupos {{GENDER:$1|do usuário|da usuária|do(a) usuário(a)}}",
+       "userrights-viewusergroup": "Ver grupos de usuários",
        "saveusergroups": "Salvar grupos de{{GENDER:$1|usuário}}",
        "userrights-groupsmember": "Membro de:",
        "userrights-groupsmember-auto": "Membro implícito de:",
        "grant-basic": "Direitos básicos",
        "grant-viewdeleted": "Ver páginas e arquivos excluídos",
        "grant-viewmywatchlist": "Veja sua lista de páginas vigiadas",
+       "grant-viewrestrictedlogs": "Ver entradas de registro restritas",
        "newuserlogpage": "Registro de criação de usuários",
        "newuserlogpagetext": "Este é um registro de novas contas de usuário",
        "rightslog": "Registro de privilégios de usuários",
        "action-upload_by_url": "enviar este arquivo a partir de um URL",
        "action-writeapi": "utilizar o modo de escrita da API",
        "action-delete": "excluir esta página",
-       "action-deleterevision": "eliminar esta revisão",
-       "action-deletedhistory": "ver o histórico de edições eliminadas desta página",
+       "action-deleterevision": "eliminar revisões",
+       "action-deletelogentry": "eliminar entradas de registro",
+       "action-deletedhistory": "ver o histórico de edições eliminadas de uma página",
+       "action-deletedtext": "ver o texto de uma revisão eliminada",
        "action-browsearchive": "pesquisar páginas eliminadas",
-       "action-undelete": "restaurar esta página",
-       "action-suppressrevision": "rever e restaurar esta edição oculta",
+       "action-undelete": "restaurar páginas",
+       "action-suppressrevision": "rever e restaurar edições ocultas",
        "action-suppressionlog": "ver este registro privado",
        "action-block": "impedir que este usuário edite",
        "action-protect": "alterar os níveis de proteção desta página",
        "action-userrights-interwiki": "editar privilégios de usuários de outros wikis",
        "action-siteadmin": "bloquear ou desbloquear o banco de dados",
        "action-sendemail": "enviar e-mails",
+       "action-editmyoptions": "editar as suas preferências",
        "action-editmywatchlist": "modifique sua lista de páginas vigiadas",
        "action-viewmywatchlist": "veja sua lista de páginas vigiadas",
        "action-viewmyprivateinfo": "veja suas informações privadas",
        "fileexists-forbidden": "Já existe um arquivo com este nome e ele não pode ser sobrescrito.\nSe ainda pretende enviar seu arquivo, volte e use um novo nome.\n[[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "Já existe um arquivo com este nome no repositório de arquivos compartilhados.\nSe você ainda quer enviar seu arquivo, volte e use um novo nome.\n[[File:$1|thumb|center|$1]]",
        "fileexists-no-change": "O arquivo carregado é uma duplicata exata da versão atual de <strong>[[:$1]]</strong>.",
+       "fileexists-duplicate-version": "O arquivo carregado é um duplicado exato {{PLURAL:$2|de uma versão anterior|de uma das versões anteriores}} de <strong>[[:$1]]</strong>.",
        "file-exists-duplicate": "Este arquivo é uma duplicata do seguinte {{PLURAL:$1|arquivo|arquivos}}:",
        "file-deleted-duplicate": "Um arquivo idêntico a este ([[:$1]]) foi eliminado anteriormente.\nVerifique o histórico de eliminação de tal arquivo antes de tentar re-enviar.",
        "file-deleted-duplicate-notitle": "Um arquivo idêntico a este foi anteriormente excluído, e o título foi suprimido. Você deve comunicar com alguém capaz de visualizar dados suprimidos, para verificar a situação antes de enviá-lo novamente.",
        "uploaded-href-attribute-svg": "os atributos href nos ficheiros SVG só están autorizados a ligar a direccións http:// ou https://, atopado <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploaded-href-unsafe-target-svg": "Encontrado href para dados não seguros: alvo URI <code>&lt;$1 $2=\"$3\"&gt;</code> no arquivo SVG carregado.",
        "uploaded-animate-svg": "Encontrado a tag \"animate\" que pode estar mudando \"href\", usando o atributo \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> no arquivo SVG carregado.",
+       "uploaded-setting-event-handler-svg": "A definição de atributos controladores de eventos está bloqueada. Foi detetado <code>&lt;$1 $2=\"$3\"&gt;</code> no arquivo SVG carregado.",
+       "uploaded-setting-href-svg": "O uso da tag \"set\" para adicionar o atributo \"href\" ao elemento mãe está bloqueado.",
+       "uploaded-wrong-setting-svg": "O uso da tag \"set\" para adicionar um destino remoto/de dados/<i>script</i> a qualquer atributo está bloqueado. No arquivo SVG enviado foi encontrado <code>&lt;set to=\"$1\"&gt;</code>.",
+       "uploaded-setting-handler-svg": "A configuração do atributo \"handler\" com destino remoto/de dados/<i>script</i> em arquivos SVG está bloqueada. Foi detetado <code>$1=\"$2\"</code> no arquivo SVG carregado.",
+       "uploaded-remote-url-svg": "A configuração de qualquer atributo de estilo com um URL remoto em arquivos SVG está bloqueada. Foi detetado <code>$1=\"$2\"</code> no arquivo SVG carregado.",
+       "uploaded-image-filter-svg": "Foi encontrado um filtro de imagem com o URL: <code>&lt;$1 $2=\"$3\"&gt;</code> no arquivo SVG carregado.",
        "uploadscriptednamespace": "Este aruivo SVG contém um espaço nominal probido \"$1\"",
        "uploadinvalidxml": "O XML no arquivo enviado não pôde ser analisado.",
        "uploadvirus": "O arquivo contém vírus!\nDetalhes: $1",
        "upload-options": "Opções de envio",
        "watchthisupload": "Vigiar este arquivo",
        "filewasdeleted": "Um arquivo com este nome foi enviado anteriormente e eliminado.\nVerifique o $1 antes de enviar novamente.",
+       "filename-thumb-name": "Este título parece ser o de uma miniatura. Não coloque miniaturas na wiki donde as obteve, por favor. Se não a obteve desta wiki, altere o nome do arquivo para que este seja mais fácil de compreender e não tenha o prefixo de uma miniatura, por favor.",
        "filename-bad-prefix": "O nome do arquivo que você está enviando começa com '''\"$1\"''', um nome pouco esclarecedor, comumente associado de forma automática por câmeras digitais.\nEscolha um nome de arquivo mais explicativo.",
        "filename-prefix-blacklist": " #<!-- deixe esta linha exatamente como está --> <pre>\n# A sintaxe é a seguinte:\n#   * Tudo a partir do caractere \"#\" até ao fim da linha é um comentário\n#   * Todas as linhas não vazias são um prefixo para nomes de arquivos típicos atribuídos automaticamente por câmaras digitais\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # alguns telefones móveis\nIMG # genérico\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- deixe esta linha exatamente como está -->",
        "upload-proto-error": "Protocolo incorreto",
        "upload-too-many-redirects": "A URL contém redirecionamentos demais",
        "upload-http-error": "Ocorreu um erro HTTP: $1",
        "upload-copy-upload-invalid-domain": "Não é possível realizar envios remotos neste domínio.",
+       "upload-dialog-disabled": "Essa wiki desativou o envio de arquivos através dessa caixa de diálogo.",
        "upload-dialog-title": "Enviar arquivo",
        "upload-dialog-button-cancel": "Cancelar",
+       "upload-dialog-button-back": "Voltar",
        "upload-dialog-button-done": "Feito",
        "upload-dialog-button-save": "Salvar",
        "upload-dialog-button-upload": "Enviar",
        "upload-form-label-own-work": "Isto é o meu próprio trabalho",
        "upload-form-label-infoform-categories": "Categorias",
        "upload-form-label-infoform-date": "Data",
+       "upload-form-label-own-work-message-generic-local": "Garanto que estou enviando este arquivo em conformidade com os termos de serviço e as políticas de licenciamento do site {{SITENAME}}.",
+       "upload-form-label-not-own-work-message-generic-local": "Se não for possível enviar este arquivo sob as políticas do site {{SITENAME}}, feche essa caixa de diálogo e tente outro método.",
        "upload-form-label-not-own-work-local-generic-local": "Você pode também querer tentar [[Special:Upload|the default upload page]]",
+       "upload-form-label-own-work-message-generic-foreign": "Entendo que estou enviando este arquivo para um repositório compartilhado. Garanto que minha ação está em conformidade com os respectivos termos de serviço e políticas de licenciamento.",
+       "upload-form-label-not-own-work-message-generic-foreign": "Se não for possível enviar este arquivo sob as políticas desse repositório compartilhado, feche essa caixa de diálogo e tente outro método.",
+       "upload-form-label-not-own-work-local-generic-foreign": "Experimente também usar a [[Special:Upload|página de envios]] do site {{SITENAME}}, caso as políticas do mesmo permitam o envio.",
        "backend-fail-stream": "Não foi possível transmitir o arquivo  $1.",
        "backend-fail-backup": "Não foi possível fazer backup do arquivo  $1 .",
        "backend-fail-notexists": "O arquivo $1 não existe.",
        "filerevert-submit": "Reverter",
        "filerevert-success": "<span class=\"plainlinks\">'''[[Media:$1|$1]]''' foi revertida para a [$4 versão de $2 - $3].</span>",
        "filerevert-badversion": "Não há uma versão local anterior deste arquivo no período de tempo especificado.",
+       "filerevert-identical": "A versão atual do arquivo é idêntica à versão do selecionado.",
        "filedelete": "Eliminar $1",
        "filedelete-legend": "Eliminar arquivo",
        "filedelete-intro": "Você está prestes a eliminar o arquivo '''[[Media:$1|$1]]''' junto com todo o seu histórico.",
        "statistics-header-hooks": "Outras estatísticas",
        "statistics-articles": "Páginas de conteúdo",
        "statistics-pages": "Páginas",
-       "statistics-pages-desc": "Todas as páginas no wiki, incluindo páginas de discussão, redirecionamentos, etc.",
+       "statistics-pages-desc": "Todas as páginas da wiki, incluindo páginas de discussão, redirecionamentos etc.",
        "statistics-files": "Arquivos carregados",
        "statistics-edits": "Edições de página desde que {{SITENAME}} foi instalado",
        "statistics-edits-average": "Média de edições por página",
        "usercreated": "{{GENDER:$3|criado|criada|criado(a)}} em $1 às $2",
        "newpages": "Páginas novas",
        "newpages-submit": "Exibir",
-       "newpages-username": "Nome de usuário:",
+       "newpages-username": "Nome de usuário(a):",
        "ancientpages": "Páginas mais antigas",
        "move": "Mover",
        "movethispage": "Mover esta página",
        "apisandbox": "Caixa de areia da API",
        "apisandbox-api-disabled": "A API está desabilitada neste site.",
        "apisandbox-intro": "Use esta página para realizar testes com o '''serviço web de API do MediaWiki'''.\nConsulte a [https://www.mediawiki.org/wiki/API:Main_page a documentação API] para obter mais detalhes de uso da API.  Exemplo: [https://www.mediawiki.org/wiki/API#A_simple_example obter o conteúdo de uma Página principal].  Selecione uma ação para mais exemplos.\n\nNote que, embora esta seja uma área de testes, as ações que executar nesta página podem modificar a wiki.",
+       "apisandbox-fullscreen": "Expandir painel",
        "apisandbox-unfullscreen": "Mostrar página",
        "apisandbox-submit": "Fazer requisição",
        "apisandbox-reset": "Limpar",
        "linksearch-ns": "Espaço nominal:",
        "linksearch-ok": "Pesquisar",
        "linksearch-text": "É possível usar caracteres coringa, como \"*.wikipedia.org\".\nNecessário no mínimo um domínio de nível superior, por exemplo \"*.org\".<br />\n{{PLURAL:$2|Protocolo suportado|Protocolos suportados}}: $1 (caso nenhum seja especificado, o protocolo http:// será selecionado automaticamente).",
-       "linksearch-line": "$2 possui links para $1",
+       "linksearch-line": "$1 na página $2",
        "linksearch-error": "\"Caracteres mágicos\" (''wildcards'') só podem ser usados no início do endereço.",
        "listusersfrom": "Mostrar usuários começando em:",
        "listusers-submit": "Exibir",
        "cant-move-to-user-page": "Você não tem permissão para mover uma página para uma página de usuários (exceto para uma subpágina de usuário).",
        "cant-move-category-page": "Você não possui permissão para mover páginas de categorias.",
        "cant-move-to-category-page": "Você não tem permissão para mover uma página para uma categoria de páginas.",
-       "movepage-max-pages": "O limite de $1 {{PLURAL:$1|página movida|páginas movidas}} foi atingido; não será possível mover mais páginas de forma automática.",
        "newtitle": "Novo título:",
        "move-watch": "Vigiar esta página",
        "movepagebtn": "Mover página",
        "movepage-page-exists": "A página $1 já existe e não pode ser substituída.",
        "movepage-page-moved": "A página $1 foi movida para $2",
        "movepage-page-unmoved": "A página $1 não pôde ser movida para $2.",
+       "movepage-max-pages": "O limite de $1 {{PLURAL:$1|página movida|páginas movidas}} foi atingido; não será possível mover mais páginas de forma automática.",
        "movelogpage": "Registro de movimentos",
        "movelogpagetext": "Abaixo encontra-se uma lista de páginas movidas.",
        "movesubpage": "{{PLURAL:$1|Subpágina|Subpáginas}}",
        "logentry-tag-update-revision": "$1 {{GENDER:$2|atualizou}} etiquetas em revisão $4 da página $3 ({{PLURAL:$7|adicionou}} $6; {{PLURAL:$9|removeu}} $8)",
        "logentry-tag-update-logentry": "$1 {{GENDER:$2|atualizou}} etiquetas na entrada de registro $5 da página $3 ({{PLURAL:$7|adicionou}} $6; {{PLURAL:$9|removeu}} $8)",
        "rightsnone": "(nenhum)",
-       "revdelete-summary": "sumário de edição",
+       "revdelete-summary": "resumo da edição",
        "feedback-adding": "Adicionando os comentários na página...",
        "feedback-back": "Voltar",
        "feedback-bugcheck": "Perfeito! Apenas verifique se não é um dos [$1 bugs já conhecidos].",
index 4977074..ba79643 100644 (file)
        "statistics-header-hooks": "Outras estatísticas",
        "statistics-articles": "Páginas de conteúdo",
        "statistics-pages": "Páginas",
-       "statistics-pages-desc": "Todas as páginas da wiki, incluindo páginas de discussão, redirecionamentos, etc.",
+       "statistics-pages-desc": "Todas as páginas da wiki, incluindo páginas de discussão, redirecionamentos etc.",
        "statistics-files": "Ficheiros carregados",
        "statistics-edits": "Edições de páginas desde que a wiki {{SITENAME}} foi instalada",
        "statistics-edits-average": "Média de edições por página",
        "cant-move-to-user-page": "Não tem permissão para mover uma página para uma página de utilizador (pode movê-la para uma subpágina de utilizador).",
        "cant-move-category-page": "Não possui permissão para mover categorias.",
        "cant-move-to-category-page": "Não possui permissão para mover uma página para uma categoria.",
-       "movepage-max-pages": "O limite de $1 {{PLURAL:$1|página movida|páginas movidas}} foi atingido; não será possível mover mais páginas de forma automática.",
+       "cant-move-subpages": "Não tem permissão para mover subpáginas.",
+       "namespace-nosubpages": "O espaço nominal \"$1\" não permite subpáginas.",
        "newtitle": "Novo título:",
        "move-watch": "Vigiar esta página",
        "movepagebtn": "Mover página",
        "movepage-page-exists": "A página $1 já existe e não pode ser substituída.",
        "movepage-page-moved": "A página $1 foi movida para $2.",
        "movepage-page-unmoved": "Não foi possível mover a página $1 para $2.",
+       "movepage-max-pages": "O limite de $1 {{PLURAL:$1|página movida|páginas movidas}} foi atingido; não será possível mover mais páginas de forma automática.",
        "movelogpage": "Registo de movimentação de páginas",
        "movelogpagetext": "Abaixo encontra-se uma lista de páginas movidas.",
        "movesubpage": "{{PLURAL:$1|Subpágina|Subpáginas}}",
        "api-error-blocked": "Foi bloqueado de editar.",
        "api-error-copyuploaddisabled": "O carregamento de ficheiros por URL não foi possibilitado neste servidor.",
        "api-error-duplicate": "Já {{PLURAL:$1|existia outro ficheiro|existiam outros ficheiro}} na wiki com o mesmo conteúdo.",
-       "api-error-duplicate-archive": "Já {{PLURAL:$1|estava outro ficheiro|estavam outros ficheiros}} no  site com o mesmo conteúdo, mas {{PLURAL:$1|foi|foram}} eliminados.",
+       "api-error-duplicate-archive": "Já {{PLURAL:$1|estava outro ficheiro|estavam outros ficheiros}} no site com o mesmo conteúdo, mas {{PLURAL:$1|foi eliminado|foram eliminados}}.",
        "api-error-empty-file": "O ficheiro que enviou está vazio.",
        "api-error-emptypage": "Não é permitido criar páginas novas vazias.",
        "api-error-fetchfileerror": "Erro interno: Ocorreu um problema indeterminado ao aceder ao ficheiro.",
index 95e6983..7763894 100644 (file)
        "right-reupload": "{{doc-right|reupload}}\nThe right to upload a file under a file name that already exists.\n\nRelated messages:\n* {{msg-mw|right-upload}}\n* {{msg-mw|right-reupload-own}}\n* {{msg-mw|right-reupload-shared}}",
        "right-reupload-own": "{{doc-right|reupload-own}}\nRight to upload a file under a file name that already exists, and that the same user has uploaded.\n\nRelated messages:\n* {{msg-mw|right-upload}}\n* {{msg-mw|right-reupload}}",
        "right-reupload-shared": "{{doc-right|reupload-shared}}\nThe right to upload a file locally under a file name that already exists in a shared database (for example Commons).\n\nRelated messages:\n* {{msg-mw|right-upload}}\n* {{msg-mw|right-reupload}}",
-       "right-upload_by_url": "{{doc-right|upload by url}}",
+       "right-upload_by_url": "{{doc-right|upload_by_url}}",
        "right-purge": "{{doc-right|purge}}\nThe right to use <code>&action=purge</code> in the URL, without needing to confirm it (by default, anonymous users need to confirm it).",
        "right-autoconfirmed": "{{doc-right|autoconfirmed}}\nIf your account is older than [[mw:Manual:$wgAutoConfirmAge|wgAutoConfirmAge]] and if you have at least [[mw:Manual:$wgAutoConfirmCount|$wgAutoConfirmCount]] edits, you are in the '''group \"autoconfirmed\"''' (note that you can't see this group at [[Special:ListUsers]]).\nIf you are in that group, you have (by default) the '''right \"autoconfirmed\"''', which exempts you from certain rate limits (those based on your IP address or otherwise intended solely for new users). Other rate limits may still apply; see {{msg-mw|right-noratelimit}}.",
        "right-bot": "{{doc-right|bot}}",
        "action-upload": "{{Doc-action|upload}}",
        "action-reupload": "{{Doc-action|reupload}}",
        "action-reupload-shared": "{{Doc-action|reupload-shared}}",
-       "action-upload_by_url": "{{Doc-action|upload by url}}",
+       "action-upload_by_url": "{{Doc-action|upload_by_url}}",
        "action-writeapi": "{{Doc-action|writeapi}}\n\nAPI is an abbreviation for [[w:API|application programming interface]].",
        "action-delete": "{{Doc-action|delete}}",
        "action-deleterevision": "{{Doc-action|deleterevision}}",
        "recentchanges-legend-unpatrolled": "Used as legend on [[Special:RecentChanges]] and [[Special:Watchlist]].\n\nRefers to {{msg-mw|Recentchanges-label-unpatrolled}}.",
        "recentchanges-legend-plusminus": "{{optional}}\nA plus/minus sign with a number for the legend.",
        "recentchanges-submit": "Label for submit button in [[Special:RecentChanges]]\n{{Identical|Show}}",
+       "rcfilters-activefilters": "Title for the filters selection showing the active filters.",
+       "rcfilters-search-placeholder": "Placeholder for the filter search input.",
+       "rcfilters-invalid-filter": "A label for an ivalid filter.",
+       "rcfilters-filterlist-title": "Title for the filters list.",
+       "rcfilters-filterlist-noresults": "Message showing no results found for searching a filter.",
+       "rcfilters-filtergroup-authorship": "Title for the filter group for edit authorship.",
+       "rcfilters-filter-editsbyself-label": "Label for the filter for showing edits made by the current user.",
+       "rcfilters-filter-editsbyself-description": "Description for the filter for showing edits made by the current user.",
+       "rcfilters-filter-editsbyother-label": "Label for the filter for showing edits made by anyone other than the current user.",
+       "rcfilters-filter-editsbyother-description": "Description for the filter for showing edits made by anyone other than the current user.",
        "rcnotefrom": "This message is displayed at [[Special:RecentChanges]] when viewing recentchanges from some specific time.\n\nThe corresponding message is {{msg-mw|Rclistfrom}}.\n\nParameters:\n* $1 - the maximum number of changes that are displayed\n* $2 - (Optional) a date and time\n* $3 - a date\n* $4 - a time\n* $5 - Number of changes are displayed, for use with PLURAL",
        "rclistfrom": "Used on [[Special:RecentChanges]]. Parameters:\n* $1 - (Currently not use) date and time. The date and the time adds to the rclistfrom description.\n* $2 - time. The time adds to the rclistfrom link description (with split of date and time).\n* $3 - date. The date adds to the rclistfrom link description (with split of date and time).\n\nThe corresponding message is {{msg-mw|Rcnotefrom}}.",
        "rcshowhideminor": "Option text in [[Special:RecentChanges]]. Parameters:\n* $1 - the \"show/hide\" command, with the text taken from either {{msg-mw|rcshowhideminor-show}} or {{msg-mw|rcshowhideminor-hide}}\n{{Identical|Minor edit}}",
        "apisandbox-sending-request": "JavaScript message displayed while the request is being sent.",
        "apisandbox-loading-results": "JavaScript message displayed while the response is being read.",
        "apisandbox-results-error": "Displayed as an error message from JavaScript when the request failed.\n\nParameters:\n* $1 - Error message",
+       "apisandbox-request-params-json": "Label for text field display the request parameters as JSON.",
        "apisandbox-request-url-label": "Label for the text field displaying the URL used to make this request.",
        "apisandbox-request-time": "Label and value for displaying the time taken by the request.\n\nParameters:\n* $1 - Time taken in milliseconds",
        "apisandbox-results-fixtoken": "JavaScript button label",
        "listgrouprights": "The name of the special page [[Special:ListGroupRights]].",
        "listgrouprights-summary": "The description used on [[Special:ListGroupRights]].\n\nRefers to {{msg-mw|Listgrouprights-helppage}}.",
        "listgrouprights-key": "Footer note for the [[Special:ListGroupRights]] page",
-       "listgrouprights-group": "The title of the column in the table, about user groups (like you are in the ''translator'' group).\n\n{{Identical|Group}}",
+       "listgrouprights-group": "The title of the column in the table, about user groups (like you are in the ''translator'' group).\n\n{{Identical|Group}}\n{{Related|Listgrouprights}}",
        "listgrouprights-rights": "The title of the column in the table, about user rights (like you can ''edit'' this page).\n{{Identical|Right}}",
        "listgrouprights-helppage": "The link used on [[Special:ListGroupRights]]. Just translate \"Group rights\", and '''leave the \"Help:\" namespace exactly as it is'''.",
        "listgrouprights-members": "Used on [[Special:ListGroupRights]] and [[Special:Statistics]] as a link to [[Special:ListUsers|Special:ListUsers/\"group\"]], a list of members in that group.",
        "listgrouprights-right-display": "{{optional}}\nParameters:\n* $1 - the text from the \"right-...\" messages, i.e. {{msg-mw|Right-edit}}\n* $2 - the codename of this right",
        "listgrouprights-right-revoked": "{{optional}}\nParameters:\n* $1 - the text from the \"right-...\" messages, i.e. {{msg-mw|Right-edit}}\n* $2 - the codename of this right",
-       "listgrouprights-addgroup": "This is an individual right for groups, used on [[Special:ListGroupRights]].\n* $1 - an enumeration of group names\n* $2 - the number of group names in $1\nSee also:\n* {{msg-mw|listgrouprights-removegroup}}",
+       "listgrouprights-addgroup": "This is an individual right for groups, used on [[Special:ListGroupRights]].\n* $1 - an enumeration of group names\n* $2 - the number of group names in $1\nSee also:\n* {{msg-mw|listgrouprights-removegroup}}\n{{Related|Listgrouprights}}",
        "listgrouprights-removegroup": "This is an individual right for groups, used on [[Special:ListGroupRights]].\n* $1 - an enumeration of group names\n* $2 - the number of group names in $1\nSee also:\n* {{msg-mw|listgrouprights-addgroup}}",
        "listgrouprights-addgroup-all": "Used on [[Special:ListGroupRights]].\n{{Related|Listgrouprights}}",
        "listgrouprights-removegroup-all": "Used on [[Special:ListGroupRights]].\n{{Related|Listgrouprights}}",
-       "listgrouprights-addgroup-self": "This is an individual right for groups, used on [[Special:ListGroupRights]].\n* $1 - the group names\n* $2 - the number of group names in $1",
-       "listgrouprights-removegroup-self": "This is an individual right for groups, used on [[Special:ListGroupRights]].\n* $1 - the group names\n* $2 - the number of group names in $1",
+       "listgrouprights-addgroup-self": "This is an individual right for groups, used on [[Special:ListGroupRights]].\n* $1 - the group names\n* $2 - the number of group names in $1\n{{Related|Listgrouprights}}",
+       "listgrouprights-removegroup-self": "This is an individual right for groups, used on [[Special:ListGroupRights]].\n* $1 - the group names\n* $2 - the number of group names in $1\n{{Related|Listgrouprights}}",
        "listgrouprights-addgroup-self-all": "Used on [[Special:ListGroupRights]].\n{{Related|Listgrouprights}}",
        "listgrouprights-removegroup-self-all": "Used on [[Special:ListGroupRights]].\n{{Related|Listgrouprights}}",
        "listgrouprights-namespaceprotection-header": "Shown on [[Special:ListGroupRights]] as the header for the namespace restrictions table.",
        "cant-move-to-category-page": "Used as error message.\n\nSee also:\n* {{msg-mw|cant-move-user-page}}\n* {{msg-mw|cant-move-to-user-page}}\n* {{msg-mw|cant-move-category-page}}\n* {{msg-mw|movenotallowedfile}}\n* {{msg-mw|movenotallowed}}\n* {{msg-mw|movenologintext}}",
        "cant-move-subpages": "Used as an error message.",
        "namespace-nosubpages": "Used as an error message. Parameters:\n* $1 - Namespace name.",
-       "movepage-max-pages": "PROBABLY (A GUESS): when moving a page, you can select an option of moving its subpages, but there is a maximum that can be moved automatically.\n\nParameters:\n* $1 - maximum moved pages, defined in the variable [[mw:Special:MyLanguage/Manual:$wgMaximumMovedPages|$wgMaximumMovedPages]]",
        "newtitle": "Used in the special page \"[[Special:MovePage]]\". The text for the inputbox to give the new page title.\n\nSee also:\n* {{msg-mw|Move-page-legend|legend for the form}}\n* {{msg-mw|Movereason|label for textarea}}\n* {{msg-mw|Movetalk|label for checkbox}}\n* {{msg-mw|Move-leave-redirect|label for checkbox}}\n* {{msg-mw|Fix-double-redirects|label for checkbox}}\n* {{msg-mw|Move-subpages|label for checkbox}}\n* {{msg-mw|Move-talk-subpages|label for checkbox}}\n* {{msg-mw|Move-watch|label for checkbox}}",
        "move-watch": "The text of the checkbox to watch the pages you are moving from and to. If checked, both the destination page and the original page will be added to the watchlist, even if you decide not to leave a redirect behind.\n\nSee also:\n* {{msg-mw|Move-page-legend|legend for the form}}\n* {{msg-mw|newtitle|label for new title}}\n* {{msg-mw|Movereason|label for textarea}}\n* {{msg-mw|Movetalk|label for checkbox}}\n* {{msg-mw|Move-leave-redirect|label for checkbox}}\n* {{msg-mw|Fix-double-redirects|label for checkbox}}\n* {{msg-mw|Move-subpages|label for checkbox}}\n* {{msg-mw|Move-talk-subpages|label for checkbox}}",
        "movepagebtn": "Button label on the special 'Move page'.\n\n{{Identical|Move page}}",
        "movepage-page-exists": "Used as error message when moving page.\n* $1 - page title",
        "movepage-page-moved": "Used as success message when moving page.\n\nCan be followed by {{msg-mw|Movepage-max-pages}}.\n\nParameters:\n* $1 - old page title (with link)\n* $2 - new page title (with link)\nSee also:\n* {{msg-mw|Movepage-page-unmoved}}",
        "movepage-page-unmoved": "Used as error message when moving page. Parameters:\n* $1 - old page title (with link)\n* $2 - new page title (with link)\nSee also:\n* {{msg-mw|Movepage-page-moved}}",
+       "movepage-max-pages": "PROBABLY (A GUESS): when moving a page, you can select an option of moving its subpages, but there is a maximum that can be moved automatically.\n\nParameters:\n* $1 - maximum moved pages, defined in the variable [[mw:Special:MyLanguage/Manual:$wgMaximumMovedPages|$wgMaximumMovedPages]]",
        "movelogpage": "{{doc-logpage}}\n\nTitle of [[Special:Log/move]]. Used as heading on that page, and in the dropdown menu on log pages.",
        "movelogpagetext": "Text on the special page 'Move log'.",
        "movesubpage": "This is a section header on [[Special:MovePage]], below is a list of subpages.\n\nParameters:\n* $1 - number of subpages\nSee also:\n* {{msg-mw|movenosubpage|without subpage}}\n* {{msg-mw|movesubpagetext|with subpages}}\n* {{msg-mw|movesubpagetalktext|with talk subpages}}",
        "pagelang-use-default": "Radio label for selector on Special:PageLanguage for default language",
        "pagelang-select-lang": "Radio label for selector on Special:PageLanguage for language selection\n{{Identical|Select language}}",
        "pagelang-submit": "Submit button label for Special:PageLanguage form\n{{Identical|Submit}}",
+       "pagelang-nonexistent-page": "Error message shown when the page the user is trying to change the language on does not exist.\n\nParameters:\n* $1 - the title of the nonexistent page",
+       "pagelang-unchanged-language": "Error message shown when the language the user is trying to change the page to and the current language the page is in are the same.\n\nParameters:\n* $1 - the title of the target page\n* $2 - the current language of the page",
+       "pagelang-unchanged-language-default": "Error message shown when the language the user is trying to change the page to is already the wiki's default content language.\n\nParameters:\n* $1 - the title of the target page",
+       "pagelang-db-failed": "Error message shown when the database fails to update the language of the page",
        "right-pagelang": "{{Doc-right|pagelang}}\nRight to change page language on Special:PageLanguage",
        "action-pagelang": "{{Doc-action|pagelang}}",
        "log-name-pagelang": "Display entry for log name for changes in page language in Special:Log.",
index 285edf6..62f7dec 100644 (file)
        "botpasswords-label-grants": "Permisiuni aplicabile:",
        "botpasswords-label-grants-column": "Permise",
        "botpasswords-bad-appid": "Numele de robot „$1” nu este valid.",
+       "botpasswords-created-title": "Parola de robot a fost creată",
        "resetpass_forbidden": "Parolele nu pot fi schimbate.",
+       "resetpass_forbidden-reason": "Parolele nu pot fi schimbate: $1",
        "resetpass-no-info": "Trebuie să fiți autentificat pentru a accesa această pagină direct.",
        "resetpass-submit-loggedin": "Modifică parola",
        "resetpass-submit-cancel": "Revocare",
        "grant-generic": "set de permisiuni „$1”",
        "grant-group-page-interaction": "Interacționează cu paginile",
        "grant-group-file-interaction": "Interacționează cu conținut media",
+       "grant-group-email": "Trimite e-mail",
+       "grant-createaccount": "Creare conturi",
+       "grant-createeditmovepage": "Creează, editează și redenumește pagini",
        "grant-highvolume": "Volum mare de editare",
        "grant-oversight": "Ascunde utilizatori și suprimă versiuni",
        "grant-patrol": "Patrulează schimbările paginilor",
        "action-writeapi": "utilizați scrierea prin API",
        "action-delete": "ștergeți această pagină",
        "action-deleterevision": "ștergeți această versiune",
-       "action-deletedhistory": "vizualizați istoricul șters al acestei pagini",
+       "action-deletelogentry": "ștergeți înregistrări din jurnal",
+       "action-deletedhistory": "vizualizați istoricul șters a unei pagini",
        "action-browsearchive": "căutați pagini șterse",
        "action-undelete": "recuperați această pagină",
-       "action-suppressrevision": "revizuiți și să restaurați această versiune ascunsă",
+       "action-suppressrevision": "revizuiți și să restaurați versiuni ascunse",
        "action-suppressionlog": "vizualizați acest jurnal privat",
        "action-block": "blocați permisiunea de modificare a acestui utilizator",
        "action-protect": "modificați nivelurile de protecție pentru această pagină",
        "recentchangeslinked-page": "Numele paginii:",
        "recentchangeslinked-to": "Arată în schimb modificările asupra paginilor care se leagă de pagina indicată",
        "recentchanges-page-added-to-category": "[[:$1]] a fost adăugată în categorii",
-       "recentchanges-page-added-to-category-bundled": "[[:$1]] și încă [[Special:WhatLinksHere/$1|{{PLURAL:$2|o pagină|$2 pagini|$2 de pagini}}]] au fost adăugate în categorii",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] a fost adăugată în categorie, [[Special:WhatLinksHere/$1|această pagină este inclusă în alte pagini]]",
        "recentchanges-page-removed-from-category": "[[:$1]] eliminată din categorii",
-       "recentchanges-page-removed-from-category-bundled": "[[:$1]] și încă {{PLURAL:$2|o pagină|$2 pagini|$2 de pagini}} au fost eliminate din categorii",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] a fost eliminată din categorie, [[Special:WhatLinksHere/$1|această pagină este inclusă în alte pagini]]",
        "autochange-username": "Modificare automată a MediaWiki",
        "upload": "Încărcare fișier",
        "uploadbtn": "Încarcă fișier",
        "apisandbox-results-fixtoken-fail": "Imposibil de recuperat jetonul „$1”.",
        "apisandbox-alert-page": "Câmpurile de pe această pagină nu sunt valide.",
        "apisandbox-alert-field": "Valoare acestui câmp nu este validă.",
+       "apisandbox-continue": "Continuă",
        "booksources": "Surse de cărți",
        "booksources-search-legend": "Căutare surse pentru cărți",
        "booksources-search": "Caută",
        "logentry-contentmodel-change-revert": "revenire",
        "protectlogpage": "Jurnal protecții",
        "protectlogtext": "Mai jos se află o listă cu schimbări în ceea ce privește protejarea paginilor.\nConsultați [[Special:ProtectedPages|indexul paginilor protejate]] pentru o listă cu protecțiile în vigoare.",
-       "protectedarticle": "a protejat \"[[$1]]\"",
+       "protectedarticle": "a protejat „[[$1]]”",
        "modifiedarticleprotection": "schimbat nivelul de protecție pentru \"[[$1]]\"",
        "unprotectedarticle": "a eliminat protecția pentru „[[$1]]”",
        "movedarticleprotection": "setările de protecție au fost mutate de la „[[$2]]” la „[[$1]]”",
+       "protectedarticle-comment": "A protejat „[[$1]]”",
+       "unprotectedarticle-comment": "A eliminat protecția pentru „[[$1]]”",
        "protect-title": "Protejare „$1”",
        "protect-title-notallowed": "Vizualizare nivel de protecție pentru „$1”",
        "prot_1movedto2": "a mutat [[$1]] la [[$2]]",
        "cant-move-to-user-page": "Nu aveți permisiunea de a redenumi o pagină într-o pagină de utilizator (cu excepția subpaginii utilizatorului).",
        "cant-move-category-page": "Nu aveți permisiunea de a redenumi paginile categoriilor.",
        "cant-move-to-category-page": "Nu aveți permisiunea de a redenumi o pagină într-o pagină a unei categorii.",
-       "movepage-max-pages": "Maximul de $1 {{PLURAL:$1|pagină redenumită|pagini redenumite|de pagini redenumite}} a fost atins și nici o altă pagină nu va mai fi redenumită automat.",
        "newtitle": "Titlu nou:",
        "move-watch": "Urmărește această pagină",
        "movepagebtn": "Redenumește pagina",
        "movepage-page-exists": "Pagina $1 există deja și nu poate fi rescrisă automat.",
        "movepage-page-moved": "Pagina $1 a fost redenumită în $2.",
        "movepage-page-unmoved": "Pagina $1 nu a putut fi redenumită în $2.",
+       "movepage-max-pages": "Maximul de $1 {{PLURAL:$1|pagină redenumită|pagini redenumite|de pagini redenumite}} a fost atins și nici o altă pagină nu va mai fi redenumită automat.",
        "movelogpage": "Jurnal redenumiri",
        "movelogpagetext": "Mai jos se află o listă cu paginile redenumite.",
        "movesubpage": "{{PLURAL:$1|Subpagină|Subpagini}}",
index fa1ce08..1f80708 100644 (file)
@@ -96,7 +96,8 @@
                        "Cat1987",
                        "SergeyButkov",
                        "Irus",
-                       "Kareyac"
+                       "Kareyac",
+                       "Mailman"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "pool-errorunknown": "Неизвестная ошибка",
        "pool-servererror": "Служба счётчика пула недоступна ($1).",
        "poolcounter-usage-error": "Ошибка использования: $1",
-       "aboutsite": "Описание {{grammar:genitive|{{SITENAME}}}}",
+       "aboutsite": "Описание {{GRAMMAR:prepositional|{{SITENAME}}}}",
        "aboutpage": "Project:Описание",
        "copyright": "Содержание доступно по лицензии $1 (если не указано иное).",
        "copyrightpage": "{{ns:project}}:Авторские права",
        "editinguser": "Изменение прав {{GENDER:$1|участника|участницы}} <strong>[[User:$1|$1]]</strong> $2",
        "viewinguserrights": "Просмотр прав {{GENDER:$1|участника|участницы}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Изменение членства в группах",
-       "userrights-viewusergroup": "Ð\9fросмотр групп участника",
+       "userrights-viewusergroup": "просмотр групп участника",
        "saveusergroups": "Сохранить группы {{GENDER:$1|участника|участницы}}",
        "userrights-groupsmember": "Состоит в группах:",
        "userrights-groupsmember-auto": "Неявно состоит в группах:",
        "grant-basic": "Основные права",
        "grant-viewdeleted": "Просмотр удалённых файлов и страниц",
        "grant-viewmywatchlist": "Просмотр вашего списка наблюдения",
-       "grant-viewrestrictedlogs": "СмоÑ\82Ñ\80еÑ\82Ñ\8c Ð·Ð°Ð¿Ð¸Ñ\81и Ð¶Ñ\83Ñ\80нала с ограниченным доступом",
+       "grant-viewrestrictedlogs": "пÑ\80оÑ\81моÑ\82Ñ\80 Ð·Ð°Ð¿Ð¸Ñ\81ей Ð¶Ñ\83Ñ\80налов с ограниченным доступом",
        "newuserlogpage": "Журнал регистрации участников",
        "newuserlogpagetext": "Список недавно зарегистрировавшихся участников",
        "rightslog": "Журнал прав участника",
        "cant-move-to-user-page": "У вас нет прав переименовывать страницу в страницу участника (можно переименовать в подстраницу).",
        "cant-move-category-page": "У вас нет разрешения переименовывать страницы категорий.",
        "cant-move-to-category-page": "У вас нет разрешения переименовывать страницы в страницу категории.",
-       "movepage-max-pages": "{{PLURAL:$1|Была переименована|Было переименовано|Были переименованы}} $1 {{PLURAL:$1|страница|страницы|страниц}} — это максимум; большее число страниц автоматически переименовать нельзя.",
+       "cant-move-subpages": "У вас нет разрешения переименовывать подстраницы.",
+       "namespace-nosubpages": "Пространство имён «$1» не разрешает создание страниц.",
        "newtitle": "Новое название:",
        "move-watch": "Добавить в список наблюдения исходную и целевую страницы",
        "movepagebtn": "Переименовать страницу",
        "movepage-page-exists": "Страница $1 уже существует и не может быть автоматически перезаписана.",
        "movepage-page-moved": "Страница $1 была переименована в $2.",
        "movepage-page-unmoved": "Страница $1 не может быть переименована в $2.",
+       "movepage-max-pages": "{{PLURAL:$1|Была переименована|Было переименовано|Были переименованы}} $1 {{PLURAL:$1|страница|страницы|страниц}} — это максимум; большее число страниц автоматически переименовать нельзя.",
        "movelogpage": "Журнал переименований",
        "movelogpagetext": "Ниже представлен список переименованных страниц.",
        "movesubpage": "{{PLURAL:$1|1=Подстраница|Подстраницы}}",
        "api-error-blocked": "Редактирование было для вас заблокировано.",
        "api-error-copyuploaddisabled": "Загрузка по URL-адресу отключена на этом сервере.",
        "api-error-duplicate": "Уже {{PLURAL:$1|существует другой файл|существуют другие файлы}} с таким же содержимым.",
-       "api-error-duplicate-archive": "Раньше на сайте {{PLURAL:$1|1=уже был файл|были файлы}} с точно таким же содержанием, но {{PLURAL:$1|1=он был удалён|они были удалены}}.",
+       "api-error-duplicate-archive": "Ранее на сайте {{PLURAL:$1|1уже существовал файл|существовали файлы}} с точно таким же содержанием, но {{PLURAL:$1|он был удалён|они были удалены}}.",
        "api-error-empty-file": "Отправленный вами файл пуст.",
        "api-error-emptypage": "Не допускается создание новых пустых страниц.",
        "api-error-fetchfileerror": "Внутренняя ошибка: что-то пошло не так при получении файла.",
        "api-error-missingresult": "Внутренняя ошибка: не удалось определить, успешно ли завершилось копирование.",
        "api-error-mustbeloggedin": "Вы должны представиться системе для загрузки файлов.",
        "api-error-mustbeposted": "Внутренняя ошибка: запрос требует инструкцию HTTP POST.",
-       "api-error-noimageinfo": "Загрузка завершилась успешно, но сервер не выдал никакой информации о файле.",
+       "api-error-noimageinfo": "Загрузка завершилась успешно, но сервер не вернул никакой информации о файле.",
        "api-error-nomodule": "Внутренняя ошибка: не настроен модуль загрузки.",
        "api-error-ok-but-empty": "Внутренняя ошибка: нет ответа от сервера.",
        "api-error-overwrite": "Не допускается замена существующего файла.",
        "api-error-stashnotloggedin": "Вы должны войти в систему, чтобы иметь возможность сохранить файл во временное хранилище.",
        "api-error-stashwrongowner": "Файл, который вы пытались открыть во временном хранилище, принадлежит не вам.",
        "api-error-stashnosuchfilekey": "Ключ файла, к которому вы пытались получить доступ во временном хранилище, не существует.",
-       "api-error-timeout": "СеÑ\80веÑ\80 Ð½Ðµ Ð¾Ñ\82веÑ\87аеÑ\82 Ð² Ñ\82еÑ\87ение Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ð³Ð¾ Ð²Ñ\80емени.",
+       "api-error-timeout": "СеÑ\80веÑ\80 Ð½Ðµ Ð¾Ñ\82веÑ\82ил Ð·Ð° Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ðµ Ð²Ñ\80емÑ\8f.",
        "api-error-unclassified": "Произошла неизвестная ошибка",
        "api-error-unknown-code": "Неизвестная ошибка: «$1»",
        "api-error-unknown-error": "Внутренняя ошибка: что-то пошло не так при попытке загрузить файл.",
-       "api-error-unknown-warning": "Неизвестное предупреждение: $1",
+       "api-error-unknown-warning": "Неизвестное предупреждение: «$1».",
        "api-error-unknownerror": "Неизвестная ошибка: «$1».",
        "api-error-uploaddisabled": "В этой вики отключена возможность загрузки файлов.",
        "api-error-verification-error": "Возможно, этот файл повреждён или имеет неправильное расширение.",
index 29d9c77..8ef53b8 100644 (file)
        "cant-move-to-user-page": "Эн кыттааччы аатын далыгар сирэйдэри уларытар кыаҕыҥ суох (анныкы сирэйдэриттэн ураты).",
        "cant-move-category-page": "Категория сирэйин аатын уларытар кыаҕыҥ суох эбит.",
        "cant-move-to-category-page": "Сирэй аатын уларытан категория сирэйэ гынар кыаҕыҥ суох эбит.",
-       "movepage-max-pages": "$1 {{PLURAL:$1|сирэй аата уларыйда|сирэйдэр ааттара уларыйда}} — мантан элбэх сирэйи аптамаатынан уларытар кыах суох.",
        "newtitle": "Саҥа аата:",
        "move-watch": "Кэтээн көрөргө",
        "movepagebtn": "Аатын уларыт",
        "movepage-page-exists": "$1 сирэй номнуо баар, онон аптамаатынан хос суруллар кыаҕа суох.",
        "movepage-page-moved": "$1 сирэй аата $2 буолбут.",
        "movepage-page-unmoved": "$1 сирэй $2 ааттанар кыаҕа суох.",
+       "movepage-max-pages": "$1 {{PLURAL:$1|сирэй аата уларыйда|сирэйдэр ааттара уларыйда}} — мантан элбэх сирэйи аптамаатынан уларытар кыах суох.",
        "movelogpage": "Аат уларыйыытын испииһэгэ",
        "movelogpagetext": "Манна ааттара уларытыллыбыт сирэйдэр испииһэктэрэ көстөр.",
        "movesubpage": "{{PLURAL:$1|Алын сирэй|Алын сирэйдэр}}",
        "pageinfo-length": "Сирэй устата (баайтынан)",
        "pageinfo-article-id": "Сирэй нүөмэрэ",
        "pageinfo-language": "Сирэй омугун тыла",
+       "pageinfo-language-change": "уларыт",
        "pageinfo-content-model": "Сирэй иһинээҕитин модела",
        "pageinfo-content-model-change": "уларыт",
        "pageinfo-robot-policy": "Роботтар көрдөөһүннэрин туруга",
        "logentry-tag-update-add-logentry": "$6 {{PLURAL:$7|тиэги}} $5 сурунаал $3 сирэйигэр $6  торумугар $1 {{GENDER:$2|эппит}}",
        "logentry-tag-update-remove-revision": "$1 $3 сирэй $4 торумуттан $8 {{PLURAL:$9|тиэги}} {{GENDER:$2|соппут}}",
        "logentry-tag-update-remove-logentry": "$1  $8 {{PLURAL:$9|тиэги}} $5 сурунаал $3 сирэйиттэн {{GENDER:$2|соппут}}",
+       "logentry-tag-update-revision": "$1 кыттааччы $4 сирэй $3 торумун {{GENDER:$2|саҥардан биэрдэ}} ($6 {{PLURAL:$7|эбилиннэ}}; $8 {{PLURAL:$9|сотулунна}})",
+       "logentry-tag-update-logentry": "$1 кыттааччы $3 сирэй $5 сурунаалын {{GENDER:$2|саҥардан биэрдэ}} ($6 {{PLURAL:$7|эбилиннэ}}; $8 {{PLURAL:$9|сотулунна}})",
        "rightsnone": "(суох)",
        "revdelete-summary": "уларытыылар туһунан",
        "feedback-adding": "Сирэй туһунан санаа этии...",
        "log-name-pagelang": "Тылы уларытыы сурунаала",
        "log-description-pagelang": "Сирэй тылын талыы сурунаала.",
        "logentry-pagelang-pagelang": "$1 кыттааччы $3 тылы мантан $4 манныкка $5 {{GENDER:$2|уларыппыт}}.",
+       "default-skin-not-found": "Ок-сиэ! Эн биикигэр талбатахха турар тиэмэ <code>$wgDefaultSkin</code>, <code>$1</code> сатаан турбат эбит.\n\nТуруорууҥ, арааһа {{PLURAL:$4|маннык тиэмэлээх|маннык тиэмэлэрдээх}}. Маны көр [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration], итиннэ {{PLURAL:$4|кинини|кинилэри}} хайдах туруорар туһунан суруллар.\n\n$2\n\n; Өскөтө MediaWiki-ни саҥа туруоруммут буоллаххына:\n: Баҕар, Git көмөтүнэн биитэр төрүт куод көмөтүнэн туруорбут буолуоххун сөп. Оччоҕо маннык буолуон сөп. Бу түгэҥҥэ сорох тиэмэлэри мантан туруорунан көр: [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org тимэтин каталога]:\n:* хас да тиэмэлээх [https://www.mediawiki.org/wiki/Download туруорунар билэ архыыбын] хачайдаан ылан баран; бу паапканы куопуйалыахха сөп <code>skins/</code>;\n:* биирдиилээн тиэмэ архыыбын мантан хачайдыахха сөп [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org];\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins тиэмэ хачайдыыр Git туһаныаххын сөп].\n: MediaWiki-гэ быһаарсар буоллаххына эн Git репозиторийгын бу буортулуо суохтаах. Тиэмэни холбуур уонна этиллибэтэҕинэ турар тиэмэни талар туһунан манна көр [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual:Skin configuration].\n; Өскөтө MediaWiki-ни саҥа саҥардыбыт буоллаххына:\n: MediaWiki 1.24 торума уонна онтон үөһээҥҥилэрэ аны угуллубут тиэмэлэрэ суох (көр. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]).\nБу {{PLURAL:$5|устуруоканы|устуорукалары}} бу иһигэр <code>LocalSettings.php</code> угуоххун сөп, оччоҕо туруорбут {{PLURAL:$5|тиэмэҥ|бары тиэмэҥ}} холбонуо: \n\n<pre dir=\"ltr\">$3</pre>\n\n; Өскөтө <code>LocalSettings.php</code> саҥа улурыппыт буоллаххына:\n: Тиэмэлэр ааттарын тургутан көр, баҕар алҕастааҕа буолуо.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (холбоммут)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>арахсыбыт</strong>)",
        "mediastatistics": "Миэдьийэ ыстатыыстыката",
        "authmanager-authn-no-local-user": "Маннык бэлиэ аат бу биики ханнык да кыттааччытын кытта сөп түбэспэтэ.",
        "authmanager-authn-no-local-user-link": "Эппит сибидиэнньэҥ ирдэбилгэ сөп түбэһэр гынан баран биир да кыттааччыны кытта ситимэ суох эбит. Атыннык киирэн баран урукку бэлиэ ааккын кытта ситимнээ.",
        "authmanager-authn-autocreate-failed": "Олохтоох бэлиэ ааты аптамаат сатаан оҥорбото: $1",
+       "authmanager-change-not-supported": "Бэлиэ аат сибидиэнньэтэ уларыйар кыаҕа суох, тоҕо диэтэххэ туһаныллыбат.",
        "authmanager-create-disabled": "Бэлиэтэнии арахсан турар.",
        "authmanager-create-from-login": "Бэлиэтэнэргэ аллараа хонуулары толор дуу.",
        "authmanager-create-not-in-progress": "Бэлиэтэнии сатаммата эбэтэр сиэссийэ быстан хаалла. Саҥаттан хатылаан көр.",
        "authmanager-create-no-primary": "Эппит сибидиэнньэҕин туһанан бэлиэтэнэр сатаммат эбит.",
-       "authmanager-link-no-primary": "Эппит сибидиэнньэҕин туһанан бэлиэ ааттары холбуур сатаммат эбит."
+       "authmanager-link-no-primary": "Эппит сибидиэнньэҕин туһанан бэлиэ ааттары холбуур сатаммат эбит.",
+       "authmanager-link-not-in-progress": "Бэлиэ ааттары холбуур сатаммата эбэтэр сиэссийэ быстан хаалла. Саҥаттан хатылаан көр.",
+       "authmanager-authplugin-setpass-failed-title": "Аһарыгы уларытар табыллыбата",
+       "authmanager-authplugin-setpass-failed-message": "Аутентификация былаҕыына аһарыгы уларытары бобор.",
+       "authmanager-authplugin-create-fail": "Аутентификация былаҕыына бэлиэтэнэри бобор.",
+       "authmanager-authplugin-setpass-denied": "Аутентификация былаҕыына аһарыгы уларытары бобор.",
+       "authmanager-authplugin-setpass-bad-domain": "Алҕастаах домен.",
+       "authmanager-autocreate-noperm": "Аптамаатынан бэлиэтэнии көҥүллэммэт.",
+       "authmanager-autocreate-exception": "Аптамаатынан бэлиэтэнии урут тахсыбыт алҕастартан сылтаан араарыллыбыт.",
+       "authmanager-userdoesnotexist": "Маннык аат «$1» суох.",
+       "authmanager-userlogin-remembermypassword-help": "Аһарык сиэссийэ түмүктэммитин кэннэ долоҕойго хаалар дуо.",
+       "authmanager-username-help": "Кыттааччы аата тургутарга.",
+       "authmanager-password-help": "Аһарык тургутарга",
+       "authmanager-domain-help": "Тастан тургутар дамыан.",
+       "authmanager-retype-help": "Аһарыгы хос суруй.",
+       "authmanager-email-label": "Э-почта",
+       "authmanager-email-help": "Эл. аадырыһа",
+       "authmanager-realname-label": "Дьиҥнээх аатыҥ",
+       "authmanager-realname-help": "Кыттааччы сурукка киирбит аата",
+       "authmanager-provider-password": "Аһарык көмөтүнэн киирии",
+       "authmanager-provider-password-domain": "Дамыан уонна аһарык көмөтүнэн киирии",
+       "authmanager-provider-temporarypassword": "Быстах аһарык",
+       "authprovider-confirmlink-message": "Урут киирэ сылдьыбыт бэлиэ-ааттаргын кытта ситимниэххэ сөп. Оччоҕо ол аатынан эмиэ киириэххин сөп буолуоҕа. Ханнык бэлиэ-ааттары ситимнииргин тал дуу.",
+       "authprovider-confirmlink-request-label": "Ситимнэнэр бэлиэ-ааттар",
+       "authprovider-confirmlink-success-line": "$1: ситимнэннэ.",
+       "authprovider-confirmlink-failed": "Сороҕун эрэ ситимниир сатанна: $1",
+       "authprovider-resetpass-skip-label": "Аһар",
+       "authprovider-resetpass-skip-help": "Аһарыгы хос ыытыыны көтүт.",
+       "authform-nosession-login": "Этэҥҥэ киирдиҥ, ол эрээри браузерыҥ киирбиккин «долоҕойугар тохтотуо» суоҕа.\n\n$1",
+       "authform-nosession-signup": "Этэҥҥэ бэлиэтэнниҥ, ол эрээри браузерыҥ киирбиккин «долоҕойугар тохтотуо» суоҕа.\n\n$1",
+       "specialpage-securitylevel-not-allowed-title": "Көҥүллэммэт",
+       "specialpage-securitylevel-not-allowed": "Бу сирэйи туһанар кыаҕыҥ суох эбит, тоҕо диэтэххэ бу чахчы Эн буоларгын тургутар кыахпыт суох.",
+       "authpage-cannot-login": "Киириини салгыыр кыах суох.",
+       "authpage-cannot-login-continue": "Киириини салгыыр кыах суох. Сиэссийэттэн тахсан хаалбыккын быһыылаах.",
+       "authpage-cannot-create": "Бэлиэтэнэр сатаммата.",
+       "authpage-cannot-create-continue": "Бэлиэтэнэр кыах суох. Сиэссийэттэн тахсан хаалбыккын быһыылаах.",
+       "authpage-cannot-link": "Бэлиэ-ааттары ситимниир сатаммата.",
+       "authpage-cannot-link-continue": "Ситимниир кыах суох. Сиэссийэттэн тахсан хаалбыккын быһыылаах.",
+       "cannotauth-not-allowed-title": "Киирэр көҥүллэммэт",
+       "cannotauth-not-allowed": "Бу сирэйи туһанарыҥ сатаммат эбит",
+       "credentialsform-account": "Бэлиэ-аат:",
+       "cannotlink-no-provider-title": "Бэлиэ-ааттар суохтар",
+       "cannotlink-no-provider": "Бэлиэ-ааттар суохтар.",
+       "linkaccounts": "Бэлиэ-ааттары ситимнииргэ",
+       "linkaccounts-success-text": "Бэлиэ-аат ситимнэннэ.",
+       "linkaccounts-submit": "Ситимнииргэ",
+       "unlinkaccounts": "Ситими быһарга",
+       "unlinkaccounts-success": "Бэлиэ-аат ситимэ быһынна."
 }
index f711abd..737fc46 100644 (file)
@@ -12,7 +12,8 @@
                        "Samar88",
                        "Srabony90",
                        "아라",
-                       "Shirayuki"
+                       "Shirayuki",
+                       "MtDu"
                ]
        },
        "tog-underline": "Joṛaoko latarre dag udugoḱma:",
        "navigation-heading": "Ạcurbaṛa minu",
        "errorpagetitle": "vul",
        "returnto": "$1 te ruar-rok' me",
-       "tagline": "Oka khoć",
+       "tagline": "Oka khoć {{SITENAME}}",
        "help": "Go̠ṛo̠",
        "search": "Se̠ndra",
        "searchbutton": "Se̠ndra",
        "pool-timeout": "Somoy paromena cạbi lạgit́te tạṅgi hoyoḱkana",
        "pool-queuefull": "Pul reaḱ sakam perećena",
        "pool-errorunknown": "Bań baḍayaḱ bhul",
-       "aboutsite": "babo̠tre",
+       "aboutsite": "babo̠tre {{SITENAME}}",
        "aboutpage": "Project: Babo̠t",
        "copyright": "$1 re bhitrire ńamoḱa.",
        "copyrightpage": "{{ns:project}}: Eḱteạr",
        "passwordreset-disabled": "Noa wikire amaḱ uku nambar nãwãte em lạgit subita do bando gea.",
        "passwordreset-username": "Beoharicaḱ ńutum:",
        "passwordreset-domain": "Ḍomen:",
-       "passwordreset-capture": "Sendra fol reaḱ e-mail ńelmẽ?",
-       "passwordreset-capture-help": "Am do judi noa jacạy baksom lin lekhan, tobe nit lạgit́te em akan uku nambar são mit́ṭen e-mail ame uduḱama ar ona sãote beoharić ṭhen ona kuluḱa.",
        "passwordreset-email": "E-mail ṭhikạna:",
        "passwordreset-emailtitle": "{{SITENAME}} sayeṭre beoharićaḱ purạo thutiko",
        "passwordreset-emailelement": "Beoharićaḱ ńutum: \n$1\n\nMit́ ghạṛi lạgit uku nambar: \n$2",
index 523ca38..557531f 100644 (file)
        "apisandbox-sending-request": "Pošiljanje zahteve API ...",
        "apisandbox-loading-results": "Prejemanje zahteve API ...",
        "apisandbox-results-error": "Med nalaganjem odgovora poizvedbe API je prišlo do napake: $1.",
+       "apisandbox-request-params-json": "Parametri JSON:",
        "apisandbox-request-url-label": "URL zahteve:",
        "apisandbox-request-time": "Trajanje zahteve: {{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "Popravite žeton in ponovno pošljite",
        "changecontentmodel-emptymodels-title": "Na voljo ni noben model vsebine",
        "changecontentmodel-emptymodels-text": "Vsebine na [[:$1]] ni mogoče pretvoriti v katero koli vrsto.",
        "log-name-contentmodel": "Dnevnik sprememb modela vsebine",
-       "log-description-contentmodel": "Dogodki, povezani z modeli vsebin strani",
+       "log-description-contentmodel": "Stran navaja spremembe modela vsebine strani in strani, ki so bile ustvarjene z neprivzetim modelom vsebine.",
        "logentry-contentmodel-new": "$1 je {{GENDER:$2|ustvaril|ustvarila|ustvaril(-a)}} stran $3 z neprivzetim modelom vsebine »$5«",
        "logentry-contentmodel-change": "$1 je {{GENDER:$2|spremenil|spremenila|spremenil(-a)}} model vsebine strani $3 z »$4« na »$5«",
        "logentry-contentmodel-change-revertlink": "vrni",
        "cant-move-to-user-page": "Nimate dovoljenja, da premikate strani na uporabniške strani (razen na uporabniške podstrani).",
        "cant-move-category-page": "Nimate pravic za prestavljanje strani kategorij.",
        "cant-move-to-category-page": "Nimate pravic za prestavljanje strani na stran kategorije.",
-       "movepage-max-pages": "{{PLURAL:$1|Premaknjena je bila največ $1 stran|Premaknjeni sta bili največ $1 strani|Premaknjene so bile največ $1 strani|Premaknjenih je bilo največ $1 strani}} in nobena več ne bo samodejno premaknjena.",
+       "cant-move-subpages": "Za prestavljanje podstrani nimate dovoljenja.",
+       "namespace-nosubpages": "Imenski prostor »$1« ne dovoljuje podstrani.",
        "newtitle": "Nov naslov:",
        "move-watch": "Opazuj to stran",
        "movepagebtn": "Prestavi stran",
        "movepage-page-exists": "Stran $1 že obstaja in je ni mogoče samodejno prepisati.",
        "movepage-page-moved": "Stran $1 je bila prestavljena na $2.",
        "movepage-page-unmoved": "Strani $1 ni bilo mogoče prestaviti na $2.",
+       "movepage-max-pages": "{{PLURAL:$1|Premaknjena je bila največ $1 stran|Premaknjeni sta bili največ $1 strani|Premaknjene so bile največ $1 strani|Premaknjenih je bilo največ $1 strani}} in nobena več ne bo samodejno premaknjena.",
        "movelogpage": "Dnevnik prestavljanja strani",
        "movelogpagetext": "Prikazujem seznam prestavljenih strani.",
        "movesubpage": "{{PLURAL:$1|Podstran|Podstrani}}",
        "api-error-unclassified": "Prišlo je do neznane napake",
        "api-error-unknown-code": "Neznana napaka: »$1«",
        "api-error-unknown-error": "Notranja napaka: pri poskusu nalaganja vaše datoteke je nekaj šlo narobe.",
-       "api-error-unknown-warning": "Neznano opozorilo: $1",
+       "api-error-unknown-warning": "Neznano opozorilo: »$1«.",
        "api-error-unknownerror": "Neznana napaka: »$1«.",
        "api-error-uploaddisabled": "Nalaganje je onemogočeno na tem wikiju.",
        "api-error-verification-error": "Ta datoteka je morda poškodovana ali ima napačno končnico.",
        "sessionprovider-nocookies": "Piškotki so morda onemogočeni. Prepričaje se, da imate piškotke omogočene, in začnite znova.",
        "randomrootpage": "Naključna korenska stran",
        "log-action-filter-block": "Vrsta blokade:",
-       "log-action-filter-contentmodel": "Vrsta spremembe modelastrani:",
+       "log-action-filter-contentmodel": "Vrsta spremembe modela vsebine:",
        "log-action-filter-delete": "Vrsta izbrisa:",
        "log-action-filter-import": "Vrsta uvoza:",
        "log-action-filter-managetags": "Vrsta dejanja upravljanja oznak:",
        "log-action-filter-block-block": "Blokada",
        "log-action-filter-block-reblock": "Sprememba blokade",
        "log-action-filter-block-unblock": "Odstranitev blokade",
-       "log-action-filter-contentmodel-change": "Sprememba Modelastrani",
-       "log-action-filter-contentmodel-new": "Ustvarjanje strani z nestandardnim Modelomstrani",
+       "log-action-filter-contentmodel-change": "Sprememba modela vsebine",
+       "log-action-filter-contentmodel-new": "Ustvarjanje strani z neprivzetim modelom vsebine",
        "log-action-filter-delete-delete": "Izbris strani",
        "log-action-filter-delete-delete_redir": "Prepis preusmeritve",
        "log-action-filter-delete-restore": "Obnovitev strani",
index 3f3c720..bc98608 100644 (file)
        "tog-showtoolbar": "Shfaq shiritin e veglave të redaktorit",
        "tog-editondblclick": "Redakto faqe në klikim të dyfishtë",
        "tog-editsectiononrightclick": "Aktivizo redaktimin e seksioneve duke klikuar me të djathtën mbi titullin e seksionit",
-       "tog-watchcreations": "Shtoi faqet e krijuara dhe skedat e ngarkuara prej meje tek lista e faqeve nën mbikqyrje",
+       "tog-watchcreations": "Shto faqet e krijuara dhe skedat e ngarkuara prej meje tek lista e faqeve nën mbikqyrje",
        "tog-watchdefault": "Shto faqet dhe skedat e redaktuara prej meje tek lista e faqeve nën mbikqyrje",
        "tog-watchmoves": "Shto faqet dhe skedat e zhvendosura prej meje tek lista e faqeve nën mbikqyrje",
-       "tog-watchdeletion": "Shto faqet dhe skedat e grisura prej meje tek lista e faqeve  nën mbikqyrje",
+       "tog-watchdeletion": "Shto faqet dhe skedat e grisura prej meje tek lista e faqeve nën mbikqyrje",
        "tog-watchuploads": "Shtoni fotografitë e rreja që ngarkoj në listën mbikëqyrëse",
        "tog-watchrollback": "Shto faqet ku unë kam kryer një rikthim tek lista ime mbikqyrëse",
        "tog-minordefault": "Shëno të gjitha redaktimet si të vogla automatikisht",
-       "tog-previewontop": "Trego se si do të duket faqja mbi kutinë redaktimit",
-       "tog-previewonfirst": "Trego se si do të duket faqja posa ta filloj redaktimin",
-       "tog-enotifwatchlistpages": "Më njofto me email kur ndryshohet një faqe apo skedë nga lista ime e faqeve nën vëzhgim",
+       "tog-previewontop": "Trego parapamjen para kutisë së redaktimit",
+       "tog-previewonfirst": "Trego parapamjen në redaktimin e parë",
+       "tog-enotifwatchlistpages": "Më njofto me email kur ndryshohet një faqe apo skedë nga lista ime mbikëqyrëse",
        "tog-enotifusertalkpages": "Më dërgo email kur ndryshohet faqja ime e diskutimeve",
        "tog-enotifminoredits": "Më njofto me email edhe kur ka redaktime të vogla të faqeve dhe skedave",
        "tog-enotifrevealaddr": "Trego adresën time të emailit në emailet njoftuese",
        "tog-shownumberswatching": "Trego numrin e përdoruesve që vëzhgojnë këtë faqe",
        "tog-oldsig": "Nënshkrimi juaj ekzistues:",
        "tog-fancysig": "Mbaje nënshkrimin si wikitekst (pa lidhje automatike)",
-       "tog-uselivepreview": "Trego parapamjen drejtpërdrejt",
+       "tog-uselivepreview": "Përdor parapamjen e drejtpërdrejtë",
        "tog-forceeditsummary": "Më njofto kur përmbledhjen e redaktimit e lë bosh",
        "tog-watchlisthideown": "Fshih redaktimet e mia nga lista e faqeve të vëzhguara",
        "tog-watchlisthidebots": "Fshih redaktimet e robotëve nga lista e faqeve të vëzhguara",
        "talk": "Diskutimet",
        "views": "Shikime",
        "toolbox": "Mjete",
+       "tool-link-emailuser": "Dërgo email {{GENDER:$1|user}}",
        "userpage": "Shfaq faqen e përdoruesit",
        "projectpage": "Shfaq faqen e projektit",
        "imagepage": "Shfaq faqen e skedës",
index de2dd13..1a387b2 100644 (file)
        "cant-move-to-user-page": "Du har inte behörighet att flytta en sida till en användarsida (förutom till en användarundersida).",
        "cant-move-category-page": "Du har inte behörighet att flytta kategorisidor.",
        "cant-move-to-category-page": "Du har inte behörighet att flytta en sida till en kategorisida.",
-       "movepage-max-pages": "Gränsen på $1 {{PLURAL:$1|flyttad sida|flyttade sidor}} har uppnåtts och inga fler sidor kommer att flyttas automatiskt.",
+       "cant-move-subpages": "Du har inte behörighet att flytta undersidor.",
+       "namespace-nosubpages": "Namnrymden \"$1\" tillåter inte undersidor.",
        "newtitle": "Ny titel:",
        "move-watch": "Bevaka denna sida",
        "movepagebtn": "Flytta sidan",
        "movepage-page-exists": "Sidan $1 finns redan och kan inte skrivas över automatiskt.",
        "movepage-page-moved": "Sidan $1 har flyttats till $2.",
        "movepage-page-unmoved": "Sidan $1 kunde inte flyttas till $2.",
+       "movepage-max-pages": "Gränsen på $1 {{PLURAL:$1|flyttad sida|flyttade sidor}} har uppnåtts och inga fler sidor kommer att flyttas automatiskt.",
        "movelogpage": "Flyttlogg",
        "movelogpagetext": "Listan nedan visar sidor som flyttats.",
        "movesubpage": "{{PLURAL:$1|Undersida|Undersidor}}",
index d8dbec6..8d17d4d 100644 (file)
        "editusergroup": "{{GENDER:$1|பயனர்}} குழுக்களை தொகு",
        "editinguser": "பயனர் {{GENDER:$1|பயனர்}} <strong>[[User:$1|$1]]</strong> $2  பயனருக்கான அனுமதிகளை மாற்றல்",
        "userrights-editusergroup": "பயனர் குழுக்களை தொகு",
+       "userrights-viewusergroup": "பயனர் குழுக்களைப் பார்வையிடுக",
        "saveusergroups": "{{GENDER:$1|பயனர்}} குழுக்களை சேமி",
        "userrights-groupsmember": "உறுப்பினர்:",
        "userrights-groupsmember-auto": "தானகவே உடன்வரும் உறுப்பினர்:\n\nகூடவே வரும் உறுப்பினர்:",
        "action-upload_by_url": "இக்கோப்பை ஓர் உரலியிலிருந்துப் பதிவேற்றவும்",
        "action-writeapi": "எழுது API பயன்படுத்தவும்",
        "action-delete": "இந்தப் பக்கத்தை நீக்கவும்",
-       "action-deleterevision": "à®\87நà¯\8dத à®®à®¾à®±à¯\8dறதà¯\8dதை நீக்கவும்",
-       "action-deletedhistory": "à®\87பà¯\8dபà®\95à¯\8dà®\95தà¯\8dதà¯\88 à®\95à®\9fà¯\88à®\9aியாà®\95 à®¨à¯\80à®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9f à®µà®°à®²à®¾à®±à¯\81 à®\95ாணà¯\8d",
+       "action-deleterevision": "மாறà¯\8dà®±à®\99à¯\8dà®\95ளை நீக்கவும்",
+       "action-deletedhistory": "à®\92à®°à¯\81 à®ªà®\95à¯\8dà®\95தà¯\8dதினà¯\8d à®¨à¯\80à®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9f à®µà®°à®²à®¾à®±à¯\81 à®\95ாணà¯\8dà®\95",
        "action-browsearchive": "அழிக்கப்பட்ட பக்கங்களைத் தேடு",
        "action-undelete": "அழித்த பக்கத்தை மறுபடியும் கொண்டு வா",
-       "action-suppressrevision": "à®\87நà¯\8dத à®®à®±à¯\88à®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9f à®ªà®°à®¿à®\9aà¯\80லனà¯\88யà¯\88 à®\86யà¯\8dவà¯\81à®\9aà¯\86யà¯\8d à®®à®±à¯\8dà®±à¯\81à®®à¯\8d  மீட்டெடு",
+       "action-suppressrevision": "மறà¯\88à®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9f à®®à¯\80ளாயà¯\8dவà¯\81à®\95ளà¯\88 à®\86யà¯\8dவà¯\81à®\9aà¯\86யà¯\8d à®®à®±à¯\8dà®±à¯\81à®®à¯\8d மீட்டெடு",
        "action-suppressionlog": "இத்தனிப் பதிகையைக் காணவும்",
        "action-block": "இப்பயனரை மேலும் தொகுக்க அனுமதிக்க வேண்டாம்",
        "action-protect": "இந்த பக்கத்திற்கான பாதுகாப்பு நிலைகளை மாற்றவும்",
        "rc-old-title": "முதலில் \"$1\" என உருவாக்கப்பட்டது",
        "recentchangeslinked": "தொடர்பான மாற்றங்கள்",
        "recentchangeslinked-feed": "தொடர்பான மாற்றங்கள்",
-       "recentchangeslinked-toolbox": "à®\87பà¯\8dபà®\95à¯\8dà®\95à®®à¯\8d à®¤à¯\8aà®\9fà®°à¯\8dபான à®®à®¾à®±à¯\8dà®±à®\99à¯\8dà®\95ளà¯\8d",
+       "recentchangeslinked-toolbox": "தொடர்பான மாற்றங்கள்",
        "recentchangeslinked-title": "\"$1\" பக்கத்துடன் தொடர்புடைய மாற்றங்கள்",
        "recentchangeslinked-summary": "இந்த சிறப்புப் பக்கம் அண்மைய மாற்றங்களுக்குச் சென்று இந்தக் கட்டுரைக்கான மாற்றங்களைத் தேடுவதைத் தவிர்த்து, இந்தக் கட்டுரையுடன் தொடர்புடைய (அல்லது சிறப்புப் பட்டியலிலுள்ள அங்கத்தவர்களுக்கு) அண்மைய மாற்றங்களை மட்டும் பட்டியலிடுகிறது.இங்கு [[Special:Watchlist|உங்கள் கவனிப்புப் பட்டியலில்]] உள்ள பக்கங்கள் தடித்த எழுத்துக்களில் உள்ளன என்பதைக் கவனத்தில் கொள்ளவும்.",
        "recentchangeslinked-page": "பக்கப் பெயர்:",
        "cant-move-to-user-page": "ஒரு பக்கத்திலிருந்து பயனர் பக்கத்திற்கு நகர்த்த உங்களுக்கு அனுமதி இல்லை (பயனர் துணைபக்கம் தவிர).",
        "cant-move-category-page": "பகுப்பு பக்கங்களை நகர்த்த உங்களுக்கு அனுமதி இல்லை.",
        "cant-move-to-category-page": "ஒரு பக்கத்தை பகுப்பு பக்கங்களுக்கு நகர்த்த உங்களுக்கு அனுமதி இல்லை.",
-       "movepage-max-pages": "அதிகபட்சமாக  $1   {{PLURAL:$1| பக்கம் |பக்கங்கள்}} நகர்த்தப்பட்டது, இதற்கு மேலும் தானாக நகர்த்தப்படாது.",
        "newtitle": "புதிய தலைப்பு",
        "move-watch": "இப்பக்கத்தைக் கவனி",
        "movepagebtn": "பக்கத்தை நகர்த்து",
        "movepage-page-exists": "பக்கம் $1 ஏற்கனவே  உள்ளது, மற்றும் தானாகவே மேலெழுத இயலாது.",
        "movepage-page-moved": "பக்கம் $1, $2 இற்கு நகர்த்தப்பட்டுள்ளது.",
        "movepage-page-unmoved": "பக்கம் $1 ஐ $2க்கு நகர்த்த இயலாது.",
+       "movepage-max-pages": "அதிகபட்சமாக  $1   {{PLURAL:$1| பக்கம் |பக்கங்கள்}} நகர்த்தப்பட்டது, இதற்கு மேலும் தானாக நகர்த்தப்படாது.",
        "movelogpage": "நகர்த்தல் பதிகை",
        "movelogpagetext": "நகர்த்தப்பட்டப் பக்கங்களின் பட்டியல் கீழே தரப்பட்டுள்ளது.",
        "movesubpage": "{{PLURAL:$1|துணைப்பக்கம்|துணைப்பக்கங்கள்}}",
        "pageinfo-length": "பக்க நீளம் (எண்ணுண்மிகளில்)",
        "pageinfo-article-id": "பக்க அடையாள இலக்கம்",
        "pageinfo-language": "பக்க உள்ளடக்க மொழி",
+       "pageinfo-language-change": "மாற்று",
        "pageinfo-content-model": "பக்கள உள்ளடக்க மாதிரி",
        "pageinfo-content-model-change": "மாற்று",
        "pageinfo-robot-policy": "தானியங்கி மூலம் அட்டவணைப்படுத்தல்",
index f45a897..78e42c4 100644 (file)
        "action-writeapi": "వ్రాసే APIని ఉపయోగించే",
        "action-delete": "ఈ పేజీని తొలగించే",
        "action-deleterevision": "ఈ కూర్పుని తొలగించే",
-       "action-deletedhistory": "ఈ పేజీ యొక్క తొలగించిన చరిత్రని చూసే",
+       "action-deletelogentry": "చిట్టా పద్దులను తొలగించే",
+       "action-deletedhistory": "పేజీల తొలగించిన చరిత్రని చూసే",
+       "action-deletedtext": "తొలగించిన కూర్పుల పాఠ్యాన్ని చూసే",
        "action-browsearchive": "తొలగించిన పేజీలలో వెతికే",
-       "action-undelete": "à°\88 à°ªà±\87à°\9cà±\80ని పునఃస్థాపించే",
+       "action-undelete": "à°ªà±\87à°\9cà±\80లనà±\81 పునఃస్థాపించే",
        "action-suppressrevision": "ఈ దాచిన కూర్పుని సమీక్షించి పునఃస్థాపించే",
        "action-suppressionlog": "ఈ అంతరంగిక చిట్టాను చూసే",
        "action-block": "ఈ వాడుకరిని మార్పులు చేయడం నుండి నిరోధించే",
        "action-userrights-interwiki": "ఇతర వికీలలో వాడుకరుల యొక్క హక్కులను మార్చే",
        "action-siteadmin": "డాటాబేసుకి తాళం వేసే లేదా తీసే",
        "action-sendemail": "ఈమెయిళ్ళు పంపించే",
+       "action-editmyoptions": "మీ అభిరుచులను మార్చుకునే",
        "action-editmywatchlist": "మీ వీక్షణ జాబితాను సరిదిద్దండి",
        "action-viewmywatchlist": "మీ వీక్షణ జాబితాను చూడండి",
        "action-viewmyprivateinfo": "మీ గోపనీయ సమాచారాన్ని చూడండి",
        "log-title-wildcard": "ఈ పాఠ్యంతో మొదలయ్యే పుస్తకాల కొరకు వెతుకు",
        "showhideselectedlogentries": "ఎంచుకున్న చిట్టా పద్దులను చూపించు/దాచు",
        "log-edit-tags": "ఎంచుకున్న చిట్టా ప్రవేశాల ట్యాగులను సవరించు",
+       "checkbox-select": "ఎంచుకోండి: $1",
        "checkbox-all": "అన్నీ",
        "checkbox-none": "దేన్నీ వద్దు",
        "checkbox-invert": "తిరగవెయ్యి",
        "rollback-success": "$1 చేసిన దిద్దుబాట్లను వెనక్కు తీసుకెళ్ళాం; తిరిగి $2 చేసిన చివరి కూర్పుకు మార్చాం.",
        "sessionfailure-title": "సెషను వైఫల్యం",
        "sessionfailure": "మీ ప్రవేశపు సెషనుతో ఏదో సమస్య ఉన్నట్లుంది;\nసెషను హైజాకు కాకుండా ఈ చర్యను రద్దు చేసాం.\n\"back\" కొట్టి, ఎక్కడి నుండి వచ్చారో ఆ పేజీని మళ్ళీ లోడు చేసి, తిరిగి ప్రయత్నించండి.",
+       "changecontentmodel-title-label": "పేజీ శీర్షిక",
        "changecontentmodel-reason-label": "కారణం:",
        "changecontentmodel-submit": "మార్చు",
        "protectlogpage": "సంరక్షణల చిట్టా",
        "sp-contributions-username": "ఐపీ చిరునామా లేదా వాడుకరిపేరు:",
        "sp-contributions-toponly": "చిట్టచివరి కూర్పులను మాత్రమే చూపించు",
        "sp-contributions-newonly": "పేజీని సృష్టించిన మార్పులను మాత్రమే చూపించు",
+       "sp-contributions-hideminor": "చిన్న మార్పులను దాచు",
        "sp-contributions-submit": "వెతుకు",
        "whatlinkshere": "ఇక్కడికి లింకైనవి",
        "whatlinkshere-title": "\"$1\"కి లింకున్న పుటలు",
        "ipb-unblock": "వాడుకరి పేరుపై లేదా ఐపీ చిరునామాపై ఉన్న నిరోధాన్ని తొలగించండి",
        "ipb-blocklist": "అమల్లో ఉన్న నిరోధాలను చూపించు",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} మార్పులు-చేర్పులు",
+       "ipb-blocklist-duration-left": "$1 మిగిలివున్నాయి",
        "unblockip": "సభ్యునిపై నిరోధాన్ని తొలగించు",
        "unblockiptext": "కింది ఫారం ఉపయోగించి, నిరోధించబడిన ఐ.పీ. చిరునామా లేదా సభ్యునికి తిరిగి రచనలు చేసే అధికారం ఇవ్వవచ్చు.",
        "ipusubmit": "ఈ నిరోధాన్ని తొలగించు",
index 828d477..ad5535e 100644 (file)
        "cant-move-to-user-page": "คุณไม่มีสิทธิย้ายหน้าใด ๆ ไปเป็นหน้าผู้ใช้ (ยกเว้นหน้าย่อยของผู้ใช้)",
        "cant-move-category-page": "คุณไม่มีสิทธิย้ายหน้าหมวดหมู่",
        "cant-move-to-category-page": "คุณไม่มีสิทธิย้ายหน้าไปหน้าหมวดหมู่",
-       "movepage-max-pages": "เปลี่ยนชื่อหน้ามากสุด $1 หน้าแล้วและจะไม่เปลี่ยนชื่อหน้าเพิ่มอีกอัตโนมัติ",
        "newtitle": "ชื่อเรื่องใหม่:",
        "move-watch": "เฝ้าดูหน้าต้นทางและหน้าปลายทาง",
        "movepagebtn": "เปลี่ยนชื่อ",
        "movepage-page-exists": "มีหน้า $1 อยู่แล้วและไม่สามารถบันทึกทับอัตโนมัติ",
        "movepage-page-moved": "เปลี่ยนชื่อหน้า $1 เป็น $2 แล้ว",
        "movepage-page-unmoved": "ไม่สามารถเปลี่ยนชื่อหน้า $1 เป็น $2",
+       "movepage-max-pages": "เปลี่ยนชื่อหน้ามากสุด $1 หน้าแล้วและจะไม่เปลี่ยนชื่อหน้าเพิ่มอีกอัตโนมัติ",
        "movelogpage": "ปูมการเปลี่ยนชื่อ",
        "movelogpagetext": "ด้านล่างเป็นรายการการเปลี่ยนชื่อทั้งหมด",
        "movesubpage": "{{PLURAL:$1|หน้าย่อย|หน้าย่อย}}",
index 04b922e..f47f0f3 100644 (file)
        "modifiedarticleprotection": "\"[[$1]]\" için koruma düzeyi değiştirildi",
        "unprotectedarticle": "koruma kaldırıldı: \"[[$1]]\"",
        "movedarticleprotection": "koruma ayarları \"[[$2]]\" sayfasından \"[[$1]]\" sayfasına taşındı",
+       "modifiedarticleprotection-comment": "\"[[$1]]\" için {{GENDER:$2|koruma düzeyini değiştirdi}}",
        "protect-title": "\"$1\" için bir koruma seviyesi seçiniz",
        "protect-title-notallowed": "\"$1\" için koruma seviyesini görüntüleyin",
        "prot_1movedto2": "[[$1]] sayfasının yeni adı: [[$2]]",
        "cant-move-to-user-page": "Bir sayfayı, bir kullanıcı sayfasına taşımaya izniniz yok (bir kullanıcı altsayfası dışında).",
        "cant-move-category-page": "Kategori sayfalarını taşıma yetkiniz yok.",
        "cant-move-to-category-page": "Bir sayfayı, bir kategoriye taşımaya izniniz yok.",
-       "movepage-max-pages": "En fazla $1 {{PLURAL:$1|sayfa|sayfa}} taşındı ve daha fazlası otomatik olarak taşınamaz.",
        "newtitle": "Yeni başlık:",
        "move-watch": "Bu sayfayı izle",
        "movepagebtn": "İsmi değiştir",
        "movepage-page-exists": "$1 maddesi zaten var olmaktadır, ve otomatikman yeniden yazılamaz.",
        "movepage-page-moved": "$1 sayfası $2 sayfasına taşındı.",
        "movepage-page-unmoved": "$1 sayfası $2 başlığına taşınamıyor.",
+       "movepage-max-pages": "En fazla $1 {{PLURAL:$1|sayfa|sayfa}} taşındı ve daha fazlası otomatik olarak taşınamaz.",
        "movelogpage": "Taşıma kaydı",
        "movelogpagetext": "Aşağıda bulunan liste adı değiştirilmiş sayfaları gösterir.",
        "movesubpage": "{{PLURAL:$1|Alt sayfa|Alt sayfalar}}",
index 6bac24f..ad6ac64 100644 (file)
        "filename-prefix-blacklist": " #<!-- ничек бар шулай калдырыгыз --> <pre>\n# Синтаксис төбәндәгечә:\n#   *  «#» дип башланган барлык нәрсә дә комментарий дип аталачак\n#   * Һәрбер буш рәт — файлның исеменең префиксы, цифрлы камера бирүче исем\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # кайсыбер кәрәзле телефоннар\nIMG # барлык\nJD # Jenoptik\nMGP # Pentax\nPICT # төрле\n #</pre> <!-- ничек бар шулай калдырыгыз -->",
        "upload-dialog-title": "Файл йөкләү",
        "upload-dialog-button-cancel": "Баш тарту",
+       "upload-dialog-button-back": "Артка",
        "upload-dialog-button-done": "Әзер",
        "upload-dialog-button-save": "Саклау",
        "upload-dialog-button-upload": "Йөкләү",
        "suppress": "Яшерү",
        "apihelp": "API ярдәм",
        "apihelp-no-such-module": "«$1» модуле табылмады.",
+       "apisandbox": "API комлыгы",
+       "apisandbox-unfullscreen": "Битне күрсәтү",
        "apisandbox-reset": "Чистарту",
        "apisandbox-retry": "Кабатлау",
        "apisandbox-examples": "Мисаллар",
        "apisandbox-dynamic-parameters": "Өстәмә параметрлар",
        "apisandbox-results": "Нәтиҗәләр",
+       "apisandbox-continue": "Дәвам итү",
+       "apisandbox-continue-clear": "Чистарту",
        "booksources": "Китап чыганаклары",
        "booksources-search-legend": "Китап чыганакларыны эзләү",
        "booksources-search": "Эзләү",
        "pageinfo-length": "Бит озынлыгы (байтларда)",
        "pageinfo-article-id": "Бит идентификаторы",
        "pageinfo-language": "Битнең теле",
+       "pageinfo-language-change": "үзгәртү",
        "pageinfo-content-model-change": "үзгәртү",
        "pageinfo-robot-index": "Рөхсәт",
        "pageinfo-robot-noindex": "Рөхсәтсез",
        "pageinfo-edits": "Гомуми төзәтүләр саны",
        "pageinfo-authors": "Гомуми авторлар саны",
        "pageinfo-toolboxlink": "Бит турында мәгълүмат",
+       "pageinfo-redirectsto": "Юнәлтү",
        "pageinfo-redirectsto-info": "мәгълүмат",
        "pageinfo-contentpage-yes": "Әйе",
        "pageinfo-protect-cascading-yes": "Әйе",
        "patrol-log-page": "Тикшерү көндәлеге",
        "patrol-log-header": "Бу тикшерелгән битләрнең көндәлеге.",
        "log-show-hide-patrol": "$1 тикшерү көндәлеге",
+       "confirm-markpatrolled-button": "Ярый",
        "deletedrevision": "$1 битенең иске юрамасы бетерелде",
        "filedeleteerror-short": "Файлны бетерү хатасы: $1",
        "filedeleteerror-long": "Файлны бетерү вакытында хаталар чыкты:\n\n$1",
        "exif-meteringmode-1": "Уртача",
        "exif-meteringmode-3": "Нокталы",
        "exif-meteringmode-4": "Мультинокталы",
+       "exif-meteringmode-5": "Паттернлы",
+       "exif-meteringmode-6": "Өлешләтә",
        "exif-meteringmode-255": "Башка",
        "exif-lightsource-0": "Билгесез",
        "exif-lightsource-4": "Яктылык",
        "exif-dc-type": "Медиа төре",
        "exif-rating-rejected": "Кире кагылды",
        "exif-isospeedratings-overflow": "65535-тән күп",
+       "exif-iimcategory-hth": "Сәламәтлек",
+       "exif-iimcategory-lab": "Хезмәт",
+       "exif-iimcategory-wea": "Һава тырышы",
+       "exif-urgency-normal": "Гадәти ($1)",
+       "exif-urgency-low": "Түбән ($1)",
+       "exif-urgency-high": "Югары ($1)",
        "namespacesall": "барлык",
        "monthsall": "барлык",
        "recreate": "Яңадан ясау",
        "autoredircomment": "[[$1]] битенә юнәлтү",
        "autosumm-new": "Яңа бит: «$1»",
        "watchlistedit-raw-titles": "Язмалар:",
+       "watchlistedit-clear-titles": "Башлык:",
        "watchlisttools-clear": "Күзәтү исемлеген чистарту",
        "watchlisttools-view": "Соңгы үзгәртүләрне күрсәтү",
        "watchlisttools-edit": "Күзәтү исемлегене карау һәм үзгәртү",
        "version-libraries-license": "Лицензия",
        "version-libraries-description": "Тасвирлама",
        "version-libraries-authors": "Авторлар",
+       "redirect-submit": "Күчү",
        "fileduplicatesearch": "Бер үк файлларны эзләү",
        "fileduplicatesearch-submit": "Эзләү",
        "specialpages": "Махсус битләр",
        "tags-source-header": "Чыганак",
        "tags-active-yes": "Әйе",
        "tags-active-no": "Юк",
+       "tags-source-extension": "Тәэминат тарафыннан билгеләнә",
        "tags-edit": "үзгәртү",
+       "tags-delete": "бетерү",
+       "tags-activate": "активлаштыру",
+       "tags-deactivate": "сүндерү",
+       "tags-create-submit": "Төзү",
        "comparepages": "Битләрне чагыштыру",
        "compare-page1": "Беренче сәхифә",
        "compare-page2": "Икенче сәхифә",
        "htmlform-no": "Юк",
        "htmlform-yes": "Әйе",
        "htmlform-cloner-delete": "Бетерү",
+       "htmlform-date-placeholder": "ЕЕЕЕ-АА-КК",
+       "htmlform-time-placeholder": "СС:ММ:СС",
+       "htmlform-datetime-placeholder": "ЕЕЕЕ-АА-КК СС:ММ:СС",
        "logentry-delete-delete": "$1 $3 битен {{GENDER:$2|бетерә}}",
        "revdelete-content-hid": "эчтәлек яшерелгән",
        "revdelete-summary-hid": "төзәтмәнең тасвирламасы яшерелгән",
        "api-error-badaccess-groups": "Сезгә бу викигә файллар өстәү рөхсәт ителмәгән",
        "api-error-badtoken": "Эчке хата: дөрес булмаган токен.",
        "api-error-copyuploaddisabled": "URL-адрес буенча йөкләү бу серверда сүндерелгән.",
-       "api-error-duplicate": "Мондый эчтәлекле {{PLURAL:$1|башка файл}} да бар.",
-       "api-error-duplicate-archive": "Элек сайтта мондый эчтәлекле {{PLURAL:$1|башка файл}} бар иде инде, ләкин {{PLURAL:$1|1=аны бетерделәр|аларны бетерделәр}}.",
+       "api-error-duplicate": "Мондый эчтәлекле {{PLURAL:$1|башка файл|башка файллар}} да бар.",
+       "api-error-duplicate-archive": "Элек сайтта мондый эчтәлекле {{PLURAL:$1|башка файл|башка файллар}} бар иде инде, ләкин {{PLURAL:$1|1=аны бетерделәр|аларны бетерделәр}}.",
        "api-error-empty-file": "Сезнең тарафтан җибәрелгән файл буш.",
        "api-error-emptypage": "Яңа буш сәхифәләр төзү рөхсәт ителми",
        "api-error-unknown-code": "Билгесез хата: \"$1\"",
        "api-error-unknown-error": "Эчке хата: файлны йөкләргә тырышканда нәрсәдер ялгыш китте.",
-       "api-error-unknown-warning": "Билгесез кисәтү: $1",
+       "api-error-unknown-warning": "Билгесез кисәтү: \"$1\".",
        "api-error-unknownerror": "Билгесез хата: \"$1\".",
        "api-error-uploaddisabled": "Бу викидә файллар йөкләү мөмкинлеге сүндерелгән.",
        "api-error-verification-error": "Бәлки, бу файл бозылгандыр яки дөрес түгел киңәйтелмәгә ия.",
        "special-characters-group-devanagari": "Деванагари",
        "special-characters-group-thai": "Тай",
        "special-characters-group-lao": "Лаос",
-       "special-characters-group-khmer": "Кһмер"
+       "special-characters-group-khmer": "Кһмер",
+       "log-action-filter-all": "Барысы",
+       "log-action-filter-block-block": "Тыю",
+       "authmanager-email-label": "Электрон почта",
+       "authmanager-email-help": "Электрон почта адресы",
+       "authmanager-realname-label": "Чын исеме",
+       "authprovider-resetpass-skip-label": "Калдыру"
 }
index 3aafd5e..cb87aa9 100644 (file)
        "badtitle": "Умойтэм ним",
        "badtitletext": "Курем бам ним луэ мыдлань, буш либо кылъёс куспын яке викиос куспын нимыз умойтэм герӟамын.\nНимын, вылды, ярантэм символъёс вань.",
        "viewsource": "Кодзэ учкыны",
-       "viewsource-title": "Кодзэ учкыны бам $1",
-       "actionthrottled": "Ð\9aекаÑ\82Ñ\8bнÑ\8b Ñ\83жÑ\8aÑ\91Ñ\81",
-       "actionthrottledtext": "УжÑ\80адлÑ\8dн Ó\9fеÑ\87лÑ\8bкез Ð·Ð»Ð¾Ñ\83поÑ\82Ñ\80ебление-нÑ\8eÑ\80Ñ\8aÑ\8fÑ\81Ñ\8cкон, Ñ\82а Ñ\83жÑ\80ад Ñ\82Ó¥ Ð¿Ð¾Ð½Ð½Ð° Ñ\83кÑ\8bÑ\80 Ñ\82Ñ\80оÑ\81 Ð¿Ð¾Ð»Ð»Ñ\8b Ñ\81Ñ\8eбегамÑ\8bн Ð±Ñ\8bдÑ\8dÑ\81Ñ\82он Ð²Ð°ÐºÑ\87и Ð´Ñ\8bÑ\80 ÐºÑ\83Ñ\81Ñ\8bпÑ\8aÑ\91Ñ\81, Ð»Ð¸Ð¼Ð¸Ñ\82Ñ\8aÑ\91Ñ\81, Ñ\82а Ñ\82ӥлÑ\8fд Ð½Ð¾ Ñ\82Ñ\83бе.\nÐ\9fожалÑ\83йÑ\81Ñ\82а, ÐºÓ§Ð½Ñ\8f ÐºÐµ Ð¼Ð¸Ð½Ñ\83Ñ\82 Ð¾Ñ\80Ñ\82Ñ\87Ñ\8bÑ\81а, Ð½Ð¾Ñ\88 Ð¸Ðº Ñ\83Ñ\82Ñ\87аÑ\81Ñ\8cко.",
-       "protectedpagetext": "Та бамез утьыны луэ шуыса, яке мукет уже предотвращать редактировать карон.",
-       "viewsourcetext": "Та бамез учкыны быгатӥськоды тӥ но потон кӧчыро.",
-       "viewyourtext": "Ð\9eÑ\88меÑ\81 Ð½Ð¾, Ñ\82онÑ\8d Ñ\83Ñ\87кÑ\8bнÑ\8b Ð±Ñ\8bгаÑ\82Ó¥Ñ\81Ñ\8cкодÑ\8b ÐºÓ§Ñ\87Ñ\8bÑ\80Ñ\8bнÑ\8b <strong>Ñ\82он Ñ\88онеÑ\80Ñ\82он</strong> Ñ\82а Ð±Ð°Ð¼Ð°Ð¼.",
-       "protectedinterface": "Та текст бам вайытиськом, та программаын вики интерфейсъёс, но дурбасьтэ, мед злоупотребление предотвращать.\nВика ватсаса, ваньзэ воштыны яке берыктон понна, пожалуйста, [https://translatewiki.net/ translatewiki.net] MediaWiki локализация проект.",
+       "viewsource-title": "$1 бамлэсь кодзэ учкон",
+       "actionthrottled": "Уж Ð´Ñ\83гдÑ\8bÑ\82Ñ\8dмÑ\8bн",
+       "actionthrottledtext": "СпамлÑ\8b Ð¿Ñ\83миÑ\82 Ð½Ñ\8eÑ\80Ñ\8aÑ\8fÑ\81Ñ\8cкемен Ñ\82Ó¥ Ñ\83д Ð±Ñ\8bгаÑ\82Ó¥Ñ\81Ñ\8cке Ñ\82а Ñ\83жез Ð±Ñ\8bдÑ\8dÑ\81Ñ\8aÑ\8fнÑ\8b Ñ\83кÑ\8bÑ\80 Ñ\82Ñ\80оÑ\81 Ð¿Ð¾Ð» Ð²Ð°ÐºÑ\87и Ð´Ñ\8bÑ\80 ÐºÑ\83Ñ\81пÑ\8bн â\80\94 Ð½Ð¾ Ñ\82Ó¥ Ñ\82а Ð»Ð¸Ð¼Ð¸Ñ\82лÑ\8dÑ\81Ñ\8c Ð²Ñ\8bлÑ\82Ó¥ Ð»Ñ\83идÑ\8b.\nТаÑ\83на, Ð²Ñ\8bлÑ\8cÑ\8bÑ\81Ñ\8c Ð¾Ñ\81калÑ\82Ñ\8d ÐºÓ§Ð½Ñ\8f ÐºÐµ Ð¼Ð¸Ð½Ñ\83Ñ\82 ÐºÑ\83Ñ\81паÑ\82Ñ\8bÑ\81а.",
+       "protectedpagetext": "Та бам утемын вал сое тупатъянэз яке мукет ужъёсты палэнтон понна.",
+       "viewsourcetext": "Тӥ быгатӥськоды та бамлэсь кодзэ учкыны но кӧчырыны.",
+       "viewyourtext": "Тӥ Ð±Ñ\8bгаÑ\82Ó¥Ñ\81Ñ\8cкодÑ\8b Ñ\82а Ð±Ð°Ð¼ÐµÐ· <strong>Ñ\82ӥлÑ\8fд Ñ\82Ñ\83паÑ\82онÑ\8aÑ\91Ñ\81Ñ\82Ñ\8bлÑ\8dÑ\81Ñ\8c</strong> ÐºÐ¾Ð´Ð·Ñ\8dÑ\81 Ñ\83Ñ\87кÑ\8bнÑ\8b Ð½Ð¾ ÐºÓ§Ñ\87Ñ\8bÑ\80Ñ\8bнÑ\8b.",
+       "protectedinterface": "Та бам возе интерфейс текстэз та викилэн программной обеспечениезлы. Вандализмез палэнтон понна со утемын воштонъёслэсь.\nВань викиослы берыктэмъёсты ватсалляны яке вошъяны вылысь, тауна, MediaWiki локализацияя сайтэ выжелэ — [https://translatewiki.net/ translatewiki.net].",
        "editinginterface": "<strong>Юа:</strong> редактировать карыны бамзэ тон, программное обеспечение понна со интерфейс текстовые кылдытон понна кутыны.\nТа викилэн мукет бамаз луись туссэ воштон понна та интерфейсэз пользователь пользовательский педпал быгатонлыкъёссэс.",
        "namespaceprotected": "Тон дорын редактировать карыны бам ӧвӧл юаське <кужмо>$1</strong> инты нимъёс.",
        "exception-nologin": "Тон эн тусбуяськыны сӧзнэтэз",
index 7e4a584..4fb0861 100644 (file)
        "talk": "Обговорення",
        "views": "Перегляди",
        "toolbox": "Інструменти",
-       "tool-link-userrights": "Змінити групи {{GENDER:$1|користувачів}}",
+       "tool-link-userrights": "Змінити групи {{GENDER:$1|користувача|користувачки}}",
        "tool-link-userrights-readonly": "Перегляд груп {{GENDER:$1|користувача|користувачки}}",
        "tool-link-emailuser": "Лист {{GENDER:$1|користувачеві|користувачці}}",
        "userpage": "Переглянути сторінку користувача",
        "cant-move-to-category-page": "У вас немає дозволу перейменовувати сторінку на сторінку категорії.",
        "cant-move-subpages": "У Вас немає прав на перейменування підсторінок.",
        "namespace-nosubpages": "Простір назв «$1» не дозволяє використання підсторінок.",
-       "movepage-max-pages": "$1 {{PLURAL:$1|сторінка була перейменована|сторінки були перейменовані|сторінок були перейменовані}} — це максимум, більше сторінок не можна перейменувати автоматично.",
        "newtitle": "Нова назва:",
        "move-watch": "Спостерігати за цією сторінкою",
        "movepagebtn": "Перейменувати сторінку",
        "movepage-page-exists": "Сторінка $1 вже існує і не може бути автоматично перезаписана.",
        "movepage-page-moved": "Сторінка $1 перейменована на $2.",
        "movepage-page-unmoved": "Сторінка $1 не може бути перейменована на $2.",
+       "movepage-max-pages": "$1 {{PLURAL:$1|сторінка була перейменована|сторінки були перейменовані|сторінок були перейменовані}} — це максимум, більше сторінок не можна перейменувати автоматично.",
        "movelogpage": "Журнал перейменувань",
        "movelogpagetext": "Далі подано список перейменованих сторінок.",
        "movesubpage": "{{PLURAL:$1|1=Підсторінка|Підсторінки}}",
        "timezone-local": "Місцеві",
        "duplicate-defaultsort": "Увага. Ключ сортування «$2» перекриває попередній ключ сортування «$1».",
        "duplicate-displaytitle": "<strong>Увага:</strong> Відображений заголовок \"$2\" заміщує раніше відображений заголовок \"$1\".",
-       "restricted-displaytitle": "<strong>Увага:</strong> Ð\92Ñ\96добÑ\80ажÑ\83ванÑ\83 Ð½Ð°Ð·Ð²Ñ\83 Â«$1» Ð±Ñ\83ло Ð¿Ñ\80оÑ\96гноÑ\80овано, Ð¾Ñ\81кÑ\96лÑ\8cки Ð²Ð¾Ð½Ð¾ Ð½Ðµ Ð²Ñ\96дповÑ\96даÑ\94 Ð²Ð»Ð°Ñ\81не назві сторінки.",
+       "restricted-displaytitle": "<strong>Увага:</strong> Ð\92Ñ\96добÑ\80ажÑ\83ванÑ\83 Ð½Ð°Ð·Ð²Ñ\83 Â«$1» Ð±Ñ\83ло Ð¿Ñ\80оÑ\96гноÑ\80овано, Ð¾Ñ\81кÑ\96лÑ\8cки Ð²Ð¾Ð½Ð° Ð½Ðµ Ð²Ñ\96дповÑ\96даÑ\94 Ñ\87иннÑ\96й назві сторінки.",
        "invalid-indicator-name": "<strong>Помилка:</strong> Сторінка індикатора стану <code>name</code> атрибута не може бути пуста.",
        "version": "Версія MediaWiki",
        "version-extensions": "Установлені розширення",
        "api-error-stashnotloggedin": "Ви повинні увійти в систему, аби мати змогу зберігати файли у сховку завантажень.",
        "api-error-stashwrongowner": "Файл, до якого ви намагалися отримати доступ в схованці, не належить вам.",
        "api-error-stashnosuchfilekey": "Ключ файлу, до якого Ви намагались отримати доступ у сховку, не існує.",
-       "api-error-timeout": "СеÑ\80веÑ\80 Ð½Ðµ Ð²Ñ\96дповÑ\96даÑ\94 Ð¿Ñ\80оÑ\82Ñ\8fгом Ð¾Ñ\87Ñ\96кÑ\83ваного часу.",
+       "api-error-timeout": "СеÑ\80веÑ\80 Ð½Ðµ Ð²Ñ\96дповÑ\96в Ð¿Ñ\80оÑ\82Ñ\8fгом Ð²Ñ\96дведеного Ð½Ð° Ñ\86е часу.",
        "api-error-unclassified": "Сталася невідома помилка.",
        "api-error-unknown-code": "Невідома помилка: «$1»",
        "api-error-unknown-error": "Внутрішня помилка: щось пішло не так, при спробі завантажити файл.",
-       "api-error-unknown-warning": "Невідоме попередження: $1",
+       "api-error-unknown-warning": "Невідоме попередження: «$1».",
        "api-error-unknownerror": "Невідома помилка: \"$1\".",
        "api-error-uploaddisabled": "Завантаження вимкнуто у цій вікі.",
        "api-error-verification-error": "Цей файл можливо пошкоджено, або він має неправильне розширення.",
index de2ee22..c688878 100644 (file)
@@ -29,7 +29,8 @@
                        "Hindustanilanguage",
                        "امین اکبر",
                        "Jdforrester",
-                       "قیصرانی"
+                       "قیصرانی",
+                       "Junaid Ahmad"
                ]
        },
        "tog-underline": "ربط کی خط کشیدگی:",
        "views": "مشاہدات",
        "toolbox": "آلات",
        "tool-link-userrights": "حلقہ ہائے {{GENDER:$1|صارف}} میں تبدیلی",
+       "tool-link-userrights-readonly": "حلقے{{GENDER:$1|}}دیکھیں",
        "tool-link-emailuser": "اس {{GENDER:$1|صارف}} کو برقی خط لکھیں",
        "userpage": "صارف کا صفحہ دیکھیے",
        "projectpage": "منصوبہ کا صفحہ دیکھیے",
        "passwordreset-emaildisabled": "اس ویکی پر برقی خط کی سہولت غیر فعال ہیں۔",
        "passwordreset-username": "اسمِ صارف:",
        "passwordreset-domain": "ساحہ:",
-       "passwordreset-capture": "برقی خط کی حتمی شکل دیکھیں؟",
-       "passwordreset-capture-help": "اس خانے کو نشان زد کرنے کی صورت میں (عارضی پاس ورڈ کا حامل) برقی خط آپ کو بھی نظر آئے گا اور صارف کو بھی روانہ کیا جائے گا۔",
        "passwordreset-email": "برقی ڈاک پتہ:",
        "passwordreset-emailtitle": "{{SITENAME}} کھاتہ کی تفصیلات",
        "passwordreset-emailelement": "صارف نام:\n$1\n\nعارضی پاس ورڈ: \n$2",
        "passwordreset-emailsentemail": "اگر یہ برقی ڈاک پتا آپ کے کھاتے سے منسلک ہے تو پاس ورڈ کی ترتیب نو کا برقی خط بھیج دیا جائے گا۔",
        "passwordreset-emailsentusername": "اگر کوئی برقی ڈاک پتا آپ کے کھاتے سے منسلک ہے تو پاس ورڈ کی ترتیب نو کا برقی خط بھیج دیا جائے گا۔",
-       "passwordreset-emailsent-capture2": "پاس ورڈ کی ترتیب نو {{PLURAL:$1|کا برقی خط بھیج دیا گیا ہے|کے برقی خطوط بھیج دیے گئے ہیں}}۔ {{PLURAL:$1|صارف نام اور پاس ورڈ|صارف ناموں اور ان کے پاس ورڈ کی فہرست}} یہاں ملاحظہ فرمائیں۔",
-       "passwordreset-emailerror-capture2": "{{GENDER:$2|صارف}} کو برقی خط بھیجنے میں ناکامی: $1\n{{PLURAL:$3|صارف نام اور پاس ورڈ|صارف ناموں کی فہرست اور ان کے پاس ورڈ}} یہاں ملاحظہ فرمائیں۔",
        "passwordreset-nocaller": "کالر کا فراہم کیا جانا لازمی ہے",
        "passwordreset-nosuchcaller": "کالر موجود نہیں: $1",
        "passwordreset-ignored": "پاس ورڈ کی ترتیب نو مکمل نہیں ہو سکی۔ شاید کوئی پرووائڈر فراہم نہیں کیا گیا؟",
        "continue-editing": "خانہ ترمیم میں جائیں",
        "previewconflict": "اس نمائش میں خانہ ترمیم کے اوپر موجود متن جس انداز میں ظاہر ہو رہا ہے، محفوظ کرنے کے بعد اسی طرح نظر آئے گا۔",
        "session_fail_preview": "معذرت! نشست کے مواد میں خامی کی وجہ سے آپ کی  ترمیم مکمل نہیں ہو سکی۔\n\nشاید آپ اپنے کھاتے سے خارج ہو گئے ہیں۔ <strong>براہ کرم اس بات کی تصدیق کر لیں کہ آپ داخل ہیں اور دوبارہ کوشش کریں۔</strong> اگر آپ کو پھر بھی مشکل پیش آرہی ہو تو ایک بار [[Special:UserLogout|خارج ہو کر]] واپس داخل ہو جائیں اور اپنے براؤزر کو جانچ لیں کہ آیا وہ اس سائٹ کی کوکیز اخذ کر رہا ہے یا نہیں۔",
+       "session_fail_preview_html": "معاف کیجیے گا!سیشن ڈاٹا کے نقصان کی وجہ سے ہم آپ کی تبدیلی نافذنہیں کرسکتے.\n<em>چونکہ{{SITENAME}}نے نامکملHTMLکوفعال کررکھاہے,اس لئےنمائش کوجاوااسکرپٹ کےحملوں سےحفاظت کےلئےپوشیدہ کردیاگیاہے.</em>\n<strong>اگرتبدیلی کی یہ جدوجہدقانونی ہےتوبرائےمہربانی دوبارہ کوشش کریں.<strong>\nاگراس کےبعدبھی کام نہ کرے تو[[Special:UserLogout|logging out]]لاگ آؤٹ ہوکردوبارہ لاگ ان کیجیے.اورجانچ کیجیے کہ آپ کابراؤزراس سائٹ کےکوکیزکی اجأزت دیتاہےیانہیں.",
        "edit_form_incomplete": "<strong>خانہ ترمیم سے کچھ حصے سرور تک نہیں پہنچ سکے ہیں؛ براہ کرم اپنی ترامیم کو دوبارہ جانچ لیں کہ آیا وہ برقرار ہیں یا نہیں اور دوبارہ کوشش کریں۔</strong>",
        "editing": "آپ \"$1\" میں ترمیم کر رہے ہیں۔",
        "creating": "زیر تخلیق $1",
        "userrights-reason": "وجہ:",
        "userrights-no-interwiki": "دوسرے ویکیوں پر حقوقِ صارف میں ترمیم کی آپ کو اجازت نہیں ہے.",
        "userrights-nodatabase": "ڈیٹابیس $1 موجود نہیں یا مقامی نہیں۔",
-       "userrights-nologin": "اختیارات تفویض کرنے کے لیے آپ کا کسی منتظم کھاتے سے [[Special:UserLogin|داخل ہونا]] ضروری ہے۔",
-       "userrights-notallowed": "آپ کو  اختیارات تفویض کرنے یا انہیں واپس لینے کی اجازت نہیں ہے۔",
        "userrights-changeable-col": "مجموعات جو آپ تبدیل کرسکتے ہیں",
        "userrights-unchangeable-col": "مجموعات جو آپ تبدیل نہیں کرسکتے",
        "userrights-conflict": "اختیارات کی تبدیلی میں تنازعہ! براہ کرم نظر ثانی کریں اور اپنی تبدیلیوں کی تصدیق کریں۔",
-       "userrights-removed-self": "آپ نے اپنے اختیارات ختم کر لیے ہیں، چنانچہ اب یہ صفحہ آپ کی دسترس سے باہر ہو گیا ہے۔",
        "group": "حلقہ:",
        "group-user": "صارفین",
        "group-autoconfirmed": "خود توثیق شدہ صارفین",
        "right-siteadmin": "ڈیٹابیس کو مقفل یا غیر مقفل کرنا",
        "right-override-export-depth": "پانچویں سطح کی گہرائی تک مربوط صفحات پر مشتمل صفحات کی برآمد",
        "right-sendemail": "دیگر صارفین کو برقی ڈاک بھیجیں",
-       "right-passwordreset": "پاس ورڈ کی ترتیب نو کے حامل برقی خطوط کا معائنہ",
        "right-managechangetags": "[[Special:Tags|ٹیگوں]] کی تخلیق اور (غیر)فعالی",
        "right-applychangetags": "کسی کی تبدیلیوں کے ساتھ [[Special:Tags|ٹیگوں]] کا اطلاق",
        "right-changetags": "انفرادی نسخوں اور نوشتہ کے اندراج پر [[Special:Tags|ٹیگوں]] کا حذف و اضافہ",
        "action-writeapi": "اے پی آئی تحریر کے استعمال کرنے",
        "action-delete": "یہ صفحہ حذف کرنے",
        "action-deleterevision": "یہ نسخہ حذف کرنے",
-       "action-deletedhistory": "اس صفحہ کا حذف شدہ تاریخچہ دیکھنے",
+       "action-deletedhistory": "اس صفحہ کا حذف شدہ تاریخچہ دیکھیں",
        "action-browsearchive": "حذف شدہ صفحات میں تلاش کرنے",
-       "action-undelete": "اس صفحہ کو بحال کرنے",
+       "action-undelete": "یہ صفحہ بحال کرنے",
        "action-suppressrevision": "اس پوشیدہ ترمیم کی نظرثانی اور بحال کرنے",
        "action-suppressionlog": "نجی نوشتہ کے دیکھنے",
        "action-block": "اس صارف پر پابندی لگانے",
index 308a36f..91a3ad8 100644 (file)
        "cant-move-to-user-page": "איר זענט נישט דערלויבט צו באַוועגן א בלאַט צו א באַניצער בלאַט (אַחוץ צו א באַניצער אונטערבלאַט).",
        "cant-move-category-page": "איר זענט נישט דערלויבט צו באוועגן קאטעגאריע בלעטער.",
        "cant-move-to-category-page": "איר זענט נישט ערלויבט צו באוועגן א בלאט צו קאטעגאריע־בלאט.",
-       "movepage-max-pages": "דער מאקסימום פון $1 {{PLURAL:$1|בלאט|בלעטער}} האט מען שוין באוועגט און נאך בלעטער וועט מען נישט באוועגן אויטאמאטיש.",
        "newtitle": "נייע קעפל:",
        "move-watch": "אויפֿפאַסן אויף דעם בלאַט",
        "movepagebtn": "באַוועגן בלאַט",
        "movepage-page-exists": "דער בלאַט $1 עקזיסטירט שוין און מ'קען אים נישט אויטאָמאַטיש איבערשרײַבן.",
        "movepage-page-moved": "דער בלאַט $1 איז געוורן באַוועגט צו $2.",
        "movepage-page-unmoved": "מען קען נישט באוועגן בלאט $1 צו $2.",
+       "movepage-max-pages": "דער מאקסימום פון $1 {{PLURAL:$1|בלאט|בלעטער}} האט מען שוין באוועגט און נאך בלעטער וועט מען נישט באוועגן אויטאמאטיש.",
        "movelogpage": "באוועגן לאג",
        "movelogpagetext": "פֿאלגנד איז א ליסטע פֿון  בלעטער באוועגט.",
        "movesubpage": "{{PLURAL:$1|אונטערבלאַט|אונטערבלעטער}}",
index f225126..a9180ac 100644 (file)
@@ -28,7 +28,9 @@
                        "Shinjiman",
                        "Macofe",
                        "Jdforrester",
-                       "Tungakl"
+                       "Tungakl",
+                       "Suzukaze-c",
+                       "Asdfugil"
                ]
        },
        "tog-underline": "連結加底線:",
@@ -55,7 +57,7 @@
        "tog-enotifminoredits": "喺頁面同檔案有細修改時,用電郵通知我。",
        "tog-enotifrevealaddr": "喺電郵通知信上面話畀人聽我嘅電郵地址",
        "tog-shownumberswatching": "顯示有幾多人監視",
-       "tog-oldsig": "現有簽名:",
+       "tog-oldsig": "你而家嘅簽名:",
        "tog-fancysig": "將簽名以維基字對待(冇自動連結)",
        "tog-uselivepreview": "用即時預覽",
        "tog-forceeditsummary": "我冇入修改註解時通知我",
        "createacct-yourpasswordagain-ph": "入多次密碼",
        "userlogin-remembermypassword": "記住我有簽到",
        "userlogin-signwithsecure": "用安全連線",
+       "cannotlogin-title": "簽到唔到",
+       "cannotlogin-text": "冇可能簽到",
+       "cannotloginnow-title": "而家簽到唔到",
        "yourdomainname": "你嘅網域:",
        "password-change-forbidden": "你唔可以改呢個維基站嘅密碼。",
        "externaldberror": "驗證資料庫出錯,或者唔允許你更新你嘅外部帳戶。",
        "nocookieslogin": "{{SITENAME}} 登入要開 cookies。熄咗佢。請你開咗再試。",
        "nocookiesfornew": "呢位用戶嘅戶開未開,我哋唔能夠確認佢嘅來源。\n請肯定你已經開咗 cookies,重新載入再試。",
        "noname": "你未指定一個有效嘅用戶名。",
-       "loginsuccesstitle": "ç\99»å\85¥成功",
+       "loginsuccesstitle": "ç°½å\88°成功",
        "loginsuccess": "'''「$1」登入咗{{SITENAME}}。'''",
-       "nosuchuser": "呢度冇叫做 \"$1\"嘅用戶。\n用戶名係有分大細楷嘅。\n請檢查你個名嘅輸入方法,或者[[Special:CreateAccount|建立一個新嘅戶口]]。",
+       "nosuchuser": "呢度冇用戶叫做 \"$1\"嘅。\n用戶名係有分大細楷嘅。\n請檢查你個名嘅輸入方法,或者[[Special:CreateAccount|建立一個新嘅戶口]]。",
        "nosuchusershort": "呢度冇叫做 \"$1\"嘅用戶。 請檢查你個名嘅輸入方法。",
        "nouserspecified": "你需要指定一個用戶名。",
        "login-userblocked": "呢位用戶封鎖咗。唔容許登入。",
        "resetpass_submit": "設定密碼同登入",
        "changepassword-success": "你嘅密碼已經成功噉改咗!",
        "changepassword-throttled": "你已經試咗太多次簽到動作。\n請等$1再試過。",
+       "botpasswords-label-delete": "刪除",
        "resetpass_forbidden": "唔可以更改密碼",
        "resetpass-no-info": "你一定要登入咗去直接入來呢一版。",
        "resetpass-submit-loggedin": "改密碼",
        "passwordreset-emaildisabled": "呢個維基站無得傳送電郵。",
        "passwordreset-username": "用戶名:",
        "passwordreset-domain": "域名:",
-       "passwordreset-capture": "睇電郵內容?",
-       "passwordreset-capture-help": "如果揀呢度,電郵連臨時密碼金向你顯示,同時會送畀用戶。",
        "passwordreset-email": "電郵地址:",
        "passwordreset-emailtitle": "{{SITENAME}}嘅戶口資料",
        "passwordreset-emailtext-ip": "有人(可能係閣下自己,來自IP地址$1)請求更改閣下喺{{SITENAME}}($4)嘅密碼。同爾個電子郵件有關聯嘅用戶包括:\n\n$2\n\n{{PLURAL:$3|爾個|爾啲}}臨時密碼會喺{{$5}}日之後失效。\n\n如果係閣下自己請求改密碼嘅,請馬上登錄{{SITENAME}}並且更改密碼。如果閣下諗返起自己個密碼,或者根本無申請過改密碼嘅話,請忽略爾條訊息,繼續用返舊密碼。",
        "searchprofile-advanced-tooltip": "響自定空間名度搵",
        "search-result-size": "$1 ($2個字)",
        "search-result-category-size": "$1位成員 ($2個細類,$3個檔案)",
-       "search-redirect": "(跳轉 $1)",
+       "search-redirect": "(由$1過嚟)",
        "search-section": "(小節 $1)",
        "search-category": "(類 $1)",
        "search-file-match": "(夾啱樓案内容)",
        "userrights-reason": "原因:",
        "userrights-no-interwiki": "你並無權限去編輯響其它wiki嘅用戶權限。",
        "userrights-nodatabase": "資料庫$1唔存在或者唔係本地嘅。",
-       "userrights-nologin": "你一定要以操作員戶口[[Special:UserLogin|登入]]咗之後先可以指定用戶權限。",
-       "userrights-notallowed": "你無權限去加減用戶權限。",
        "userrights-changeable-col": "你可以改嘅組",
        "userrights-unchangeable-col": "你唔可以改嘅組",
        "userrights-conflict": "用戶權限更改有衝突!請再睇過同確認你嘅改動。",
-       "userrights-removed-self": "移走自身權限成功,但你冇乜可能入到呢頁。",
        "group": "組:",
        "group-user": "用戶",
        "group-autoconfirmed": "自動確認用戶",
        "right-siteadmin": "鎖同解鎖資料庫",
        "right-override-export-depth": "倒出包含有五層深連版嘅頁面",
        "right-sendemail": "寄電郵畀其他用戶",
-       "right-passwordreset": "檢查密碼/重設電郵",
        "right-managechangetags": "從數據庫度開或刪走[[Special:Tags|tags]]",
        "right-applychangetags": "套用[[Special:Tags|標籤]]到某個人嘅改動",
        "newuserlogpage": "使用者開戶記錄",
        "contribsub2": "{{GENDER:$3|$1}}嘅貢獻 ($2)",
        "contributions-userdoesnotexist": "用戶「$1」未有註冊。",
        "nocontribs": "搵唔到符合呢啲條件嘅修改。",
-       "uctop": "(而家)",
+       "uctop": "(最新)",
        "month": "由呢個月 (同更早):",
        "year": "由呢一年 (同更早):",
        "sp-contributions-newbies": "只顯示新戶口嘅貢獻",
index e44c48a..320f902 100644 (file)
        "redirectpagesub": "重定向页面",
        "redirectto": "重定向至:",
        "lastmodifiedat": "本页面最后修改于$1 $2。",
-       "viewcount": "本页面已经被访问过$1次。",
+       "viewcount": "本页面已经被访问过{{PLURAL:$1|$1次}}。",
        "protectedpage": "受保护页面",
        "jumpto": "跳转至:",
        "jumptonavigation": "导航",
        "content-failed-to-parse": "未能将 $2 内容转换为 $1:$3",
        "invalid-content-data": "无效的内容数据",
        "content-not-allowed-here": "[[$2]]页面上不允许“$1”内容",
-       "editwarning-warning": "离开本页面可能导致您失去任何已经作出的更改。如果您处于登录状态,您可以在您的设置的“{{int:prefs-editing}}”部分停用该警告。",
+       "editwarning-warning": "离开本页面可能导致您失去任何已经作出的更改。如果您处于登录状态,您可以在您的设置的“{{int:prefs-editing}}”部分停用该警告。",
        "editpage-invalidcontentmodel-title": "内容模型不支持",
        "editpage-invalidcontentmodel-text": "内容模型“$1”不被支持。",
        "editpage-notsupportedcontentformat-title": "内容格式尚不支持",
        "changecontentmodel-emptymodels-title": "没有内容模型可用",
        "changecontentmodel-emptymodels-text": "[[:$1]]上的内容不能转换为任何类型。",
        "log-name-contentmodel": "内容模型更改日志",
-       "log-description-contentmodel": "与一个页面的内容模型相关的活动",
+       "log-description-contentmodel": "此页面列举对页面内容模型的更改,以及使用默认模型以外的内容模型创建的页面。",
        "logentry-contentmodel-new": "$1已使用非默认的内容模型“$5”{{GENDER:$2|创建}}页面$3",
        "logentry-contentmodel-change": "$1将页面$3的内容模型从“$4”{{GENDER:$2|更改}}为“$5”",
        "logentry-contentmodel-change-revertlink": "回退",
        "cant-move-to-user-page": "您没有权限移动页面至用户页面(用户子页面除外)。",
        "cant-move-category-page": "您没有权限移动分类页面。",
        "cant-move-to-category-page": "您没有权限移动页面至分类页面。",
-       "movepage-max-pages": "所移动$1个页面的数量已达最大限额,无法同时自动移动更多页面。",
+       "cant-move-subpages": "您没有权限移动子页面。",
+       "namespace-nosubpages": "名字空间“$1”不允许子页面。",
        "newtitle": "新标题:",
        "move-watch": "监视来源页面和目标页面",
        "movepagebtn": "移动页面",
        "movepage-page-exists": "页面$1已存在,无法自动覆盖。",
        "movepage-page-moved": "页面$1已经移动到$2。",
        "movepage-page-unmoved": "页面$1无法移动到$2。",
+       "movepage-max-pages": "所移动$1个页面的数量已达最大限额,无法同时自动移动更多页面。",
        "movelogpage": "移动日志",
        "movelogpagetext": "下面是所有页面移动的列表。",
        "movesubpage": "{{PLURAL:$1|子页面}}",
        "api-error-badtoken": "内部错误:会话无效。",
        "api-error-blocked": "您已被封禁,不能编辑。",
        "api-error-copyuploaddisabled": "通过URL上传的功能已被此服务器禁用。",
-       "api-error-duplicate": "在网站上已经具有相同内容的{{PLURAL:$1|另一个文件|另一些文件}}。",
-       "api-error-duplicate-archive": "在网站上曾经具有相同内容的{{PLURAL:$1|另一个文件|另一些文件}},但已被删除。",
+       "api-error-duplicate": "在网站上已有相同内容的{{PLURAL:$1|另一个文件|另一些文件}}。",
+       "api-error-duplicate-archive": "在网站上曾有相同内容的{{PLURAL:$1|另一个文件|另一些文件}},但{{PLURAL:$1|已被}}删除。",
        "api-error-empty-file": "您提交的文件是空的。",
        "api-error-emptypage": "不能创建没有内容的新页面。",
        "api-error-fetchfileerror": "内部错误:获取文件时发生错误。",
        "api-error-missingresult": "内部错误:无法确定是否复制成功。",
        "api-error-mustbeloggedin": "您必须登录后再上传文件。",
        "api-error-mustbeposted": "内部错误:请求需要HTTP POST",
-       "api-error-noimageinfo": "上传成功,但服务器没有给我们任何该文件的信息。",
+       "api-error-noimageinfo": "上传成功,但服务器没有向我们提供任何有关文件的信息。",
        "api-error-nomodule": "内部错误:缺少上传模块集。",
        "api-error-ok-but-empty": "内部错误:服务器没有响应。",
        "api-error-overwrite": "不允许覆盖现有文件。",
        "api-error-stashnotloggedin": "您必须登录以保存文件至上传藏匿处。",
        "api-error-stashwrongowner": "您试图在藏匿处访问的文件不属于您。",
        "api-error-stashnosuchfilekey": "您试图在藏匿处访问的文件密钥不存在。",
-       "api-error-timeout": "服务器没有在预期内响应。",
+       "api-error-timeout": "服务器没有在预期时间内响应。",
        "api-error-unclassified": "出现未知错误。",
        "api-error-unknown-code": "未知错误:“$1”。",
        "api-error-unknown-error": "内部错误:尝试上传文件时出错。",
-       "api-error-unknown-warning": "未知警告:“$1”。",
+       "api-error-unknown-warning": "未知警告:“$1”。",
        "api-error-unknownerror": "未知错误:$1。",
        "api-error-uploaddisabled": "该wiki停用上传。",
        "api-error-verification-error": "该文件可能损坏或扩展名错误。",
        "sessionprovider-nocookies": "Cookie可能已被禁用。确保您已启用cookie,并重试。",
        "randomrootpage": "随机根页面",
        "log-action-filter-block": "封禁类型:",
-       "log-action-filter-contentmodel": "内容模型改的类型:",
+       "log-action-filter-contentmodel": "内容模型改的类型:",
        "log-action-filter-delete": "删除类型:",
        "log-action-filter-import": "导入的类型:",
        "log-action-filter-managetags": "标签管理行为的类型:",
        "log-action-filter-block-block": "封禁",
        "log-action-filter-block-reblock": "封禁修改",
        "log-action-filter-block-unblock": "解封",
-       "log-action-filter-contentmodel-change": "内容型的更改",
-       "log-action-filter-contentmodel-new": "带有非标准内容模型的页面的更改",
+       "log-action-filter-contentmodel-change": "内容型的更改",
+       "log-action-filter-contentmodel-new": "带有非默认内容模型的页面的更改",
        "log-action-filter-delete-delete": "页面删除",
        "log-action-filter-delete-delete_redir": "重定向覆盖",
        "log-action-filter-delete-restore": "页面还原",
index 9e64642..e8806c3 100644 (file)
@@ -77,7 +77,8 @@
                        "一個正常人",
                        "Wehwei",
                        "1233thehongkonger",
-                       "Maskers"
+                       "Maskers",
+                       "Knch903"
                ]
        },
        "tog-underline": "底線標示連結:",
@@ -89,7 +90,7 @@
        "tog-usenewrc": "依近期變更與監視清單的頁面分類顯示變更",
        "tog-numberheadings": "標題自動編號",
        "tog-showtoolbar": "顯示編輯工具列",
-       "tog-editondblclick": "é\96\8bå\95\9fæ»\91é¼ é\9b\99æ\93\8a編輯頁面",
+       "tog-editondblclick": "é\9b\99æ\93\8aæ»\91é¼ 編輯頁面",
        "tog-editsectiononrightclick": "開啟滑鼠右鍵點選章節標題編輯",
        "tog-watchcreations": "將我建立的頁面和上傳的檔案加入監視清單",
        "tog-watchdefault": "將我編輯的頁面和檔案加入監視清單",
        "oct": "10 月",
        "nov": "11 月",
        "dec": "12 月",
-       "january-date": "一月 $1 日",
-       "february-date": "二月 $1 日",
-       "march-date": "三月 $1 日",
-       "april-date": "四月 $1 日",
-       "may-date": "五月 $1 日",
-       "june-date": "六月 $1 日",
-       "july-date": "七月 $1 日",
-       "august-date": "八月 $1 日",
-       "september-date": "九月 $1 日",
-       "october-date": "十月 $1 日",
-       "november-date": "十一月 $1 日",
-       "december-date": "十二月 $1 日",
+       "january-date": "1月$1日",
+       "february-date": "2月$1日",
+       "march-date": "3月$1日",
+       "april-date": "4月$1日",
+       "may-date": "5月$1日",
+       "june-date": "6月$1日",
+       "july-date": "7月$1日",
+       "august-date": "8月$1日",
+       "september-date": "9月$1日",
+       "october-date": "10月$1日",
+       "november-date": "11月$1日",
+       "december-date": "12月$1日",
        "period-am": "AM",
        "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|分類|$1 個分類}}",
-       "category_header": "分類 \"$1\" 中的頁面",
+       "category_header": "分類「$1」中的頁面",
        "subcategories": "子分類",
        "category-media-header": "分類 \"$1\" 中的媒體",
        "category-empty": "<em>此分類目前未包含頁面或媒體。</em>",
        "redirectpagesub": "重新導向頁面",
        "redirectto": "重新導向至:",
        "lastmodifiedat": "此頁面最後修改於 $1 $2。",
-       "viewcount": "此頁面已被檢視過 $1 次。",
+       "viewcount": "此頁面已被檢視過 {{PLURAL:$1|$1 次}}。",
        "protectedpage": "受保護頁面",
        "jumpto": "前往:",
        "jumptonavigation": "導覽",
        "action-writeapi": "使用寫入 API",
        "action-delete": "刪除此頁面",
        "action-deleterevision": "刪除修訂",
+       "action-deletelogentry": "删除日誌記錄",
        "action-deletedhistory": "檢視頁面的刪除歷史",
+       "action-deletedtext": "查看已刪除的修訂版本文字",
        "action-browsearchive": "搜尋已刪除頁面",
        "action-undelete": "取消刪除頁面",
        "action-suppressrevision": "檢閱與還原隱藏修訂",
        "action-userrights-interwiki": "編輯在其它 Wiki 上的使用者權限",
        "action-siteadmin": "鎖定或解除鎖定資料庫",
        "action-sendemail": "傳送電子郵件",
+       "action-editmyoptions": "編輯自己的偏好設定",
        "action-editmywatchlist": "編輯您的監視清單",
        "action-viewmywatchlist": "檢視您的監視清單",
        "action-viewmyprivateinfo": "檢視您的個人資訊",
        "apisandbox-continue-clear": "清除",
        "apisandbox-continue-help": "{{int:apisandbox-continue}} 會 [https://www.mediawiki.org/wiki/API:Query#Continuing_queries 繼續] 最後的請求,{{int:apisandbox-continue-clear}} 則會清除繼續相關的參數。",
        "apisandbox-param-limit": "輸入 <kbd>max</kbd> 以使用最大限制。",
+       "apisandbox-multivalue-all-values": "$1(所有值)",
        "booksources": "圖書資源",
        "booksources-search-legend": "尋找圖書資源",
        "booksources-isbn": "國際標準書號:",
        "cant-move-to-user-page": "您沒有權限移動頁面至使用者頁面 (除使用者子頁面外)。",
        "cant-move-category-page": "您沒有權限移動分類頁面。",
        "cant-move-to-category-page": "您沒有權限移動頁面至分類頁面。",
-       "movepage-max-pages": "移動頁面的上限為 $1 頁,超出限制的頁面將不會自動移動。",
        "newtitle": "新標題:",
        "move-watch": "監視來源以及目標頁面",
        "movepagebtn": "移動頁面",
        "movepage-page-exists": "頁面 $1 已存在,無法自動覆蓋。",
        "movepage-page-moved": "已移動頁面 $1 到 $2。",
        "movepage-page-unmoved": "無法移動頁面 $1 到 $2。",
+       "movepage-max-pages": "移動頁面的上限為 $1 頁,超出限制的頁面將不會自動移動。",
        "movelogpage": "移動日誌",
        "movelogpagetext": "以下是所有移動頁面的動作記錄清單。",
        "movesubpage": "{{PLURAL:$1|子頁面}}",
        "sessionprovider-nocookies": "Cookie 功能可能已被關閉,請確認您改開啟 Cookie 功能並重新啟動。",
        "randomrootpage": "隨機根頁面",
        "log-action-filter-block": "封鎖類型:",
-       "log-action-filter-contentmodel": "內容模型修改類型:",
+       "log-action-filter-contentmodel": "內容模型變更類型:",
        "log-action-filter-delete": "刪除類型:",
        "log-action-filter-import": "匯入類型:",
        "log-action-filter-managetags": "標籤管理動作類型:",
        "log-action-filter-block-block": "封鎖",
        "log-action-filter-block-reblock": "封鎖修改",
        "log-action-filter-block-unblock": "解除封鎖",
-       "log-action-filter-contentmodel-change": "變更內容模型",
-       "log-action-filter-contentmodel-new": "使用非標準內容模型建立的頁面",
+       "log-action-filter-contentmodel-change": "內容模型的變更",
+       "log-action-filter-contentmodel-new": "使用非預設內容模型建立的頁面",
        "log-action-filter-delete-delete": "頁面刪除",
        "log-action-filter-delete-restore": "頁面取消刪除",
        "log-action-filter-delete-event": "日誌刪除",
index bce8b62..686ead0 100644 (file)
@@ -8,7 +8,7 @@
  *
  */
 
-$fallback = 'de';
+$fallback = 'hsb, de';
 
 $namespaceNames = [
        NS_MEDIA            => 'Medija',
index 6aa28e5..d9471e0 100644 (file)
@@ -8,7 +8,7 @@
  *
  */
 
-$fallback = 'de';
+$fallback = 'dsb, de';
 
 $namespaceNames = [
        NS_MEDIA            => 'Media',
index 7aae422..ffd164b 100644 (file)
@@ -8,6 +8,8 @@
  *
  */
 
+$fallback = 'eo';
+
 $namespaceNames = [
        NS_MEDIA            => 'Media',
        NS_SPECIAL          => 'Specala',
@@ -27,6 +29,11 @@ $namespaceNames = [
        NS_CATEGORY_TALK    => 'Kategorio_Debato',
 ];
 
+$namespaceGenderAliases = [
+       NS_USER => [ 'male' => 'Uzanto', 'female' => 'Uzantino' ],
+       NS_USER_TALK => [ 'male' => 'Uzanto_Debato', 'female' => 'Uzantino_Debato' ],
+];
+
 $namespaceAliases = [
        'Imajo' => NS_FILE,
        'Imajo_Debato' => NS_FILE_TALK,
index c378f23..548b3db 100644 (file)
@@ -47,6 +47,8 @@
  * @author לערי ריינהארט
  */
 
+$fallback = 'nn';
+
 $bookstoreList = [
        'Antikvariat.net' => 'http://www.antikvariat.net/',
        'Frida' => 'http://wo.uio.no/as/WebObjects/frida.woa/wa/fres?action=sok&isbn=$1&visParametre=1&sort=alfabetisk&bs=50',
@@ -83,6 +85,14 @@ $namespaceAliases = [
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
 $linkTrail = '/^([æøåa-z]+)(.*)$/sDu';
 
+$datePreferenceMigrationMap = [
+       'default',
+       'mdy',
+       'dmy',
+       'ymd'
+];
+$defaultDateFormat = 'dmy';
+
 $dateFormats = [
        'mdy time' => 'H:i',
        'mdy date' => 'M j., Y',
index 5ceafd1..5b599a9 100644 (file)
@@ -42,6 +42,8 @@
  * @see https://nn.wikipedia.org/w/index.php?title=Brukar:Dittaeva/LanguageNn.php&action=history
  */
 
+$fallback = 'nb';
+
 $datePreferences = [
        'default',
        'dmyt',
index 239c888..e40b22b 100644 (file)
@@ -16,6 +16,8 @@
  * @author ZaDiak
  */
 
+$fallback = 'el';
+
 $namespaceNames = [
        NS_MEDIA            => 'Μέσον',
        NS_SPECIAL          => 'Ειδικόν',
diff --git a/languages/messages/MessagesRup.php b/languages/messages/MessagesRup.php
new file mode 100644 (file)
index 0000000..041dc46
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+/** Aromanian (armãneashti)
+ *
+ * To improve a translation please visit https://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ */
+
+$fallback = 'ro';
index f0e0555..6717a8e 100644 (file)
@@ -109,7 +109,8 @@ TEXT
                }
 
                $this->output( "Done!\n" );
-               $this->output( "You might want to run rebuildrecentchanges.php to regenerate RecentChanges\n" );
+               $this->output( "You might want to run rebuildrecentchanges.php to regenerate RecentChanges,\n" );
+               $this->output( "and initSiteStats.php to update page and revision counts\n" );
        }
 
        function setNsfilter( array $namespaces ) {
@@ -283,6 +284,9 @@ TEXT
                $source = new ImportStreamSource( $handle );
                $importer = new WikiImporter( $source, $this->getConfig() );
 
+               // Updating statistics require a lot of time so disable it
+               $importer->disableStatisticsUpdate();
+
                if ( $this->hasOption( 'debug' ) ) {
                        $importer->setDebug( true );
                }
diff --git a/maintenance/populateInterwiki.php b/maintenance/populateInterwiki.php
new file mode 100644 (file)
index 0000000..6c812bf
--- /dev/null
@@ -0,0 +1,156 @@
+<?php
+
+/**
+ * Maintenance script that populates the interwiki table with list of sites from
+ * a source wiki, such as English Wikipedia. (the default source)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Maintenance
+ * @author Katie Filbert < aude.wiki@gmail.com >
+ */
+
+require_once __DIR__ . '/Maintenance.php';
+
+class PopulateInterwiki extends Maintenance {
+
+       /**
+        * @var string
+        */
+       private $source;
+
+       public function __construct() {
+               parent::__construct();
+
+               $this->addDescription( <<<TEXT
+This script will populate the interwiki table, pulling in interwiki links that are used on Wikipedia
+or another MediaWiki wiki.
+
+When the script has finished, it will make a note of this in the database, and will not run again
+without the --force option.
+
+--source parameter is the url for the source wiki api, such as "https://en.wikipedia.org/w/api.php"
+(the default) from which the script fetches the interwiki data and uses here to populate
+the interwiki database table.
+TEXT
+               );
+
+               $this->addOption( 'source', 'Source wiki for interwiki table, such as '
+                       . 'https://en.wikipedia.org/w/api.php (the default)', false, true );
+               $this->addOption( 'force', 'Run regardless of whether the database says it has '
+                       . 'been run already.' );
+       }
+
+       public function execute() {
+               $force = $this->getOption( 'force', false );
+               $this->source = $this->getOption( 'source', 'https://en.wikipedia.org/w/api.php' );
+
+               $data = $this->fetchLinks();
+
+               if ( $data === false ) {
+                       $this->error( "Error during fetching data." );
+               } else {
+                       $this->doPopulate( $data, $force );
+               }
+       }
+
+       /**
+        * @return array[]|bool The 'interwikimap' sub-array or false on failure.
+        */
+       protected function fetchLinks() {
+               $url = wfArrayToCgi( [
+                       'action' => 'query',
+                       'meta' => 'siteinfo',
+                       'siprop' => 'interwikimap',
+                       'sifilteriw' => 'local',
+                       'format' => 'json'
+               ] );
+
+               if ( !empty( $this->source ) ) {
+                       $url = rtrim( $this->source, '?' ) . '?' . $url;
+               }
+
+               $json = Http::get( $url );
+               $data = json_decode( $json, true );
+
+               if ( is_array( $data ) ) {
+                       return $data['query']['interwikimap'];
+               } else {
+                       return false;
+               }
+       }
+
+       /**
+        * @param array[] $data
+        * @param bool $force
+        *
+        * @return bool
+        */
+       protected function doPopulate( array $data, $force ) {
+               $dbw = wfGetDB( DB_MASTER );
+
+               if ( !$force ) {
+                       $row = $dbw->selectRow(
+                               'updatelog',
+                               '1',
+                               [ 'ul_key' => 'populate interwiki' ],
+                               __METHOD__
+                       );
+
+                       if ( $row ) {
+                               $this->output( "Interwiki table already populated.  Use php " .
+                                       "maintenance/populateInterwiki.php\n--force from the command line " .
+                                       "to override.\n" );
+                               return true;
+                       }
+               }
+
+               foreach ( $data as $d ) {
+                       $prefix = $d['prefix'];
+
+                       $row = $dbw->selectRow(
+                               'interwiki',
+                               '1',
+                               [ 'iw_prefix' => $prefix ],
+                               __METHOD__
+                       );
+
+                       if ( ! $row ) {
+                               $dbw->insert(
+                                       'interwiki',
+                                       [
+                                               'iw_prefix' => $prefix,
+                                               'iw_url' => $d['url'],
+                                               'iw_local' => 1
+                                       ],
+                                       __METHOD__,
+                                       'IGNORE'
+                               );
+                       }
+
+                       Interwiki::invalidateCache( $prefix );
+               }
+
+               $this->output( "Interwiki links are populated.\n" );
+
+               return true;
+       }
+
+}
+
+$maintClass = PopulateInterwiki::class;
+require_once RUN_MAINTENANCE_IF_MAIN;
index e8be528..c784f15 100644 (file)
@@ -1775,6 +1775,44 @@ return [
 
        /* MediaWiki Special pages */
 
+       'mediawiki.rcfilters.filters' => [
+               'scripts' => [
+                       'resources/src/mediawiki.rcfilters/mw.rcfilters.js',
+                       'resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterItem.js',
+                       'resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js',
+                       'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FiltersListWidget.js',
+                       'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterGroupWidget.js',
+                       'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterItemWidget.js',
+                       'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js',
+                       'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js',
+                       'resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js',
+                       'resources/src/mediawiki.rcfilters/mw.rcfilters.init.js',
+               ],
+               'styles' => [
+                       'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less',
+                       'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterItemWidget.less',
+                       'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterGroupWidget.less',
+                       'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FiltersListWidget.less',
+                       'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterWrapperWidget.less',
+                       'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.less',
+               ],
+               'messages' => [
+                       'rcfilters-activefilters',
+                       'rcfilters-search-placeholder',
+                       'rcfilters-invalid-filter',
+                       'rcfilters-filterlist-title',
+                       'rcfilters-filterlist-noresults',
+                       'rcfilters-filtergroup-authorship',
+                       'rcfilters-filter-editsbyself-label',
+                       'rcfilters-filter-editsbyself-description',
+                       'rcfilters-filter-editsbyother-label',
+                       'rcfilters-filter-editsbyother-description',
+               ],
+               'dependencies' => [
+                       'oojs-ui',
+                       'mediawiki.Uri',
+               ],
+       ],
        'mediawiki.special' => [
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.css',
                'targets' => [ 'desktop', 'mobile' ],
@@ -1826,6 +1864,7 @@ return [
                        'apisandbox-sending-request',
                        'apisandbox-loading-results',
                        'apisandbox-results-error',
+                       'apisandbox-request-params-json',
                        'apisandbox-request-url-label',
                        'apisandbox-request-time',
                        'apisandbox-results-fixtoken',
@@ -1849,9 +1888,11 @@ return [
        ],
        'mediawiki.special.changeslist' => [
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.css',
+               'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.changeslist.legend' => [
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css',
+               'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.changeslist.legend.js' => [
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js',
@@ -1859,6 +1900,7 @@ return [
                        'jquery.makeCollapsible',
                        'mediawiki.cookie',
                ],
+               'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.changeslist.enhanced' => [
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css',
@@ -1929,6 +1971,7 @@ return [
        ],
        'mediawiki.special.recentchanges' => [
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.recentchanges.js',
+               'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.search' => [
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.js',
index 7db7547..7b4e546 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Чаховіч Уладзіслаў",
                        "Artificial123",
-                       "Goshaproject"
+                       "Goshaproject",
+                       "Mechanizatar"
                ]
        },
        "ooui-outline-control-move-down": "Перамясціць элемент ўніз",
@@ -18,6 +19,7 @@
        "ooui-dialog-process-dismiss": "Прапусціць",
        "ooui-dialog-process-retry": "Паспрабаваць яшчэ раз",
        "ooui-dialog-process-continue": "Працягнуць",
+       "ooui-selectfile-button-select": "Выбраць файл",
        "ooui-selectfile-not-supported": "Выбраны файл не падтрымліваецца",
        "ooui-selectfile-placeholder": "Файл не выбраны"
 }
diff --git a/resources/lib/oojs-ui/i18n/hif-latn.json b/resources/lib/oojs-ui/i18n/hif-latn.json
new file mode 100644 (file)
index 0000000..9e903ca
--- /dev/null
@@ -0,0 +1,23 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Thakurji"
+               ]
+       },
+       "ooui-outline-control-move-down": "Item ke niche karo",
+       "ooui-outline-control-move-up": "Item ke uppar karo",
+       "ooui-outline-control-remove": "Item ke hatao",
+       "ooui-toolbar-more": "Aur",
+       "ooui-toolgroup-expand": "Aur",
+       "ooui-toolgroup-collapse": "Kamtii",
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Cancel karo",
+       "ooui-dialog-process-error": "Koi chij wrong hoe gais",
+       "ooui-dialog-process-dismiss": "Dismiss karo",
+       "ooui-dialog-process-retry": "Fir se try karo",
+       "ooui-dialog-process-continue": "Continue",
+       "ooui-selectfile-button-select": "Ek file ke select karo",
+       "ooui-selectfile-not-supported": "File selection ke support nai karaa jaawe hai",
+       "ooui-selectfile-placeholder": "Koi file ke nai select karaa gais hai",
+       "ooui-selectfile-dragdrop-placeholder": "Hian pe file ke girao"
+}
index dbe9f86..9b88695 100644 (file)
@@ -11,7 +11,8 @@
                        "Sayginer",
                        "Meelo",
                        "McAang",
-                       "Uğurkent"
+                       "Uğurkent",
+                       "1917 Ekim Devrimi"
                ]
        },
        "ooui-outline-control-move-down": "Ögeyi aşağı taşı",
@@ -28,5 +29,6 @@
        "ooui-dialog-process-continue": "Devam et",
        "ooui-selectfile-button-select": "Dosya seç",
        "ooui-selectfile-not-supported": "Dosya seçimi desteklenmiyor",
-       "ooui-selectfile-placeholder": "Herhangi bir dosya seçilmedi"
+       "ooui-selectfile-placeholder": "Herhangi bir dosya seçilmedi",
+       "ooui-selectfile-dragdrop-placeholder": "Dosyayı buraya aç"
 }
index 911b618..335e509 100644 (file)
@@ -18,5 +18,7 @@
        "ooui-dialog-process-retry": "Кабатлау",
        "ooui-dialog-process-continue": "Дәвам итү",
        "ooui-selectfile-button-select": "Файлны сайлагыз",
-       "ooui-selectfile-placeholder": "Файл сайланмаган"
+       "ooui-selectfile-not-supported": "Файл сайлау хупланмый",
+       "ooui-selectfile-placeholder": "Файл сайланмаган",
+       "ooui-selectfile-dragdrop-placeholder": "Файлны монда куегыз"
 }
index 1acedf2..556196c 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:53Z
+ * Date: 2017-01-04T00:22:40Z
  */
 ( function ( OO ) {
 
index 72df673..c36774a 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:57Z
+ * Date: 2017-01-04T00:22:45Z
  */
 .oo-ui-element-hidden {
   display: none !important;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
 }
-.oo-ui-floatableElement-hidden {
-  display: none;
-}
 .oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-iconElement.oo-ui-iconElement-icon {
   background-size: contain;
@@ -403,6 +400,9 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   white-space: normal;
   float: left;
 }
+.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label:empty {
+  display: none;
+}
 .oo-ui-fieldsetLayout-group {
   clear: both;
 }
@@ -414,7 +414,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 }
 .oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
   padding: 0.5em 0.75em;
-  line-height: 1.5;
+  line-height: 1.4;
 }
 .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout,
 .oo-ui-fieldsetLayout + .oo-ui-formLayout {
@@ -449,6 +449,8 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 }
 .oo-ui-panelLayout-scrollable {
   overflow-y: auto;
+  /* Make scrolling smooth */
+  -webkit-transform: translate3d(0, 0, 0);
 }
 .oo-ui-panelLayout-expanded {
   position: absolute;
@@ -713,7 +715,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   position: relative;
 }
 .oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
   cursor: auto;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget {
@@ -1169,9 +1170,9 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 .oo-ui-progressBarWidget-bar {
   height: 1em;
   border-right: 1px solid #ccc;
-  -webkit-transition: width 250ms ease, margin-left 250ms ease;
-     -moz-transition: width 250ms ease, margin-left 250ms ease;
-          transition: width 250ms ease, margin-left 250ms ease;
+  -webkit-transition: width 250ms ease;
+     -moz-transition: width 250ms ease;
+          transition: width 250ms ease;
   background-color: #cde7f4;
   background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0, #eaf4fa), color-stop(100%, #b0d9ee));
   background-image: -webkit-linear-gradient(top, #eaf4fa 0, #b0d9ee 100%);
@@ -1184,7 +1185,10 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
      -moz-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
           animation: oo-ui-progressBarWidget-slide 2s infinite linear;
   width: 40%;
-  margin-left: -10%;
+  -webkit-transform: translate(-25%);
+     -moz-transform: translate(-25%);
+      -ms-transform: translate(-25%);
+          transform: translate(-25%);
   border-left: 1px solid #a6cee1;
 }
 .oo-ui-progressBarWidget.oo-ui-widget-disabled {
@@ -1192,25 +1196,43 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 }
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
   from {
-    margin-left: -40%;
+    -webkit-transform: translate(-100%);
+       -moz-transform: translate(-100%);
+        -ms-transform: translate(-100%);
+            transform: translate(-100%);
   }
   to {
-    margin-left: 100%;
+    -webkit-transform: translate(350%);
+       -moz-transform: translate(350%);
+        -ms-transform: translate(350%);
+            transform: translate(350%);
   }
 }
 @-moz-keyframes oo-ui-progressBarWidget-slide {
   from {
-    margin-left: -40%;
+    -webkit-transform: translate(-100%);
+       -moz-transform: translate(-100%);
+        -ms-transform: translate(-100%);
+            transform: translate(-100%);
   }
   to {
-    margin-left: 100%;
+    -webkit-transform: translate(350%);
+       -moz-transform: translate(350%);
+        -ms-transform: translate(350%);
+            transform: translate(350%);
   }
 }
 @keyframes oo-ui-progressBarWidget-slide {
   from {
-    margin-left: -40%;
+    -webkit-transform: translate(-100%);
+       -moz-transform: translate(-100%);
+        -ms-transform: translate(-100%);
+            transform: translate(-100%);
   }
   to {
-    margin-left: 100%;
+    -webkit-transform: translate(350%);
+       -moz-transform: translate(350%);
+        -ms-transform: translate(350%);
+            transform: translate(350%);
   }
 }
index bab34b8..68d6413 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:57Z
+ * Date: 2017-01-04T00:22:45Z
  */
 .oo-ui-element-hidden {
   display: none !important;
   color: #000;
   box-shadow: none;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
   color: #36c;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
   color: #447ff5;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active:focus > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active:focus,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
   color: #2a4b8d;
   box-shadow: none;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
   color: #36c;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
   color: #447ff5;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:active:focus > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:active:focus,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
   color: #2a4b8d;
   box-shadow: none;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
   color: #d33;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
   color: #ff4242;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:active:focus > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:active:focus,
+.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
   color: #b32424;
   box-shadow: none;
 }
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
   background-color: #fff;
-  border-color: #859dcc;
+  border-color: #447ff5;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active:focus,
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
   background-color: #fff;
-  border-color: #859dcc;
+  border-color: #447ff5;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:active:focus,
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
   background-color: #fff;
-  border-color: #b77c79;
+  border-color: #ff4242;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:active:focus,
      -moz-box-sizing: border-box;
           box-sizing: border-box;
 }
-.oo-ui-floatableElement-hidden {
-  display: none;
-}
 .oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-iconElement.oo-ui-iconElement-icon {
   background-size: contain;
 }
 .oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
   padding-bottom: 0.3125em;
+  line-height: 1.4;
 }
 .oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
   padding: 0.3125em 0.46875em;
 .oo-ui-fieldLayout-messages .oo-ui-labelWidget {
   display: table-cell;
   padding: 0.1em 0 0.1em 0.3125em;
-  line-height: 1.5;
+  line-height: 1.4;
   vertical-align: middle;
 }
 .oo-ui-actionFieldLayout {
@@ -541,6 +539,9 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   white-space: normal;
   float: left;
 }
+.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label:empty {
+  display: none;
+}
 .oo-ui-fieldsetLayout-group {
   clear: both;
 }
@@ -552,7 +553,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 }
 .oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
   padding: 0.5em 0.75em;
-  line-height: 1.5;
+  line-height: 1.4;
 }
 .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout,
 .oo-ui-fieldsetLayout + .oo-ui-formLayout {
@@ -562,6 +563,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   margin-bottom: 0.56818em;
   font-size: 1.1em;
   font-weight: bold;
+  line-height: 1.4;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
   padding-left: 2em;
@@ -586,6 +588,8 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 }
 .oo-ui-panelLayout-scrollable {
   overflow-y: auto;
+  /* Make scrolling smooth */
+  -webkit-transform: translate3d(0, 0, 0);
 }
 .oo-ui-panelLayout-expanded {
   position: absolute;
@@ -642,7 +646,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   overflow: hidden;
 }
 .oo-ui-optionWidget .oo-ui-labelElement-label {
-  line-height: 1.5;
+  line-height: 1.6;
 }
 .oo-ui-optionWidget-selected .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
   opacity: 1;
@@ -863,7 +867,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   position: relative;
 }
 .oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
   cursor: auto;
 }
 .oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget {
@@ -980,7 +983,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   box-shadow: inset 0 0 0 1px #36c, inset 0 0 0 2px #fff;
 }
 .oo-ui-checkboxMultiselectInputWidget .oo-ui-fieldLayout {
-  margin-bottom: 0;
+  margin-top: 0;
 }
 .oo-ui-checkboxMultiselectInputWidget .oo-ui-fieldLayout .oo-ui-fieldLayout-body {
   padding: 0.25em 0;
@@ -1136,7 +1139,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   left: -3px;
 }
 .oo-ui-radioSelectInputWidget .oo-ui-fieldLayout {
-  margin-bottom: 0;
+  margin-top: 0;
 }
 .oo-ui-radioSelectInputWidget .oo-ui-fieldLayout .oo-ui-fieldLayout-body {
   padding: 0.25em 0;
@@ -1251,7 +1254,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled input,
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea {
-  box-shadow: inset 0 0 0 0.1em #fff;
+  box-shadow: inset 0 0 0 1px #fff;
   -webkit-transition: border-color 200ms cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 200ms cubic-bezier(0.39, 0.575, 0.565, 1);
      -moz-transition: border-color 200ms cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 200ms cubic-bezier(0.39, 0.575, 0.565, 1);
           transition: border-color 200ms cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 200ms cubic-bezier(0.39, 0.575, 0.565, 1);
@@ -1298,16 +1301,16 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid input,
 .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid textarea {
-  border-color: #f00;
+  border-color: #d33;
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid input:hover,
 .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid textarea:hover {
-  border-color: #f00;
+  border-color: #d33;
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid input:focus,
 .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid textarea:focus {
-  border-color: #f00;
-  box-shadow: inset 0 0 0 0.1em #f00;
+  border-color: #d33;
+  box-shadow: inset 0 0 0 1px #d33;
 }
 .oo-ui-textInputWidget.oo-ui-iconElement input,
 .oo-ui-textInputWidget.oo-ui-iconElement textarea {
@@ -1597,9 +1600,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   text-overflow: ellipsis;
   overflow: hidden;
 }
-.oo-ui-multioptionWidget .oo-ui-labelElement-label {
-  line-height: 1.5;
-}
 .oo-ui-multioptionWidget.oo-ui-widget-disabled {
   color: #72777d;
 }
@@ -1628,16 +1628,19 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 .oo-ui-progressBarWidget-bar {
   background-color: #36c;
   height: 1em;
-  -webkit-transition: width 200ms, margin-left 200ms;
-     -moz-transition: width 200ms, margin-left 200ms;
-          transition: width 200ms, margin-left 200ms;
+  -webkit-transition: width 200ms;
+     -moz-transition: width 200ms;
+          transition: width 200ms;
 }
 .oo-ui-progressBarWidget-indeterminate .oo-ui-progressBarWidget-bar {
   -webkit-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
      -moz-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
           animation: oo-ui-progressBarWidget-slide 2s infinite linear;
   width: 40%;
-  margin-left: -10%;
+  -webkit-transform: translate(-25%);
+     -moz-transform: translate(-25%);
+      -ms-transform: translate(-25%);
+          transform: translate(-25%);
   border-left-width: 1px;
 }
 .oo-ui-progressBarWidget.oo-ui-widget-disabled {
@@ -1645,25 +1648,43 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 }
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
   from {
-    margin-left: -40%;
+    -webkit-transform: translate(-100%);
+       -moz-transform: translate(-100%);
+        -ms-transform: translate(-100%);
+            transform: translate(-100%);
   }
   to {
-    margin-left: 100%;
+    -webkit-transform: translate(350%);
+       -moz-transform: translate(350%);
+        -ms-transform: translate(350%);
+            transform: translate(350%);
   }
 }
 @-moz-keyframes oo-ui-progressBarWidget-slide {
   from {
-    margin-left: -40%;
+    -webkit-transform: translate(-100%);
+       -moz-transform: translate(-100%);
+        -ms-transform: translate(-100%);
+            transform: translate(-100%);
   }
   to {
-    margin-left: 100%;
+    -webkit-transform: translate(350%);
+       -moz-transform: translate(350%);
+        -ms-transform: translate(350%);
+            transform: translate(350%);
   }
 }
 @keyframes oo-ui-progressBarWidget-slide {
   from {
-    margin-left: -40%;
+    -webkit-transform: translate(-100%);
+       -moz-transform: translate(-100%);
+        -ms-transform: translate(-100%);
+            transform: translate(-100%);
   }
   to {
-    margin-left: 100%;
+    -webkit-transform: translate(350%);
+       -moz-transform: translate(350%);
+        -ms-transform: translate(350%);
+            transform: translate(350%);
   }
 }
index b92094c..872d81f 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:53Z
+ * Date: 2017-01-04T00:22:40Z
  */
 ( function ( OO ) {
 
@@ -486,6 +486,22 @@ OO.ui.isSafeUrl = function ( url ) {
        return false;
 };
 
+/**
+ * Check if the user has a 'mobile' device.
+ *
+ * For our purposes this means the user is primarily using an
+ * on-screen keyboard, touch input instead of a mouse and may
+ * have a physically small display.
+ *
+ * It is left up to implementors to decide how to compute this
+ * so the default implementation always returns false.
+ *
+ * @return {boolean} Use is on a mobile device
+ */
+OO.ui.isMobile = function () {
+       return false;
+};
+
 /*!
  * Mixin namespace.
  */
@@ -1368,6 +1384,13 @@ OO.ui.Element.prototype.setElementGroup = function ( group ) {
  * @return {jQuery.Promise} Promise which resolves when the scroll is complete
  */
 OO.ui.Element.prototype.scrollElementIntoView = function ( config ) {
+       if (
+               !this.isElementAttached() ||
+               !this.isVisible() ||
+               ( this.getElementGroup() && !this.getElementGroup().isVisible() )
+       ) {
+               return $.Deferred().resolve();
+       }
        return OO.ui.Element.static.scrollIntoView( this.$element[ 0 ], config );
 };
 
@@ -4103,9 +4126,13 @@ OO.ui.mixin.ClippableElement.prototype.clip = function () {
        extraHeight = $container.outerHeight() - this.$clippable.outerHeight();
        extraWidth = $container.outerWidth() - this.$clippable.outerWidth();
        ccOffset = $container.offset();
-       $scrollableContainer = this.$clippableScrollableContainer.is( 'html, body' ) ?
-               this.$clippableWindow : this.$clippableScrollableContainer;
-       scOffset = $scrollableContainer.offset() || { top: 0, left: 0 };
+       if ( this.$clippableScrollableContainer.is( 'html, body' ) ) {
+               $scrollableContainer = this.$clippableWindow;
+               scOffset = { top: 0, left: 0 };
+       } else {
+               $scrollableContainer = this.$clippableScrollableContainer;
+               scOffset = $scrollableContainer.offset();
+       }
        scHeight = $scrollableContainer.innerHeight() - buffer;
        scWidth = $scrollableContainer.innerWidth() - buffer;
        ccWidth = $container.outerWidth() + buffer;
@@ -7197,10 +7224,10 @@ OO.ui.mixin.FloatableElement.prototype.position = function () {
        }
 
        if ( !this.isElementInViewport( this.$floatableContainer, this.$floatableClosestScrollable ) ) {
-               this.$floatable.addClass( 'oo-ui-floatableElement-hidden' );
+               this.$floatable.addClass( 'oo-ui-element-hidden' );
                return;
        } else {
-               this.$floatable.removeClass( 'oo-ui-floatableElement-hidden' );
+               this.$floatable.removeClass( 'oo-ui-element-hidden' );
        }
 
        if ( !this.needsCustomPosition ) {
@@ -8657,9 +8684,6 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
                blur: this.onBlur.bind( this ),
                focus: this.onFocus.bind( this )
        } );
-       this.$input.one( {
-               focus: this.onElementAttach.bind( this )
-       } );
        this.$icon.on( 'mousedown', this.onIconMouseDown.bind( this ) );
        this.$indicator.on( 'mousedown', this.onIndicatorMouseDown.bind( this ) );
        this.on( 'labelChange', this.updatePosition.bind( this ) );
@@ -8704,6 +8728,7 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
                this.$input.attr( 'rows', config.rows );
        }
        if ( this.label || config.autosize ) {
+               this.isWaitingToBeAttached = true;
                this.installParentChangeDetector();
        }
 };
@@ -8814,6 +8839,11 @@ OO.ui.TextInputWidget.prototype.onBlur = function () {
  * @param {jQuery.Event} e Focus event
  */
 OO.ui.TextInputWidget.prototype.onFocus = function () {
+       if ( this.isWaitingToBeAttached ) {
+               // If we've received focus, then we must be attached to the document, and if
+               // isWaitingToBeAttached is still true, that means the handler never fired. Fire it now.
+               this.onElementAttach();
+       }
        this.setValidityFlag( true );
 };
 
@@ -8824,6 +8854,7 @@ OO.ui.TextInputWidget.prototype.onFocus = function () {
  * @param {jQuery.Event} e Element attach event
  */
 OO.ui.TextInputWidget.prototype.onElementAttach = function () {
+       this.isWaitingToBeAttached = false;
        // Any previously calculated size is now probably invalid if we reattached elsewhere
        this.valCache = null;
        this.adjustSize();
@@ -8936,7 +8967,7 @@ OO.ui.TextInputWidget.prototype.installParentChangeDetector = function () {
        if ( MutationObserver ) {
                // The new way. If only it wasn't so ugly.
 
-               if ( this.$element.closest( 'html' ).length ) {
+               if ( this.isElementAttached() ) {
                        // Widget is attached already, do nothing. This breaks the functionality of this function when
                        // the widget is detached and reattached. Alas, doing this correctly with MutationObserver
                        // would require observation of the whole document, which would hurt performance of other,
@@ -8971,7 +9002,7 @@ OO.ui.TextInputWidget.prototype.installParentChangeDetector = function () {
 
                onRemove = function () {
                        // If the node was attached somewhere else, report it
-                       if ( widget.$element.closest( 'html' ).length ) {
+                       if ( widget.isElementAttached() ) {
                                widget.onElementAttach();
                        }
                        mutationObserver.disconnect();
@@ -9000,6 +9031,11 @@ OO.ui.TextInputWidget.prototype.adjustSize = function () {
        var scrollHeight, innerHeight, outerHeight, maxInnerHeight, measurementError,
                idealHeight, newHeight, scrollWidth, property;
 
+       if ( this.isWaitingToBeAttached ) {
+               // #onElementAttach will be called soon, which calls this method
+               return this;
+       }
+
        if ( this.multiline && this.$input.val() !== this.valCache ) {
                if ( this.autosize ) {
                        this.$clone
@@ -9386,6 +9422,12 @@ OO.ui.TextInputWidget.prototype.updateSearchIndicator = function () {
  */
 OO.ui.TextInputWidget.prototype.positionLabel = function () {
        var after, rtl, property;
+
+       if ( this.isWaitingToBeAttached ) {
+               // #onElementAttach will be called soon, which calls this method
+               return this;
+       }
+
        // Clear old values
        this.$input
                // Clear old values if present
@@ -9578,6 +9620,9 @@ OO.ui.ComboBoxInputWidget = function OoUiComboBoxInputWidget( config ) {
                autocomplete: false
        }, config );
 
+       // ComboBoxInputWidget shouldn't support multiline
+       config.multiline = false;
+
        // Parent constructor
        OO.ui.ComboBoxInputWidget.parent.call( this, config );
 
index 7dc6bef..c2ea652 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:53Z
+ * Date: 2017-01-04T00:22:40Z
  */
 ( function ( OO ) {
 
index baf8833..a367301 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:57Z
+ * Date: 2017-01-04T00:22:45Z
  */
 .oo-ui-popupTool .oo-ui-popupWidget-popup,
 .oo-ui-popupTool .oo-ui-popupWidget-anchor {
 .oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
   color: #000;
 }
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
-}
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool {
   display: inline-block;
   position: relative;
index 99a1f5e..0610822 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:57Z
+ * Date: 2017-01-04T00:22:45Z
  */
 .oo-ui-tool.oo-ui-widget-enabled {
   -webkit-transition: background-color 100ms;
 .oo-ui-toolbar-narrow .oo-ui-toolGroup + .oo-ui-toolGroup {
   margin-left: 0;
 }
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-  display: none;
-}
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool {
   display: inline-block;
   position: relative;
index e45ca29..5280a9f 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:53Z
+ * Date: 2017-01-04T00:22:40Z
  */
 ( function ( OO ) {
 
index 318bf82..941eb37 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:57Z
+ * Date: 2017-01-04T00:22:45Z
  */
 .oo-ui-draggableElement-handle,
 .oo-ui-draggableElement-handle.oo-ui-widget {
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
-  -webkit-transform: translateZ(0);
-     -moz-transform: translateZ(0);
-      -ms-transform: translateZ(0);
-          transform: translateZ(0);
+  -webkit-transform: translate3d(0, 0, 0);
   height: 2em;
   width: 4em;
   border-radius: 1em;
index a4db2a3..37eee66 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:57Z
+ * Date: 2017-01-04T00:22:45Z
  */
 .oo-ui-draggableElement-handle,
 .oo-ui-draggableElement-handle.oo-ui-widget {
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
-  -webkit-transform: translateZ(0);
-     -moz-transform: translateZ(0);
-      -ms-transform: translateZ(0);
-          transform: translateZ(0);
+  -webkit-transform: translate3d(0, 0, 0);
   background-color: #f8f9fa;
   width: 3.5em;
   min-height: 26px;
index 1185fc1..d7e92c2 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:53Z
+ * Date: 2017-01-04T00:22:40Z
  */
 ( function ( OO ) {
 
@@ -1642,7 +1642,7 @@ OO.ui.MenuLayout.prototype.getMenuPosition = function () {
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {boolean} [continuous=false] Show all pages, one after another
- * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new page is displayed.
+ * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new page is displayed. Disabled on mobile.
  * @cfg {boolean} [outlined=false] Show the outline. The outline is used to navigate through the pages of the booklet.
  * @cfg {boolean} [editable=false] Show controls for adding, removing and reordering pages
  */
@@ -1781,7 +1781,7 @@ OO.ui.BookletLayout.prototype.onStackLayoutSet = function ( page ) {
        if ( !this.scrolling && page ) {
                page.scrollElementIntoView( {
                        complete: function () {
-                               if ( layout.autoFocus ) {
+                               if ( layout.autoFocus && !OO.ui.isMobile() ) {
                                        layout.focus();
                                }
                        }
@@ -2112,6 +2112,7 @@ OO.ui.BookletLayout.prototype.setPage = function ( name ) {
                                // meaningless because the next page is not visible yet and thus can't hold focus.
                                if (
                                        this.autoFocus &&
+                                       !OO.ui.isMobile() &&
                                        this.stackLayout.continuous &&
                                        OO.ui.findFocusable( page.$element ).length !== 0
                                ) {
@@ -2188,7 +2189,7 @@ OO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {
  * @param {Object} [config] Configuration options
  * @cfg {boolean} [continuous=false] Show all cards, one after another
  * @cfg {boolean} [expanded=true] Expand the content panel to fill the entire parent element.
- * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new card is displayed.
+ * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new card is displayed. Disabled on mobile.
  */
 OO.ui.IndexLayout = function OoUiIndexLayout( config ) {
        // Configuration initialization
@@ -2291,7 +2292,7 @@ OO.ui.IndexLayout.prototype.onStackLayoutSet = function ( card ) {
        if ( card ) {
                card.scrollElementIntoView( {
                        complete: function () {
-                               if ( layout.autoFocus ) {
+                               if ( layout.autoFocus && !OO.ui.isMobile() ) {
                                        layout.focus();
                                }
                        }
@@ -2556,6 +2557,7 @@ OO.ui.IndexLayout.prototype.setCard = function ( name ) {
                                // meaningless because the next card is not visible yet and thus can't hold focus.
                                if (
                                        this.autoFocus &&
+                                       !OO.ui.isMobile() &&
                                        this.stackLayout.continuous &&
                                        OO.ui.findFocusable( card.$element ).length !== 0
                                ) {
@@ -5234,11 +5236,9 @@ OO.ui.NumberInputWidget.prototype.validateNumber = function ( value ) {
                return false;
        }
 
-       /* eslint-disable no-bitwise */
-       if ( this.isInteger && ( n | 0 ) !== n ) {
+       if ( this.isInteger && Math.floor( n ) !== n ) {
                return false;
        }
-       /* eslint-enable no-bitwise */
 
        if ( n < this.min || n > this.max ) {
                return false;
index ad0e7ab..ff013a0 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:57Z
+ * Date: 2017-01-04T00:22:45Z
  */
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
   background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
index ecc0004..de26ac0 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:57Z
+ * Date: 2017-01-04T00:22:45Z
  */
 .oo-ui-window {
   background: transparent;
 }
 .oo-ui-messageDialog-message-verbose {
   font-size: 1.1em;
-  line-height: 1.5;
+  line-height: 1.4;
   text-align: left;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
   text-align: left;
   margin: 1em;
   padding: 1em;
-  border: 1px solid #ff9e9e;
+  border: 1px solid #d33;
   background-color: #fff7f7;
   border-radius: 2px;
 }
index b47b0c8..be81841 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.2
+ * OOjs UI v0.18.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
- * Copyright 2011–2016 OOjs UI Team and other contributors.
+ * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-12-06T23:32:53Z
+ * Date: 2017-01-04T00:22:40Z
  */
 ( function ( OO ) {
 
@@ -1987,7 +1987,7 @@ OO.ui.Window.prototype.getReadyProcess = function () {
 /**
  * Get the 'hold' process.
  *
- * The hold proccess is used to keep a window from being used in a particular context,
+ * The hold process is used to keep a window from being used in a particular context,
  * based on the `data` argument. This method is called during the closing phase of the window’s
  * lifecycle.
  *
@@ -2881,11 +2881,19 @@ OO.ui.MessageDialog.prototype.setDimensions = function ( 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.
        setTimeout( function () {
-               var oldOverflow = $scrollable[ 0 ].style.overflow;
+               var oldOverflow = $scrollable[ 0 ].style.overflow,
+                       activeElement = document.activeElement;
+
                $scrollable[ 0 ].style.overflow = 'hidden';
 
                OO.ui.Element.static.reconsiderScrollbars( $scrollable[ 0 ] );
 
+               // Check reconsiderScrollbars didn't destroy our focus, as we
+               // are doing this after the ready process.
+               if ( activeElement && activeElement !== document.activeElement && activeElement.focus ) {
+                       activeElement.focus();
+               }
+
                $scrollable[ 0 ].style.overflow = oldOverflow;
        }, 300 );
 
@@ -3153,10 +3161,20 @@ OO.ui.ProcessDialog.prototype.initialize = function () {
  * @inheritdoc
  */
 OO.ui.ProcessDialog.prototype.getActionWidgets = function ( actions ) {
-       var i, len, widgets = [];
+       var i, len, config,
+               isMobile = OO.ui.isMobile(),
+               widgets = [];
+
        for ( i = 0, len = actions.length; i < len; i++ ) {
+               config = $.extend( { framed: !OO.ui.isMobile() }, actions[ i ] );
+               if ( isMobile && ( config.flags === 'back' || config.flags.indexOf( 'back' ) !== -1 ) ) {
+                       $.extend( config, {
+                               icon: 'previous',
+                               label: ''
+                       } );
+               }
                widgets.push(
-                       new OO.ui.ActionWidget( $.extend( { framed: true }, actions[ i ] ) )
+                       new OO.ui.ActionWidget( config )
                );
        }
        return widgets;
@@ -3426,4 +3444,55 @@ OO.ui.confirm = function ( text, options ) {
        } );
 };
 
+/**
+ * Display a quick modal prompt dialog, using a OO.ui.MessageDialog. While the dialog is open,
+ * the rest of the page will be dimmed out and the user won't be able to interact with it. The
+ * dialog has a text input widget and two action buttons, one to confirm an operation (labelled "OK")
+ * and one to cancel it (labelled "Cancel").
+ *
+ * A window manager is created automatically when this function is called for the first time.
+ *
+ *     @example
+ *     OO.ui.prompt( 'Choose a line to go to', { textInput: { placeholder: 'Line number' } } ).done( function ( result ) {
+ *         if ( result !== null ) {
+ *             console.log( 'User typed "' + result + '" then clicked "OK".' );
+ *         } else {
+ *             console.log( 'User clicked "Cancel" or closed the dialog.' );
+ *         }
+ *     } );
+ *
+ * @param {jQuery|string} text Message text to display
+ * @param {Object} [options] Additional options, see OO.ui.MessageDialog#getSetupProcess
+ * @cfg {Object} [textInput] Additional options for text input widget, see OO.ui.TextInputWidget
+ * @return {jQuery.Promise} Promise resolved when the user closes the dialog. If the user chose to
+ *  confirm, the promise will resolve with the value of the text input widget; otherwise, it will
+ *  resolve to `null`.
+ */
+OO.ui.prompt = function ( text, options ) {
+       var manager = OO.ui.getWindowManager(),
+               textInput = new OO.ui.TextInputWidget( ( options && options.textInput ) || {} ),
+               textField = new OO.ui.FieldLayout( textInput, {
+                       align: 'top',
+                       label: text
+               } );
+
+       // TODO: This is a little hacky, and could be done by extending MessageDialog instead.
+
+       return manager.openWindow( 'messageDialog', $.extend( {
+               message: textField.$element,
+               verbose: true
+       }, options ) ).then( function ( opened ) {
+               // After ready
+               textInput.on( 'enter', function () {
+                       manager.getCurrentWindow().close( { action: 'accept' } );
+               } );
+               textInput.focus();
+               return opened.then( function ( closing ) {
+                       return closing.then( function ( data ) {
+                               return $.Deferred().resolve( data && data.action === 'accept' ? textInput.getValue() : null );
+                       } );
+               } );
+       } );
+};
+
 }( OO ) );
index 02dfffa..449cb77 100644 (file)
@@ -9,7 +9,7 @@
        },
        "images": {
                "beta": { "file": "images/icons/beta.svg" },
-               "betaLaunch": { "file": "images/icons/betaLaunch.svg" },
+               "betaLaunch": { "file": "images/icons/logo-wikimediaDiscovery.svg" },
                "bookmark": { "file": {
                        "ltr": "images/icons/bookmark-ltr.svg",
                        "rtl": "images/icons/bookmark-rtl.svg"
index f904cc2..b5dff27 100644 (file)
@@ -4,30 +4,46 @@
        "images": {
                "block": { "file": "images/icons/block.svg" },
                "blockUndo": { "file": {
-                       "ltr": "images/icons/blockUndo-ltr.svg",
-                       "rtl": "images/icons/blockUndo-rtl.svg"
+                       "ltr": "images/icons/unBlock-ltr.svg",
+                       "rtl": "images/icons/unBlock-rtl.svg"
+               } },
+               "unBlock": { "file": {
+                       "ltr": "images/icons/unBlock-ltr.svg",
+                       "rtl": "images/icons/unBlock-rtl.svg"
                } },
                "flag": { "file": {
                        "ltr": "images/icons/flag-ltr.svg",
                        "rtl": "images/icons/flag-rtl.svg"
                } },
                "flagUndo": { "file": {
-                       "ltr": "images/icons/flagUndo-ltr.svg",
-                       "rtl": "images/icons/flagUndo-rtl.svg"
+                       "ltr": "images/icons/unFlag-ltr.svg",
+                       "rtl": "images/icons/unFlag-rtl.svg"
                } },
-               "lock": { "file": "images/icons/lock.svg" },
-               "star": { "file": "images/icons/star.svg" },
-               "trash": { "file": "images/icons/trash.svg" },
-               "trashUndo": { "file": {
-                       "ltr": "images/icons/trashUndo-ltr.svg",
-                       "rtl": "images/icons/trashUndo-rtl.svg"
+               "unFlag": { "file": {
+                       "ltr": "images/icons/unFlag-ltr.svg",
+                       "rtl": "images/icons/unFlag-rtl.svg"
                } },
+               "lock": { "file": "images/icons/lock.svg" },
                "unLock": { "file": {
                        "ltr": "images/icons/unLock-ltr.svg",
                        "rtl": "images/icons/unLock-rtl.svg"
                } },
-               "unStar": { "file": "images/icons/unStar.svg" }
-
-
+               "star": { "file": "images/icons/star.svg" },
+               "unStar": { "file": "images/icons/unStar.svg" },
+               "trash": { "file": "images/icons/trash.svg" },
+               "unTrash": { "file": {
+                       "ltr": "images/icons/unTrash-ltr.svg",
+                       "rtl": "images/icons/unTrash-rtl.svg"
+               } },
+               "trashUndo": { "file": {
+                       "ltr": "images/icons/unTrash-ltr.svg",
+                       "rtl": "images/icons/unTrash-rtl.svg"
+               } },
+               "ongoingConversation": {
+                       "file": {
+                               "ltr": "images/icons/ongoingConversation-ltr.svg",
+                               "rtl": "images/icons/ongoingConversation-rtl.svg"
+                       }
+               }
        }
 }
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.png
deleted file mode 100644 (file)
index 0963538..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch-invert.svg
deleted file mode 100644 (file)
index 5058629..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><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/apex/images/icons/betaLaunch.png b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.png
deleted file mode 100644 (file)
index 6d3c067..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.svg b/resources/lib/oojs-ui/themes/apex/images/icons/betaLaunch.svg
deleted file mode 100644 (file)
index c3f99d6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="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/apex/images/icons/blockUndo-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.png
deleted file mode 100644 (file)
index 640bb2a..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-ltr.svg
deleted file mode 100644 (file)
index 160219c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.png
deleted file mode 100644 (file)
index 2475b06..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/blockUndo-rtl.svg
deleted file mode 100644 (file)
index 90fe46a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png
deleted file mode 100644 (file)
index 780cb87..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.svg
deleted file mode 100644 (file)
index 4bbd61c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
-</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png
deleted file mode 100644 (file)
index fa3696a..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.svg
deleted file mode 100644 (file)
index 5d94425..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
-</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery-invert.png
new file mode 100644 (file)
index 0000000..0963538
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery-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/apex/images/icons/logo-wikimediaDiscovery.png b/resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery.png
new file mode 100644 (file)
index 0000000..6d3c067
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery.svg b/resources/lib/oojs-ui/themes/apex/images/icons/logo-wikimediaDiscovery.svg
new file mode 100644 (file)
index 0000000..c3f99d6
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="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/apex/images/icons/ongoingConversation-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-ltr.png
new file mode 100644 (file)
index 0000000..df49095
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-ltr.svg
new file mode 100644 (file)
index 0000000..658809d
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+    <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-.405a1.332 1.332 0 0 1-.405-.945c0-.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-.405a1.332 1.332 0 0 1-.405-.945c0-.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-.405a1.332 1.332 0 0 1-.405-.945c0-.338.135-.675.405-.945.27-.27.608-.405.945-.405.338 0 .675.135.945.405.27.27.405.607.405.945z" id="ongoing-conversation" fill-rule="evenodd"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-rtl.png
new file mode 100644 (file)
index 0000000..3d7e9bd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/ongoingConversation-rtl.svg
new file mode 100644 (file)
index 0000000..648ce55
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+    <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-.945a1.334 1.334 0 0 0-.945-.405c-.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-.945a1.334 1.334 0 0 0-.945-.405c-.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-.945a1.332 1.332 0 0 0-.945-.405c-.337 0-.675.135-.945.405-.27.27-.405.608-.405.945z" id="ongoing-conversation" fill-rule="evenodd"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png
deleted file mode 100644 (file)
index 87590fa..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-ltr.svg
deleted file mode 100644 (file)
index 9a625b8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M4.5 3.5l-1 1L6 7v2h1v7.97L8 18h6.97l.03-.03 1-.97 2.5 2.5 1-1L16 15l-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1zM9 5v1l1 1h6v1h-5l1 1h3v3l1 1V9h1V6h-3V5zM8 9l1 1v6h1v-5l1 1v4h1v-3l1 1v2h1v-1l1 1v1H8zm5 1l1 1v-1z" id="trash-can-undo"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png
deleted file mode 100644 (file)
index dd35023..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/trashUndo-rtl.svg
deleted file mode 100644 (file)
index 17ca8dc..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M18.5 3.5l1 1L17 7v2h-1v7.97L15 18H8.03L8 17.97 7 17l-2.5 2.5-1-1L7 15l1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1zM14 5v1l-1 1H7v1h5l-1 1H8v3l-1 1V9H6V6h3V5zm1 4l-1 1v6h-1v-5l-1 1v4h-1v-3l-1 1v2H9v-1l-1 1v1h7zm-5 1l-1 1v-1z" id="trash-can-undo"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-ltr.png
new file mode 100644 (file)
index 0000000..640bb2a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-ltr.svg
new file mode 100644 (file)
index 0000000..160219c
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-rtl.png
new file mode 100644 (file)
index 0000000..2475b06
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/unBlock-rtl.svg
new file mode 100644 (file)
index 0000000..90fe46a
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-ltr.png
new file mode 100644 (file)
index 0000000..780cb87
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-ltr.svg
new file mode 100644 (file)
index 0000000..4bbd61c
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
+</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-rtl.png
new file mode 100644 (file)
index 0000000..fa3696a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/unFlag-rtl.svg
new file mode 100644 (file)
index 0000000..5d94425
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
+</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-ltr.png
new file mode 100644 (file)
index 0000000..87590fa
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-ltr.svg
new file mode 100644 (file)
index 0000000..9a625b8
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M4.5 3.5l-1 1L6 7v2h1v7.97L8 18h6.97l.03-.03 1-.97 2.5 2.5 1-1L16 15l-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1zM9 5v1l1 1h6v1h-5l1 1h3v3l1 1V9h1V6h-3V5zM8 9l1 1v6h1v-5l1 1v4h1v-3l1 1v2h1v-1l1 1v1H8zm5 1l1 1v-1z" id="trash-can-undo"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-rtl.png
new file mode 100644 (file)
index 0000000..dd35023
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/unTrash-rtl.svg
new file mode 100644 (file)
index 0000000..17ca8dc
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M18.5 3.5l1 1L17 7v2h-1v7.97L15 18H8.03L8 17.97 7 17l-2.5 2.5-1-1L7 15l1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1zM14 5v1l-1 1H7v1h5l-1 1H8v3l-1 1V9H6V6h3V5zm1 4l-1 1v6h-1v-5l-1 1v4h-1v-3l-1 1v2H9v-1l-1 1v1h7zm-5 1l-1 1v-1z" id="trash-can-undo"/>
+</svg>
index f110a04..e040ffb 100644 (file)
@@ -23,7 +23,7 @@
        },
        "images": {
                "beta": { "file": "images/icons/beta.svg" },
-               "betaLaunch": { "file": "images/icons/betaLaunch.svg" },
+               "betaLaunch": { "file": "images/icons/logo-wikimediaDiscovery.svg" },
                "bookmark": { "file": {
                        "ltr": "images/icons/bookmark-ltr.svg",
                        "rtl": "images/icons/bookmark-rtl.svg"
index 3779ae3..9cc0f32 100644 (file)
        "images": {
                "block": { "file": "images/icons/block.svg", "variants": [ "destructive" ] },
                "blockUndo": { "file": {
-                       "ltr": "images/icons/blockUndo-ltr.svg",
-                       "rtl": "images/icons/blockUndo-rtl.svg"
+                       "ltr": "images/icons/unBlock-ltr.svg",
+                       "rtl": "images/icons/unBlock-rtl.svg"
+               } },
+               "unBlock": { "file": {
+                       "ltr": "images/icons/unBlock-ltr.svg",
+                       "rtl": "images/icons/unBlock-rtl.svg"
                } },
                "flag": { "file": {
                        "ltr": "images/icons/flag-ltr.svg",
                        "rtl": "images/icons/flag-rtl.svg"
                } },
+               "unFlag": { "file": {
+                       "ltr": "images/icons/unFlag-ltr.svg",
+                       "rtl": "images/icons/unFlag-rtl.svg"
+               } },
                "flagUndo": { "file": {
-                       "ltr": "images/icons/flagUndo-ltr.svg",
-                       "rtl": "images/icons/flagUndo-rtl.svg"
+                       "ltr": "images/icons/unFlag-ltr.svg",
+                       "rtl": "images/icons/unFlag-rtl.svg"
                } },
                "lock": { "file": {
                        "ltr": "images/icons/lock-ltr.svg",
                        "rtl": "images/icons/lock-rtl.svg"
                }, "variants": [ "destructive" ] },
+               "unLock": { "file": {
+                       "ltr": "images/icons/unLock-ltr.svg",
+                       "rtl": "images/icons/unLock-rtl.svg"
+               }, "variants": [ "destructive" ] },
+               "star": { "file": "images/icons/star.svg", "variants": [ "constructive", "progressive" ] },
+               "unStar": { "file": "images/icons/unStar.svg", "variants": [ "constructive", "progressive" ] },
+               "trash": { "file": "images/icons/trash.svg" },
+               "unTrash": { "file": {
+                       "ltr": "images/icons/unTrash-ltr.svg",
+                       "rtl": "images/icons/unTrash-rtl.svg"
+               } },
+               "trashUndo": { "file": {
+                       "ltr": "images/icons/unTrash-ltr.svg",
+                       "rtl": "images/icons/unTrash-rtl.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", "progressive" ] },
-               "trash": { "file": "images/icons/trash.svg" },
-               "trashUndo": { "file": {
-                       "ltr": "images/icons/trashUndo-ltr.svg",
-                       "rtl": "images/icons/trashUndo-rtl.svg"
-               } },
-               "unLock": { "file": {
-                       "ltr": "images/icons/unLock-ltr.svg",
-                       "rtl": "images/icons/unLock-rtl.svg"
-               }, "variants": [ "destructive" ] },
-               "unStar": { "file": "images/icons/unStar.svg", "variants": [ "constructive", "progressive" ] }
+               }
        }
 }
index 61aec85..14f6b18 100644 (file)
@@ -24,6 +24,7 @@
        "images": {
                "logoCC": { "file": "images/icons/logo-cc.svg" },
                "logoWikimediaCommons": { "file": "images/icons/logo-wikimediaCommons.svg" },
+               "logoWikimediaDiscovery": { "file": "images/icons/logo-wikimediaDiscovery.svg" },
                "logoWikipedia": { "file": "images/icons/logo-wikipedia.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
deleted file mode 100644 (file)
index 0963538..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-invert.png and /dev/null 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
deleted file mode 100644 (file)
index 21548d9..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #fff }</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/betaLaunch-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-progressive.png
deleted file mode 100644 (file)
index 6afb2bd..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-progressive.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch-progressive.svg
deleted file mode 100644 (file)
index 359d032..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #36c }</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/betaLaunch.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.png
deleted file mode 100644 (file)
index 6d3c067..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.svg
deleted file mode 100644 (file)
index c3f99d6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="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/blockUndo-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.png
deleted file mode 100644 (file)
index 7426f56..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.svg
deleted file mode 100644 (file)
index 36fd719..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #fff }</style>
-    <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-progressive.png
deleted file mode 100644 (file)
index d797f3e..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-progressive.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-progressive.svg
deleted file mode 100644 (file)
index bc96e99..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #36c }</style>
-    <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.png
deleted file mode 100644 (file)
index 640bb2a..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.svg
deleted file mode 100644 (file)
index 160219c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.png
deleted file mode 100644 (file)
index a02e2e0..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.svg
deleted file mode 100644 (file)
index b6f1610..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #fff }</style>
-    <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-progressive.png
deleted file mode 100644 (file)
index 4d062cb..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-progressive.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-progressive.svg
deleted file mode 100644 (file)
index dc03220..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #36c }</style>
-    <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.png
deleted file mode 100644 (file)
index 2475b06..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.svg
deleted file mode 100644 (file)
index 90fe46a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png
deleted file mode 100644 (file)
index 8338017..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.svg
deleted file mode 100644 (file)
index c73d23f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #fff }</style>
-       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
-</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-progressive.png
deleted file mode 100644 (file)
index bf1a6e0..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-progressive.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-progressive.svg
deleted file mode 100644 (file)
index 16b6d3a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #36c }</style>
-       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
-</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png
deleted file mode 100644 (file)
index 780cb87..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.svg
deleted file mode 100644 (file)
index 4bbd61c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
-</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png
deleted file mode 100644 (file)
index 4f9c3ad..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.svg
deleted file mode 100644 (file)
index 440390e..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #fff }</style>
-       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
-</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-progressive.png
deleted file mode 100644 (file)
index 4abe9c8..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-progressive.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-progressive.svg
deleted file mode 100644 (file)
index 7f45734..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #36c }</style>
-       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
-</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png
deleted file mode 100644 (file)
index fa3696a..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.svg
deleted file mode 100644 (file)
index 5d94425..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
-</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-invert.png
new file mode 100644 (file)
index 0000000..0963538
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-invert.svg
new file mode 100644 (file)
index 0000000..21548d9
--- /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: #fff }</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/logo-wikimediaDiscovery-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-progressive.png
new file mode 100644 (file)
index 0000000..6afb2bd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery-progressive.svg
new file mode 100644 (file)
index 0000000..359d032
--- /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: #36c }</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/logo-wikimediaDiscovery.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery.png
new file mode 100644 (file)
index 0000000..6d3c067
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaDiscovery.svg
new file mode 100644 (file)
index 0000000..c3f99d6
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="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/trashUndo-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.png
deleted file mode 100644 (file)
index af3f0e9..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.svg
deleted file mode 100644 (file)
index 0763ff8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #fff }</style>
-    <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-progressive.png
deleted file mode 100644 (file)
index 2f09eb6..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-progressive.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-progressive.svg
deleted file mode 100644 (file)
index 6d1fdd9..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #36c }</style>
-    <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.png
deleted file mode 100644 (file)
index 3b5231f..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.svg
deleted file mode 100644 (file)
index 64b3b71..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.png
deleted file mode 100644 (file)
index 1cb5449..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.svg
deleted file mode 100644 (file)
index 12e57b2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #fff }</style>
-    <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-progressive.png
deleted file mode 100644 (file)
index e828b36..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-progressive.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-progressive.svg
deleted file mode 100644 (file)
index 6395968..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #36c }</style>
-    <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.png
deleted file mode 100644 (file)
index a1d2388..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.svg
deleted file mode 100644 (file)
index e5e4032..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z"/>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-invert.png
new file mode 100644 (file)
index 0000000..7426f56
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-invert.svg
new file mode 100644 (file)
index 0000000..36fd719
--- /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: #fff }</style>
+    <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-progressive.png
new file mode 100644 (file)
index 0000000..d797f3e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr-progressive.svg
new file mode 100644 (file)
index 0000000..bc96e99
--- /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: #36c }</style>
+    <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr.png
new file mode 100644 (file)
index 0000000..640bb2a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-ltr.svg
new file mode 100644 (file)
index 0000000..160219c
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4L13 11h4zM4 4L3 5l2.4 2.4C4.5 8.7 4 10.3 4 12c0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4L19 21l1-1L4 4zm3 9v-2h2l2 2H7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-invert.png
new file mode 100644 (file)
index 0000000..a02e2e0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-invert.svg
new file mode 100644 (file)
index 0000000..b6f1610
--- /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: #fff }</style>
+    <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-progressive.png
new file mode 100644 (file)
index 0000000..4d062cb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl-progressive.svg
new file mode 100644 (file)
index 0000000..dc03220
--- /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: #36c }</style>
+    <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl.png
new file mode 100644 (file)
index 0000000..2475b06
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unBlock-rtl.svg
new file mode 100644 (file)
index 0000000..90fe46a
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M7 11v2h2l-3.6 3.6C4.5 15.3 4 13.7 4 12c0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4L11 11H7zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4L5 21l-1-1L20 4zm-3 9v-2h-2l-2 2h4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-invert.png
new file mode 100644 (file)
index 0000000..8338017
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-invert.svg
new file mode 100644 (file)
index 0000000..c73d23f
--- /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: #fff }</style>
+       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
+</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-progressive.png
new file mode 100644 (file)
index 0000000..bf1a6e0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr-progressive.svg
new file mode 100644 (file)
index 0000000..16b6d3a
--- /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: #36c }</style>
+       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
+</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr.png
new file mode 100644 (file)
index 0000000..780cb87
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-ltr.svg
new file mode 100644 (file)
index 0000000..4bbd61c
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
+</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-invert.png
new file mode 100644 (file)
index 0000000..4f9c3ad
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-invert.svg
new file mode 100644 (file)
index 0000000..440390e
--- /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: #fff }</style>
+       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
+</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-progressive.png
new file mode 100644 (file)
index 0000000..4abe9c8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl-progressive.svg
new file mode 100644 (file)
index 0000000..7f45734
--- /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: #36c }</style>
+       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
+</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl.png
new file mode 100644 (file)
index 0000000..fa3696a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unFlag-rtl.svg
new file mode 100644 (file)
index 0000000..5d94425
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
+</svg>
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-invert.png
new file mode 100644 (file)
index 0000000..af3f0e9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-invert.svg
new file mode 100644 (file)
index 0000000..0763ff8
--- /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: #fff }</style>
+    <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-progressive.png
new file mode 100644 (file)
index 0000000..2f09eb6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr-progressive.svg
new file mode 100644 (file)
index 0000000..6d1fdd9
--- /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: #36c }</style>
+    <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr.png
new file mode 100644 (file)
index 0000000..3b5231f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-ltr.svg
new file mode 100644 (file)
index 0000000..64b3b71
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M20.5 20.5L5 5 4 6l3 3 1 11h8l.2-1.8 3.3 3.3zM17 9h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1H8l2 2h8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-invert.png
new file mode 100644 (file)
index 0000000..1cb5449
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-invert.svg
new file mode 100644 (file)
index 0000000..12e57b2
--- /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: #fff }</style>
+    <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-progressive.png
new file mode 100644 (file)
index 0000000..e828b36
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl-progressive.svg
new file mode 100644 (file)
index 0000000..6395968
--- /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: #36c }</style>
+    <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl.png
new file mode 100644 (file)
index 0000000..a1d2388
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unTrash-rtl.svg
new file mode 100644 (file)
index 0000000..e5e4032
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M4 20.5L19.5 5l1 1-3 3-1 11h-8l-.2-1.8L5 21.5zM7.5 9h6L8 14.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z"/>
+</svg>
index 4da05e6..1b64237 100644 (file)
                                s = out;
                        }
                        i = parseFloat( s.replace( /[, ]/g, '' ).replace( '\u2212', '-' ) );
-                       return isNaN( i ) ? 0 : i;
+                       return isNaN( i ) ? -Infinity : i;
                },
 
                formatFloat: function ( s ) {
                        var i = parseFloat( s );
-                       return isNaN( i ) ? 0 : i;
+                       return isNaN( i ) ? -Infinity : i;
                },
 
                formatInt: function ( s ) {
                        var i = parseInt( s, 10 );
-                       return isNaN( i ) ? 0 : i;
+                       return isNaN( i ) ? -Infinity : i;
                },
 
                clearTableBody: function ( table ) {
index c8d3fad..7e966ea 100644 (file)
@@ -11,7 +11,7 @@
                var idleTimeout = 3000,
                        api = new mw.Api(),
                        timer,
-                       pending,
+                       stashReq,
                        lastText,
                        lastSummary,
                        lastTextHash,
                        PRIORITY_LOW = 1,
                        PRIORITY_HIGH = 2;
 
+               // We don't attempt to stash new section edits because in such cases the parser output
+               // varies on the edit summary (since it determines the new section's name).
+               if ( !$form.length || section === 'new' ) {
+                       return;
+               }
+
                // Send a request to stash the edit to the API.
                // If a request is in progress, abort it since its payload is stale and the API
                // may limit concurrent stash parses.
                function stashEdit() {
-                       api.getToken( 'csrf' ).then( function ( token ) {
-                               var req, params,
-                                       textChanged = isTextChanged(),
-                                       priority = textChanged ? PRIORITY_HIGH : PRIORITY_LOW;
-
-                               if ( pending ) {
-                                       if ( lastPriority > priority ) {
-                                               // Stash request for summary change should wait on pending text change stash
-                                               pending.then( checkStash );
-                                               return;
-                                       }
-                                       pending.abort();
+                       var req, params,
+                               textChanged = isTextChanged(),
+                               priority = textChanged ? PRIORITY_HIGH : PRIORITY_LOW;
+
+                       if ( stashReq ) {
+                               if ( lastPriority > priority ) {
+                                       // Stash request for summary change should wait on pending text change stash
+                                       stashReq.then( checkStash );
+                                       return;
                                }
+                               stashReq.abort();
+                       }
 
-                               // Update the "last" tracking variables
-                               lastSummary = $summary.textSelection( 'getContents' );
-                               lastPriority = priority;
-                               if ( textChanged ) {
-                                       lastText = $text.textSelection( 'getContents' );
-                                       // Reset hash
-                                       lastTextHash = null;
-                               }
+                       // Update the "last" tracking variables
+                       lastSummary = $summary.textSelection( 'getContents' );
+                       lastPriority = priority;
+                       if ( textChanged ) {
+                               lastText = $text.textSelection( 'getContents' );
+                               // Reset hash
+                               lastTextHash = null;
+                       }
+
+                       params = {
+                               action: 'stashedit',
+                               title: mw.config.get( 'wgPageName' ),
+                               section: section,
+                               sectiontitle: '',
+                               summary: lastSummary,
+                               contentmodel: model,
+                               contentformat: format,
+                               baserevid: revId
+                       };
+                       if ( lastTextHash ) {
+                               params.stashedtexthash = lastTextHash;
+                       } else {
+                               params.text = lastText;
+                       }
 
-                               params = {
-                                       action: 'stashedit',
-                                       token: token,
-                                       title: mw.config.get( 'wgPageName' ),
-                                       section: section,
-                                       sectiontitle: '',
-                                       summary: lastSummary,
-                                       contentmodel: model,
-                                       contentformat: format,
-                                       baserevid: revId
-                               };
-                               if ( lastTextHash ) {
-                                       params.stashedtexthash = lastTextHash;
+                       req = api.postWithToken( 'csrf', params );
+                       stashReq = req;
+                       req.then( function ( data ) {
+                               if ( req === stashReq ) {
+                                       stashReq = null;
+                               }
+                               if ( data.stashedit && data.stashedit.texthash ) {
+                                       lastTextHash = data.stashedit.texthash;
                                } else {
-                                       params.text = lastText;
+                                       // Request failed or text hash expired;
+                                       // include the text in a future stash request.
+                                       lastTextHash = null;
                                }
-
-                               req = api.post( params );
-                               pending = req;
-                               req.then( function ( data ) {
-                                       if ( req === pending ) {
-                                               pending = null;
-                                       }
-                                       if ( data.stashedit && data.stashedit.texthash ) {
-                                               lastTextHash = data.stashedit.texthash;
-                                       } else {
-                                               // Request failed or text hash expired;
-                                               // include the text in a future stash request.
-                                               lastTextHash = null;
-                                       }
-                               } );
                        } );
                }
 
                        idleTimeout = 3000;
                }
 
-               function onFormLoaded() {
-                       if (
-                               // Reverts may involve use (undo) links; stash as they review the diff.
-                               // Since the form has a pre-filled summary, stash the edit immediately.
-                               mw.util.getParamValue( 'undo' ) !== null ||
-                               // Pressing "show changes" and "preview" also signify that the user will
-                               // probably save the page soon
-                               $.inArray( $form.find( '#mw-edit-mode' ).val(), [ 'preview', 'diff' ] ) > -1
-                       ) {
-                               checkStash();
-                       }
-               }
-
-               // We don't attempt to stash new section edits because in such cases the parser output
-               // varies on the edit summary (since it determines the new section's name).
-               if ( $form.find( 'input[name=wpSection]' ).val() === 'new' ) {
-                       return;
-               }
-
                $text.on( {
-                       change: checkStash,
                        keyup: onKeyUp,
-                       focus: onTextFocus
+                       focus: onTextFocus,
+                       change: checkStash
                } );
                $summary.on( {
+                       keyup: onKeyUp,
                        focus: onSummaryFocus,
-                       focusout: checkStash,
-                       keyup: onKeyUp
+                       focusout: checkStash
                } );
-               onFormLoaded();
+
+               if (
+                       // Reverts may involve use (undo) links; stash as they review the diff.
+                       // Since the form has a pre-filled summary, stash the edit immediately.
+                       mw.util.getParamValue( 'undo' ) !== null ||
+                       // Pressing "show changes" and "preview" also signify that the user will
+                       // probably save the page soon
+                       $.inArray( $form.find( '#mw-edit-mode' ).val(), [ 'preview', 'diff' ] ) > -1
+               ) {
+                       checkStash();
+               }
        } );
 }( mediaWiki, jQuery ) );
index 81896de..befe957 100644 (file)
@@ -303,7 +303,7 @@ p.mw-delete-editreasons {
 div.mw-warning-with-logexcerpt {
        padding: 3px;
        margin-bottom: 3px;
-       border: 2px solid #2f6fab;
+       border: 2px solid #2a4b8d;
        clear: both;
 }
 
diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterItem.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterItem.js
new file mode 100644 (file)
index 0000000..63db0ea
--- /dev/null
@@ -0,0 +1,103 @@
+( function ( mw ) {
+       /**
+        * Filter item model
+        *
+        * @mixins OO.EventEmitter
+        *
+        * @constructor
+        * @param {string} name Filter name
+        * @param {Object} config Configuration object
+        * @cfg {string} [group] The group this item belongs to
+        * @cfg {string} [label] The label for the filter
+        * @cfg {string} [description] The description of the filter
+        * @cfg {boolean} [selected] Filter is selected
+        */
+       mw.rcfilters.dm.FilterItem = function MwRcfiltersDmFilterItem( name, config ) {
+               config = config || {};
+
+               // Mixin constructor
+               OO.EventEmitter.call( this );
+
+               this.name = name;
+               this.group = config.group || '';
+               this.label = config.label || this.name;
+               this.description = config.description;
+
+               this.selected = !!config.selected;
+       };
+
+       /* Initialization */
+
+       OO.initClass( mw.rcfilters.dm.FilterItem );
+       OO.mixinClass( mw.rcfilters.dm.FilterItem, OO.EventEmitter );
+
+       /* Events */
+
+       /**
+        * @event update
+        *
+        * The state of this filter has changed
+        */
+
+       /* Methods */
+
+       /**
+        * Get the name of this filter
+        *
+        * @return {string} Filter name
+        */
+       mw.rcfilters.dm.FilterItem.prototype.getName = function () {
+               return this.name;
+       };
+
+       /**
+        * Get the group name this filter belongs to
+        *
+        * @return {string} Filter group name
+        */
+       mw.rcfilters.dm.FilterItem.prototype.getGroup = function () {
+               return this.group;
+       };
+
+       /**
+        * Get the label of this filter
+        *
+        * @return {string} Filter label
+        */
+       mw.rcfilters.dm.FilterItem.prototype.getLabel = function () {
+               return this.label;
+       };
+
+       /**
+        * Get the description of this filter
+        *
+        * @return {string} Filter description
+        */
+       mw.rcfilters.dm.FilterItem.prototype.getDescription = function () {
+               return this.description;
+       };
+
+       /**
+        * Get the selected state of this filter
+        *
+        * @return {boolean} Filter is selected
+        */
+       mw.rcfilters.dm.FilterItem.prototype.isSelected = function () {
+               return this.selected;
+       };
+
+       /**
+        * Toggle the selected state of the item
+        *
+        * @param {boolean} [isSelected] Filter is selected
+        * @fires update
+        */
+       mw.rcfilters.dm.FilterItem.prototype.toggleSelected = function ( isSelected ) {
+               isSelected = isSelected === undefined ? !this.selected : isSelected;
+
+               if ( this.selected !== isSelected ) {
+                       this.selected = isSelected;
+                       this.emit( 'update' );
+               }
+       };
+}( mediaWiki ) );
diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
new file mode 100644 (file)
index 0000000..1d0f45f
--- /dev/null
@@ -0,0 +1,267 @@
+( function ( mw, $ ) {
+       /**
+        * View model for the filters selection and display
+        *
+        * @mixins OO.EventEmitter
+        * @mixins OO.EmitterList
+        *
+        * @constructor
+        */
+       mw.rcfilters.dm.FiltersViewModel = function MwRcfiltersDmFiltersViewModel() {
+               // Mixin constructor
+               OO.EventEmitter.call( this );
+               OO.EmitterList.call( this );
+
+               this.groups = {};
+
+               // Events
+               this.aggregate( { update: 'itemUpdate' } );
+       };
+
+       /* Initialization */
+       OO.initClass( mw.rcfilters.dm.FiltersViewModel );
+       OO.mixinClass( mw.rcfilters.dm.FiltersViewModel, OO.EventEmitter );
+       OO.mixinClass( mw.rcfilters.dm.FiltersViewModel, OO.EmitterList );
+
+       /* Events */
+
+       /**
+        * @event initialize
+        *
+        * Filter list is initialized
+        */
+
+       /**
+        * @event itemUpdate
+        * @param {mw.rcfilters.dm.FilterItem} item Filter item updated
+        *
+        * Filter item has changed
+        */
+
+       /* Methods */
+
+       /**
+        * Set filters and preserve a group relationship based on
+        * the definition given by an object
+        *
+        * @param {Object} filters Filter group definition
+        */
+       mw.rcfilters.dm.FiltersViewModel.prototype.initializeFilters = function ( filters ) {
+               var i, filterItem,
+                       model = this,
+                       items = [];
+
+               // Reset
+               this.clearItems();
+               this.groups = {};
+
+               $.each( filters, function ( group, data ) {
+                       model.groups[ group ] = model.groups[ group ] || {};
+                       model.groups[ group ].filters = model.groups[ group ].filters || [];
+
+                       model.groups[ group ].title = data.title;
+                       model.groups[ group ].type = data.type;
+
+                       for ( i = 0; i < data.filters.length; i++ ) {
+                               filterItem = new mw.rcfilters.dm.FilterItem( data.filters[ i ].name, {
+                                       group: group,
+                                       label: data.filters[ i ].label,
+                                       description: data.filters[ i ].description,
+                                       selected: data.filters[ i ].selected
+                               } );
+
+                               model.groups[ group ].filters.push( filterItem );
+                               items.push( filterItem );
+                       }
+               } );
+
+               this.addItems( items );
+               this.emit( 'initialize' );
+       };
+
+       /**
+        * Get the names of all available filters
+        *
+        * @return {string[]} An array of filter names
+        */
+       mw.rcfilters.dm.FiltersViewModel.prototype.getFilterNames = function () {
+               return this.getItems().map( function ( item ) { return item.getName(); } );
+       };
+
+       /**
+        * Get the object that defines groups and their filter items.
+        * The structure of this response:
+        * {
+        *   groupName: {
+        *     title: {string} Group title
+        *     type: {string} Group type
+        *     filters: {string[]} Filters in the group
+        *   }
+        * }
+        *
+        * @return {Object} Filter groups
+        */
+       mw.rcfilters.dm.FiltersViewModel.prototype.getFilterGroups = function () {
+               return this.groups;
+       };
+
+       /**
+        * Get the current state of the filters
+        *
+        * @return {Object} Filters current state
+        */
+       mw.rcfilters.dm.FiltersViewModel.prototype.getState = function () {
+               var i,
+                       items = this.getItems(),
+                       result = {};
+
+               for ( i = 0; i < items.length; i++ ) {
+                       result[ items[ i ].getName() ] = items[ i ].isSelected();
+               }
+
+               return result;
+       };
+
+       /**
+        * Analyze the groups and their filters and output an object representing
+        * the state of the parameters they represent.
+        *
+        * @return {Object} Parameter state object
+        */
+       mw.rcfilters.dm.FiltersViewModel.prototype.getParametersFromFilters = function () {
+               var i, filterItems, anySelected,
+                       result = {},
+                       groupItems = this.getFilterGroups();
+
+               $.each( groupItems, function ( group, data ) {
+                       if ( data.type === 'send_unselected_if_any' ) {
+                               filterItems = data.filters;
+
+                               // First, check if any of the items are selected at all.
+                               // If none is selected, we're treating it as if they are
+                               // all false
+                               anySelected = filterItems.some( function ( filterItem ) {
+                                       return filterItem.isSelected();
+                               } );
+
+                               // Go over the items and define the correct values
+                               for ( i = 0; i < filterItems.length; i++ ) {
+                                       result[ filterItems[ i ].getName() ] = anySelected ?
+                                               Number( !filterItems[ i ].isSelected() ) : 0;
+                               }
+                       }
+               } );
+
+               return result;
+       };
+
+       /**
+        * This is the opposite of the #getParametersFromFilters method; this goes over
+        * the parameters and translates into a selected/unselected value in the filters.
+        *
+        * @param {Object} params Parameters query object
+        * @return {Object} Filter state object
+        */
+       mw.rcfilters.dm.FiltersViewModel.prototype.getFiltersFromParameters = function ( params ) {
+               var i, filterItem, allItemsInGroup,
+                       groupMap = {},
+                       model = this,
+                       base = this.getParametersFromFilters(),
+                       // Start with current state
+                       result = this.getState();
+
+               params = $.extend( {}, base, params );
+
+               $.each( params, function ( paramName, paramValue ) {
+                       // Find the filter item
+                       filterItem = model.getItemByName( paramName );
+
+                       // Ignore if no filter item exists
+                       if ( filterItem ) {
+                               groupMap[ filterItem.getGroup() ] = groupMap[ filterItem.getGroup() ] || {};
+
+                               // Mark the group if it has any items that are selected
+                               groupMap[ filterItem.getGroup() ].hasSelected = (
+                                       groupMap[ filterItem.getGroup() ].hasSelected ||
+                                       !!Number( paramValue )
+                               );
+
+                               // Add the relevant filter into the group map
+                               groupMap[ filterItem.getGroup() ].filters = groupMap[ filterItem.getGroup() ].filters || [];
+                               groupMap[ filterItem.getGroup() ].filters.push( filterItem );
+                       }
+               } );
+
+               // Now that we know the groups' selection states, we need to go over
+               // the filters in the groups and mark their selected states appropriately
+               $.each( groupMap, function ( group, data ) {
+                       if ( model.groups[ group ].type === 'send_unselected_if_any' ) {
+                               allItemsInGroup = model.groups[ group ].filters;
+
+                               for ( i = 0; i < allItemsInGroup.length; i++ ) {
+                                       filterItem = allItemsInGroup[ i ];
+
+                                       result[ filterItem.getName() ] = data.hasSelected ?
+                                               // Flip the definition between the parameter
+                                               // state and the filter state
+                                               // This is what the 'toggleSelected' value of the filter is
+                                               !Number( params[ filterItem.getName() ] ) :
+                                               // Otherwise, there are no selected items in the
+                                               // group, which means the state is false
+                                               false;
+                               }
+                       }
+               } );
+               return result;
+       };
+
+       /**
+        * Get the item that matches the given name
+        *
+        * @param {string} name Filter name
+        * @return {mw.rcfilters.dm.FilterItem} Filter item
+        */
+       mw.rcfilters.dm.FiltersViewModel.prototype.getItemByName = function ( name ) {
+               return this.getItems().filter( function ( item ) {
+                       return name === item.getName();
+               } )[ 0 ];
+       };
+
+       /**
+        * Toggle selected state of items by their names
+        *
+        * @param {Object} filterDef Filter definitions
+        */
+       mw.rcfilters.dm.FiltersViewModel.prototype.updateFilters = function ( filterDef ) {
+               var name, filterItem;
+
+               for ( name in filterDef ) {
+                       filterItem = this.getItemByName( name );
+                       filterItem.toggleSelected( filterDef[ name ] );
+               }
+       };
+
+       /**
+        * Find items whose labels match the given string
+        *
+        * @param {string} str Search string
+        * @return {Object} An object of items to show
+        *  arranged by their group names
+        */
+       mw.rcfilters.dm.FiltersViewModel.prototype.findMatches = function ( str ) {
+               var i,
+                       result = {},
+                       items = this.getItems();
+
+               // Normalize so we can search strings regardless of case
+               str = str.toLowerCase();
+               for ( i = 0; i < items.length; i++ ) {
+                       if ( items[ i ].getLabel().toLowerCase().indexOf( str ) > -1 ) {
+                               result[ items[ i ].getGroup() ] = result[ items[ i ].getGroup() ] || [];
+                               result[ items[ i ].getGroup() ].push( items[ i ] );
+                       }
+               }
+               return result;
+       };
+
+}( mediaWiki, jQuery ) );
diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
new file mode 100644 (file)
index 0000000..ea44b8b
--- /dev/null
@@ -0,0 +1,57 @@
+( function ( mw ) {
+       /**
+        * Controller for the filters in Recent Changes
+        *
+        * @param {mw.rcfilters.dm.FiltersViewModel} model View model
+        */
+       mw.rcfilters.Controller = function MwRcfiltersController( model ) {
+               this.model = model;
+
+               // TODO: When we are ready, update the URL when a filter is updated
+               // this.model.connect( this, { itemUpdate: 'updateURL' } );
+       };
+
+       /* Initialization */
+       OO.initClass( mw.rcfilters.Controller );
+
+       /**
+        * Initialize the filter and parameter states
+        */
+       mw.rcfilters.Controller.prototype.initialize = function () {
+               var uri = new mw.Uri();
+
+               this.model.updateFilters(
+                       // Translate the url params to filter select states
+                       this.model.getFiltersFromParameters( uri.query )
+               );
+       };
+
+       /**
+        * Update the state of a filter
+        *
+        * @param {string} filterName Filter name
+        * @param {boolean} isSelected Filter selected state
+        */
+       mw.rcfilters.Controller.prototype.updateFilter = function ( filterName, isSelected ) {
+               var obj = {};
+
+               obj[ filterName ] = isSelected;
+               this.model.updateFilters( obj );
+       };
+
+       /**
+        * Update the URL of the page to reflect current filters
+        */
+       mw.rcfilters.Controller.prototype.updateURL = function () {
+               var uri = new mw.Uri();
+
+               // Add to existing queries in URL
+               // TODO: Clean up the list of filters; perhaps 'falsy' filters
+               // shouldn't appear at all? Or compare to existing query string
+               // and see if current state of a specific filter is needed?
+               uri.extend( this.model.getParametersFromFilters() );
+
+               // Update the URL itself
+               window.history.pushState( { tag: 'rcfilters' }, document.title, uri.toString() );
+       };
+}( mediaWiki ) );
diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
new file mode 100644 (file)
index 0000000..8764e0a
--- /dev/null
@@ -0,0 +1,81 @@
+/*!
+ * JavaScript for Special:RecentChanges
+ */
+( function ( mw, $ ) {
+       /**
+        * @class mw.rcfilters
+        * @singleton
+        */
+       var rcfilters = {
+               /** */
+               init: function () {
+                       var model = new mw.rcfilters.dm.FiltersViewModel(),
+                               controller = new mw.rcfilters.Controller( model ),
+                               widget = new mw.rcfilters.ui.FilterWrapperWidget( controller, model );
+
+                       model.initializeFilters( {
+                               authorship: {
+                                       title: mw.msg( 'rcfilters-filtergroup-authorship' ),
+                                       // Type 'send_unselected_if_any' means that the controller will go over
+                                       // all unselected filters in the group and use their parameters
+                                       // as truthy in the query string.
+                                       // This is to handle the "negative" filters. We are showing users
+                                       // a positive message ("Show xxx") but the filters themselves are
+                                       // based on "hide YYY". The purpose of this is to correctly map
+                                       // the functionality to the UI, whether we are dealing with 2
+                                       // parameters in the group or more.
+                                       type: 'send_unselected_if_any',
+                                       filters: [
+                                               {
+                                                       name: 'hidemyself',
+                                                       label: mw.msg( 'rcfilters-filter-editsbyself-label' ),
+                                                       description: mw.msg( 'rcfilters-filter-editsbyself-description' )
+                                               },
+                                               {
+                                                       name: 'hidebyothers',
+                                                       label: mw.msg( 'rcfilters-filter-editsbyother-label' ),
+                                                       description: mw.msg( 'rcfilters-filter-editsbyother-description' )
+                                               }
+                                       ]
+                               }
+                       } );
+
+                       $( '.mw-specialpage-summary' ).after( widget.$element );
+
+                       // Initialize values
+                       controller.initialize();
+
+                       $( '.rcoptions form' ).submit( function () {
+                               var $form = $( this );
+
+                               // Get current filter values
+                               $.each( model.getParametersFromFilters(), function ( paramName, paramValue ) {
+                                       var $existingInput = $form.find( 'input[name=' + paramName + ']' );
+                                       // Check if the hidden input already exists
+                                       // This happens if the parameter was already given
+                                       // on load
+                                       if ( $existingInput.length ) {
+                                               // Update the value
+                                               $existingInput.val( paramValue );
+                                       } else {
+                                               // Append hidden fields with filter values
+                                               $form.append(
+                                                       $( '<input>' )
+                                                               .attr( 'type', 'hidden' )
+                                                               .attr( 'name', paramName )
+                                                               .val( paramValue )
+                                               );
+                                       }
+                               } );
+
+                               // Continue the submission process
+                               return true;
+                       } );
+               }
+       };
+
+       $( rcfilters.init );
+
+       module.exports = rcfilters;
+
+}( mediaWiki, jQuery ) );
diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.js
new file mode 100644 (file)
index 0000000..3ddb5a0
--- /dev/null
@@ -0,0 +1,3 @@
+( function ( mw ) {
+       mw.rcfilters = { dm: {}, ui: {} };
+}( mediaWiki ) );
diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less
new file mode 100644 (file)
index 0000000..7f71c0c
--- /dev/null
@@ -0,0 +1,5 @@
+.rcshowhidemine {
+       // HACK: Hide this filter since it already appears in
+       // the new filter drop-down.
+       display: none;
+}
diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.less b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.less
new file mode 100644 (file)
index 0000000..4e55add
--- /dev/null
@@ -0,0 +1,11 @@
+.mw-rcfilters-ui-filterCapsuleMultiselectWidget {
+       &-content-title {
+               font-weight: bold;
+               color: #54595d;
+       }
+
+       .oo-ui-capsuleItemWidget {
+               color: #222;
+               background-color: #fff;
+       }
+}
diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterGroupWidget.less b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterGroupWidget.less
new file mode 100644 (file)
index 0000000..70982d4
--- /dev/null
@@ -0,0 +1,20 @@
+.mw-rcfilters-ui-filterGroupWidget {
+       padding-bottom: 0.5em;
+
+       &-title {
+               // TODO: Unify colors with official design palette
+               background: #eaecf0;
+               padding: 0.5em 0.75em;
+               color: #555a5d;
+       }
+
+       &-invalid-notice {
+               padding: 0.5em;
+               font-style: italic;
+               display: none;
+
+               .mw-rcfilters-ui-filterGroupWidget-invalid & {
+                       display: block;
+               }
+       }
+}
diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterItemWidget.less b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterItemWidget.less
new file mode 100644 (file)
index 0000000..ad0b816
--- /dev/null
@@ -0,0 +1,18 @@
+.mw-rcfilters-ui-filterItemWidget {
+       padding-left: 0.5em;
+
+       &-label {
+               &-title {
+                       font-weight: bold;
+                       font-size: 1.2em;
+                       color: #222;
+               }
+               &-desc {
+                       color: #464a4f;
+               }
+       }
+
+       .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline {
+               margin-bottom: 0 !important;
+       }
+}
diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterWrapperWidget.less b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterWrapperWidget.less
new file mode 100644 (file)
index 0000000..a610e8f
--- /dev/null
@@ -0,0 +1,33 @@
+.mw-rcfilters-ui-filterWrapperWidget {
+       width: 100%;
+
+       .oo-ui-capsuleMultiselectWidget {
+               max-width: none;
+
+               &.oo-ui-widget-enabled .oo-ui-capsuleMultiselectWidget-handle {
+                       // TODO: Unify colors with official design palette
+                       background-color: #f8f9fa;
+                       border: 1px solid #a2a9b1;
+                       min-height: 5.5em;
+                       padding: 0.75em;
+
+               }
+       }
+
+       &-popup {
+               // We have to override OOUI's definition, which is set
+               // on the inline style of the popup
+               margin-top: 2em !important;
+               max-width: 650px;
+       }
+
+       &-search {
+               max-width: none;
+               margin-top: -0.5em;
+       }
+
+       &-capsule-invalid-filter {
+               // TODO: Unify colors with official design palette
+               background: red;
+       }
+}
diff --git a/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FiltersListWidget.less b/resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FiltersListWidget.less
new file mode 100644 (file)
index 0000000..b874e0f
--- /dev/null
@@ -0,0 +1,16 @@
+.mw-rcfilters-ui-filtersListWidget {
+       &-title {
+               font-size: 1.2em;
+               padding: 0.75em;
+               // TODO: Unify colors with official design palette
+               color: #54595d;
+               border-bottom: 1px solid #c8ccd1;
+               background: #f8f9fa;
+       }
+
+       &-noresults {
+               padding: 0.5em;
+               // TODO: Unify colors with official design palette
+               color: #666;
+       }
+}
diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js
new file mode 100644 (file)
index 0000000..df6cf8b
--- /dev/null
@@ -0,0 +1,91 @@
+( function ( mw, $ ) {
+       /**
+        * Filter-specific CapsuleMultiselectWidget
+        *
+        * @extends OO.ui.CapsuleMultiselectWidget
+        *
+        * @constructor
+        * @param {OO.ui.InputWidget} filterInput A filter input that focuses the capsule widget
+        * @param {Object} config Configuration object
+        */
+       mw.rcfilters.ui.FilterCapsuleMultiselectWidget = function MwRcfiltersUiFilterCapsuleMultiselectWidget( filterInput, config ) {
+               // Parent
+               mw.rcfilters.ui.FilterCapsuleMultiselectWidget.parent.call( this, $.extend( {
+                       $autoCloseIgnore: filterInput.$element
+               }, config ) );
+
+               this.filterInput = filterInput;
+
+               this.$content.prepend(
+                       $( '<div>' )
+                               .addClass( 'mw-rcfilters-ui-filterCapsuleMultiselectWidget-content-title' )
+                               .text( mw.msg( 'rcfilters-activefilters' ) )
+               );
+
+               // Events
+               // Add the filterInput as trigger
+               this.filterInput.$input
+                       .on( 'focus', this.onFocusForPopup.bind( this ) );
+
+               this.$element
+                       .addClass( 'mw-rcfilters-ui-filterCapsuleMultiselectWidget' );
+       };
+
+       /* Initialization */
+
+       OO.inheritClass( mw.rcfilters.ui.FilterCapsuleMultiselectWidget, OO.ui.CapsuleMultiselectWidget );
+
+       /* Events */
+
+       /**
+        * @event remove
+        * @param {string[]} filters Array of names of removed filters
+        *
+        * Filters were removed
+        */
+
+       /* Methods */
+
+       /**
+        * @inheritdoc
+        */
+       mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.onFocusForPopup = function () {
+               // Override this method; we don't want to focus on the popup, and we
+               // don't want to bind the size to the handle.
+               if ( !this.isDisabled() ) {
+                       this.popup.toggle( true );
+               }
+       };
+
+       /**
+        * @inheritdoc
+        */
+       mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.removeItems = function ( items ) {
+               // Parent
+               mw.rcfilters.ui.FilterCapsuleMultiselectWidget.parent.prototype.removeItems.call( this, items );
+
+               this.emit( 'remove', items.map( function ( item ) { return item.getData(); } ) );
+       };
+
+       /**
+        * @inheritdoc
+        */
+       mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.onKeyDown = function () {};
+
+       /**
+        * @inheritdoc
+        */
+       mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.onPopupFocusOut = function () {};
+
+       /**
+        * @inheritdoc
+        */
+       mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.clearInput = function () {
+               if ( this.filterInput ) {
+                       this.filterInput.setValue( '' );
+               }
+               this.menu.toggle( false );
+               this.menu.selectItem();
+               this.menu.highlightItem();
+       };
+}( mediaWiki, jQuery ) );
diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterGroupWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterGroupWidget.js
new file mode 100644 (file)
index 0000000..92ae4d1
--- /dev/null
@@ -0,0 +1,51 @@
+( function ( mw, $ ) {
+       /**
+        * A group of filters
+        *
+        * @extends OO.ui.Widget
+        * @mixins OO.ui.mixin.GroupWidget
+        * @mixins OO.ui.mixin.LabelElement
+        *
+        * @constructor
+        * @param {string} name Group name
+        * @param {Object} config Configuration object
+        */
+       mw.rcfilters.ui.FilterGroupWidget = function MwRcfiltersUiFilterGroupWidget( name, config ) {
+               config = config || {};
+
+               // Parent
+               mw.rcfilters.ui.FilterGroupWidget.parent.call( this, config );
+               // Mixin constructors
+               OO.ui.mixin.GroupWidget.call( this, config );
+               OO.ui.mixin.LabelElement.call( this, $.extend( {}, config, {
+                       $label: $( '<div>' )
+                               .addClass( 'mw-rcfilters-ui-filterGroupWidget-title' )
+               } ) );
+
+               this.name = name;
+
+               this.$element
+                       .addClass( 'mw-rcfilters-ui-filterGroupWidget' )
+                       .append(
+                               this.$label,
+                               this.$group
+                                       .addClass( 'mw-rcfilters-ui-filterGroupWidget-group' )
+                       );
+       };
+
+       /* Initialization */
+
+       OO.inheritClass( mw.rcfilters.ui.FilterGroupWidget, OO.ui.Widget );
+       OO.mixinClass( mw.rcfilters.ui.FilterGroupWidget, OO.ui.mixin.GroupWidget );
+       OO.mixinClass( mw.rcfilters.ui.FilterGroupWidget, OO.ui.mixin.LabelElement );
+
+       /**
+        * Get the group name
+        *
+        * @return {string} Group name
+        */
+       mw.rcfilters.ui.FilterGroupWidget.prototype.getName = function () {
+               return this.name;
+       };
+
+}( mediaWiki, jQuery ) );
diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterItemWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterItemWidget.js
new file mode 100644 (file)
index 0000000..b77df3b
--- /dev/null
@@ -0,0 +1,92 @@
+( function ( mw, $ ) {
+       /**
+        * A widget representing a single toggle filter
+        *
+        * @extends OO.ui.Widget
+        *
+        * @constructor
+        * @param {mw.rcfilters.Controller} controller RCFilters controller
+        * @param {mw.rcfilters.dm.FilterItem} model Filter item model
+        * @param {Object} config Configuration object
+        */
+       mw.rcfilters.ui.FilterItemWidget = function MwRcfiltersUiFilterItemWidget( controller, model, config ) {
+               var layout,
+                       $label = $( '<div>' )
+                               .addClass( 'mw-rcfilters-ui-filterItemWidget-label' );
+
+               config = config || {};
+
+               // Parent
+               mw.rcfilters.ui.FilterItemWidget.parent.call( this, config );
+
+               this.controller = controller;
+               this.model = model;
+
+               this.checkboxWidget = new OO.ui.CheckboxInputWidget( {
+                       value: this.model.getName(),
+                       selected: this.model.isSelected()
+               } );
+
+               $label.append(
+                       $( '<div>' )
+                               .addClass( 'mw-rcfilters-ui-filterItemWidget-label-title' )
+                               .text( this.model.getLabel() )
+               );
+               if ( this.model.getDescription() ) {
+                       $label.append(
+                               $( '<div>' )
+                                       .addClass( 'mw-rcfilters-ui-filterItemWidget-label-desc' )
+                                       .text( this.model.getDescription() )
+                       );
+               }
+
+               layout = new OO.ui.FieldLayout( this.checkboxWidget, {
+                       label: $label,
+                       align: 'inline'
+               } );
+
+               // Event
+               this.checkboxWidget.connect( this, { change: 'onCheckboxChange' } );
+               this.model.connect( this, { update: 'onModelUpdate' } );
+
+               this.$element
+                       .addClass( 'mw-rcfilters-ui-filterItemWidget' )
+                       .append(
+                               layout.$element
+                       );
+       };
+
+       /* Initialization */
+
+       OO.inheritClass( mw.rcfilters.ui.FilterItemWidget, OO.ui.Widget );
+
+       /* Methods */
+
+       /**
+        * Respond to checkbox change.
+        * NOTE: This event is emitted both for deliberate user action and for
+        * a change that the code requests ('setSelected')
+        *
+        * @param {boolean} isSelected The checkbox is selected
+        */
+       mw.rcfilters.ui.FilterItemWidget.prototype.onCheckboxChange = function ( isSelected ) {
+               this.controller.updateFilter( this.model.getName(), isSelected );
+       };
+
+       /**
+        * Respond to item model update event
+        */
+       mw.rcfilters.ui.FilterItemWidget.prototype.onModelUpdate = function () {
+               this.checkboxWidget.setSelected( this.model.isSelected() );
+       };
+
+       /**
+        * Get the name of this filter
+        *
+        * @return {string} Filter name
+        */
+       mw.rcfilters.ui.FilterItemWidget.prototype.getName = function () {
+               return this.model.getName();
+       };
+
+}( mediaWiki, jQuery ) );
diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js
new file mode 100644 (file)
index 0000000..3fcfc47
--- /dev/null
@@ -0,0 +1,130 @@
+( function ( mw ) {
+       /**
+        * List displaying all filter groups
+        *
+        * @extends OO.ui.Widget
+        * @mixins OO.ui.mixin.PendingElement
+        *
+        * @constructor
+        * @param {mw.rcfilters.Controller} controller Controller
+        * @param {mw.rcfilters.dm.FiltersViewModel} model View model
+        * @param {Object} config Configuration object
+        * @cfg {Object} [filters] A definition of the filter groups in this list
+        */
+       mw.rcfilters.ui.FilterWrapperWidget = function MwRcfiltersUiFilterWrapperWidget( controller, model, config ) {
+               config = config || {};
+
+               // Parent
+               mw.rcfilters.ui.FilterWrapperWidget.parent.call( this, config );
+               // Mixin constructors
+               OO.ui.mixin.PendingElement.call( this, config );
+
+               this.controller = controller;
+               this.model = model;
+               this.filtersInCapsule = [];
+
+               this.filterPopup = new mw.rcfilters.ui.FiltersListWidget(
+                       this.controller,
+                       this.model,
+                       {
+                               label: mw.msg( 'rcfilters-filterlist-title' )
+                       }
+               );
+
+               this.textInput = new OO.ui.TextInputWidget( {
+                       classes: [ 'mw-rcfilters-ui-filterWrapperWidget-search' ],
+                       icon: 'search',
+                       placeholder: mw.msg( 'rcfilters-search-placeholder' )
+               } );
+
+               this.capsule = new mw.rcfilters.ui.FilterCapsuleMultiselectWidget( this.textInput, {
+                       popup: {
+                               $content: this.filterPopup.$element,
+                               classes: [ 'mw-rcfilters-ui-filterWrapperWidget-popup' ]
+                       }
+               } );
+
+               // Events
+               this.model.connect( this, {
+                       initialize: 'onModelInitialize',
+                       itemUpdate: 'onModelItemUpdate'
+               } );
+               this.textInput.connect( this, {
+                       change: 'onTextInputChange'
+               } );
+               this.capsule.connect( this, {
+                       remove: 'onCapsuleRemoveItem'
+               } );
+
+               this.$element
+                       .addClass( 'mw-rcfilters-ui-filterWrapperWidget' )
+                       .append( this.capsule.$element, this.textInput.$element );
+       };
+
+       /* Initialization */
+
+       OO.inheritClass( mw.rcfilters.ui.FilterWrapperWidget, OO.ui.Widget );
+       OO.mixinClass( mw.rcfilters.ui.FilterWrapperWidget, OO.ui.mixin.PendingElement );
+
+       /**
+        * Respond to text input change
+        *
+        * @param {string} newValue Current value
+        */
+       mw.rcfilters.ui.FilterWrapperWidget.prototype.onTextInputChange = function ( newValue ) {
+               // Filter the results
+               this.filterPopup.filter( this.model.findMatches( newValue ) );
+       };
+
+       /**
+        * Respond to an event where an item is removed from the capsule.
+        * This is the case where a user actively removes a filter box from the capsule widget.
+        *
+        * @param {string[]} filterNames An array of filter names that were removed
+        */
+       mw.rcfilters.ui.FilterWrapperWidget.prototype.onCapsuleRemoveItem = function ( filterNames ) {
+               var filterItem,
+                       widget = this;
+
+               filterNames.forEach( function ( filterName ) {
+                       // Go over filters
+                       filterItem = widget.model.getItemByName( filterName );
+                       filterItem.toggleSelected( false );
+               } );
+       };
+
+       /**
+        * Respond to model update event and set up the available filters to choose
+        * from.
+        */
+       mw.rcfilters.ui.FilterWrapperWidget.prototype.onModelInitialize = function () {
+               var items,
+                       filters = this.model.getItems();
+
+               // Reset
+               this.capsule.getMenu().clearItems();
+
+               // Insert hidden options for the capsule to get its item data from
+               items = filters.map( function ( filterItem ) {
+                       return new OO.ui.MenuOptionWidget( {
+                               data: filterItem.getName(),
+                               label: filterItem.getLabel()
+                       } );
+               } );
+
+               this.capsule.getMenu().addItems( items );
+       };
+
+       /**
+        * Respond to model item update
+        *
+        * @param {mw.rcfilters.dm.FilterItem} item Filter item that was updated
+        */
+       mw.rcfilters.ui.FilterWrapperWidget.prototype.onModelItemUpdate = function ( item ) {
+               if ( item.isSelected() ) {
+                       this.capsule.addItemsFromData( [ item.getName() ] );
+               } else {
+                       this.capsule.removeItemsFromData( [ item.getName() ] );
+               }
+       };
+}( mediaWiki ) );
diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FiltersListWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FiltersListWidget.js
new file mode 100644 (file)
index 0000000..f5ec1fc
--- /dev/null
@@ -0,0 +1,154 @@
+( function ( mw, $ ) {
+       /**
+        * List displaying all filter groups
+        *
+        * @extends OO.ui.Widget
+        * @mixins OO.ui.mixin.GroupWidget
+        * @mixins OO.ui.mixin.LabelElement
+        *
+        * @constructor
+        * @param {mw.rcfilters.Controller} controller Controller
+        * @param {mw.rcfilters.dm.FiltersViewModel} model View model
+        * @param {Object} config Configuration object
+        */
+       mw.rcfilters.ui.FiltersListWidget = function MwRcfiltersUiFiltersListWidget( controller, model, config ) {
+               config = config || {};
+
+               // Parent
+               mw.rcfilters.ui.FiltersListWidget.parent.call( this, config );
+               // Mixin constructors
+               OO.ui.mixin.GroupWidget.call( this, config );
+               OO.ui.mixin.LabelElement.call( this, $.extend( {}, config, {
+                       $label: $( '<div>' )
+                               .addClass( 'mw-rcfilters-ui-filtersListWidget-title' )
+               } ) );
+
+               this.controller = controller;
+               this.model = model;
+
+               this.noResultsLabel = new OO.ui.LabelWidget( {
+                       label: mw.msg( 'rcfilters-filterlist-noresults' ),
+                       classes: [ 'mw-rcfilters-ui-filtersListWidget-noresults' ]
+               } );
+
+               // Events
+               this.model.connect( this, {
+                       initialize: 'onModelInitialize'
+               } );
+
+               // Initialize
+               this.showNoResultsMessage( false );
+               this.$element
+                       .addClass( 'mw-rcfilters-ui-filtersListWidget' )
+                       .append(
+                               this.$label,
+                               this.$group
+                                       .addClass( 'mw-rcfilters-ui-filtersListWidget-group' ),
+                               this.noResultsLabel.$element
+                       );
+       };
+
+       /* Initialization */
+
+       OO.inheritClass( mw.rcfilters.ui.FiltersListWidget, OO.ui.Widget );
+       OO.mixinClass( mw.rcfilters.ui.FiltersListWidget, OO.ui.mixin.GroupWidget );
+       OO.mixinClass( mw.rcfilters.ui.FiltersListWidget, OO.ui.mixin.LabelElement );
+
+       /* Methods */
+
+       /**
+        * Respond to initialize event from the model
+        */
+       mw.rcfilters.ui.FiltersListWidget.prototype.onModelInitialize = function () {
+               var i, group, groupWidget,
+                       itemWidgets = [],
+                       groupWidgets = [],
+                       groups = this.model.getFilterGroups();
+
+               // Reset
+               this.clearItems();
+
+               for ( group in groups ) {
+                       groupWidget = new mw.rcfilters.ui.FilterGroupWidget( group, {
+                               label: groups[ group ].title
+                       } );
+                       groupWidgets.push( groupWidget );
+
+                       itemWidgets = [];
+                       if ( groups[ group ].filters ) {
+                               for ( i = 0; i < groups[ group ].filters.length; i++ ) {
+                                       itemWidgets.push(
+                                               new mw.rcfilters.ui.FilterItemWidget(
+                                                       this.controller,
+                                                       groups[ group ].filters[ i ],
+                                                       {
+                                                               label: groups[ group ].filters[ i ].getLabel(),
+                                                               description: groups[ group ].filters[ i ].getDescription()
+                                                       }
+                                               )
+                                       );
+                               }
+
+                               groupWidget.addItems( itemWidgets );
+                       }
+               }
+
+               this.addItems( groupWidgets );
+       };
+
+       /**
+        * Switch between showing the 'no results' message for filtering results or the result list.
+        *
+        * @param {boolean} showNoResults Show no results message
+        */
+       mw.rcfilters.ui.FiltersListWidget.prototype.showNoResultsMessage = function ( showNoResults ) {
+               this.noResultsLabel.toggle( !!showNoResults );
+               this.$group.toggleClass( 'oo-ui-element-hidden', !!showNoResults );
+       };
+
+       /**
+        * Show only the items matching with the models in the given list
+        *
+        * @param {Object} groupItems An object of items to show
+        *  arranged by their group names
+        */
+       mw.rcfilters.ui.FiltersListWidget.prototype.filter = function ( groupItems ) {
+               var i, j, groupName, itemWidgets,
+                       groupWidgets = this.getItems(),
+                       hasItemWithName = function ( itemArr, name ) {
+                               return !!itemArr.filter( function ( item ) {
+                                       return item.getName() === name;
+                               } ).length;
+                       };
+
+               if ( $.isEmptyObject( groupItems ) ) {
+                       // No results. Hide everything, show only 'no results'
+                       // message
+                       this.showNoResultsMessage( true );
+                       return;
+               }
+
+               this.showNoResultsMessage( false );
+               for ( i = 0; i < groupWidgets.length; i++ ) {
+                       groupName = groupWidgets[ i ].getName();
+
+                       // If this group widget is in the filtered results,
+                       // show it - otherwise, hide it
+                       groupWidgets[ i ].toggle( !!groupItems[ groupName ] );
+
+                       if ( !groupItems[ groupName ] ) {
+                               // Continue to next group
+                               continue;
+                       }
+
+                       // We have items to show
+                       itemWidgets = groupWidgets[ i ].getItems();
+                       for ( j = 0; j < itemWidgets.length; j++ ) {
+                               // Only show items that are in the filtered list
+                               itemWidgets[ j ].toggle(
+                                       hasItemWithName( groupItems[ groupName ], itemWidgets[ j ].getName() )
+                               );
+                       }
+               }
+       };
+}( mediaWiki, jQuery ) );
index e1df01d..a62ef2e 100644 (file)
@@ -158,6 +158,7 @@ div.thumbinner {
 }
 
 html .thumbimage {
+       background-color: #fff;
        border: 1px solid #c8ccd1;
 }
 
index 83b78a8..7d096f9 100644 (file)
@@ -227,7 +227,7 @@ table {
 
 /* Forms */
 fieldset {
-       border: 1px solid #2f6fab;
+       border: 1px solid #2a4b8d;
        margin: 1em 0 1em 0;
        padding: 0 1em 1em;
 }
index 99f6c13..707a579 100644 (file)
 .oo-ui-textInputWidget.oo-ui-widget-enabled > .oo-ui-indicatorElement-indicator.mw-apisandbox-clickable-indicator {
        cursor: pointer;
 }
+
+.mw-apisandbox-textInputCode .oo-ui-inputWidget-input {
+       font-family: monospace, 'Courier';
+       font-size: 0.8125em;
+       -moz-tab-size: 4;
+       -o-tab-size: 4;
+       tab-size: 4;
+}
index 43321fe..f108e50 100644 (file)
                        }
 
                        $.when.apply( $, deferreds ).done( function () {
+                               var jsonInput;
+
                                if ( $.inArray( false, arguments ) !== -1 ) {
                                        windowManager.openWindow( 'errorAlert', {
                                                title: Util.parseMsg( 'apisandbox-submit-invalid-fields-title' ),
                                                                label: Util.parseMsg( 'apisandbox-request-url-label' )
                                                        }
                                                ).$element,
+                                               new OO.ui.FieldLayout(
+                                                       jsonInput = new OO.ui.TextInputWidget( {
+                                                               classes: [ 'mw-apisandbox-textInputCode' ],
+                                                               readOnly: true,
+                                                               multiline: true,
+                                                               autosize: true,
+                                                               maxRows: 6,
+                                                               value: JSON.stringify( displayParams, null, '\t' )
+                                                       } ), {
+                                                               label: Util.parseMsg( 'apisandbox-request-params-json' )
+                                                       }
+                                               ).$element,
                                                $result
                                        );
                                ApiSandbox.updateUI();
                                booklet.setPage( '|results|' );
 
+                               // Resize the multiline input once visible
+                               jsonInput.adjustSize();
+
                                location.href = oldhash = '#' + query;
 
                                api.post( params, {
index 8bddb3a..87ce7be 100644 (file)
@@ -23,6 +23,7 @@
 // Styleguide 1.1.
 .mw-ui-input {
        background-color: #fff;
+       color: @colorGray1;
        .box-sizing( border-box );
        display: block;
        width: 100%;
index 1793849..ad49a42 100644 (file)
         *  - 'boolean': The field is a boolean.
         *  - 'toggleLocal': The field represents {@link #getLocal this.getLocal()}.
         *    Editing should directly call {@link #toggleLocal this.toggleLocal()}.
+        * @return {boolean} return.calendarComponent Whether this field is part of a calendar, e.g.
+        *  part of the date instead of the time.
         * @return {number} return.size Maximum number of characters in the field (when
         *  the 'intercalary' component is falsey). If 0, the field should be hidden entirely.
         * @return {Object.<string,number>} return.intercalarySize Map from
                                }
                                spec = {
                                        component: null,
+                                       calendarComponent: false,
                                        editable: false,
                                        type: 'static',
                                        value: params.slice( 1 ).join( '|' ),
                                                c = params[ 0 ] === '#' ? '' : ':';
                                                return {
                                                        component: 'zone',
+                                                       calendarComponent: false,
                                                        editable: true,
                                                        type: 'toggleLocal',
                                                        size: 5 + c.length,
                                        case 'full':
                                                spec = {
                                                        component: 'zone',
+                                                       calendarComponent: false,
                                                        editable: true,
                                                        type: 'toggleLocal',
                                                        values: params[ 0 ] === 'short' ? this.shortZones : this.fullZones,
index e9bedf5..3e4c5e2 100644 (file)
                                $field = $( '<span>' )
                                        .width( sz )
                                        .data( 'mw-widgets-datetime-dateTimeInputWidget-placeholder', placeholder );
+                               if ( spec.type !== 'static' ) {
+                                       $field.prop( 'tabIndex', -1 );
+                                       $field.on( 'focus', this.onFieldFocus.bind( this, $field ) );
+                               }
                                if ( spec.type === 'static' ) {
                                        $field.text( spec.value );
                                } else {
         * @param {jQuery.Event} e Focus event
         */
        mw.widgets.datetime.DateTimeInputWidget.prototype.onFieldFocus = function ( $field ) {
+               var spec = $field.data( 'mw-widgets-datetime-dateTimeInputWidget-fieldSpec' );
+
                if ( !this.isDisabled() ) {
                        if ( this.getValueAsDate() === null ) {
                                this.setValue( this.formatter.getDefaultDate() );
                        }
 
                        if ( this.calendar ) {
-                               this.calendar.toggle( true );
+                               this.calendar.toggle( !!spec.calendarComponent );
                        }
                }
        };
index b280ead..6db2d06 100644 (file)
@@ -67,6 +67,7 @@
                        case 'year|#':
                                spec = {
                                        component: 'Year',
+                                       calendarComponent: true,
                                        type: 'number',
                                        size: 4,
                                        zeropad: false
@@ -76,6 +77,7 @@
                        case 'season|#':
                                spec = {
                                        component: 'Season',
+                                       calendarComponent: true,
                                        type: 'number',
                                        size: 1,
                                        intercalarySize: { 1: 0 },
@@ -86,6 +88,7 @@
                        case 'season|full':
                                spec = {
                                        component: 'Season',
+                                       calendarComponent: true,
                                        type: 'string',
                                        intercalarySize: { 1: 0 },
                                        values: {
                        case 'dow|full':
                                spec = {
                                        component: 'DOW',
+                                       calendarComponent: true,
                                        editable: false,
                                        type: 'string',
                                        intercalarySize: { 1: 0 },
                        case 'day|0':
                                spec = {
                                        component: 'Day',
+                                       calendarComponent: true,
                                        type: 'string',
                                        size: 2,
                                        intercalarySize: { 1: 13 },
                        case 'second|0':
                                spec = {
                                        component: tag.charAt( 0 ).toUpperCase() + tag.slice( 1 ),
+                                       calendarComponent: false,
                                        type: 'number',
                                        size: 2,
                                        zeropad: params[ 0 ] === '0'
                        case 'millisecond|0':
                                spec = {
                                        component: 'Millisecond',
+                                       calendarComponent: false,
                                        type: 'number',
                                        size: 3,
                                        zeropad: params[ 0 ] === '0'
index 9e9b15f..877edba 100644 (file)
@@ -2,7 +2,7 @@
 
        /**
         * Provides various methods needed for formatting dates and times. This
-        * implementation implments the proleptic Gregorian calendar over years
+        * implementation implements the proleptic Gregorian calendar over years
         * 0000–9999.
         *
         * @class
                        case 'year|0':
                                spec = {
                                        component: 'year',
+                                       calendarComponent: true,
                                        type: 'number',
                                        size: 4,
                                        zeropad: params[ 0 ] === '0'
                        case 'month|full':
                                spec = {
                                        component: 'month',
+                                       calendarComponent: true,
                                        type: 'string',
                                        values: params[ 0 ] === 'short' ? this.shortMonthNames : this.fullMonthNames
                                };
                        case 'dow|full':
                                spec = {
                                        component: 'dow',
+                                       calendarComponent: true,
                                        editable: false,
                                        type: 'string',
                                        values: params[ 0 ] === 'short' ? this.shortDayNames : this.fullDayNames
                        case 'month|0':
                        case 'day|#':
                        case 'day|0':
+                               spec = {
+                                       component: tag,
+                                       calendarComponent: true,
+                                       type: 'number',
+                                       size: 2,
+                                       zeropad: params[ 0 ] === '0'
+                               };
+                               break;
+
                        case 'hour|#':
                        case 'hour|0':
                        case 'minute|#':
                        case 'second|0':
                                spec = {
                                        component: tag,
+                                       calendarComponent: false,
                                        type: 'number',
                                        size: 2,
                                        zeropad: params[ 0 ] === '0'
                        case 'hour|012':
                                spec = {
                                        component: 'hour12',
+                                       calendarComponent: false,
                                        type: 'number',
                                        size: 2,
                                        zeropad: params[ 0 ] === '012'
                        case 'hour|period':
                                spec = {
                                        component: 'hour12period',
+                                       calendarComponent: false,
                                        type: 'boolean',
                                        values: this.hour12Periods
                                };
                        case 'millisecond|0':
                                spec = {
                                        component: 'millisecond',
+                                       calendarComponent: false,
                                        type: 'number',
                                        size: 3,
                                        zeropad: params[ 0 ] === '0'
index b58cb69..d414232 100644 (file)
@@ -1,8 +1,3 @@
-/*!
- * An interface for scheduling background tasks.
- *
- * Loosely based on https://w3c.github.io/requestidlecallback/
- */
 ( function ( mw ) {
        var maxBusy = 50;
 
        /**
         * Schedule a deferred task to run in the background.
         *
+        * This allows code to perform tasks in the main thread without impacting
+        * time-critical operations such as animations and response to input events.
+        *
+        * Basic logic is as follows:
+        *
+        * - User input event should be acknowledged within 100ms per [RAIL].
+        * - Idle work should be grouped in blocks of upto 50ms so that enough time
+        *   remains for the event handler to execute and any rendering to take place.
+        * - Whenever a native event happens (e.g. user input), the deadline for any
+        *   running idle callback drops to 0.
+        * - As long as the deadline is non-zero, other callbacks pending may be
+        *   executed in the same idle period.
+        *
+        * See also:
+        *
+        * - <https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback>
+        * - <https://w3c.github.io/requestidlecallback/>
+        * - <https://developers.google.com/web/updates/2015/08/using-requestidlecallback>
+        * [RAIL]: https://developers.google.com/web/fundamentals/performance/rail
+        *
         * @member mw
         * @param {Function} callback
+        * @param {Object} [options]
+        * @param {number} [options.timeout] If set, the callback will be scheduled for
+        *  immediate execution after this amount of time (in milliseconds) if it didn't run
+        *  by that time.
         */
        mw.requestIdleCallback = mw.requestIdleCallbackInternal;
        /*
index 094c4df..e651c9c 100644 (file)
@@ -26,7 +26,7 @@
                // Initialize
                this.drawCarousel();
                this.setSizeRequirement();
-               this.toggleThumbnails( false );
+               this.toggleThumbnails( !!this.$gallery.attr( 'data-showthumbnails' ) );
                this.showCurrentImage();
 
                // Events
index 5dda7e0..7cfe058 100644 (file)
                $links = $links.filter( ':not( #bodyContent *, #content * )' );
 
                $links.click( function ( e ) {
-                       var action, api, $link;
+                       var mwTitle, action, api, $link;
 
+                       mwTitle = mw.Title.newFromText( title );
                        action = mwUriGetAction( this.href );
 
-                       if ( action !== 'watch' && action !== 'unwatch' ) {
+                       if ( !mwTitle || ( action !== 'watch' && action !== 'unwatch' ) ) {
                                // Let native browsing handle the link
                                return true;
                        }
 
                        api[ action ]( title )
                                .done( function ( watchResponse ) {
-                                       var mwTitle, message, otherAction = action === 'watch' ? 'unwatch' : 'watch';
+                                       var message, otherAction = action === 'watch' ? 'unwatch' : 'watch';
 
-                                       mwTitle = mw.Title.newFromText( title );
-                                       if ( mwTitle && mwTitle.getNamespaceId() > 0 && mwTitle.getNamespaceId() % 2 === 1 ) {
+                                       if ( mwTitle.getNamespaceId() > 0 && mwTitle.getNamespaceId() % 2 === 1 ) {
                                                message = action === 'watch' ? 'addedwatchtext-talk' : 'removedwatchtext-talk';
                                        } else {
                                                message = action === 'watch' ? 'addedwatchtext' : 'removedwatchtext';
                                        }
 
-                                       mw.notify( mw.message( message, title ).parseDom(), {
+                                       mw.notify( mw.message( message, mwTitle.getPrefixedText() ).parseDom(), {
                                                tag: 'watch-self'
                                        } );
 
                                        $( '#wpWatchthis' ).prop( 'checked', watchResponse.watched === true );
                                } )
                                .fail( function () {
-                                       var cleanTitle, msg, link;
+                                       var msg, link;
 
                                        // Reset link to non-loading mode
                                        updateWatchLink( $link, action );
 
                                        // Format error message
-                                       cleanTitle = title.replace( /_/g, ' ' );
                                        link = mw.html.element(
                                                'a', {
                                                        href: mw.util.getUrl( title ),
-                                                       title: cleanTitle
-                                               }, cleanTitle
+                                                       title: mwTitle.getPrefixedText()
+                                               }, mwTitle.getPrefixedText()
                                        );
                                        msg = mw.message( 'watcherrortext', link );
 
index b6f2830..f6b6bce 100644 (file)
@@ -20633,10 +20633,12 @@ language=sr variant=sr-ec
 </p>
 !! end
 
+# FIXME: This test is currently broken in the PHP parser T153761
 !! test
 T146304: Don't break template parsing if language converter markup is in the parameter.
 !! options
 language=sr variant=sr-ec
+disabled
 !! wikitext
 {{echo|-{R|foo}-}}
 !! html/php
index 5d42cf5..61ad7da 100755 (executable)
@@ -10,9 +10,16 @@ fi
 # Note that this isn't loaded in via composer because then composer can
 # only be run with php7.0
 if [ ! -f "$PHAN" ]; then
-       echo "The environment variable PHAN must point to the 'phan' file"
-       echo "in a checkout of https://github.com/etsy/phan.git"
-       exit 1
+       # If no PHAN is specified then try to get location from PATH
+       export PHAN="$(which phan)"
+       if [ ! -f "$PHAN" ]; then
+               echo "The environment variable PHAN must point to the 'phan' file"
+               echo "in a checkout of https://github.com/etsy/phan.git"
+               echo "Or phan must be included in your PATH"
+               exit 1
+       fi
+else
+       export PHAN="php7.0 $PHAN"
 fi
 
 if [ -z "$MW_INSTALL_PATH" ]; then
@@ -24,7 +31,7 @@ fi
 
 # If the first argument doesn't start with a -, then it's a path
 # to another project (extension, skin, etc.) to analyze
-if [[ "$1" != "-"* ]]; then
+if [[ -n "$1" && "$1" != "-"* ]]; then
        cd $1
        shift
 else
@@ -57,7 +64,7 @@ export RUN="${ISSUES}/issues-${REV}"
 
 # Run the analysis, emitting output to the
 # issues file.
-php7.0 $PHAN \
+$PHAN \
        --project-root-directory "$ROOT" \
        --config-file "$CONFIG_FILE" \
        --output "php://stdout" \
index 14ff52a..cef03ee 100644 (file)
@@ -167,7 +167,7 @@ return [
         */
        'analyze_signature_compatibility' => true,
 
-       // Emit all issues. They are then supressed via
+       // Emit all issues. They are then suppressed via
        // suppress_issue_types, rather than a minimum
        // severity.
        "minimum_severity" => 0,
@@ -337,7 +337,7 @@ return [
                "PhanUndeclaredMethod",
                // approximate error count: 1342
                "PhanUndeclaredProperty",
-               // approximate error count: 9
+               // approximate error count: 3
                "PhanUndeclaredStaticMethod",
                // approximate error count: 79
                "PhanUndeclaredVariable",
index dbb126f..81b75de 100644 (file)
@@ -170,7 +170,7 @@ class DatabaseMysqlBaseTest extends MediaWikiTestCase {
        }
 
        function getMockForViews() {
-               $db = $this->getMockBuilder( 'DatabaseMysql' )
+               $db = $this->getMockBuilder( 'DatabaseMysqli' )
                        ->disableOriginalConstructor()
                        ->setMethods( [ 'fetchRow', 'query' ] )
                        ->getMock();
@@ -314,7 +314,7 @@ class DatabaseMysqlBaseTest extends MediaWikiTestCase {
         * @dataProvider provideLagAmounts
         */
        function testPtHeartbeat( $lag ) {
-               $db = $this->getMockBuilder( 'DatabaseMysql' )
+               $db = $this->getMockBuilder( 'DatabaseMysqli' )
                        ->disableOriginalConstructor()
                        ->setMethods( [
                                'getLagDetectionMethod', 'getHeartbeatData', 'getMasterServerInfo' ] )
index d8773f8..573b395 100644 (file)
@@ -29,7 +29,7 @@ class LBFactoryTest extends MediaWikiTestCase {
         * @dataProvider getLBFactoryClassProvider
         */
        public function testGetLBFactoryClass( $expected, $deprecated ) {
-               $mockDB = $this->getMockBuilder( 'DatabaseMysql' )
+               $mockDB = $this->getMockBuilder( 'DatabaseMysqli' )
                        ->disableOriginalConstructor()
                        ->getMock();
 
@@ -178,7 +178,7 @@ class LBFactoryTest extends MediaWikiTestCase {
                $mPos = new MySQLMasterPos( 'db1034-bin.000976', '843431247' );
 
                $now = microtime( true );
-               $mockDB = $this->getMockBuilder( 'DatabaseMysql' )
+               $mockDB = $this->getMockBuilder( 'DatabaseMysqli' )
                        ->disableOriginalConstructor()
                        ->getMock();
                $mockDB->method( 'writesOrCallbacksPending' )->willReturn( true );
index 8366541..6c93c79 100644 (file)
@@ -112,7 +112,8 @@ class FileBackendDBRepoWrapperTest extends MediaWikiTestCase {
        }
 
        protected function getMocks() {
-               $dbMock = $this->getMockBuilder( 'DatabaseMysql' )
+               $dbMock = $this->getMockBuilder( 'DatabaseMysqli' )
+                       ->disableOriginalClone()
                        ->disableOriginalConstructor()
                        ->getMock();
 
index 92a54fa..d3f9374 100644 (file)
@@ -25,7 +25,7 @@ class MigrateFileRepoLayoutTest extends MediaWikiTestCase {
                        ]
                ] );
 
-               $dbMock = $this->getMockBuilder( 'DatabaseMysql' )
+               $dbMock = $this->getMockBuilder( 'DatabaseMysqli' )
                        ->disableOriginalConstructor()
                        ->getMock();
 
index c1083af..1208a20 100644 (file)
  */
 class QueryAllSpecialPagesTest extends MediaWikiTestCase {
 
+       /**
+        * @var SpecialPage[]
+        */
+       private $queryPages;
+
        /** List query pages that can not be tested automatically */
        protected $manualTest = [
                'LinkSearchPage'
@@ -36,8 +41,9 @@ class QueryAllSpecialPagesTest extends MediaWikiTestCase {
 
                foreach ( QueryPage::getPages() as $page ) {
                        $class = $page[0];
+                       $name = $page[1];
                        if ( !in_array( $class, $this->manualTest ) ) {
-                               $this->queryPages[$class] = new $class;
+                               $this->queryPages[$class] = SpecialPageFactory::getPage( $name );
                        }
                }
        }
index cb1b3d2..6506d58 100644 (file)
@@ -237,7 +237,7 @@ class BatchRowUpdateTest extends MediaWikiTestCase {
        protected function mockDb() {
                // @TODO: mock from Database
                // FIXME: the constructor normally sets mAtomicLevels and mSrvCache
-               $databaseMysql = $this->getMockBuilder( 'DatabaseMysql' )
+               $databaseMysql = $this->getMockBuilder( 'DatabaseMysqli' )
                        ->disableOriginalConstructor()
                        ->getMock();
                $databaseMysql->expects( $this->any() )
index 2e35eca..5a28bfb 100644 (file)
@@ -75,11 +75,11 @@ class FetchTextTest extends MediaWikiTestCase {
 
        // We add 5 Revisions for this test. Their corresponding text id's
        // are stored in the following 5 variables.
-       private $textId1;
-       private $textId2;
-       private $textId3;
-       private $textId4;
-       private $textId5;
+       protected static $textId1;
+       protected static $textId2;
+       protected static $textId3;
+       protected static $textId4;
+       protected static $textId5;
 
        /**
         * @var Exception|null As the current MediaWikiTestCase::run is not
@@ -88,7 +88,7 @@ class FetchTextTest extends MediaWikiTestCase {
         * we catch the exception and store it until we are in setUp and may
         * finally rethrow the exception without crashing the test suite.
         */
-       private $exceptionFromAddDBData;
+       protected static $exceptionFromAddDBDataOnce;
 
        /**
         * @var FetchText The (mocked) FetchText that is to test
@@ -123,17 +123,13 @@ class FetchTextTest extends MediaWikiTestCase {
                throw new MWException( "Could not determine text id" );
        }
 
-       function addDBData() {
-               $this->tablesUsed[] = 'page';
-               $this->tablesUsed[] = 'revision';
-               $this->tablesUsed[] = 'text';
-
+       function addDBDataOnce() {
                $wikitextNamespace = $this->getDefaultWikitextNS();
 
                try {
                        $title = Title::newFromText( 'FetchTextTestPage1', $wikitextNamespace );
                        $page = WikiPage::factory( $title );
-                       $this->textId1 = $this->addRevision(
+                       self::$textId1 = $this->addRevision(
                                $page,
                                "FetchTextTestPage1Text1",
                                "FetchTextTestPage1Summary1"
@@ -141,30 +137,30 @@ class FetchTextTest extends MediaWikiTestCase {
 
                        $title = Title::newFromText( 'FetchTextTestPage2', $wikitextNamespace );
                        $page = WikiPage::factory( $title );
-                       $this->textId2 = $this->addRevision(
+                       self::$textId2 = $this->addRevision(
                                $page,
                                "FetchTextTestPage2Text1",
                                "FetchTextTestPage2Summary1"
                        );
-                       $this->textId3 = $this->addRevision(
+                       self::$textId3 = $this->addRevision(
                                $page,
                                "FetchTextTestPage2Text2",
                                "FetchTextTestPage2Summary2"
                        );
-                       $this->textId4 = $this->addRevision(
+                       self::$textId4 = $this->addRevision(
                                $page,
                                "FetchTextTestPage2Text3",
                                "FetchTextTestPage2Summary3"
                        );
-                       $this->textId5 = $this->addRevision(
+                       self::$textId5 = $this->addRevision(
                                $page,
                                "FetchTextTestPage2Text4 some additional Text  ",
                                "FetchTextTestPage2Summary4 extra "
                        );
                } catch ( Exception $e ) {
                        // We'd love to pass $e directly. However, ... see
-                       // documentation of exceptionFromAddDBData
-                       $this->exceptionFromAddDBData = $e;
+                       // documentation of exceptionFromAddDBDataOnce
+                       self::$exceptionFromAddDBDataOnce = $e;
                }
        }
 
@@ -172,8 +168,8 @@ class FetchTextTest extends MediaWikiTestCase {
                parent::setUp();
 
                // Check if any Exception is stored for rethrowing from addDBData
-               if ( $this->exceptionFromAddDBData !== null ) {
-                       throw $this->exceptionFromAddDBData;
+               if ( self::$exceptionFromAddDBDataOnce !== null ) {
+                       throw self::$exceptionFromAddDBDataOnce;
                }
 
                $this->fetchText = new SemiMockedFetchText();
@@ -198,24 +194,29 @@ class FetchTextTest extends MediaWikiTestCase {
        // provider would not know the required ids.
 
        function testExistingSimple() {
-               $this->assertFilter( $this->textId2,
-                       $this->textId2 . "\n23\nFetchTextTestPage2Text1" );
+               $this->assertFilter( self::$textId2,
+                       self::$textId2 . "\n23\nFetchTextTestPage2Text1" );
        }
 
        function testExistingSimpleWithNewline() {
-               $this->assertFilter( $this->textId2 . "\n",
-                       $this->textId2 . "\n23\nFetchTextTestPage2Text1" );
+               $this->assertFilter( self::$textId2 . "\n",
+                       self::$textId2 . "\n23\nFetchTextTestPage2Text1" );
        }
 
        function testExistingSeveral() {
-               $this->assertFilter( "$this->textId1\n$this->textId5\n"
-                               . "$this->textId3\n$this->textId3",
-                       implode( "", [
-                               $this->textId1 . "\n23\nFetchTextTestPage1Text1",
-                               $this->textId5 . "\n44\nFetchTextTestPage2Text4 "
+               $this->assertFilter(
+                       join( "\n", [
+                               self::$textId1,
+                               self::$textId5,
+                               self::$textId3,
+                               self::$textId3,
+                       ] ),
+                       implode( '', [
+                               self::$textId1 . "\n23\nFetchTextTestPage1Text1",
+                               self::$textId5 . "\n44\nFetchTextTestPage2Text4 "
                                        . "some additional Text",
-                               $this->textId3 . "\n23\nFetchTextTestPage2Text2",
-                               $this->textId3 . "\n23\nFetchTextTestPage2Text2"
+                               self::$textId3 . "\n23\nFetchTextTestPage2Text2",
+                               self::$textId3 . "\n23\nFetchTextTestPage2Text2"
                        ] ) );
        }
 
@@ -224,7 +225,7 @@ class FetchTextTest extends MediaWikiTestCase {
        }
 
        function testNonExisting() {
-               $this->assertFilter( $this->textId5 + 10, ( $this->textId5 + 10 ) . "\n-1\n" );
+               $this->assertFilter( self::$textId5 + 10, ( self::$textId5 + 10 ) . "\n-1\n" );
        }
 
        function testNegativeInteger() {
@@ -233,13 +234,13 @@ class FetchTextTest extends MediaWikiTestCase {
 
        function testFloatingPointNumberExisting() {
                // float -> int -> revision
-               $this->assertFilter( $this->textId3 + 0.14159,
-                       $this->textId3 . "\n23\nFetchTextTestPage2Text2" );
+               $this->assertFilter( self::$textId3 + 0.14159,
+                       self::$textId3 . "\n23\nFetchTextTestPage2Text2" );
        }
 
        function testFloatingPointNumberNonExisting() {
-               $this->assertFilter( $this->textId5 + 3.14159,
-                       ( $this->textId5 + 3 ) . "\n-1\n" );
+               $this->assertFilter( self::$textId5 + 3.14159,
+                       ( self::$textId5 + 3 ) . "\n-1\n" );
        }
 
        function testCharacters() {
@@ -247,15 +248,15 @@ class FetchTextTest extends MediaWikiTestCase {
        }
 
        function testMix() {
-               $this->assertFilter( "ab\n" . $this->textId4 . ".5cd\n\nefg\n" . $this->textId2
-                               . "\n" . $this->textId3,
+               $this->assertFilter( "ab\n" . self::$textId4 . ".5cd\n\nefg\n" . self::$textId2
+                               . "\n" . self::$textId3,
                        implode( "", [
                                "0\n-1\n",
-                               $this->textId4 . "\n23\nFetchTextTestPage2Text3",
+                               self::$textId4 . "\n23\nFetchTextTestPage2Text3",
                                "0\n-1\n",
                                "0\n-1\n",
-                               $this->textId2 . "\n23\nFetchTextTestPage2Text1",
-                               $this->textId3 . "\n23\nFetchTextTestPage2Text2"
+                               self::$textId2 . "\n23\nFetchTextTestPage2Text1",
+                               self::$textId3 . "\n23\nFetchTextTestPage2Text2"
                        ] ) );
        }
 }
index e30088d..f31a646 100644 (file)
@@ -93,6 +93,7 @@ return [
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.watch.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.ForeignApi.test.js',
                        'tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js',
+                       'tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.cookie.test.js',
@@ -136,6 +137,7 @@ return [
                        'mediawiki.util',
                        'mediawiki.viewport',
                        'mediawiki.special.recentchanges',
+                       'mediawiki.rcfilters.filters',
                        'mediawiki.language',
                        'mediawiki.cldr',
                        'mediawiki.cookie',
index 11ceeea..5203def 100644 (file)
@@ -88,7 +88,7 @@
                [ '1.238.27.1', true, 1238027001, 'An IP address with small numbers' ],
                [ '238.27.1', false, 238027001, 'A malformed IP Address' ],
                [ '1', false, 1, 'A super malformed IP Address' ],
-               [ 'Just text', false, 0, 'A line with just text' ],
+               [ 'Just text', false, -Infinity, 'A line with just text' ],
                [ '45.238.27.109Postfix', false, 45238027109, 'An IP address with a connected postfix' ],
                [ '45.238.27.109 postfix', false, 45238027109, 'An IP address with a seperated postfix' ]
        ];
                [ '2000',               false, 0, 'Plain 4-digit year' ],
                [ '2000-01',            false, 0, 'Year with month' ],
                [ '2000-01-01', true, 946684800000, 'Year with month and day' ],
-               [ '2000-13-01', true, 0, 'Non existant month' ],
-               [ '2000-01-32', true, 0, 'Non existant day' ],
+               [ '2000-13-01', true, -Infinity, 'Non existant month' ],
+               [ '2000-01-32', true, -Infinity, 'Non existant day' ],
                [ '2000-01-01T12:30:30',                true, 946729830000, 'Date with a time' ],
                [ '2000-01-01T12:30:30Z',       true, 946729830000, 'Date with a UTC+0 time' ],
-               [ '2000-01-01T24:30:30Z',       true, 0, 'Date with invalid hours' ],
-               [ '2000-01-01T12:60:30Z',       true, 0, 'Date with invalid minutes' ],
+               [ '2000-01-01T24:30:30Z',       true, -Infinity, 'Date with invalid hours' ],
+               [ '2000-01-01T12:60:30Z',       true, -Infinity, 'Date with invalid minutes' ],
                [ '2000-01-01T12:30:61Z',       true, 946729800000, 'Date with invalid amount of seconds, drops seconds' ],
                [ '2000-01-01T23:59:59Z',       true, 946771199000, 'Edges of time' ],
                [ '2000-01-01T12:30:30.111Z',   true, 946729830111, 'Date with milliseconds' ],
                [ '2000-01-01T12:30:30.11111Z', true, 946729830111, 'Date with too high precision' ],
-               [ '2000-01-01T12:30:30,111Z',   true, 0, 'Date with milliseconds and , separator' ],
+               [ '2000-01-01T12:30:30,111Z',   true, -Infinity, 'Date with milliseconds and , separator' ],
                [ '2000-01-01T12:30:30+01:00',  true, 946726230000, 'Date time in UTC+1' ],
                [ '2000-01-01T12:30:30+01:30',  true, 946724430000, 'Date time in UTC+1:30' ],
                [ '2000-01-01T12:30:30-01:00',  true, 946733430000, 'Date time in UTC-1' ],
                [ '2000-01-01T12:30:30-01:30',  true, 946735230000, 'Date time in UTC-1:30' ],
-               [ '2000-01-01T12:30:30.111+01:00', true, 946726230111, 'Date time and milliseconds in UTC+1 ' ],
+               [ '2000-01-01T12:30:30.111+01:00', true, 946726230111, 'Date time and milliseconds in UTC+1' ],
                [ '2000-01-01Postfix', true, 946684800000, 'Date with appended postfix' ],
                [ '2000-01-01 Postfix', true, 946684800000, 'Date with separate postfix' ]
                /* Disable testcases, because behavior is browser dependant */
index ca26aaf..483a37d 100644 (file)
 
                assert.equal(
                        parsers[ 1 ].format( $table.find( 'tbody > tr > td:eq(1)' ).text() ),
-                       0,
-                       'empty cell is sorted as number 0'
+                       -Infinity,
+                       'empty cell is sorted as number -Infinity'
                );
        } );
 
diff --git a/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js b/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js
new file mode 100644 (file)
index 0000000..aa490a6
--- /dev/null
@@ -0,0 +1,468 @@
+( function ( mw, $ ) {
+       QUnit.module( 'mediawiki.rcfilters - FiltersViewModel' );
+
+       QUnit.test( 'Setting up filters', function ( assert ) {
+               var definition = {
+                               group1: {
+                                       title: 'Group 1',
+                                       type: 'send_unselected_if_any',
+                                       filters: [
+                                               {
+                                                       name: 'group1filter1',
+                                                       label: 'Group 1: Filter 1',
+                                                       description: 'Description of Filter 1 in Group 1'
+                                               },
+                                               {
+                                                       name: 'group1filter2',
+                                                       label: 'Group 1: Filter 2',
+                                                       description: 'Description of Filter 2 in Group 1'
+                                               }
+                                       ]
+                               },
+                               group2: {
+                                       title: 'Group 2',
+                                       type: 'send_unselected_if_any',
+                                       filters: [
+                                               {
+                                                       name: 'group2filter1',
+                                                       label: 'Group 2: Filter 1',
+                                                       description: 'Description of Filter 1 in Group 2'
+                                               },
+                                               {
+                                                       name: 'group2filter2',
+                                                       label: 'Group 2: Filter 2',
+                                                       description: 'Description of Filter 2 in Group 2'
+                                               }
+                                       ]
+                               }
+                       },
+                       model = new mw.rcfilters.dm.FiltersViewModel();
+
+               model.initializeFilters( definition );
+
+               assert.ok(
+                       model.getItemByName( 'group1filter1' ) instanceof mw.rcfilters.dm.FilterItem &&
+                       model.getItemByName( 'group1filter2' ) instanceof mw.rcfilters.dm.FilterItem &&
+                       model.getItemByName( 'group2filter1' ) instanceof mw.rcfilters.dm.FilterItem &&
+                       model.getItemByName( 'group2filter2' ) instanceof mw.rcfilters.dm.FilterItem,
+                       'Filters instantiated and stored correctly'
+               );
+
+               assert.deepEqual(
+                       model.getState(),
+                       {
+                               group1filter1: false,
+                               group1filter2: false,
+                               group2filter1: false,
+                               group2filter2: false
+                       },
+                       'Initial state of filters'
+               );
+
+               model.updateFilters( {
+                       group1filter1: true,
+                       group2filter2: true
+               } );
+               assert.deepEqual(
+                       model.getState(),
+                       {
+                               group1filter1: true,
+                               group1filter2: false,
+                               group2filter1: false,
+                               group2filter2: true
+                       },
+                       'Updating filter states correctly'
+               );
+       } );
+
+       QUnit.test( 'Finding matching filters', function ( assert ) {
+               var matches,
+                       definition = {
+                               group1: {
+                                       title: 'Group 1',
+                                       type: 'send_unselected_if_any',
+                                       filters: [
+                                               {
+                                                       name: 'group1filter1',
+                                                       label: 'Group 1: Filter 1',
+                                                       description: 'Description of Filter 1 in Group 1'
+                                               },
+                                               {
+                                                       name: 'group1filter2',
+                                                       label: 'Group 1: Filter 2',
+                                                       description: 'Description of Filter 2 in Group 1'
+                                               }
+                                       ]
+                               },
+                               group2: {
+                                       title: 'Group 2',
+                                       type: 'send_unselected_if_any',
+                                       filters: [
+                                               {
+                                                       name: 'group2filter1',
+                                                       label: 'Group 2: Filter 1',
+                                                       description: 'Description of Filter 1 in Group 2'
+                                               },
+                                               {
+                                                       name: 'group2filter2',
+                                                       label: 'Group 2: Filter 2',
+                                                       description: 'Description of Filter 2 in Group 2'
+                                               }
+                                       ]
+                               }
+                       },
+                       model = new mw.rcfilters.dm.FiltersViewModel();
+
+               model.initializeFilters( definition );
+
+               matches = model.findMatches( 'group 1' );
+               assert.equal(
+                       matches.group1.length,
+                       2,
+                       'findMatches finds correct group with correct number of results'
+               );
+
+               assert.deepEqual(
+                       matches.group1.map( function ( item ) { return item.getName(); } ),
+                       [ 'group1filter1', 'group1filter2' ],
+                       'findMatches finds the correct items within a single group'
+               );
+
+               matches = model.findMatches( 'filter 1' );
+               assert.ok(
+                       matches.group1.length === 1 && matches.group2.length === 1,
+                       'findMatches finds correct number of results in multiple groups'
+               );
+
+               assert.deepEqual(
+                       [
+                               matches.group1.map( function ( item ) { return item.getName(); } ),
+                               matches.group2.map( function ( item ) { return item.getName(); } )
+                       ],
+                       [
+                               [ 'group1filter1' ],
+                               [ 'group2filter1' ]
+                       ],
+                       'findMatches finds the correct items within multiple groups'
+               );
+
+               matches = model.findMatches( 'foo' );
+               assert.ok(
+                       $.isEmptyObject( matches ),
+                       'findMatches returns an empty object when no results found'
+               );
+       } );
+
+       QUnit.test( 'getParametersFromFilters', function ( assert ) {
+               var definition = {
+                               group1: {
+                                       title: 'Group 1',
+                                       type: 'send_unselected_if_any',
+                                       filters: [
+                                               {
+                                                       name: 'hidefilter1',
+                                                       label: 'Group 1: Filter 1',
+                                                       description: 'Description of Filter 1 in Group 1'
+                                               },
+                                               {
+                                                       name: 'hidefilter2',
+                                                       label: 'Group 1: Filter 2',
+                                                       description: 'Description of Filter 2 in Group 1'
+                                               },
+                                               {
+                                                       name: 'hidefilter3',
+                                                       label: 'Group 1: Filter 3',
+                                                       description: 'Description of Filter 3 in Group 1'
+                                               }
+                                       ]
+                               },
+                               group2: {
+                                       title: 'Group 2',
+                                       type: 'send_unselected_if_any',
+                                       filters: [
+                                               {
+                                                       name: 'hidefilter4',
+                                                       label: 'Group 2: Filter 1',
+                                                       description: 'Description of Filter 1 in Group 2'
+                                               },
+                                               {
+                                                       name: 'hidefilter5',
+                                                       label: 'Group 2: Filter 2',
+                                                       description: 'Description of Filter 2 in Group 2'
+                                               },
+                                               {
+                                                       name: 'hidefilter6',
+                                                       label: 'Group 2: Filter 3',
+                                                       description: 'Description of Filter 3 in Group 2'
+                                               }
+                                       ]
+                               }
+                       },
+                       model = new mw.rcfilters.dm.FiltersViewModel();
+
+               model.initializeFilters( definition );
+
+               // Starting with all filters unselected
+               assert.deepEqual(
+                       model.getParametersFromFilters(),
+                       {
+                               hidefilter1: 0,
+                               hidefilter2: 0,
+                               hidefilter3: 0,
+                               hidefilter4: 0,
+                               hidefilter5: 0,
+                               hidefilter6: 0
+                       },
+                       'Unselected filters return all parameters falsey.'
+               );
+
+               // Select 1 filter
+               model.updateFilters( {
+                       hidefilter1: true,
+                       hidefilter2: false,
+                       hidefilter3: false,
+                       hidefilter4: false,
+                       hidefilter5: false,
+                       hidefilter6: false
+               } );
+               // Only one filter in one group
+               assert.deepEqual(
+                       model.getParametersFromFilters(),
+                       {
+                               // Group 1 (one selected, the others are true)
+                               hidefilter1: 0,
+                               hidefilter2: 1,
+                               hidefilter3: 1,
+                               // Group 2 (nothing is selected, all false)
+                               hidefilter4: 0,
+                               hidefilter5: 0,
+                               hidefilter6: 0
+                       },
+                       'One filters in one "send_unselected_if_any" group returns the other parameters truthy.'
+               );
+
+               // Select 2 filters
+               model.updateFilters( {
+                       hidefilter1: true,
+                       hidefilter2: true,
+                       hidefilter3: false,
+                       hidefilter4: false,
+                       hidefilter5: false,
+                       hidefilter6: false
+               } );
+               // Two selected filters in one group
+               assert.deepEqual(
+                       model.getParametersFromFilters(),
+                       {
+                               // Group 1 (two selected, the others are true)
+                               hidefilter1: 0,
+                               hidefilter2: 0,
+                               hidefilter3: 1,
+                               // Group 2 (nothing is selected, all false)
+                               hidefilter4: 0,
+                               hidefilter5: 0,
+                               hidefilter6: 0
+                       },
+                       'One filters in one "send_unselected_if_any" group returns the other parameters truthy.'
+               );
+
+               // Select 3 filters
+               model.updateFilters( {
+                       hidefilter1: true,
+                       hidefilter2: true,
+                       hidefilter3: true,
+                       hidefilter4: false,
+                       hidefilter5: false,
+                       hidefilter6: false
+               } );
+               // All filters of the group are selected == this is the same as not selecting any
+               assert.deepEqual(
+                       model.getParametersFromFilters(),
+                       {
+                               // Group 1 (all selected, all false)
+                               hidefilter1: 0,
+                               hidefilter2: 0,
+                               hidefilter3: 0,
+                               // Group 2 (nothing is selected, all false)
+                               hidefilter4: 0,
+                               hidefilter5: 0,
+                               hidefilter6: 0
+                       },
+                       'All filters selected in one "send_unselected_if_any" group returns all parameters falsy.'
+               );
+       } );
+
+       QUnit.test( 'getFiltersFromParameters', function ( assert ) {
+               var definition = {
+                               group1: {
+                                       title: 'Group 1',
+                                       type: 'send_unselected_if_any',
+                                       filters: [
+                                               {
+                                                       name: 'hidefilter1',
+                                                       label: 'Show filter 1',
+                                                       description: 'Description of Filter 1 in Group 1'
+                                               },
+                                               {
+                                                       name: 'hidefilter2',
+                                                       label: 'Show filter 2',
+                                                       description: 'Description of Filter 2 in Group 1'
+                                               },
+                                               {
+                                                       name: 'hidefilter3',
+                                                       label: 'Show filter 3',
+                                                       description: 'Description of Filter 3 in Group 1'
+                                               }
+                                       ]
+                               },
+                               group2: {
+                                       title: 'Group 2',
+                                       type: 'send_unselected_if_any',
+                                       filters: [
+                                               {
+                                                       name: 'hidefilter4',
+                                                       label: 'Show filter 4',
+                                                       description: 'Description of Filter 1 in Group 2'
+                                               },
+                                               {
+                                                       name: 'hidefilter5',
+                                                       label: 'Show filter 5',
+                                                       description: 'Description of Filter 2 in Group 2'
+                                               },
+                                               {
+                                                       name: 'hidefilter6',
+                                                       label: 'Show filter 6',
+                                                       description: 'Description of Filter 3 in Group 2'
+                                               }
+                                       ]
+                               }
+                       },
+                       model = new mw.rcfilters.dm.FiltersViewModel();
+
+               model.initializeFilters( definition );
+
+               // Empty query = empty filter definition
+               assert.deepEqual(
+                       model.getFiltersFromParameters( {} ),
+                       {
+                               hidefilter1: false, // The text is "show filter 1"
+                               hidefilter2: false, // The text is "show filter 2"
+                               hidefilter3: false, // The text is "show filter 3"
+                               hidefilter4: false, // The text is "show filter 4"
+                               hidefilter5: false, // The text is "show filter 5"
+                               hidefilter6: false // The text is "show filter 6"
+                       },
+                       'Empty parameter query results in filters in initial state'
+               );
+
+               assert.deepEqual(
+                       model.getFiltersFromParameters( {
+                               hidefilter1: '1'
+                       } ),
+                       {
+                               hidefilter1: false, // The text is "show filter 1"
+                               hidefilter2: true, // The text is "show filter 2"
+                               hidefilter3: true, // The text is "show filter 3"
+                               hidefilter4: false, // The text is "show filter 4"
+                               hidefilter5: false, // The text is "show filter 5"
+                               hidefilter6: false // The text is "show filter 6"
+                       },
+                       'One falsey parameter in a group makes the rest of the filters in the group truthy (checked) in the interface'
+               );
+
+               assert.deepEqual(
+                       model.getFiltersFromParameters( {
+                               hidefilter1: '1',
+                               hidefilter2: '1'
+                       } ),
+                       {
+                               hidefilter1: false, // The text is "show filter 1"
+                               hidefilter2: false, // The text is "show filter 2"
+                               hidefilter3: true, // The text is "show filter 3"
+                               hidefilter4: false, // The text is "show filter 4"
+                               hidefilter5: false, // The text is "show filter 5"
+                               hidefilter6: false // The text is "show filter 6"
+                       },
+                       'Two falsey parameters in a group makes the rest of the filters in the group truthy (checked) in the interface'
+               );
+
+               assert.deepEqual(
+                       model.getFiltersFromParameters( {
+                               hidefilter1: '1',
+                               hidefilter2: '1',
+                               hidefilter3: '1'
+                       } ),
+                       {
+                               // TODO: This will have to be represented as a different state, though.
+                               hidefilter1: false, // The text is "show filter 1"
+                               hidefilter2: false, // The text is "show filter 2"
+                               hidefilter3: false, // The text is "show filter 3"
+                               hidefilter4: false, // The text is "show filter 4"
+                               hidefilter5: false, // The text is "show filter 5"
+                               hidefilter6: false // The text is "show filter 6"
+                       },
+                       'All paremeters in the same group false is equivalent to none are truthy (checked) in the interface'
+               );
+
+               // The ones above don't update the model, so we have a clean state.
+
+               model.updateFilters(
+                       model.getFiltersFromParameters( {
+                               hidefilter1: '1'
+                       } )
+               );
+
+               model.updateFilters(
+                       model.getFiltersFromParameters( {
+                               hidefilter3: '1'
+                       } )
+               );
+
+               // 1 and 3 are separately unchecked via hide parameters, 2 should still be
+               // checked.
+               // This can simulate separate filters in the same group being hidden different
+               // ways (e.g. preferences and URL).
+               assert.deepEqual(
+                       model.getState(),
+                       {
+                               hidefilter1: false, // The text is "show filter 1"
+                               hidefilter2: true, // The text is "show filter 2"
+                               hidefilter3: false, // The text is "show filter 3"
+                               hidefilter4: false, // The text is "show filter 4"
+                               hidefilter5: false, // The text is "show filter 5"
+                               hidefilter6: false // The text is "show filter 6"
+                       },
+                       'After unchecking 2 of 3 filters via separate updateFilters calls, only the remaining one is still checked.'
+               );
+
+               // Reset
+               model = new mw.rcfilters.dm.FiltersViewModel();
+               model.initializeFilters( definition );
+
+               model.updateFilters(
+                       model.getFiltersFromParameters( {
+                               hidefilter1: '1'
+                       } )
+               );
+               model.updateFilters(
+                       model.getFiltersFromParameters( {
+                               hidefilter1: '0'
+                       } )
+               );
+
+               // Simulates minor edits being hidden in preferences, then unhidden via URL
+               // override.
+               assert.deepEqual(
+                       model.getState(),
+                       {
+                               hidefilter1: false, // The text is "show filter 1"
+                               hidefilter2: false, // The text is "show filter 2"
+                               hidefilter3: false, // The text is "show filter 3"
+                               hidefilter4: false, // The text is "show filter 4"
+                               hidefilter5: false, // The text is "show filter 5"
+                               hidefilter6: false // The text is "show filter 6"
+                       },
+                       'After unchecking then checking a filter (without touching other filters in that group), all are checked'
+               );
+       } );
+}( mediaWiki, jQuery ) );