Merge "OutputPage: Ignore protocol-relative urls in transformResourcePath()"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 18 Jan 2017 18:43:32 +0000 (18:43 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 18 Jan 2017 18:43:32 +0000 (18:43 +0000)
407 files changed:
.mailmap
autoload.php
composer.json
docs/hooks.txt
includes/DefaultSettings.php
includes/Linker.php
includes/api/i18n/cs.json
includes/api/i18n/de.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/it.json
includes/api/i18n/ko.json
includes/api/i18n/nl.json
includes/api/i18n/oc.json
includes/api/i18n/pl.json
includes/api/i18n/pt.json
includes/api/i18n/ru.json
includes/api/i18n/sv.json
includes/api/i18n/uk.json
includes/api/i18n/zh-hans.json
includes/api/i18n/zh-hant.json
includes/cache/MessageCache.php
includes/exception/MWContentSerializationException.php
includes/exception/MWUnknownContentModelException.php
includes/installer/i18n/hu.json
includes/installer/i18n/ru.json
includes/installer/i18n/zh-hant.json
includes/libs/eventrelayer/EventRelayer.php
includes/libs/mime/MimeAnalyzer.php
includes/libs/mime/mime.info
includes/libs/mime/mime.types
includes/libs/rdbms/database/DatabaseMysqlBase.php
includes/libs/rdbms/exception/DBReplicationWaitError.php
includes/libs/rdbms/field/MssqlField.php
includes/libs/rdbms/field/MySQLField.php
includes/page/Article.php
includes/specials/SpecialSearch.php
includes/specials/SpecialStatistics.php
includes/specials/SpecialUncategorizedcategories.php
includes/specials/SpecialUserrights.php
includes/widget/search/BasicSearchResultSetWidget.php [new file with mode: 0644]
includes/widget/search/DidYouMeanWidget.php [new file with mode: 0644]
includes/widget/search/InterwikiSearchResultSetWidget.php [new file with mode: 0644]
includes/widget/search/SearchFormWidget.php [new file with mode: 0644]
includes/widget/search/SearchResultWidget.php
languages/data/grammarTransformations/he.json
languages/i18n/ar.json
languages/i18n/ast.json
languages/i18n/av.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bs.json
languages/i18n/da.json
languages/i18n/diq.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fr.json
languages/i18n/hif-latn.json
languages/i18n/hr.json
languages/i18n/hu.json
languages/i18n/ia.json
languages/i18n/io.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/lki.json
languages/i18n/lv.json
languages/i18n/mk.json
languages/i18n/my.json
languages/i18n/nb.json
languages/i18n/nl.json
languages/i18n/oc.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ru.json
languages/i18n/sah.json
languages/i18n/sr-ec.json
languages/i18n/tcy.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/udm.json
languages/i18n/uk.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesAb.php
languages/messages/MessagesAce.php
languages/messages/MessagesAf.php
languages/messages/MessagesAk.php
languages/messages/MessagesAln.php
languages/messages/MessagesAm.php
languages/messages/MessagesAn.php
languages/messages/MessagesAng.php
languages/messages/MessagesAnp.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesArn.php
languages/messages/MessagesArq.php
languages/messages/MessagesArz.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAvk.php
languages/messages/MessagesAy.php
languages/messages/MessagesAz.php
languages/messages/MessagesAzb.php
languages/messages/MessagesBa.php
languages/messages/MessagesBan.php
languages/messages/MessagesBar.php
languages/messages/MessagesBbc_latn.php
languages/messages/MessagesBcc.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBh.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBm.php
languages/messages/MessagesBo.php
languages/messages/MessagesBpy.php
languages/messages/MessagesBqi.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesBug.php
languages/messages/MessagesBxr.php
languages/messages/MessagesCa.php
languages/messages/MessagesCbk_zam.php
languages/messages/MessagesCdo.php
languages/messages/MessagesCeb.php
languages/messages/MessagesCh.php
languages/messages/MessagesCo.php
languages/messages/MessagesCrh_cyrl.php
languages/messages/MessagesCrh_latn.php
languages/messages/MessagesCs.php
languages/messages/MessagesCsb.php
languages/messages/MessagesCu.php
languages/messages/MessagesCv.php
languages/messages/MessagesCy.php
languages/messages/MessagesDa.php
languages/messages/MessagesDe.php
languages/messages/MessagesDe_at.php
languages/messages/MessagesDe_ch.php
languages/messages/MessagesDe_formal.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesDtp.php
languages/messages/MessagesDv.php
languages/messages/MessagesDz.php
languages/messages/MessagesEgl.php
languages/messages/MessagesEl.php
languages/messages/MessagesEml.php
languages/messages/MessagesEn_gb.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesEu.php
languages/messages/MessagesFa.php
languages/messages/MessagesFf.php
languages/messages/MessagesFi.php
languages/messages/MessagesFit.php
languages/messages/MessagesFo.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrc.php
languages/messages/MessagesFrp.php
languages/messages/MessagesFrr.php
languages/messages/MessagesFur.php
languages/messages/MessagesFy.php
languages/messages/MessagesGa.php
languages/messages/MessagesGag.php
languages/messages/MessagesGan.php
languages/messages/MessagesGan_hans.php
languages/messages/MessagesGan_hant.php
languages/messages/MessagesGd.php
languages/messages/MessagesGl.php
languages/messages/MessagesGn.php
languages/messages/MessagesGot.php
languages/messages/MessagesGrc.php
languages/messages/MessagesGsw.php
languages/messages/MessagesGu.php
languages/messages/MessagesGv.php
languages/messages/MessagesHak.php
languages/messages/MessagesHaw.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHif_latn.php
languages/messages/MessagesHr.php
languages/messages/MessagesHrx.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHt.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIe.php
languages/messages/MessagesIg.php
languages/messages/MessagesIi.php
languages/messages/MessagesIlo.php
languages/messages/MessagesInh.php
languages/messages/MessagesIo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesJut.php
languages/messages/MessagesJv.php
languages/messages/MessagesKa.php
languages/messages/MessagesKaa.php
languages/messages/MessagesKab.php
languages/messages/MessagesKbd_cyrl.php
languages/messages/MessagesKg.php
languages/messages/MessagesKhw.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKk.php
languages/messages/MessagesKk_arab.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKk_latn.php
languages/messages/MessagesKl.php
languages/messages/MessagesKm.php
languages/messages/MessagesKn.php
languages/messages/MessagesKo.php
languages/messages/MessagesKoi.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKs.php
languages/messages/MessagesKs_arab.php
languages/messages/MessagesKs_deva.php
languages/messages/MessagesKsh.php
languages/messages/MessagesKu_arab.php
languages/messages/MessagesKv.php
languages/messages/MessagesKw.php
languages/messages/MessagesKy.php
languages/messages/MessagesLa.php
languages/messages/MessagesLad.php
languages/messages/MessagesLb.php
languages/messages/MessagesLbe.php
languages/messages/MessagesLez.php
languages/messages/MessagesLfn.php
languages/messages/MessagesLi.php
languages/messages/MessagesLij.php
languages/messages/MessagesLiv.php
languages/messages/MessagesLmo.php
languages/messages/MessagesLn.php
languages/messages/MessagesLo.php
languages/messages/MessagesLtg.php
languages/messages/MessagesLzh.php
languages/messages/MessagesLzz.php
languages/messages/MessagesMap_bms.php
languages/messages/MessagesMdf.php
languages/messages/MessagesMg.php
languages/messages/MessagesMhr.php
languages/messages/MessagesMin.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesMo.php
languages/messages/MessagesMr.php
languages/messages/MessagesMrj.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesMwl.php
languages/messages/MessagesMy.php
languages/messages/MessagesMyv.php
languages/messages/MessagesMzn.php
languages/messages/MessagesNah.php
languages/messages/MessagesNap.php
languages/messages/MessagesNb.php
languages/messages/MessagesNds.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNe.php
languages/messages/MessagesNew.php
languages/messages/MessagesNl.php
languages/messages/MessagesNl_informal.php
languages/messages/MessagesNn.php
languages/messages/MessagesNso.php
languages/messages/MessagesNv.php
languages/messages/MessagesOc.php
languages/messages/MessagesOlo.php
languages/messages/MessagesOr.php
languages/messages/MessagesOs.php
languages/messages/MessagesPa.php
languages/messages/MessagesPcd.php
languages/messages/MessagesPdc.php
languages/messages/MessagesPdt.php
languages/messages/MessagesPfl.php
languages/messages/MessagesPi.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPnt.php
languages/messages/MessagesPs.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQu.php
languages/messages/MessagesQug.php
languages/messages/MessagesRgn.php
languages/messages/MessagesRm.php
languages/messages/MessagesRmy.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesRuq_cyrl.php
languages/messages/MessagesRuq_latn.php
languages/messages/MessagesSa.php
languages/messages/MessagesSah.php
languages/messages/MessagesSc.php
languages/messages/MessagesScn.php
languages/messages/MessagesSd.php
languages/messages/MessagesSdc.php
languages/messages/MessagesSe.php
languages/messages/MessagesSg.php
languages/messages/MessagesSgs.php
languages/messages/MessagesSh.php
languages/messages/MessagesSi.php
languages/messages/MessagesSk.php
languages/messages/MessagesSl.php
languages/messages/MessagesSli.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesSrn.php
languages/messages/MessagesStq.php
languages/messages/MessagesSu.php
languages/messages/MessagesSv.php
languages/messages/MessagesSw.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTcy.php
languages/messages/MessagesTe.php
languages/messages/MessagesTet.php
languages/messages/MessagesTg_cyrl.php
languages/messages/MessagesTh.php
languages/messages/MessagesTk.php
languages/messages/MessagesTl.php
languages/messages/MessagesTly.php
languages/messages/MessagesTpi.php
languages/messages/MessagesTr.php
languages/messages/MessagesTt_cyrl.php
languages/messages/MessagesTt_latn.php
languages/messages/MessagesTy.php
languages/messages/MessagesTyv.php
languages/messages/MessagesUdm.php
languages/messages/MessagesUg_arab.php
languages/messages/MessagesUr.php
languages/messages/MessagesUz.php
languages/messages/MessagesVec.php
languages/messages/MessagesVep.php
languages/messages/MessagesVi.php
languages/messages/MessagesVls.php
languages/messages/MessagesVmf.php
languages/messages/MessagesVo.php
languages/messages/MessagesVot.php
languages/messages/MessagesVro.php
languages/messages/MessagesWa.php
languages/messages/MessagesWar.php
languages/messages/MessagesWo.php
languages/messages/MessagesXal.php
languages/messages/MessagesXmf.php
languages/messages/MessagesYi.php
languages/messages/MessagesYo.php
languages/messages/MessagesYue.php
languages/messages/MessagesZa.php
languages/messages/MessagesZea.php
languages/messages/MessagesZh.php
languages/messages/MessagesZh_cn.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
languages/messages/MessagesZh_hk.php
languages/messages/MessagesZh_sg.php
languages/messages/MessagesZh_tw.php
maintenance/importImages.php
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/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterCapsuleMultiselectWidget.js
resources/src/mediawiki/htmlform/hide-if.js
tests/integration/includes/http/MWHttpRequestTestCase.php
tests/parser/DbTestPreviewer.php
tests/parser/DbTestRecorder.php
tests/parser/DjVuSupport.php
tests/parser/ParserTestPrinter.php
tests/parser/ParserTestResultNormalizer.php
tests/parser/TestFileReader.php
tests/parser/TestRecorder.php
tests/phan/stubs/hhvm.php
tests/phpunit/data/media/say-test.opus [new file with mode: 0644]
tests/phpunit/includes/libs/mime/MimeAnalyzerTest.php
tests/phpunit/includes/pager/ReverseChronologicalPagerTest.php
tests/phpunit/includes/specials/SpecialSearchTest.php
tests/phpunit/suites/CoreParserTestSuite.php

index dd968e8..7aa3257 100644 (file)
--- a/.mailmap
+++ b/.mailmap
@@ -93,6 +93,7 @@ Chad Horohoe <chadh@wikimedia.org>
 Chad Horohoe <chadh@wikimedia.org> <demon@users.mediawiki.org>
 Charles Melbye <charlie@yourwiki.net> <charlie@users.mediawiki.org>
 Chiefwei <chiefwei1989@gmail.com>
+Chris Koerner <ckoerner@wikimedia.org>
 Chris McMahon <cmcmahon@wikimedia.org>
 Chris Steipp <csteipp@wikimedia.org>
 Christian Aistleitner <christian@quelltextlich.at>
@@ -100,6 +101,8 @@ Christian Aistleitner <christian@quelltextlich.at> <qchris@users.mediawiki.org>
 Christian Williams <orbit@framezero.com>
 Christian Williams <orbit@framezero.com> <christian@localhost>
 Christian Williams <orbit@framezero.com> <christian@wikia-inc.com>
+Christoph Jauera <christoph.jauera@wikimedia.de>
+Christoph Jauera <christoph.jauera@wikimedia.de> <christoph.fischer@wikimedia.de>
 Christopher Johnson <root@bugzilla.wmde.de>
 church of emacs <churchofemacs@users.mediawiki.org>
 Cindy Cicalese <cicalese@mitre.org>
@@ -115,12 +118,14 @@ Daniel Friesen <mediawiki@danielfriesen.name> <dantman@users.mediawiki.org>
 Daniel Friesen <mediawiki@danielfriesen.name> <pub-github@nadir-seen-fire.com>
 Daniel Kinzler <daniel.kinzler@wikimedia.de>
 Daniel Kinzler <daniel.kinzler@wikimedia.de> <daniel@users.mediawiki.org>
+Daniel Renfro <bluecurio@gmail.com> <drenfro@vistaprint.com>
 Danny B. <Wikipedia.Danny.B@email.cz>
 Danny B. <Wikipedia.Danny.B@email.cz> <danny.b@email.cz>
 Danny B. <Wikipedia.Danny.B@email.cz> <danny_b@users.mediawiki.org>
 Danny B. <Wikipedia.Danny.B@email.cz> <wikimedia.danny.b@email.cz>
 Darian Anthony Patrick <dpatrick@wikimedia.org>
 Darkdragon09 <ubuntu@ip-172-31-39-38.us-west-2.compute.internal>
+David Causse <dcausse@wikimedia.org>
 David Chan <david@sheetmusic.org.uk>
 Dereckson <dereckson@espace-win.org>
 Derk-Jan Hartman <hartman@videolan.org>
@@ -134,6 +139,7 @@ Ebrahim Byagowi <ebrahim@gnu.org>
 Ed Sanders <esanders@wikimedia.org>
 Elliott Eggleston <eeggleston@wikimedia.org>
 Elliott Eggleston <eeggleston@wikimedia.org> <ejegg@ejegg.com>
+Emad Elwany <emadelwany@hotmail.com>
 Emmanuel Engelhart <kelson@kiwix.org> <kelson42@users.mediawiki.org>
 Emufarmers <emufarmers@gmail.com>
 Emufarmers <emufarmers@gmail.com> <emufarmers@users.mediawiki.org>
@@ -201,6 +207,7 @@ Jason Richey <jasonr@wikia.com> <jasonr@users.mediawiki.org>
 Jason Richey <jasonr@wikia.com> <urichj00@users.mediawiki.org>
 Jeff Hall <jeffreyehall@gmail.com>
 Jeff Hall <jeffreyehall@gmail.com> <jhall@wikimedia.org>
+Jeff Hobson <jhobson@wikimedia.org>
 Jeff Janes <jeff.janes@gmail.com>
 Jeremy Postlethwaite <jpostlethwaite@wikimedia.org> <jpostlethwaite@users.mediawiki.org>
 Jeroen De Dauw <jeroendedauw@gmail.com>
@@ -208,6 +215,7 @@ Jeroen De Dauw <jeroendedauw@gmail.com> <jeroendedauw@users.mediawiki.org>
 Jesús Martínez Novo <martineznovo@gmail.com>
 Jiabao <jiabao.foss@gmail.com>
 Jimmy Collins <jimmy.collins@web.de> <collinj@users.mediawiki.org>
+Joel Sahleen <jsahleen@wikimedia.org>
 John Du Hart <john@compwhizii.net> <johnduhart@users.mediawiki.org>
 Jon Harald Søby <jhsoby@gmail.com> <jhsoby@users.mediawiki.org>
 Jon Robson <jrobson@wikimedia.org>
@@ -217,6 +225,8 @@ Juliusz Gonera <jgonera@gmail.com> <jgonera@wikimedia.org>
 JuneHyeon Bae <devunt@gmail.com>
 Jure Kajzer <freak@drajv.si>
 Jure Kajzer <freak@drajv.si> <freakolowsky@users.mediawiki.org>
+Justin Du <justin.d128@gmail.com>
+Kai Nissen <kai.nissen@wikimedia.de>
 Karun Dambiec <karun.84@gmx.de>
 Katie Filbert <aude.wiki@gmail.com>
 Katie Filbert <aude.wiki@gmail.com> <aude@users.mediawiki.org>
@@ -236,6 +246,7 @@ liangent <liangent@gmail.com>
 Lisa Ridley <lhridley@gmail.com> <lhridley@users.mediawiki.org>
 Ljudusika <plo2000@i.ua>
 Luis Felipe Schenone <schenonef@gmail.com>
+Luke Welling <lwelling@wikimedia.org>
 Lupo <lupo.bugzilla@gmail.com>
 m4tx <m4tx@m4tx.pl>
 Madman <madman.enwiki@gmail.com>
@@ -281,11 +292,14 @@ Mwalker <mwalker@wikimedia.org>
 MZMcBride <g@mzmcbride.com>
 nadeesha <nadeesha@calcey.com> <nadeesha@users.mediawiki.org>
 Namit <namit.ohri@gmail.com>
+Nathan Larson <nathanlarson3141@gmail.com>
+Nathan Larson <nathanlarson3141@gmail.com> <tjlsangria@gmail.com>
 Nathaniel Herman <redwwjd@yahoo.com> <pinky@users.mediawiki.org>
 Neil Kandalgaonkar <neilk@wikimedia.org> <neilk@users.mediawiki.org>
 Nemo bis <federicoleva@tiscali.it>
 nephele <nephele@skyhighway.com> <nephele@users.mediawiki.org>
 Nick Jenkins <nickpj@gmail.com> <nickj@users.mediawiki.org>
+Niharika Kohli <nkohli@wikimedia.org>
 Nik Everett <neverett@wikimedia.org>
 Niklas Laxström <niklas.laxstrom@gmail.com>
 Niklas Laxström <niklas.laxstrom@gmail.com> <nikerabbit@users.mediawiki.org>
@@ -406,7 +420,6 @@ Timo Tijhof <krinklemail@gmail.com> <krinkle@users.mediawiki.org>
 Timo Tijhof <krinklemail@gmail.com> <timo@wikimedia.org>
 Timo Tijhof <krinklemail@gmail.com> <ttijhof@wikimedia.org>
 Tina Johnson <tinajohnson.1234@gmail.com>
-Tisane <nathanlarson3141@gmail.com>
 Tjones <tjones@wikimedia.org>
 Tom Maaswinkel <tom.maaswinkel@12wiki.eu> <thedevilonline@users.mediawiki.org>
 Tomasz Finc <tfinc@wikimedia.org> <tomasz@users.mediawiki.org>
@@ -438,6 +451,7 @@ Yongmin Hong <revi@member.fsf.org> <reviwiki@gmail.com>
 Yuri Astrakhan <yurik@wikimedia.org>
 Yuri Astrakhan <yurik@wikimedia.org> <yuriastrakhan@gmail.com>
 Yuri Astrakhan <yurik@wikimedia.org> <yurik@users.mediawiki.org>
+Yuriy Shnitkovskiy <bmp2558@gmail.com>
 Yusuke Matsubara <whym@whym.org>
 Yuvi Panda <yuvipanda@gmail.com>
 Zak Greant <zak+mediawiki@fooassociates.com> <zak@users.mediawiki.org>
index c8033cf..5d0ca0d 100644 (file)
@@ -932,7 +932,11 @@ $wgAutoloadLocalClasses = [
        'MediaWiki\\Widget\\DateTimeInputWidget' => __DIR__ . '/includes/widget/DateTimeInputWidget.php',
        'MediaWiki\\Widget\\NamespaceInputWidget' => __DIR__ . '/includes/widget/NamespaceInputWidget.php',
        'MediaWiki\\Widget\\SearchInputWidget' => __DIR__ . '/includes/widget/SearchInputWidget.php',
+       'MediaWiki\\Widget\\Search\\BasicSearchResultSetWidget' => __DIR__ . '/includes/widget/search/BasicSearchResultSetWidget.php',
+       'MediaWiki\\Widget\\Search\\DidYouMeanWidget' => __DIR__ . '/includes/widget/search/DidYouMeanWidget.php',
        'MediaWiki\\Widget\\Search\\FullSearchResultWidget' => __DIR__ . '/includes/widget/search/FullSearchResultWidget.php',
+       'MediaWiki\\Widget\\Search\\InterwikiSearchResultSetWidget' => __DIR__ . '/includes/widget/search/InterwikiSearchResultSetWidget.php',
+       'MediaWiki\\Widget\\Search\\SearchFormWidget' => __DIR__ . '/includes/widget/search/SearchFormWidget.php',
        'MediaWiki\\Widget\\Search\\SearchResultWidget' => __DIR__ . '/includes/widget/search/SearchResultWidget.php',
        'MediaWiki\\Widget\\Search\\SimpleSearchResultWidget' => __DIR__ . '/includes/widget/search/SimpleSearchResultWidget.php',
        'MediaWiki\\Widget\\TitleInputWidget' => __DIR__ . '/includes/widget/TitleInputWidget.php',
index e103d9c..e825152 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.3",
+               "oojs/oojs-ui": "0.18.4",
                "oyejorge/less.php": "1.7.0.10",
                "php": ">=5.5.9",
                "psr/log": "1.0.0",
index 1da39cf..adfb128 100644 (file)
@@ -2231,6 +2231,7 @@ $text: new contents of the page.
 'MessagesPreLoad': When loading a message from the database.
 $title: title of the message (string)
 &$message: value (string), change it to the message you want to define
+$code: code (string) denoting the language to try.
 
 'MimeMagicGuessFromContent': Allows MW extensions guess the MIME by content.
 $mimeMagic: Instance of MimeMagic.
@@ -3203,8 +3204,8 @@ $opts: Array: key => value of hidden options for inclusion in custom forms
 
 'SpecialSearchResults': Called before search result display
 $term: string of search term
-&$titleMatches: empty or SearchResultSet object
-&$textMatches: empty or SearchResultSet object
+$titleMatches: empty or SearchResultSet object
+$textMatches: empty or SearchResultSet object
 
 'SpecialSearchResultsPrepend': Called immediately before returning HTML
 on the search results page.  Useful for including an external search
index 856a3f9..566d4aa 100644 (file)
@@ -5325,26 +5325,60 @@ $wgAutoConfirmAge = 0;
 $wgAutoConfirmCount = 0;
 
 /**
- * Automatically add a usergroup to any user who matches certain conditions.
- *
- * @todo Redocument $wgAutopromote
- *
- * The format is
- *   [ '&' or '|' or '^' or '!', cond1, cond2, ... ]
- * where cond1, cond2, ... are themselves conditions; *OR*
- *   APCOND_EMAILCONFIRMED, *OR*
- *   [ APCOND_EMAILCONFIRMED ], *OR*
- *   [ APCOND_EDITCOUNT, number of edits ], *OR*
- *   [ APCOND_AGE, seconds since registration ], *OR*
- *   [ APCOND_INGROUPS, group1, group2, ... ], *OR*
- *   [ APCOND_ISIP, ip ], *OR*
- *   [ APCOND_IPINRANGE, range ], *OR*
- *   [ APCOND_AGE_FROM_EDIT, seconds since first edit ], *OR*
- *   [ APCOND_BLOCKED ], *OR*
- *   [ APCOND_ISBOT ], *OR*
- *   similar constructs defined by extensions.
- *
- * If $wgEmailAuthentication is off, APCOND_EMAILCONFIRMED will be true for any
+ * Array containing the conditions of automatic promotion of a user to specific groups.
+ *
+ * The basic syntax for `$wgAutopromote` is:
+ *
+ *     $wgAutopromote = array(
+ *         'groupname' => cond,
+ *         'group2' => cond2,
+ *     );
+ *
+ * A `cond` may be:
+ *  - a single condition without arguments:
+ *      Note that Autopromote wraps a single non-array value into an array
+ *      e.g. `APCOND_EMAILCONFIRMED` OR
+ *           array( `APCOND_EMAILCONFIRMED` )
+ *  - a single condition with arguments:
+ *      e.g. `array( APCOND_EDITCOUNT, 100 )`
+ *  - a set of conditions:
+ *      e.g. `array( 'operand', cond1, cond2, ... )`
+ *
+ * When constructing a set of conditions, the following conditions are available:
+ *  - `&` (**AND**):
+ *      promote if user matches **ALL** conditions
+ *  - `|` (**OR**):
+ *      promote if user matches **ANY** condition
+ *  - `^` (**XOR**):
+ *      promote if user matches **ONLY ONE OF THE CONDITIONS**
+ *  - `!` (**NOT**):
+ *      promote if user matces **NO** condition
+ *  - array( APCOND_EMAILCONFIRMED ):
+ *      true if user has a confirmed e-mail
+ *  - array( APCOND_EDITCOUNT, number of edits ):
+ *      true if user has the at least the number of edits as the passed parameter
+ *  - array( APCOND_AGE, seconds since registration ):
+ *      true if the length of time since the user created his/her account
+ *      is at least the same length of time as the passed parameter
+ *  - array( APCOND_AGE_FROM_EDIT, seconds since first edit ):
+ *      true if the length of time since the user made his/her first edit
+ *      is at least the same length of time as the passed parameter
+ *  - array( APCOND_INGROUPS, group1, group2, ... ):
+ *      true if the user is a member of each of the passed groups
+ *  - array( APCOND_ISIP, ip ):
+ *      true if the user has the passed IP address
+ *  - array( APCOND_IPINRANGE, range ):
+ *      true if the user has an IP address in the range of the passed parameter
+ *  - array( APCOND_BLOCKED ):
+ *      true if the user is blocked
+ *  - array( APCOND_ISBOT ):
+ *      true if the user is a bot
+ *  - similar constructs can be defined by extensions
+ *
+ * The sets of conditions are evaluated recursively, so you can use nested sets of conditions
+ * linked by operands.
+ *
+ * Note that if $wgEmailAuthentication is disabled, APCOND_EMAILCONFIRMED will be true for any
  * user who has provided an e-mail address.
  */
 $wgAutopromote = [
index 794e2e9..94b145e 100644 (file)
@@ -2121,4 +2121,3 @@ class Linker {
        }
 
 }
-
index e8fd165..ca1e85a 100644 (file)
        "apihelp-query+watchlistraw-description": "Získat všechny stránky, které jsou aktuálním uživatelem sledovány.",
        "apihelp-query+watchlistraw-example-simple": "Seznam sledovaných stránek uživatele.",
        "apihelp-stashedit-param-summary": "Změnit shrnutí.",
-       "apihelp-unblock-param-user": "Uživatel, IP adresa nebo rozsah IP adres k odblokování. Nelze použít dohromady s <var>$1id</var> nebo <var>$luserid</var>.",
+       "apihelp-unblock-param-user": "Uživatel, IP adresa nebo rozsah IP adres k odblokování. Nelze použít dohromady s <var>$1id</var> nebo <var>$1userid</var>.",
        "apihelp-watch-example-watch": "Sledovat stránku <kbd>Main Page</kbd>.",
        "apihelp-watch-example-generator": "Zobrazit prvních několik stránek z hlavního jmenného prostoru.",
        "apihelp-format-example-generic": "Výsledek dotazu vrátit ve formátu $1.",
index 3e570e5..596c35e 100644 (file)
@@ -46,6 +46,7 @@
        "apihelp-block-param-allowusertalk": "Dem Benutzer erlauben, seine eigene Diskussionsseite zu bearbeiten (abhängig von <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Falls der Benutzer bereits gesperrt ist, die vorhandene Sperre überschreiben.",
        "apihelp-block-param-watchuser": "Benutzer- und Diskussionsseiten des Benutzers oder der IP-Adresse beobachten.",
+       "apihelp-block-param-tags": "Auf den Eintrag im Sperr-Logbuch anzuwendende Änderungsmarkierungen.",
        "apihelp-block-example-ip-simple": "IP <kbd>192.0.2.5</kbd> für drei Tage mit der Begründung „First strike“ (erste Verwarnung) sperren",
        "apihelp-block-example-user-complex": "Benutzer <kbd>Vandal</kbd> unbeschränkt sperren mit der Begründung „Vandalism“ (Vandalismus), Erstellung neuer Benutzerkonten sowie Versand von E-Mails verhindern.",
        "apihelp-checktoken-description": "Überprüft die Gültigkeit eines über <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> erhaltenen Tokens.",
        "apihelp-import-param-templates": "Für Interwiki-Importe: importiere auch alle eingebundenen Vorlagen.",
        "apihelp-import-param-namespace": "In diesen Namensraum importieren. Kann nicht zusammen mit <var>$1rootpage</var> verwendet werden.",
        "apihelp-import-param-rootpage": "Als Unterseite dieser Seite importieren. Kann nicht zusammen mit <var>$1namespace</var> verwendet werden.",
+       "apihelp-import-param-tags": "Auf den Eintrag im Import-Logbuch und die Nullversion bei den importierten Seiten anzuwendende Änderungsmarkierungen.",
        "apihelp-import-example-import": "Importiere [[meta:Help:ParserFunctions]] mit der kompletten Versionsgeschichte in den Namensraum 100.",
        "apihelp-login-description": "Anmelden und Authentifizierungs-Cookies beziehen.\n\nDiese Aktion sollte nur in Kombination mit [[Special:BotPasswords]] verwendet werden. Die Verwendung für die Anmeldung beim Hauptkonto ist veraltet und kann ohne Warnung fehlschlagen. Um sich sicher beim Hauptkonto anzumelden, verwende <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
        "apihelp-login-param-name": "Benutzername.",
        "apihelp-managetags-param-tag": "Schlagwort zum Erstellen, Löschen, Aktivieren oder Deaktivieren. Zum Erstellen darf das Schlagwort noch nicht vorhanden sein. Zur Löschung muss das Schlagwort vorhanden sein. Zur Aktivierung muss das Schlagwort vorhanden sein, darf aber nicht von einer Erweiterung in Gebrauch sein. Zur Deaktivierung muss das Schlagwort gegenwärtig aktiv und manuell definiert sein.",
        "apihelp-managetags-param-reason": "optionale Begründung für das Erstellen, Löschen, Aktivieren oder Deaktivieren der Markierung.",
        "apihelp-managetags-param-ignorewarnings": "Warnungen während des Vorgangs ignorieren.",
+       "apihelp-managetags-param-tags": "Auf den Eintrag im Markierungs-Verwaltungs-Logbuch anzuwendende Änderungsmarkierungen.",
        "apihelp-managetags-example-create": "Erstellt eine Markierung namens <kbd>spam</kbd> mit der Begründung <kbd>For use in edit patrolling</kbd> (für die Eingangskontrolle).",
        "apihelp-managetags-example-delete": "Löscht die <kbd>vandlaism</kbd>-Markierung mit der Begründung <kbd>Misspelt</kbd>.",
        "apihelp-managetags-example-activate": "Aktiviert eine Markierung namens <kbd>spam</kbd> mit der Begründung <kbd>For use in edit patrolling</kbd> (für die Eingangskontrolle).",
        "apihelp-move-param-unwatch": "Die Seite und die entstandene Weiterleitung von der Beobachtungsliste entfernen.",
        "apihelp-move-param-watchlist": "Die Seite in jedem Fall zur Beobachtungsliste hinzufügen oder davon entfernen, die Voreinstellungen dafür nutzen oder den Beobachtungsstatus nicht ändern.",
        "apihelp-move-param-ignorewarnings": "Alle Warnungen ignorieren.",
+       "apihelp-move-param-tags": "Auf den Eintrag im Verschiebungs-Logbuch und die Nullversion der Zielseite anzuwendende Änderungsmarkierungen.",
        "apihelp-move-example-move": "<kbd>Badtitle</kbd> nach <kbd>Goodtitle</kbd> verschieben, ohne eine Weiterleitung zu erstellen.",
        "apihelp-opensearch-description": "Das Wiki mithilfe des OpenSearch-Protokolls durchsuchen.",
        "apihelp-opensearch-param-search": "Such-Zeichenfolge.",
index b2cecc9..c1fefd6 100644 (file)
        "apihelp-tokens-example-emailmove": "Retrieve an email token and a move token.",
 
        "apihelp-unblock-description": "Unblock a user.",
-       "apihelp-unblock-param-id": "ID of the block to unblock (obtained through <kbd>list=blocks</kbd>). Cannot be used together with <var>$1user</var> or <var>$luserid</var>.",
-       "apihelp-unblock-param-user": "Username, IP address or IP address range to unblock. Cannot be used together with <var>$1id</var> or <var>$luserid</var>.",
+       "apihelp-unblock-param-id": "ID of the block to unblock (obtained through <kbd>list=blocks</kbd>). Cannot be used together with <var>$1user</var> or <var>$1userid</var>.",
+       "apihelp-unblock-param-user": "Username, IP address or IP address range to unblock. Cannot be used together with <var>$1id</var> or <var>$1userid</var>.",
        "apihelp-unblock-param-userid": "User ID to unblock. Cannot be used together with <var>$1id</var> or <var>$1user</var>.",
        "apihelp-unblock-param-reason": "Reason for unblock.",
        "apihelp-unblock-param-tags": "Change tags to apply to the entry in the block log.",
index f39e770..efff67d 100644 (file)
@@ -60,6 +60,7 @@
        "apihelp-block-param-allowusertalk": "Permitir que el usuario edite su propia página de discusión (depende de <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Si la cuenta ya está bloqueada, sobrescribir el bloqueo existente.",
        "apihelp-block-param-watchuser": "Vigilar las páginas de usuario y de discusión del usuario o de la dirección IP.",
+       "apihelp-block-param-tags": "Cambiar las etiquetas que aplicar a la entrada en el registro de bloqueos.",
        "apihelp-block-example-ip-simple": "Bloquear la dirección IP <kbd>192.0.2.5</kbd> durante 3 días por el motivo <kbd>First strike</kbd>.",
        "apihelp-block-example-user-complex": "Bloquear al usuario <kbd>Vandal</kbd> indefinidamente con el motivo <kbd>Vandalism</kbd> y evitar que se cree nuevas cuentas o envíe correos.",
        "apihelp-changeauthenticationdata-description": "Cambiar los datos de autentificación para el usuario actual.",
@@ -73,6 +74,7 @@
        "apihelp-clearhasmsg-example-1": "Limpiar la marca <code>hasmsg</code> del usuario actual.",
        "apihelp-clientlogin-description": "Entrar en wiki usando el flujo interactivo.",
        "apihelp-clientlogin-example-login": "Comenzar el proceso para iniciar sesión en el wiki como usuario <kbd>Example</kbd> con la contraseña <kbd>ExamplePassword</kbd>.",
+       "apihelp-clientlogin-example-login2": "Continuar el inicio de sesión después de una respuesta de la <samp>UI</samp> a la autenticación de dos pasos, en la que devuelve un <var>OATHToken</var> de <kbd>987654</kbd>.",
        "apihelp-compare-description": "Obtener la diferencia entre 2 páginas.\n\nSe debe pasar un número de revisión, un título de página o una ID tanto desde \"de\" hasta \"a\".",
        "apihelp-compare-param-fromtitle": "Primer título para comparar",
        "apihelp-compare-param-fromid": "ID de la primera página a comparar.",
@@ -82,6 +84,8 @@
        "apihelp-compare-param-torev": "Segunda revisión para comparar.",
        "apihelp-compare-example-1": "Crear una diferencia entre las revisiones 1 y 2.",
        "apihelp-createaccount-description": "Crear una nueva cuenta de usuario.",
+       "apihelp-createaccount-param-preservestate": "Si <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> devolvió true (verdadero) para <samp>hasprimarypreservedstate</samp>, deberían omitirse las peticiones marcadas como <samp>primary-required</samp>. Si devolvió un valor no vacío para <samp>preservedusername</samp>, se debe usar ese nombre de usuario en el parámetro <var>username</var>.",
+       "apihelp-createaccount-example-create": "Empezar el proceso de creación del usuario <kbd>Example</kbd> con la contraseña <kbd>ExamplePassword</kbd>.",
        "apihelp-createaccount-param-name": "Nombre de usuario.",
        "apihelp-createaccount-param-password": "Contraseña (ignorada si está establecido <var>$1mailpassword</var>).",
        "apihelp-createaccount-param-domain": "Dominio de autenticación externa (opcional).",
        "apihelp-expandtemplates-paramvalue-prop-properties": "Propiedades de página definidas por palabras mágicas en el wikitexto.",
        "apihelp-expandtemplates-paramvalue-prop-volatile": "Si la salida es volátil y no debe ser reutilizada en otro lugar dentro de la página.",
        "apihelp-expandtemplates-paramvalue-prop-ttl": "El tiempo máximo tras el cual deberían invalidarse los resultados en caché.",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "Todos los módulos ResourceLoader que las funciones del analizador sintáctico hayan solicitado añadir a la salida. Debe solicitarse <kbd>jsconfigvars</kbd> o bien <kbd>encodedjsconfigvars</kbd> junto con <kbd>modules</kbd>.",
        "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Da las variables de configuración JavaScript específicas para la página.",
        "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Da las variables de configuración JavaScript específicas para la página como una cadena JSON.",
        "apihelp-expandtemplates-paramvalue-prop-parsetree": "El árbol XML analiza el árbol de la entrada.",
        "apihelp-help-example-query": "Ayuda para dos submódulos de consulta.",
        "apihelp-imagerotate-description": "Girar una o más imágenes.",
        "apihelp-imagerotate-param-rotation": "Grados que rotar una imagen en sentido horario.",
+       "apihelp-imagerotate-param-tags": "Etiquetas que añadir a la entrada en el registro de subidas.",
        "apihelp-imagerotate-example-simple": "Rotar <kbd>File:Example.png</kbd> <kbd>90</kbd> grados.",
        "apihelp-imagerotate-example-generator": "Rotar todas las imágenes en <kbd>Category:Flip</kbd> <kbd>180</kbd> grados.",
        "apihelp-import-description": "Importar una página desde otra wiki, o desde un archivo XML.\n\nTenga en cuenta que el HTTP POST debe hacerse como una carga de archivos (es decir, el uso de multipart/form-data) al enviar un archivo para el parámetro <var>xml</var>.",
        "apihelp-import-param-templates": "Para importaciones interwiki: importar también todas las plantillas incluidas.",
        "apihelp-import-param-namespace": "Importar a este espacio de nombres. No puede usarse simultáneamente con <var>$1rootpage</var>.",
        "apihelp-import-param-rootpage": "Importar como subpágina de esta página. No puede usarse simultáneamente con <var>$1namespace</var>.",
+       "apihelp-import-param-tags": "Cambiar las etiquetas que aplicar a la entrada en el registro de importaciones y a la revisión nula de las páginas importadas.",
        "apihelp-import-example-import": "Importar [[meta:Help:ParserFunctions]] al espacio de nombres 100 con todo el historial.",
        "apihelp-linkaccount-description": "Vincular una cuenta de un proveedor de terceros para el usuario actual.",
        "apihelp-linkaccount-example-link": "Iniciar el proceso de vincular a una cuenta de <kbd>Ejemplo</kbd>.",
        "apihelp-managetags-param-tag": "Etiqueta para crear, eliminar, activar o desactivar. Para crear una etiqueta, esta debe no existir. Para eliminarla, debe existir. Para activarla, debe existir y no estar en uso por ninguna extensión. Para desactivarla, debe estar activada y definida manualmente.",
        "apihelp-managetags-param-reason": "Un motivo opcional para crear, eliminar, activar o desactivar la etiqueta.",
        "apihelp-managetags-param-ignorewarnings": "Ya sea para ignorar las advertencias que se emiten durante la operación.",
+       "apihelp-managetags-param-tags": "Cambiar las etiquetas que aplicar a la entrada en el registro de administración de etiquetas.",
        "apihelp-managetags-example-create": "Crear una etiqueta llamada <kbd>spam</kbd> con el motivo <kbd>For use in edit patrolling</kbd>",
        "apihelp-managetags-example-delete": "Eliminar la etiqueta <kbd>vandlaism</kbd> con el motivo <kbd>Misspelt</kbd>",
        "apihelp-managetags-example-activate": "Activar una etiqueta llamada <kbd>spam</kbd> con el motivo <kbd>For use in edit patrolling</kbd>",
        "apihelp-move-param-unwatch": "Eliminar la página y la redirección de la lista de seguimiento del usuario.",
        "apihelp-move-param-watchlist": "Incondicionalmente puede añadir o eliminar la página de lista del usuario actual, utilizar referencias o no cambiar el reloj.",
        "apihelp-move-param-ignorewarnings": "Ignorar cualquier aviso.",
+       "apihelp-move-param-tags": "Cambiar las etiquetas que aplicar a la entrada en el registro de traslados y en la revisión nula de la página de destino.",
        "apihelp-move-example-move": "Trasladar <kbd>Badtitle</kbd> a <kbd>Goodtitle</kbd> sin dejar una redirección.",
        "apihelp-opensearch-description": "Buscar en el wiki mediante el protocolo OpenSearch.",
        "apihelp-opensearch-param-search": "Buscar cadena.",
        "apihelp-query+allmessages-param-lang": "Devolver mensajes en este idioma.",
        "apihelp-query+allmessages-param-from": "Devolver mensajes que empiecen por este mensaje.",
        "apihelp-query+allmessages-param-to": "Devolver mensajes que acaben por este mensaje.",
+       "apihelp-query+allmessages-param-title": "Nombre de página que usar como contexto al analizar el mensaje (para la opción $1enableparser).",
        "apihelp-query+allmessages-param-prefix": "Devolver mensajes con este prefijo.",
        "apihelp-query+allmessages-example-ipb": "Mostrar mensajes que empiecen por <kbd>ipb-</kbd>.",
        "apihelp-query+allmessages-example-de": "Mostrar mensajes <kbd>august</kbd> y <kbd>mainpage</kbd> en alemán.",
        "apihelp-query+allusers-example-Y": "Listar usuarios que empiecen por <kbd>Y</kbd>.",
        "apihelp-query+authmanagerinfo-description": "Recuperar información sobre el estado de autenticación actual.",
        "apihelp-query+authmanagerinfo-example-login": "Captura de las solicitudes que puede ser utilizadas al comienzo de inicio de sesión.",
+       "apihelp-query+authmanagerinfo-example-securitysensitiveoperation": "Comprueba si la autentificación es suficiente para realizar la acción <kbd>foo</kbd>.",
        "apihelp-query+backlinks-description": "Encuentra todas las páginas que enlazan a la página dada.",
+       "apihelp-query+backlinks-param-title": "Título que buscar. No se puede usar junto con <var>$1pageid</var>.",
        "apihelp-query+backlinks-param-pageid": "Identificador de página que buscar. No puede usarse junto con <var>$1title</var>",
        "apihelp-query+backlinks-param-namespace": "El espacio de nombres que enumerar.",
        "apihelp-query+backlinks-param-dir": "La dirección en que ordenar la lista.",
        "apihelp-query+deletedrevisions-param-tag": "Listar solo las revisiones con esta etiqueta.",
        "apihelp-query+deletedrevisions-param-user": "Listar solo las revisiones de este usuario.",
        "apihelp-query+deletedrevisions-param-excludeuser": "No listar las revisiones de este usuario.",
+       "apihelp-query+deletedrevisions-example-titles": "Muestra la lista de revisiones borradas de las páginas <kbd>Main Page</kbd> y <kbd>Talk:Main Page</kbd>, con su contenido.",
        "apihelp-query+deletedrevisions-example-revids": "Mostrar la información de la revisión borrada <kbd>123456</kbd>.",
+       "apihelp-query+deletedrevs-description": "Muestra la lista de revisiones borradas.\n\nOpera en tres modos:\n# Lista de revisiones borradas de los títulos dados, ordenadas por marca de tiempo.\n# Lista de contribuciones borradas del usuario dado, ordenadas por marca de tiempo.\n# Lista de todas las revisiones borradas en el espacio de nombres dado, ordenadas por título y marca de tiempo (donde no se ha especificado ningún título ni se ha fijado $1user).",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Modo|Modos}}: $2",
        "apihelp-query+deletedrevs-param-start": "Marca de tiempo por la que empezar la enumeración.",
        "apihelp-query+deletedrevs-param-end": "Marca de tiempo por la que terminar la enumeración.",
        "apihelp-query+deletedrevs-param-excludeuser": "No listar las revisiones de este usuario.",
        "apihelp-query+deletedrevs-param-namespace": "Listar solo las páginas en este espacio de nombres.",
        "apihelp-query+deletedrevs-param-limit": "La cantidad máxima de revisiones que listar.",
+       "apihelp-query+deletedrevs-param-prop": "Propiedades que obtener:\n;revid: Añade el identificador de la revisión borrada.\n;parentid: Añade el identificador de la revisión anterior de la página.\n;user: Añade el usuario que hizo la revisión.\n;userid: Añade el identificador del usuario que hizo la revisión.\n;comment: Añade el comentario de la revisión.\n;parsedcomment: Añade el comentario de la revisión, pasado por el analizador sintáctico.\n;minor: Añade una etiqueta si la revisión es menor.\n;len: Añade la longitud (en bytes) de la revisión.\n;sha1: Añade el SHA-1 (base 16) de la revisión.\n;content: Añade el contenido de la revisión.\n;token:<span class=\"apihelp-deprecated\">Obsoleto.</span> Devuelve el token de edición.\n;tags: Etiquetas de la revisión.",
+       "apihelp-query+deletedrevs-example-mode1": "Muestra las últimas revisiones borradas de las páginas <kbd>Main Page</kbd> y <kbd>Talk:Main Page</kbd>, con contenido (modo 1).",
+       "apihelp-query+deletedrevs-example-mode2": "Muestra las últimas 50 contribuciones de <kbd>Bob</kbd> (modo 2).",
+       "apihelp-query+deletedrevs-example-mode3-main": "Muestra las primeras 50 revisiones borradas del espacio principal (modo 3).",
        "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+fileusage-paramvalue-prop-title": "Título de cada página.",
        "apihelp-query+fileusage-param-namespace": "Incluir solo páginas de estos espacios de nombres.",
        "apihelp-query+fileusage-param-limit": "Cuántos se devolverán.",
+       "apihelp-query+fileusage-param-show": "Muestra solo los elementos que cumplen estos criterios:\n;redirect: Muestra solamente redirecciones.\n;!redirect: Muestra solamente páginas que no son redirecciones.",
        "apihelp-query+fileusage-example-simple": "Obtener una lista de páginas que utilicen [[:File:Example.jpg]].",
        "apihelp-query+fileusage-example-generator": "Obtener información acerca de las páginas que utilicen [[:File:Example.jpg]].",
        "apihelp-query+imageinfo-description": "Devuelve información del archivo y su historial de subida.",
        "apihelp-query+info-paramvalue-prop-protection": "Listar el nivel de protección de cada página.",
        "apihelp-query+info-paramvalue-prop-talkid": "El identificador de la página de discusión correspondiente a cada página que no es de discusión.",
        "apihelp-query+info-paramvalue-prop-subjectid": "La ID de página de la página principal de cada página de discusión.",
+       "apihelp-query+info-paramvalue-prop-url": "Muestra una URL completa, una URL de edición y la URL canónica de cada página.",
        "apihelp-query+info-paramvalue-prop-readable": "Si el usuario puede leer esta página.",
+       "apihelp-query+info-paramvalue-prop-preload": "Muestra el texto devuelto por EditFormPreloadText.",
        "apihelp-query+info-paramvalue-prop-displaytitle": "Proporciona la manera en que se muestra realmente el título de la página",
        "apihelp-query+info-param-token": "Usa [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] en su lugar.",
        "apihelp-query+info-example-simple": "Obtener información acerca de la página <kbd>Main Page</kbd>.",
        "apihelp-query+info-example-protection": "Obtén información general y protección acerca de la página <kbd>Main Page</kbd>.",
        "apihelp-query+iwbacklinks-param-prefix": "Prefijo para el interwiki.",
+       "apihelp-query+iwbacklinks-param-title": "Enlace interlingüístico que buscar. Se debe usar junto con <var>$1blprefix</var>.",
        "apihelp-query+iwbacklinks-param-limit": "Cuántas páginas se devolverán.",
        "apihelp-query+iwbacklinks-param-prop": "Qué propiedades se obtendrán:",
        "apihelp-query+iwbacklinks-paramvalue-prop-iwprefix": "Añade el prefijo del interwiki.",
        "apihelp-query+iwbacklinks-paramvalue-prop-iwtitle": "Añade el título del interwiki.",
        "apihelp-query+iwbacklinks-param-dir": "La dirección en que ordenar la lista.",
        "apihelp-query+iwbacklinks-example-simple": "Obtener las páginas enlazadas a [[wikibooks:Test]]",
+       "apihelp-query+iwbacklinks-example-generator": "Obtener información sobre las páginas que enlacen a [[wikibooks:Test]].",
        "apihelp-query+iwlinks-description": "Devuelve todos los enlaces interwiki de las páginas dadas.",
        "apihelp-query+iwlinks-param-prop": "Qué propiedades adicionales obtener para cada enlace interlingüe:",
        "apihelp-query+iwlinks-paramvalue-prop-url": "Añade el URL completo.",
        "apihelp-query+iwlinks-param-limit": "Cuántos enlaces interwiki se desea devolver.",
        "apihelp-query+iwlinks-param-prefix": "Devolver únicamente enlaces interwiki con este prefijo.",
        "apihelp-query+iwlinks-param-dir": "La dirección en que ordenar la lista.",
+       "apihelp-query+iwlinks-example-simple": "Obtener los enlaces interwiki de la página <kbd>Main Page</kbd>.",
        "apihelp-query+langbacklinks-param-lang": "Idioma del enlace de idioma.",
        "apihelp-query+langbacklinks-param-limit": "Cuántas páginas en total se devolverán.",
        "apihelp-query+langbacklinks-param-prop": "Qué propiedades se obtendrán:",
        "apihelp-query+langbacklinks-param-dir": "La dirección en que ordenar la lista.",
        "apihelp-query+langbacklinks-example-simple": "Obtener las páginas enlazadas a [[:fr:Test]]",
        "apihelp-query+langbacklinks-example-generator": "Obtener información acerca de las páginas enlazadas a [[:fr:Test]].",
+       "apihelp-query+langlinks-param-limit": "Número de enlaces interlingüísticos que devolver.",
        "apihelp-query+langlinks-param-url": "Obtener la URL completa o no (no se puede usar con <var>$1prop</var>).",
        "apihelp-query+langlinks-param-prop": "Qué propiedades adicionales obtener para cada enlace interlingüe:",
        "apihelp-query+langlinks-paramvalue-prop-url": "Añade el URL completo.",
+       "apihelp-query+langlinks-paramvalue-prop-langname": "Añade el nombre del idioma localizado (o la mejor estimación). Usa <var>$1inlanguagecode</var> para controlar el idioma.",
        "apihelp-query+langlinks-paramvalue-prop-autonym": "Añade el nombre nativo del idioma.",
        "apihelp-query+langlinks-param-lang": "Devolver solo enlaces de idioma con este código de idioma.",
+       "apihelp-query+langlinks-param-title": "Enlace que buscar. Se debe usar junto con <var>$1lang</var>.",
        "apihelp-query+langlinks-param-dir": "La dirección en que ordenar la lista.",
+       "apihelp-query+langlinks-param-inlanguagecode": "Código de idioma para los nombres de idiomas localizados.",
+       "apihelp-query+langlinks-example-simple": "Obtener los enlaces interlingüísticos de la página <kbd>Main Page</kbd>.",
        "apihelp-query+links-description": "Devuelve todos los enlaces de las páginas dadas.",
        "apihelp-query+links-param-namespace": "Mostrar solo los enlaces en estos espacios de nombres.",
        "apihelp-query+links-param-limit": "Cuántos enlaces se devolverán.",
        "apihelp-query+revisions-param-end": "Enumerar hasta esta marca de tiempo.",
        "apihelp-query+revisions-param-user": "Incluir solo las revisiones realizadas por el usuario.",
        "apihelp-query+revisions-param-excludeuser": "Excluir las revisiones realizadas por el usuario.",
+       "apihelp-query+revisions-param-tag": "Mostrar solo revisiones marcadas con esta etiqueta.",
        "apihelp-query+revisions-example-last5": "Mostrar las últimas 5 revisiones de la <kbd>Main Page</kbd>.",
        "apihelp-query+revisions+base-param-prop": "Las propiedades que se obtendrán para cada revisión:",
        "apihelp-query+revisions+base-paramvalue-prop-ids": "El identificador de la revisión.",
        "apihelp-tag-example-rev": "Añadir la etiqueta <kbd>vandalism</kbd> al identificador de revisión 123 sin especificar un motivo",
        "apihelp-tag-example-log": "Eliminar la etiqueta <kbd>spam</kbd> de la entrada del registro con identificador 123 con el motivo <kbd>Wrongly applied</kbd>",
        "apihelp-unblock-description": "Desbloquear un usuario.",
-       "apihelp-unblock-param-user": "Nombre de usuario, dirección IP o intervalo de direcciones IP para desbloquear. No se puede utilizar junto con <var>$1id</var> o <var>$luserid</var>.",
+       "apihelp-unblock-param-user": "Nombre de usuario, dirección IP o intervalo de direcciones IP para desbloquear. No se puede utilizar junto con <var>$1id</var> o <var>$1userid</var>.",
        "apihelp-unblock-param-userid": "ID de usuario que desbloquear. No se puede utilizar junto con <var>$1id</var> o <var>$1user</var>.",
        "apihelp-unblock-param-reason": "Motivo del desbloqueo.",
        "apihelp-unblock-example-id": "Desbloquear el bloqueo de ID #<kbd>105</kbd>",
index 8570c5f..e3a70f5 100644 (file)
@@ -60,6 +60,7 @@
        "apihelp-block-param-allowusertalk": "Autoriser les utilisateurs à modifier leur propre page de discussion (dépend de <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Si l’utilisateur est déjà bloqué, écraser le blocage existant.",
        "apihelp-block-param-watchuser": "Surveiller les pages utilisateur et de discussion de l’utilisateur ou de l’adresse IP.",
+       "apihelp-block-param-tags": "Modifier les balises à appliquer à l’entrée du journal des blocages.",
        "apihelp-block-example-ip-simple": "Bloquer l’adresse IP <kbd>192.0.2.5</kbd> pour trois jours avec le motif <kbd>Premier avertissement</kbd>.",
        "apihelp-block-example-user-complex": "Bloquer indéfiniment l’utilisateur <kbd>Vandal</kbd> avec le motif <kbd>Vandalism</kbd>, et empêcher la création de nouveau compte et l'envoi de courriel.",
        "apihelp-changeauthenticationdata-description": "Modifier les données d’authentification pour l’utilisateur actuel.",
        "apihelp-import-param-templates": "Pour les importations interwiki : importer aussi tous les modèles inclus.",
        "apihelp-import-param-namespace": "Importer vers cet espace de noms. Impossible à utiliser avec <var>$1rootpage</var>.",
        "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Impossible à utiliser avec <var>$1namespace</var>.",
+       "apihelp-import-param-tags": "Modifier les balises à appliquer à l'entrée du journal d'importation et à la version zéro des pages importées.",
        "apihelp-import-example-import": "Importer [[meta:Help:ParserFunctions]] vers l’espace de noms 100 avec tout l’historique.",
        "apihelp-linkaccount-description": "Lier un compte d’un fournisseur tiers à l’utilisateur actuel.",
        "apihelp-linkaccount-example-link": "Commencer le processus de liaison d’un compte depuis <kbd>Exemple</kbd>.",
        "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 surviendrait au cours de l’opération.",
+       "apihelp-managetags-param-tags": "Modifier les balises à appliquer à l’entrée du journal de gestion des balises.",
        "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-move-param-unwatch": "Supprimer la page et la redirection de la liste de suivi de l'utilisateur actuel.",
        "apihelp-move-param-watchlist": "Ajouter ou supprimer sans condition la page de la liste de suivi de l'utilisateur actuel, utiliser les préférences ou ne pas changer le suivi.",
        "apihelp-move-param-ignorewarnings": "Ignorer tous les avertissements.",
+       "apihelp-move-param-tags": "Modifier les balises à appliquer à l'entrée du journal des renommages et à la version zéro de la page de destination.",
        "apihelp-move-example-move": "Déplacer <kbd>Badtitle</kbd> en <kbd>Goodtitle</kbd> sans garder de redirection.",
        "apihelp-opensearch-description": "Rechercher dans le wiki en utilisant le protocole OpenSearch.",
        "apihelp-opensearch-param-search": "Chaîne de recherche.",
        "apihelp-tokens-example-edit": "Récupérer un jeton de modification (par défaut).",
        "apihelp-tokens-example-emailmove": "Récupérer un jeton de courriel et un jeton de déplacement.",
        "apihelp-unblock-description": "Débloquer un utilisateur.",
-       "apihelp-unblock-param-id": "ID du blocage à lever (obtenu via <kbd>list=blocks</kbd>). Impossible à utiliser avec <var>$1user</var> ou <var>$luserid</var>.",
-       "apihelp-unblock-param-user": "Nom d’utilisateur, adresse IP ou plage d’adresses IP à débloquer. Impossible à utiliser en même temps que <var>$1id</var> ou <var>$luserid</var>.",
+       "apihelp-unblock-param-id": "ID du blocage à lever (obtenu via <kbd>list=blocks</kbd>). Impossible à utiliser avec <var>$1user</var> ou <var>$1userid</var>.",
+       "apihelp-unblock-param-user": "Nom d’utilisateur, adresse IP ou plage d’adresses IP à débloquer. Impossible à utiliser en même temps que <var>$1id</var> ou <var>$1userid</var>.",
        "apihelp-unblock-param-userid": "ID de l'utilisateur à débloquer. Ne peut être utilisé avec <var>$1id</var> ou <var>$1user</var>.",
        "apihelp-unblock-param-reason": "Motif de déblocage.",
        "apihelp-unblock-param-tags": "Modifier les balises à appliquer à l’entrée dans le journal de blocage.",
index 14f5512..4dc2104 100644 (file)
        "apihelp-tokens-example-edit": "Recuperar un identificador de modificación (por defecto).",
        "apihelp-tokens-example-emailmove": "Recuperar un identificador de correo e un identificador de movemento.",
        "apihelp-unblock-description": "Desbloquear un usuario.",
-       "apihelp-unblock-param-id": "ID do bloque a desbloquear (obtido de <kbd>list=blocks</kbd>). Non pode usarse xunto con <var>$1user</var> ou <var>$luserid</var>.",
-       "apihelp-unblock-param-user": "Nome de usuario, enderezo IP ou rango de enderezos IP a desbloquear. Non pode usarse xunto con <var>$1id</var> ou <var>$luserid</var>.",
+       "apihelp-unblock-param-id": "ID do bloque a desbloquear (obtido de <kbd>list=blocks</kbd>). Non pode usarse xunto con <var>$1user</var> ou <var>$1userid</var>.",
+       "apihelp-unblock-param-user": "Nome de usuario, enderezo IP ou rango de enderezos IP a desbloquear. Non pode usarse xunto con <var>$1id</var> ou <var>$1userid</var>.",
        "apihelp-unblock-param-userid": "ID de usuario a desbloquear. Non pode usarse xunto con <var>$1id</var> ou <var>$1user</var>.",
        "apihelp-unblock-param-reason": "Razón para desbloquear.",
        "apihelp-unblock-param-tags": "Cambiar as etiquetas a aplicar na entrada do rexistro de bloqueo.",
index 26dfc99..e684be5 100644 (file)
        "apihelp-tokens-example-edit": "אחזור אסימון עריכה (בררת המחדל).",
        "apihelp-tokens-example-emailmove": "אחזור אסימון דוא\"ל ואסימון העברה.",
        "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-id": "מזהה החסימה לשחרור (מתקבל דרך <kbd>list=blocks</kbd>). לא יכול לשמש יחד עם <var>$1user</var> או <var>$1userid</var>.",
+       "apihelp-unblock-param-user": "שם משתמש, כתובת IP או טווח כתובות IP לחסימה. לא יכול לשמש יחד עם <var>$1id</var> או <var>$1userid</var>.",
        "apihelp-unblock-param-userid": "מזהה המשתמש שישוחרר מחסימה. לא יכול לשמש יחד עם <var>$1id</var> או <var>$1user</var>.",
        "apihelp-unblock-param-reason": "סיבה להסרת חסימה.",
        "apihelp-unblock-param-tags": "תגי שינוי שיחולו על העיול ביומן החסימה.",
index b543bb8..8c76914 100644 (file)
        "apihelp-tokens-param-type": "Tipi di token da richiedere.",
        "apihelp-tokens-example-edit": "Recupera un token di modifica (il predefinito).",
        "apihelp-unblock-description": "Sblocca un utente",
-       "apihelp-unblock-param-user": "Nome utente, indirizzo IP o range di IP da sbloccare. Non può essere usato insieme a <var>$1id</var> o <var>$luserid</var>.",
-       "apihelp-unblock-param-userid": "ID utente da sbloccare. Non può essere usato insieme a <var>$1id</var> o <var>$luserid</var>.",
+       "apihelp-unblock-param-user": "Nome utente, indirizzo IP o range di IP da sbloccare. Non può essere usato insieme a <var>$1id</var> o <var>$1userid</var>.",
+       "apihelp-unblock-param-userid": "ID utente da sbloccare. Non può essere usato insieme a <var>$1id</var> o <var>$1userid</var>.",
        "apihelp-unblock-param-reason": "Motivo dello sblocco.",
        "apihelp-unblock-param-tags": "Modifica etichette da applicare all'elemento del registro dei blocchi.",
        "apihelp-undelete-param-title": "Titolo della pagina da ripristinare.",
index 5e5e5d5..dfe77e3 100644 (file)
        "apihelp-tag-param-reason": "변경 이유.",
        "apihelp-tokens-param-type": "요청할 토큰의 종류.",
        "apihelp-unblock-description": "사용자를 차단 해제합니다.",
-       "apihelp-unblock-param-user": "차단을 해제할 사용자 이름, IP 주소, IP 주소 대역입니다. <var>$1id</var> 또는 <var>$luserid</var>와(과) 함께 사용할 수 없습니다.",
+       "apihelp-unblock-param-user": "차단을 해제할 사용자 이름, IP 주소, IP 주소 대역입니다. <var>$1id</var> 또는 <var>$1userid</var>와(과) 함께 사용할 수 없습니다.",
        "apihelp-unblock-param-userid": "차단을 해제할 사용자 ID입니다. <var>$1id</var> 또는 <var>$1user</var>와(과) 함께 사용할 수 없습니다.",
        "apihelp-unblock-param-reason": "차단 해제 이유.",
        "apihelp-upload-param-ignorewarnings": "모든 경고를 무시합니다.",
index 732991a..750a233 100644 (file)
        "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-user": "Gebruikersnaam, IP-adres of IP-range om te deblokkeren. Kan niet samen worden gebruikt met <var>$1id</var> of <var>$1userid</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.",
index f03af90..8d1f4a5 100644 (file)
        "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-nosuchsection-what": "I a pas de seccion $1 dins $2.",
        "apierror-permissiondenied-generic": "Autorizacion refusada.",
        "apierror-unknownerror-nocode": "Error desconeguda.",
        "apierror-unknownerror": "Error desconeguda : $1",
index 7369ee1..4d56466 100644 (file)
        "apihelp-stashedit-param-text": "Zawartość strony.",
        "apihelp-tag-param-reason": "Powód zmiany.",
        "apihelp-unblock-description": "Odblokuj użytkownika.",
-       "apihelp-unblock-param-user": "Nazwa użytkownika, adres IP albo zakres adresów IP, które chcesz odblokować. Nie można używać jednocześnie z <var>$1id</var> lub <var>$luserid</var>.",
+       "apihelp-unblock-param-user": "Nazwa użytkownika, adres IP albo zakres adresów IP, które chcesz odblokować. Nie można używać jednocześnie z <var>$1id</var> lub <var>$1userid</var>.",
        "apihelp-unblock-param-reason": "Powód odblokowania.",
        "apihelp-undelete-param-reason": "Powód przywracania.",
        "apihelp-upload-param-filename": "Nazwa pliku docelowego.",
index f08eb95..38b7bc0 100644 (file)
@@ -28,6 +28,7 @@
        "apihelp-main-param-errorsuselocal": "Se fornecido, os textos de erro utilizarão mensagens personalizadas localmente do espaço nominal {{ns:MediaWiki}}.",
        "apihelp-block-description": "Bloquear um utilizador.",
        "apihelp-block-param-user": "O nome de utilizador, endereço IP ou gama de endereços IP a serem bloqueados. Não pode ser usado em conjunto com <var>$1userid</var>",
+       "apihelp-block-param-userid": "O identificador do utilizador a ser bloqueado. Não pode ser usado em conjunto com <var>$1user</var>.",
        "apihelp-block-param-expiry": "O período de expiração. Pode ser relativo (p. ex. <kbd>5 meses</kbd> ou <kbd>2 semanas</kbd>) ou absoluto (p. ex. <kbd>2014-09-18T12:34:56Z</kbd>). Se definido como <kbd>infinite</kbd>, <kbd>indefinite</kbd> ou <kbd>never</kbd>, o bloqueio nunca expirará.",
        "apihelp-block-param-reason": "O motivo do bloqueio.",
        "apihelp-block-param-anononly": "Bloquear só utilizadores anónimos (isto é, impedir edições anónimas a partir deste endereço IP)",
@@ -38,6 +39,7 @@
        "apihelp-block-param-allowusertalk": "Permitir que o utilizador edite a sua própria página de discussão (depende de <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Se o utilizador já está bloqueado, sobrescrever o bloco existente.",
        "apihelp-block-param-watchuser": "Vigiar as páginas de utilizador e de discussão, do utilizador ou do endereço IP.",
+       "apihelp-block-param-tags": "Etiquetas de modificação a aplicar à entrada no registo de bloqueios.",
        "apihelp-block-example-ip-simple": "Bloquear o endereço IP <kbd>192.0.2.5</kbd> por três dias com o motivo <kbd>First strike</kbd>.",
        "apihelp-block-example-user-complex": "Bloquear o utilizador <kbd>Vandal</kbd> indefinidamente com o motivo <kbd>Vandalism</kbd>, e impedir a criação de nova conta e o envio de correio eletrónico.",
        "apihelp-changeauthenticationdata-description": "Alterar os dados de autenticação do utilizador atual.",
        "apihelp-import-param-templates": "Para importações interwikis: importar também todas as predefinições incluídas.",
        "apihelp-import-param-namespace": "Importar para este espaço nominal. Não pode ser usado em conjunto com <var>$1rootpage</var>.",
        "apihelp-import-param-rootpage": "Importar como subpágina desta página. Não pode ser usado em conjunto com <var>$1namespace</var>.",
+       "apihelp-import-param-tags": "Etiquetas de modificação a aplicar à entrada no registo de importações e à revisão nula nas páginas importadas.",
        "apihelp-import-example-import": "Importar [[meta:Help:ParserFunctions]] para o espaço nominal 100 com o historial completo.",
        "apihelp-linkaccount-description": "Ligar uma conta de um fornecedor terceiro ao utilizador atual.",
        "apihelp-linkaccount-example-link": "Iniciar o processo de ligação a uma conta do fornecedor <kbd>Example</kbd>.",
        "apihelp-managetags-param-tag": "Etiqueta a ser criada, eliminada, ativada ou desativada. Para criar uma etiqueta ela não pode existir. Para eliminar uma etiqueta, ela tem de existir. Para ativar uma etiqueta, ela tem de existir e não estar a ser utilizada por nenhuma extensão. Para desativar uma etiqueta, ela tem de estar ativa e definida manualmente.",
        "apihelp-managetags-param-reason": "Um motivo, opcional, para a criação, eliminação, ativação ou desativação da etiqueta.",
        "apihelp-managetags-param-ignorewarnings": "Indica se devem ser ignorados todos os avisos gerados durante a operação.",
+       "apihelp-managetags-param-tags": "Etiquetas de modificação a aplicar à entrada no registo de gestão de etiquetas.",
        "apihelp-managetags-example-create": "Criar uma etiqueta com o nome <kbd>spam</kbd> e o motivo <kbd>For use in edit patrolling</kbd>",
        "apihelp-managetags-example-delete": "Eliminar a etiqueta <kbd>vandlaism</kbd> com o motivo <kbd>Misspelt</kbd>",
        "apihelp-managetags-example-activate": "Ativar uma etiqueta com o nome <kbd>spam</kbd> e o motivo <kbd>For use in edit patrolling</kbd>",
        "apihelp-move-param-unwatch": "Remover a página e o redirecionamento das páginas vigiadas do utilizador atual.",
        "apihelp-move-param-watchlist": "Adicionar ou remover incondicionalmente a página da lista de páginas vigiadas do utilizador atual, usar as preferências ou não alterar o estado de vigilância.",
        "apihelp-move-param-ignorewarnings": "Ignorar quaisquer avisos.",
+       "apihelp-move-param-tags": "Etiquetas de modificação a aplicar à entrada no registo de movimentações e à revisão nula na página de destino.",
        "apihelp-move-example-move": "Mover <kbd>Badtitle</kbd> para <kbd>Goodtitle</kbd> sem deixar um redirecionamento.",
        "apihelp-opensearch-description": "Pesquisar a wiki usando o protocolo OpenSearch.",
        "apihelp-opensearch-param-search": "Texto a pesquisar.",
        "apihelp-setnotificationtimestamp-example-page": "Reiniciar o estado de notificação da página <kbd>Main page</kbd>.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Definir a data e hora de notificação para a página <kbd>Main page</kbd> de forma a que todas as edições desde 1 de janeiro de 2012 passem a ser consideradas não vistas",
        "apihelp-setnotificationtimestamp-example-allpages": "Reiniciar o estado de notificação das páginas no espaço nominal <kbd>{{ns:user}}</kbd>.",
+       "apihelp-setpagelanguage-description": "Alterar a língua de uma página.",
+       "apihelp-setpagelanguage-description-disabled": "Não é permitido alterar a língua de uma página nesta wiki.\n\nAtivar <var>[[mw:Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]]</var> para usar esta operação.",
+       "apihelp-setpagelanguage-param-title": "O título da página cuja língua pretende alterar. Não pode ser usado em conjunto com <var>$1pageid</var>.",
+       "apihelp-setpagelanguage-param-pageid": "O identificador da página cuja língua pretende alterar. Não pode ser usado em conjunto com <var>$1title</var>.",
+       "apihelp-setpagelanguage-param-lang": "O código de língua, da língua para a qual a página será alterada. Usar <kbd>default</kbd> para redefinir a língua da página para a língua padrão de conteúdo da wiki.",
+       "apihelp-setpagelanguage-param-reason": "Motivo da alteração.",
+       "apihelp-setpagelanguage-param-tags": "As etiquetas de modificação a aplicar à entrada no registo que resultar desta operação.",
+       "apihelp-setpagelanguage-example-language": "Alterar a língua da página <kbd>Main Page</kbd> para basco.",
+       "apihelp-setpagelanguage-example-default": "Alterar a língua da página com o identificador 123 para a língua padrão de conteúdo da wiki.",
        "apihelp-stashedit-description": "Preparar uma edição na ''cache'' partilhada.\n\nIsto destina-se a ser usado via AJAX a partir do formulário de edição, para melhorar o desempenho da gravação da página.",
        "apihelp-stashedit-param-title": "Título da página que está a ser editada.",
        "apihelp-stashedit-param-section": "Número da secção. <kbd>0</kbd> para a secção do topo, <kbd>new</kbd> para uma secção nova.",
        "apihelp-tag-param-add": "As etiquetas a serem adicionadas. Só podem ser adicionadas as etiquetas definidas manualmente.",
        "apihelp-tag-param-remove": "As etiquetas a serem removidas. Só podem ser removidas as etiquetas definidas manualmente ou completamente indefinidas.",
        "apihelp-tag-param-reason": "O motivo da alteração.",
+       "apihelp-tag-param-tags": "As etiquetas de modificação a aplicar à entrada no registo que será criada em resultado desta operação.",
        "apihelp-tag-example-rev": "Adicionar a etiqueta <kbd>vandalism</kbd> à revisão com o identificador 123, sem especificar um motivo.",
        "apihelp-tag-example-log": "Remover a etiqueta <kbd>spam</kbd> da entrada do registo com o identificador 123, com o motivo <kbd>Wrongly applied</kbd>.",
        "apihelp-tokens-description": "Obter chaves para operações de modificação de dados.\n\nEste módulo é obsoleto e foi substituído por [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-tokens-example-edit": "Obter uma chave de edição (padrão).",
        "apihelp-tokens-example-emailmove": "Obter uma chave de correio eletrónico e uma chave de movimentação.",
        "apihelp-unblock-description": "Desbloquear um utilizador.",
-       "apihelp-unblock-param-id": "Identificador do bloqueio a desfazer (obtido com <kbd>list=blocks</kbd>). Não pode ser usado em conjunto com <var>$1user</var> ou <var>$luserid</var>.",
-       "apihelp-unblock-param-user": "O nome de utilizador, endereço IP ou gama de endereços IP a ser desbloqueado. Não pode ser usado em conjunto com <var>$1id</var> ou <var>$luserid</var>.",
+       "apihelp-unblock-param-id": "Identificador do bloqueio a desfazer (obtido com <kbd>list=blocks</kbd>). Não pode ser usado em conjunto com <var>$1user</var> ou <var>$1userid</var>.",
+       "apihelp-unblock-param-user": "O nome de utilizador, endereço IP ou gama de endereços IP a ser desbloqueado. Não pode ser usado em conjunto com <var>$1id</var> ou <var>$1userid</var>.",
+       "apihelp-unblock-param-userid": "O identificador do utilizador a ser desbloqueado. Não pode ser usado em conjunto com <var>$1id</var> ou <var>$1user</var>.",
        "apihelp-unblock-param-reason": "Motivo para o desbloqueio.",
        "apihelp-unblock-param-tags": "As etiquetas de modificação a aplicar à entrada no registo de bloqueios.",
        "apihelp-unblock-example-id": "Desfazer o bloqueio com o identificador #<kbd>105</kbd>.",
index a078f1b..9eb4a2e 100644 (file)
        "apihelp-revisiondelete-description": "удалить и восстановить редакции",
        "apihelp-stashedit-param-sectiontitle": "Заголовок нового раздела.",
        "apihelp-unblock-description": "Разблокировать пользователя.",
-       "apihelp-unblock-param-user": "Имя участника, IP-адрес или диапазон IP-адресов, которые вы хотите разблокировать. Нельзя использовать одновременно с <var>$1id</var> или <var>$luserid</var>.",
+       "apihelp-unblock-param-user": "Имя участника, IP-адрес или диапазон IP-адресов, которые вы хотите разблокировать. Нельзя использовать одновременно с <var>$1id</var> или <var>$1userid</var>.",
        "apihelp-unblock-param-userid": "ID участника, которого вы хотите разблокировать. Нельзя использовать одновременно с <var>$1id</var> или <var>$1user</var>.",
        "apihelp-unblock-param-reason": "Причина разблокировки",
        "apihelp-unblock-example-id": "Разблокировать блок с идентификатором #<kbd>105</kbd>.",
index b71c88e..0c4bd1c 100644 (file)
        "apihelp-query+watchlistraw-example-simple": "Lista sidor på den aktuella användarens bevakningslista.",
        "apihelp-setnotificationtimestamp-example-all": "Återställ meddelandestatus för hela bevakningslistan.",
        "apihelp-stashedit-param-summary": "Ändra sammanfattning.",
-       "apihelp-unblock-param-id": "ID för blockeringen att häva (hämtas genom <kbd>list=blocks</kbd>). Kan inte användas tillsammans med <var>$1user</var> eller <var>$luserid</var>.",
-       "apihelp-unblock-param-user": "Användarnamn, IP-adresser eller IP-adressintervall att häva blockering för. Kan inte användas tillsammans med <var>$1id</var> eller <var>$luserid</var>.",
+       "apihelp-unblock-param-id": "ID för blockeringen att häva (hämtas genom <kbd>list=blocks</kbd>). Kan inte användas tillsammans med <var>$1user</var> eller <var>$1userid</var>.",
+       "apihelp-unblock-param-user": "Användarnamn, IP-adresser eller IP-adressintervall att häva blockering för. Kan inte användas tillsammans med <var>$1id</var> eller <var>$1userid</var>.",
        "apihelp-unblock-param-userid": "Användar-ID att häva blockering för. Kan inte användas tillsammans med <var>$1id</var> eller <var>$1user</var>.",
        "apihelp-upload-param-filekey": "Nyckel som identifierar en tidigare uppladdning som lagrats temporärt.",
        "apihelp-upload-param-stash": "Om angiven, kommer servern att temporärt lagra filen istället för att lägga till den i centralförvaret.",
index aaea10a..11a79c2 100644 (file)
@@ -45,6 +45,7 @@
        "apihelp-block-param-allowusertalk": "Дозволити користувачу редагувати власну сторінку обговорення (залежить від <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Якщо користувач уже заблокований, переписати наявне блокування.",
        "apihelp-block-param-watchuser": "Спостерігати за сторінкою користувача чи IP-адреси і сторінкою обговорення.",
+       "apihelp-block-param-tags": "Змінити теги для застосування їх до запису в журналі блокувань.",
        "apihelp-block-example-ip-simple": "Блокувати IP-адресу <kbd>192.0.2.5</kbd> на три дні з причиною <kbd>First strike</kbd>.",
        "apihelp-block-example-user-complex": "Блокувати користувача<kbd>Vandal</kbd> на невизначений термін з причиною <kbd>Vandalism</kbd> і заборонити створення нових облікових записів та надсилання електронної пошти.",
        "apihelp-changeauthenticationdata-description": "Зміна параметрів аутентифікації для поточного користувача.",
        "apihelp-help-example-query": "Довідка для двох підмодулів запитів.",
        "apihelp-imagerotate-description": "Поворот одного або декількох зображень.",
        "apihelp-imagerotate-param-rotation": "Градуси для повороту зображення за годинниковою стрілкою.",
+       "apihelp-imagerotate-param-tags": "Теги для застосування до запису в журналі завантажень.",
        "apihelp-imagerotate-example-simple": "Повернути <kbd>File:Example.png</kbd> на <kbd>90</kbd> градусів.",
        "apihelp-imagerotate-example-generator": "Повернути усі зображення у <kbd>Category:Flip</kbd> на <kbd>180</kbd> градусів.",
        "apihelp-import-description": "Імпортувати сторінку з іншої вікі або з XML-файлу.\n\nЗважте, що HTTP POST має бути виконано як завантаження файлу (тобто з використанням даних різних частин/форм) під час надсилання файлу для параметра <var>xml</var>.",
        "apihelp-import-param-templates": "Для інтервікі-імпорту: імпортувати також усі включені шаблони.",
        "apihelp-import-param-namespace": "Імпортувати у цей простір назв. Не можна використати разом з <var>$1rootpage</var>.",
        "apihelp-import-param-rootpage": "Імпортувати як підсторінку цієї сторінки. Не можна використати разом з <var>$1namespace</var>.",
+       "apihelp-import-param-tags": "Змінити теги для застосування до запису в журналі імпорту і до нульової версії імпортованих сторінок.",
        "apihelp-import-example-import": "Імпортувати [[meta:Help:ParserFunctions]] у простір назв 100 з повною історією.",
        "apihelp-linkaccount-description": "Пов'язати обліковий запис третьої сторони з поточним користувачем.",
        "apihelp-linkaccount-example-link": "Почати процес пов'язування з обліковм записом з <kbd>Example</kbd>.",
        "apihelp-managetags-param-tag": "Мітка для створення, вилучення, активування чи деактивування. Для створення мітки, вона повинна не існувати. Для вилучення мітки, вона повинна існувати. Для активування мітки, вона повинна існувати і не використовуватися жодним розширенням. Для деактивування мітки, вона має бути жива і визначена вручну.",
        "apihelp-managetags-param-reason": "Необов'язкова причина створення, вилучення, активування чи деактивування мітки.",
        "apihelp-managetags-param-ignorewarnings": "Чи ігнорувати усі попередження, що з'являються під час операції.",
+       "apihelp-managetags-param-tags": "Змінити теги для застосування до запису в журналі керування тегами.",
        "apihelp-managetags-example-create": "Створити мітку з назвою <kbd>spam</kbd> з причиною <kbd>For use in edit patrolling</kbd>",
        "apihelp-managetags-example-delete": "Вилучити мітку <kbd>vandlaism</kbd> з причиною <kbd>Misspelt</kbd>",
        "apihelp-managetags-example-activate": "Активувати мітку з назвою <kbd>spam</kbd> з причиною <kbd>For use in edit patrolling</kbd>",
        "apihelp-move-param-unwatch": "Вилучити сторінку й перенаправлення зі списку спостереження поточного користувача.",
        "apihelp-move-param-watchlist": "Беззастережно додати або вилучити сторінку зі списку спостереження поточного користувача, використати налаштування або не змінювати спостереження.",
        "apihelp-move-param-ignorewarnings": "Ігнорувати всі попередження",
+       "apihelp-move-param-tags": "Змінити теги для застосування до запису в журналі перейменувань і до нульової версії цільової сторінки.",
        "apihelp-move-example-move": "Перейменувати <kbd>Badtitle</kbd> на <kbd>Goodtitle</kbd> без збереження перенаправлення.",
        "apihelp-opensearch-description": "Шукати у вікі з використанням протоколу OpenSearch.",
        "apihelp-opensearch-param-search": "Рядок пошуку.",
        "apihelp-query+usercontribs-param-limit": "Максимальна кількість елементів внеску для виведення.",
        "apihelp-query+usercontribs-param-start": "З якої часової мітки виводити.",
        "apihelp-query+usercontribs-param-end": "До якої часової мітки виводити.",
-       "apihelp-query+usercontribs-param-user": "Користувачі, для яких отримати внесок.",
-       "apihelp-query+usercontribs-param-userprefix": "Отримати внесок усіх користувачів, чиї імена починаються цим значенням. Перевизначає $1user.",
+       "apihelp-query+usercontribs-param-user": "Користувачі, для яких отримати внесок. Не можна використовувати з <var>$1userids</var> чи <var>$1userprefix</var>.",
+       "apihelp-query+usercontribs-param-userprefix": "Отримати внесок усіх користувачів, чиї імена починаються цим значенням. Не можна використовувати з <var>$1user</var> чи <var>$1userids</var>.",
+       "apihelp-query+usercontribs-param-userids": "Ідентифікатори користувачів, для яких отримати внесок. Не можна використовувати з <var>$1user</var> чи <var>$1userprefix</var>.",
        "apihelp-query+usercontribs-param-namespace": "Перерахувати записи внеску лише в цих просторах назв.",
        "apihelp-query+usercontribs-param-prop": "Включити додаткові відомомсті:",
        "apihelp-query+usercontribs-paramvalue-prop-ids": "Додає ID сторінки й ID версії.",
        "apihelp-revisiondelete-param-show": "Що показати у кожній з версії.",
        "apihelp-revisiondelete-param-suppress": "Чи приховати дані від адміністраторів так само як від усіх інших.",
        "apihelp-revisiondelete-param-reason": "Причина вилучення або відновлення.",
+       "apihelp-revisiondelete-param-tags": "Теги для застосування до запису в журналі вилучень",
        "apihelp-revisiondelete-example-revision": "Приховати вміст версії <kbd>12345</kbd> сторінки <kbd>Main Page</kbd>.",
        "apihelp-revisiondelete-example-log": "Приховати всі дані у записі журналу <kbd>67890</kbd> з причиною <kbd>BLP violation</kbd>.",
        "apihelp-rollback-description": "Скасувати останнє редагування цієї сторінки.\n\nЯкщо користувач, який редагував сторінку, зробив декілька редагувань підряд, їх усі буде відкочено.",
        "apihelp-setnotificationtimestamp-example-page": "Стерти статус сповіщень для <kbd>Main page</kbd>.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Встановити часову мітку сповіщень для <kbd>Main page</kbd> так, що всі редагування після 1 січня 2012 будуть виглядати як не переглянуті.",
        "apihelp-setnotificationtimestamp-example-allpages": "Стерти статус сповіщень для сторінок у просторі назв <kbd>{{ns:user}}</kbd>.",
+       "apihelp-setpagelanguage-description": "Змінити мову сторінки.",
+       "apihelp-setpagelanguage-description-disabled": "Зміна мови сторінки заборонена в цій вікі. \n\nУвімкніть <var>[[mw:Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]]</var>, щоб використовувати цю дію.",
+       "apihelp-setpagelanguage-param-title": "Назва сторінки, мову якої Ви хочете змінити. Не можна використовувати разом з <var>$1pageid</var>.",
+       "apihelp-setpagelanguage-param-pageid": "Ідентифікатор сторінки, мову якої Ви хочете змінити. Не можна використовувати разом з <var>$1title</var>.",
+       "apihelp-setpagelanguage-param-lang": "Код мови, якою треба замінити поточну мову сторінки. Використовуйте <kbd>default</kbd>, щоб встановити стандартну мову вмісту цієї вікі як мову сторінки.",
+       "apihelp-setpagelanguage-param-reason": "Причина зміни.",
+       "apihelp-setpagelanguage-param-tags": "Змінити теги для застосування до запису в журналі, який буде результатом цієї дії.",
+       "apihelp-setpagelanguage-example-language": "Змінити мову сторінки <kbd>Main Page</kbd> на «баскська».",
+       "apihelp-setpagelanguage-example-default": "Змінити мову сторінки з ідентифікатором 123 на стандартну мову вмісту вікі.",
        "apihelp-stashedit-description": "Підготувати редагування в загальний кеш.\n\nЦе призначено для використання через AJAX з форми редагування, щоб поліпшити продуктивність збереження сторінки.",
        "apihelp-stashedit-param-title": "Назва редагованої сторінки.",
        "apihelp-stashedit-param-section": "Номер розділу. <kbd>0</kbd> для вступного розділу, <kbd>new</kbd> для нового розділу.",
        "apihelp-tag-param-add": "Мітки, які слід додати. Лише визначені вручну мітки може бути додано.",
        "apihelp-tag-param-remove": "Мітки, які слід вилучити. Лише мітки, які було визначено вручну, або взагалі не визначено, можуть бути вилучені.",
        "apihelp-tag-param-reason": "Причина зміни.",
+       "apihelp-tag-param-tags": "Теги для застосування до запису в журналі, що буде створений в результаті цієї дії.",
        "apihelp-tag-example-rev": "Додати мітку <kbd>vandalism</kbd> до версії з ідентифікатором 123 без вказання причини",
        "apihelp-tag-example-log": "Вилучити мітку <kbd>spam</kbd> з запису журналу з ідентифікатором 123 з причиною <kbd>Wrongly applied</kbd>",
        "apihelp-tokens-description": "Отримати жетони для дій пов'язаних зі зміною даних.\n\nЦей модуль застарів на користь [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-tokens-example-edit": "Отримати жетон редагування (за замовчуванням).",
        "apihelp-tokens-example-emailmove": "Отримати жетон електронної пошти та жетон перейменування.",
        "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-id": "Ідентифікатор блоку чи розблокування (отриманий через <kbd>list=blocks</kbd>). Не може бути використано разом із <var>$1user</var> або <var>$1userid</var>.",
+       "apihelp-unblock-param-user": "Ім'я користувача, IP-адреса чи IP-діапазон до розблокування. Не може бути використано разом із <var>$1id</var> або <var>$1userid</var>.",
        "apihelp-unblock-param-userid": "Ідентифікатор користувача до розблокування. Не може бути використано разом із <var>$1id</var> або <var>$1user</var>.",
        "apihelp-unblock-param-reason": "Причина розблокування.",
        "apihelp-unblock-param-tags": "Змінити теги, що мають бути застосовані до запису в журналі блокувань.",
        "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> — якщо пароль використовувати не можна.",
        "apierror-invalidtitle": "Погана назва «$1».",
        "apierror-invalidurlparam": "Недійсне значення для <var>$1urlparam</var> (<kbd>$2=$3</kbd>).",
        "apierror-invaliduser": "Недійсне ім'я користувача «$1».",
+       "apierror-invaliduserid": "Ідентифікатор <var>$1</var> недійсний.",
        "apierror-maxlag-generic": "Очікування на сервер бази даних: затримка $1 {{PLURAL:$1|секунда|секунди|секунд}}.",
        "apierror-maxlag": "Очікування на $2: затримка $1 {{PLURAL:$1|секунда|секунди|секунд}}.",
        "apierror-mimesearchdisabled": "MIME-пошук вимкнений у скупому режимі.",
        "apierror-opensearch-json-warnings": "Попередження не можуть бути представлені у форматі OpenSearch JSON.",
        "apierror-pagecannotexist": "Простір назв не дозволяє фактичних сторінок.",
        "apierror-pagedeleted": "Цю сторінку було вилучено після того, як Ви отримали її мітку часу.",
+       "apierror-pagelang-disabled": "Зміна мови сторінки заборонена в цій вікі.",
        "apierror-paramempty": "Параметр <var>$1</var> не може бути порожнім.",
        "apierror-parsetree-notwikitext": "<kbd>prop=parsetree</kbd> підтримується лише для вмісту у форматі вікірозмітки.",
        "apierror-parsetree-notwikitext-title": "<kbd>prop=parsetree</kbd> підтримується лише для вмісту у форматі вікірозмітки. $1 використовує контентну модель $2.",
index 4ba61a9..ffcb0c9 100644 (file)
@@ -55,6 +55,7 @@
        "apihelp-block-param-allowusertalk": "允许用户编辑自己的讨论页(取决于<var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>)。",
        "apihelp-block-param-reblock": "如果该用户已被封禁,则覆盖已有的封禁。",
        "apihelp-block-param-watchuser": "监视用户或该 IP 的用户页和讨论页。",
+       "apihelp-block-param-tags": "要在封禁日志中应用到实体的更改标签。",
        "apihelp-block-example-ip-simple": "封禁IP地址<kbd>192.0.2.5</kbd>三天,原因<kbd>First strike</kbd>。",
        "apihelp-block-example-user-complex": "无限期封禁用户<kbd>Vandal</kbd>,原因<kbd>Vandalism</kbd>,并阻止新账户创建和电子邮件发送。",
        "apihelp-changeauthenticationdata-description": "更改当前用户的身份验证数据。",
        "apihelp-import-param-templates": "用于跨wiki导入:连带导入所有包含的模板。",
        "apihelp-import-param-namespace": "导入至此名字空间。不能与<var>$1rootpage</var>一起使用。",
        "apihelp-import-param-rootpage": "作为此页面的子页面导入。不能与<var>$1namespace</var>一起使用。",
+       "apihelp-import-param-tags": "要在导入日志,以及在导入页面的空修订版本中应用到实体的更改标签。",
        "apihelp-import-example-import": "将页面[[meta:Help:ParserFunctions]]连带完整历史导入至100名字空间。",
        "apihelp-linkaccount-description": "将来自第三方提供商的账户链接至当前用户。",
        "apihelp-linkaccount-example-link": "开始从<kbd>Example</kbd>链接至账户的过程。",
        "apihelp-managetags-param-tag": "要创建、删除、激活或取消激活的标签。要创建标签,标签必须不存在。要删除标签,标签必须存在。要激活标签,标签必须存在,且不被任何扩展使用。要取消激活标签,标签必须当前处于激活状态,且被手动定义。",
        "apihelp-managetags-param-reason": "一个创建、删除、激活或停用标签时的原因,可选。",
        "apihelp-managetags-param-ignorewarnings": "是否忽略操作期间发生的任何警告。",
+       "apihelp-managetags-param-tags": "要在标签管理日志中应用到实体的更改标签。",
        "apihelp-managetags-example-create": "创建一个名为<kbd>spam</kbd>的标签,原因<kbd>For use in edit patrolling</kbd>",
        "apihelp-managetags-example-delete": "删除<kbd>vandlaism</kbd>标签,原因<kbd>Misspelt</kbd>",
        "apihelp-managetags-example-activate": "激活一个名为<kbd>spam</kbd>的标签,原因<kbd>For use in edit patrolling</kbd>",
        "apihelp-move-param-unwatch": "从当前用户的监视列表中移除页面及重定向。",
        "apihelp-move-param-watchlist": "无条件地将页面加入至当前用户的监视列表或将其移除,使用设置或不更改监视。",
        "apihelp-move-param-ignorewarnings": "忽略任何警告。",
+       "apihelp-move-param-tags": "要在移动日志,以及在目标页面的空修订版本中应用到实体的更改标签。",
        "apihelp-move-example-move": "移动<kbd>Badtitle</kbd>到<kbd>Goodtitle</kbd>,不保留重定向。",
        "apihelp-opensearch-description": "使用OpenSearch协议搜索wiki。",
        "apihelp-opensearch-param-search": "搜索字符串。",
        "apihelp-tokens-example-edit": "检索一个编辑令牌(默认)。",
        "apihelp-tokens-example-emailmove": "检索一个电子邮件令牌和一个移动令牌。",
        "apihelp-unblock-description": "解封一位用户。",
-       "apihelp-unblock-param-id": "解封时需要的封禁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-id": "解封时需要的封禁ID(通过<kbd>list=blocks</kbd>获得)。不能与<var>$1user</var>或<var>$1userid</var>一起使用。",
+       "apihelp-unblock-param-user": "要解封的用户名、IP地址或IP地址段。不能与<var>$1id</var>或<var>$1userid</var>一起使用。",
        "apihelp-unblock-param-userid": "要封禁的用户ID。不能与<var>$1id</var>或<var>$1user</var>一起使用。",
        "apihelp-unblock-param-reason": "解封的原因。",
        "apihelp-unblock-param-tags": "要在封禁日志中应用到实体的更改标签。",
        "apierror-readapidenied": "您需要读取权限以使用此模块。",
        "apierror-readonly": "此wiki目前为只读模式。",
        "apierror-reauthenticate": "您在该会话中尚未经过验证,请重新验证。",
+       "apierror-redirect-appendonly": "您试图使用重定向跟随模式编辑,而这必须与<kbd>section=new</kbd>、<var>prependtext</var>或<var>appendtext</var>共同使用。",
        "apierror-revdel-mutuallyexclusive": "同一字段不能同时用于<var>hide</var>和<var>show</var>。",
        "apierror-revdel-needtarget": "此修订版本删除类型需要目标标题。",
        "apierror-revdel-paramneeded": "需要<var>hide</var>和/或<var>show</var>的至少一个值。",
        "apierror-spamdetected": "您的编辑被拒绝,因为它包含破坏性碎片:<code>$1</code>。",
        "apierror-specialpage-cantexecute": "您没有权限查看此特殊页面的结果。",
        "apierror-stashedfilenotfound": "无法在暂存处找到文件:$1。",
+       "apierror-stashfailed-complete": "大块上传已经完成,检查状态以获取详情。",
        "apierror-stashfailed-nosession": "没有带此关键词的大块上传会话。",
        "apierror-stashfilestorage": "不能在暂存处存储上传:$1",
        "apierror-stashinvalidfile": "无效暂存文件。",
index 54e476f..86ddc4c 100644 (file)
@@ -7,12 +7,21 @@
                        "EagerLin",
                        "Zhxy 519",
                        "Macofe",
-                       "Jasonzhuocn"
+                       "Jasonzhuocn",
+                       "Winstonyin"
                ]
        },
-       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|文件]]\n* [[mw:API:FAQ|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 Bug與請求]\n</div>\n<strong>狀態資訊:</strong>本頁所展示的所有功能都應正常工作,但是 API 仍在開發當中,將會隨時變化。請訂閱[https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce 郵件清單]以便得到更新通知。\n\n<strong>錯誤請求:</strong>當 API 收到錯誤請求時, HTTP header 將會返回一個包含「MediaWiki-API-Error」的值,隨後 header 的值與錯誤碼將會送回並設定為相同的值。詳細資訊請參閱[[mw:API:Errors_and_warnings|API: 錯誤與警告]]。",
+       "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收到錯誤的請求時,會發出以「MediaWiki-API-Error」為鍵的HTTP頭欄位,隨後頭欄位的值與錯誤碼將會被設為相同的值。詳細資訊請參閱[[mw:API:Errors_and_warnings|API: 錯誤與警告]]。\n\n<strong>測試:</strong>要簡化API請求的測試過程,請見[[Special:ApiSandbox]]。",
        "apihelp-main-param-action": "要執行的動作。",
        "apihelp-main-param-format": "輸出的格式。",
+       "apihelp-main-param-smaxage": "將HTTP緩存控制頭欄位設為<code>s-maxage</code>秒。錯誤不會做緩存。",
+       "apihelp-main-param-maxage": "將HTTP緩存控制頭欄位設為<code>max-age</code>秒。錯誤不會做緩存。",
+       "apihelp-main-param-assert": "若設為<kbd>user</kbd>,會確認使用者是否已登入;若設為<kbd>bot</kbd>,會確認是否擁有機械人權限。",
+       "apihelp-main-param-assertuser": "確認目前使用者就是指定的使用者。",
+       "apihelp-main-param-requestid": "在此處提供的任何值都將包括在響應之中。可用於區分請求。",
+       "apihelp-main-param-servedby": "在結果中包括提出請求的主機名。",
+       "apihelp-main-param-curtimestamp": "在結果中包括目前的時間戳。",
+       "apihelp-main-param-responselanginfo": "在結果中包括<var>uselang</var>和<var>errorlang</var>所用的語言。",
        "apihelp-block-description": "封鎖使用者。",
        "apihelp-block-param-user": "您要封鎖的使用者名稱、IP 位址或 IP 範圍。",
        "apihelp-block-param-reason": "封鎖原因。",
        "apihelp-login-example-login": "登入",
        "apihelp-logout-description": "登出並清除 session 資料。",
        "apihelp-logout-example-logout": "登出當前使用者",
+       "apihelp-mergehistory-description": "合併頁面歷史",
+       "apihelp-mergehistory-param-reason": "合併歷史的原因。",
+       "apihelp-mergehistory-example-merge": "將<kbd>Oldpage</kbd>的整個歷史合併至<kbd>Newpage</kbd>。",
+       "apihelp-mergehistory-example-merge-timestamp": "將<kbd>Oldpage</kbd>直至<kbd>2015-12-31T04:37:41Z</kbd>的頁面修訂版本合併至<kbd>Newpage</kbd>。",
        "apihelp-move-description": "移動頁面。",
        "apihelp-move-param-from": "重新命名本頁面的標題。不能與 <var>$1fromid</var> 一起出現。",
        "apihelp-move-param-fromid": "重新命名本頁面的 ID 。不能與 <var>$1fromid</var> 一起出現。",
        "apihelp-move-param-to": "將本頁面的標題重新命名為",
        "apihelp-move-param-reason": "重新命名的原因。",
+       "apihelp-move-param-movetalk": "如果討論頁存在,變更討論頁名稱。",
        "apihelp-move-param-movesubpages": "如果適用,則重新命名子頁面。",
        "apihelp-move-param-noredirect": "不要建立重新導向。",
+       "apihelp-move-param-watch": "將頁面和重定向加入目前使用者的監視清單。",
+       "apihelp-move-param-unwatch": "從目前使用者的監視清單中移除頁面和重定向。",
+       "apihelp-move-param-watchlist": "在目前使用者的監視清單中無條件地加入或移除頁面,或使用設定,或不變更監視清單。",
        "apihelp-move-param-ignorewarnings": "忽略所有警告。",
+       "apihelp-move-example-move": "將<kbd>Badtitle</kbd>移動至<kbd>Goodtitle</kbd>,不留下重定向。",
        "apihelp-opensearch-description": "使用 OpenSearch 協定搜尋本 wiki。",
        "apihelp-opensearch-param-search": "搜尋字串。",
        "apihelp-opensearch-param-limit": "回傳的結果數量上限。",
        "apihelp-opensearch-param-namespace": "搜尋的命名空間。",
+       "apihelp-opensearch-param-suggest": "若<var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var>設定為false,則不做任何事。",
+       "apihelp-opensearch-param-redirects": "如何處理重定向:\n;return:傳回重定向本身。\n;resolve:傳回目標頁面,傳回的結果數目可能少於$1limit。\n由於歷史原因,$1format=json的預設值為「return」,其他格式則為「resolve」。",
        "apihelp-opensearch-param-format": "輸出的格式。",
        "apihelp-options-param-reset": "重設偏好設定為網站預設值。",
        "apihelp-options-example-reset": "重設所有偏好設定",
index 0aca213..352a94c 100644 (file)
@@ -963,7 +963,7 @@ class MessageCache {
                } else {
                        // XXX: This is not cached in process cache, should it?
                        $message = false;
-                       Hooks::run( 'MessagesPreLoad', [ $title, &$message ] );
+                       Hooks::run( 'MessagesPreLoad', [ $title, &$message, $code ] );
                        if ( $message !== false ) {
                                return $message;
                        }
index 3524d09..df7111a 100644 (file)
@@ -23,4 +23,3 @@ class MWUnknownContentModelException extends MWException {
                return $this->modelId;
        }
 }
-
index ca7336a..1c5c2ee 100644 (file)
@@ -68,6 +68,7 @@
        "config-memory-bad": "'''Figyelmeztetés:''' A PHP <code>memory_limit</code> beállításának értéke $1.\nEz az érték valószínűleg túl kevés, a telepítés sikertelen lehet.",
        "config-xcache": "Az [http://xcache.lighttpd.net/ XCache] telepítve van",
        "config-apc": "Az [http://www.php.net/apc APC] telepítve van",
+       "config-apcu": "Az [http://www.php.net/apcu APCu] telepítve van",
        "config-wincache": "A [http://www.iis.net/download/WinCacheForPhp WinCache] telepítve van",
        "config-diff3-bad": "GNU diff3 nem található.",
        "config-git": "Megtaláltam a Git verziókezelő szoftvert: <code>$1</code>.",
index c285e73..15d54b7 100644 (file)
@@ -22,7 +22,8 @@
                        "Ильнар",
                        "Macofe",
                        "StasR",
-                       "Irus"
+                       "Irus",
+                       "Mailman"
                ]
        },
        "config-desc": "Инсталлятор MediaWiki",
@@ -31,7 +32,7 @@
        "config-localsettings-upgrade": "Обнаружен файл <code>LocalSettings.php</code>.\nДля обновления этой установки, пожалуйста, введите значение <code>$wgUpgradeKey</code>.\nЕго можно найти в файле <code>LocalSettings.php</code>.",
        "config-localsettings-cli-upgrade": "Обнаружен файл <code>LocalSettings.php</code>.\nДля обновления этой установки, пожалуйста, запустите <code>update.php</code>",
        "config-localsettings-key": "Ключ обновления:",
-       "config-localsettings-badkey": "Ð\92Ñ\8b Ñ\83казали Ð½ÐµÐ¿Ñ\80авилÑ\8cнÑ\8bй ÐºÐ»Ñ\8eÑ\87 Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ\8f",
+       "config-localsettings-badkey": "Ð\92Ñ\8b Ñ\83казали Ð½ÐµÐ²ÐµÑ\80нÑ\8bй ÐºÐ»Ñ\8eÑ\87 Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ\8f.",
        "config-upgrade-key-missing": "Обнаружена существующая установленная копия MediaWiki.\nЧтобы обновить обнаруженную установку, пожалуйста, добавьте следующую строку в конец вашего файла <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "Похоже, что существующий файл <code>LocalSettings.php</code> неполон.\nНе установлена переменная $1.\nПожалуйста, измените <code>LocalSettings.php</code> так, чтобы значение этой переменной было задано, затем нажмите «{{int:Config-continue}}».",
        "config-localsettings-connection-error": "Произошла ошибка при подключении к базе данных с использованием настроек, указанных в <code>LocalSettings.php</code>. Пожалуйста, исправьте эти настройки и повторите попытку.\n\n$1",
index e7f69d3..167d6cc 100644 (file)
@@ -16,7 +16,8 @@
                        "NigelSoft",
                        "Macofe",
                        "Reke",
-                       "Suchichi02"
+                       "Suchichi02",
+                       "Winstonyin"
                ]
        },
        "config-desc": "MediaWiki 安裝程式",
@@ -74,7 +75,9 @@
        "config-memory-bad": "<strong>警告:</strong>PHP 的記憶體使用上限 <code>memory_limit</code> 為 $1。\n該設定值可能過低。\n這可能導致後續的安裝失敗!",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] 已安裝",
        "config-apc": "[http://www.php.net/apc APC] 已安裝",
+       "config-apcu": "已安裝[http://www.php.net/apcu APCu]",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] 已安裝",
+       "config-no-cache-apcu": "<strong>警告:</strong>找不到[http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache]或[http://www.iis.net/download/WinCacheForPhp WinCache]。未開啟物件緩存。",
        "config-mod-security": "<strong>警告:</strong>您的網頁伺服器已開啟 [http://modsecurity.org/ mod_security] 模組,如果設定不恰當會導致使用者可在 MediaWiki 或其他應用程式發佈任意的內容。\n若您遇到任何問題,請參考 [http://modsecurity.org/documentation/ mod_security 文件] 或聯繫您的伺服器技術支援人員。",
        "config-diff3-bad": "找不到 GNU diff3。",
        "config-git": "找到 Git 版本控制軟體:<code>$1</code>。",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki 支援以下資料庫系統:\n\n$1\n\n如果您下方沒有看到您要使用的資料庫系統,請根據上方連結指示開啟資料庫的支援。",
        "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] 是 MediaWiki 主要支援的資料庫系統。MediaWiki 也同時可運作與於 [{{int:version-db-mariadb-url}} MariaDB] 和[{{int:version-db-percona-url}} Percona 伺服器],上述這些與 MySQL 相容的資料庫系統。([http://www.php.net/manual/en/mysqli.installation.php 如何編譯支援 MySQL 的 PHP])",
-       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] 是一套受歡迎的開源資料庫系統,在開源方案當中,可用來替代 MySQL。目前仍有一些次要的問題需要解決,較不建議使用在上線環境當中。 ([http://www.php.net/manual/en/pgsql.installation.php 如何編譯支援 PostgreSQL 的 PHP])。",
+       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL]是一套受歡迎的開源資料庫系統,可用來替代 MySQL。([http://www.php.net/manual/en/pgsql.installation.php 如何編譯支援PostgreSQL的PHP])。",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] 是一套輕量級的資料庫系統,MediaWiki 可在此資料庫系統上良好的運作。([http://www.php.net/manual/en/pdo.installation.php 如何編譯支援 SQLite 的 PHP],須透過 PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] 是一套商用企業級的資料庫。([http://www.php.net/manual/en/oci8.installation.php 如何編譯支援 OCI8 的 PHP])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] 是一套 Windows 專用的商用企業級的資料庫。 ([http://www.php.net/manual/en/sqlsrv.installation.php 如何編譯支援 SQLSRV 的 PHP])",
        "config-subscribe": "訂閱 [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 發佈公告郵寄清單]。",
        "config-subscribe-help": "這是一個用於發佈公告的低郵件量郵寄清單,內容包括重要的安全公告。\n您應該訂閱它並在 MediaWiki 發佈新版的時候更新系統。",
        "config-subscribe-noemail": "您正嘗試不填寫電子郵件地址訂閱發佈公告郵寄清單。 \n請如果您希望訂閱郵寄清單,請提供一個有效的電子郵件地址。",
+       "config-pingback": "與MediaWiki開發人員分享此安裝過程的數據。",
+       "config-pingback-help": "如果您選擇此項設定,MediaWiki將會定期把有關本MediaWiki實例的基本數據傳送給https://www.mediawiki.org。數據包括系統類型、PHP版本、所選的資料庫後端等等。維基媒體基金會會向MediaWiki的開發人員分享這組數據,以幫助將來的開發計劃。將會傳送以下有關您系統的數據:\n<pre>$1</pre>",
        "config-almost-done": "您快要完成了!\n您現在可以跳過其餘的設定項目並且立即安裝 Wiki。",
        "config-optional-continue": "多問我一些問題吧。",
        "config-optional-skip": "我已經不耐煩了,請趕緊安裝 Wiki。",
        "config-install-mainpage": "正在使用預設的內容建立首頁",
        "config-install-extension-tables": "正在建立已啟動的擴充套件的資料表",
        "config-install-mainpage-failed": "無法插入首頁: $1",
-       "config-install-done": "<strong>恭喜!</strong>\n您已經成功地安裝了 MediaWiki。\n\n安裝程式已自動產生 <code>LocalSettings.php</code> 檔案,\n該檔案中包含了您所有的設定項目。\n\n您需要下載該檔案,並將其放置在您的 Wiki 的根目錄 (index.php 所在的目錄) 中,下載稍後會自動開始。\n\n若瀏覽器沒有提示您下載,或者您取消了下載,您可以點選下方連結重新下載:\n\n$3\n\n<strong>注意:</strong>若您現在未下載檔案,稍後結束安裝程式之後將無法下載設定檔。\n\n當您完成本步驟後,您可以 <strong>[$2 進入您的 Wiki]</strong>。",
+       "config-install-done": "<strong>恭喜!</strong>\n您已經成功安裝MediaWiki。\n\n安裝程式已自動產生<code>LocalSettings.php</code>檔案,\n該檔案中包含了您所有的設定項目。\n\n您需要下載該檔案,並將其放置在您的Wiki的根目錄(index.php所在的目錄)中,下載應已自動開始。\n\n若瀏覽器沒有提示您下載,或者您取消了下載,您可以點選下方連結重新下載:\n\n$3\n\n<strong>注意:</strong>如果您現在不下載此檔案,稍後結束安裝程式之後將無法再下載設定檔。\n\n當您完成本步驟後,您可以<strong>[$2 進入您的Wiki]</strong>。",
+       "config-install-done-path": "<strong>恭喜!</strong>\n您已經成功安裝MediaWiki。\n\n安裝程式已自動產生<code>LocalSettings.php</code>檔案,\n該檔案中包含了您所有的設定項目。\n\n您需要下載該檔案,並將其放置在<code>$4</code>中,下載應已自動開始。\n\n若瀏覽器沒有提示您下載,或者您取消了下載,您可以點選下方連結重新下載:\n\n$3\n\n<strong>注意:</strong>如果您現在不下載此檔案,稍後結束安裝程式之後將無法再下載設定檔。\n\n當您完成本步驟後,您可以<strong>[$2 進入您的Wiki]</strong>。",
        "config-download-localsettings": "下載 <code>LocalSettings.php</code>",
        "config-help": "說明",
        "config-help-tooltip": "點選以展開",
        "config-nofile": "查無檔案 \"$1\",是否已被刪除?",
        "config-extension-link": "您是否了解您的 Wiki 支援 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions 擴充套件]?\n\n\n您可以瀏覽 [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category 擴充套件分類] 或 [https://www.mediawiki.org/wiki/Extension_Matrix 擴充套件資料表] 以取得相關的資訊。",
        "mainpagetext": "<strong>已安裝 MediaWiki。</strong>",
-       "mainpagedocfooter": "請參閱 [https://meta.wikimedia.org/wiki/Help:Contents 使用者手冊] 以取得使用 Wiki 的相關訊息!\n\n== 新手入門 ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki 系統設定]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 常見問答集]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵寄清單]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki 介面在地化]"
+       "mainpagedocfooter": "有關使用wiki的訊息,請參閱[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 MediaWiki常見問題]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki郵寄清單]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources 將MediaWiki翻譯至您的語言]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam 了解如何在您的wiki上防禦破壞]"
 }
index b0cd413..304f6c1 100644 (file)
@@ -65,4 +65,3 @@ abstract class EventRelayer implements LoggerAwareInterface {
         */
        abstract protected function doNotify( $channel, array $events );
 }
-
index e42d1a9..6ea3c21 100644 (file)
@@ -83,7 +83,7 @@ class MimeAnalyzer implements LoggerAwareInterface {
         * what will break? In practice this probably isn't a problem anyway -- Bryan)
         */
        protected static $wellKnownTypes = <<<EOT
-application/ogg ogx ogg ogm ogv oga spx
+application/ogg ogx ogg ogm ogv oga spx opus
 application/pdf pdf
 application/vnd.oasis.opendocument.chart odc
 application/vnd.oasis.opendocument.chart-template otc
@@ -108,7 +108,8 @@ audio/midi mid midi kar
 audio/mpeg mpga mpa mp2 mp3
 audio/x-aiff aif aiff aifc
 audio/x-wav wav
-audio/ogg oga spx ogg
+audio/ogg oga spx ogg opus
+audio/opus opus ogg oga ogg spx
 image/x-bmp bmp
 image/gif gif
 image/jpeg jpeg jpg jpe
@@ -526,7 +527,7 @@ EOT;
                        'xbm',
 
                        // Formats we recognize magic numbers for
-                       'djvu', 'ogx', 'ogg', 'ogv', 'oga', 'spx',
+                       'djvu', 'ogx', 'ogg', 'ogv', 'oga', 'spx', 'opus',
                        'mid', 'pdf', 'wmf', 'xcf', 'webm', 'mkv', 'mka',
                        'webp',
 
@@ -1054,6 +1055,8 @@ EOT;
                                return MEDIATYPE_AUDIO;
                        } elseif ( strpos( $head, 'speex' ) !== false ) {
                                return MEDIATYPE_AUDIO;
+                       } elseif ( strpos( $head, 'opus' ) !== false ) {
+                               return MEDIATYPE_AUDIO;
                        } else {
                                return MEDIATYPE_MULTIMEDIA;
                        }
index b04d3c6..5edd889 100644 (file)
@@ -35,6 +35,7 @@ audio/wav audio/x-wav audio/wave      [AUDIO]
 audio/midi audio/mid   [AUDIO]
 audio/basic            [AUDIO]
 audio/ogg              [AUDIO]
+audio/opus             [AUDIO]
 audio/x-aiff           [AUDIO]
 audio/x-pn-realaudio   [AUDIO]
 audio/x-realaudio      [AUDIO]
index b4f515a..f1cd59d 100644 (file)
@@ -72,6 +72,7 @@ audio/basic au snd
 audio/midi mid midi kar
 audio/mpeg mpga mp2 mp3
 audio/ogg oga ogg spx opus
+audio/opus opus oga ogg
 video/webm webm
 audio/webm webm
 audio/x-aiff aif aiff aifc
index 5d680e2..ceed7da 100644 (file)
@@ -1331,4 +1331,3 @@ abstract class DatabaseMysqlBase extends Database {
                return in_array( $name, $this->listViews( $prefix ) );
        }
 }
-
index 80e1924..500b2ef 100644 (file)
@@ -35,4 +35,3 @@ class MssqlField implements Field {
                return $this->type;
        }
 }
-
index 8cf964c..02d3589 100644 (file)
@@ -103,4 +103,3 @@ class MySQLField implements Field {
                return $this->is_zerofill;
        }
 }
-
index a493854..a33c84f 100644 (file)
@@ -391,10 +391,9 @@ class Article implements Page {
                // Avoid PHP 7.1 warning of passing $this by reference
                $articlePage = $this;
 
-               ContentHandler::runLegacyHooks(
+               Hooks::run(
                        'ArticleAfterFetchContentObject',
-                       [ &$articlePage, &$this->mContentObject ],
-                       '1.21'
+                       [ &$articlePage, &$this->mContentObject ]
                );
 
                return $this->mContentObject;
index 255e618..9356a3a 100644 (file)
  */
 
 use MediaWiki\MediaWikiServices;
+use MediaWiki\Widget\Search\BasicSearchResultSetWidget;
+use MediaWiki\Widget\Search\InterwikiSearchResultSetWidget;
+use MediaWiki\Widget\Search\FullSearchResultWidget;
+use MediaWiki\Widget\Search\SimpleSearchResultWidget;
 
 /**
  * implements Special:Search - Run text & title search and display the output
@@ -75,12 +79,6 @@ class SpecialSearch extends SpecialPage {
         */
        protected $runSuggestion = true;
 
-       /**
-        * Names of the wikis, in format: Interwiki prefix -> caption
-        * @var array
-        */
-       protected $customCaptions;
-
        /**
         * Search engine configurations.
         * @var SearchEngineConfig
@@ -101,35 +99,29 @@ class SpecialSearch extends SpecialPage {
         */
        public function execute( $par ) {
                $request = $this->getRequest();
+               $out = $this->getOutput();
 
                // Fetch the search term
-               $search = str_replace( "\n", " ", $request->getText( 'search' ) );
+               $term = str_replace( "\n", " ", $request->getText( 'search' ) );
 
                // Historically search terms have been accepted not only in the search query
                // parameter, but also as part of the primary url. This can have PII implications
                // in releasing page view data. As such issue a 301 redirect to the correct
                // URL.
-               if ( strlen( $par ) && !strlen( $search ) ) {
+               if ( strlen( $par ) && !strlen( $term ) ) {
                        $query = $request->getValues();
                        unset( $query['title'] );
                        // Strip underscores from title parameter; most of the time we'll want
                        // text form here. But don't strip underscores from actual text params!
                        $query['search'] = str_replace( '_', ' ', $par );
-                       $this->getOutput()->redirect( $this->getPageTitle()->getFullURL( $query ), 301 );
+                       $out->redirect( $this->getPageTitle()->getFullURL( $query ), 301 );
                        return;
                }
 
-               $this->setHeaders();
-               $this->outputHeader();
-               $out = $this->getOutput();
-               $out->allowClickjacking();
-               $out->addModuleStyles( [
-                       'mediawiki.special', 'mediawiki.special.search.styles', 'mediawiki.ui', 'mediawiki.ui.button',
-                       'mediawiki.ui.input', 'mediawiki.widgets.SearchInputWidget.styles',
-               ] );
-               $this->addHelpLink( 'Help:Searching' );
-
+               // Need to load selected namespaces before handling nsRemember
                $this->load();
+               // TODO: This performs database actions on GET request, which is going to
+               // be a problem for our multi-datacenter work.
                if ( !is_null( $request->getVal( 'nsRemember' ) ) ) {
                        $this->saveNamespaces();
                        // Remove the token from the URL to prevent the user from inadvertently
@@ -141,16 +133,48 @@ class SpecialSearch extends SpecialPage {
                        return;
                }
 
-               $out->addJsConfigVars( [ 'searchTerm' => $search ] );
                $this->searchEngineType = $request->getVal( 'srbackend' );
-
-               if ( $request->getVal( 'fulltext' )
-                       || !is_null( $request->getVal( 'offset' ) )
+               if (
+                       !$request->getVal( 'fulltext' ) &&
+                       $request->getVal( 'offset' ) === null
                ) {
-                       $this->showResults( $search );
-               } else {
-                       $this->goResult( $search );
+                       $url = $this->goResult( $term );
+                       if ( $url !== null ) {
+                               // successful 'go'
+                               $out->redirect( $url );
+                               return;
+                       }
+               }
+
+               $this->setupPage( $term );
+
+               if ( $this->getConfig()->get( 'DisableTextSearch' ) ) {
+                       $searchForwardUrl = $this->getConfig()->get( 'SearchForwardUrl' );
+                       if ( $searchForwardUrl ) {
+                               $url = str_replace( '$1', urlencode( $term ), $searchForwardUrl );
+                               $out->redirect( $url );
+                       } else {
+                               $out->addHTML(
+                                       "<fieldset>" .
+                                               "<legend>" .
+                                                       $this->msg( 'search-external' )->escaped() .
+                                               "</legend>" .
+                                               "<p class='mw-searchdisabled'>" .
+                                                       $this->msg( 'searchdisabled' )->escaped() .
+                                               "</p>" .
+                                               $this->msg( 'googlesearch' )->rawParams(
+                                                       htmlspecialchars( $term ),
+                                                       'UTF-8',
+                                                       $this->msg( 'searchbutton' )->escaped()
+                                               )->text() .
+                                       "</fieldset>"
+                               );
+                       }
+
+                       return;
                }
+
+               $this->showResults( $term );
        }
 
        /**
@@ -209,32 +233,25 @@ class SpecialSearch extends SpecialPage {
         * If an exact title match can be found, jump straight ahead to it.
         *
         * @param string $term
+        * @return string|null The url to redirect to, or null if no redirect.
         */
        public function goResult( $term ) {
-               $this->setupPage( $term );
-               # Try to go to page as entered.
-               $title = Title::newFromText( $term );
                # If the string cannot be used to create a title
-               if ( is_null( $title ) ) {
-                       $this->showResults( $term );
-
-                       return;
+               if ( is_null( Title::newFromText( $term ) ) ) {
+                       return null;
                }
                # If there's an exact or very near match, jump right there.
                $title = $this->getSearchEngine()
                        ->getNearMatcher( $this->getConfig() )->getNearMatch( $term );
-
-               if ( !is_null( $title ) &&
-                       Hooks::run( 'SpecialSearchGoResult', [ $term, $title, &$url ] )
-               ) {
-                       if ( $url === null ) {
-                               $url = $title->getFullURL();
-                       }
-                       $this->getOutput()->redirect( $url );
-
-                       return;
+               if ( is_null( $title ) ) {
+                       return null;
                }
-               $this->showResults( $term );
+               $url = null;
+               if ( !Hooks::run( 'SpecialSearchGoResult', [ $term, $title, &$url ] ) ) {
+                       return null;
+               }
+
+               return $url === null ? $title->getFullURL() : $url;
        }
 
        /**
@@ -243,6 +260,33 @@ class SpecialSearch extends SpecialPage {
        public function showResults( $term ) {
                global $wgContLang;
 
+               if ( $this->searchEngineType !== null ) {
+                       $this->setExtraParam( 'srbackend', $this->searchEngineType );
+               }
+
+               $out = $this->getOutput();
+               $formWidget = new MediaWiki\Widget\Search\SearchFormWidget(
+                       $this,
+                       $this->searchConfig,
+                       $this->getSearchProfiles()
+               );
+               $filePrefix = $wgContLang->getFormattedNsText( NS_FILE ) . ':';
+               if ( trim( $term ) === '' || $filePrefix === trim( $term ) ) {
+                       // Empty query -- straight view of search form
+                       if ( !Hooks::run( 'SpecialSearchResultsPrepend', [ $this, $out, $term ] ) ) {
+                               # Hook requested termination
+                               return;
+                       }
+                       $out->enableOOUI();
+                       // The form also contains the 'Showing results 0 - 20 of 1234' so we can
+                       // only do the form render here for the empty $term case. Rendering
+                       // the form when a search is provided is repeated below.
+                       $out->addHTML( $formWidget->render(
+                               $this->profile, $term, 0, 0, $this->offset, $this->isPowerSearch()
+                       ) );
+                       return;
+               }
+
                $search = $this->getSearchEngine();
                $search->setFeatureData( 'rewrite', $this->runSuggestion );
                $search->setLimitOffset( $this->limit, $this->offset );
@@ -251,34 +295,8 @@ class SpecialSearch extends SpecialPage {
                $term = $search->transformSearchTerm( $term );
 
                Hooks::run( 'SpecialSearchSetupEngine', [ $this, $this->profile, $search ] );
-
-               $this->setupPage( $term );
-
-               $out = $this->getOutput();
-
-               if ( $this->getConfig()->get( 'DisableTextSearch' ) ) {
-                       $searchFowardUrl = $this->getConfig()->get( 'SearchForwardUrl' );
-                       if ( $searchFowardUrl ) {
-                               $url = str_replace( '$1', urlencode( $term ), $searchFowardUrl );
-                               $out->redirect( $url );
-                       } else {
-                               $out->addHTML(
-                                       Xml::openElement( 'fieldset' ) .
-                                       Xml::element( 'legend', null, $this->msg( 'search-external' )->text() ) .
-                                       Xml::element(
-                                               'p',
-                                               [ 'class' => 'mw-searchdisabled' ],
-                                               $this->msg( 'searchdisabled' )->text()
-                                       ) .
-                                       $this->msg( 'googlesearch' )->rawParams(
-                                               htmlspecialchars( $term ),
-                                               'UTF-8',
-                                               $this->msg( 'searchbutton' )->escaped()
-                                       )->text() .
-                                       Xml::closeElement( 'fieldset' )
-                               );
-                       }
-
+               if ( !Hooks::run( 'SpecialSearchResultsPrepend', [ $this, $out, $term ] ) ) {
+                       # Hook requested termination
                        return;
                }
 
@@ -298,33 +316,6 @@ class SpecialSearch extends SpecialPage {
                        $textMatches = $textStatus->getValue();
                }
 
-               // did you mean... suggestions
-               $didYouMeanHtml = '';
-               if ( $showSuggestion && $textMatches ) {
-                       if ( $textMatches->hasRewrittenQuery() ) {
-                               $didYouMeanHtml = $this->getDidYouMeanRewrittenHtml( $term, $textMatches );
-                       } elseif ( $textMatches->hasSuggestion() ) {
-                               $didYouMeanHtml = $this->getDidYouMeanHtml( $textMatches );
-                       }
-               }
-
-               if ( !Hooks::run( 'SpecialSearchResultsPrepend', [ $this, $out, $term ] ) ) {
-                       # Hook requested termination
-                       return;
-               }
-
-               // start rendering the page
-               $out->addHTML(
-                       Xml::openElement(
-                               'form',
-                               [
-                                       'id' => ( $this->isPowerSearch() ? 'powersearch' : 'search' ),
-                                       'method' => 'get',
-                                       'action' => wfScript(),
-                               ]
-                       )
-               );
-
                // Get number of results
                $titleMatchesNum = $textMatchesNum = $numTitleMatches = $numTextMatches = 0;
                if ( $titleMatches ) {
@@ -334,33 +325,31 @@ class SpecialSearch extends SpecialPage {
                if ( $textMatches ) {
                        $textMatchesNum = $textMatches->numRows();
                        $numTextMatches = $textMatches->getTotalHits();
+                       if ( $textMatchesNum > 0 ) {
+                               $search->augmentSearchResults( $textMatches );
+                       }
                }
                $num = $titleMatchesNum + $textMatchesNum;
                $totalRes = $numTitleMatches + $numTextMatches;
 
+               // start rendering the page
                $out->enableOOUI();
-               $out->addHTML(
-                       # This is an awful awful ID name. It's not a table, but we
-                       # named it poorly from when this was a table so now we're
-                       # stuck with it
-                       Xml::openElement( 'div', [ 'id' => 'mw-search-top-table' ] ) .
-                       $this->shortDialog( $term, $num, $totalRes ) .
-                       Xml::closeElement( 'div' ) .
-                       $this->searchProfileTabs( $term ) .
-                       $this->searchOptions( $term ) .
-                       Xml::closeElement( 'form' ) .
-                       $didYouMeanHtml
-               );
+               $out->addHTML( $formWidget->render(
+                       $this->profile, $term, $num, $totalRes, $this->offset, $this->isPowerSearch()
+               ) );
 
-               $filePrefix = $wgContLang->getFormattedNsText( NS_FILE ) . ':';
-               if ( trim( $term ) === '' || $filePrefix === trim( $term ) ) {
-                       // Empty query -- straight view of search form
-                       return;
+               // did you mean... suggestions
+               if ( $textMatches ) {
+                       $dymWidget = new MediaWiki\Widget\Search\DidYouMeanWidget( $this );
+                       $out->addHTML( $dymWidget->render( $term, $textMatches ) );
                }
 
                $out->addHTML( "<div class='searchresults'>" );
 
                $hasErrors = $textStatus && $textStatus->getErrors();
+               $hasOtherResults = $textMatches &&
+                       $textMatches->hasInterwikiResults( SearchResultSet::INLINE_RESULTS );
+
                if ( $hasErrors ) {
                        list( $error, $warning ) = $textStatus->splitByErrorType();
                        if ( $error->getErrors() ) {
@@ -379,83 +368,38 @@ class SpecialSearch extends SpecialPage {
                        }
                }
 
-               // prev/next links
-               $prevnext = null;
-               if ( $num || $this->offset ) {
-                       // Show the create link ahead
-                       $this->showCreateLink( $title, $num, $titleMatches, $textMatches );
-                       if ( $totalRes > $this->limit || $this->offset ) {
-                               if ( $this->searchEngineType !== null ) {
-                                       $this->setExtraParam( 'srbackend', $this->searchEngineType );
-                               }
-                               $prevnext = $this->getLanguage()->viewPrevNext(
-                                       $this->getPageTitle(),
-                                       $this->offset,
-                                       $this->limit,
-                                       $this->powerSearchOptions() + [ 'search' => $term ],
-                                       $this->limit + $this->offset >= $totalRes
-                               );
-                       }
-               }
-               Hooks::run( 'SpecialSearchResults', [ $term, &$titleMatches, &$textMatches ] );
-
-               $out->parserOptions()->setEditSection( false );
-               if ( $titleMatches ) {
-                       if ( $numTitleMatches > 0 ) {
-                               $out->wrapWikiMsg( "==$1==\n", 'titlematches' );
-                               $out->addHTML( $this->showMatches( $titleMatches ) );
-                       }
-                       $titleMatches->free();
-               }
-
-               if ( $textMatches ) {
-                       // output appropriate heading
-                       if ( $numTextMatches > 0 && $numTitleMatches > 0 ) {
-                               $out->addHTML( '<div class="mw-search-visualclear"></div>' );
-                               // if no title matches the heading is redundant
-                               $out->wrapWikiMsg( "==$1==\n", 'textmatches' );
-                       }
-
-                       // show results
-                       if ( $numTextMatches > 0 ) {
-                               $search->augmentSearchResults( $textMatches );
-                               $out->addHTML( $this->showMatches( $textMatches ) );
-                       }
-
-                       // show secondary interwiki results if any
-                       if ( $textMatches->hasInterwikiResults( SearchResultSet::SECONDARY_RESULTS ) ) {
-                               $out->addHTML( $this->showInterwiki( $textMatches->getInterwikiResults(
-                                               SearchResultSet::SECONDARY_RESULTS ), $term ) );
-                       }
-               }
+               // Show the create link ahead
+               $this->showCreateLink( $title, $num, $titleMatches, $textMatches );
 
-               $hasOtherResults = $textMatches &&
-                       $textMatches->hasInterwikiResults( SearchResultSet::INLINE_RESULTS );
+               Hooks::run( 'SpecialSearchResults', [ $term, $titleMatches, $textMatches ] );
 
-               // If we have no results and we have not already displayed an error message
+               // If we have no results and have not already displayed an error message
                if ( $num === 0 && !$hasErrors ) {
-                       if ( !$this->offset ) {
-                               // If we have an offset the create link was rendered earlier in this function.
-                               // This class needs a good de-spaghettification, but for now this will
-                               // do the job.
-                               $this->showCreateLink( $title, $num, $titleMatches, $textMatches );
-                       }
                        $out->wrapWikiMsg( "<p class=\"mw-search-nonefound\">\n$1</p>", [
                                $hasOtherResults ? 'search-nonefound-thiswiki' : 'search-nonefound',
                                wfEscapeWikiText( $term )
                        ] );
                }
 
-               if ( $hasOtherResults ) {
-                       foreach ( $textMatches->getInterwikiResults( SearchResultSet::INLINE_RESULTS )
-                                               as $interwiki => $interwikiResult ) {
-                               if ( $interwikiResult instanceof Status || $interwikiResult->numRows() == 0 ) {
-                                       // ignore bad interwikis for now
-                                       continue;
-                               }
-                               // TODO: wiki header
-                               $out->addHTML( $this->showMatches( $interwikiResult, $interwiki ) );
-                       }
+               // Although $num might be 0 there can still be secondary or inline
+               // results to display.
+               $linkRenderer = $this->getLinkRenderer();
+               $mainResultWidget = new FullSearchResultWidget( $this, $linkRenderer );
+               $sidebarResultWidget = new SimpleSearchResultWidget( $this, $linkRenderer );
+               $sidebarResultsWidget = new InterwikiSearchResultSetWidget(
+                       $this,
+                       $sidebarResultWidget,
+                       $linkRenderer,
+                       MediaWikiServices::getInstance()->getInterwikiLookup()
+               );
+               $widget = new BasicSearchResultSetWidget( $this, $mainResultWidget, $sidebarResultsWidget );
+
+               $out->addHTML( $widget->render(
+                       $term, $this->offset, $titleMatches, $textMatches
+               ) );
+
+               if ( $titleMatches ) {
+                       $titleMatches->free();
                }
 
                if ( $textMatches ) {
@@ -464,114 +408,24 @@ class SpecialSearch extends SpecialPage {
 
                $out->addHTML( '<div class="mw-search-visualclear"></div>' );
 
-               if ( $prevnext ) {
+               // prev/next links
+               if ( $totalRes > $this->limit || $this->offset ) {
+                       $prevnext = $this->getLanguage()->viewPrevNext(
+                               $this->getPageTitle(),
+                               $this->offset,
+                               $this->limit,
+                               $this->powerSearchOptions() + [ 'search' => $term ],
+                               $this->limit + $this->offset >= $totalRes
+                       );
                        $out->addHTML( "<p class='mw-search-pager-bottom'>{$prevnext}</p>\n" );
                }
 
+               // Close <div class='searchresults'>
                $out->addHTML( "</div>" );
 
                Hooks::run( 'SpecialSearchResultsAppend', [ $this, $out, $term ] );
        }
 
-       /**
-        * Produce wiki header for interwiki results
-        * @param string $interwiki Interwiki name
-        * @param SearchResultSet $interwikiResult The result set
-        * @return string
-        */
-       protected function interwikiHeader( $interwiki, $interwikiResult ) {
-               // TODO: we need to figure out how to name wikis correctly
-               $wikiMsg = $this->msg( 'search-interwiki-results-' . $interwiki )->parse();
-               return "<p class=\"mw-search-interwiki-header mw-search-visualclear\">\n$wikiMsg</p>";
-       }
-
-       /**
-        * Generates HTML shown to the user when we have a suggestion about a query
-        * that might give more results than their current query.
-        */
-       protected function getDidYouMeanHtml( SearchResultSet $textMatches ) {
-               # mirror Go/Search behavior of original request ..
-               $params = [ 'search' => $textMatches->getSuggestionQuery() ];
-               if ( $this->fulltext === null ) {
-                       $params['fulltext'] = 'Search';
-               } else {
-                       $params['fulltext'] = $this->fulltext;
-               }
-               $stParams = array_merge( $params, $this->powerSearchOptions() );
-
-               $linkRenderer = $this->getLinkRenderer();
-
-               $snippet = $textMatches->getSuggestionSnippet() ?: null;
-               if ( $snippet !== null ) {
-                       $snippet = new HtmlArmor( $snippet );
-               }
-
-               $suggest = $linkRenderer->makeKnownLink(
-                       $this->getPageTitle(),
-                       $snippet,
-                       [ 'id' => 'mw-search-DYM-suggestion' ],
-                       $stParams
-               );
-
-               # HTML of did you mean... search suggestion link
-               return Html::rawElement(
-                       'div',
-                       [ 'class' => 'searchdidyoumean' ],
-                       $this->msg( 'search-suggest' )->rawParams( $suggest )->parse()
-               );
-       }
-
-       /**
-        * Generates HTML shown to user when their query has been internally rewritten,
-        * and the results of the rewritten query are being returned.
-        *
-        * @param string $term The users search input
-        * @param SearchResultSet $textMatches The response to the users initial search request
-        * @return string HTML linking the user to their original $term query, and the one
-        *  suggested by $textMatches.
-        */
-       protected function getDidYouMeanRewrittenHtml( $term, SearchResultSet $textMatches ) {
-               // Showing results for '$rewritten'
-               // Search instead for '$orig'
-
-               $params = [ 'search' => $textMatches->getQueryAfterRewrite() ];
-               if ( $this->fulltext === null ) {
-                       $params['fulltext'] = 'Search';
-               } else {
-                       $params['fulltext'] = $this->fulltext;
-               }
-               $stParams = array_merge( $params, $this->powerSearchOptions() );
-
-               $linkRenderer = $this->getLinkRenderer();
-
-               $snippet = $textMatches->getQueryAfterRewriteSnippet() ?: null;
-               if ( $snippet !== null ) {
-                       $snippet = new HtmlArmor( $snippet );
-               }
-
-               $rewritten = $linkRenderer->makeKnownLink(
-                       $this->getPageTitle(),
-                       $snippet,
-                       [ 'id' => 'mw-search-DYM-rewritten' ],
-                       $stParams
-               );
-
-               $stParams['search'] = $term;
-               $stParams['runsuggestion'] = 0;
-               $original = $linkRenderer->makeKnownLink(
-                       $this->getPageTitle(),
-                       $term,
-                       [ 'id' => 'mw-search-DYM-original' ],
-                       $stParams
-               );
-
-               return Html::rawElement(
-                       'div',
-                       [ 'class' => 'searchdidyoumean' ],
-                       $this->msg( 'search-rewritten' )->rawParams( $rewritten, $original )->escaped()
-               );
-       }
-
        /**
         * @param Title $title
         * @param int $num The number of search results found
@@ -622,10 +476,21 @@ class SpecialSearch extends SpecialPage {
        }
 
        /**
+        * Sets up everything for the HTML output page including styles, javascript,
+        * page title, etc.
+        *
         * @param string $term
         */
        protected function setupPage( $term ) {
                $out = $this->getOutput();
+
+               $this->setHeaders();
+               $this->outputHeader();
+               // TODO: Is this true? The namespace remember uses a user token
+               // on save.
+               $out->allowClickjacking();
+               $this->addHelpLink( 'Help:Searching' );
+
                if ( strval( $term ) !== '' ) {
                        $out->setPageTitle( $this->msg( 'searchresults' ) );
                        $out->setHTMLTitle( $this->msg( 'pagetitle' )
@@ -633,8 +498,13 @@ class SpecialSearch extends SpecialPage {
                                ->inContentLanguage()->text()
                        );
                }
-               // add javascript specific to special:search
+
+               $out->addJsConfigVars( [ 'searchTerm' => $term ] );
                $out->addModules( 'mediawiki.special.search' );
+               $out->addModuleStyles( [
+                       'mediawiki.special', 'mediawiki.special.search.styles', 'mediawiki.ui', 'mediawiki.ui.button',
+                       'mediawiki.ui.input', 'mediawiki.widgets.SearchInputWidget.styles',
+               ] );
        }
 
        /**
@@ -666,17 +536,19 @@ class SpecialSearch extends SpecialPage {
 
        /**
         * Reconstruct the 'power search' options for links
+        * TODO: Instead of exposing this publicly, could we instead expose
+        *  a function for creating search links?
         *
         * @return array
         */
-       protected function powerSearchOptions() {
+       public function powerSearchOptions() {
                $opt = [];
-               if ( !$this->isPowerSearch() ) {
-                       $opt['profile'] = $this->profile;
-               } else {
+               if ( $this->isPowerSearch() ) {
                        foreach ( $this->namespaces as $n ) {
                                $opt['ns' . $n] = 1;
                        }
+               } else {
+                       $opt['profile'] = $this->profile;
                }
 
                return $opt + $this->extraParams;
@@ -719,236 +591,6 @@ class SpecialSearch extends SpecialPage {
                return false;
        }
 
-       /**
-        * Show whole set of results
-        *
-        * @param SearchResultSet $matches
-        * @param string $interwiki Interwiki name
-        *
-        * @return string
-        */
-       protected function showMatches( $matches, $interwiki = null ) {
-               global $wgContLang;
-
-               $terms = $wgContLang->convertForSearchResult( $matches->termMatches() );
-               $out = '';
-               $result = $matches->next();
-               $pos = $this->offset;
-
-               if ( $result && $interwiki ) {
-                       $out .= $this->interwikiHeader( $interwiki, $matches );
-               }
-
-               $out .= "<ul class='mw-search-results'>\n";
-               $widget = new \MediaWiki\Widget\Search\FullSearchResultWidget(
-                       $this,
-                       $this->getLinkRenderer()
-               );
-               while ( $result ) {
-                       $out .= $widget->render( $result, $terms, $pos++ );
-                       $result = $matches->next();
-               }
-               $out .= "</ul>\n";
-
-               // convert the whole thing to desired language variant
-               $out = $wgContLang->convert( $out );
-
-               return $out;
-       }
-
-       /**
-        * Extract custom captions from search-interwiki-custom message
-        */
-       protected function getCustomCaptions() {
-               if ( is_null( $this->customCaptions ) ) {
-                       $this->customCaptions = [];
-                       // format per line <iwprefix>:<caption>
-                       $customLines = explode( "\n", $this->msg( 'search-interwiki-custom' )->text() );
-                       foreach ( $customLines as $line ) {
-                               $parts = explode( ":", $line, 2 );
-                               if ( count( $parts ) == 2 ) { // validate line
-                                       $this->customCaptions[$parts[0]] = $parts[1];
-                               }
-                       }
-               }
-       }
-
-       /**
-        * Show results from other wikis
-        *
-        * @param SearchResultSet|array $matches
-        * @param string $terms
-        *
-        * @return string
-        */
-       protected function showInterwiki( $matches, $terms ) {
-               global $wgContLang;
-
-               // work out custom project captions
-               $this->getCustomCaptions();
-
-               if ( !is_array( $matches ) ) {
-                       $matches = [ $matches ];
-               }
-
-               $iwResults = [];
-               foreach ( $matches as $set ) {
-                       $result = $set->next();
-                       while ( $result ) {
-                               if ( !$result->isBrokenTitle() ) {
-                                       $iwResults[$result->getTitle()->getInterwiki()][] = $result;
-                               }
-                               $result = $set->next();
-                       }
-               }
-
-               $out = '';
-               $widget = new MediaWiki\Widget\Search\SimpleSearchResultWidget(
-                       $this,
-                       $this->getLinkRenderer()
-               );
-               foreach ( $iwResults as $iwPrefix => $results ) {
-                       $out .= $this->iwHeaderHtml( $iwPrefix, $terms );
-                       $out .= "<ul class='mw-search-iwresults'>";
-                       foreach ( $results as $result ) {
-                               // This makes the bold asumption interwiki results are never paginated.
-                               // That's currently true, but could change at some point?
-                               $out .= $widget->render( $result, $terms, 0 );
-                       }
-                       $out .= "</ul>";
-               }
-
-               $out =
-                       "<div id='mw-search-interwiki'>" .
-                               "<div id='mw-search-interwiki-caption'>" .
-                                       $this->msg( 'search-interwiki-caption' )->escaped() .
-                               "</div>" .
-                               $out .
-                       "</div>";
-
-               // convert the whole thing to desired language variant
-               return $wgContLang->convert( $out );
-       }
-
-       /**
-        * @param string $iwPrefix The interwiki prefix to render a header for
-        * @param string $terms The user-provided search terms
-        */
-       protected function iwHeaderHtml( $iwPrefix, $terms ) {
-               if ( isset( $this->customCaptions[$iwPrefix] ) ) {
-                       $caption = $this->customCaptions[$iwPrefix];
-               } else {
-                       $iwLookup = MediaWiki\MediaWikiServices::getInstance()->getInterwikiLookup();
-                       $interwiki = $iwLookup->fetch( $iwPrefix );
-                       $parsed = wfParseUrl( wfExpandUrl( $interwiki ? $interwiki->getURL() : '/' ) );
-                       $caption = $this->msg( 'search-interwiki-default', $parsed['host'] )->text();
-               }
-               $searchLink = Linker::linkKnown(
-                       Title::newFromText( "$iwPrefix:Special:Search" ),
-                       $this->msg( 'search-interwiki-more' )->text(),
-                       [],
-                       [
-                               'search' => $terms,
-                               'fulltext' => 1,
-                       ]
-               );
-               return
-                       "<div class='mw-search-interwiki-project'>" .
-                               "<span class='mw-search-interwiki-more'>{$searchLink}</span>" .
-                               $caption .
-                       "</div>";
-       }
-
-       /**
-        * Generates the power search box at [[Special:Search]]
-        *
-        * @param string $term Search term
-        * @param array $opts
-        * @return string HTML form
-        */
-       protected function powerSearchBox( $term, $opts ) {
-               global $wgContLang;
-
-               // Groups namespaces into rows according to subject
-               $rows = [];
-               foreach ( $this->searchConfig->searchableNamespaces() as $namespace => $name ) {
-                       $subject = MWNamespace::getSubject( $namespace );
-                       if ( !array_key_exists( $subject, $rows ) ) {
-                               $rows[$subject] = "";
-                       }
-
-                       $name = $wgContLang->getConverter()->convertNamespace( $namespace );
-                       if ( $name == '' ) {
-                               $name = $this->msg( 'blanknamespace' )->text();
-                       }
-
-                       $rows[$subject] .=
-                               Xml::openElement( 'td' ) .
-                               Xml::checkLabel(
-                                       $name,
-                                       "ns{$namespace}",
-                                       "mw-search-ns{$namespace}",
-                                       in_array( $namespace, $this->namespaces )
-                               ) .
-                               Xml::closeElement( 'td' );
-               }
-
-               $rows = array_values( $rows );
-               $numRows = count( $rows );
-
-               // Lays out namespaces in multiple floating two-column tables so they'll
-               // be arranged nicely while still accommodating different screen widths
-               $namespaceTables = '';
-               for ( $i = 0; $i < $numRows; $i += 4 ) {
-                       $namespaceTables .= Xml::openElement( 'table' );
-
-                       for ( $j = $i; $j < $i + 4 && $j < $numRows; $j++ ) {
-                               $namespaceTables .= Xml::tags( 'tr', null, $rows[$j] );
-                       }
-
-                       $namespaceTables .= Xml::closeElement( 'table' );
-               }
-
-               $showSections = [ 'namespaceTables' => $namespaceTables ];
-
-               Hooks::run( 'SpecialSearchPowerBox', [ &$showSections, $term, $opts ] );
-
-               $hidden = '';
-               foreach ( $opts as $key => $value ) {
-                       $hidden .= Html::hidden( $key, $value );
-               }
-
-               # Stuff to feed saveNamespaces()
-               $remember = '';
-               $user = $this->getUser();
-               if ( $user->isLoggedIn() ) {
-                       $remember .= Xml::checkLabel(
-                               $this->msg( 'powersearch-remember' )->text(),
-                               'nsRemember',
-                               'mw-search-powersearch-remember',
-                               false,
-                               // The token goes here rather than in a hidden field so it
-                               // is only sent when necessary (not every form submission).
-                               [ 'value' => $user->getEditToken(
-                                       'searchnamespace',
-                                       $this->getRequest()
-                               ) ]
-                       );
-               }
-
-               // Return final output
-               return Xml::openElement( 'fieldset', [ 'id' => 'mw-searchoptions' ] ) .
-                       Xml::element( 'legend', null, $this->msg( 'powersearch-legend' )->text() ) .
-                       Xml::tags( 'h4', null, $this->msg( 'powersearch-ns' )->parse() ) .
-                       Xml::element( 'div', [ 'id' => 'mw-search-togglebox' ], '', false ) .
-                       Xml::element( 'div', [ 'class' => 'divider' ], '', false ) .
-                       implode( Xml::element( 'div', [ 'class' => 'divider' ], '', false ), $showSections ) .
-                       $hidden .
-                       Xml::element( 'div', [ 'class' => 'divider' ], '', false ) .
-                       $remember .
-                       Xml::closeElement( 'fieldset' );
-       }
-
        /**
         * @return array
         */
@@ -994,169 +636,6 @@ class SpecialSearch extends SpecialPage {
                return $profiles;
        }
 
-       /**
-        * @param string $term
-        * @return string
-        */
-       protected function searchProfileTabs( $term ) {
-               $out = Html::element( 'div', [ 'class' => 'mw-search-visualclear' ] ) .
-                       Xml::openElement( 'div', [ 'class' => 'mw-search-profile-tabs' ] );
-
-               $bareterm = $term;
-               if ( $this->startsWithImage( $term ) ) {
-                       // Deletes prefixes
-                       $bareterm = substr( $term, strpos( $term, ':' ) + 1 );
-               }
-
-               $profiles = $this->getSearchProfiles();
-               $lang = $this->getLanguage();
-
-               // Outputs XML for Search Types
-               $out .= Xml::openElement( 'div', [ 'class' => 'search-types' ] );
-               $out .= Xml::openElement( 'ul' );
-               foreach ( $profiles as $id => $profile ) {
-                       if ( !isset( $profile['parameters'] ) ) {
-                               $profile['parameters'] = [];
-                       }
-                       $profile['parameters']['profile'] = $id;
-
-                       $tooltipParam = isset( $profile['namespace-messages'] ) ?
-                               $lang->commaList( $profile['namespace-messages'] ) : null;
-                       $out .= Xml::tags(
-                               'li',
-                               [
-                                       'class' => $this->profile === $id ? 'current' : 'normal'
-                               ],
-                               $this->makeSearchLink(
-                                       $bareterm,
-                                       [],
-                                       $this->msg( $profile['message'] )->text(),
-                                       $this->msg( $profile['tooltip'], $tooltipParam )->text(),
-                                       $profile['parameters']
-                               )
-                       );
-               }
-               $out .= Xml::closeElement( 'ul' );
-               $out .= Xml::closeElement( 'div' );
-               $out .= Xml::element( 'div', [ 'style' => 'clear:both' ], '', false );
-               $out .= Xml::closeElement( 'div' );
-
-               return $out;
-       }
-
-       /**
-        * @param string $term Search term
-        * @return string
-        */
-       protected function searchOptions( $term ) {
-               $out = '';
-               $opts = [];
-               $opts['profile'] = $this->profile;
-
-               if ( $this->isPowerSearch() ) {
-                       $out .= $this->powerSearchBox( $term, $opts );
-               } else {
-                       $form = '';
-                       Hooks::run( 'SpecialSearchProfileForm', [ $this, &$form, $this->profile, $term, $opts ] );
-                       $out .= $form;
-               }
-
-               return $out;
-       }
-
-       /**
-        * @param string $term
-        * @param int $resultsShown
-        * @param int $totalNum
-        * @return string
-        */
-       protected function shortDialog( $term, $resultsShown, $totalNum ) {
-               $searchWidget = new MediaWiki\Widget\SearchInputWidget( [
-                       'id' => 'searchText',
-                       'name' => 'search',
-                       'autofocus' => trim( $term ) === '',
-                       'value' => $term,
-                       'dataLocation' => 'content',
-                       'infusable' => true,
-               ] );
-
-               $layout = new OOUI\ActionFieldLayout( $searchWidget, new OOUI\ButtonInputWidget( [
-                       'type' => 'submit',
-                       'label' => $this->msg( 'searchbutton' )->text(),
-                       'flags' => [ 'progressive', 'primary' ],
-               ] ), [
-                       'align' => 'top',
-               ] );
-
-               $out =
-                       Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() ) .
-                       Html::hidden( 'profile', $this->profile ) .
-                       Html::hidden( 'fulltext', 'Search' ) .
-                       $layout;
-
-               // Results-info
-               if ( $totalNum > 0 && $this->offset < $totalNum ) {
-                       $top = $this->msg( 'search-showingresults' )
-                               ->numParams( $this->offset + 1, $this->offset + $resultsShown, $totalNum )
-                               ->numParams( $resultsShown )
-                               ->parse();
-                       $out .= Xml::tags( 'div', [ 'class' => 'results-info' ], $top );
-               }
-
-               return $out;
-       }
-
-       /**
-        * Make a search link with some target namespaces
-        *
-        * @param string $term
-        * @param array $namespaces Ignored
-        * @param string $label Link's text
-        * @param string $tooltip Link's tooltip
-        * @param array $params Query string parameters
-        * @return string HTML fragment
-        */
-       protected function makeSearchLink( $term, $namespaces, $label, $tooltip, $params = [] ) {
-               $opt = $params;
-               foreach ( $namespaces as $n ) {
-                       $opt['ns' . $n] = 1;
-               }
-
-               $stParams = array_merge(
-                       [
-                               'search' => $term,
-                               'fulltext' => $this->msg( 'search' )->text()
-                       ],
-                       $opt
-               );
-
-               return Xml::element(
-                       'a',
-                       [
-                               'href' => $this->getPageTitle()->getLocalURL( $stParams ),
-                               'title' => $tooltip
-                       ],
-                       $label
-               );
-       }
-
-       /**
-        * Check if query starts with image: prefix
-        *
-        * @param string $term The string to check
-        * @return bool
-        */
-       protected function startsWithImage( $term ) {
-               global $wgContLang;
-
-               $parts = explode( ':', $term );
-               if ( count( $parts ) > 1 ) {
-                       return $wgContLang->getNsIndex( $parts[0] ) == NS_FILE;
-               }
-
-               return false;
-       }
-
        /**
         * @since 1.18
         *
index 3342c32..a7a1c58 100644 (file)
@@ -95,8 +95,9 @@ class SpecialStatistics extends SpecialPage {
                        if ( !$msg->isDisabled() ) {
                                $descriptionHtml = $this->msg( 'parentheses' )->rawParams( $msg->parse() )
                                        ->escaped();
-                               $text .= "<br />" . Html::rawElement( 'small', [ 'class' => 'mw-statistic-desc' ],
-                                       " $descriptionHtml" );
+                               $text .= "<br />" .
+                                         Html::rawElement( 'small', [ 'class' => 'mw-statistic-desc' ],
+                                                                               " $descriptionHtml" );
                        }
                }
 
@@ -119,8 +120,10 @@ class SpecialStatistics extends SpecialPage {
                        Xml::tags( 'th', [ 'colspan' => '2' ], $this->msg( 'statistics-header-pages' )
                                ->parse() ) .
                        Xml::closeElement( 'tr' ) .
-                               $this->formatRow( $linkRenderer->makeKnownLink( $specialAllPagesTitle,
-                                       $this->msg( 'statistics-articles' )->text(), [], [ 'hideredirects' => 1 ] ),
+                               $this->formatRow( $linkRenderer->makeKnownLink(
+                                       $specialAllPagesTitle,
+                                       $this->msg( 'statistics-articles' )->text(),
+                                       [], [ 'hideredirects' => 1 ] ),
                                        $this->getLanguage()->formatNum( $this->good ),
                                        [ 'class' => 'mw-statistics-articles' ],
                                        'statistics-articles-desc' ) .
@@ -152,9 +155,9 @@ class SpecialStatistics extends SpecialPage {
                                [ 'class' => 'mw-statistics-edits' ]
                        ) .
                        $this->formatRow( $this->msg( 'statistics-edits-average' )->parse(),
-                               $this->getLanguage()
-                                       ->formatNum( sprintf( '%.2f', $this->total ? $this->edits / $this->total : 0 ) ),
-                               [ 'class' => 'mw-statistics-edits-average' ]
+                               $this->getLanguage()->formatNum(
+                                       sprintf( '%.2f', $this->total ? $this->edits / $this->total : 0 )
+                               ), [ 'class' => 'mw-statistics-edits-average' ]
                        );
        }
 
@@ -175,7 +178,8 @@ class SpecialStatistics extends SpecialPage {
                                $this->getLanguage()->formatNum( $this->activeUsers ),
                                [ 'class' => 'mw-statistics-users-active' ],
                                'statistics-users-active-desc',
-                               $this->getLanguage()->formatNum( $this->getConfig()->get( 'ActiveUserDays' ) )
+                               $this->getLanguage()->formatNum(
+                                       $this->getConfig()->get( 'ActiveUserDays' ) )
                        );
        }
 
@@ -184,7 +188,8 @@ class SpecialStatistics extends SpecialPage {
                $text = '';
                foreach ( $this->getConfig()->get( 'GroupPermissions' ) as $group => $permissions ) {
                        # Skip generic * and implicit groups
-                       if ( in_array( $group, $this->getConfig()->get( 'ImplicitGroups' ) ) || $group == '*' ) {
+                       if ( in_array( $group, $this->getConfig()->get( 'ImplicitGroups' ) )
+                               || $group == '*' ) {
                                continue;
                        }
                        $groupname = htmlspecialchars( $group );
@@ -196,7 +201,8 @@ class SpecialStatistics extends SpecialPage {
                        }
                        $msg = $this->msg( 'grouppage-' . $groupname )->inContentLanguage();
                        if ( $msg->isBlank() ) {
-                               $grouppageLocalized = MWNamespace::getCanonicalName( NS_PROJECT ) . ':' . $groupname;
+                               $grouppageLocalized = MWNamespace::getCanonicalName( NS_PROJECT ) .
+                                       ':' . $groupname;
                        } else {
                                $grouppageLocalized = $msg->text();
                        }
index 90dfdc5..77b6926 100644 (file)
@@ -40,7 +40,7 @@ class UncategorizedCategoriesPage extends UncategorizedPagesPage {
        }
 
        /**
-        * Returns an array of categorie titles (usually without the namespace), which
+        * Returns an array of category titles (usually without the namespace), which
         * shouldn't be listed on this page, even if they're uncategorized.
         *
         * @return array
index 38bac29..4db2198 100644 (file)
@@ -802,4 +802,3 @@ class UserrightsPage extends SpecialPage {
                return 'users';
        }
 }
-
diff --git a/includes/widget/search/BasicSearchResultSetWidget.php b/includes/widget/search/BasicSearchResultSetWidget.php
new file mode 100644 (file)
index 0000000..2c31bd2
--- /dev/null
@@ -0,0 +1,135 @@
+<?php
+
+namespace MediaWiki\Widget\Search;
+
+use Message;
+use SearchResultSet;
+use SpecialSearch;
+use Status;
+
+/**
+ * Renders the search result area. Handles Title and Full-Text search results,
+ * along with inline and sidebar secondary (interwiki) results.
+ */
+class BasicSearchResultSetWidget {
+       /** @var SpecialSearch */
+       protected $specialPage;
+       /** @var SearchResultWidget */
+       protected $resultWidget;
+       /** @var InterwikiSearchResultSetWidget */
+       protected $sidebarWidget;
+
+       public function __construct(
+               SpecialSearch $specialPage,
+               SearchResultWidget $resultWidget,
+               InterwikiSearchResultSetWidget $sidebarWidget
+       ) {
+               $this->specialPage = $specialPage;
+               $this->resultWidget = $resultWidget;
+               $this->sidebarWidget = $sidebarWidget;
+       }
+
+       /**
+        * @param string $term The search term to highlight
+        * @param int $offset The offset of the first result in the result set
+        * @param SearchResultSet|null $titleResultSet Results of searching only page titles
+        * @param SearchResultSet|null $textResultSet Results of general full text search.
+        * @return string HTML
+        */
+       public function render(
+               $term,
+               $offset,
+               SearchResultSet $titleResultSet = null,
+               SearchResultSet $textResultSet = null
+       ) {
+               global $wgContLang;
+
+               $hasTitle = $titleResultSet ? $titleResultSet->numRows() > 0 : false;
+               $hasText = $textResultSet ? $textResultSet->numRows() > 0 : false;
+               $hasSecondary = $textResultSet
+                       ? $textResultSet->hasInterwikiResults( SearchResultSet::SECONDARY_RESULTS )
+                       : false;
+               $hasSecondaryInline = $textResultSet
+                       ? $textResultSet->hasInterwikiResults( SearchResultSet::INLINE_RESULTS )
+                       : false;
+
+               if ( !$hasTitle && !$hasText && !$hasSecondary && !$hasSecondaryInline ) {
+                       return '';
+               }
+
+               $out = '';
+               if ( $hasTitle ) {
+                       $out .= $this->header( $this->specialPage->msg( 'titlematches' ) )
+                               . $this->renderResultSet( $titleResultSet, $offset );
+               }
+
+               if ( $hasText ) {
+                       if ( $hasTitle ) {
+                               $out .= "<div class='mw-search-visualclear'></div>" .
+                                       $this->header( $this->specialPage->msg( 'textmatches' ) );
+                       }
+                       $out .= $this->renderResultSet( $textResultSet, $offset );
+               }
+
+               if ( $hasSecondaryInline ) {
+                       $iwResults = $textResultSet->getInterwikiResults( SearchResultSet::INLINE_RESULTS );
+                       foreach ( $iwResults as $interwiki => $results ) {
+                               if ( $results instanceof Status || $results->numRows() === 0 ) {
+                                       // ignore bad interwikis for now
+                                       continue;
+                               }
+                               $out .=
+                                       "<p class='mw-search-interwiki-header mw-search-visualclear'>" .
+                                               $this->specialPage->msg( "search-interwiki-results-{$interwiki}" )->parse() .
+                                       "</p>";
+                               $out .= $this->renderResultSet( $results, $offset );
+                       }
+               }
+
+               if ( $hasSecondary ) {
+                       $out .= $this->sidebarWidget->render(
+                               $term,
+                               $textResultSet->getInterwikiResults( SearchResultSet::SECONDARY_RESULTS )
+                       );
+               }
+
+               // Convert the whole thing to desired language variant
+               // TODO: Move this up to Special:Search?
+               return $wgContLang->convert( $out );
+       }
+
+       /**
+        * Generate a headline for a section of the search results. In prior
+        * implementations this was rendering wikitext of '==$1==', but seems
+        * a waste to call the full parser to generate this tiny bit of html
+        *
+        * @param Message $msg i18n message to use as header
+        * @return string HTML
+        */
+       protected function header( Message $msg ) {
+               return
+                       "<h2>" .
+                               "<span class='mw-headline'>" . $msg->escaped() . "</span>" .
+                       "</h2>";
+       }
+
+       /**
+        * @param SearchResultSet $resultSet The search results to render
+        * @param int $offset Offset of the first result in $resultSet
+        * @return string HTML
+        */
+       protected function renderResultSet( SearchResultSet $resultSet, $offset ) {
+               global $wgContLang;
+
+               $terms = $wgContLang->convertForSearchResult( $resultSet->termMatches() );
+
+               $hits = [];
+               $result = $resultSet->next();
+               while ( $result ) {
+                       $hits[] .= $this->resultWidget->render( $result, $terms, $offset++ );
+                       $result = $resultSet->next();
+               }
+
+               return "<ul class='mw-search-results'>" . implode( '', $hits ) . "</ul>";
+       }
+}
diff --git a/includes/widget/search/DidYouMeanWidget.php b/includes/widget/search/DidYouMeanWidget.php
new file mode 100644 (file)
index 0000000..3aee87b
--- /dev/null
@@ -0,0 +1,102 @@
+<?php
+
+namespace MediaWiki\Widget\Search;
+
+use Linker;
+use SearchResultSet;
+use SpecialSearch;
+
+/**
+ * Renders a suggested search for the user, or tells the user
+ * a suggested search was run instead of the one provided.
+ */
+class DidYouMeanWidget {
+       /** @var SpecialSearch */
+       protected $specialSearch;
+
+       public function __construct( SpecialSearch $specialSearch ) {
+               $this->specialSearch = $specialSearch;
+       }
+
+       /**
+        * @param string $term The user provided search term
+        * @param SearchResultSet $resultSet
+        * @return string HTML
+        */
+       public function render( $term, SearchResultSet $resultSet ) {
+               if ( $resultSet->hasRewrittenQuery() ) {
+                       $html = $this->rewrittenHtml( $term, $resultSet );
+               } elseif ( $resultSet->hasSuggestion() ) {
+                       $html = $this->suggestionHtml( $resultSet );
+               } else {
+                       return '';
+               }
+
+               return "<div class='searchdidyoumean'>$html</div>";
+       }
+
+       /**
+        * Generates HTML shown to user when their query has been internally
+        * rewritten, and the results of the rewritten query are being returned.
+        *
+        * @param string $term The users search input
+        * @param SearchResultSet $resultSet The response to the search request
+        * @return string HTML Links the user to their original $term query, and the
+        *  one suggested by $resultSet
+        */
+       protected function rewrittenHtml( $term, SearchResultSet $resultSet ) {
+               $params = [
+                       'search' => $resultSet->getQueryAfterRewrite(),
+                       // Don't magic this link into a 'go' link, it should always
+                       // show search results.
+                       'fultext' => 1,
+               ];
+               $stParams = array_merge( $params, $this->specialSearch->powerSearchOptions() );
+
+               $rewritten = Linker::linkKnown(
+                       $this->specialSearch->getPageTitle(),
+                       $resultSet->getQueryAfterRewriteSnippet() ?: null,
+                       [ 'id' => 'mw-search-DYM-rewritten' ],
+                       $stParams
+               );
+
+               $stParams['search'] = $term;
+               $stParams['runsuggestion'] = 0;
+               $original = Linker::linkKnown(
+                       $this->specialSearch->getPageTitle(),
+                       htmlspecialchars( $term, ENT_QUOTES, 'UTF-8' ),
+                       [ 'id' => 'mwsearch-DYM-original' ],
+                       $stParams
+               );
+
+               return $this->specialSearch->msg( 'search-rewritten' )
+                       ->rawParams( $rewritten, $original )
+                       ->escaped();
+       }
+
+       /**
+        * Generates HTML shown to the user when we have a suggestion about
+        * a query that might give more/better results than their current
+        * query.
+        *
+        * @param SearchResultSet $resultSet
+        * @return string HTML
+        */
+       protected function suggestionHtml( SearchResultSet $resultSet ) {
+               $params = [
+                       'search' => $resultSet->getSuggestionQuery(),
+                       'fulltext' => 1,
+               ];
+               $stParams = array_merge( $params, $this->specialSearch->powerSearchOptions() );
+
+               $suggest = Linker::linkKnown(
+                       $this->specialSearch->getPageTitle(),
+                       $resultSet->getSuggestionSnippet() ?: null,
+                       [ 'id' => 'mw-search-DYM-suggestion' ],
+                       $stParams
+               );
+
+               return $this->specialSearch->msg( 'search-suggest' )
+                       ->rawParams( $suggest )->parse();
+       }
+}
diff --git a/includes/widget/search/InterwikiSearchResultSetWidget.php b/includes/widget/search/InterwikiSearchResultSetWidget.php
new file mode 100644 (file)
index 0000000..c738483
--- /dev/null
@@ -0,0 +1,130 @@
+<?php
+
+namespace MediaWiki\Widget\Search;
+
+use MediaWiki\Interwiki\InterwikiLookup;
+use MediaWiki\Linker\LinkRenderer;
+use SearchResultSet;
+use SpecialSearch;
+use Title;
+
+/**
+ * Renders one or more SearchResultSets into a sidebar grouped by
+ * interwiki prefix. Includes a per-wiki header indicating where
+ * the results are from.
+ */
+class InterwikiSearchResultSetWidget {
+       /** @var SpecialSearch */
+       protected $specialSearch;
+       /** @var SearchResultWidget */
+       protected $resultWidget;
+       /** @var string[]|null */
+       protected $customCaptions;
+       /** @var LinkRenderer */
+       protected $linkRenderer;
+       /** @var InterwikiLookup */
+       protected $iwLookup;
+
+       public function __construct(
+               SpecialSearch $specialSearch,
+               SearchResultWidget $resultWidget,
+               LinkRenderer $linkRenderer,
+               InterwikiLookup $iwLookup
+       ) {
+               $this->specialSearch = $specialSearch;
+               $this->resultWidget = $resultWidget;
+               $this->linkRenderer = $linkRenderer;
+               $this->iwLookup = $iwLookup;
+       }
+
+       /**
+        * @param string $term User provided search term
+        * @param SearchResultSet|SearchResultSet[] $resultSets List of interwiki
+        *  results to render.
+        * @return string HTML
+        */
+       public function render( $term, $resultSets ) {
+               if ( !is_array( $resultSets ) ) {
+                       $resultSets = [ $resultSets ];
+               }
+
+               $this->loadCustomCaptions();
+
+               $iwResults = [];
+               foreach ( $resultSets as $resultSet ) {
+                       $result = $resultSet->next();
+                       while ( $result ) {
+                               if ( !$result->isBrokenTitle() ) {
+                                       $iwResults[$result->getTitle()->getInterwiki()][] = $result;
+                               }
+                               $result = $resultSet->next();
+                       }
+               }
+
+               $out = '';
+               foreach ( $iwResults as $iwPrefix => $results ) {
+                       $out .= $this->headerHtml( $iwPrefix, $term );
+                       $out .= "<ul class='mw-search-iwresults'>";
+                       // TODO: Assumes interwiki results are never paginated
+                       $position = 0;
+                       foreach ( $results as $result ) {
+                               $out .= $this->resultWidget->render( $result, $term, $position++ );
+                       }
+                       $out .= "</ul>";
+               }
+
+               return
+                       "<div id='mw-search-interwiki'>" .
+                               "<div id='mw-search-interwiki-caption'>" .
+                                       $this->specialSearch->msg( 'search-interwiki-caption' )->text() .
+                               '</div>' .
+                               $out .
+                       "</div>";
+       }
+
+       /**
+        * Generates an appropriate HTML header for the given interwiki prefix
+        *
+        * @param string $iwPrefix Interwiki prefix of wiki to show header for
+        * @param string $term User provided search term
+        * @return string HTML
+        */
+       protected function headerHtml( $iwPrefix, $term ) {
+               if ( isset( $this->customCaptions[$iwPrefix] ) ) {
+                       $caption = $this->customCaptions[$iwPrefix];
+               } else {
+                       $interwiki = $this->iwLookup->fetch( $iwPrefix );
+                       $parsed = wfParseUrl( wfExpandUrl( $interwiki ? $interwiki->getURL() : '/' ) );
+                       $caption = $this->specialSearch->msg( 'search-interwiki-default', $parsed['host'] )->text();
+               }
+               $searchLink = $this->linkRenderer->makeLink(
+                       Title::newFromText( "$iwPrefix:Special:Search" ),
+                       $this->specialSearch->msg( 'search-interwiki-more' )->text(),
+                       [],
+                       [
+                               'search' => $term,
+                               'fulltext' => 1,
+                       ]
+               );
+               return
+                       "<div class='mw-search-interwiki-project'>" .
+                               "<span class='mw-search-interwiki-more'>{$searchLink}</span>" .
+                               $caption .
+               "</div>";
+       }
+
+       protected function loadCustomCaptions() {
+               if ( $this->customCaptions !== null ) {
+                       return;
+               }
+
+               $this->customCaptions = [];
+               $customLines = explode( "\n", $this->specialSearch->msg( 'search-interwiki-custom' )->text() );
+               foreach ( $customLines as $line ) {
+                       $parts = explode( ':', $line, 2 );
+                       if ( count( $parts ) === 2 ) {
+                               $this->customCaptions[$parts[0]] = $parts[1];
+                       }
+               }
+       }
+}
diff --git a/includes/widget/search/SearchFormWidget.php b/includes/widget/search/SearchFormWidget.php
new file mode 100644 (file)
index 0000000..e223b95
--- /dev/null
@@ -0,0 +1,312 @@
+<?php
+
+namespace MediaWiki\Widget\Search;
+
+use Hooks;
+use Html;
+use MediaWiki\Widget\SearchInputWidget;
+use MWNamespace;
+use SearchEngineConfig;
+use SpecialSearch;
+use Xml;
+
+class SearchFormWidget {
+       /** @var SpecialSearch */
+       protected $specialSearch;
+       /** @var SearchEngineConfig */
+       protected $searchConfig;
+       /** @var array */
+       protected $profiles;
+
+       /**
+        * @param SpecialSearch $specialSearch
+        * @param SearchEngineConfig $searchConfig
+        * @param array $profiles
+        */
+       public function __construct(
+               SpecialSearch $specialSearch,
+               SearchEngineConfig $searchConfig,
+               array $profiles
+       ) {
+               $this->specialSearch = $specialSearch;
+               $this->searchConfig = $searchConfig;
+               $this->profiles = $profiles;
+       }
+
+       /**
+        * @param string $profile The current search profile
+        * @param string $term The current search term
+        * @param int $numResults The number of results shown
+        * @param int $totalResults The total estimated results found
+        * @param int $offset Current offset in search results
+        * @param bool $isPowerSearch Is the 'advanced' section open?
+        * @return string HTML
+        */
+       public function render(
+               $profile,
+               $term,
+               $numResults,
+               $totalResults,
+               $offset,
+               $isPowerSearch
+       ) {
+               return Xml::openElement(
+                               'form',
+                               [
+                                       'id' => $isPowerSearch ? 'powersearch' : 'search',
+                                       'method' => 'get',
+                                       'action' => wfScript(),
+                               ]
+                       ) .
+                               '<div id="mw-search-top-table">' .
+                                       $this->shortDialogHtml( $profile, $term, $numResults, $totalResults, $offset ) .
+                               '</div>' .
+                               "<div class='mw-search-visualclear'></div>" .
+                               "<div class='mw-search-profile-tabs'>" .
+                                       $this->profileTabsHtml( $profile, $term ) .
+                                       "<div style='clear:both'></div>" .
+                               "</div>" .
+                               $this->optionsHtml( $term, $isPowerSearch, $profile ) .
+                       '</form>';
+       }
+
+       /**
+        * @param string $profile The current search profile
+        * @param string $term The current search term
+        * @param int $numResults The number of results shown
+        * @param int $totalResults The total estimated results found
+        * @param int $offset Current offset in search results
+        * @return string HTML
+        */
+       protected function shortDialogHtml( $profile, $term, $numResults, $totalResults, $offset ) {
+               $searchWidget = new SearchInputWidget( [
+                       'id' => 'searchText',
+                       'name' => 'search',
+                       'autofocus' => trim( $term ) === '',
+                       'value' => $term,
+                       'dataLocation' => 'content',
+                       'infusable' => true,
+               ] );
+
+               $layout = new \OOUI\ActionFieldLayout( $searchWidget, new \OOUI\ButtonInputWidget( [
+                       'type' => 'submit',
+                       'label' => $this->specialSearch->msg( 'searchbutton' )->text(),
+                       'flags' => [ 'progressive', 'primary' ],
+               ] ), [
+                       'align' => 'top',
+               ] );
+
+               $html =
+                       Html::hidden( 'title', $this->specialSearch->getPageTitle()->getPrefixedText() ) .
+                       Html::hidden( 'profile', $profile ) .
+                       Html::hidden( 'fulltext', '1' ) .
+                       $layout;
+
+               if ( $totalResults > 0 && $offset < $totalResults ) {
+                       $html .= Xml::tags(
+                               'div',
+                               [ 'class' => 'results-info' ],
+                               $this->specialSearch->msg( 'search-showingresults' )
+                                       ->numParams( $offset + 1, $offset + $numResults, $totalResults )
+                                       ->numParams( $numResults )
+                                       ->parse()
+                       );
+               }
+
+               return $html;
+       }
+
+       /**
+        * Generates HTML for the list of available search profiles.
+        *
+        * @param string $profile The currently selected profile
+        * @param string $term The user provided search terms
+        * @return string HTML
+        */
+       protected function profileTabsHtml( $profile, $term ) {
+               $bareterm = $this->startsWithImage( $term )
+                       ? substr( $term, strpos( $term, ':' ) + 1 )
+                       : $term;
+               $lang = $this->specialSearch->getLanguage();
+               $items = [];
+               foreach ( $this->profiles as $id => $profileConfig ) {
+                       $profileConfig['parameters']['profile'] = $id;
+                       $tooltipParam = isset( $profileConfig['namespace-messages'] )
+                               ? $lang->commaList( $profileConfig['namespace-messages'] )
+                               : null;
+                       $items[] = Xml::tags(
+                               'li',
+                               [ 'class' => $profile === $id ? 'current' : 'normal' ],
+                               $this->makeSearchLink(
+                                       $bareterm,
+                                       $this->specialSearch->msg( $profileConfig['message'] )->text(),
+                                       $this->specialSearch->msg( $profileConfig['tooltip'], $tooltipParam )->text(),
+                                       $profileConfig['parameters']
+                               )
+                       );
+               }
+
+               return
+                               "<div class='search-types'>" .
+                                       "<ul>" . implode( '', $items ) . "</ul>" .
+                               "</div>";
+       }
+
+       /**
+        * Check if query starts with image: prefix
+        *
+        * @param string $term The string to check
+        * @return bool
+        */
+       protected function startsWithImage( $term ) {
+               global $wgContLang;
+
+               $parts = explode( ':', $term );
+               return count( $parts ) > 1
+                       ? $wgContLang->getNsIndex( $parts[0] ) === NS_FILE
+                       : false;
+       }
+
+       /**
+        * Make a search link with some target namespaces
+        *
+        * @param string $term The term to search for
+        * @param string $label Link's text
+        * @param string $tooltip Link's tooltip
+        * @param array $params Query string parameters
+        * @return string HTML fragment
+        */
+       protected function makeSearchLink( $term, $label, $tooltip, array $params = [] ) {
+               $params += [
+                       'search' => $term,
+                       'fulltext' => 1,
+               ];
+
+               return Xml::element(
+                       'a',
+                       [
+                               'href' => $this->specialSearch->getPageTitle()->getLocalURL( $params ),
+                               'title' => $tooltip,
+                       ],
+                       $label
+               );
+       }
+
+       /**
+        * Generates HTML for advanced options available with the currently
+        * selected search profile.
+        *
+        * @param string $term User provided search term
+        * @param bool $isPowerSearch Is the advanced search profile enabled?
+        * @param string $profile The current search profile
+        * @return string HTML
+        */
+       protected function optionsHtml( $term, $isPowerSearch, $profile ) {
+               $html = '';
+               $opts = [
+                       'profile' => $profile,
+               ];
+
+               if ( $isPowerSearch ) {
+                       $html .= $this->powerSearchBox( $term, $opts );
+               } else {
+                       $form = '';
+                       Hooks::run( 'SpecialSearchProfileForm', [
+                               $this->specialSearch, &$form, $profile, $term, $opts
+                       ] );
+                       $html .= $form;
+               }
+
+               return $html;
+       }
+
+       /**
+        * @param string $term The current search term
+        * @param array $opts Additional key/value pairs that will be submitted
+        *  with the generated form.
+        * @return string HTML
+        */
+       protected function powerSearchBox( $term, array $opts ) {
+               global $wgContLang;
+
+               $rows = [];
+               $activeNamespaces = $this->specialSearch->getNamespaces();
+               foreach ( $this->searchConfig->searchableNamespaces() as $namespace => $name ) {
+                       $subject = MWNamespace::getSubject( $namespace );
+                       if ( !isset( $rows[$subject] ) ) {
+                               $rows[$subject] = "";
+                       }
+
+                       $name = $wgContLang->getConverter()->convertNamespace( $namespace );
+                       if ( $name === '' ) {
+                               $name = $this->specialSearch->msg( 'blanknamespace' )->text();
+                       }
+
+                       $rows[$subject] .=
+                               '<td>' .
+                                       Xml::checkLabel(
+                                               $name,
+                                               "ns{$namespace}",
+                                               "mw-search-ns{$namespace}",
+                                               in_array( $namespace, $activeNamespaces )
+                                       ) .
+                               '</td>';
+               }
+
+               // Lays out namespaces in multiple floating two-column tables so they'll
+               // be arranged nicely while still accomodating diferent screen widths
+               $tableRows = [];
+               foreach ( $rows as $row ) {
+                       $tableRows[] = "<tr>{$row}</tr>";
+               }
+               $namespaceTables = [];
+               foreach ( array_chunk( $tableRows, 4 ) as $chunk ) {
+                       $namespaceTables[] = implode( '', $chunk );
+               }
+
+               $showSections = [
+                       'namespaceTables' => "<table>" . implode( '</table><table>', $namespaceTables ) . '</table>',
+               ];
+               Hooks::run( 'SpecialSearchPowerBox', [ &$showSections, $term, $opts ] );
+
+               $hidden = '';
+               foreach ( $opts as $key => $value ) {
+                       $hidden .= Html::hidden( $key, $value );
+               }
+
+               $divider = "<div class='divider'></div>";
+
+               // Stuff to feed SpecialSearch::saveNamespaces()
+               $user = $this->specialSearch->getUser();
+               $remember = '';
+               if ( $user->isLoggedIn() ) {
+                       $remember = $divider . Xml::checkLabel(
+                               $this->specialSearch->msg( 'powersearch-remember' )->text(),
+                               'nsRemember',
+                               'mw-search-powersearch-remember',
+                               false,
+                               // The token goes here rather than in a hidden field so it
+                               // is only sent when necessary (not every form submission)
+                               [ 'value' => $user->getEditToken(
+                                       'searchnamespace',
+                                       $this->specialSearch->getRequest()
+                               ) ]
+                       );
+               }
+
+               return
+                       "<fieldset id='mw-searchoptions'>" .
+                               "<legend>" . $this->specialSearch->msg( 'powersearch-legend' )->escaped() . '</legend>' .
+                               "<h4>" . $this->specialSearch->msg( 'powersearch-ns' )->escaped() . '</h4>' .
+                               // populated by js if available
+                               "<div id='mw-search-togglebox'></div>" .
+                               $divider .
+                               implode(
+                                       $divider,
+                                       $showSections
+                               ) .
+                               $hidden .
+                               $remember .
+                       "</fieldset>";
+       }
+}
index b53cd5d..3fbdbef 100644 (file)
@@ -11,7 +11,7 @@ interface SearchResultWidget {
        /**
         * @param SearchResult $result The result to render
         * @param string $terms Terms to be highlighted (@see SearchResult::getTextSnippet)
-        * @param int $position The result position, including offset
+        * @param int $position The zero indexed result position, including offset
         * @return string HTML
         */
        public function render( SearchResult $result, $terms, $position );
index 50620b1..e127f8b 100644 (file)
@@ -15,7 +15,7 @@
                        "ו$1"
                ],
                [
-                       "ה(.+)$",
+                       "^ה(.+)$",
                        "$1"
                ],
                [
index 4342e1c..45c42e4 100644 (file)
        "searcharticle": "اذهب",
        "history": "تاريخ الصفحة",
        "history_short": "تاريخ",
+       "history_small": "تاريخ",
        "updatedmarker": "عدلت منذ زيارتي الأخيرة",
        "printableversion": "نسخة للطباعة",
        "permalink": "رابط دائم",
index 2528bf9..85c121a 100644 (file)
        "searcharticle": "Dir",
        "history": "Historial de la páxina",
        "history_short": "Historial",
+       "history_small": "historial",
        "updatedmarker": "anovada dende la mio visita cabera",
        "printableversion": "Versión pa imprentar",
        "permalink": "Enllaz permanente",
        "uncategorizedcategories": "Categoríes non categorizaes",
        "uncategorizedimages": "Archivos non categorizaos",
        "uncategorizedtemplates": "Plantíes non categorizaes",
+       "uncategorized-categories-exceptionlist": "# Contien una llista de categoríes que nun tendríen d'apaecer en Special:UncategorizedCategories. Una categoría per llinia, empezando por «*». Nun se tienen en cuenta les llinies qu'empiecen con otru caráuter (espacios en blancu incluyíos). Usa «#» p'añadir comentarios.",
        "unusedcategories": "Categoríes non usaes",
        "unusedimages": "Imáxenes non usaes",
        "wantedcategories": "Categoríes buscaes",
index ad55c0d..c335429 100644 (file)
@@ -12,7 +12,7 @@
                        "Аль-Гимравий"
                ]
        },
-       "tog-underline": "Ð\9bинкал Ð³Ñ\8aоÑ\80кÑ\8cмÑ\83Ñ\85Ñ\8aизе",
+       "tog-underline": "РегÐ\86елазда Ð³Ñ\8aоÑ\80кÑ\8c Ð¼Ñ\83Ñ\85Ñ\8a Ð»Ñ\8aезе:",
        "tog-hideminor": "ЧӀахӀиял хиса-басиязул сияхӀалда дагьа-макъал хиса-басиял рахчизе",
        "tog-showtoolbar": "Хиса-басиял гьарулеб мехалда тӀасияб алатазул панель бихьизабизе",
        "tog-editondblclick": "КӀиго кӀутӀиялдалъун гьумералъул хиса-баси гьабизе",
@@ -95,7 +95,8 @@
        "moredotdotdot": "Жеги...",
        "morenotlisted": "Гьаб сияхӀ цӀураб гьечӀо",
        "mypage": "Гьумер",
-       "mytalk": "БахӀс",
+       "mytalk": "Гьоркьоб лъей",
+       "anontalk": "Гьоркьоб лъей",
        "navigation": "Навигация",
        "and": "&#32;ва",
        "qbfind": "ЦӀехезе",
        "unprotectthispage": "Гьаб гьумералъул цӀуни хисизабизе",
        "newpage": "ЦIияб гьумер",
        "talkpage": "БахӀс",
-       "talkpagelinktext": "Ð\91аÑ\85\81",
+       "talkpagelinktext": "Ð\93Ñ\8cоÑ\80кÑ\8cоб Ð»Ñ\8aей",
        "specialpage": "Хъулухъияб гьумер",
        "personaltools": "Дур алатал",
        "articlepage": "Макъалаялде балагьизе",
        "imagepage": "Файлалъул гьумер балагьизе",
        "mediawikipage": "Кагъаталъул гьумер балагьизе",
        "otherlanguages": "Цоги мацӀазда",
-       "redirectedfrom": "(«$1» гьемералдасан гьаниб битӀана)",
+       "redirectedfrom": "(«$1» гьумералдасан гьаниб битӀана)",
        "redirectpagesub": "Цоги гьумералда сверизабураб гьумер",
        "redirectto": "Редирект:",
        "lastmodifiedat": "Ахирисеб нухалъ гьаб гьумералъул хиса-баси гьабуна:  $2, $1.",
        "jumptonavigation": "навигация",
        "jumptosearch": "хъирщизе",
        "pool-errorunknown": "Лъалареб гъалатӀ",
-       "aboutsite": "{{SITENAME}} хӀакъалъулъ",
+       "aboutsite": "{{GRAMMAR:prepositional|{{SITENAME}}}} хІакъалъулъ",
        "aboutpage": "Project:ХӀакъалъулъ",
        "currentevents": "Жакъасел лъугьа-бахъинал",
        "currentevents-url": "Project:Гьанжесел лъугьа-бахъинал",
        "disclaimerpage": "Project:Жавабчилъиялдасан инкар гьаби",
        "edithelp": "Хисизабиялъе кумек",
        "helppage-top-gethelp": "Кумек",
-       "mainpage": "БетӀераб гьумер",
-       "mainpage-description": "БетӀераб гьумер",
+       "mainpage": "БетІераб гьумер",
+       "mainpage-description": "БетІераб гьумер",
        "policy-url": "Project:КъагӀидаби",
        "portal": "ЖамгӀияб портал",
        "portal-url": "Project:Майдан",
        "createacct-reason-ph": "Щай дуца цогияб аккаунт гIуцIулеб бугеб",
        "createacct-submit": "Аккаунт гIуцIизе",
        "createacct-another-submit": "Цоги аккаунт гIуцIизе",
-       "createacct-benefit-heading": "{{SITENAME}} гӀуцӀун буго нужго гӀадинал гӀадамаца.",
+       "createacct-benefit-heading": "{{SITENAME}} — ккола нужго гӀадинал гӀадамазулги нужерги гІахьалаб хІалтІи.",
        "createacct-benefit-body1": "{{PLURAL:$1|хиса-баси}}",
        "createacct-benefit-body2": "{{PLURAL:$1|гьумер|гьумерал}}",
        "createacct-benefit-body3": "Ахирисеб заманаялда жаниб {{PLURAL:$1|гIахьалчи}}",
        "pt-createaccount": "Аккаунт рагьизе",
        "pt-userlogout": "КъватӀиве инзе",
        "passwordreset": "Парол хисизе",
+       "passwordreset-username": "ГІахьалчиясул цІар:",
        "resettokens-tokens": "Токенал:",
        "italic_sample": "Курсивалъулаб хъвай",
        "italic_tip": "Курсивалъулаб хъвай",
        "showdiff": "Гьарурал хиса-басиял",
        "loginreqlink": "Жаниве лъугьине",
        "newarticle": "(ЦIияб)",
+       "newarticletext": "РегІелаздасан нуж лъугьана жеги гІуцІун гьечІеб гьумералде.\nГьеб гІуцІизе бокьани, гъоркьехун текст хъвай (цІикІкІун лъазе бл. [$1 баяналъулаб гьумералде]).\nНуж гьанире гъалатІ ккун щварал ратани, гІицІго '''нахъе''' абураб кнопка мерхье дурго браузералъул.",
        "updated": "(ЦӀигьабуна)",
        "note": "<strong>ХӀужа:</strong>",
        "previewnote": "<strong>КӀочоге, мун гьабсагӀаталъ балагьула вуго макъалаялъул букӀине бугеб куцалъухъ.</strong>\nДуца гьарурал хиса-басиял цӀунун гьечӀо!",
        "searchprofile-everything-tooltip": "Киналго гьумеразда хъирщизе (бахӀсазул гьумераздагицин)",
        "search-result-size": "$1 ({{PLURAL:$2|$2 рагӀи|$2 рагӀи|$2 рагӀи}})",
        "searchall": "киналго",
+       "search-nonefound": "Дуца гьабураб цІех-рехалда данде кколеб щибго батичІо.",
+       "powersearch-ns": "ЦІарал рищун хъирщи:",
+       "powersearch-togglelabel": "ГІуж лъезе:",
        "powersearch-toggleall": "Киналго",
        "powersearch-togglenone": "Щибниги",
+       "powersearch-remember": "Дуца тІаса бищараб рекъезаби цІунизе хадубккун букІине бугеб хъирщиялъе",
        "search-external": "КъватIисеб цIехей",
        "preferences": "Рекъезаби",
        "mypreferences": "Рекъезаби",
        "action-upload": "гьаб файл жанибе цIазе",
        "enhancedrc-history": "тарих",
        "recentchanges": "ЦӀиял хиса-басиял",
+       "recentchanges-legend": "ЦІиял хиса-басиязул рекъезариял",
        "recentchanges-label-newpage": "Гьаб хиса-басигун цӀияб гьумер рагьана.",
        "recentchanges-label-minor": "Гьаб буго дагьа-макъаб хиса-баси",
        "recentchanges-label-bot": "Гьаб хиса-баси ботас гьабуна",
+       "recentchanges-label-unpatrolled": "Гьаб хиса-басиялъул жеги лъицаниги хал гьабичІо",
+       "recentchanges-label-plusminus": "байт роценалдалъун кIодолъи-гьитIинлъи хисизаби",
+       "recentchanges-legend-heading": "<strong>Легенда:&nbsp;</strong>",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (гьединго балагье [[Special:NewPages|цІиял гьумеразул сияхІалъухъ]])",
        "rcshowhideminor": "$1 гӀиси-микъинал хиса-басиял",
        "rcshowhideminor-show": "Бихьизабизе",
        "rcshowhideminor-hide": "Бахчизе",
        "rcshowhidemine": "$1 дир хиса-басиял",
        "rcshowhidemine-show": "Бихьизабизе",
        "rcshowhidemine-hide": "Бахчизе",
+       "rcshowhidecategorization": "Гьумерал категориязде бикьи $1",
+       "rclinks": "$2 къояйида жаниб гьабураб, ахирисеб $1 хиса-баси бихьизабизе<br />$3",
        "diff": "батӀалъи",
        "hist": "тарих",
        "hide": "Бахчизе",
        "booksources-search": "Хъирщизе",
        "specialloguserlabel": "ГӀахьалчи:",
        "log": "Журналал",
+       "logempty": "Журналалда данде кколел хъвай-хъвагІаял гьечІо.",
        "allarticles": "Киналго макъалаби",
-       "allpagessubmit": "Ð\98нзе",
+       "allpagessubmit": "ТÓ\80Ñ\83базабизе",
        "categories": "Категориял",
        "watchlist": "Халгьабиялъул сияхІ",
        "mywatchlist": "Халгьабиялъул сияхІ",
        "watch": "Хал кквезе",
        "namespace": "ЦӀаразул сияхӀ:",
+       "invert": "ТІасабищараб сверизабизе",
        "blanknamespace": "(Аслияб)",
        "contributions": "{{GENDER:$1|ГӀахьалчиясул}} хӀалтӀи",
        "mycontris": "Дур хӀалтӀи",
+       "sp-contributions-newbies": "ГІицІго, цІиял гІахьалчагІаз гьабураб хІалтІи бихьизабизе",
+       "sp-contributions-talk": "гьоркьоб лъей",
        "sp-contributions-userrights": "ГІахьалчиясул ихтиярал",
-       "whatlinkshere": "Гьанире линкал",
+       "sp-contributions-search": "ХІалтІи хъирщизе",
+       "sp-contributions-hideminor": "ГІиси-бикъинал хиса-басиял рахчизе",
+       "whatlinkshere": "Гьанире регІелал",
        "whatlinkshere-title": "«$1» гьумералда бухьен гьабулел гьумерал",
        "whatlinkshere-page": "Гьумер:",
+       "nolinkshere": "'''[[:$1]]''' гьумералде цоги гьумераздасан регІелал гьечІо.",
        "isredirect": "редирект-гьумер",
        "isimage": "файлалъул регІел",
        "whatlinkshere-prev": "{{PLURAL:$1|1=цебесеб|цересел}} $1",
        "whatlinkshere-next": "{{PLURAL:$1|1=хадусеб|хадусел}} $1",
-       "whatlinkshere-links": "← линкал",
+       "whatlinkshere-links": "← регІелал",
        "whatlinkshere-hideredirs": "$1 редиректал",
        "whatlinkshere-hidelinks": "$1 линкал",
        "whatlinkshere-filters": "Фильтрал",
+       "whatlinkshere-submit": "ТӀубазабизе",
        "blockip": "ГІахьалчи блокалда лъезе",
        "ipbsubmit": "Гьав гІахьалчи/адрес блокалда лъезе",
        "ipb-confirmhideuser": "Нужеда ракІалда буго гІахьалчи блокалда лъезе ва гьесул цмар бахчизе. Гьеб загьирлъуларо сияхІазда ва журналазда. Гьеб гьабизе бокьун бугищ нужее?",
        "blocklink": "Блокалда лъезе",
        "contribslink": "хӀалтӀи",
        "move-page-legend": "Гьумералъул цӀар хисизе",
+       "newtitle": "ЦІияб цІар:",
+       "move-watch": "Басрияб ва цІияб цІаразул гьумерал дурго халкквеязул сияхІалде журазе",
        "movepagebtn": "Гьумералъул цӀар хисизе",
-       "movelogpage": "ЦӀарал хисиялъул журнал",
+       "movetalk": "Гьелдаго данде кколеб гьоркьоб лъеялъул гьумералъулги цІар хисизе",
+       "move-subpages": "($1 щвезегІан) гъоркьгьумеразул цІарал хисизе",
+       "movelogpage": "ЦІарал хисиялъул журнал",
+       "movesubpagetext": "Гьаб гьумералъул $1 {{PLURAL:$1|гъоркьгьумер|гъоркьгьумер|гъоркьгьумер}} буго.",
+       "move-leave-redirect": "Цоги рахъалдехун сверизабунин абураб ишара лъезе",
        "thumbnail-more": "КӀодолъизабизе",
        "tooltip-pt-userpage": "Дур гӀахьалчиясул гьумер",
        "tooltip-pt-mytalk": "Дур бахӀсалъул гьумер",
        "exif-orientation-1": "Нормалияб",
        "namespacesall": "киналго",
        "monthsall": "киналго",
+       "table_pager_limit_submit": "ТӀубазабизе",
        "hijri-calendar-m1": "МухІаррам",
        "hijri-calendar-m3": "РабигІул-Аввал",
        "hijri-calendar-m4": "РабигІу Ссани",
index e8d4688..9da59b4 100644 (file)
        "searcharticle": "Старонка",
        "history": "Гісторыя старонкі",
        "history_short": "Гісторыя",
+       "history_small": "гісторыя",
        "updatedmarker": "абноўлена з часу майго апошняга наведваньня",
        "printableversion": "Вэрсія для друку",
        "permalink": "Сталая спасылка",
        "node-count-exceeded-warning": "Старонка перавысіла дазволеную колькасьць вузлоў",
        "expansion-depth-exceeded-category": "Старонкі зь перавышанай глыбінёй уключэньня",
        "expansion-depth-exceeded-category-desc": "Старонка перавышае максымальную глыбіню раскрыцьця.",
-       "expansion-depth-exceeded-warning": "СÑ\82аÑ\80онка Ð¿ÐµÑ\80авÑ\8bÑ\81Ñ\96ла Ð´Ð°Ð·Ð²Ð¾Ð»ÐµÐ½Ñ\83Ñ\8e Ð³Ð»Ñ\8bбÑ\96нÑ\8e Ñ\9eклÑ\8eÑ\87Ñ\8dнÑ\8cнÑ\8fÑ\9e",
-       "parser-unstrip-loop-warning": "Ð\92Ñ\8bзнаÑ\87анаÑ\8f Ð½ÐµÐ·Ð°Ñ\87Ñ\8bненаÑ\8f Ð¿Ñ\8fÑ\82лÑ\8f",
+       "expansion-depth-exceeded-warning": "СÑ\82аÑ\80онка Ð¿ÐµÑ\80авÑ\8bÑ\81Ñ\96ла Ð´Ð°Ð·Ð²Ð¾Ð»ÐµÐ½Ñ\83Ñ\8e Ð³Ð»Ñ\8bбÑ\96нÑ\8e Ñ\80азгоÑ\80Ñ\82ванÑ\8cнÑ\8f",
+       "parser-unstrip-loop-warning": "Ð\92Ñ\8bзнаÑ\87анаÑ\8f Ð¿Ñ\8fÑ\82лÑ\8f unstrip",
        "parser-unstrip-recursion-limit": "Перавышанае абмежаваньне глыбіні рэкурсіі ($1)",
        "converter-manual-rule-error": "Знойдзеная памылка ў ручным правіле моўнага канвэртара",
        "undo-success": "Рэдагаваньне можа быць адмененае. Калі ласка, параўнайце адрозьненьні паміж вэрсіямі, каб упэўніцца, што гэта адпаведныя зьмены, а потым запішыце зьмены для сканчэньня рэдагаваньня.",
        "rcfilters-filter-userExpLevel-learner-label": "Вучні",
        "rcfilters-filter-userExpLevel-learner-description": "Болей дзён актыўнасьці і правак, чым у «навічкоў», але меней чым у «дасьведчаных удзельнікаў».",
        "rcfilters-filter-userExpLevel-experienced-label": "Дасьведчаныя ўдзельнікі",
+       "rcfilters-filter-userExpLevel-experienced-description": "Больш за 30 дзён актыўнасьці і 500 правак.",
        "rcnotefrom": "Ніжэй {{PLURAL:$5|знаходзіцца зьмена|знаходзяцца зьмены}} з <strong>$4 $3</strong> (да <strong>$1</strong> на старонку).",
        "rclistfrom": "Паказаць зьмены з $2 $3",
        "rcshowhideminor": "$1 дробныя праўкі",
        "uncategorizedcategories": "Некатэгарызаваныя катэгорыі",
        "uncategorizedimages": "Некатэгарызаваныя файлы",
        "uncategorizedtemplates": "Некатэгарызаваныя шаблёны",
+       "uncategorized-categories-exceptionlist": "# Утрымлівае сьпіс катэгорыяў, якія не павінны згадвацца на Special:UncategorizedCategories. Па адной на радок, пачынаецца з «*». Радкі, якія пачынаюцца зь іншага сымбалю (у тым ліку і з прабелу) ігнаруюцца. Ужывайце «#» для камэнтароў.",
        "unusedcategories": "Катэгорыі, якія не выкарыстоўваюцца",
        "unusedimages": "Файлы, якія не выкарыстоўваюцца",
        "wantedcategories": "Запатрабаваныя катэгорыі",
        "apisandbox-sending-request": "Адпраўка API-запыту…",
        "apisandbox-loading-results": "Атрымліваем API-вынікі…",
        "apisandbox-results-error": "Адбылася памылка пры загрузцы адказу на API-запыт: $1.",
+       "apisandbox-request-params-json": "JSON-парамэтры:",
        "apisandbox-request-url-label": "URL-адрас запыту:",
        "apisandbox-request-time": "Час запыту: {{PLURAL:$1|$1 мс}}",
        "apisandbox-results-fixtoken": "Выпраўце токен і паўтарыце адпраўку",
        "proxyblockreason": "Ваш IP-адрас быў заблякаваны таму што ён належыць адкрытаму проксі.\nКалі ласка, зьвяжыцеся з Вашым Інтэрнэт-правайдарам альбо са службай тэхнічнай падтрымкі і паведаміце ім пра гэтую сур'ёзную праблему бясьпекі.",
        "sorbsreason": "Ваш IP-адрас знаходзіцца ў сьпісе адкрытых проксі ў DNSBL, якім карыстаецца {{SITENAME}}.",
        "sorbs_create_account_reason": "Ваш IP-адрас знаходзіцца ў сьпісе адкрытых проксі ў DNSBL, якім карыстаецца {{SITENAME}}.\nВы ня зможаце стварыць рахунак",
+       "softblockrangesreason": "Ананімны ўнёсак не дазволены з вашага IP-адрасу ($1). Калі ласка, увайдзіце ў сыстэму.",
        "xffblockreason": "IP-адрас, прыведзены ў загалоўку X-Forwarded-For, які належыць або вам, або проксі-сэрвэру, быў заблякаваны. Прычынай блякаваньня было: $1",
        "cant-see-hidden-user": "Удзельнік, якога Вы спрабуеце заблякаваць, ужо заблякаваны і схаваны. З-за таго, што Вы ня маеце правоў хаваньня ўдзельнікаў, Вы ня можаце бачыць альбо зьмяняць блякаваньне удзельніка.",
        "ipbblocked": "Вы ня можаце блякаваць ці раблякоўваць іншых удзельнікаў, таму што заблякаваныя самі",
        "pagelang-language": "Мова",
        "pagelang-use-default": "Ужываць мову па змоўчаньні",
        "pagelang-select-lang": "Абярыце мову",
+       "pagelang-reason": "Прычына",
        "pagelang-submit": "Адправіць",
+       "pagelang-nonexistent-page": "Старонка $1 не існуе.",
+       "pagelang-unchanged-language": "Мова старонкі $1 ужо вызначаная як $2.",
        "right-pagelang": "Зьмяніць мову старонкі",
        "action-pagelang": "зьмену мовы старонкі",
        "log-name-pagelang": "Журнал зьменаў мовы",
index d8a0a8c..0657486 100644 (file)
        "searcharticle": "Артыкул",
        "history": "Гісторыя старонкі",
        "history_short": "Гісторыя",
+       "history_small": "гісторыя",
        "updatedmarker": "абноўлена ад часу апошняга наведвання",
        "printableversion": "Для друку",
        "permalink": "Нязменная спасылка",
        "parser-template-loop-warning": "Цыклічнае ўключэнне шаблона: [[$1]]",
        "parser-template-recursion-depth-warning": "Вычарпаны ліміт глыбіні ўключэння шаблонаў ($1)",
        "language-converter-depth-warning": "Перавышана глыбіня моўнага канвертэра ($1)",
-       "node-count-exceeded-category": "СÑ\82аÑ\80онкÑ\96, Ñ\8fкÑ\96Ñ\8f Ð¿ÐµÑ\80аÑ\81Ñ\8fгнÑ\83лÑ\96 ÐºÐ¾Ð»Ñ\8cкаÑ\81Ñ\86Ñ\8c ÐºÑ\80опак",
+       "node-count-exceeded-category": "СÑ\82аÑ\80онкÑ\96, Ñ\8fкÑ\96Ñ\8f Ð¿ÐµÑ\80аÑ\81Ñ\8fгнÑ\83лÑ\96 ÐºÐ¾Ð»Ñ\8cкаÑ\81Ñ\86Ñ\8c Ð²Ñ\83злоÑ\9e",
        "node-count-exceeded-category-desc": "На старонцы перавышана максімальная колькасць кропак.",
-       "node-count-exceeded-warning": "СÑ\82аÑ\80онка Ð¿ÐµÑ\80аÑ\81Ñ\8fгнÑ\83ла ÐºÐ¾Ð»Ñ\8cкаÑ\81Ñ\86Ñ\8c ÐºÑ\80опак",
+       "node-count-exceeded-warning": "СÑ\82аÑ\80онка Ð¿ÐµÑ\80аÑ\81Ñ\8fгнÑ\83ла ÐºÐ¾Ð»Ñ\8cкаÑ\81Ñ\86Ñ\8c Ð²Ñ\83злоÑ\9e",
        "expansion-depth-exceeded-category": "Старонкі, якія перасягнулі глыбіню разгортвання",
        "expansion-depth-exceeded-category-desc": "На старонцы перасягнута максімальная глыбіня разгортвання.",
        "expansion-depth-exceeded-warning": "Старонка перасягнула глыбіню разгортвання",
        "saveprefs": "Запісаць",
        "restoreprefs": "Аднавіць усе прадвызначэнні (ва ўсіх раздзелах)",
        "prefs-editing": "Праца",
-       "rows": "Радкі:",
-       "columns": "Калонкі:",
        "searchresultshead": "Пошук",
        "stub-threshold": "Парог для паказу спасылкі як на пачатковы артыкул ($1):",
        "stub-threshold-sample-link": "прыклад",
        "recentchanges-legend-heading": "<strong>Легенда:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (гл. асобна [[Special:NewPages|новыя старонкі]])",
        "recentchanges-submit": "Паказаць",
+       "rcfilters-filter-userExpLevel-learner-description": "Болей дзён актыўнасці і правак, чым у «навічкоў», але меней чым у «дасведчаных удзельнікаў».",
+       "rcfilters-filter-userExpLevel-experienced-description": "Больш за 30 дзён актыўнасці і 500 правак.",
        "rcnotefrom": "Ніжэй {{PLURAL:$5|паказана змяненне|паказаны змены}} з <strong>$3, $4</strong> (не больш за <strong>$1</strong>).",
        "rclistfrom": "Паказаць змены з $3 $2",
        "rcshowhideminor": "$1 дробныя праўкі",
index 2a3c356..a29d90a 100644 (file)
        "saveprefs": "Sačuvaj",
        "restoreprefs": "Vrati sve postavke na podrazumijevane (u svim odjeljcima)",
        "prefs-editing": "Uređivanje",
-       "rows": "Redova:",
-       "columns": "Kolona:",
        "searchresultshead": "Pretraga",
        "stub-threshold": "Prag za formatiranje linkova ka stranicama u začetku ($1):",
        "stub-threshold-sample-link": "primjer",
        "prefs-help-recentchangescount": "Ovo uključuje nedavne izmjene, historije stranice i zapisnike.",
        "prefs-help-watchlist-token2": "Ovo je tajni ključ sažetka vašeg spiska izmjena. Ko god da ga zna, moći će ga čitati. Ne dijelite ga ni s kim. Ako je potrebno, [[Special:ResetTokens|možete ga ponovo postaviti]].",
        "savedprefs": "Vaše postavke su sačuvane.",
-       "savedrights": "Korisnička prava {{GENDER:$1|korisnika|korisnice}} $1 su sačuvana.",
+       "savedrights": "Korisničke grupe {{GENDER:$1|korisnika|korisnice}} $1 su sačuvana.",
        "timezonelegend": "Vremenska zona:",
        "localtime": "Lokalno vrijeme:",
        "timezoneuseserverdefault": "Koristi postavke wikija ($1)",
        "prefswarning-warning": "Napravili ste promjene u vašim postavkama koje još uvijek nisu sačuvane. Ako napustite ovu stranicu bez da pritisnete na \"$1\", postavke neće biti ažurirane.",
        "prefs-tabs-navigation-hint": "Savjet: Možete koristiti tipke sa lijevom i desnom strelicom za kretanje kroz kartice.",
        "userrights": "Postavke korisničkih prava",
-       "userrights-lookup-user": "Menadžment korisničkih grupa",
+       "userrights-lookup-user": "Izaberi korisnika",
        "userrights-user-editname": "Upišite korisničko ime:",
-       "editusergroup": "Uredi {{GENDER:$1|korisničke}} grupe",
+       "editusergroup": "Uredi korisničke grupe",
        "editinguser": "Mijenjate korisnička prava korisnika <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Uredi korisničke grupe",
        "saveusergroups": "Sačuvaj {{GENDER:$1|korisničke}} grupe",
index 96f4e0c..0af0cc8 100644 (file)
        "searcharticle": "Gå til",
        "history": "Historik",
        "history_short": "Historik",
+       "history_small": "historik",
        "updatedmarker": "opdateret siden seneste besøg",
        "printableversion": "Udskriftsvenlig udgave",
        "permalink": "Permanent henvisning",
        "saveprefs": "Gem indstillinger",
        "restoreprefs": "Gendan alle standardindstillinger (i alle sektioner)",
        "prefs-editing": "Redigering",
-       "rows": "Rækker",
-       "columns": "Kolonner",
        "searchresultshead": "Søgeresultater",
        "stub-threshold": "Grænse før formatering af stublink ($1):",
        "stub-threshold-disabled": "Deaktiveret",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (se også [[Special:NewPages|listen over nye sider]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "recentchanges-submit": "Vis",
+       "rcfilters-activefilters": "Aktive filtre",
+       "rcfilters-invalid-filter": "Ugyldigt filter",
+       "rcfilters-filterlist-title": "Filtre",
+       "rcfilters-filter-userExpLevel-experienced-label": "Erfarne brugere",
        "rcnotefrom": "Nedenfor er op til '''$1''' {{PLURAL:$5|ændring|ændringer}} siden '''$2''' vist.",
        "rclistfrom": "Vis nye ændringer startende fra den $3 kl. $2",
        "rcshowhideminor": "$1 mindre ændringer",
        "apisandbox-reset": "Ryd",
        "apisandbox-retry": "Forsøg igen",
        "apisandbox-examples": "Eksempler",
+       "apisandbox-dynamic-parameters-add-placeholder": "Parameternavn",
        "apisandbox-results": "Resultater",
        "apisandbox-request-url-label": "Forespurgt URL:",
        "apisandbox-request-time": "Forespørgselstid: {{PLURAL:$1|$1 ms}}",
        "sp-contributions-newbies-title": "Brugerbidrag fra nye konti",
        "sp-contributions-blocklog": "blokeringslog",
        "sp-contributions-suppresslog": "undertrykte brugerbidrag",
-       "sp-contributions-deleted": "slettede brugerbidrag",
+       "sp-contributions-deleted": "slettede {{GENDER:$1|brugerbidrag}}",
        "sp-contributions-uploads": "uploads",
        "sp-contributions-logs": "loglister",
        "sp-contributions-talk": "diskussion",
        "sp-contributions-username": "IP-adresse eller brugernavn:",
        "sp-contributions-toponly": "Vis kun redigeringer, der er aktuelle versioner",
        "sp-contributions-newonly": "Vis kun redigeringer, der er sideoprettelser",
+       "sp-contributions-hideminor": "Skjul mindre ændringer",
        "sp-contributions-submit": "Søg",
        "whatlinkshere": "Hvad henviser hertil",
        "whatlinkshere-title": "Sider der linker til \"$1\"",
        "ipb-unblock": "Frigive IP-adresse/bruger",
        "ipb-blocklist": "Vis alle blokeringer som er i kraft",
        "ipb-blocklist-contribs": "Bidrag fra {{GENDER:$1|$1}}",
+       "ipb-blocklist-duration-left": "$1 tilbage",
        "unblockip": "Ophæv blokering af bruger",
        "unblockiptext": "Brug formularen herunder for at gendanne skriveadgangen for en tidligere blokeret IP-adresse eller bruger.",
        "ipusubmit": "Ophæv blokeringen",
        "movenotallowedfile": "Du har ikke tilladelse til at flytte filer.",
        "cant-move-user-page": "Du har ikke tilladelse til at flytte brugersider (bortset fra undersider).",
        "cant-move-to-user-page": "Du har ikke tilladelse til at flytte brugersider (bortset fra til brugerundersider).",
+       "namespace-nosubpages": "Navnerummet \"$1\" tillader ikke undersider.",
        "newtitle": "Ny titel:",
        "move-watch": "Overvåg siden",
        "movepagebtn": "Flyt side",
        "thumbnail-temp-create": "Kunne ikke oprette midlertidig miniaturefil",
        "thumbnail-dest-create": "Kunne ikke gemme miniaturebillede til destinationen",
        "thumbnail_invalid_params": "Ugyldige parametre for miniaturebillede",
+       "thumbnail_toobigimagearea": "Fil med mål større end $1",
        "thumbnail_dest_directory": "Kataloget kan ikke oprettes.",
        "thumbnail_image-type": "Billedtypen understøttes ikke",
        "thumbnail_gd-library": "Ufuldstændig konfiguration af GD-biblioteket: funktionen $1 mangler",
        "tooltip-ca-nstab-category": "Se kategorisiden",
        "tooltip-minoredit": "Marker dette som en mindre ændring",
        "tooltip-save": "Gem dine ændringer",
+       "tooltip-publish": "Offentliggør dine ændringer",
        "tooltip-preview": "Forhåndsvis dine ændringer, brug venligst denne funktion inden du gemmer!",
        "tooltip-diff": "Vis hvilke ændringer du har lavet i teksten.",
        "tooltip-compareselectedversions": "Se forskellene imellem de to valgte versioner af denne side.",
        "tags-actions-header": "Handlinger",
        "tags-active-yes": "Ja",
        "tags-active-no": "Nej",
-       "tags-source-extension": "Defineret af en tilføjelse",
+       "tags-source-extension": "Defineret af programmellet",
        "tags-source-none": "Anvendes ikke længere",
        "tags-edit": "redigér",
        "tags-delete": "slet",
        "searchsuggest-containing": "indeholder...",
        "api-error-badaccess-groups": "Du har ikke tilladelse til at overføre filer til denne wiki.",
        "api-error-badtoken": "Intern fejl: ugyldigt mærke.",
+       "api-error-blocked": "Du er blevet blokeret fra at redigere.",
        "api-error-copyuploaddisabled": "At lægge filer op via hjemmesideadresser er slået fra på denne server.",
        "api-error-duplicate": "Der er allerede {{PLURAL:$1|en anden fil|nogle andre filer}} med samme indhold på webstedet.",
        "api-error-duplicate-archive": "Der var allerede {{PLURAL:$1|en anden fil|nogle andre filer}} med samme indhold på webstedet, men {{PLURAL:$1|den|de}} blev slettet.",
        "api-error-unclassified": "En ukendt fejl opstod.",
        "api-error-unknown-code": "Ukendt fejl: \"$1\"",
        "api-error-unknown-error": "Intern fejl: noget gik galt under forsøget på at lægge din fil op.",
-       "api-error-unknown-warning": "Ukendt advarsel: $1",
+       "api-error-unknown-warning": "Ukendt advarsel: \"$1\".",
        "api-error-unknownerror": "Ukendt fejl: \"$1\".",
        "api-error-uploaddisabled": "Oplægning af filer er slået fra på denne wiki.",
        "api-error-verification-error": "Denne fil kan være beskadiget, eller den har måske en forkert filendelse.",
        "expand_templates_generate_xml": "Vis analysetræ som XML",
        "expand_templates_generate_rawhtml": "Vis rå HTML",
        "expand_templates_preview": "Forhåndsvisning",
-       "pagelanguage": "Valg af sidesprog",
+       "pagelanguage": "Ændr sidens sprog",
        "pagelang-name": "Side",
        "pagelang-language": "Sprog",
        "pagelang-use-default": "Brug standardsprog",
        "pagelang-select-lang": "Vælg sprog",
+       "pagelang-reason": "Begrundelse",
        "right-pagelang": "Ændre sidesproget",
        "mediastatistics": "Mediestatistik",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIME-type",
        "mediastatistics-table-extensions": "Mulige filendelser",
        "mediastatistics-table-count": "Antal filer",
        "mw-widgets-dateinput-placeholder-month": "ÅÅÅÅ-MM",
        "mw-widgets-titleinput-description-new-page": "side eksisterer ikke endnu",
        "mw-widgets-titleinput-description-redirect": "omdiriger til $1",
+       "mw-widgets-categoryselector-add-category-placeholder": "Tilføj en kategori...",
        "randomrootpage": "Tilfældig stamside",
        "log-action-filter-block": "Blokeringstype:",
        "log-action-filter-delete": "Sletningstype:",
        "log-action-filter-protect-modify": "Ændring af beskyttelse",
        "log-action-filter-protect-unprotect": "Fjernede beskyttelse",
        "log-action-filter-protect-move_prot": "Flyttede beskyttelse",
-       "authmanager-provider-temporarypassword": "Midlertidig adgangskode"
+       "authmanager-provider-temporarypassword": "Midlertidig adgangskode",
+       "cannotauth-not-allowed-title": "Adgang nægtet",
+       "cannotauth-not-allowed": "Du har ikke tilladelse til at bruge denne side",
+       "credentialsform-account": "Kontonavn:"
 }
index 17b9781..6c5811b 100644 (file)
        "usernameinprogress": "Qandê nê karberi hesab vıraştışondewamnkeno.  Tay bıpawê",
        "userexists": "Jewna karber enê nami karneno.\nMara reca xorê jewna name bınusnê.",
        "loginerror": "Xetayê hesab ekerdışi",
-       "createacct-error": "Xetaya vıraştışê hesabi",
+       "createacct-error": "Xetay vıraştışê hesabi",
        "createaccounterror": "Hesab nêvırazyeno: $1",
        "nocookiesnew": "Hesabê karberi vıraziya, labelê şıma nêşay cı kewê.\nSemedê akerdışê hesabi çerezê {{SITENAME}}i gurêniyenê.\nŞıma çerezi qapan kerdi.\nRavêri inan akerê, dıma be name u parola şımawa newiye cı kewê.",
        "nocookieslogin": "Semedê akerdışê hesabi çerezê {{SITENAME}}i gurêniyenê.\nŞıma çerezi qapan kerdi.\nRavêri inan akerê u reyna bıcerrebnê.",
        "edit-hook-aborted": "Vurnayiş vınderiya.\nYew sebeb beyan nibı.",
        "edit-gone-missing": "Pel rocanebiyaye niyo.\nHewna kerde aseno.",
        "edit-conflict": "Têverabiyayışê vurnayışi.",
-       "edit-no-change": "Vurnayişê şıma qebul nêbı, çunke nuşte de yew vurnayiş n3evıraziya.",
+       "edit-no-change": "Vırnayışê şıma qebul nêbı, çunke nuşte de yew vırnayış nêvıraziyo.",
        "postedit-confirmation-created": "Pele vıraziye.",
        "postedit-confirmation-restored": "Pele anciya vıraziye.",
        "postedit-confirmation-saved": "Vurnayışê to qeyd biyo.",
        "prefs-user-pages": "Pelê karberi",
        "prefs-personal": "Profilê karberi",
        "prefs-rc": "Vurnayışê peyêni",
-       "prefs-watchlist": "Listey pawıteyan",
+       "prefs-watchlist": "Lista Teqibi",
        "prefs-editwatchlist": "Lista seyrkerdışi bıvurne",
        "prefs-editwatchlist-label": "Listey serkerdışanê cıkewtışi timar kerê",
        "prefs-editwatchlist-edit": "Listey seyr kerdışê sernameyanê xo bımotné u timar kerê",
        "nchanges": "$1 {{PLURAL:$1|vurnayış|vurnayışi}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|ziyaretê peyêni ra nata}}",
        "enhancedrc-history": "tarix",
-       "recentchanges": "Vurnayışê peyêni",
+       "recentchanges": "Vırnayışê peyêni",
        "recentchanges-legend": "Tercihê vurnayışanê peyênan",
-       "recentchanges-summary": "Wiki sero vurnayışê peyêni asenê.",
+       "recentchanges-summary": "Wiki sero vırnayışê peyêni asenê.",
        "recentchanges-noresult": "Goreyê kriteranê kıfşkerdeyan ra qet yew vurnayış nêvêniya.",
        "recentchanges-feed-description": "Ena feed dı vurnayişanê tewr peniyan teqip bık.",
        "recentchanges-label-newpage": "Enê vurnayışi yew pela newiye vıraşta.",
        "rcshowhideliu": "karberê qeydbiyay $1",
        "rcshowhideliu-show": "Bımotne",
        "rcshowhideliu-hide": "Bınımne",
-       "rcshowhideanons": "karberanê bênameyan $1",
+       "rcshowhideanons": "$1 karberê bênamey",
        "rcshowhideanons-show": "Bımotne",
        "rcshowhideanons-hide": "Bınımne",
        "rcshowhidepatr": "$1 vurnayışê ke dewriya geyrayê",
        "ipblocklist-submit": "Cı geyre",
        "ipblocklist-localblock": "blokê mehelli",
        "ipblocklist-otherblocks": "{{PLURAL:$1|blokê|blokê}} bini",
-       "infiniteblock": "ebedî",
-       "expiringblock": "roca $1i saeta $2i de qediyena",
+       "infiniteblock": "ebedi",
+       "expiringblock": "$1, $2 de qediyeno",
        "anononlyblock": "teyna karbero anonim",
-       "noautoblockblock": "otoblok nihebitîyeno",
-       "createaccountblock": "Hesab viraştîş blok biyo",
-       "emailblock": "e-mail blok biyo",
-       "blocklist-nousertalk": "ti nieşken pele minaqaşe xo bivurne",
+       "noautoblockblock": "otobloke dariya we",
+       "createaccountblock": "Hesab vıraştene men biya",
+       "emailblock": "e-mail men kerd",
+       "blocklist-nousertalk": "Perra xo'ya suhbeti vırnaene nêbena",
        "ipblocklist-empty": "Listay kılit kerdışi venga.",
        "ipblocklist-no-results": "Adresa IPya waştiye ya zi nameyê karberi kılit nêbiyo.",
        "blocklink": "kılit ke",
-       "unblocklink": "bloki wedare",
+       "unblocklink": "blokey wedare",
        "change-blocklink": "kılit kerdışi bıvurne",
        "contribslink": "iştıraki",
        "emaillink": "e-poste bırışe",
        "nocredits": "qey no peli hema/hona yew şınasnameyi mewcud niyo",
        "spamprotectiontitle": "filtreya spami yo pawıtışê verba-vındertışi",
        "spamprotectiontext": "pel o ke şıma waşt qeyd bıkeri hetê filtreya spami ra blok bı. ihtimalo gırdek o teber-gıreyê listeya sabıqayi ra yo.",
-       "spamprotectionmatch": "nuşte yo ke rıcnayoxê spami herikneno: $1",
+       "spamprotectionmatch": "nuşteyo ke rıcnayoxê spami herikneno: $1",
        "spambot_username": "wikimedya spam-pakkerdışi",
        "spam_reverting": "agêriyeno revizyon o ke tawayê $1 ıney piya çiniyo",
        "spam_blanking": "Revizyonê gredê $1 vineyay, wa weng kero",
        "markaspatrolledtext": "Ena pele kontrol biyayi nışan ke",
        "markedaspatrolled": "Nişan biyo ke verni de devriye biyo",
        "markedaspatrolledtext": "Versiyone weçinaye [[:$1]] nişan biyo ke devriye biyo",
-       "rcpatroldisabled": "Dewriyaya vurnayışê peyêni nêxebetiyena",
+       "rcpatroldisabled": "Dewriyay vırnayışê peyêni nêxebetiyena",
        "rcpatroldisabledtext": "Devriyeyê vurnayışê peyêni inke kefilnaye biyo u nihebitiyeno",
        "markedaspatrollederror": "Nişan nibeno ke devriye biyo",
        "markedaspatrollederrortext": "Ti gani revizyon işaret bike ke Nişanê devriye biyo",
index 6fee2ed..fd35f60 100644 (file)
        "listgrouprights-namespaceprotection-header": "Περιορισμοί ονοματοχώρων",
        "listgrouprights-namespaceprotection-namespace": "Ονοματοχώρος",
        "listgrouprights-namespaceprotection-restrictedto": "Δικαίωμα(τα) που επιτρέπει(ουν) σε χρήστη να επεξεργαστεί",
-       "listgrants": "Î\95Ï\80ιÏ\87οÏ\81ηγήÏ\83εις",
-       "listgrants-grant": "Î\95Ï\80ιÏ\87οÏ\81ήγηση",
+       "listgrants": "ΠαÏ\81αÏ\87Ï\8eÏ\81ηÏ\83η Ï\80Ï\81Ï\8cÏ\83βαÏ\83ης",
+       "listgrants-grant": "ΠÏ\81Ï\8cÏ\83βαση",
        "listgrants-rights": "Δικαιώματα",
        "trackingcategories": "Κατηγορίες παρακολούθησης",
        "trackingcategories-summary": "Αυτή η σελίδα εμφανίζει τις κατηγορίες παρακολούθησης το περιεχόμενο των οποίων συμπληρώνεται αυτόματα από το λογισμικό MediaWiki. Τα ονόματά τους μπορεί να αλλαχθούν με την αλλαγή των σχετικών μηνυμάτων συστήματος στον ονοματοχώρο {{ns:8}}.",
index 1e37d40..68abd7c 100644 (file)
        "usercssispublic": "Please note: CSS subpages should not contain confidential data as they are viewable by other users.",
        "restrictionsfield-badip": "Invalid IP address or range: $1",
        "restrictionsfield-label": "Allowed IP ranges:",
-       "restrictionsfield-help": "One IP address or CIDR range per line. To enable everything, use<br><code>0.0.0.0/0</code><br><code>::/0</code>",
+       "restrictionsfield-help": "One IP address or CIDR range per line. To enable everything, use:<pre>0.0.0.0/0\n::/0</pre>",
        "revid": "revision $1",
        "pageid": "page ID $1"
 }
index 254a923..8ebf9bd 100644 (file)
        "headline-anchor-title": "Ligilo al tiu ĉi sekcio",
        "special-characters-group-latin": "Latina",
        "special-characters-group-latinextended": "Latina etendita",
-       "special-characters-group-ipa": "IPA",
+       "special-characters-group-ipa": "IFA",
        "special-characters-group-symbols": "Simboloj",
        "special-characters-group-greek": "Greka",
        "special-characters-group-greekextended": "Greka etendita",
index f0fcfc1..9ae18d0 100644 (file)
        "searcharticle": "Ir",
        "history": "Historial",
        "history_short": "Historial",
+       "history_small": "historial",
        "updatedmarker": "actualizado desde mi última visita",
        "printableversion": "Versión para imprimir",
        "permalink": "Enlace permanente",
        "uncategorizedcategories": "Categorías sin categorizar",
        "uncategorizedimages": "Archivos sin categorizar",
        "uncategorizedtemplates": "Plantillas sin categorizar",
+       "uncategorized-categories-exceptionlist": "# Contiene una lista de categorías que no deberían figurar en Special:UncategorizedCategories. Una categoría por línea, empezando por «*». Las líneas que empiecen por otro carácter (espacios en blanco incluidos) se ignorarán. Usa «#» para añadir comentarios.",
        "unusedcategories": "Categorías sin uso",
        "unusedimages": "Archivos sin uso",
        "wantedcategories": "Categorías requeridas",
index 5269c65..c687b6c 100644 (file)
        "searcharticle": "Joan",
        "history": "Orriaren historia",
        "history_short": "Historia",
+       "history_small": "historia",
        "updatedmarker": "nire azkeneko bisitaz geroztik eguneratuta",
        "printableversion": "Inprimatzeko bertsioa",
        "permalink": "Lotura finkoa",
        "views": "Ikustaldiak",
        "toolbox": "Tresnak",
        "tool-link-userrights": "Erabiltzaile {{GENDER:$1|taldea}} aldatu",
+       "tool-link-userrights-readonly": "{{GENDER:$1|Erabiltzailearen}} taldeak  ikusi",
        "tool-link-emailuser": "{{GENDER:$1|Erabiltzale}} honi e-posta bidali",
        "userpage": "Lankide orrialdea ikusi",
        "projectpage": "Proiektuaren orrialdea ikusi",
        "saveprefs": "Gorde",
        "restoreprefs": "Konfigurazio lehenetsi guztiak berrezarri (sekzio guztietan)",
        "prefs-editing": "Aldatzen",
-       "rows": "Lerroak:",
-       "columns": "Zutabeak:",
        "searchresultshead": "Bilaketa",
        "stub-threshold": "<a href=\"#\" class=\"stub\">stub link</a> formaturako atalasea ($1):",
        "stub-threshold-sample-link": "adibidea",
index f33653a..0862c21 100644 (file)
        "saveprefs": "ذخیره",
        "restoreprefs": "برگرداندن تمام تنظیمات پیش‌فرض (در تمامی قسمت‌ها)",
        "prefs-editing": "ویرایش",
-       "rows": "تعداد سطرها:",
-       "columns": "تعداد ستون‌ها:",
        "searchresultshead": "جستجو",
        "stub-threshold": "آستانهٔ ویرایش پیوندهای ناقص ($1):",
        "stub-threshold-sample-link": "نمونه",
        "restriction-level-all": "هر سطحی",
        "undelete": "احیای صفحهٔ حذف‌شده",
        "undeletepage": "نمایش و احیای صفحه‌های حذف‌شده",
-       "undeletepagetitle": "'''آن چه در ادامه می‌آید شامل نسخه‌های حذف شدهٔ [[:$1|$1]] است'''.",
+       "undeletepagetitle": "<strong>آنچه در ادامه می‌آید شامل نسخه‌های حذف شدهٔ [[:$1|$1]] است</strong>.",
        "viewdeletedpage": "نمایش صفحه‌های حذف‌شده",
        "undeletepagetext": "{{PLURAL:$1|صفحهٔ زیر حدف شده|صفحه‌های زیر حذف شده‌اند}} ولی هنوز در بایگانی {{PLURAL:$1|هست|هستند}} و {{PLURAL:$1|می‌تواند احیا شود|می‌توانند احیا شوند}}.\nاین بایگانی ممکن است هر چند وقت تمیز شود.",
        "undelete-fieldset-title": "احیای نسخه‌ها",
index 5a59952..9f26ba0 100644 (file)
        "unusedimages": "Fichiers orphelins",
        "wantedcategories": "Catégories les plus demandées",
        "wantedpages": "Pages les plus demandées",
-       "wantedpages-summary": "Liste des pages inexistantes ayant le plus de lien vers elles, en excluant les pages n’ayant que des redirections pointant vers elles. Pour avoir une liste des pages inexistantes qui ont des redirections pointant vers elles, voyez [[{{#special:BrokenRedirects}}|la liste des redirections cassées]].",
+       "wantedpages-summary": "Liste des pages inexistantes ayant le plus de liens vers elles, en excluant les pages n’ayant que des redirections pointant vers elles. Pour avoir une liste des pages inexistantes qui ont des redirections pointant vers elles, voyez [[{{#special:BrokenRedirects}}|la liste des redirections cassées]].",
        "wantedpages-badtitle": "Titre invalide dans les résultats : $1",
        "wantedfiles": "Fichiers les plus demandés",
        "wantedfiletext-cat": "Les fichiers suivants sont utilisés, mais n'existent pas localement. Les fichiers qui se trouvent sur un dépôt externe peuvent être listés ici, bien qu'ils soient, de fait, déjà disponibles. Tous ces faux positifs seront <del>barrés</del>. En outre, les pages qui intègrent des fichiers qui n'existent pas sont répertoriées dans [[:$1]].",
        "deletereason-dropdown": "* Motifs de suppression les plus courants\n** Pourriel\n** Vandalisme\n** Violation des droits d’auteur\n** Demande de l’auteur\n** Redirection cassée",
        "delete-edit-reasonlist": "Modifier les motifs de suppression de page",
        "delete-toobig": "Cette page possède un historique important de modifications, dépassant $1 version{{PLURAL:$1||s}}.\nLa suppression de telles pages a été restreinte pour prévenir des perturbations accidentelles de {{SITENAME}}.",
-       "delete-warning-toobig": "Cette page possède un historique important de modifications, dépassant $1 version{{PLURAL:$1||s}}.\nLa supprimer peut perturber le fonctionnement de la base de données de {{SITENAME}} ;\nveuiller ne procéder qu'avec prudence.",
+       "delete-warning-toobig": "Cette page possède un historique important de modifications, dépassant $1 version{{PLURAL:$1||s}}.\nLa supprimer peut perturber le fonctionnement de la base de données de {{SITENAME}} ;\nveuillez procéder avec prudence.",
        "deleteprotected": "Vous ne pouvez pas supprimer cette page car elle a été protégée.",
        "deleting-backlinks-warning": "<strong>Attention :</strong> [[Special:WhatLinksHere/{{FULLPAGENAME}}|D’autres pages]] ont un lien vers ou incorporent la page que vous allez supprimer.",
        "rollback": "Révoquer les modifications",
index a49910a..288f3a3 100644 (file)
        "searcharticle": "Jaao",
        "history": "Panna ke itihaas",
        "history_short": "Itihaas",
+       "history_small": "itihaas",
        "updatedmarker": "hamaar pahile waala visit ke baad badla gais hai",
        "printableversion": "Chhape ke khaatir",
        "permalink": "Pakka jorr",
        "wlshowlast": "Pichhla $1 ghanta $2 din  ke dekhao",
        "watchlist-hide": "Lukao",
        "watchlist-submit": "Dekhao",
+       "wlshowtime": "Kon samay ke display karaa jaae:",
+       "wlshowhideminor": "chhotaa badlao",
+       "wlshowhidebots": "bots",
+       "wlshowhideliu": "registered sadasya",
+       "wlshowhideanons": "binaa naam ke sadasya",
+       "wlshowhidepatr": "jon badlao pe pahraa dewaa jaae hai",
+       "wlshowhidemine": "hamaar badlao",
+       "wlshowhidecategorization": "panna categorization",
        "watchlist-options": "Dhyan suchi ke options",
        "watching": "Dekhtaa...",
        "unwatching": "Nai dekhtaa...",
        "deletepage": "Pana ke delete karo",
        "confirm": "Confirm karo",
        "excontent": "content rahaa: '$1'",
-       "excontentauthor": "content rahaa: '$1' (aur khaali ek contributor rahaa '[[Special:Contributions/$2|$2]]')",
+       "excontentauthor": "content rahaa: \"$1\", aur khaali ek contributor rahaa \"[[Special:Contributions/$2|$2]]\" ([[User talk:$2|talk]])",
        "exbeforeblank": "blanking se pahile content rahaa: '$1'",
        "delete-confirm": "\"$1\" ke mitao",
        "delete-legend": "Mitao",
        "historywarning": "<strong>Sawadhan</strong>: Jon panna ke aap mitae waala hai ke itihaas hai $1 {{PLURAL:$1|badlao|badlao}} ke saathe:",
+       "historyaction-submit": "Dekhao",
        "confirmdeletetext": "Aap ek panna ke uske itihaas ke saathe delete kare waala hai.\nMeharbani kar ke iske confirm karo, ki aap iske consequences ke samajhta hai, aur aap iske [[{{MediaWiki:Policy-url}}|the policy]] ke policy ke niche delete karta hai.",
        "actioncomplete": "Action puura hoe gais hai",
        "actionfailed": "Action fail hoe gais",
        "delete-toobig": "Ii panna ke barraa balao ke itihass hai, $1 se jaada {{PLURAL:$1|revision|revisions}}.\nAisan panna ke mitae pe rok lagawa gais hai so that accidental disruption of {{SITENAME}} ke roka jaae sake hai.",
        "delete-warning-toobig": "Ii panna ke lambaa badlao ke itihaas hai, $1 {{PLURAL:$1|revision|revisions}} se jaada.\nIske mitae se {{SITENAME}} me database operations me baadha parri;\nsawadhani se aage barrho.",
        "deleteprotected": "Aap ii panna ke mitae nai saktaa hae kaaheki iske protect karaa gais hae.",
-       "deleting-backlinks-warning": "'''Chetauni:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Duusra panna]] uu panna se link, nai to transclude kare hae jiske aap delete kare waala hae.",
+       "deleting-backlinks-warning": "<string>Chetauni:</strong> [[Special:WhatLinksHere/{{FULLPAGENAME}}|Duusra panna]] uu panna se link, nai to transclude kare hai jiske aap delete kare waala hae.",
        "rollback": "Pahile jaise kare waala badlao",
        "rollbacklink": "pahile jaise karo",
        "rollbacklinkcount": "$1 {{PLURAL:$1|edit|edits}} ke rollback karo",
        "rollbacklinkcount-morethan": "$1 {{PLURAL:$1|edit|edits}} se jaada badlao ke rollback karo",
        "rollbackfailed": "Pahile jaise kare ke kosis safal nai bhais",
+       "rollback-missingparam": "Maange par, required parameters nai hai.",
+       "rollback-missingrevision": "Badalo ke data ke nai load kare sakaa hai.",
        "cantrollback": "Badlao ke pahile jaise nai kare sakta hai;\nisse pahile waala sadasya ii panna ke khaali yogdaan de waala hai.",
        "alreadyrolled": "[[:$1]] by [[User:$2|$2]] ke pahile jaise nai kare sakta hai. ([[User talk:$2|Talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\naur koi ii panna ke badal nai to pahile jaise kar diis hai.\n\nIi panna ke pichla badla [[User:$3|$3]] ([[User talk:$3|Talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) se rahaa",
        "editcomment": "Badlao ke summary rahaa: <em>$1</em>.",
        "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) ke badlao ke [[User:$1|$1]] ke aakhri badlao ke jaise kar dewa gais hai.",
        "revertpage-nouser": "Reverted edits by a hidden user to last revision by {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "$1 ke badlao ke pahile jaise kar dewa gais hai;\nbadal ke $2 ke aakhri version kar dewa gais hai.",
+       "rollback-success-notify": "$1 ke badlao ke pahile jaise kar dewa gais hai;\nbadlao ke $2 ke aakhri version kar dewa gais hai.[$3 Show changes]",
        "sessionfailure-title": "Session fail hoe gais hae",
        "sessionfailure": "Aap ke login session me kuch karrbarr hai.\niske cancel kar dewa gais hai jisse ki koi iisession ke hijack nai kar.\nMeharbani kar ke  \"back\" ke press kar ke jon pana se aap aae rahaa ke fir se load karo, tab fir kosis karo.",
+       "changecontentmodel": "Panna ke content model ke badlo",
+       "changecontentmodel-legend": "Content model ke badlo",
+       "changecontentmodel-title-label": "Panna ke title",
+       "changecontentmodel-model-label": "Nawaa content model",
+       "changecontentmodel-reason-label": "Kaaran:",
+       "changecontentmodel-submit": "Badlo",
+       "changecontentmodel-success-title": "Content model ke badal dewaa gais hai",
+       "changecontentmodel-success-text": "The content type of [[:$1]] ke badlaa gais hai.",
+       "changecontentmodel-cannot-convert": "The content on [[:$1]] ke $2 ke rakam nai convert karaa jaae sake hai.",
+       "changecontentmodel-nodirectediting": "The $1 content model, direct editing ke nai support kare hai",
+       "changecontentmodel-emptymodels-title": "Koi content model nai hai",
+       "changecontentmodel-emptymodels-text": "The content on [[:$1]] ke koi bhi type me nai badlaa jaae sake hai.",
+       "log-name-contentmodel": "Content model ke change log",
+       "log-description-contentmodel": "Ii panna 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": "pahile jaise karo",
+       "logentry-contentmodel-change-revert": "pahile jaise karo",
        "protectlogpage": "Surakchha suchi",
        "protectlogtext": "Panna surakchha ke suchi niche dewa gais hae.\nAbhi ke laabu panna surakchha ke dekho [[Special:ProtectedPages|protected pages list]] me",
        "protectedarticle": "bachawal \"[[$1]]\"",
        "modifiedarticleprotection": "[[$1]]\" ke protection level ke badal dia hai",
        "unprotectedarticle": "surakchha suchi \"[[$1]]\" me se hatawa gais",
        "movedarticleprotection": "protection settings ke \"[[$2]]\" se \"[[$1]]\" kae dia hai",
+       "protectedarticle-comment": "{{GENDER:$2|Protected}} \"[[$1]]\"",
+       "modifiedarticleprotection-comment": "{{GENDER:$2|Changed protection level}} for \"[[$1]]\"",
+       "unprotectedarticle-comment": "{{GENDER:$2|Removed protection}} from \"[[$1]]\"",
        "protect-title": "\"$1\" ke protection level ke badlo",
        "protect-title-notallowed": "\"$1\" ke protection level ke dekho",
        "prot_1movedto2": "[[$1]] ke naam badal ke [[$2]] kar dewa gae hai",
        "undeletepagetext": "Niche dekhawa gais {{PLURAL:$1|panna ke mitae dewa gais hai lekin|$1 panna ke mitae dewa gais hai lekin}} abhi archive me hai aur iske pahile jaise karaa jaawe sake hai.\nArchive ke time time se safaa karaa jaawe hai.",
        "undelete-fieldset-title": "Badlao ke pahile jaise karo",
        "undeleteextrahelp": "Panna ke itihaas ke pahile jaise kare ke khatir sab checkboxes me kuch nai karna aur ''''{{int:undeletebtn}}''''' ke click karo.\nChuna gais panna ke pahile jaise kare ke khatir, uu box ke check karo jon badlao ke aap pahile jaise kare mangta hai aur ''''{{int:undeletebtn}}''''' ke click karo.\n'''''Reset''''' click kare se comment field aur sab checkboxes clear hoe jaai.",
-       "undeleterevisions": "$1 {{PLURAL:$1|badlao|badlao}} ke archive kar dewa gais hai",
+       "undeleterevisions": "$1 {{PLURAL:$1|badlao}} ke mitae dewa gais hai",
        "undeletehistory": "Agar aap panna ke pahile jaise karaa tab sab badlao itihass me restore hoe jaai.\nAgar koi wahii naam ke nawaa panna mitae ke baad banaa hoi tab restore karaa gais badlao pahile ke itihass me dekhai.",
        "undeleterevdel": "Pahile jaise nai kare sakega agar isse uppar waala panna nai to file revision bhi delete hoe jaai.\nAisan time pe, aap ke chaahi ki aap sab se nawaa deleted revision ke uncheck nai to unhide karo.",
        "undeletehistorynoadmin": "Ii panna ke mitae dewa gais hai.\nMitae ke kaaran niche ke summary me dewa gais hai, aur iske saathe uu sadasya ke baare me bhi jaankari hai jon ki ii panna ke badle rahin.\nIi mitawa gais badlao ke baare me puura jankari khaali administrators ke mile sake hai.",
        "undelete-revision": "$1 ke badlao ke (as of $4, at $5) by $3 mitae dewa gais hai:",
        "undeleterevision-missing": "Badlao kharaab nai to pawa nai jaawe sake hai.\nSait aap ke kharaab link hoi, nai to badlao ke sait pahile jaise kar dewa gais hoi, nai to archive se mitae dewa gais hoi.",
+       "undeleterevision-duplicate-revid": "{{PLURAL:$1|One revision|$1 revisions}} could not be restored, because {{PLURAL:$1|its|their}} <code>rev_id</code> was already in use.",
        "undelete-nodiff": "Koi pahile ke badlao ke nai pawa gais hai.",
        "undeletebtn": "Pahile jaise kar do",
        "undeletelink": "dekho/pahile jaise karo",
        "undeletedrevisions": "{{PLURAL:$1|1 badlao|$1 badlao}} ke pahile jaise kar dewa gais hai",
        "undeletedrevisions-files": "{{PLURAL:$1|1 badlao|$1 badlao}} aur {{PLURAL:$2|1 file|$2 files}} ke pahile jaise kar dewa gais hai",
        "undeletedfiles": "{{PLURAL:$1|1 file|$1 files}} ke pahile jaise kar dewa gais hai",
-       "cannotundelete": "Undelete failed:\n$1",
+       "cannotundelete": "Kuchh, nai to sab undelete fail hoe gais hai:\n$1",
        "undeletedpage": "'''$1 ke pahile jaise kar dewa gais hai'''\n\nNawaa mitawa gais aur badlao ke ulta karaa gais panna ke dekhe ke khatir [[Special:Log/delete|deletion log]] ke dekho.",
        "undelete-header": "Nawaa mitawa gais panna ke dekhe ke khatir [[Special:Log/delete|the deletion log]] ke dekho.",
        "undelete-search-title": "Mitawa gais panna ke khojo",
        "sp-contributions-newbies-sub": "Nawaa account khatir",
        "sp-contributions-newbies-title": "Nawaa account ke sadasya ke yogdaan",
        "sp-contributions-blocklog": "Suchi roko",
-       "sp-contributions-suppresslog": "Sadasya ke yogdaan jiske suppress karaa gais hae",
-       "sp-contributions-deleted": "Mitawa gais adasya ke yogdaan",
+       "sp-contributions-suppresslog": "{{GENDER:$1|sadasya}}  ke yogdaan jiske suppress karaa gais hae",
+       "sp-contributions-deleted": "Mitawa gais {{GENDER:$1|sadasya}} ke yogdaan",
        "sp-contributions-uploads": "upload karaa gais file",
        "sp-contributions-logs": "logs",
        "sp-contributions-talk": "baat",
        "sp-contributions-username": "IP Address nai to username:",
        "sp-contributions-toponly": "Khaali sab se nawaa badlao ke dekhao",
        "sp-contributions-newonly": "Khaali uu badlao ke dekhao jon ke panna banae waala hae",
+       "sp-contributions-hideminor": "Chhotaa badlao ke lukao",
        "sp-contributions-submit": "Khojo",
        "whatlinkshere": "Hian konchij jurre hae",
        "whatlinkshere-title": "Panna jon ki $1 se jurre hai",
        "whatlinkshere-hidelinks": "$1 jorr",
        "whatlinkshere-hideimages": "$1 file ke jorr",
        "whatlinkshere-filters": "Filters",
+       "whatlinkshere-submit": "Jaao",
        "autoblockid": "#$1 ke apne se block karo",
        "block": "Sadasya ke roko",
        "unblock": "Sadasya ke rukawat k khalaas karo",
        "blockip": "{{GENDER:$1|sadasya}} ke roko",
        "blockip-legend": "Sadasya ke roko",
-       "blockiptext": "Niche ke form ke use kar ke koi khaas IP address nai to username ke write access ke roko.\nIske khaali vandalism ke roke ke khatir use kare ke chaahi [[{{MediaWiki:Policy-url}}|policy]] ke niche.\nNiche ek khaas kaaran likho (jaise ki, citing particular pages that were vandalized).",
+       "blockiptext": "Niche ke form ke use kar ke koi khaas IP address nai to username ke write access ke roko.\nIske khaali vandalism ke roke ke khatir kaam me laae ke chaahi [[{{MediaWiki:Policy-url}}|policy]] ke niche.\nFill in a specific reason below (for example, citing particular pages that were vandalized).\nYou can block IP address ranges using the [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] syntax; the largest allowed range is /$1 for IPv4 and /$2 for IPv6.",
        "ipaddressorusername": "IP Address nai to username:",
        "ipbexpiry": "Expiry:",
        "ipbreason": "Kaaran:",
        "ipb-unblock": "Ek username nai to IP address ke rukawat ke khalaas karo",
        "ipb-blocklist": "Abhi ke rukawat ke dekho",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} ke yogdaan",
+       "ipb-blocklist-duration-left": "$1 left",
        "unblockip": "Sadasya ke rukawat ke khalaas karo",
        "unblockiptext": "Niche ke form ke use kar ke pahile roka gais IP address nai to username ke likhe ke adhikar do.",
        "ipusubmit": "Ii rukawat ke hatao",
        "block-log-flags-hiddenname": "username ke lukae dewa gais hai",
        "range_block_disabled": "Administrator ke adhikar, jisse range block banawa jaawat rahaa, ke rok dewa gais hai.",
        "ipb_expiry_invalid": "Khalaas hoe waala time galat hai.",
+       "ipb_expiry_old": "Khalas hoe waala time past me hai.",
        "ipb_expiry_temp": "Lukawa gais username ke rukawat ke permanent hoe ke chaahi.",
        "ipb_hide_invalid": "Ii account ke dabae nai sakaa hai; saait {{PLURAL:$1|one edit|$1 edits}} se jaada badlao hae.",
        "ipb_already_blocked": "\"$1\" ke pahile rok dewa gais hai",
        "proxyblockreason": "Aap ke IP address ke block kar dewa gais hai kahe ki ii ek open proxy hai.\nMeharbaani kar ke aap aapan Internet service provider, nai to tech support, ke contact kar ke ii serious security problem ke baare me batao.",
        "sorbsreason": "DNSBL used by {{SITENAME}} me aap ke IP address ke as an open proxy list karaa gais hai.",
        "sorbs_create_account_reason": "DNSBL used by {{SITENAME}} me aap ke IP address ke as an open proxy list karaa gais hai.\nAap ke ek account banae ke ijajat nai hai",
+       "softblockrangesreason": "Anonymous contributions are not allowed from your IP address ($1). Please log in karo.",
        "xffblockreason": "Ek IP address jon ki X-Forwarded-For header me hae, chaahe aap ke nai to jon proxy server ke aap use kartaa hae ke, ke block kar dewa gais hae. Suruu waala block kare ke kaaran rahaa:$1",
        "cant-see-hidden-user": "Jon sadasya ke aap roke mangtaa hae ke pahile rok ke lukae dewa gais hae.\nJab ki aap ke lage hideuser adhikaar nai hae, tab aap ii sadasya ke rukawat ke nai dekhe aur badle saktaa hae.",
        "ipbblocked": "Aap duusra sadasya ke roke nai to kohle nai sakta hae, kaahe ki aap ke bhi rokaa gais hae",
        "lockdbsuccesstext": "Database ke band kar dewa gais hai.<br />\nYaad kar ke [[Special:UnlockDB|lock ke hatae dena]] maintenance khalaas kare ke baad.",
        "unlockdbsuccesstext": "Database ke khol dewa gais hai.",
        "lockfilenotwritable": "Database lock file me likha nai jaawe sake hai.\nDatabase ke khole nai to band kare ke khatir, iske web server se likhe ke laayek hoe ke chaahi",
+       "databaselocked": "Database already band hai.",
        "databasenotlocked": "Database band nai hai.",
        "lockedbyandtime": "(se {{GENDER:$1|$1}} pe $2 hian $3)",
        "move-page": "$1 ke naam badlo",
        "move-page-legend": "Panna ke naam badlo",
-       "movepagetext": "Niche ke form kaam me laae se panna ke naam badal jaai aur iske itihass nawaa naam ke niche hoe jaai.\nPuraana title nawaa title pe redirect hoe jaai.\nAap uu redirect, jon ki pahile waala title pe jawe hai, ke update kare sakta hai.\nAgar aap ii nai kare mangta hai, tab [[Special:DoubleRedirects|double]] nai to [[Special:BrokenRedirects|broken redirects]] ke check karna.\nAap ke jimewaari hai ki dekho ki links right jagah point kare hai.\n\nKhayal rakhna ki agar jo nawaa title ke naam ke ek panna hai tab panna move '''nai''' hae saki jab tak ki panna khali nahi hai yah to redirect hai yah to koi pahile ke edit itihaas nahi hai.\nIske matlab ii hai ki aap ek panna ke naam badal ke wahi naam rakh de sakta hai jon naam pahile rahaa aur agar aap mistake karaa tab abhi ke panna ke overwrite nahi kare saktaa.\n\n'''CHETAWANI'''\nIi ek lokpriye panna ke galti se badal de sake hai;\nmeharbaani kar ke aap aapan karya ke natiija ke baare me socho aage kuch kare se pahile.",
-       "movepagetext-noredirectfixer": "Niche ke form kaam me laae se panna ke naam badal jaai aur iske itihass nawaa naam ke niche hoe jaai.\nPuraana title nawaa title pe redirect hoe jaai.\nIi jaruri hae ki aap  [[Special:DoubleRedirects|double]] nai to [[Special:BrokenRedirects|broken redirects]] ke check karo.\nAap ke jimewaari hai ki dekho ki links right jagah point kare hai.\n\nKhayal rakhna ki agar jo nawaa title ke naam ke ek panna hai tab panna move '''nai''' hae saki jab tak ki panna khali nahi hai yah to redirect hai yah to koi pahile ke edit itihaas nahi hai.\nIske matlab ii hai ki aap ek panna ke naam badal ke wahi naam rakh de sakta hai jon naam pahile rahaa aur agar aap mistake karaa tab abhi ke panna ke overwrite nahi kare saktaa.\n\n'''CHETAWANI'''\nIi ek lokpriye panna ke galti se badal de sake hai;\nmeharbaani kar ke aap aapan karya ke natiija ke baare me socho aage kuch kare se pahile.",
-       "movepagetalktext": "Saathe ke talk panna ke automatically move kar dewa jai ii panna ke saathe '''agar jo:'''\n* khali nahi talk page nawaa naam ke already hai, yah\n* Aap nivhe waala box ke uncheck karo\nIi prastithi me, aap ke manually move yah merge kare ke parri.",
+       "movepagetext": "Niche ke form kaam me laae se panna ke naam badal jaai aur iske itihass nawaa naam ke niche hoe jaai.\nPuraana title nawaa title pe redirect hoe jaai.\nAap uu redirect, jon ki pahile waala title pe jawe hai, ke update kare sakta hai.\nAgar aap ii nai kare mangta hai, tab [[Special:DoubleRedirects|double]] nai to [[Special:BrokenRedirects|broken redirects]] ke check karna.\nAap ke jimewaari hai ki dekho ki links right jagah point kare hai.\n\nKhayal rakhna ki agar jo nawaa title ke naam ke ek panna hai tab panna move <strong>nai</strong> hae saki jab tak ki panna khali nahi hai yah to redirect hai yah to koi pahile ke edit itihaas nahi hai.\nIske matlab ii hai ki aap ek panna ke naam badal ke wahi naam rakh de sakta hai jon naam pahile rahaa aur agar aap mistake karaa tab abhi ke panna ke overwrite nahi kare saktaa.\n\n<strong>CHETAWANI</strong>\nIi ek lokpriye panna ke galti se badal de sake hai;\nmeharbaani kar ke aap aapan karya ke natiija ke baare me socho aage kuch kare se pahile.",
+       "movepagetext-noredirectfixer": "Niche ke form kaam me laae se panna ke naam badal jaai aur iske itihass nawaa naam ke niche hoe jaai.\nPuraana title nawaa title pe redirect hoe jaai.\nIi jaruri hae ki aap  [[Special:DoubleRedirects|double]] nai to [[Special:BrokenRedirects|broken redirects]] ke check karo.\nAap ke jimewaari hai ki dekho ki links right jagah point kare hai.\n\nKhayal rakhna ki agar jo nawaa title ke naam ke ek panna hai tab panna move <strong>nai</strong> hae saki jab tak ki panna khali nahi hai yah to redirect hai yah to koi pahile ke edit itihaas nahi hai.\nIske matlab ii hai ki aap ek panna ke naam badal ke wahi naam rakh de sakta hai jon naam pahile rahaa aur agar aap mistake karaa tab abhi ke panna ke overwrite nahi kare saktaa.\n\n<strong>CHETAWANI</strong>\nIi ek lokpriye panna ke galti se badal de sake hai;\nmeharbaani kar ke aap aapan karya ke natiija ke baare me socho aage kuch kare se pahile.",
+       "movepagetalktext": "Agar aap box ke tick karaa tab, saathe ke talk panna ke automatically move kar dewa jai ii panna ke saathe '''agar jo:'''\n* khali nahi talk page nawaa naam ke already hai, yah\nIi prastithi me, aap ke manually move yah merge kare ke parri.",
        "moveuserpage-warning": " '''Chetauni:'''  Aap ek sadasya ke panna ke naam badle waala hae. Ii yaad rakhna ki khaali panna ke naam badla jaai, sadasya ke naam ''nai'' badlaa jaai.",
        "movecategorypage-warning": "<strong>Chetauni:</strong> Aap ek category panna ke hatae waala hae. Khaali ii panna ke hataawa jaai aur purana category ke aur panna ke nawaa category me <em>nai</em>  recategorize karaa jaai.",
        "movenologintext": "Panna ke naam badle ke khatir aap ke ek registered sadasya rahe ke parri aur  [[Special:UserLogin|logged in]].",
        "cant-move-to-user-page": "Aap ke koi panna ke hatae ke sadasya ke panna pe kare ke ijajat nai hai (sadasya ke subpage ke chhorr ke).",
        "cant-move-category-page": "Aap ke panna ke category panna ke hatae ke ijajat nai hai.",
        "cant-move-to-category-page": "Aap ke panna ke category panna me hatae ke ijajat nai hai.",
-       "newtitle": "Nawaa title pe:",
+       "cant-move-subpages": "Aap ke subpages ke naam badle ke ijajat nai hai.",
+       "namespace-nosubpages": "Namespace \"$1\" subpages ke nai allow kare hai.",
+       "newtitle": "Nawaa title:",
        "move-watch": "Ii panna pe dhyan rakho",
        "movepagebtn": "Panna ke naam badlo",
        "pagemovedsub": "Panna ke naam badle me safalta",
        "movelogpagetext": "Niche sab panna, jiske naam badla gais hai, ke suchi hai.",
        "movesubpage": "{{PLURAL:$1|Subpage|Subpages}}",
        "movesubpagetext": "Ii panna me $1 {{PLURAL:$1|subpage|subpages}} hai jiske niche dekhawa gais hai.",
+       "movesubpagetalktext": "Corresponding baat waala panna $1 {{PLURAL:$1|subpage|subpages}} ke niche dekhawa gais hai.",
        "movenosubpage": "Ii panna me koi subpages nai hai.",
        "movereason": "Kaaran:",
        "revertmove": "purana copy pe lae jao",
-       "delete_and_move_text": "== Mitae ke jaruri hai ==\nDestination panna \"[[:$1]]\" abhi hai.\nKa aap mangta hai ki iske mitae dewa jaae, jisse ki ii naam se duusra paana ke save karaa jaae sake?",
+       "delete_and_move_text": "Destination panna \"[[:$1]]\" abhi hai.\nKa aap mangta hai ki iske mitae dewa jaae, jisse ki ii naam se duusra paana ke save karaa jaae sake?",
        "delete_and_move_confirm": "Haan, panna ke mitao",
        "delete_and_move_reason": "\"[[$1]]\" se move kare ke khatir isk mitaya",
        "selfmove": "Source aur destination title ke naam ekke hai;\npanna ke wahi ke uppar nai save karaa jaae sake hai.",
        "move-leave-redirect": "Ek redirect ke pichhe chhorro",
        "protectedpagemovewarning": "Chetauni: Ii panna ke band kar dewa gais hai jisse ki khaali administrator logan iske naam badle sake hai.\nAap ke jaankari ke khatir sab se nawaa suchi niche dewa gais hae:",
        "semiprotectedpagemovewarning": "Dhyan me rakhna: Ii panna ke band kar dewa gais hai jisse ki khaali registered sadasya iske naam badle sake hai.\nAap ke jaankari ke khatir sab se nawaa suchi ke niche dewa gais hae:",
-       "move-over-sharedrepo": "==File hae==\n[[:$1]] shared repository me hae. Ek file ke naam badal ke ii naam kare se shared file mit jaai.",
+       "move-over-sharedrepo": "[[:$1]] shared repository me hae. Ek file ke naam badal ke ii naam kare se shared file mit jaai.",
        "file-exists-sharedrepo": "Jon file ke naam ke chuna gais hae, pahile se shared repository me hae.\nMeharbani kar ke duusra naam do.",
        "export": "Panna niryat karo",
        "exporttext": "Aap ek khaas panna, nai to dher panna jon ki XML me bandha hai, ke text aur balao ke itihass ke export kare saktaa hai.\nIske duusra wiki me MediaWiki [[Special:Import|import panna]] se import karaa jaawe sake hai.\n\nPanna ke export kare ke khatir titles ke niche ke text box me likho, ek line pe ek title, aur ii select karo ki aap abhi ke version ke saathe purana version mangtaa hai, panna ke itihaas ke saathe, nai to abhi ke version jisme last badlao ke jankari hai.\n\nDuusra case me aap ek link ke bhi use kare saktaa hai, jaise ki [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] panna ke khatir \"[[{{MediaWiki:Mainpage}}]]\".",
        "export-download": "Save as file",
        "export-templates": "Templates ke include karo",
        "export-pagelinks": "Include linked pages to a depth of:",
+       "export-manual": "Panna ke manually jorro",
        "allmessages": "System sandesh",
        "allmessagesname": "Naam",
        "allmessagesdefault": "Default text",
        "import-interwiki-history": "Ii panna ke sab badlao ke itihaas ke copy karo",
        "import-interwiki-templates": "Sab template ke include karo",
        "import-interwiki-submit": "Import karo",
+       "import-mapping-default": "Default locations pe import karo",
+       "import-mapping-namespace": "Name space pe import karo:",
+       "import-mapping-subpage": "Import as subpages of the following page:",
        "import-upload-filename": "File ke naam:",
        "import-comment": "Aapan bichar do:",
        "importtext": "Meharbani kar ke file ke [[Special:Export|export utility]] use kar ke source wiki me se export karo.\nAapan computer me save kar ke  hian pe upload karo.",
        "import-nonewrevisions": "Koi badalo ke import nai karaa gais hae (sab ke chaahe pahile import karaa gais rahaa, nai to error ke kaaran skip karaa gais rahaa).",
        "xml-error-string": "$1 line $2 me, col $3 (byte $4): $5",
        "import-upload": "XML data ke upload karo",
-       "import-token-mismatch": "Loss of session data.\nMeharbani kar ke, fir se kosis karo.",
+       "import-token-mismatch": "Loss of session data.\nYou might have been logged out. <strong>Please verify that you're still logged in and try again</strong>.\nIf it still does not work, try [[Special:UserLogout|logging out]] and logging back in, and check that your browser allows cookies from this site.",
        "import-invalid-interwiki": "Naam dewa gais wiki se import nai kare saktaa hai.",
        "import-error-edit": "Panna \"$1\" ke import nai kara gais kaahe ki aap ke badle ke adhikar nai hae.",
        "import-error-create": "Panna \"$1\" ke import nai kara gais kaahe ki aap ke panna banae ke adhikar nai hae.",
        "tooltip-pt-preferences": "{{GENDER:|Aap ke}} pasand",
        "tooltip-pt-watchlist": "Panna ke suchi jispe aap dhyan rakhaa hae",
        "tooltip-pt-mycontris": "{{GENDER:|Aap ke}} yogdaan ke suchi",
+       "tooltip-pt-anoncontribs": "Ii IP address se badlao karaa gais chij 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-feed-rss": "Ii panna ke khatir RSS feed",
        "tooltip-feed-atom": "Ii panna ke khatir atom feed",
        "tooltip-t-contributions": "Yogdaan ke suchi dekho {{GENDER:$1|ii sadasya se}}",
-       "tooltip-t-emailuser": "Ii user ke lage ek mail bhejo",
+       "tooltip-t-emailuser": "Email bhejo {{GENDER:$1|ii sadasya}} ke lage",
        "tooltip-t-info": "Ii panna ke bare me aur jankari",
        "tooltip-t-upload": "File upload karo",
        "tooltip-t-specialpages": "Sab khaas panna ke suchi",
        "tooltip-ca-nstab-category": "Vibhag panna ke dekho",
        "tooltip-minoredit": "Ii badlao ke chhota badlao ke chihna lagao",
        "tooltip-save": "Aapan badlao ke bachao",
+       "tooltip-publish": "Aapan panna ke publish karo",
        "tooltip-preview": "Badlao ke preview karo, bachae se pahile!",
        "tooltip-diff": "Dekhao ki aap kon chij badlaa hae",
        "tooltip-compareselectedversions": "Ii panna ke dui chuna gais version ke antar dekho.",
        "lastmodifiedatby": "Ii panna ke aakhri dafe $3 badlis rahaa $2, $1.",
        "othercontribs": "Ii $1 ke kaam pe based hae.",
        "others": "duusra jane",
-       "siteusers": "{{SITENAME}} {{PLURAL:$2|sadasya|sadasya}} $1",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|sadasya}} $1",
        "anonusers": "{{SITENAME}} benaam {{PLURAL:$2|sadasya|sadasya}} $1",
        "creditspage": "Panna ke credit",
        "nocredits": "Ii panna ke khatir koi credit ke baare me jaankari nai hai.",
        "pageinfo-length": "Panna ke lambai (bytes me)",
        "pageinfo-article-id": "Panna ke ID",
        "pageinfo-language": "Panna ke bhasa",
+       "pageinfo-language-change": "badlo",
        "pageinfo-content-model": "Page content model",
+       "pageinfo-content-model-change": "badlo",
        "pageinfo-robot-policy": "Robots se indexing",
        "pageinfo-robot-index": "Ijajat hae",
        "pageinfo-robot-noindex": "Ijajat nai hae",
        "pageinfo-watchers": "Ketnaa jane panna ke dekhe hae",
+       "pageinfo-visiting-watchers": "Etna page wathchers recent edits ke visit karin hai",
        "pageinfo-few-watchers": "$1 {{PLURAL:$1|watcher|watchers}} se kamtii log hae",
+       "pageinfo-few-visiting-watchers": "There may or may not be a watching user visiting recent edits",
        "pageinfo-redirects-name": "Ii panna me etna redirect hae",
        "pageinfo-subpages-name": "Ii panna ke subpage",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|redirect|redirects}}; $3 {{PLURAL:$3|non-redirect|non-redirects}})",
        "pageinfo-protect-cascading-yes": "Haan",
        "pageinfo-protect-cascading-from": "Protections isse cascade hoe hae",
        "pageinfo-category-info": "Category ke bare me jaankari",
+       "pageinfo-category-total": "Sadasya ke total",
        "pageinfo-category-pages": "Ketnaa panna hae",
        "pageinfo-category-subcats": "Etnaa subcategories hae",
        "pageinfo-category-files": "Etnaa file hae",
+       "pageinfo-user-id": "Sadasya ke ID",
        "markaspatrolleddiff": "Mark karo ke pahraa dewa jaawe hai",
        "markaspatrolledtext": "Mark karo ki panna pe pahraa dewa jaawe hai",
+       "markaspatrolledtext-file": "Mark this file version as patrolled",
        "markedaspatrolled": "Mark karo ke pahraa dewa jaawe hai",
        "markedaspatrolledtext": "Pasand karaa gais [[:$1]]  ke badlao pe pahraa dewa jaawe hai",
        "rcpatroldisabled": "Nawaa badlao pe pahraa de ke ijajat nai hai",
        "patrol-log-page": "Pahraa de waala suchi",
        "patrol-log-header": "Ii pahraa dewa gais badlao ke suchi hai.",
        "log-show-hide-patrol": "$1 pahraa de waala suchi",
+       "log-show-hide-tag": "$1 tag log",
+       "confirm-markpatrolled-button": "OK",
+       "confirm-markpatrolled-top": "Mark karo ki ii revision $3 of $2 patrolled hai?",
        "deletedrevision": "Purana badlao ke mitae dia hai $1",
        "filedeleteerror-short": "File ke mitae me galti hoe gais: $1",
        "filedeleteerror-long": "File ke mitae ke time garrbarr hoe gais:\n\n$1",
        "svg-long-error": "SCG file valid nai hae: $1",
        "show-big-image": "Original file",
        "show-big-image-preview": "Ii preview ke size: $1",
+       "show-big-image-preview-differ": "Size of this $3 preview of this $2 file: $1.",
        "show-big-image-other": "Duusra {{PLURAL:$2|resolution|resolutions}}: $1",
        "show-big-image-size": "$1 × $2 pixels",
        "file-info-gif-looped": "Ghuum ghumae ke wahii jagha pe aawe hae",
        "newimages-legend": "Chaalo",
        "newimages-label": "Filename (nai to iske ek hissa):",
        "newimages-showbots": "Bots se upload dekhawa jaae hae",
+       "newimages-hidepatrolled": "Patrolled uploads ke lukao",
        "noimages": "Koi chij dekhe ke nai hai.",
+       "gallery-slideshow-toggle": "Toggle thumbnails",
        "ilsubmit": "Khojo",
        "bydate": "tarik se",
        "sp-newimages-showfrom": " $2, $1 se suruu kar ke nawaa file ke dekhao",
        "exif-compression-4": "CCITT Group 4 fax ke encoding",
        "exif-copyrighted-true": "Copyright karaa gais hae",
        "exif-copyrighted-false": "Copyright status ke nai set karaa gais hae",
+       "exif-photometricinterpretation-1": "Kariyaa aur ujjar (Kariyaa 0 hai)",
        "exif-unknowndate": "Taarik nai maalum",
        "exif-orientation-1": "Saamaan",
        "exif-orientation-2": "Baraabar ultawa gais hae",
        "confirmemail_body_set": "Koi, hoe sake aap IP address $1 se, ek account \"$2\" with this email address on {{SITENAME}} ke set karis hae.\n\nIi confirm kare ke khatir ki asliyat me ii acount aap ke hae, {{SITENAME}} me email features ke activate karo, aur aapan browser me ii link ke kholo:\n\n$3\n\nAgar aapa ii account ke nai register karaa hae, ii link ke follow karo aur email address confirmation ke cancel karo:\n\n$5\n\nIi confirmation code $4 ke expire hoi.",
        "confirmemail_invalidated": "Email address confirmation ke cancel kae dewa gais hae",
        "invalidateemail": "Email confirmation ke cancel karo",
+       "notificationemail_subject_changed": "{{SITENAME}} ke registered email address ke badal dewa gais hai",
+       "notificationemail_subject_removed": "{{SITENAME}} ke registered email address ke hatae dewa gais hai",
+       "notificationemail_body_changed": "Koi jan, hoe sake aap, IP address $1 se,\nemail address ke badlis hai account \"$2\" to \"$3\" {{SITENAME}} pe.\n\nAgar ii aap nai hai to ek site administrator ke contact karo",
+       "notificationemail_body_removed": "Koi jan, hoe sake aap, IP address $1 se,\nemail address ke hate diis hai, account \"$2\" {{SITENAME}} pe.\n\nAgar ii aap nai hai to ek site administrator ke contact karo",
        "scarytranscludedisabled": "[Interwiki transcluding ke disable kar dewa gais hae]",
        "scarytranscludefailed": "[Template fetch $1 ke khatir fail hoe gais hae]",
        "scarytranscludefailed-httpstatus": "[$1: HTTP $2 ke khatir template fetch fail hoe gais hae]",
        "scarytranscludetoolong": "[URL bahut lambaa hae]",
        "deletedwhileediting": "'''Chetauni:''' Aap ke editing suruu kare ke baad ii panna ke delete kar dewa gais hae!",
-       "confirmrecreate": "User [[User:$1|$1]] ([[User talk:$1|talk]]) mitae dewa gais ii pannaa aap ke badlao suruu kare ke baad, ii kaaran se: ''$2''\nMeharbaani kar ke confirm karo ki aap ii panna ke fir banae mangtaa hae.",
-       "confirmrecreate-noreason": "User [[User:$1|$1]] ([[User talk:$1|talk]]) mitae dewa gais ii pannaa aap ke badlao suruu kare ke baad.\nMeharbaani kar ke confirm karo ki aap ii panna ke fir banae mangtaa hae.",
+       "confirmrecreate": "Sadasya [[Sadasya:$1|$1]] ([[Sadasya baat:$1|baat]]) {{GENDER:$1|mitais}} ii panna after you started editing with reason:\n: <em>$2</em>\nMeharbaani kar ke ii confirm karo ki aap asliyat me ii panna ke fir se banae mangtaa hai.",
+       "confirmrecreate-noreason": "User [[User:$1|$1]] ([[User talk:$1|talk]]){{GENDER:$1|deleted}} this page after you started editing. Please confirm that you really want to recreate this page.",
        "recreate": "Fir se banao",
        "confirm_purge_button": "Thik hae",
        "confirm-purge-top": "Ii panna ke cache ke mitao",
        "confirm-watch-top": "Ii panna ke aap ke dhyan suchi me jorro?",
        "confirm-unwatch-button": "Thiik hae",
        "confirm-unwatch-top": "Ii panna ke aap ke dhyan suchi se hatao?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Ii panna ke badlao ke pahile jaise karo?",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← pahile waala panna",
        "imgmultipagenext": "aage waala panna →",
        "watchlistedit-raw-done": "Aap ke watchlist ke update kar dewa gais hae.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 title was|$1 titles were}} added:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 title was|$1 titles were}} removed:",
-       "watchlistedit-clear-title": "Watchlist ke clear karaa gais hae",
+       "watchlistedit-clear-title": "Watchlist ke clear karo",
        "watchlistedit-clear-legend": "Watchlist ke clear karo",
        "watchlistedit-clear-explain": "Aap ke watchlist me se sab title ke hatae dewa jaai",
        "watchlistedit-clear-titles": "Titles:",
        "watchlisttools-edit": "Dhyan suchi ke dekho aur badlo",
        "watchlisttools-raw": "Dhyan suchi ke apne sampadan karo",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]])",
+       "timezone-local": "Local",
        "duplicate-defaultsort": "'''Chetauni:''' Default sort key \"$2\" pahile ke default sort key \"$1\" ke override kare hae.",
        "duplicate-displaytitle": "<strong>Chetauni:</strong> Display title \"$2\" pahile ke display title \"$1\" ke override kare hae.",
+       "restricted-displaytitle": "<strong>Chetauni:</strong> Display title \"$1\" was ignored since it is not equivalent to the page's actual title.",
        "invalid-indicator-name": "<strong>Error:</strong> Panna status indicators' <code>naam</code> attribute khaali nai rahe sake hae.",
        "version": "Badlao",
        "version-extensions": "Installed extensions",
        "version-libraries": "Installed libraries",
        "version-libraries-library": "Library",
        "version-libraries-version": "Version",
+       "version-libraries-license": "License",
+       "version-libraries-description": "Baare me",
+       "version-libraries-authors": "Likhe waale",
        "redirect": "File, sadasya, panna, nai to, revision ID se redirect",
        "redirect-summary": "Ii khaas panna ek file (given the filename), panna (given a revision ID or page ID), nai to, sadasya ke panna (given a numeric user ID) pe redirect hoe hae.  Usage: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Jaao",
        "redirect-page": "Sadasya ke ID",
        "redirect-revision": "Panna ke revision",
        "redirect-file": "Filename",
+       "redirect-logid": "Log ID",
        "redirect-not-exists": "Value ke nai paawa gais hae",
        "fileduplicatesearch": "Duplicate files ke khojo",
        "fileduplicatesearch-summary": "Duplicate files based on hash values ke khojo.",
        "tag-filter": "[[Special:Tags|Tag]] filter karo:",
        "tag-filter-submit": "Filter",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
+       "tag-mw-contentmodelchange": "Content model ke badlao",
+       "tag-mw-contentmodelchange-description": "Badlao, jon ki [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel change the content model] of a page",
        "tags-title": "Tags",
        "tags-intro": "Ii panna uu tag ke list kare hae jiske software edit with, aur their meaning se mark kare hae.",
        "tags-tag": "Tag ke naam",
        "tags-actions-header": "Actions",
        "tags-active-yes": "Haan",
        "tags-active-no": "Nai",
-       "tags-source-extension": "Ek extension se define hoe hae",
+       "tags-source-extension": "Software define karis hai",
        "tags-source-manual": "Sadasya aur bot se manually apply karaa jaawe hae",
        "tags-source-none": "Ab iske kaam me nai lawa jaae hae",
        "tags-edit": "badlo",
        "tags-deactivate": "deactivate karo",
        "tags-hitcount": "$1 {{PLURAL:$1|badlao|badlao}}",
        "tags-manage-no-permission": "Aap ke change tags ke manage kare ke ijaajat nai hae.",
+       "tags-manage-blocked": "Aap tags ke nai badle saktaa hai, jab {{GENDER:$1|aap}} blocked hai.",
        "tags-create-heading": "Ek nawaa tag ke banao",
        "tags-create-explanation": "Default se, jon nawaa tag banawa gais hae ke sadasya aur bots ke kaam me laae khatir dewa jaai.",
        "tags-create-tag-name": "Tag ke naam:",
        "tags-delete-title": "Tag ke delete karo",
        "tags-delete-explanation-initial": "Aap tag \"$1\" ke database se mitae waala hae.",
        "tags-delete-explanation-in-use": "Iske {{PLURAL:$2|$2 revision or log entry|all $2 revisions and/or log entries}} se hatae dewa jaai jahaan pe it is currently applied.",
+       "tags-delete-explanation-warning": "Ii action <strong>irreversible</strong> hai aur <strong>cannot be undone</strong>, not even by database administrators. Be certain this is the tag you mean to delete.",
+       "tags-delete-explanation-active": "<strong>Ii tag \"$1\" abhi bhi active hai, and will continue to be applied in the future.</strong> To stop this from happening, go to the place(s) where the tag is set to be applied, and disable it there.",
        "tags-delete-reason": "Kaaran:",
+       "tags-delete-submit": "Irreversibly delete this tag",
+       "tags-delete-not-allowed": "Tags jiske ek an extension  se define karaa gais hai, ke nai mataawa jaae sake hai unless the extension specifically allows it.",
+       "tags-delete-not-found": "Tag \"$1\" nai hai.",
+       "tags-delete-too-many-uses": "Tag \"$1\" ke $2 {{PLURAL:$2|revision|revisions}} time se jaada apply karaa gais hai, jiske matalab hai is iske mitaawa nai jaae sake hai.",
+       "tags-delete-warnings-after-delete": "Tag \"$1\" ke mitae dewa gais rahaa, but the following {{PLURAL:$2|warning was|warnings were}} encountered:",
+       "tags-delete-no-permission": "Aap ke change tags ke mitae ke ijaajat nai hae.",
+       "tags-activate-title": "Tag ke activate karo",
+       "tags-activate-question": "Aap tag \"$1\" ke activate kare waala hai.",
+       "tags-activate-reason": "Kaaran:",
+       "tags-activate-not-allowed": "Tag \"$1\" ke nai activate karaa jaae sake hai.",
+       "tags-activate-not-found": "Tag \"$1\" nai hai.",
+       "tags-activate-submit": "Activate karo",
+       "tags-deactivate-title": "Tag ke Deactivate karo",
+       "tags-deactivate-question": "Aap tag \"$1\" ke deactivate kare waala hai.",
+       "tags-deactivate-reason": "Kaaran:",
+       "tags-deactivate-not-allowed": "Tag \"$1\" ke deactivate nai karaa jaae sake hai.",
+       "tags-deactivate-submit": "Deactivate karo",
+       "tags-apply-no-permission": "Aap ke lage, aapan badlao ke saathe, tag ke badle ke ijaajat nai hai.",
+       "tags-apply-blocked": "Aap ke lage, aapan badlao ke saathe, tag ke badle ke ijaajat nai hai jab ke {{GENDER:$1|aap}} blocked hai.",
+       "tags-apply-not-allowed-one": "Tag \"$1\" ke manually apply kare ke ijaajat nai hai.",
+       "tags-apply-not-allowed-multi": "Niche ke {{PLURAL:$2|tag}} ke manually apply nai karaa jaae sake hai: $1",
+       "tags-update-no-permission": "Aap ke lage individual revisions nai to log entries pe tags ke jorre aur hatae ke adhikaar nai hai.",
+       "tags-update-blocked": "Aap tags ke nai hatae saktaa hai, jab {{GENDER:$1|aap}} blocked hai.",
+       "tags-update-add-not-allowed-one": "Tag \"$1\" ke manually jorre ke ijaajat nai hai.",
+       "tags-update-add-not-allowed-multi": "Niche ke {{PLURAL:$2|tag}} ke manually jorra nai jaae sake hai: $1",
+       "tags-update-remove-not-allowed-one": "Tag \"$1\" ke hatae ke adhikaae nai hai.",
+       "tags-update-remove-not-allowed-multi": "Niche ke {{PLURAL:$2|tag}} ke manually hataawa nai jaae sake hai: $1",
+       "tags-edit-title": "Tags ke badlo",
+       "tags-edit-manage-link": "Tags ke manage karo",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Chunaa gais badlao}} [[:$2]] ke:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Chuna gais log event}}:",
+       "tags-edit-revision-legend": "{{PLURAL:$1|Ii badlao|sab $1 badlao}} se tag ke jorro , nai to hatao",
+       "tags-edit-logentry-legend": "{{PLURAL:$1|Ii log entry se|sab $1 log entry}} se tag ke jorro, nai to hatao",
+       "tags-edit-existing-tags": "Abhi ke tag:",
+       "tags-edit-existing-tags-none": "<em>Kuchh bhi nai</em>",
+       "tags-edit-new-tags": "Nawaa tag:",
+       "tags-edit-add": "Ii tag ke jorro:",
+       "tags-edit-remove": "Ii tag ke hatao:",
+       "tags-edit-remove-all-tags": "(sab tag ke hatao)",
+       "tags-edit-chosen-placeholder": "Kuchh tag ke select karo",
+       "tags-edit-chosen-no-results": "Uu match se koi tag nai milaa",
+       "tags-edit-reason": "Kaaran:",
+       "tags-edit-revision-submit": "{{PLURAL:$1|Ii badlao|$1 badlao}} pe changes ke apply karo",
+       "tags-edit-logentry-submit": "{{PLURAL:$1|Ii log entry|$1 log entry}} pe changes ke apply karo",
+       "tags-edit-success": "Badlao ke apply kar dewa gais hai.",
+       "tags-edit-failure": "Balao ke nai apply karaa jaae sakaa gais hai:\n$1",
+       "tags-edit-nooldid-title": "Target revision jon ki valid nai hai",
+       "tags-edit-nooldid-text": "Aap saait koi target revision ke nai specify karaa hai, jispe ii function perfom karaa jaae sake hai, nai to specified revision does not exist.",
+       "tags-edit-none-selected": "Meharbaani kar ke ek tag ke chuno jiske jorra, nai to, hataawa jaae sake hai.",
        "comparepages": "Panna ke biich me antar dekho",
        "compare-page1": "Panna 1",
        "compare-page2": "Panna 2",
        "htmlform-cloner-create": "Aur add karo",
        "htmlform-cloner-delete": "Remove karo",
        "htmlform-cloner-required": "Kamti se kamti ek value ke jaruri hae",
+       "htmlform-date-placeholder": "YYYY-MM-DD",
+       "htmlform-time-placeholder": "HH:MM:SS",
+       "htmlform-datetime-placeholder": "YYYY-MM-DD HH:MM:SS",
+       "htmlform-date-invalid": "Jon value ke aap specify karaa hai, ke date nai maana jaawe hai. Format YYYY-MM-DD ke use kare ke kosis karo.",
+       "htmlform-time-invalid": "Jon value ke aap specify karaa hai, ke time nai maana jaawe hai. Format HH:MM:SS ke use kar ke format kare ke kosis karo.",
+       "htmlform-datetime-invalid": "Jon value ke aap specify karaa hai, ke date nai maana jaawe hai. Format YYYY-MM-DD HH-MM-SS ke use kar ke format kare ke kosis karo.",
+       "htmlform-date-toolow": "Jon value ke aap specify karaa hai, sab se puraana allowed date $1 se pahile hai:",
+       "htmlform-date-toohigh": "Jon value ke aap specify karaa hai, sab se nawaa allowed date ke baad hai:$1",
+       "htmlform-time-toolow": "Jon value ke aap specify karaa hai, sab se puraana allowed time $1 se pahile hai",
+       "htmlform-time-toohigh": "Jon value ke aap specify karaa hai, sab se nawaa allowed time $1 ke baad hai.",
+       "htmlform-datetime-toolow": "Jon value ke aap specify karaa hai, sab se puraana allowed date $1 se pahile hai.",
+       "htmlform-datetime-toohigh": "Jon value ke aap specify karaa hai, sab se nawaa allowed date $1 ke baad hai.",
+       "htmlform-title-badnamespace": "[[:$1]] is not in the \"{{ns:$2}}\" namespace.",
+       "htmlform-title-not-creatable": "\"$1\" is not a creatable page title",
+       "htmlform-title-not-exists": "$1 nai hae",
+       "htmlform-user-not-exists": "<strong>$1</strong> nai hai.",
+       "htmlform-user-not-valid": "<strong>$1</strong> valid username nai hai.",
        "logentry-delete-delete": "$1 {{GENDER:$2|deleted}} panna $3",
+       "logentry-delete-delete_redir": "$1 {{GENDER:$2|deleted}} redirect $3 by overwriting",
        "logentry-delete-restore": "$1 {{GENDER:$2|restored}} panna $3",
        "logentry-delete-event": "$1 {{GENDER:$2|changed}} visibility of {{PLURAL:$5|a log event|$5 log events}} on $3: $4",
        "logentry-delete-revision": "$1 {{GENDER:$2|changed}} visibility of {{PLURAL:$5|a revision|$5 revisions}} panna $3: $4 pe",
        "revdelete-uname-unhid": "username ke lukawa gais hae",
        "revdelete-restricted": "sysops pe llabu restrictions",
        "revdelete-unrestricted": "sysops se hatawa gae rukawat",
+       "logentry-block-block": "$1 {{GENDER:$2|blocked}} {{GENDER:$4|$3}} with an expiration time of $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|unblocked}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|changed}} block settings for {{GENDER:$4|$3}} with an expiration time of $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|blocked}} {{GENDER:$4|$3}} with an expiration time of $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|changed}} block settings for {{GENDER:$4|$3}} with an expiration time of $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|imported}} $3 by file upload",
+       "logentry-import-upload-details": "$1 {{GENDER:$2|imported}} $3 by file upload ($4 {{PLURAL:$4|revision|revisions}})",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|imported}} $3 from another wiki",
+       "logentry-import-interwiki-details": "$1 {{GENDER:$2|imported}} $3 from $5 ($4 {{PLURAL:$4|revision|revisions}})",
        "logentry-merge-merge": "$1 {{GENDER:$2|merged}} $3 into $4 (revisions up to $5)",
        "logentry-move-move": "$1 {{GENDER:$2|moved}} panna $3 se $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|moved}} panna $3 se $4 without leaving a redirect",
        "logentry-newusers-create2": "Sadasya $3 ke account  {{GENDER:$2|created}} ke $1 banais hae.",
        "logentry-newusers-byemail": "Sadasya $3 ke account {{GENDER:$2|created}} ke $1 banais hae  aur password ke email se bheja gais hae",
        "logentry-newusers-autocreate": "Sadasya $1 ke account {{GENDER:$2|created}} ke automatically banawa gais hae",
-       "logentry-rights-rights": "$1 {{GENDER:$2|changed}} group ke membership $3 ke khatir $4 se lai ke $5 talak",
+       "logentry-protect-move_prot": "$1 {{GENDER:$2|moved}} protection settings from $4 to $3",
+       "logentry-protect-unprotect": "$1 {{GENDER:$2|removed}} protection from $3",
+       "logentry-protect-protect": "$1 {{GENDER:$2|protected}} $3 $4",
+       "logentry-protect-protect-cascade": "$1 {{GENDER:$2|protected}} $3 $4 [cascading]",
+       "logentry-protect-modify": "$1 {{GENDER:$2|changed}} protection level for $3 $4",
+       "logentry-protect-modify-cascade": "$1 {{GENDER:$2|changed}} protection level for $3 $4 [cascading]",
+       "logentry-rights-rights": "$1 {{GENDER:$2|changed}} group membership for {{GENDER:$6|$3}} from $4 to $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|changed}} group ke membership $3 ke khatir",
        "logentry-rights-autopromote": "$1 ke apne se $4 se $5 {{GENDER:$2|promoted karaa gais hae}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|upload karaa gais hae}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|uploaded}} a new version of $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|upload karaa gais hae}} $3",
+       "log-name-managetags": "Tag management log",
+       "logentry-managetags-create": "$1 {{GENDER:$2|created}} the tag \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|deleted}} the tag \"$4\" (removed from $5 {{PLURAL:$5|revision or log entry|revisions and/or log entries}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|activated}} the tag \"$4\" for use by users and bots",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|deactivated}} the tag \"$4\" for use by users and bots",
+       "log-name-tag": "Tag log",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|added}} the {{PLURAL:$7|tag|tags}} $6 to revision $4 of page $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|added}} the {{PLURAL:$7|tag|tags}} $6 to log entry $5 of page $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|removed}} the {{PLURAL:$9|tag|tags}} $8 from revision $4 of page $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|removed}} the {{PLURAL:$9|tag|tags}} $8 from log entry $5 of page $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|updated}} tags on revision $4 of page $3 ({{PLURAL:$7|added}} $6; {{PLURAL:$9|removed}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|updated}} tags on log entry $5 of page $3 ({{PLURAL:$7|added}} $6; {{PLURAL:$9|removed}} $8)",
        "rightsnone": "(koi nai hai)",
        "revdelete-summary": "summary ke badlo",
        "feedback-adding": "Panna me subject jorra jaawe hae...",
+       "feedback-back": "Piichhe",
        "feedback-bugcheck": "Julum! Khaali ii check karna ki ii ek pahile se jaana waala bugs me se nai hae [$1 known bugs].",
        "feedback-bugnew": "Ham karaa hae. Nawaa bug ke report karo",
        "feedback-bugornote": "Agar aap ek technical problem ke detail me describe kare mangtaa hae tab meharbaani kar ke [$1 report a bug].\n\nNai to, aap niche ke sahaj form ke kaam me laae saktaa hae. Aap ke comment ke, aap ke naam ke saathe, panna \"[$3 $2]\" me jorra jaai.",
        "feedback-cancel": "Cancel karo",
        "feedback-close": "Kar dewa gais hae",
+       "feedback-external-bug-report-button": "Ek technical task ke file karo",
+       "feedback-dialog-title": "Feedback ke submit karo",
        "feedback-error1": "Error: Unrecognized result from API",
        "feedback-error2": "Error: Edit fail hoi gais hae",
        "feedback-error3": "Error: API se koi response nai mila",
        "feedback-subject": "Subject:",
        "feedback-submit": "Submit karo",
        "feedback-thanks": "Dhanyabaad! Aap ke feedback ke panna \"[$2 $1]\" me post karaa gais hae.",
+       "feedback-thanks-title": "Dhanbaad!",
        "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-fileexists-shared-forbidden": "Ek file, jiske naam \"$1\" hae abhi hae aur file repository me shared hae, aur iske overwrite nai karaa jaae sake hae.",
        "api-error-file-too-large": "Jon file ke aap submit karaa hae bahut barraa hae.",
        "api-error-filename-tooshort": "Filename bahut chhota hae.",
-       "api-error-filetype-banned": "Ii rakam ke file banned hae."
+       "api-error-filetype-banned": "Ii rakam ke file banned hae.",
+       "special-characters-group-latin": "Latin",
+       "special-characters-group-latinextended": "Latin extended",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Symbols",
+       "special-characters-group-greek": "Greek",
+       "special-characters-group-greekextended": "Greek extended",
+       "special-characters-group-cyrillic": "Cyrillic",
+       "special-characters-group-arabic": "Arabic",
+       "special-characters-group-arabicextended": "Arabic extended",
+       "special-characters-group-persian": "Persian",
+       "special-characters-group-hebrew": "Hebrew",
+       "special-characters-group-bangla": "Bangla",
+       "special-characters-group-tamil": "Tamil",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Sinhala",
+       "special-characters-group-gujarati": "Gujarati",
+       "special-characters-group-devanagari": "Devanagari",
+       "special-characters-group-thai": "Thai",
+       "special-characters-group-lao": "Lao",
+       "special-characters-group-khmer": "Khmer",
+       "special-characters-title-endash": "en dash",
+       "special-characters-title-emdash": "em dash",
+       "special-characters-title-minus": "minus sign"
 }
index 86f869c..62ecc04 100644 (file)
        "editinguser": "Promjena suradničkih prava {{GENDER:$1|suradnika|suradnice}} <strong>[[User:$1|$1]]</strong> $2",
        "viewinguserrights": "Pregled suradničkih prava {{GENDER:$1|suradnika|suradnice}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Uredi suradničke skupine",
-       "userrights-viewusergroup": "Pregled suradničkih skupina",
+       "userrights-viewusergroup": "Vidi suradničke skupine",
        "saveusergroups": "Spremi {{GENDER:$1|suradničke}} grupe",
        "userrights-groupsmember": "Član:",
        "userrights-groupsmember-auto": "Uključeni član:",
        "userrights-conflict": "Sukob promjene suradničkih prava! Molimo provjerite i potvrdite svoje promjene.",
        "group": "Skupina:",
        "group-user": "Suradnici",
-       "group-autoconfirmed": "automatski potvrđeni suradnici",
+       "group-autoconfirmed": "Automatski potvrđeni suradnici",
        "group-bot": "Botovi",
        "group-sysop": "Administratori",
        "group-bureaucrat": "Birokrati",
        "deletepage": "Izbriši stranicu",
        "confirm": "Potvrdi",
        "excontent": "sadržaj je bio: '$1'",
-       "excontentauthor": "sadržaj je bio: '$1' (a jedini urednik '$2')",
+       "excontentauthor": "sadržaj je bio: »$1«; {{GENDER:$2|jedini pridonositelj bio je|jedina pridonositeljica bila je}} [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]])",
        "exbeforeblank": "sadržaj prije brisanja je bio: '$1'",
        "delete-confirm": "Obriši \"$1\"",
        "delete-legend": "Izbriši",
        "pageinfo-subpages-value": "Ukupno $1 ($2 {{PLURAL:$2|preusmjeravanje|preusmjeravanja}}; $3 {{PLURAL:$3|obična podstranica|obične podstranice|običnih podstranica}})",
        "pageinfo-firstuser": "Suradnik koji je stvorio stranicu",
        "pageinfo-firsttime": "Datum stvaranja stranice",
-       "pageinfo-lastuser": "Posljednji urednik stranice",
+       "pageinfo-lastuser": "Posljednji uređivač stranice",
        "pageinfo-lasttime": "Datum posljednjeg uređivanja",
        "pageinfo-edits": "Ukupan broj uređivanja",
        "pageinfo-authors": "Broj različitih autora",
        "markaspatrolledtext-file": "Označi ovu inačicu datoteke kao pregledanu",
        "markedaspatrolled": "Pregledano",
        "markedaspatrolledtext": "Odabrana promjena [[:$1]] označena je pregledanom.",
-       "rcpatroldisabled": "Nadzor nedavnih promjena isključen",
-       "rcpatroldisabledtext": "Naredba \"Nadziri nedavne promjene\" trenutačno je isključena.",
+       "rcpatroldisabled": "Ophodnja nedavnih promjena isključena",
+       "rcpatroldisabledtext": "Naredba \"Ophodnja nedavnih promjena\" trenutačno je isključena.",
        "markedaspatrollederror": "Ne mogu označiti za pregledano",
        "markedaspatrollederrortext": "Morate odabrati inačicu koju treba označiti za pregledanu.",
        "markedaspatrollederror-noautopatrol": "Ne možete vlastite promjene označiti patroliranima.",
index ce3aaba..f5a93a5 100644 (file)
@@ -44,7 +44,8 @@
                        "JulesWinnfield-hu",
                        "Bencoke",
                        "Máté",
-                       "Wolf Rex"
+                       "Wolf Rex",
+                       "BanKris"
                ]
        },
        "tog-underline": "Hivatkozások aláhúzása:",
@@ -70,7 +71,7 @@
        "tog-enotifwatchlistpages": "Kapjak értesítést e-mailben, ha egy általam figyelt lap vagy fájl megváltozik",
        "tog-enotifusertalkpages": "Kapjak értesítést e-mailben, ha megváltozik a vitalapom",
        "tog-enotifminoredits": "Kapjak értesítést e-mailben a lapok és fájlok apró változtatásairól",
-       "tog-enotifrevealaddr": "Jelenjen meg az e-mail címem a figyelmeztető e-mailekben",
+       "tog-enotifrevealaddr": "Jelenjen meg az e-mail-címem az értesítő e-mailekben",
        "tog-shownumberswatching": "A lapot figyelő szerkesztők számának megjelenítése",
        "tog-oldsig": "A jelenlegi aláírásod:",
        "tog-fancysig": "Az aláírás wikiszöveg (nem lesz automatikusan hivatkozásba rakva)",
        "passwordreset-emaildisabled": "Az e-mail funkció le van tiltva ezen a wikin.",
        "passwordreset-username": "Felhasználónév:",
        "passwordreset-domain": "Tartomány:",
-       "passwordreset-capture": "Meg szeretnéd nézni az elkészült üzenetet?",
-       "passwordreset-capture-help": "Ha kipipálod a dobozt, elmegy az üzenet a felhasználónak és megjelenik számodra (az ideiglenes jelszóval együtt).",
        "passwordreset-email": "E-mail cím:",
        "passwordreset-emailtitle": "A(z) {{SITENAME}}-fiók adatai",
        "passwordreset-emailtext-ip": "Valaki (vélhetően Te, a $1 IP-címről) a jelszavad visszaállítását kérte a {{SITENAME}} ($4) oldalon felvett {{PLURAL:$3|fiókban|fiókokban}}. A következő felhasználói {{PLURAL:$3|fiók van|fiókok vannak}} hozzárendelve ehhez az e-mail címhez:\n\n$2\n\n{{PLURAL:$3|Ez az ideiglenes jelszó|Ezek az ideiglenes jelszavak}} $5 nap múlva {{PLURAL:$3|jár|járnak}} le. Jelentkezz be, és cseréld le a jelszavadat. Ha valaki más kérte az emlékeztetőt, vagy eszedbe jutott a régi jelszó, és nem akarod lecserélni a jelszavadat, hagyd figyelmen kívül ezt az üzenetet, és használd a régi jelszavadat.",
        "passwordreset-emailelement": "Felhasználónév: \n$1\n\nIdeiglenes jelszó: \n$2",
        "passwordreset-emailsentemail": "Ha ez az e-mail-cím van a fiókodhoz társítva, egy jelszó-visszaállító e-mailt küldünk.",
        "passwordreset-emailsentusername": "Ha ehhez a felhasználónévhez tartozik e-mail cím, akkor egy jelszó-visszaállító levelet küld a rendszer.",
-       "passwordreset-emailsent-capture2": "A jelszóvisszaállító {{PLURAL:$1|e-mailt|e-maileket}} elküldtük. A {{PLURAL:$1|felhasználónév és a jelszó|felhasználónevek és jelszavak listája}} itt látható.",
-       "passwordreset-emailerror-capture2": "Az e-mail-küldés {{GENDER:$2|sikertelen}}: $1. A {{PLURAL:$3|felhasználónév és a jelszó|felhasználónevek és jelszavak listája}} itt látható.",
        "passwordreset-nocaller": "A hívó megadása kötelező",
        "passwordreset-nosuchcaller": "A hívó nem létezik: $1",
        "passwordreset-ignored": "A jelszó-visszaállítás nem lett kezelve. Talán nincs konfigurálva szolgáltató?",
        "saveprefs": "Mentés",
        "restoreprefs": "A beállítások alaphelyzetbe állítása minden szakaszban",
        "prefs-editing": "Szerkesztés",
-       "rows": "Sor",
-       "columns": "Oszlop",
        "searchresultshead": "Keresés",
        "stub-threshold": "A hivatkozások csonkként történő formázásának határa ($1):",
        "stub-threshold-sample-link": "minta",
        "prefs-help-recentchangescount": "Ez vonatkozik a friss változtatásokra, laptörténetekre és naplókra is.",
        "prefs-help-watchlist-token2": "Ez a titkos kulcs a figyelőlistádhoz.\nAki ismeri, meg tudja nézni, milyen lapokat figyelsz, úgyhogy ne oszdd meg másokkal.\n[[Special:ResetTokens|Kattints ide, ha meg akarod változtatni]].",
        "savedprefs": "Az új beállításaid érvénybe léptek.",
-       "savedrights": "$1 felhasználói jogai el lettek mentve.",
+       "savedrights": "{{GENDER:$1|$1}} felhasználói csoportjai el lettek mentve.",
        "timezonelegend": "Időzóna:",
        "localtime": "Helyi idő:",
        "timezoneuseserverdefault": "Az alapértelmezett beállítás használata ($1)",
        "prefswarning-warning": "A beállításaidban tett módosítások nincsenek elmentve. Ha a $1 megnyomása nélkül hagyod el az oldalt, a beállításaid nem módosulnak.",
        "prefs-tabs-navigation-hint": "Tipp: a jobbra-balra nyilakkal navigálhatsz a fülek között.",
        "userrights": "Szerkesztői jogok beállítása",
-       "userrights-lookup-user": "Szerkesztőcsoportok beállítása",
+       "userrights-lookup-user": "Válasszon ki egy felhasználót",
        "userrights-user-editname": "Add meg a szerkesztő nevét:",
-       "editusergroup": "{{GENDER:$1|Szerkesztőcsoportok}} módosítása",
+       "editusergroup": "Szerkesztőcsoportok betöltése",
        "editinguser": "<strong>[[User:$1|$1]]</strong> felhasználó jogainak megváltoztatása $2",
        "userrights-editusergroup": "Szerkesztőcsoportok módosítása",
        "saveusergroups": "{{GENDER:$1|Szerkesztőcsoportok}} mentése",
        "userrights-reason": "Ok:",
        "userrights-no-interwiki": "Nincs jogod a szerkesztők jogainak módosításához más wikiken.",
        "userrights-nodatabase": "$1 adatbázis nem létezik vagy nem helyi.",
-       "userrights-nologin": "[[Special:UserLogin|Be kell jelentkezned]] egy adminisztrátori fiókkal, hogy szerkesztői jogokat adhass.",
-       "userrights-notallowed": "Nincs jogosultságod jogosultságok adására vagy elvételére.",
        "userrights-changeable-col": "Megváltoztatható csoportok",
        "userrights-unchangeable-col": "Nem megváltoztatható csoportok",
        "userrights-conflict": "Felhasználói jogok ütközése! Kérlek, végezd el újra a változtatásokat.",
-       "userrights-removed-self": "Eltávolítottad a saját jogosultságaidat, így már nem tudod elérni ezt az oldalt.",
        "group": "Csoport:",
        "group-user": "szerkesztők",
        "group-autoconfirmed": "automatikusan megerősített szerkesztők",
        "right-siteadmin": "adatbázis lezárása, felnyitása",
        "right-override-export-depth": "Lapok exportálása a hivatkozott lapokkal együtt, legfeljebb 5-ös mélységig",
        "right-sendemail": "e-mail küldése más felhasználóknak",
-       "right-passwordreset": "Jelszó visszaállítási emailek megtekintése",
        "right-managechangetags": "[[Special:Tags|címkék]] létrehozása és (de)aktiválása",
        "right-applychangetags": "[[Special:Tags|címkék]] alkalmazása saját változatokra",
        "right-changetags": "egyedi lapváltozatokon és naplóbejegyzéseken tetszőleges [[Special:Tags|címkék]] hozzáadása és törlése",
        "action-upload_by_url": "fájl feltöltése URL-címről",
        "action-writeapi": "író API használata",
        "action-delete": "lap törlése",
-       "action-deleterevision": "változat törlése",
+       "action-deleterevision": "változatok törlése",
        "action-deletedhistory": "lap törölt laptörténetének megtekintése",
        "action-browsearchive": "keresés a törölt lapok között",
-       "action-undelete": "lap helyreállítása",
-       "action-suppressrevision": "rejtett változat megtekintése és helyreállítása",
+       "action-undelete": "lapok helyreállítása",
+       "action-suppressrevision": "rejtett változatok megtekintése és helyreállítása",
        "action-suppressionlog": "privát napló megtekintése",
        "action-block": "szerkesztő blokkolása",
        "action-protect": "lap védelmi szintjének megváltoztatása",
        "api-error-unclassified": "Ismeretlen hiba történt",
        "api-error-unknown-code": "Ismeretlen hiba: „$1”",
        "api-error-unknown-error": "Belső hiba: valami baj történt a fájl feltöltése közben.",
-       "api-error-unknown-warning": "Ismeretlen figyelmeztetés: $1",
+       "api-error-unknown-warning": "Ismeretlen figyelmeztetés: „$1”.",
        "api-error-unknownerror": "Ismeretlen hiba: „$1”.",
        "api-error-uploaddisabled": "A feltöltés le van tiltva ezen a wikin.",
        "api-error-verification-error": "A fájl feltehetőleg sérült, vagy hibás a kiterjesztése.",
        "usercssispublic": "Figyelem: CSS-allapokon ne tárolj bizalmas adatokat, mivel minden felhasználó számára láthatóak.",
        "restrictionsfield-badip": "Érvénytelen IP-cím vagy -tartomány: $1",
        "restrictionsfield-label": "Engedélyezett IP-tartományok:",
-       "restrictionsfield-help": "Egy IP-cím vagy CIDR-tartomány soronként. Minden engedélyezéséhez használd a következő tartományokat:<br><code>0.0.0.0/0</code><br><code>::/0</code>",
-       "edit-error-short": "Hiba: $1",
-       "edit-error-long": "Hibák:\n\n$1"
+       "restrictionsfield-help": "Egy IP-cím vagy CIDR-tartomány soronként. Minden engedélyezéséhez használd a következő tartományokat:<br><code>0.0.0.0/0</code><br><code>::/0</code>"
 }
index 463ec8a..415de57 100644 (file)
        "searcharticle": "Va",
        "history": "Historia del pagina",
        "history_short": "Historia",
+       "history_small": "historia",
        "updatedmarker": "actualisate post mi ultime visita",
        "printableversion": "Version pro imprimer",
        "permalink": "Ligamine permanente",
        "uncategorizedcategories": "Categorias sin categoria",
        "uncategorizedimages": "Files non categorisate",
        "uncategorizedtemplates": "Patronos sin categoria",
+       "uncategorized-categories-exceptionlist": " # Contine un lista de categorias que non debe esser mentionate sur Special:UncategorizedCategories. Un per linea, comenciante con \"*\". Lineas que comencia con un altere character (incluse spatios) es ignorate. Usa \"#\" for commentos.",
        "unusedcategories": "Categorias non usate",
        "unusedimages": "Imagines non usate",
        "wantedcategories": "Categorias plus demandate",
index 065b79a..2dee297 100644 (file)
        "tog-newpageshidepatrolled": "Celez patroliita pagini en la listo di nova pagino",
        "tog-hidecategorization": "Celar kategorizeso di la pagini",
        "tog-extendwatchlist": "Expansez surveyo-listo por montrar omna chanji, vice nur la maxim recenta",
-       "tog-usenewrc": "Usez augmentita Recenta chanji (JavaScript bezonesas)",
+       "tog-usenewrc": "Chanji al grupo po pagino en recenta chanji e \"watchlist\"",
        "tog-numberheadings": "Autonumerez tituli",
        "tog-showtoolbar": "Montrez redaktilo (JavaScript bezonesas)",
        "tog-editondblclick": "Redaktez pagini kande on klikus dufoye (JavaScript bezonesas)",
-       "tog-editsectiononrightclick": "Kapabligez redakto di secioni kande on dextra-klikus tituli di secioni (JavaScript bezonesas)",
+       "tog-editsectiononrightclick": "Kapabligez redakto di secioni per dextre-klikar tituli di secioni",
        "tog-watchcreations": "Adjuntez la pagini qui me kreos a mea surveyaji",
        "tog-watchdefault": "Adjuntez pagini qui me redaktos a mea surveyaji",
        "tog-watchmoves": "Adjuntez pagini qui me movos a mea surveyaji",
        "article": "artiklo",
        "newwindow": "(aparos en nova panelo)",
        "cancel": "Anular",
-       "moredotdotdot": "Plua...",
-       "morenotlisted": "Ca listo povas esar nekompleta",
+       "moredotdotdot": "Plusa...",
+       "morenotlisted": "Ca listo povas esar nekompleta.",
        "mypage": "Mea pagino",
        "mytalk": "Diskuti",
        "anontalk": "Diskuto relatant ad ica IP",
        "searcharticle": "Irez",
        "history": "Paginala historio",
        "history_short": "Versionaro",
+       "history_small": "historio",
        "updatedmarker": "aktualigita pos mea lasta vizito",
        "printableversion": "Imprimebla versiono",
        "permalink": "Permananta ligilo",
        "views": "Apari",
        "toolbox": "Utensili",
        "tool-link-userrights": "Chanjar la grupi di {{GENDER:$1|uzanto}}",
-       "tool-link-userrights-readonly": "Vidar lua grupi",
+       "tool-link-userrights-readonly": "Vidar grupi {{GENDER:$1|user}}",
        "tool-link-emailuser": "Sendar e-posto a {{GENDER:$1|}}",
-       "userpage": "Vidar uzanto-pagino",
+       "userpage": "Vidar uzeropagino",
        "projectpage": "Vidar projeto-pagino",
        "imagepage": "Vidar arkivo-pagino",
        "mediawikipage": "Vidar mesajo-pagino",
        "jumptonavigation": "pilotado",
        "jumptosearch": "serchez",
        "view-pool-error": "Pardonez, la sistemo esas okupata nun.\nMulta uzanti deziras vidar ca pagino.\nVoluntez vartar kelka instanti ante itere probar vidar ol.\n\n$1",
+       "generic-pool-error": "Pardonez, la servo-komputeri esas okupata nun.\nMulta uzanti probas vidar ta pagino.\nVoluntez vartar kelka instanti ante itere probar vidar ol.",
        "pool-timeout": "Limito di tempo vartante la klozado",
        "pool-queuefull": "La serio di taski esas plena",
        "pool-errorunknown": "nekonocata eroro",
        "sort-descending": "En ordino dekreskanta",
        "sort-ascending": "En ordino kreskanta",
        "nstab-main": "Pagino",
-       "nstab-user": "Uzanto-pagino",
+       "nstab-user": "Uzeropagino",
+       "nstab-media": "Media pagino",
        "nstab-special": "Specala pagino",
        "nstab-project": "Projeto pagino",
        "nstab-image": "Failo",
        "nospecialpagetext": "<strong>Vu demandis specala pagino qua ne existas.</strong>\n\nOn povas trovar listo di valida specala pagini en [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Eroro",
        "databaseerror": "Datumarala eroro",
+       "databaseerror-text": "Eventis eroro en datum-bazal demando.\nTo indikus eror en la programaro.",
+       "databaseerror-textcl": "Eventis eroro en datumbazal demando.",
+       "databaseerror-query": "Demando:$1",
+       "databaseerror-function": "Funciono: $1",
        "databaseerror-error": "Eroro:$1",
        "laggedslavemode": "<strong>Averto:</strong> La pagino povas ne kontenar la maxim recenta modifiki.",
        "readonly": "Datumaro esas blokusita",
        "badtitletext": "La solicitita pagino esas nevalida, vakua od esas\nnekorekta interlinguale od interwikale ligilo.",
        "perfcached": "La sequanta datumi esas kashizita* e li povus ne aktualigesar nuntempe. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
        "viewsource": "Vidar font-kodo",
-       "protectedpagetext": "Ica pagino esis protektita por preventar redaktar.",
-       "viewsourcetext": "Vu povas vidar ed kopiar la fonto-kodexo di ta pagino:",
+       "protectedpagetext": "Ta pagino protektesis por preventar redaktadi od altra agi.",
+       "viewsourcetext": "Vu povas vidar ed kopiar la fonto-kodexo di ta pagino.",
+       "viewyourtext": "Vu darfas vidar e kopiar la fonto di <strong>vua redakti</strong> ad ita pagino.",
+       "protectedinterface": "Ita pagino provizas 'interface' texto por la programaro en ita wiki, ed esas protektita por preventar mis-uzo.\nPor introduktar o chanjar tradukaji di la wiki-i, voluntez vizitar [https://translatewiki.net/ translatewiki.net], la projeto qua provizas tradukaji a MediaWiki.",
+       "editinginterface": "<strong>Averto:</strong> Vu redaktas pagino qua uzesas por provizar 'interface' texto di la programaro.\nChanji a ta pagino chanjos la aspekto di pagini por altra uzeri di ta wiki.",
+       "translateinterface": "Por introduktar o chanjar tradukaji en omna wiki-i, voluntez uzar [https://translatewiki.net/ translatewiki.net], la komuna projeto MediaWiki.",
        "ns-specialprotected": "On ne povas redaktar speciala pagini.",
+       "exception-nologin": "Vu ne eniris",
+       "exception-nologin-text": "Voluntez enirar konto por acesar la pagino od ago.",
+       "exception-nologin-text-manual": "Voluntez $1 por acesar ta pagino od ago.",
+       "virus-badscanner": "Mala selektajo: Nekonocata skanilo di virusi: <em>$1</em>",
+       "virus-scanfailed": "skano ne sucesis (kodexo $1)",
        "virus-unknownscanner": "antiviruso nekonocata:",
-       "logouttext": "<strong>'''Vu nun esas nun ek {{SITENAME}}.'''</strong>\n\nVu povas durar uzante {{SITENAME}} anonimale, o vu povas <span class='plainlinks'>[$1 enirar itere]</span> kom la sama o diferenta uzanto.\nAtencez ke kelka pagini posible duras montresar semblante ke vu ne ekirus, til vu vakuigas la tempala-magazino di vua navigilo.",
+       "logouttext": "<strong>Vu ekirabas.</strong>\n\nAtencez ke kelka pagini posible duras montresar quaze vu ne ekiris, til ke vu vakuigos la tempala-magazino di la navigilo.",
        "cannotlogoutnow-title": "Ne povas ekirar nun",
        "cannotlogoutnow-text": "Ekirar ne esas posibla kande vu uzas $1.",
        "welcomeuser": "Esez bonvenanta, $1!",
        "cannotloginnow-title": "Ne povas enirar nun",
        "cannotloginnow-text": "Enirar ne esas posibla kande vu usas $1",
        "cannotcreateaccount-title": "Ne povas krear la konti",
+       "cannotcreateaccount-text": "Krear uzerokonto ne posibligas en ita wiki.",
        "yourdomainname": "Vua domano:",
+       "password-change-forbidden": "Vu ne darfas chanjar pasovorti en ita wiki.",
        "login": "Enirar",
+       "login-security": "Kontrolez vua identeso.",
        "nav-login-createaccount": "Enirar / Krear konto",
        "userlogin": "Enirar / krear konto",
        "userloginnocreate": "Enirar",
        "logout": "Ekirar",
        "userlogout": "Ekirar",
        "notloggedin": "Sesiono ne esas iniciata",
+       "userlogin-noaccount": "Ka vu ne havas konto?",
        "userlogin-joinproject": "Enirez la {{SITENAME}}",
        "nologin": "Ka vu ne havas konto? $1.",
        "nologinlink": "Kreez konto",
        "userlogin-resetpassword-link": "Ka tu obliviis tua pasovorto?",
        "userlogin-helplink2": "Helpo pri quale enirar",
        "userlogin-loggedin": "Tu ja eniris, kun la nomo {{GENDER:$1|$1}}\n\nUsez la formulario infre por enirar quale altra uzanto.",
+       "userlogin-reauth": "Vu mustas ri-enirar por kontrolar ke vu esas {{GENDER:$1|$1}}.",
+       "userlogin-createanother": "Kreez plusa konto.",
+       "createacct-emailrequired": "E-postal adreso",
+       "createacct-emailoptional": "E-postal adreso (ne-obligita)",
+       "createacct-email-ph": "Prizentez vua e-postal adreso",
+       "createacct-another-email-ph": "Prizentez vua e-postal adreso",
        "createaccountmail": "Uzez provizora pasovorto, ed ad adresizez ol a la korespondanta e-posto",
        "createacct-realname": "Vera nomo (fakultativa)",
        "createaccountreason": "Motivo:",
        "createacct-reason": "Motivo",
        "createacct-reason-ph": "Pro quo tu kreas nova konto",
+       "createacct-submit": "Kreez konto",
+       "createacct-another-submit": "Krear konto",
+       "createacct-continue-submit": "Durez krear konto",
+       "createacct-another-continue-submit": "Durez krear konto",
+       "createacct-benefit-heading": "{{SITENAME}} facesas da homi simile a vu.",
+       "createacct-benefit-body1": "{{PLURAL:$1|redakto|redakti}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|pagino|pagini}}",
+       "createacct-benefit-body3": "recenta {{PLURAL:$1|kontributero|kontributeri}}",
        "badretype": "La pasovorti vu donis ne esas sama.",
-       "userexists": "La uzantonomo, quan vu skribis, ja selektesis antee.\nVoluntez, elektez ula diferanta uzantonomo.",
+       "usernameinprogress": "Kontokreado por ita uzero duras. Voluntez vartar.",
+       "userexists": "La uzeronomo ja selektesis antee.\nVoluntez elektar diferanta uzeronomo.",
        "loginerror": "Eroro enirante",
+       "createacct-error": "Eroro pri kontokreado",
+       "createaccounterror": "Ne povis krear konto: $1",
        "nocookiesnew": "L'uzero-konto esis kreita, ma vu ne esas eniranta.\n{{SITENAME}} uzas ''bisquiti'' por eniras uzeri.\n''Bisquiti'' esas desacendita.\nVoluntez acendar li, lore enirez per vua nova uzero e pasovorto.",
        "nocookieslogin": "{{SITENAME}} uzas ''cookies'' por la registrago dil uzanti. Vu havas la ''cookies'' desaktivigita. Voluntez aktivigar oli e probez altrafoye.",
+       "nocookiesfornew": "La uzerokonto ne kreesis, nam ni ne povis konfirmar lua fonto.\nEsez certa ke navigilo aceptas 'cookies', ri-apertez ita pagino, e riprobez.",
+       "createacct-loginerror": "Konto kreesis sucesoze ma vu ne eniris la reto. Voluntez vizitar [[Special:UserLogin|manual login]].",
        "noname": "Vu ne donis valida uzantonomo.",
-       "loginsuccesstitle": "Eniro sucesoza",
+       "loginsuccesstitle": "Eniris sucesoze",
        "loginsuccess": "'''Vu eniris a {{SITENAME}} kom \"$1\".'''",
-       "nosuchuser": "Ne existas uzanto \"$1\".\nUzanto-nomi esas mayu/minuskulo-distingenda.\nKontrolez vua espelado, o [[Special:CreateAccount|krear nova konto]].",
+       "nosuchuser": "Ne existas uzero \"$1\".\nUzeronomi esas mayu/minuskulo-distingenda.\nKontrolez la espelado, o [[Special:CreateAccount|krear nova konto]].",
        "nosuchusershort": "Esas nula uzanto \"$1\".\nKontrolez la espelado.",
        "nouserspecified": "Vu mustas specigar uzantonomo.",
+       "login-userblocked": "Ta uzero es interdiktita. Enirado ne permisesas.",
        "wrongpassword": "La skribita pasovorto esis nekorekta. Voluntez probar itere.",
        "wrongpasswordempty": "Vu ne skribis pasovorto. Probez nove.",
        "passwordtooshort": "Pasovorti mustas kontenar adminime {{PLURAL:$1|1 signo|$1 signi}}.",
+       "passwordtoolong": "Pasovorti ne mustas esar plu longa kam {{PLURAL:$1|1 litero|$1 literi}}.",
+       "passwordtoopopular": "Voluntez selektar plu unika pasovorto.",
+       "password-name-match": "Pasovorto mustas diferar de vua uzeronomo.",
+       "password-login-forbidden": "La uzo di ita uzeronomo e pasovorto es interdiktita.",
        "mailmypassword": "Sendez nova pasovorto per e-posto",
        "passwordremindertitle": "Nova provizora pasovorto por {{SITENAME}}",
-       "noemail": "Ne esas e-adreso konservita por la uzanto \"$1\".",
+       "noemail": "Ne esas e-adreso konservita por la uzero \"$1\".",
        "noemailcreate": "Tu mustas informar valida e-posto",
        "passwordsent": "Nova pasovorto sendesis a la e-adreso registragita por \"$1\".\nVoluntez enirar altrafoye pos recevar ol.",
        "blocked-mailpassword": "Vua adreso di IP blokuzesis por redaktado. Por preventar misuzo, ne permisesas rekuperar pasovorti de ca adreso di IP.",
        "throttled-mailpassword": "A password reset email has already been sent, within the last {{PLURAL:$1|hour|$1 hours}}.\nTo prevent abuse, only one password reset email will be sent per {{PLURAL:$1|hour|$1 hours}}.",
        "mailerror": "Eroro sendante posto: $1",
        "acct_creation_throttle_hit": "Vizitanti ad ica wiki uzante vua IP adreso kreis {{PLURAL:$1|1 konto|$1 konti}} ye la antea dio (24 hori), qua esas la maximo permisata. Konseque, vizitanti uzante ca IP adreso ne pluse povas krear konti prezente.",
-       "emailauthenticated": "Vua e-postala adreso autentikigesis ye $2, ye $3.",
+       "emailauthenticated": "Vua e-postal adreso autentikigesis ye $2, ye $3.",
+       "emailnotauthenticated": "Vua e-postal adreso ne ja autentikigesas.\nNula mesaji sendesos por irga di la sequanta funcioni.",
+       "noemailprefs": "Prizentez e-postal adreso en vua preferaji por disponar ita funcioni.",
        "emailconfirmlink": "Konfirmez vua adreso di e-posto",
        "accountcreated": "Konto kreesis",
        "accountcreatedtext": "La uzantokonto por $1 kreatesis.",
        "createaccount-title": "Kreo di konto en {{SITENAME}}",
        "loginlanguagelabel": "Linguo: $1",
+       "pt-login": "Enirar",
+       "pt-login-button": "Enirar",
+       "pt-login-continue-button": "Durez enirar",
+       "pt-createaccount": "Krear konto",
+       "pt-userlogout": "Ekirar",
+       "php-mail-error-unknown": "Nekonocata eroro en la funciono mail() de PHP",
+       "user-mail-no-addy": "Probis sendar e-posto sen e-post-adreso.",
+       "user-mail-no-body": "Probis sendar e-posto kun vakua o tre kurta mesajo.",
        "changepassword": "Chanjar pasovorto",
+       "resetpass_announce": "Por kompletigar l'enirado, vu mustas krear nova pasvorto.",
        "resetpass_header": "Chanjar pasovorto di konto",
        "oldpassword": "Anciena pasovorto:",
        "newpassword": "Nova pasovorto:",
        "retypenew": "Riskribez la nova pasovorto:",
        "resetpass_submit": "Establisez pasovoro ed enirez",
-       "changepassword-success": "Vua chanjo di pasovorto sucesis! Nun, vu eniras...",
+       "changepassword-success": "Vua chanjo di pasovorto sucesis!",
+       "changepassword-throttled": "Vu probis enirar tro multafoye.\nVoluntez vartar $1 ante riprobar.",
+       "botpasswords": "Robotala pasovorti",
+       "botpasswords-label-create": "Krear",
+       "botpasswords-label-update": "Aktualigar",
+       "botpasswords-label-cancel": "Anular",
+       "botpasswords-label-delete": "Efacar",
+       "botpasswords-label-resetpassword": "Sendez nova pasovorto per e-posto",
+       "botpasswords-label-grants": "Uzebla grantaji:",
        "resetpass-submit-loggedin": "Chanjar pasovorto",
+       "resetpass-submit-cancel": "Anular",
+       "resetpass-wrong-oldpass": "Nevalida provizora od aktuala pasovorto.\nForsan vu ja chanjis vua pasovorto o demandis nova provizora pasovorto.",
+       "resetpass-recycled": "Voluntez chanjar vua pasovorto ad ulo diferanta de vua aktuala pasovorto.",
+       "resetpass-temp-emailed": "Vu eniris uzante provizora pasovorto.\nPor parkompletigar enirado, vu mustas krear nova pasovorto hike:",
        "resetpass-temp-password": "Provizora pasovorto:",
        "passwordreset-username": "Uzantonomo:",
-       "changeemail": "Chanjar e-adreso*",
+       "changeemail": "Chanjar od efacar e-postal adreso",
        "bold_sample": "Dika literi",
        "bold_tip": "Dika literi",
        "italic_sample": "Kursiva literi",
        "sig_tip": "Vua signaturo kun 'timestamp'",
        "hr_tip": "Horizontala lineo (ne trouzez ol)",
        "summary": "Rezumo:",
-       "subject": "Temo / Titulo:",
+       "subject": "Temo:",
        "minoredit": "Ico esas mikra redaktajo",
        "watchthis": "Surveyar ica pagino",
        "savearticle": "Registragar pagino",
+       "savechanges": "Konservez la chanji",
        "publishpage": "Publikigar pagino",
        "publishchanges": "Publikigar chanji",
        "preview": "Previdar",
        "showpreview": "Previdar",
        "showdiff": "Montrez chanji",
-       "anoneditwarning": "'''Averto:''' Vu ne eniris.\nVua IP-adreso registragesos en la versionaro di ca pagino.",
+       "blankarticle": "<strong>Averto:</strong> La pagino vu kreas es vakua.\nSe vu ri-selektos \"{{int:savearticle}}\", la pagino kreesos sen irga kontenajo.",
+       "anoneditwarning": "<strong>Averto:</strong> Vu ne eniris.\nVua IP-adreso esos videbla publike se vu redaktos. Se vu <strong>[$1 enirus]</strong> od <strong>[$2 kreus konto]</strong>, vua redakti atribuesos a vua uzeronomo, kune kun altra bonaji.",
+       "anonpreviewwarning": "<em>Vu ne eniris. Konservar chanji registragos vua IP-adreso en la redakto-historio di ta pagino.</em>",
        "missingcommenttext": "Voluntez, skribez komento sube.",
        "summary-preview": "Prevido di la rezumo:",
-       "blockedtitle": "La uzanto esas blokusita",
+       "blockedtitle": "La uzero esas blokusita",
        "blockednoreason": "nula motivo donesis",
        "whitelistedittext": "Vu mustas $1 por redaktar pagini.",
        "nosuchsectiontitle": "On ne povis trovar la seciono",
        "histlast": "Maxim nova",
        "historysize": "({{PLURAL:$1|1 bicoko|$1 bicoki}})",
        "historyempty": "(vakua)",
+       "history-feed-title": "Historio di redakti",
+       "history-feed-description": "Historio di redakti por ta pagino en la wikio",
        "history-feed-item-nocomment": "$1 ye $2",
-       "rev-deleted-comment": "(komento forigita)",
+       "rev-deleted-comment": "(rezumo di redakti forigesis)",
        "rev-deleted-user": "(uzantonomo forigita)",
+       "rev-deleted-event": "(detali dil registro forigesis)",
        "rev-delundel": "montrar/celar",
        "rev-showdeleted": "montrar",
        "revdelete-show-file-submit": "Yes",
        "revdelete-hide-image": "Celar kontenajo dil arkivo",
        "revdelete-hide-comment": "Celar komento pri redakto",
        "revdelete-hide-user": "Celar uzantonomo od IP di redaktanto",
-       "revdelete-radio-set": "Yes",
-       "revdelete-radio-unset": "No",
+       "revdelete-radio-set": "Celita",
+       "revdelete-radio-unset": "Videbla",
        "revdelete-log": "Motivo:",
        "revdel-restore": "chanjar videbleso",
        "pagehist": "Pagino-versionaro",
        "yourlanguage": "Linguo:",
        "yournick": "Signaturo:",
        "badsiglength": "Vua signaturo es tro longa.\nOl mustas ne havar plu kam $1 {{PLURAL:$1|litero|literi}}.",
-       "yourgender": "Genro:",
-       "gender-unknown": "Nespecigita",
-       "gender-male": "Maskula",
-       "gender-female": "Femina",
+       "yourgender": "Quale vu preferas esar priskribata?",
+       "gender-unknown": "Lor mencionar vu, la programaro uzos sexuo-neutrala vorti tam ofte kam posibla",
+       "gender-male": "Ilu redaktas wikiopagini",
+       "gender-female": "Elu redaktas wikiopagini",
        "email": "Elek-posto",
        "prefs-help-email-required": "E-postala adreso es bezonata.",
        "prefs-info": "Bazala informeso",
        "prefs-signature": "Signaturo",
+       "prefs-editor": "Redaktilo",
+       "prefs-preview": "Previdar",
        "prefs-diffs": "Diferi",
        "userrights-user-editname": "Skribez uzantonomo:",
        "userrights-groupsmember": "Membro di:",
        "listfiles": "Listo di imaji",
        "listfiles_date": "Dato",
        "listfiles_name": "Nomo",
-       "listfiles_user": "Uzanto",
+       "listfiles_user": "Uzero",
        "listfiles_count": "Versioni",
        "file-anchor-link": "Failo",
        "filehist": "Historio dil arkivo",
        "filehist-datetime": "Dato/Horo",
        "filehist-thumb": "Imajeto",
        "filehist-thumbtext": "Imajeto di versiono ye $1",
-       "filehist-user": "Uzanto",
+       "filehist-user": "Uzero",
        "filehist-dimensions": "Dimensioni",
        "filehist-filesize": "Grandeso dil arkivo",
        "filehist-comment": "Komento",
        "randompage": "Hazarda pagino",
        "randomredirect": "Hazarda ridirektilo",
        "statistics": "Statistiko",
-       "statistics-header-users": "Statistiki di uzanto",
+       "statistics-header-users": "Statistiki di uzero",
        "statistics-header-hooks": "Altra statistiki",
        "statistics-pages": "Pagini",
        "doubleredirects": "Duopla ridirektili",
        "deadendpages": "Pagini sen ekiraji",
        "protectedpages": "Protektita pagini",
        "protectedtitles": "Protektita tituli",
-       "listusers": "Uzanto-listo",
+       "listusers": "Uzerolisto",
        "usereditcount": "$1 {{PLURAL:$1|redakto|redakti}}",
        "usercreated": "{{GENDER:$3|Kreita}} ye $1 $2",
        "newpages": "Nova pagini",
        "linksearch-ns": "Nomaro:",
        "linksearch-ok": "Serchez",
        "listusers-submit": "Montrez",
-       "activeusers-noresult": "Nula uzanto trovesis.",
+       "activeusers-noresult": "Nula uzero trovesis.",
        "listgrouprights-group": "Grupo",
        "listgrouprights-members": "(listo di membri)",
        "mailnologin": "Ne sendar adreso",
        "watchlist-options": "Surveryo-listo selekti",
        "watching": "Surveyanta…",
        "unwatching": "Cesanta surveyar…",
-       "enotif_impersonal_salutation": "Uzanto di {{SITENAME}}",
-       "enotif_anon_editor": "anonima uzanto $1",
+       "enotif_impersonal_salutation": "Uzero di {{SITENAME}}",
+       "enotif_anon_editor": "anonima uzero $1",
        "deletepage": "Efacar pagino",
        "confirm": "Konfirmar",
        "excontent": "La kontenajo esis: '$1'",
        "namespace": "Nomaro:",
        "invert": "Inversigar selektajo",
        "blanknamespace": "(Chefa)",
-       "contributions": "Kontributadi dil {{GENDER:$1|uzanto}}",
+       "contributions": "Kontributadi dil {{GENDER:$1|uzero}}",
        "contributions-title": "Uzanto-kontributadi di $1",
        "mycontris": "Kontributadi",
        "contribsub2": "Pro $1 ($2)",
        "whatlinkshere-hideimages": "$1 ligili di arkivi",
        "whatlinkshere-filters": "Filtrili",
        "blockip": "Blokusado di IP-adresi",
-       "blockip-legend": "Blokusar uzanto",
+       "blockip-legend": "Blokusar uzero",
        "ipaddressorusername": "IP-adreso od uzantonomo:",
        "ipbexpiry": "Expiro:",
        "ipbreason": "Motivo:",
        "ipbreason-dropdown": "*Ordinara motivi por blokuso\n** Insertar nevera informi\n** Efacar kontenajo de pagini\n** Insertadar ligili ad extera reti\n** Insertar radoto aden pagini\n** Timidiganta ago\n** Trouzar multa konti\n** Neaceptebla uzanto-nomo",
        "ipbcreateaccount": "Preventez kreo di konti",
-       "ipbsubmit": "Blokusar ica uzanto",
+       "ipbsubmit": "Blokusar ica uzero",
        "ipbother": "Altra tempo:",
        "ipboptions": "2 horo:2 hours,1 dio:1 day,3 dii:3 days,1 semano:1 week,2 semani:2 weeks,1 monato:1 month,3 monati:3 months,6 monati:6 months,1 yaro:1 year,infinita:infinite",
        "badipaddress": "IP-adreso ne esas valida",
        "blockipsuccesssub": "Blokusado sucesis",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] blokusesis.<br />\nVidez [[Special:BlockList|IP-blokuslisto]] por revizor blokusadi.",
        "ipb-edit-dropdown": "Redaktar blokuso-motivi",
-       "unblockip": "Desblokusar uzanto",
+       "unblockip": "Desblokusar uzero",
        "unblockiptext": "Uzez la sequanta formularo por restaurar la skribo-aceso ad IP-adreso qua blokusesis antee.",
        "ipusubmit": "Desblokusar",
        "ipblocklist": "Blokusita uzanti",
        "tooltip-t-print": "Imprimebla versiono di ca pagino",
        "tooltip-t-permalink": "Permananta ligilo vers ita versiono di ta pagino",
        "tooltip-ca-nstab-main": "Vidar la kontenajo di ca pagino",
-       "tooltip-ca-nstab-user": "Videz la pagino dil uzanto",
+       "tooltip-ca-nstab-user": "Vidar la pagino dil uzero",
        "tooltip-ca-nstab-special": "Ito esas specala pagino, vu ne povas redaktar la pagino ipsa",
        "tooltip-ca-nstab-project": "Vidar la projekto-pagino",
        "tooltip-ca-nstab-image": "Videz la pagino dil arkivo",
        "tooltip-rollback": "\"Retrorular\" desfacas omna chanji ad ca pagino da la lasta kontributanto per un kliko",
        "tooltip-undo": "\"Desfacez\" nuligas ca versiono e apertas la redakto-pagino en prevido-modo.\nVu darfos adjuntar kauso en la rezumo.",
        "tooltip-summary": "Skribez kurta rezumo",
-       "anonymous": "Anonima {{PLURAL:$1|uzanto|uzanti}} di {{SITENAME}}",
-       "siteuser": "Uzanto che {{SITENAME}} $1",
+       "anonymous": "Anonima {{PLURAL:$1|uzero|uzeri}} di {{SITENAME}}",
+       "siteuser": "Uzero che {{SITENAME}} $1",
        "lastmodifiedatby": "Ica pagino modifikesis ye $2, $1 da $3.",
        "othercontribs": "Bazizita en la laboro da $1.",
        "others": "altra",
index a6344cc..6975bcc 100644 (file)
        "searcharticle": "Áfram",
        "history": "Breytingaskrá",
        "history_short": "Breytingaskrá",
+       "history_small": "skrá",
        "updatedmarker": "uppfært frá síðustu heimsókn minni",
        "printableversion": "Prentvæn útgáfa",
        "permalink": "Varanlegur tengill",
        "talk": "Spjall",
        "views": "Sýn",
        "toolbox": "Verkfæri",
+       "tool-link-userrights": "Breyta {{GENDER:$1|notanda}} hópum",
+       "tool-link-userrights-readonly": "Skoða {{GENDER:$1|notanda}} hópa",
+       "tool-link-emailuser": "Senda þessum {{GENDER:$1|notanda}} tölvupóst",
        "userpage": "Skoða notandasíðu",
        "projectpage": "Skoða verkefnissíðu",
        "imagepage": "Skoða skráarsíðu",
        "passwordreset-emaildisabled": "Tölvupósteiginleikar hafa verið gerðir óvirkir á þessum wiki.",
        "passwordreset-username": "Notandanafn:",
        "passwordreset-domain": "Lén:",
-       "passwordreset-capture": "Sjá áminninguna sem var send í tölvupósti?",
-       "passwordreset-capture-help": "Ef þú hakar við þennan reit verður tölvupósturinn (með bráðabirgðalykilorðinu) sýndur þér og einnig sendur notandanum.",
        "passwordreset-email": "Netfang:",
        "passwordreset-emailtitle": "Notendaupplýsingar á {{SITENAME}}",
        "passwordreset-emailtext-ip": "Einhver (líklegast þú, á vistfanginu $1) hefur beðið um \nendursetningu lykilorðsins þíns fyrir {{SITENAME}} ($4). Aðgangur eftirfarandi {{PLURAL:$3|notanda er|notenda er}} tengd þessu netfangi:\n\n$2\n\nEf þetta er það sem þú vildir, þarftu að skrá þig inn og velja nýtt lykilorð. {{PLURAL:$3|Tímabundna lykilorðið rennur|Tímabundnu lykilorðin renna}} út eftir $5 {{PLURAL:$5|dag|daga}}.\n\nEf það varst ekki þú sem fórst fram á þetta, eða ef þú manst lykilorðið þitt, og vilt ekki lengur breyta því, skaltu hunsa þessi skilaboð og halda áfram að nota gamla lykilorðið.",
        "saveprefs": "Vista",
        "restoreprefs": "Endurstilla allar sjálfgefnar stillingar (í öllum hlutum)",
        "prefs-editing": "Breytingarflipinn",
-       "rows": "Raðir",
-       "columns": "Dálkar",
        "searchresultshead": "Leit",
        "stub-threshold": "Þröskuldur fyrir stílsnið stubbatengla ($1):",
        "stub-threshold-sample-link": "dæmi",
        "recentchangescount": "Fjöldi síðna:",
        "prefs-help-recentchangescount": "Taldar eru með nýlegar breytingar, breytingaskrár og aðgerðaskrár.",
        "savedprefs": "Kjörstillingarnar þínar hafa verið vistaðar.",
-       "savedrights": "Notandaréttindi {{GENDER:$1|$1}} hafa verið vistuð.",
+       "savedrights": "Notanda hópur {{GENDER:$1|$1}} hefur verið vistaður.",
        "timezonelegend": "Tímabelti:",
        "localtime": "Staðartími:",
        "timezoneuseserverdefault": "Nota sjálfgefið tímabelti ($1)",
        "prefs-help-prefershttps": "Þessi stilling tekur gildi í næsta skiptið sem þú skráir þig inn.",
        "prefswarning-warning": "Þú hefur gert breytingar á kjörstillingum þínum sem ekki er búið að vista.\nEf þú ferð af þessari síðu án þess að smella á \"$1\" verða kjörstillingar þínar ekki uppfærðar.",
        "userrights": "Breyta notandaréttindum",
-       "userrights-lookup-user": "Yfirlit notandahópa",
+       "userrights-lookup-user": "Velja notanda",
        "userrights-user-editname": "Skráðu notandanafn:",
-       "editusergroup": "Breyta {{GENDER:$1|notanda}} hópum",
+       "editusergroup": "Hlaða inn notanda hópum",
        "editinguser": "Breyti réttindum {{GENDER:$1|notandans}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Breyta notandahópum",
        "saveusergroups": "Vista {{GENDER:$1|notanda}} hópa",
        "userrights-reason": "Ástæða:",
        "userrights-no-interwiki": "Þú hefur ekki leyfi til að breyta notandaréttindum á öðrum wiki-síðum.",
        "userrights-nodatabase": "Gagnagrunnurinn $1 er ekki til eða ekki staðbundinn.",
-       "userrights-nologin": "Þú verður að [[Special:UserLogin|innskrá]] þig á möppudýraaðgang til að geta útdeilt notandaréttindum.",
-       "userrights-notallowed": "Þú hefur ekki réttindi til að útdeila eða draga til baka notandaréttindi.",
        "userrights-changeable-col": "Hópar sem þú getur breytt",
        "userrights-unchangeable-col": "Hópar sem þú getur ekki breytt",
        "userrights-irreversible-marker": "$1*",
        "userrights-conflict": "Árekstur í að breyta notandaréttindum! Skoðaðu þetta aftur og staðfestu breytingar þínar.",
-       "userrights-removed-self": "Þér hefur tekist að fjarlægja þín eigin réttindi. Vegna þess mátt þú ekki lengur skoða þessa síðu.",
        "group": "Hópur:",
        "group-user": "Notendur",
        "group-autoconfirmed": "Sjálfvirkt staðfestir notendur",
        "right-siteadmin": "Læsa og aflæsa gagnagrunninum",
        "right-override-export-depth": "Flytja út síður með greinum þar sem allt að 5 greinar tengja þær saman.",
        "right-sendemail": "Senda tölvupóst til annara notenda",
-       "right-passwordreset": "Skoða tölvupósta um endurstillingu lykilorðs",
        "right-managechangetags": "Búa til og (af)virkja [[Special:Tags|merki]] úr gagnagrunni",
        "right-applychangetags": "Virkja [[Special:Tags|merki]] ásamt öðrum breytingum",
        "grant-group-email": "Senda tölvupóst",
        "action-upload_by_url": "hlaða inn þessari skrá af vefslóð",
        "action-writeapi": "Nota API skrifun",
        "action-delete": "eyða þessari síðu",
-       "action-deleterevision": "eyða þessari breytingu",
-       "action-deletedhistory": "skoða breytingaskrá þessarar síðu",
+       "action-deleterevision": "eyða breytingar",
+       "action-deletedhistory": "skoða breytingaskrá síðu",
        "action-browsearchive": "leita í eyddum síðum",
-       "action-undelete": "endurvekja þessa síðu",
-       "action-suppressrevision": "Skoða og endurvekja þessa falda breytingu",
+       "action-undelete": "endurvekja síður",
+       "action-suppressrevision": "Skoða og endurvekja faldar breytingar",
        "action-suppressionlog": "skoða þessa einka-aðgerðaskrá",
        "action-block": "Banna notandanum að gera breytingar",
        "action-protect": "breyta verndunarstigum fyrir þessa síðu",
        "emailccsubject": "Afrit af skilaboðinu þínu til $1: $2",
        "emailsent": "Sending tókst",
        "emailsenttext": "Skilaboðin þín hafa verið send.",
-       "emailuserfooter": "Þessi tölvupóstur var {{GENDER:$1|sendur}} af $1 til {{GENDER:$2|$2}} með möguleikanum \"{{int:emailuser}}\" á {{SITENAME}}.",
+       "emailuserfooter": "Þessi tölvupóstur var {{GENDER:$1|sendur}} af $1 til {{GENDER:$2|$2}} með möguleikanum \"{{int:emailuser}}\" á {{SITENAME}}. Netfangið {{GENDER:$2|þitt}} verður sent {{GENDER:$1|upphaflega sendandanum}}, sem uppljóstrar netfangi {{GENDER:$2|þínu}} til hans.",
        "usermessage-summary": "Skil eftir kerfismeldingu.",
        "usermessage-editor": "Skilaboðakerfi",
        "watchlist": "Vaktlistinn",
        "tags-deactivate": "gera óvirkt",
        "tags-hitcount": "$1 {{PLURAL:$1|breyting|breytingar}}",
        "tags-manage-no-permission": "Þú hefur ekki leyfi til að stjórna breytingamerkjum.",
-       "tags-manage-blocked": "Þú hefur ekki leyfi til að breyta merkjum á meðan þú ert bannaður.",
+       "tags-manage-blocked": "Þú hefur ekki leyfi til að breyta merkjum á meðan {{GENDER:$1|þú}} ert bannaður.",
        "tags-create-heading": "Búa til nýtt merki",
        "tags-create-explanation": "Sjálfgefið eru ný merki tiltæk notendum og vélmennum.",
        "tags-create-tag-name": "Heiti merkis",
index d6fd35c..127550d 100644 (file)
        "searcharticle": "Vai",
        "history": "Versioni precedenti",
        "history_short": "Cronologia",
+       "history_small": "cronologia",
        "updatedmarker": "modificata dalla mia ultima visita",
        "printableversion": "Versione stampabile",
        "permalink": "Link permanente",
        "blockedtitle": "Utente bloccato.",
        "blockedtext": "'''Il tuo nome utente o indirizzo IP è stato bloccato.'''\n\nIl blocco è stato imposto da $1. La motivazione del blocco è la seguente: ''$2''\n\n* Inizio del blocco: $8\n* Scadenza del blocco: $6\n* Intervallo di blocco: $7\n\nSe lo si desidera, è possibile contattare $1 o un altro [[{{MediaWiki:Grouppage-sysop}}|amministratore]] per discutere del blocco.\n\nSi noti che la funzione 'Scrivi all'utente' non è attiva se non è stato registrato un indirizzo e-mail valido nelle proprie [[Special:Preferences|preferenze]] o se l'utilizzo di tale funzione è stato bloccato.\n\nL'indirizzo IP attuale è $3, il numero ID del blocco è #$5.\nSi prega di specificare tutti i dettagli precedenti in qualsiasi richiesta di chiarimenti.",
        "autoblockedtext": "Questo indirizzo IP è stato bloccato automaticamente perché condiviso con un altro utente, a sua volta bloccato da $1.\nLa motivazione del blocco è la seguente:\n\n:''$2''\n\n* Inizio del blocco: $8\n* Scadenza del blocco: $6\n* Intervallo di blocco: $7\n\nÈ possibile contattare $1 o un altro [[{{MediaWiki:Grouppage-sysop}}|amministratore]] per richiedere eventuali chiarimenti circa il blocco.\n\nSi noti che la funzione 'Scrivi all'utente' non è attiva se non è stato registrato un indirizzo e-mail valido nelle proprie [[Special:Preferences|preferenze]] e, comunque, se nell'applicare il blocco, tale funzione è stata disabilitata (per la durata del blocco).\n\nL'indirizzo IP attuale è $3, il numero ID del blocco è #$5\nSi prega di specificare tutti i dettagli qui inclusi nel compilare qualsiasi richiesta di chiarimenti.",
+       "systemblockedtext": "Il tuo nome utente o l'indirizzo IP è stato bloccato automaticamente da MediaWiki.\nLa motivazione del blocco è la seguente:\n\n:''$2''\n\n* Inizio del blocco: $8\n* Scadenza del blocco: $6\n* Intervallo di blocco: $7\n\nL'indirizzo IP attuale è $3.\nSi prega di specificare tutti i dettagli qui inclusi nel compilare qualsiasi richiesta di chiarimenti.",
        "blockednoreason": "nessuna motivazione indicata",
        "whitelistedittext": "Per modificare le pagine è necessario $1.",
        "confirmedittext": "Per essere abilitati alla modifica delle pagine è necessario confermare il proprio indirizzo e-mail. Per impostare e confermare l'indirizzo servirsi delle [[Special:Preferences|preferenze]].",
        "recentchanges-legend-plusminus": "(''±123'')",
        "recentchanges-submit": "Mostra",
        "rcfilters-activefilters": "Filtri attivi",
+       "rcfilters-search-placeholder": "Filtra le ultime modifiche (naviga o inizia a digitare)",
        "rcfilters-invalid-filter": "Filtro non valido",
        "rcfilters-filterlist-title": "Filtri",
        "rcfilters-filterlist-noresults": "Nessun filtro trovato",
+       "rcfilters-filtergroup-authorship": "Modifica paternità",
        "rcnotefrom": "Di seguito {{PLURAL:$5|è elencata la modifica apportata|sono elencate le modifiche apportate}} a partire da <strong>$3, $4</strong> (mostrate fino a <strong>$1</strong>).",
        "rclistfrom": "Mostra le modifiche apportate a partire da $3 $2",
        "rcshowhideminor": "$1 le modifiche minori",
index 6fff8d9..45bb825 100644 (file)
@@ -64,7 +64,8 @@
                        "Ykhwong",
                        "Matma Rex",
                        "Tursetic",
-                       "Jerrykim306"
+                       "Jerrykim306",
+                       "Sukjong0406"
                ]
        },
        "tog-underline": "링크에 밑줄:",
        "searcharticle": "보기",
        "history": "문서 역사",
        "history_short": "역사",
+       "history_small": "역사",
        "updatedmarker": "마지막으로 방문한 뒤 바뀜",
        "printableversion": "인쇄용 판",
        "permalink": "고유 링크",
        "rcfilters-invalid-filter": "유효하지 않은 필터",
        "rcfilters-filterlist-title": "필터",
        "rcfilters-filterlist-noresults": "필터를 찾을 수 없습니다",
+       "rcfilters-filtergroup-authorship": "원작자 편집",
        "rcfilters-filter-editsbyself-label": "자신의 편집",
        "rcfilters-filter-editsbyself-description": "당신의 편집.",
        "rcfilters-filter-editsbyother-label": "다른 사용자의 편집",
index bdc9cef..5a77cc0 100644 (file)
        "searcharticle": "Säit",
        "history": "Historique vun der Säit",
        "history_short": "Versiounen",
+       "history_small": "Versiounen",
        "updatedmarker": "geännert zanter ech d'Säit fir d'lescht gekuckt hunn",
        "printableversion": "Drockversioun",
        "permalink": "Zitéierfäege Link",
index 369465c..c6a1e3a 100644 (file)
@@ -8,14 +8,15 @@
                        "Macofe",
                        "Huji",
                        "Miladrahimi",
-                       "Ebraminio"
+                       "Ebraminio",
+                       "Process cq"
                ]
        },
-       "tog-underline": "کڕ(خط)کیشائن ژێر پیوندەل:",
+       "tog-underline": "خط کیشائن ژێر پیوندەل:",
        "tog-hideminor": "آشاردن دەسکاریەل گؤجەر  إژ گؤەڕیال(تغییرات) ایسە(اخیر)",
        "tog-hidepatrolled": "دسکاریۀل گه دیار بینۀ ئژ فئرست-رزگ تغییرات اخیر بشارا",
        "tog-newpageshidepatrolled": "وڵگۀل گه دیار بینۀ ئژ فئرست-رزگ ولگۀل تازۀ بشارا",
-       "tog-hidecategorization": "Hide categorization of pages",
+       "tog-hidecategorization": "فهرست بالا سی ئی صفحه",
        "tog-extendwatchlist": " کؤل رزگ-فئرست الؤن(آلشت)کریال-تغیرات نیشان دۀ،نۀ هر تنیا دؤمائنۀل",
        "tog-usenewrc": "تنیا آڵؤن(آلشتی)کریال تازۀ ؤ لیست پئگیریۀل رزگ بنی-گروه بندی کۀ",
        "tog-numberheadings": "شؤمارۀ  نئ خودکار سروڵگۀل-عناوین",
@@ -26,6 +27,7 @@
        "tog-watchdefault": "ولگۀل ؤ پرؤندۀلئ گه دسکاری مۀکم بنه نؤم فئرست سئرکردن",
        "tog-watchmoves": "ولگۀل ؤ پرؤندۀلئ گه هئزۀ مۀم-جابجا مۀکم بنه نؤم فئرست سئرکردن",
        "tog-watchdeletion": "ولگۀل ؤ پرؤندۀلئ گه پاکۀ مۀکم بنه نؤم فئرست سئرکردن",
+       "tog-watchuploads": "بلگه‌های نو اضافه بکه که من به فهرست تماشام بار مه‌کم",
        "tog-watchrollback": "ولگۀل گه ماره ما-بازگردانی مۀکم بنه نؤم فئرست سئرکردن",
        "tog-minordefault": "کؤڵ دسکاری بیۀل به عنؤان پئش فرض عڵامت بۀرن",
        "tog-previewontop": "پیش نمایش وهِ رئ جعبۀ نمایش نیشؤن به",
@@ -35,7 +37,7 @@
        "tog-enotifminoredits": "ئۀر تغییرۀل-آڵؤنۀل(آلشتۀل)گؤجۀریجی ئۀر وڵگۀل ؤ پرؤندۀلم کریا نامه ئۀرا مه کِل کۀ",
        "tog-enotifrevealaddr": "نیشانی ایمیل مه ئۀر ایمیل‌ل حاوواڵ رۀسن نیشؤن دۀ",
        "tog-shownumberswatching": "گلۀ شؤماری-شؤمار کاربۀل پی‌گیر نیشان دۀ",
-       "tog-oldsig": ":امضاێ گإ ایسگە درینێ",
+       "tog-oldsig": ":امضاێ موجود ایوه",
        "tog-fancysig": "(امضا چؤی ویکی‌متن بوو(بدون پئؤن خودکار نیائن",
        "tog-uselivepreview": "استفاده از پیش‌نمایش زنده",
        "tog-forceeditsummary": "هۀنئ گه-وختئ که خؤلاصۀ دسکاریم نَنیؤیسائۀ خۀؤۀ رم کۀ",
@@ -50,9 +52,9 @@
        "tog-ccmeonemails": "کپی إژ ایمیلێ گإ أڕا کاربەرەل کِلە مەکەم أڕا ووژم کِل کە",
        "tog-diffonly": "نۆم جِک(محتوا)وەڵگە، أ ژێر تفاوت دیار ناوو(نمایش ندهد)",
        "tog-showhiddencats": "دسۀل-رزگۀل آشاریآ نیشؤن دۀ",
-       "tog-norollbackdiff": "دؤما واگردانی تفاوت نیشؤن نه",
+       "tog-norollbackdiff": "ژ واگردانی پاش فرقه‌ل نشون نده",
        "tog-useeditwarning": "هەنێ(زمانی که)گِستم إژ وەڵگە دەسکاری ذخیره نؤي بِچمإ دەر.دەسگیرم کە",
-       "tog-prefershttps": "همؤیشۀ ئۀرا ئۀ نؤم سیستم هۀتن ئژ اتصالۀل امن بهرۀ بگر-استفادۀ کۀ",
+       "tog-prefershttps": "همیشه اتصاله‌ل امن استفاده بکه سی داخل بوون",
        "underline-always": "همؤیشۀ",
        "underline-never": "هؤیچ وخت",
        "underline-default": "پوسته یا مِنِی کەر پیش‌فرض",
        "newwindow": "(واز کردن ئۀر دۀروۀچۀ جدید)",
        "cancel": "ئآهووسانن/لغو",
        "moredotdotdot": "...ویشتر/فرةتر",
-       "morenotlisted": "لیست کامل نیۀ",
+       "morenotlisted": "بلکه ئی لیست کامل نییه",
        "mypage": "وةڵگە(پەڕە)",
        "mytalk": "گەپ(قسە)",
        "anontalk": "گەپ(قسە)",
        "searcharticle": "بِچۆ",
        "history": "تاریخ وةڵگة",
        "history_short": "تاریخچه",
+       "history_small": "تاریخ",
        "updatedmarker": "به‌روزشده از آخرین باری که سرزده‌ام",
        "printableversion": "نؤسخۀ قاوول چاپ",
        "permalink": "پیوۀند دائمی",
        "talk": "گەپ قسە",
        "views": "دیین/سئرکردن",
        "toolbox": "ابزارەل",
+       "tool-link-userrights": "گروهه‌ل {{GENDER:$1|کاربر}} تغییر بکه",
+       "tool-link-userrights-readonly": "گروه {{GENDER:$1|کاربر}} نشون بده",
+       "tool-link-emailuser": "ای-میل {{GENDER:$1|کاربر}}ئه",
        "userpage": "وةڵگة کاربۀر بؤین",
        "projectpage": "وةڵگة پروژۀ بوین",
        "imagepage": "وةڵگة پرونده بؤین",
        "copyright": " محتوایۀل هانإ ژئرنظر اجازه‌نامهٔ $1 مۀگۀر یۀگإ خلاف یۀ بوشرئ/ذکر بو",
        "copyrightpage": "{{ns:project}}:حق تکثیر",
        "currentevents": "پێش هەتێەل ایسگە",
-       "currentevents-url": "پێش هەتێەل ایسگە(ایسە)",
+       "currentevents-url": "Project:واقعهٔ نهایی",
        "disclaimers": "دروو نامه -تکذیب نامه",
        "disclaimerpage": "Project:تکذیب‌نامهٔ عمومی",
        "edithelp": "راهنمای دۀسکاری کردن",
        "createacct-yourpasswordagain-ph": "گذرواژه را وارد کنید برای بار دوم",
        "userlogin-remembermypassword": "مإ وارد  بی بیل",
        "userlogin-signwithsecure": "إژ ورود امن استفاده کةن",
+       "cannotlogin-title": "نتونه داخل نبئت",
+       "cannotlogin-text": "داخل بوون ممکن نییه",
        "cannotloginnow-title": "ایسه نمه‌تونین باینه نوم",
+       "cannotloginnow-text": "د زمان $1 استفاده مه‌که‌ی، ورود ممکن نبیه",
+       "cannotcreateaccount-title": "حسابان نتونه ایجاد نه‌که",
+       "cannotcreateaccount-text": "د ئی ویکی، بلا واسطه ایجاد حساب فعال نییه",
        "yourdomainname": ":دامنهٔ شما",
        "password-change-forbidden": ".شما نمی‌توانید گذرواژه‌ها را در این ویکی تغییر دهید",
        "externaldberror": "خطایی در ارتباط با پایگاه داده رخ داده است یا اینکه شما اجازهٔ به‌روزرسانی حساب خارجی خود را ندارید.",
        "userlogin-resetpassword-link": "رۀمزۀتان  ویر/ یاد  چئۀ؟",
        "userlogin-helplink2": "کمک با ورود",
        "userlogin-loggedin": "شما در حال حاضر به عنوان {{GENDER:$1|$1}} وارد شده‌اید.\nاز فرم پایین برای ورود به عنوان یک کاربر دیگر استفاده کنید.",
+       "userlogin-reauth": "لازم تو دوباره داخل بئت سی حساب تو تأیید بکه {{GENDER:$1|$1}}",
        "userlogin-createanother": "حساووئ کاربةری تِر بِسازِن",
        "createacct-emailrequired": "نیشانی ایمیل",
        "createacct-emailoptional": ")نشانی ایمیل (اختیاری",
        "createacct-email-ph": "نیشانی ایمیل ووژت بنۆیس",
        "createacct-another-email-ph": "نیشانی ایمیل ووژتان بنؤیسِن",
        "createaccountmail": "استفاده از رمز عبور موقت تصادفی و ارسال آن به آدرس ایمیل مشخص شده",
+       "createaccountmail-help": "تو مه‌تونی یک حساب ایجاد مه‌که‌ی سی کسی دیگر بدون شیفره نه‌زانی",
        "createacct-realname": "*نام راسکانی/واقعی *دل بخواهی",
        "createaccountreason": ":دةلیل",
        "createacct-reason": "دةلیل",
        "createacct-reason-ph": "ئةرا حساووێ  تر مةسازین؟",
+       "createacct-reason-help": "پیام د سیستم ایجاد خساب نمایش داده مه‌شوه",
        "createacct-submit": "حساووێ أڕا ووژت بِساز",
        "createacct-another-submit": "حساووئ أرا ووژتان بِسازِن",
+       "createacct-continue-submit": "ادامه سی ایحاد حساب",
+       "createacct-another-continue-submit": "ادامه سی ایجاد حساب",
        "createacct-benefit-heading": "{{SITENAME}} is made by people like you.",
        "createacct-benefit-body1": "{{PLURAL:$1|دۀسکاری|دۀسکاریۀل}}",
        "createacct-benefit-body2": "{{PLURAL:$1|وەڵگە|وەڵگەل}}",
        "nocookiesnew": "حساوو کاربةری سازیا، اما هؤمة أ سیستم نهةتینة/نهاتینة.\n{{SITENAME}} برای ورود کاربران به سامانه از کوکی استفاده می‌کند.\nشما کوکی‌ها را از کار انداخته‌اید.\nلطفاً کوکی‌ها را به کار بیندازید، و سپس با نام کاربری و گذرواژهٔ جدیدتان به سامانه وارد شوید.",
        "nocookieslogin": "{{SITENAME}} برای ورود کاربران به سامانه از کوکی‌ها استفاده می‌کند.\nشما کوکی‌ها را از کار انداخته‌اید.\nلطفاً کوکی‌ها را به کار بیندازید و دوباره امتحان کنید.",
        "nocookiesfornew": "حساوو کاربةری نةسازریا، زیرا نتوانستیم منبع آن را تأیید کنیم.\nمطمئن شوید که کوکی‌ها فعال هستند، آن‌گاه صفحه را از نو بارگیری کنید و دوباره امتحان کنید.",
+       "createacct-loginerror": "حساب با موفقيت ايجاد بوو، ليکن امکان ورود خودکارتان موجود نییه. لطفاً با [[Special:UserLogin|manual login]] ادامه بده.",
        "noname": ".هؤمة نام کاربةری معتبری دیاری نکردئة",
-       "loginsuccesstitle": "Ø¥Ù\86Û\86Ù\85 Ø³Û\8cستÙ\85 Ù\87Û\95تÙ\86 Ø§Ù\86جÛ\86Ù\85 Ú¯Ø±Øª",
+       "loginsuccesstitle": "بÙ\87 Ø³Û\8cستÙ\85 Ø¯Ø§Ø®Ù\84 Ø¨Ø¦",
        "loginsuccess": "هؤمة ایسة هةتیإ نؤم سیستم {{SITENAME}} وۀ نام\"$1\".'",
-       "nosuchuser": "کاربةرÛ\8c Ù\88Û\80 Ù\86اÙ\85 Â«$1» Ø¦Ø© Ø§Ø¦Ø±Ø© Ù\86Û\8cØ©.\nÙ\86اÙ\85 Ú©Ø§Ø±Ø¨Ø©Ø±Û\8c Ù\88Ø© Ú©Ø©ÚµÙ\86Ú¯Û\8c Ù\88 Ú¯Ø¤Ø¬Ø©Ø±Û\8c Ø­Ø±Ù\88Ù\81 Ø­Ø³Ø§Ø³Ø© .\nاÙ\85Ù\84اÛ\8c Ù\86اÙ\85 Ø±Ø§ Ø¨Ø±Ø±Ø³Û\8c Ú©Ù\86Û\8cدØ\8c Û\8cا [[Special:CreateAccount|Û\8cÚ© Ø­Ø³Ø§Ø¨ Ú©Ø§Ø±Ø¨Ø±Û\8c ØªØ§Ø²Ù\87 Ø¨Ø³Ø§Ø²Û\8cد]].",
+       "nosuchuser": "کاربرÛ\8c Ø¨Ø§ Ù\86اÙ\88 \"$1\" Ù\86Û\8cÛ\8cÙ\87. \nÙ\86اÙ\88 Ú©Ø§Ø±Ø¨Ø± Ø¨Ù\87 Ø­Ø±Ù\88Ù\81 Ø­Ø³Ø§Ø³Ù\87. \nاÙ\85Ù\84اÛ\8c Ù\86اÙ\88Û\8c Ú©Ù\86ترÙ\84 Ø¨Ú©Ù\87Ø\8c Û\8cا\n[[Special:CreateAccount|Û\8cÚ© Ø­Ø³Ø§Ø¨ Ù\86Ù\88 Ø§Û\8cجاد Ø¨Ú©Ù\87]].",
        "nosuchusershort": "هؤیچ کاربةری وة نام ''$1'' ئة ائرة نیة.\nاملایتان را وارسی کنید.",
        "nouserspecified": ".باید یإ گِلة  نام کاربةری دیاری کئین",
        "login-userblocked": ".ئی کاربرە بەسیائە. إنؤم هەتِن سیستم ڕاووآ(مجاز)نیە",
        "noemail": ".هؤیچ نیشانی ایمیلی ئةرا کاربةر «$1» ثبت نؤیة",
        "noemailcreate": "شما باید یک آدرس ایمیل درست فراهم کنید",
        "passwordsent": "گذرواژه‌ای جدید به آدرس ایمیل ثبت شده برای «$1» ارسال شد.\nلطفاً پس از دریافت آن، دوباره به سیستم وارد شوید.",
-       "blocked-mailpassword": "نشانی آی‌پی شما از ویرایش بازداشته شده‌است و از این رو به منظور جلوگیری از سوءاستفاده اجازهٔ بهره‌گیری از قابلیت بازیابی گذرواژه را ندارد.",
+       "blocked-mailpassword": "نشانی آی‌پی‌تان اژ ویرایش بازداشته شده و اژ ای رو به منظور جلوگیری اژ سوءاستفاده اجازهٔ بهره‌گیری اژ قابلیت وازیابی شیفره را نداره.",
        "eauthentsent": "یک ایمیل تأیید برای آدرس ایمیل به نشانی مورد نظر ارسال شد.\nقبل از اینکه ایمیل دیگری قابل ارسال به این آدرس باشد، باید دستورهایی که در آن ایمیل آمده است را جهت تأیید این مساله که این آدرس متعلق به شماست، اجرا کنید.",
        "throttled-mailpassword": "یإ گِلة رمز عبور  {{PLURAL:$1| وۀ ساعت |$1 وۀساعتةل}}کِل/ارسال بیة/.\nسی نئهاگئری د أذیأت بییئن، فأقأط یئ گئل رازینە گوڤاردئن د أنجومانامە د نۊ زئنە بییە د هأر {{PLURAL:$1|ساعأت|$1 ساعأتیا}} کئل بییە.",
        "mailerror": "خطا در ارسال ایمیل: $1",
-       "acct_creation_throttle_hit": "بازدÛ\8cدکÙ\86Ù\86دگاÙ\86 Ø§Û\8cÙ\86 Ù\88Û\8cÚ©Û\8c Ú©Ù\87 Ø§Ø² Ù\86شاÙ\86Û\8c Ø¢Û\8câ\80\8cÙ¾Û\8c Ø´Ù\85ا Ø§Ø³ØªÙ\81ادÙ\87 Ù\85Û\8câ\80\8cÚ©Ù\86Ù\86د Ø¯Ø± Ø±Ù\88ز Ú¯Ø°Ø´ØªÙ\87 {{PLURAL:$1|Û\8cÚ© Ø­Ø³Ø§Ø¨ Ú©Ø§Ø±Ø¨Ø±Û\8c|$1 Ø­Ø³Ø§Ø¨ Ú©Ø§Ø±Ø¨Ø±Û\8c}} Ø³Ø§Ø®ØªÙ\87â\80\8cاÙ\86دØ\8c Ú©Ù\87 Ø¨Û\8cشترÛ\8cÙ\86 ØªØ¹Ø¯Ø§Ø¯ Ù\85جاز Ø¯Ø± Ø¢Ù\86 Ø¨Ø§Ø²Ù\87Ù\94 Ø²Ù\85اÙ\86Û\8c Ø§Ø³Øª.\nبÙ\87 Ù\87Ù\85Û\8cÙ\86 Ø®Ø§Ø·Ø±Ø\8c Ø¨Ø§Ø²Ø¯Û\8cدکÙ\86Ù\86دگاÙ\86Û\8c Ú©Ù\87 Ø§Ø² Ø§Û\8cÙ\86 Ù\86شاÙ\86Û\8c Ø¢Û\8câ\80\8cÙ¾Û\8c Ø§Ø³ØªÙ\81ادÙ\87 Ù\85Û\8câ\80\8cÚ©Ù\86Ù\86د Ù\86Ù\85Û\8câ\80\8cتÙ\88اÙ\86Ù\86د Ø¯Ø± Ø­Ø§Ù\84 Ø­Ø§Ø¶Ø± Ø­Ø³Ø§Ø¨ Ø¬Ø¯Û\8cدÛ\8c Ø¨Ø³Ø§Ø²Ù\86د.",
+       "acct_creation_throttle_hit": "زÛ\8cارتÚ\86Û\8cÛ\8cÙ\87â\80\8cÙ\84 Ø¯ Ø§Û\8c Ù\88Û\8cÚ©Û\8c Ø§Ú\98 Ù\86شاÙ\86Û\8c Ø¢Û\8câ\80\8cÙ¾Û\8c Ø§Û\8cÙ\88Ù\87 Ø§Ø³ØªÙ\81ادÙ\87 Ù\85Ù\87â\80\8cÚ©Ù\87â\80\8cÙ\86 Ø¯ $2 Ú¯Ø°Ø´ØªÙ\87 {{PLURAL:$1|Û\8cÚ© Ø­Ø³Ø§Ø¨ Ú©Ø§Ø±Ø¨Ø±Û\8c|$1 Ø­Ø³Ø§Ø¨ Ú©Ø§Ø±Ø¨Ø±Û\8c}} Ø³Ø§Ø®ØªÙ\87â\80\8cاÙ\86Ø\8c Ú©Ù\87 Ø¨Û\8cشترÛ\8cÙ\86 ØªØ¹Ø¯Ø§Ø¯ Ù\85جاز Ø¯ Ø§Ù\88Ù\86 Ù\88ازÙ\87Ù\94 Ø²Ù\85اÙ\86Û\8cÛ\8cÙ\87.\nبÙ\87 Ù\87Ù\85Û\8cÙ\86 Ø®Ø§Ø·Ø±Ø\8c Ø²Û\8cارتÚ\86Û\8cÛ\8cÙ\87â\80\8cÙ\84 Ú©Ù\87 Ø§Ú\98 Ø§Û\8c Ù\86شاÙ\86Û\8c Ø¢Û\8câ\80\8cÙ¾Û\8c Ø§Ø³ØªÙ\81ادÙ\87 Ù\85Ù\87â\80\8cÚ©Ù\87Ù\86 Ù\86Ù\87â\80\8cتÙ\88Ù\86Ù\86 Ø¯ Ø­Ø§Ù\84 Ø­Ø§Ø¶Ø± Ø­Ø³Ø§Ø¨ Ù\86Ù\88 Ø¨Ø³Ø§Ø²Ù\86.",
        "emailauthenticated": "نشانی ایمیل شما در $2 ساعت $3 تأیید شده است.",
        "emailnotauthenticated": "آدرس ایمیل شما هنوز تأیید نشده است.\nبرای هیچ‌یک از ویژگی‌های زیر، ایمیل ارسال نخواهد شد.",
        "noemailprefs": "برای راه‌اندازی این قابلیت‌ها یک آدرس ایمیل در ترجیحات خود مشخص کنید.",
        "createaccount-title": "ایجاد حساب کاربری در {{SITENAME}}",
        "createaccount-text": "یک نفر برای ایمیل شما یک حساب کاربری در {{SITENAME}} با نام «$2» ایجاد کرده‌است ($4)، که گذرواژهٔ آن چنین است: $3\nشما باید به سیستم وارد شوید تا گذرواژهٔ خود را تغییر بدهید.\n\nاگر این حساب اشتباهی ساخته شده است، این پیغام را نادیده بگیرید.",
        "login-throttled": "شما به تازگی چندین‌بار برای ثبت ورود تلاش کرده‌اید.\nلطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.",
-       "login-abort-generic": "Ù\88رÙ\88د Ø´Ù\85ا Ù\86اÙ\85Ù\88Ù\81Ù\82 Ø¨Ù\88د - Ø®Ø§ØªÙ\85Ù\87Ù\94 Ù\86اگÙ\87اÙ\86Û\8c Ø¯Ø§Ø¯Ù\87 Ø´Ø¯",
+       "login-abort-generic": "Ù\88رÙ\88د Ø§Û\8cÙ\88Ù\87 Ù\86اÙ\85Ù\88Ù\81Ù\82 Ø¨Ù\88Ù\88 - Ø§Ø¨Ø¯Ø§Ù\84 Ø¨Ù\88Ù\88",
        "login-migrated-generic": "حساب کاربری شما منتقل شده‌است، و نام کاربری‌تان دیگر در این ویکی وجود ندارد.",
        "loginlanguagelabel": "$1:زوون",
        "suspicious-userlogout": "درخواست هؤمة ئةرا  دةرچئن إژ سیستم  رد بیة زیرا به نظر می‌رسد که این  .درخواست توسط یک مرورگر معیوب یا پروکسی میانگیر کل/ارسال بیة",
        "createacct-another-realname-tip": "نام راسکانی/واقعی دڵ بخواهیة.\nاگر آن را وارد کنید هنگام ارجاع به آثارتان و انتساب آن‌ها به شما از نام واقعی‌تان استفاده خواهد شد.",
        "pt-login": "إنۆم هەتِن.",
        "pt-login-button": "إ نۆم هەتن سیستم",
+       "pt-login-continue-button": "ادامه سی ورود سیستم",
        "pt-createaccount": "حساووئ أرا ووژتان بِسازِن",
        "pt-userlogout": "دەرچێن|خروج",
        "php-mail-error-unknown": "خطای ناشناخته در تابع  mail()‎ پی‌اچ‌پی",
        "newpassword": "گذرواژهٔ تازه:",
        "retypenew": "گذرواژهٔ تازه را دوباره وارد کنید",
        "resetpass_submit": "تنظیم گذرواژه و ورود به سامانه",
-       "changepassword-success": "گذرواژهٔ شما با موفقیت تغییر داده شد!",
+       "changepassword-success": "شیفرهٔ تو تغییر بوو",
        "changepassword-throttled": "شما به تازگی چندین‌بار برای ثبت ورود تلاش کرده‌اید.\nلطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.",
+       "botpasswords": "شیفرهٔ بؤت",
+       "botpasswords-summary": "<em>شیفره‌یه‌ل بؤت</em> اجازه دسترسی به یک حساب کاربری با ای‌پی‌آی بدون استفاده اژ رمز اصلی حسابه مه‌دهه. دسترسییه‌ل کاربری موجود هنگامی که با شیفرهٔ بؤتبک وارد مه‌شوین ممکن ئه محدود باشن.\n\nاگر نه‌زانین که ممکن ئه با ئی چه مه‌که‌ین، احتمالاً نباید هیچ کاری مه‌که‌ین. هیچ‌کس نباید اژ ایوه خواسته باشه که یکی اژ ئه‌مان درست مه‌کهین به اوان بدهین.",
+       "botpasswords-disabled": "شیفرهٔ بؤت غیر فعال بوو.",
+       "botpasswords-no-central-id": "سی استفاده ژ شیفرهٔ بؤت ایوه ابتدا مه‌بایست به یک حساب متمرکز وارد بوپ.",
+       "botpasswords-existing": "موجود شیفرهٔ بؤت",
+       "botpasswords-createnew": "نو شیفرهٔ بؤت ایجاد بکه",
+       "botpasswords-editexisting": "موجود شیفرهٔ بؤت تغییر بکه",
+       "botpasswords-label-appid": "ناو بؤت",
+       "botpasswords-label-create": "ایجاد بکه",
+       "botpasswords-label-update": "آپدیت",
+       "botpasswords-label-cancel": "ابدال",
+       "botpasswords-label-delete": "پاک بکه",
+       "botpasswords-label-resetpassword": "شیفره ابدال بکه",
+       "botpasswords-label-grants": "یارمته‌ل مه‌تونه تطبیق مه‌که",
+       "botpasswords-help-grants": "هر اجازه به ربات اجازه دسترسی به اختیاراتی را که حساب ایوه داره مه‌دهه. فعال کردن یک اجازه د ایره/اینجا هیچ دسترسی نو که حساب ایوه همینک دارا نییه را به اون نه‌بخشه. [[Special:ListGrants|table of grants]] را سی اطلاعات بیشتر مشاهده مه‌که‌ین.",
+       "botpasswords-label-grants-column": "اعطا بوو",
+       "botpasswords-bad-appid": "ناو بؤت \"$1\" معتبر نییه.",
+       "botpasswords-insert-failed": "اضافهٔ ناو بؤت \"$1\" ناموفق بوو. اون ناو ذاتًا اضافه بوو.",
+       "botpasswords-update-failed": "به‌روژ ناو بؤت \"$1\" ناموفق بوو. آیا اون حذف بوو؟",
+       "botpasswords-created-title": "شیفرهٔ بؤت ایجاد بوو",
+       "botpasswords-created-body": "سی کاربر \"$2\" و سی ناو بؤت ئی کاربر \"$1\" یک شیفرهٔ بؤت ایجاد بوو.",
+       "botpasswords-updated-title": "شیفرهٔ بؤت به‌روژ بوو",
+       "botpasswords-updated-body": "سی کاربر \"$2\" و سی ناو بؤت ئی کاربر \"$1\" یک شیفرهٔ بؤت به‌روژ بوو.",
+       "botpasswords-deleted-title": "شیفرهٔ بؤت پاک بوو",
+       "botpasswords-deleted-body": "سی کاربر \"$2\" و سی ناو بؤت ئی کاربر \"$1\" یک شیفرهٔ بؤت حذف بوو.",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider موجود نییه.",
+       "botpasswords-restriction-failed": "محدودیته‌ل شیفره بؤت، به ئی ورود مانع مه‌بئت",
        "resetpass_forbidden": "نمی‌توان گذرواژه‌ها را تغییر داد",
+       "resetpass_forbidden-reason": "شیفره نتونه تغییر نه‌که: $1",
        "resetpass-no-info": "برای دسترسی مستقیم به این صفحه شما باید به سامانه وارد شده باشید.",
        "resetpass-submit-loggedin": "تغییردائن رمز",
        "resetpass-submit-cancel": "ئآهووسانن/لغو",
        "passwordreset-emailelement": "نام کاربری: \n$1\n\nگذرواژهٔ موقت: \n$2",
        "passwordreset-emailsentemail": "اگر نشانی پست الکترونیکی که وارد کردید برای حساب کاربریتان ثبت شده باشد، یک نامهٔ بازنشانی گذرواژه به آن فرستاده می‌شود.",
        "passwordreset-emailsentusername": "اگر نشانی پست الکترونیکی مرتبطی موجود باشد، یک نامه برای بازنشانی گذرواژه به آن ارسال خواهد شد.",
+       "passwordreset-nocaller": "زنگ مجبور نییه به تأمین کردن",
+       "passwordreset-nosuchcaller": "زنگ موجود نییه: $1",
+       "passwordreset-invalidemail": "آدرس ایمیل نامعتبره",
        "changeemail": "تغییر یا حذف نشانی ایمیل",
        "changeemail-header": "برای تغییر ایمیلتان این فرم را کامل کنید. برای حذف ایملیتان کافی است بخش ایمیل را خالی رها کنید و فرم را ارسال کنید.",
        "changeemail-no-info": ".برای دسترسی مستقیم به این صفحه شما باید به سیستم وارد شده باشید",
        "minoredit": "یۀ دۀسکاری جزئیکۀ",
        "watchthis": "پئ گیری اێ وەلگە",
        "savearticle": "وەڵگە بِیل(ذخیره کە)",
+       "savechanges": "تغییراتی قید بکه",
+       "publishpage": "صفحهٔ انتشار",
+       "publishchanges": "تغییرات انتشار",
        "preview": "پیش‌نمایش",
        "showpreview": "پیش‌نمایش",
        "showdiff": "گؤەڕیال(تغییرات) بۆین",
        "invalid-content-data": "داده محتوای نامعتبر",
        "content-not-allowed-here": "محتوای «$1» در صفحهٔ [[$2]] مجاز نیست",
        "editwarning-warning": "خروج از این برگه ممکن است باعث شود که شما هر شانسی که به وجود آورده‌اید را از دست بدهید.\nاگر شما وارد سامانه شده‌اید، می‌توانید این هشدار را در بخش «{{int:prefs-editing}}» ترجیحاتتان غیرفعال کنید.",
+       "editpage-invalidcontentmodel-title": "مودل محتوا دستک نبینه",
+       "editpage-invalidcontentmodel-text": "مودل محتوا \"$1\" دستک نبینه",
        "editpage-notsupportedcontentformat-title": "فرمت نۆم جِک(محتوا)پشتیبانی نشده",
        "editpage-notsupportedcontentformat-text": "فرمت محتوای $1 توسط مدل محتوای $2 پشتیبانی نشده‌است.",
        "content-model-wikitext": "ویکی‌متن",
        "revdelete-unsuppress": "حذف محدودیت‌ها در بازبینی‌های ترمیم‌شده",
        "revdelete-log": ":دةلیل",
        "revdelete-submit": "اعمال بر {{PLURAL:$1|نسخهٔ|نسخه‌های}} انتخاب شده",
-       "revdelete-success": "'''پیدایی ورژن با موفقیت به روز شد.'''",
+       "revdelete-success": "نمایش رویزیون به‌روژ بوو",
        "revdelete-failure": "'''پیدایی ورژن ها قابل به روز کردن نیست:'''\n$1",
-       "logdelete-success": "تغییر پیدایی مورد با موفقیت انجام شد.",
+       "logdelete-success": "ورود نمایش ست",
        "logdelete-failure": "'''پیدایی سیاهه‌ها قابل تنظیم نیست:'''\n$1",
        "revdel-restore": "گؤەڕانن/تغییر پیدایی",
        "pagehist": "تاریخ وةڵگة",
        "mergehistory-empty": "هیچ‌یک از ورژن ها قابل ادغام نیستند.",
        "mergehistory-done": "$3 نسخه از $1 در {{PLURAL:$3|ادغام شد}}به [[:$2]].",
        "mergehistory-fail": "ادغام تاریخچه ممکن نیست، لطفاً گزینه‌های صفحه و زمان را بازبینی کنید.",
+       "mergehistory-fail-bad-timestamp": "برچسب زمانی معتبر نییه",
+       "mergehistory-fail-invalid-source": "صفحه منبع معتبر نییه",
+       "mergehistory-fail-invalid-dest": "صفحه مقصد معتبر نییه",
        "mergehistory-fail-toobig": "نمی‌توان ادغام تاریخچه را انجام داد که بیشتر از محدودیت $1 {{PLURAL:$1|نسخه}} انتقال داده خواهد شد.",
        "mergehistory-no-source": "صفحهٔ مبدأ $1 وجود ندارد.",
        "mergehistory-no-destination": "صفحهٔ مقصد $1 وجود ندارد.",
        "searchprofile-advanced-tooltip": "جستجو در فضاهای نام دلخواه",
        "search-result-size": "$1 ({{PLURAL:$2|1 واژۀ|$2 واژۀل}})",
        "search-result-category-size": "{{PLURAL:$1|یک عضو|$1 عضو}} ({{PLURAL:$2|یک زیررده|$2 زیررده}}، {{PLURAL:$3|یک پرونده|$3 پرونده}})",
-       "search-redirect": "(تغییرمسیر $1)",
+       "search-redirect": "(تغییرمسیر اژ $1)",
        "search-section": "(بۀخش $1)",
        "search-category": "(ڕِزگ $1)",
        "search-file-match": "(تشابه محتوی پرونده)",
        "saveprefs": "هیشتن(ذخیره)",
        "restoreprefs": "برگرداندن تمام تنظیمات پیش‌فرض (در تمامی قسمت‌ها)",
        "prefs-editing": "دەسکاری کردن",
-       "rows": "تعداد سطرها:",
-       "columns": "تعداد ستون‌ها:",
        "searchresultshead": "مِنِی کِردِن(گێردین)",
        "stub-threshold": "آستانهٔ ویرایش پیوندهای ناقص ($1):",
        "stub-threshold-sample-link": "نمونه",
        "prefswarning-warning": "تغییراتتان به ترجیحات هنوز ذحیره نشده است.\nاگر این صفحه بدون کلیک بر «$1» ترک کنید ترجیحاتتان ذخیره نخواهد شد.",
        "prefs-tabs-navigation-hint": "نکته: شما می توانید از کلیدهای جهت‌نمای چپ و راست برای حرکت بین زبانه‌ها در فهرست زبانه‌ها استفاده کنید.",
        "userrights": "مدیریت اختیارات کاربر",
-       "userrights-lookup-user": "مدیریت گروه‌های کاربری",
+       "userrights-lookup-user": "یک کاربر انتخاب بکه",
        "userrights-user-editname": "یک نام کاربری وارد کنید:",
-       "editusergroup": "ویرایش گروه‌های کاربری",
+       "editusergroup": "گروهه‌ل کاربر بار مه‌بئ",
        "editinguser": "تغییر اختیارات کاربری کاربر {{GENDER:$1|کاربر}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "ویرایش گروه‌های کاربری",
-       "saveusergroups": "هیشتِن(ذخیرە)گؤەڕیال(تغییرات)کوو(گروە)کاربەری",
+       "userrights-viewusergroup": "گروهه‌ل کاربری نشان بده",
+       "saveusergroups": "گروه {{GENDER:$1|کاربر}} قید بده",
        "userrights-groupsmember": "عضو:",
        "userrights-groupsmember-auto": "عضو ضمنی:",
        "userrights-groups-help": "شما می‌توانید گروه‌هایی را که کاربر در آن قرار دارد تغییر دهید:\n* جعبهٔ علامت‌خورده نشانهٔ بودن کاربر در آن گروه است.\n* جعبهٔ خالی نشانهٔ نبودن کاربر در آن گروه است.\n* علامت * به این معنی‌است که اگر آن گروه را بیفزایید نمی‌توانید بعداً برش دارید، و برعکس.",
        "right-managechangetags": "ایجاد و حذف [[Special:Tags|برچسب‌ها]] از پایگاه داده",
        "right-applychangetags": "تائید [[Special:Tags|برچسب]] بر روی تغییرات یک نفر",
        "right-changetags": "افزودن یا حذف [[Special:Tags|برچسب]] قراردادی بر روی نسخه یا سیاهه ورودی‌ها",
+       "grant-generic": "حقوق \"$1\" بسته",
+       "grant-group-page-interaction": "تعاول با صفحه",
+       "grant-group-file-interaction": "تعامل با میدیا",
+       "grant-group-watchlist-interaction": "تعامل با لیست تماشای ایوه",
+       "grant-group-email": "ایمیل کل بکه",
+       "grant-group-high-volume": "انجام فعالیته‌ل حجم بالا",
        "grant-group-customization": "سفارشی‌سازی و تنظیمات",
+       "grant-group-administration": "انجام اقدامات اداری",
+       "grant-group-other": "فعالیته‌ل متفرقه",
+       "grant-blockusers": "کاربره‌ل بستن و واز کردن",
+       "grant-createaccount": "حسابه ایجاد بکه",
+       "grant-createeditmovepage": "صحفاته ایحاد بکه، تغییر بکه و انتقال بکه",
+       "grant-delete": "صفحاته، رویزیونه‌لی و ورود یومی را پاک بکه",
+       "grant-editinterface": "ناو میدیا-ویکی را و کربر CSS/JavaScript را تغییر بکه",
+       "grant-editmycssjs": "کاربر ایوه CSS/JavaScript را تغییر بکه",
+       "grant-editmyoptions": "ترجیحات کاربر ایوه را تغییر بکه",
+       "grant-editmywatchlist": "لیست تماشای ایوه را تغییر بکه",
+       "grant-editpage": "صفحات موجوده تغییر بکه",
+       "grant-editprotected": "صفحات محافظه را تغییر بکه",
+       "grant-highvolume": "تغییرات د سویه بالایه",
        "newuserlogpage": "سیاههٔ ایجاد کاربر",
        "newuserlogpagetext": "این سیاهه‌ای از نام‌های کاربری تازه‌ساخته‌شده است.",
        "rightslog": "سیاههٔ اختیارات کاربر",
index 446cb3c..b7faa78 100644 (file)
        "preferences": "Izvēles",
        "mypreferences": "Izvēles",
        "prefs-edits": "Izmaiņu skaits:",
+       "prefsnologintext2": "Lūdzu pieslēdzies, lai mainītu savas izvēles.",
        "prefs-skin": "Apdare",
        "skin-preview": "Priekšskats",
        "datedefault": "Vienalga",
index 7c910ee..5867df4 100644 (file)
        "searcharticle": "Дај",
        "history": "историја",
        "history_short": "Историја",
+       "history_small": "историја",
        "updatedmarker": "подновено од мојата последна посета",
        "printableversion": "Верзија за печатење",
        "permalink": "Постојана врска",
index 7927493..1647067 100644 (file)
@@ -57,9 +57,9 @@
        "tog-watchlisthideown": "ကျွန်ုပ်၏ တည်းဖြတ်မှုများကို စောင့်ကြည့်စာရင်းမှ ဝှက်ထားရန်",
        "tog-watchlisthidebots": "ဘော့တည်းဖြတ်မှုများကို စောင့်ကြည့်စာရင်းမှ ဝှက်ထားရန်",
        "tog-watchlisthideminor": "အရေးမကြီးသော တည်းဖြတ်မှုများကို စောင့်ကြည့်စာရင်းမှ ဝှက်ထားရန်",
-       "tog-watchlisthideliu": "စောင့်ကြည့်စာရင်းမှ loggin ဝင်ထားသော အသုံးပြုသူတို့၏ တည်းဖြတ်မှုများကို ဝှက်ရန်",
+       "tog-watchlisthideliu": "စောင့်ကြည့်စာရင်းမှ log in ဝင်ထားသော အသုံးပြုသူတို့၏ တည်းဖြတ်မှုများကို ဝှက်ရန်",
        "tog-watchlisthideanons": "စောင့်ကြည့်စာရင်းမှ အမည်မသိ အသုံးပြုသူများ၏ တည်းဖြတ်မှုများကို ဝှက်ရန်",
-       "tog-watchlisthidepatrolled": "patrolled တည်းဖြတ်မှုများကို စောင့်ကြည့်စာရင်းမှ ဝှက်ထားရန်",
+       "tog-watchlisthidepatrolled": "စောင့်ကြည့်စစ်ဆေးထားသော တည်းဖြတ်မှုများကို စောင့်ကြည့်စာရင်းမှ ဝှက်ထားရန်",
        "tog-watchlisthidecategorization": "စာမျက်နှာများ၏ ကဏ္ဍကို ဝှက်ရန်",
        "tog-ccmeonemails": "ကျွန်ုပ် အခြားအသုံးပြုသူများထံပို့သော အီးမေးမိတ္တူကို ကျွန်ုပ်ထံ ပြန်ပို့ရန်",
        "tog-diffonly": "ကွဲပြားမှုများအောက်ရှိ စာမျက်နှာတွင်ပါဝင်သည်များကို မပြပါနှင့်",
        "and": "&#32;နှင့်",
        "qbfind": "ရှာပါ",
        "qbbrowse": "ရှာဖွေလှန်လှောရန်",
-       "qbedit": "ပြင်​ဆင်​ရန်​",
+       "qbedit": "ပြင်ဆင်ရန်",
        "qbpageoptions": "ဤစာမျက်နှာ",
        "qbmyoptions": "ကျွန်ုပ် စာမျက်နှာများ",
        "faq": "မေးလေ့ရှိကြသည်များ",
        "print": "ပရင့်",
        "view": "ကြည့်ရန်",
        "view-foreign": "$1 တွင် ကြည့်ရန်",
-       "edit": "ပြင်​ဆင်​ရန်​",
+       "edit": "ပြင်ဆင်ရန်",
        "create": "စတင်ရေးသားရန်",
        "editthispage": "ဤစာမျက်နှာကို ပြင်ရန်",
        "create-this-page": "ဤစာမျက်နှာကို စတင်ရေးသားရန်",
        "currentevents-url": "Project:လက်ရှိဖြစ်ရပ်များ",
        "disclaimers": "သတိပြုစရာများ",
        "disclaimerpage": "Project: အထွေထွေ သတိပြုဖွယ်",
-       "edithelp": "á\80\95á\80¼á\80\84á\80ºâ\80\8bá\80\86á\80\84á\80ºâ\80\8bá\80\9bá\80\94á\80º á\80¡â\80\8bá\80\80á\80°â\80\8bá\80¡â\80\8bá\80\8aá\80®â\80\8b",
+       "edithelp": "á\80\90á\80\8aá\80ºá\80¸á\80\96á\80¼á\80\90á\80ºá\80\81á\80¼á\80\84á\80ºá\80¸ á\80¡á\80\80á\80°á\80¡á\80\8aá\80®",
        "helppage-top-gethelp": "အကူအညီ",
        "mainpage": "ဗဟိုစာမျက်နှာ",
        "mainpage-description": "ဗ​ဟို​စာ​မျက်​နှာ​",
        "newmessageslinkplural": "{{PLURAL:$1|စာလွှာအသစ် တစ်စောင်|999=စာလွှာ အသစ်များ}}",
        "newmessagesdifflinkplural": "နောက်ဆုံး {{PLURAL:$1|ပြောင်းလဲမှု|999=ပြောင်းလဲမှုများ}}",
        "youhavenewmessagesmulti": "$1 မှာ စာတိုအသစ်များ ရှိသည်",
-       "editsection": "ပြင်​ဆင်​ရန်​",
-       "editold": "ပြင်​ဆင်​ရန်​",
+       "editsection": "ပြင်ဆင်ရန်",
+       "editold": "ပြင်ဆင်ရန်",
        "viewsourceold": "ရင်းမြစ်ကို ကြည့်ရန်",
-       "editlink": "ပြင်​ဆင်​ရန်",
+       "editlink": "ပြင်ဆင်ရန်",
        "viewsourcelink": "ရင်းမြစ်ကို ကြည့်ရန်",
        "editsectionhint": "ဤအပိုင်းကို တည်းဖြတ်ရန် - $1",
        "toc": "မာတိကာ",
        "tmp-create-error": "ယာယီဖိုင် မဖန်တီးနိုင်ပါ။",
        "tmp-write-error": "ယာယီဖိုင်ရေးသားရာတွင် အမှားဖြစ်ပေါ်နေသည်။",
        "largefileserver": "ဤဖိုင်သည် ဆာဗာတွင် ခွင့်ပြုရန်သတ်မှတ်ထားသော ဖိုင်အရွယ်အစားထက် ကြီးနေသည်။",
+       "file-exists-duplicate": "ဤဖိုင်သည် အောက်ပါ {{PLURAL:$1|ဖိုင်|ဖိုင်များ}}၏ ထပ်တူပုံပွား ဖြစ်သည် -",
        "uploadwarning": "Upload တင်ရာတွင် သတ်ပေးချက်",
        "savefile": "ဖိုင်သိမ်းရန်",
        "uploaddisabled": "Upload တင်ခြင်း ပိတ်ထားသည်။",
        "double-redirect-fixed-move": "[[$1]] ကို ရွှေ့ပြောင်းပြီးဖြစ်သည်။ ၎င်းအား အလိုအလျောက် ပြင်ဆင်ပြီး [[$2]] သို့ ပြန်ညွှန်းထားသည်။",
        "brokenredirects": "ကျိုးပျက်နေသော ပြန်ညွှန်းများ",
        "brokenredirectstext": "အောက်ပါ ပြန်ညွှန်းများသည် မရှိသောစာမျက်နှာများသို့ လင့်ထားသည် -",
-       "brokenredirects-edit": "ပြင်​ဆင်​ရန်",
+       "brokenredirects-edit": "ပြင်ဆင်ရန်",
        "brokenredirects-delete": "ဖျက်​ပါ",
        "withoutinterwiki": "ဘာသာစကားလင့်မပါသော စာမျက်နှာများ",
        "withoutinterwiki-summary": "အောက်ပါစာမျက်နှာများသည် အခြားဘာသာစကားဗားရှင်းများသို့ လင့်မထားပါ။",
        "listusers-blocked": "(ပိတ်ပင်ထားသည်)",
        "activeusers": "တက်ကြွလှုပ်ရှားသည့် အသုံးပြုသူစာရင်း",
        "activeusers-intro": "ဤသည်မှာ နောက်ဆုံး $1 {{PLURAL:$1|ရက်|ရက်}}အတွင်း တက်ကြွလှုပ်ရှားသည့် အသုံးပြုသူများ စာရင်း ဖြစ်သည်။",
+       "activeusers-count": "{{PLURAL:$3|ရက်|$3 ရက်}}အတွင်း {{PLURAL:$1|လုပ်ဆောင်မှု|လုပ်ဆောင်မှု}} $1 ခု",
        "activeusers-from": "ဤမှစသော အသုံးပြုသူများကို ပြရန် -",
        "activeusers-noresult": "အသုံးပြုသူ မတွေ့ပါ။",
        "listgrouprights": "အသုံးပြုသူအုပ်စု အခွင့်အရေးများ",
        "minimum-size": "အသေးဆုံးအရွယ်အစား",
        "maximum-size": "အကြီးဆုံးအရွယ်အစား -",
        "pagesize": "(ဘိုက်)",
-       "restriction-edit": "ပြင်​ဆင်​ရန်​",
+       "restriction-edit": "ပြင်ဆင်ရန်",
        "restriction-move": "ရွှေ့ရန်",
        "restriction-create": "ထွင်",
        "restriction-upload": "Upload တင်ရန်",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|စာတွဲ|စာတွဲများ}}]]: $2)",
        "tags-title": "အမည်တွဲ",
        "tags-tag": "အမည်တွဲ အမည်",
-       "tags-edit": "ပြင်​ဆင်​ရန်",
+       "tags-edit": "ပြင်ဆင်ရန်",
        "comparepages": "စာမျက်နှာများကို နှိုင်းယှဉ်ရန်",
        "compare-page1": "စာမျက်နှာတစ်",
        "compare-page2": "စာမျက်နှာနှစ်",
index 6cddc22..80f0207 100644 (file)
        "searcharticle": "Gå",
        "history": "Sidehistorikk",
        "history_short": "Historikk",
+       "history_small": "historikk",
        "updatedmarker": "oppdatert siden mitt forrige besøk",
        "printableversion": "Utskriftsvennlig versjon",
        "permalink": "Permanent lenke",
index 06ad2e6..149d0fc 100644 (file)
        "watchlistanontext": "Om uw volglijst te bekijken of te bewerken moet u zich aanmelden.",
        "watchnologin": "U bent niet aangemeld",
        "addwatch": "Toevoegen aan volglijst",
-       "addedwatchtext": "\"[[:$1]]\" en de bijhorende overlegpagina zijn toegevoegd aan uw [[Special:Watchlist|volglijst]].",
-       "addedwatchtext-talk": "\"[[:$1]]\" en de gerelateerde pagina zijn toegevoegd aan je [[Special:Watchlist|volglijst]].",
+       "addedwatchtext": "\"[[:$1]]\" en de bijbehorende overlegpagina zijn toegevoegd aan uw [[Special:Watchlist|volglijst]].",
+       "addedwatchtext-talk": "\"[[:$1]]\" en de bijbehorende pagina zijn toegevoegd aan uw [[Special:Watchlist|volglijst]].",
        "addedwatchtext-short": "De pagina \"$1\" is aan uw volglijst toegevoegd.",
        "removewatch": "Verwijderen uit volglijst",
-       "removedwatchtext": "\"[[:$1]]\" en de bijhorende overlegpagina zijn verwijderd van uw [[Special:Watchlist|volglijst]].",
-       "removedwatchtext-talk": "\"[[:$1]]\" en de bijhorende pagina zijn verwijderd van uw [[Special:Watchlist|volglijst]].",
+       "removedwatchtext": "\"[[:$1]]\" en de bijbehorende overlegpagina zijn verwijderd van uw [[Special:Watchlist|volglijst]].",
+       "removedwatchtext-talk": "\"[[:$1]]\" en de bijbehorende pagina zijn verwijderd van uw [[Special:Watchlist|volglijst]].",
        "removedwatchtext-short": "De pagina \"$1\" is van uw volglijst verwijderd.",
        "watch": "Volgen",
        "watchthispage": "Pagina volgen",
index 06e31e1..05e3e97 100644 (file)
        "searcharticle": "Consultar",
        "history": "Istoric",
        "history_short": "Istoric",
+       "history_small": "istoric",
        "updatedmarker": "modificat dempuèi ma darrièra visita",
        "printableversion": "Version imprimibla",
        "permalink": "Ligam istoric",
index 0ed8586..06c9345 100644 (file)
        "searcharticle": "Przejdź",
        "history": "Historia strony",
        "history_short": "historia",
+       "history_small": "historia",
        "updatedmarker": "zmienione od ostatniej wizyty",
        "printableversion": "Wersja do druku",
        "permalink": "Link do tej wersji",
        "recentchanges-legend-plusminus": "(''±123'')",
        "recentchanges-submit": "Pokaż",
        "rcfilters-activefilters": "Aktywne filtry",
+       "rcfilters-search-placeholder": "Filtruj ostatnie zmiany (przeglądaj lub zacznij wpisywać)",
+       "rcfilters-invalid-filter": "Nieprawidłowy filtr",
        "rcfilters-filterlist-title": "Filtry",
        "rcfilters-filterlist-noresults": "Nie znaleziono filtrów",
+       "rcfilters-filtergroup-authorship": "Autorstwo edycji",
        "rcfilters-filter-editsbyself-label": "Moje edycje",
        "rcfilters-filter-editsbyself-description": "Edycje dokonane przez Ciebie.",
        "rcfilters-filter-editsbyother-label": "Edycje inne niż Twoje",
index fc6fe92..a3363d4 100644 (file)
        "emailccsubject": "Cópia de sua mensagem para $1: $2",
        "emailsent": "E-mail enviado",
        "emailsenttext": "Sua mensagem foi enviada.",
-       "emailuserfooter": "Esta mensagem foi enviada {{GENDER:$1|pelo usuários|pela usuária}} $1 para {{GENDER:$2|$2}} através da opção \"{{int:emailuser}}\" da wiki {{SITENAME}}. {{GENDER:$2|A sua}} resposta será enviada diretamente para {{GENDER:$1|o|a}} remetente original, e irá revelar-lhe {{GENDER:$2|o seu}} e-mail.",
+       "emailuserfooter": "Esta mensagem foi enviada {{GENDER:$1|pelo usuário|pela usuária}} $1 para {{GENDER:$2|$2}} através da opção “{{int:emailuser}}” do projeto {{SITENAME}}. {{GENDER:$2|A sua}} resposta será enviada diretamente para {{GENDER:$1|o|a}} remetente original, e revelar-lhe-á {{GENDER:$2|o seu}} endereço de e-mail.",
        "usermessage-summary": "Deixar mensagem de sistema.",
        "usermessage-editor": "Mensagens de sistema",
        "watchlist": "Páginas vigiadas",
index 1e4a89c..39ad02f 100644 (file)
        "botpasswords-label-delete": "Eliminar",
        "botpasswords-label-resetpassword": "Redefinir palavra-passe",
        "botpasswords-label-grants": "Concessões de permissões aplicáveis:",
-       "botpasswords-help-grants": "As concessões de permissões permitem acesso a permissões já detidas pela sua conta de utilizador. Fazer uma concessão aqui não fornece acesso a quaisquer permissões que a usa conta de utilizador não possua. Consulte a [[Special:ListGrants|tabela de concessões]] para mais informação.",
+       "botpasswords-help-grants": "As concessões de permissões permitem acesso a permissões já detidas pela sua conta de utilizador. Fazer uma concessão aqui não fornece acesso a quaisquer permissões que a sua conta de utilizador não possua. Consulte a [[Special:ListGrants|tabela de concessões]] para mais informação.",
        "botpasswords-label-grants-column": "Concedido",
        "botpasswords-bad-appid": "O nome do robô \"$1\" não é válido.",
        "botpasswords-insert-failed": "Falhou ao adicionar o nome do robô \"$1\". Já foi adicionado?",
index 2f16979..a6d6228 100644 (file)
                        "Matěj Suchánek",
                        "Chaduvari",
                        "MarcoAurelio",
-                       "Joao Xavier"
+                       "Joao Xavier",
+                       "Winstonyin"
                ]
        },
        "sidebar": "{{notranslate}}",
        "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-invalid-filter": "A label for an invalid filter.",
        "rcfilters-filterlist-title": "Title for the filters list.\n{{Identical|Filter}}",
        "rcfilters-filterlist-noresults": "Message showing no results found for searching a filter.",
        "rcfilters-filtergroup-authorship": "Title for the filter group for edit authorship. This filter group allows the user to choose between \"Your own edits\" and \"Edits by others\". More info: https://phabricator.wikimedia.org/T149859\n\n{{doc-important|This is another typical example of ambiguity in the English language. Only the documentation will reveal that this message means \"(filter by) authorship of these edits\", not \"edit the authorship\". That is, \"edit\" is a modifying noun, not a verb.}}",
index 65f7ae0..f64d92a 100644 (file)
@@ -97,7 +97,8 @@
                        "SergeyButkov",
                        "Irus",
                        "Kareyac",
-                       "Mailman"
+                       "Mailman",
+                       "Аль-Гимравий"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "searcharticle": "Перейти",
        "history": "История",
        "history_short": "История",
+       "history_small": "история",
        "updatedmarker": "обновлено после моего последнего посещения",
        "printableversion": "Версия для печати",
        "permalink": "Постоянная ссылка",
        "changepassword-success": "Ваш пароль был изменён!",
        "changepassword-throttled": "Вы сделали слишком много попыток представиться системе.\nПожалуйста, подождите $1 перед тем, как попробовать снова.",
        "botpasswords": "Пароли ботов",
-       "botpasswords-summary": "<em>Пароли бота</em> позволяют получить доступ к учётной записи пользователя через API без использования логина и пароля главной учётной записи. Права участника при входе с паролем бота могут быть ограничены.\n\nЕсли Вы не знаете, зачем вам это, вероятно, лучше этого не делайте. Никто никогда не должен просить вас, чтобы вы создали и сообщили его.",
+       "botpasswords-summary": "<em>Пароли бота</em> позволяют получить доступ к учётной записи пользователя через API без использования логина и пароля главной учётной записи. Права участника при входе с паролем бота могут быть ограничены.\n\nЕсли Вы не знаете, зачем это нужно, воздержитесь от использования этой страницы. Никто никогда не должен просить вас, чтобы вы создали и сообщили его.",
        "botpasswords-disabled": "Пароли бота отключены.",
        "botpasswords-no-central-id": "Для использования паролей бота вы должны войти в централизованную учётную запись.",
        "botpasswords-existing": "Существующие пароли бота",
        "rev-deleted-user": "(имя автора стёрто)",
        "rev-deleted-event": "(детали журнала удалены)",
        "rev-deleted-user-contribs": "[имя участника или IP-адрес удалены — правка скрыта со страницы вклада]",
-       "rev-deleted-text-permission": "ЭÑ\82а Ð²ÐµÑ\80Ñ\81иÑ\8f Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ð±Ñ\8bла '''Ñ\83далена'''.\nÐ\92озможно, Ð¾Ð±Ñ\8aÑ\8fÑ\81нениÑ\8f Ð´Ð°ны в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
-       "rev-suppressed-text-permission": "ЭÑ\82а Ð²ÐµÑ\80Ñ\81иÑ\8f Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ð±Ñ\8bла <strong>Ñ\81кÑ\80Ñ\8bÑ\82а</strong>.\nÐ\9eбÑ\8aÑ\8fÑ\81нениÑ\8f Ñ\83далениÑ\8f приведены в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журнале сокрытий].",
-       "rev-deleted-text-unhide": "Эта версия страницы была '''удалена'''.\nОбъяснения приведены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].\nПри желании вы можете [$1 просмотреть данную версию].",
-       "rev-suppressed-text-unhide": "Эта версия страницы была '''скрыта'''.\nОбъяснения приведены в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журнале сокрытий].\nПри желании вы можете [$1 просмотреть данную версию].",
-       "rev-deleted-text-view": "Эта версия страницы была '''удалена'''.\nВы можете просмотреть её. Объяснения удаления приведены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
-       "rev-suppressed-text-view": "Эта версия страницы была '''скрыта'''.\nВы можете просмотреть её. Объяснения удаления приведены в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журнале сокрытий].",
-       "rev-deleted-no-diff": "Вы не можете просмотреть эту разницу версий, так как одна из версий страницы была '''удалена'''.\nВозможно, подробности можно найти в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
-       "rev-suppressed-no-diff": "Вы не можете просмотреть различия между этими версиями страницы, так как одна из них была '''удалена'''.",
-       "rev-deleted-unhide-diff": "Одна из версий страницы была '''удалена'''.\nПодробности можно найти в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].\nПри желании вы можете [$1 просмотреть разницу версий].",
-       "rev-suppressed-unhide-diff": "Одна из версий этого сравнения версий была '''скрыта'''.\nПодробности можно найти в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журнале сокрытий].\nПри желании вы можете [$1 просмотреть эту разницу версий].",
-       "rev-deleted-diff-view": "Одна из версий этого сравнения версий была '''удалена'''.\nВы можете просмотреть это сравнение. Подробности можно найти в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
-       "rev-suppressed-diff-view": "Одна из версий этого сравнения версий была '''скрыта'''.\nВы можете просмотреть это сравнение. Подробности можно найти в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале сокрытий].",
+       "rev-deleted-text-permission": "ЭÑ\82а Ð²ÐµÑ\80Ñ\81иÑ\8f Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ð±Ñ\8bла '''Ñ\83далена'''.\nÐ\9fодÑ\80обноÑ\81Ñ\82и Ð¿Ñ\80иведены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
+       "rev-suppressed-text-permission": "ЭÑ\82а Ð²ÐµÑ\80Ñ\81иÑ\8f Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ð±Ñ\8bла <strong>Ñ\81кÑ\80Ñ\8bÑ\82а</strong>.\nÐ\9fодÑ\80обноÑ\81Ñ\82и приведены в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журнале сокрытий].",
+       "rev-deleted-text-unhide": "Эта версия страницы была <strong>удалена</strong>.\nПодробности приведены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].\nПри желании вы можете [$1 просмотреть данную версию].",
+       "rev-suppressed-text-unhide": "Эта версия страницы была <strong>скрыта</strong>.\nПодробности приведены в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журнале сокрытий].\nПри желании вы можете [$1 просмотреть данную версию].",
+       "rev-deleted-text-view": "Эта версия страницы была <strong>удалена</strong>.\nВы можете просмотреть её. Подробности приведены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
+       "rev-suppressed-text-view": "Эта версия страницы была <strong>скрыта</strong>.\nВы можете просмотреть её. Подробности приведены в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журнале сокрытий].",
+       "rev-deleted-no-diff": "Вы не можете просмотреть эту разницу версий, так как одна из версий страницы была <strong>удалена</strong>.\nПодробности приведены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
+       "rev-suppressed-no-diff": "Вы не можете просмотреть различия между этими версиями страницы, так как одна из них была <strong>удалена</strong>.",
+       "rev-deleted-unhide-diff": "Одна из версий страницы была <strong>удалена</strong>.\nПодробности приведены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].\nПри желании вы можете [$1 просмотреть разницу версий].",
+       "rev-suppressed-unhide-diff": "Одна из версий этого сравнения версий была <strong>скрыта</strong>.\nПодробности приведены в [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} журнале сокрытий].\nПри желании вы можете [$1 просмотреть эту разницу версий].",
+       "rev-deleted-diff-view": "Одна из версий этого сравнения версий была <strong>удалена</strong>.\nВы можете просмотреть это сравнение. Подробности приведены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
+       "rev-suppressed-diff-view": "Одна из версий этого сравнения версий была <strong>скрыта</strong>.\nВы можете просмотреть это сравнение. Подробности приведены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале сокрытий].",
        "rev-delundel": "показать/скрыть",
        "rev-showdeleted": "показать",
        "revisiondelete": "Удалить / восстановить версии страницы",
        "revdelete-selected-text": "{{PLURAL:$1|Выбранная версия|Выбранные версии}} [[:$2]]:",
        "revdelete-selected-file": "{{PLURAL:$1|Выбранная версия файла|Выбранные версии файла}} [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|1=Выбранная запись|Выбранные записи}} журнала:",
-       "revdelete-text-text": "Удалённые версии будут по-прежнему видны в истории страницы, но части их содержимого будут недоступны для участников.",
-       "revdelete-text-file": "Удалённые версии файла будут по-прежнему видны в истории страницы, но части их содержимого будут недоступны для участников.",
-       "logdelete-text": "УдалÑ\91ннÑ\8bе Ñ\81обÑ\8bÑ\82иÑ\8f Ð² Ð¶Ñ\83Ñ\80нале Ð±Ñ\83дÑ\83Ñ\82 Ð¿Ð¾-пÑ\80ежнемÑ\83 Ð²Ð¸Ð´Ð½Ñ\8b Ð² Ð¶Ñ\83Ñ\80налаÑ\85, Ð½Ð¾ части их содержимого будут недоступны для участников.",
+       "revdelete-text-text": "Удалённые версии будут по-прежнему видны в истории страницы, но определенные части их содержимого будут недоступны для участников.",
+       "revdelete-text-file": "Удалённые версии файла будут по-прежнему видны в истории страницы, но определенные части их содержимого будут недоступны для участников.",
+       "logdelete-text": "УдалÑ\91ннÑ\8bе Ñ\81обÑ\8bÑ\82иÑ\8f Ð±Ñ\83дÑ\83Ñ\82 Ð¿Ð¾-пÑ\80ежнемÑ\83 Ð²Ð¸Ð´Ð½Ñ\8b Ð² Ð¶Ñ\83Ñ\80налаÑ\85, Ð½Ð¾ Ð¾Ð¿Ñ\80еделеннÑ\8bе части их содержимого будут недоступны для участников.",
        "revdelete-text-others": "Другие администраторы по-прежнему будут иметь возможность доступа к скрытому содержимому и смогут восстановить его, если не установлены дополнительные ограничения.",
        "revdelete-confirm": "Пожалуйста, подтвердите, что вы действительно желаете совершить это действие, осознаёте последствия, делаете это в соответствии с [[{{MediaWiki:Policy-url}}|правилами]].",
-       "revdelete-suppress-text": "Сокрытие может производиться '''только''' в следующих случаях:\n* Потенциально клеветническая информация\n* Неуместная личная информация\n*: ''домашний адрес, номера телефонов, номер паспорта и т. д.''",
+       "revdelete-suppress-text": "Сокрытие может производиться <strong>только</strong> в следующих случаях:\n* потенциально клеветническая информация\n* неуместная личная информация\n*: <em>домашний адрес, номера телефонов, номер паспорта и т. д.</em>",
        "revdelete-legend": "Установить ограничения:",
        "revdelete-hide-text": "Текст правки",
        "revdelete-hide-image": "Скрыть содержимое файла",
        "right-createpage": "создание страниц, не являющихся обсуждениями",
        "right-createtalk": "создание страниц обсуждений",
        "right-createaccount": "создание новых учётных записей участников",
-       "right-autocreateaccount": "Ð\90втоматический вход с помощью внешней учётной записи участника",
+       "right-autocreateaccount": "автоматический вход с помощью внешней учётной записи участника",
        "right-minoredit": "простановка отметки «малое изменение»",
        "right-move": "переименование страниц",
        "right-move-subpages": "переименование страниц с их подстраницами",
        "right-move-rootuserpages": "переименование корневых страниц участников",
        "right-move-categorypages": "переименование страниц категорий",
        "right-movefile": "переименование файлов",
-       "right-suppressredirect": "пеÑ\80еименование Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ð±ÐµÐ· Ñ\81озданиÑ\8f Ð¿ÐµÑ\80енапÑ\80авлениÑ\8f Ñ\81о Ñ\81Ñ\82аÑ\80ого Ð¸Ð¼ÐµÐ½Ð¸",
+       "right-suppressredirect": "подавление Ð¿ÐµÑ\80енапÑ\80авлений Ð¿Ñ\80и Ð¿ÐµÑ\80еименовании Ñ\81Ñ\82Ñ\80аниÑ\86",
        "right-upload": "загрузка файлов",
        "right-reupload": "запись файлов поверх существующих",
        "right-reupload-own": "перезапись файлов тем же участником",
        "right-reupload-shared": "подмена файлов из общих хранилищ локальными",
        "right-upload_by_url": "загрузка файлов с адреса URL",
-       "right-purge": "очистка кэша страниц без страницы подтверждения",
-       "right-autoconfirmed": "неÑ\82 Ð¾Ð³Ñ\80аниÑ\87ений Ð¿Ð¾ скорости на IP-адрес",
-       "right-bot": "считаться автоматическим процессом",
+       "right-purge": "очистка кэша страниц без подтверждения",
+       "right-autoconfirmed": "обÑ\85од Ð¾Ð³Ñ\80аниÑ\87ений скорости на IP-адрес",
+       "right-bot": "автоматический процесс",
        "right-nominornewtalk": "отсутствие малых правок на страницах обсуждений включает режим новых сообщений",
-       "right-apihighlimits": "меньше ограничений на выполнение API-запросов",
+       "right-apihighlimits": "уменьшение ограничений на выполнение API-запросов",
        "right-writeapi": "использование API для записи",
        "right-delete": "удаление страниц",
        "right-bigdelete": "удаление страниц с длинными историями изменений",
        "right-editmyusercss": "редактирование своих пользовательских CSS-файлов",
        "right-editmyuserjs": "редактирование своих пользовательских JavaScript-файлов",
        "right-viewmywatchlist": "просмотр своего списка наблюдения",
-       "right-editmywatchlist": "редактирование своего списка наблюдения; обратите внимание, что некоторые действия будут добавлять страницы даже без такого права",
+       "right-editmywatchlist": "редактирование своего списка наблюдения",
        "right-viewmyprivateinfo": "просмотр собственных личных данных (например, адрес электронной почты, настоящее имя)",
        "right-editmyprivateinfo": "правка собственных личных данных (например, адрес электронной почты, настоящее имя)",
        "right-editmyoptions": "редактирование собственных предпочтений",
-       "right-rollback": "быстрый откат правок последнего участника на определенной странице",
+       "right-rollback": "быстрый откат правок последнего участника",
        "right-markbotedits": "отметка откатываемых правок как правок бота",
-       "right-noratelimit": "неÑ\82 Ð¾Ð³Ñ\80аниÑ\87ений Ð¿Ð¾ скорости",
+       "right-noratelimit": "обÑ\85од Ð¾Ð³Ñ\80аниÑ\87ений скорости",
        "right-import": "импорт страниц из других вики",
        "right-importupload": "импорт страниц через загрузку файлов",
-       "right-patrol": "оÑ\82меÑ\82ка Ð¿Ñ\80авок ÐºÐ°Ðº Ð¾Ñ\82паÑ\82Ñ\80Ñ\83лиÑ\80ованнÑ\8bÑ\85",
-       "right-autopatrol": "пÑ\80авки Ð°Ð²Ñ\82омаÑ\82иÑ\87еÑ\81ки Ð¾Ñ\82меÑ\87аÑ\8eÑ\82Ñ\81Ñ\8f ÐºÐ°Ðº Ð¿Ð°Ñ\82Ñ\80Ñ\83лиÑ\80ованнÑ\8bе",
+       "right-patrol": "паÑ\82Ñ\80Ñ\83лиÑ\80ование Ð¿Ñ\80авок",
+       "right-autopatrol": "авÑ\82омаÑ\82иÑ\87еÑ\81кое Ð¿Ð°Ñ\82Ñ\80Ñ\83лиÑ\80ование Ð¿Ñ\80авок",
        "right-patrolmarks": "просмотр отметок о патрулировании в свежих правках",
        "right-unwatchedpages": "просмотр списка ненаблюдаемых страниц",
        "right-mergehistory": "объединение историй страниц",
        "action-browsearchive": "поиск удалённых страниц",
        "action-undelete": "восстановление страниц",
        "action-suppressrevision": "просмотр и восстановление скрытых версий страниц",
-       "action-suppressionlog": "пÑ\80оÑ\81моÑ\82Ñ\80 Ñ\8dÑ\82ого Ñ\87аÑ\81Ñ\82ного Ð¶Ñ\83Ñ\80нала",
-       "action-block": "огÑ\80аниÑ\87иваÑ\82Ñ\8c Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñ\81Ñ\82Ñ\8c Ñ\80едакÑ\82иÑ\80ованиÑ\8f Ð´Ð»Ñ\8f Ñ\8dÑ\82ого участника",
+       "action-suppressionlog": "просмотр частного журнала",
+       "action-block": "блокиÑ\80овкÑ\83 участника",
        "action-protect": "изменение уровня защиты этой страницы",
-       "action-rollback": "быстрый откат изменений участника, который последним редактировал страницу",
+       "action-rollback": "быстрый откат изменений",
        "action-import": "импорт страниц из другой вики",
        "action-importupload": "импорт страниц из загруженного файла",
        "action-patrol": "отметка чужих правок как отпатрулированных",
        "action-autopatrol": "отметка своих правок как отпатрулированных",
        "action-unwatchedpages": "просмотр списка страниц, за которыми не следят",
        "action-mergehistory": "присоединение истории изменений этой страницы",
-       "action-userrights": "изменение Ð²Ñ\81еÑ\85 Ð¿Ñ\80ав Ñ\83Ñ\87аÑ\81Ñ\82ника",
+       "action-userrights": "изменение прав участника",
        "action-userrights-interwiki": "изменение прав участников в других вики",
-       "action-siteadmin": "блокировка и разблокировка базы данных",
+       "action-siteadmin": "блокировку и разблокировку базы данных",
        "action-sendemail": "отправка электронных писем",
        "action-editmyoptions": "редактирование своих настроек",
        "action-editmywatchlist": "редактирование вашего списка наблюдения",
        "backend-fail-usable": "Не удалось прочитать или записать файл «$1» из-за нехватки прав или отсутствия нужных папок.",
        "filejournal-fail-dbconnect": "Не удалось подключиться к базе данных журнала для хранилища «$1».",
        "filejournal-fail-dbquery": "Не удалось обновить базу данных журнала для хранилища «$1».",
-       "lockmanager-notlocked": "Не удалось разблокировать \"$1\"; он не заблокирован.",
+       "lockmanager-notlocked": "Не удалось разблокировать «$1»; он не заблокирован.",
        "lockmanager-fail-closelock": "Не удалось закрыть файл блокировки для  «$1».",
        "lockmanager-fail-deletelock": "Не удалось удалить файл блокировки для «$1».",
        "lockmanager-fail-acquirelock": "Не удалось добиться блокировки «$1».",
        "listusers-blocked": "(заблокирован{{GENDER:$1||а}})",
        "activeusers": "Список активных участников",
        "activeusers-intro": "Это список участников, совершавших какие-либо действия за {{PLURAL:$1|последний $1 день|последние $1 дня|последние $1 дней|1=последний день}}.",
-       "activeusers-count": "$1 {{PLURAL:$1|пÑ\80авка|пÑ\80авки|пÑ\80авок}} за {{PLURAL:$3|$3 последний день|последние $3 дня|последние $3 дней|1=последний день}}",
+       "activeusers-count": "$1 {{PLURAL:$1|дейÑ\81Ñ\82вие|дейÑ\81Ñ\82виÑ\8f|дейÑ\81Ñ\82вий}} за {{PLURAL:$3|$3 последний день|последние $3 дня|последние $3 дней|1=последний день}}",
        "activeusers-from": "Показать участников, начиная с:",
        "activeusers-groups": "Отображать участников, принадлежащих к группам:",
        "activeusers-excludegroups": "Исключать участников, принадлежащих к группам:",
        "sp-contributions-talk": "обсуждение",
        "sp-contributions-userrights": "управление правами участника",
        "sp-contributions-blocked-notice": "Этот участник в данный момент заблокирован. Ниже приведена последняя запись из журнала блокировок:",
-       "sp-contributions-blocked-notice-anon": "Этот IP-адрес в данный момент заблокирован.\nНиже приведена последняя запись из журнала блокировок:",
+       "sp-contributions-blocked-notice-anon": "Этот IP-адрес в данный момент заблокирован. Ниже приведена последняя запись из журнала блокировок:",
        "sp-contributions-search": "Поиск вклада",
        "sp-contributions-username": "IP-адрес или имя участника:",
        "sp-contributions-toponly": "Показывать только правки, являющиеся последними версиями",
index e1691aa..2c8bc34 100644 (file)
        "searcharticle": "Көрдөр",
        "history": "Устуоруйата",
        "history_short": "Устуоруйа",
+       "history_small": "устуоруйата",
        "updatedmarker": "тиһэх киириим кэнниттэн уларыйбыт",
        "printableversion": "Бэчээттииргэ аналлаах барыл",
        "permalink": "Куруук баар сигэ",
        "blockedtitle": "Кыттааччы уларытар кыаҕа быһылынна",
        "blockedtext": "'''Эн аатыҥ эбэтэр IP-аадырыһыҥ бобулуннулар.'''\n\nБоппут киһи $1.\nТөрүөтэ: ''«$2»''.\n\n*Бобуллубут: $8\n*Бобуу болдьоҕо: $6\n*Бобулунна: $7\n\nЭн $1 диэн киһиэхэ эбэтэр атын [[{{MediaWiki:Grouppage-sysop}}|администраатарга]] суруйан быһаарсыаххын сөп.\nБолҕой, өскө регистрацияламматах буоллаххына, эбэтэр эл. аадырыскын [[Special:Preferences|бигэргэппэтэх]] буоллаххына, эбэтэр сурук суруйарыҥ бобуллубут буоллаҕына администраатарга суруйар кыаҕыҥ суох.\nЭн IP-аадырыһыҥ — $3, бобуу нүөмэрэ — #$5.\nОну суруккар киллэрээр.",
        "autoblockedtext": "Эн IP-аадырыскын ханнык эрэ бу бырайыакка кыттара бобуллубут киһи туһана сылдьыбыт, онон бу IP-аадырыс бобуулаах. Боппут администраатар ($1) ол төрүөтүн маннык суруйбут:\n\n:''$2''\n\n*Бобуллубут: $8\n*Бобуу болдьоҕо: $6\n*Бобулунна: $7\n\nЭн $1 диэн киһиэхэ эбэтэр атын [[{{MediaWiki:Grouppage-sysop}}|администраатарга]] сурук суруйан быһаарсыаххын сөп.\n\nБолҕой, өскө регистрацияламматах буоллаххына, эбэтэр эл. аадырыскын [[Special:Preferences|бигэргэппэтэх]]  буоллаххына, эбэтэр сурук суруйарыҥ бобуллубут буоллаҕына администраатарга суруйар кыаҕыҥ суох.\n\nIP-аадырыһыҥ $3, бобуу нүөмэрэ — #$5.\nОну суруккар киллэрээр.",
+       "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": "Уларытарга эл. почтаҥ аадырыһын бигэргэтиэхтээххин. Бастаан [[Special:Preferences|манна]] киирэн бэйэн ааккын уонна эл. почтаҕын суруй. Онтон эл. аадырыскын бигэргэт.",
        "recentchanges-legend-heading": "<strong>Легендата:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (өссө көр: [[Special:NewPages|Саҥа сирэйдэр тиһиктэрэ]])",
        "recentchanges-submit": "Көрдөр",
+       "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": "Атыттар уларытыылара (Эйиэнэ буолбатах).",
+       "rcfilters-filtergroup-userExpLevel": "Кыттааччы уопутун таһымынан",
+       "rcfilters-filter-userExpLevel-newcomer-label": "Саҥа киирбиттэр",
+       "rcfilters-filter-userExpLevel-newcomer-description": "Отой саҥалар: 10 көннөрүүттэн аҕыйаҕы оҥорбуттар уонна бэлиэтэмиттэрэ 4 хоно иликтэр.",
+       "rcfilters-filter-userExpLevel-learner-label": "Үөрэнээччилэр",
        "rcnotefrom": "Манна {{PLURAL:$5|уларытыы көрдөрүлүннэ|уларытыылар көһүннүлэр}} баччаттан <strong>$3, $4</strong> (баччаттан элбэх көстүбэт <strong>$1</strong>).",
        "rclistfrom": "Бу кэм $3 $2 кэнниттэн оҥоһуллубуттары көрдөр",
        "rcshowhideminor": "$1 кыра уларыйыылары",
index e7b4cf4..a2f0024 100644 (file)
        "searcharticle": "Иди",
        "history": "Историја странице",
        "history_short": "Историја",
+       "history_small": "историја",
        "updatedmarker": "ажурирано од моје последње посете",
        "printableversion": "За штампање",
        "permalink": "Трајна веза",
index 9277032..97dba56 100644 (file)
        "searcharticle": "ಪೋಲೆ",
        "history": "ಪುಟೊತ ಚರಿತ್ರೆ",
        "history_short": "ಇತಿಹಾಸೊ",
+       "history_small": "ಇತಿಹಾಸೊ",
        "updatedmarker": "ಎನ್ನ ಅಕೇರಿದ ವೀಕ್ಷಣೆ ಡ್ದ್ ಬುಕ್ಕ ಆಯಿನ ಬದಲಾವಣೆಲು",
        "printableversion": "ಪ್ರಿಂಟ್ ಆವೃತ್ತಿ",
        "permalink": "ಸ್ತಿರೊ ಕೊಂಡಿ",
        "prefs-rendering": "ಗೋಚರೊ",
        "saveprefs": "ಒರಿಪಾಲೆ",
        "prefs-editing": "ಸಂಪೊಲಿಪು",
-       "rows": "ಸಾಲ್‘ಲು",
-       "columns": "ಸಾಲ್‍ಕುಲು:",
        "searchresultshead": " \nನಾಡ್’ಲೆ",
        "stub-threshold-sample-link": "ಸಾಂಪಲ್",
        "stub-threshold-disabled": "ಕ್ರಿಯೆ ಉಂತ್‍ದ್ಂಡ್",
        "recentchanges-legend-heading": "<strong>ಲೆಜೆಂಡ್:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ಬೊಕ್ಕೊಲಾ ತೂಲೆ [[Special:NewPages|ಪೊಸ ಪುಟೊದ ಪಟ್ಟಿ]])",
        "recentchanges-submit": "ತೋಜಾಲೆ",
+       "rcfilters-filter-userExpLevel-learner-label": "ಕಲ್ಪುನರ್",
        "rclistfrom": "$3 $2 ರ್ದ್ ಸುರುವಾತಿನ ಪೊಸ ಬದಲಾವಣೆಲೆನ್ ತೊಜ್ಪಾವು",
        "rcshowhideminor": "$1 ಎಲ್ಯೆಲ್ಯ ಬದಲಾವಣೆಲು",
        "rcshowhideminor-show": "ತೋಜಾಲೆ",
        "logentry-move-move": "$1 {{GENDER:$2|ಜಾರಲೆ}} ಪುಟೊ $3 ಡ್ದ್ $4",
        "logentry-newusers-create": "ಬಳಕೆದಾರೆರೆ ಕಾತೆ $1 ನ್ನು {{GENDER:$2|ಸ್ರಿಸ್ಟಿ ಮಲ್ತಾಂಡ್}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|ಅಪ್ಲೋಡ್ ಮಲ್ತ್‌ದೆರ್}} $3",
-       "searchsuggest-search": "{{SITENAME}}ನ್ ನಾಡ್‍ಲೆ"
+       "searchsuggest-search": "{{SITENAME}}ನ್ ನಾಡ್‍ಲೆ",
+       "pagelang-reason": "ಕಾರಣೊ"
 }
index f47f0f3..e1c2df5 100644 (file)
        "searcharticle": "Git",
        "history": "Sayfa geçmişi",
        "history_short": "Geçmiş",
+       "history_small": "geçmiş",
        "updatedmarker": "son ziyaretimden sonra güncellenmiş",
        "printableversion": "Yazdırılabilir sürüm",
        "permalink": "Kalıcı bağlantı",
        "views": "Görünümler",
        "toolbox": "Araçlar",
        "tool-link-userrights": "{{GENDER:$1|Kullanıcı}} gruplarını değiştir",
+       "tool-link-userrights-readonly": "{{GENDER:$1|Kullanıcı}} gruplarını gör",
        "tool-link-emailuser": "Bu {{GENDER:$1|kullanıcıya}} e-posta gönder",
        "userpage": "Kullanıcı sayfasını görüntüle",
        "projectpage": "Proje sayfasını görüntüle",
        "missingarticle-rev": "(revizyon#: $1)",
        "missingarticle-diff": "(Fark: $1, $2)",
        "readonly_lag": "Yedek sunucular ana sunucu ile güncellenirken veritabanı otomatik olarak kilitlendi.",
+       "nonwrite-api-promise-error": "'Promise-Non-Write-API-Action' HTTP üstbilgisi gönderildi, ancak istek bir API yazma modülüne yapıldı.",
        "internalerror": "Dahili hata",
        "internalerror_info": "Dahili hata: $1",
        "internalerror-fatal-exception": "\"$1\" tipinde hayati istisna",
        "createacct-email-ph": "E-posta adresinizi girin",
        "createacct-another-email-ph": "E-posta adresinizi girin",
        "createaccountmail": "Geçici bir rastgele şifre kullanabilir ve bu şifreyi belirtilen e-posta adresine gönderebilirsiniz",
+       "createaccountmail-help": "Parolayı öğrenmeden başka bir kişi için hesap oluşturmak amacıyla kullanılabilir.",
        "createacct-realname": "Gerçek adı (isteğe bağlı)",
        "createaccountreason": "Sebep:",
        "createacct-reason": "Gerekçe",
        "createacct-reason-ph": "Neden başka bir hesap oluşturuyorsunuz",
+       "createacct-reason-help": "Hesap oluşturma günlüğünde gösterilen mesaj",
        "createacct-submit": "Hesabınızı oluşturun",
        "createacct-another-submit": "Hesap oluşturun",
        "createacct-continue-submit": "Hesap oluşturmaya devam et",
        "eauthentsent": "Belirtilen e-posta adresine onay kodu içeren bir e-posta gönderildi.\nHesaba başka bir e-posta gönderilmeden önce, e-postadaki yönergeleri uygulayıp, hesabın gerçekten size ait olduğunu onaylamanız gerekir.",
        "throttled-mailpassword": "Bir parola sıfırlama e-postası son {{PLURAL:$1|bir saat|$1 saat}} içinde zaten gönderildi. Hizmeti kötüye kullanmayı önlemek için, her {{PLURAL:$1|bir saatte|$1 saatte}} sadece bir parola sıfırlama e-postası gönderilecektir.",
        "mailerror": "E-posta gönderim hatası: $1",
-       "acct_creation_throttle_hit": "Sizin IP adresinizi kullanarak bu vikiyi ziyaret edenler son günde {{PLURAL:$1|1 hesap|$1 hesap}} oluşturdu, bu sayı bu zaman aralığında izin verilen azami sayıdır.\nSonuç olarak, bu IP adresini kullanan ziyaretçiler şu anda daha fazla hesap açamazlar.",
+       "acct_creation_throttle_hit": "Sizin IP adresinizi kullanarak bu vikiyi ziyaret edenler $2 içinde {{PLURAL:$1|1 hesap|$1 hesap}} oluşturdu, bu sayı bu zaman aralığında izin verilen azami sayıdır.\nSonuç olarak, bu IP adresini kullanan ziyaretçiler şu anda daha fazla hesap açamazlar.",
        "emailauthenticated": "E-posta adresiniz $2 $3 tarihinde onaylandı.",
        "emailnotauthenticated": "E-posta adresiniz henüz onaylanmadı.\nAşağıdaki işlevlerin hiçbiri için e-posta gönderilmeyecektir.",
        "noemailprefs": "Bu özelliklerin çalışması için bir e-posta adresi belirtiniz.",
        "changepassword-success": "Parolanız değiştirildi!",
        "changepassword-throttled": "Çok fazla yeni oturum açma girişiminde bulundunuz.\nLütfen tekrar denemeden önce $1 bekleyin.",
        "botpasswords": "Bot şifreleri",
+       "botpasswords-summary": "<em>Bot şifreleri,</em> hesabın ana giriş kimlik bilgilerini kullanmadan API aracılığıyla bir kullanıcı hesabına erişime izin verir. Bir bot şifresi ile giriş yaptığınızda mevcut kullanıcı hakları kısıtlanabilir.\n\nBunu neden yapmak isteyebileceğinizi bilmiyorsanız, yapmayınız. Hiç kimse sizden bunlardan birini üretip onlara vermenizi istememelidir.",
        "botpasswords-disabled": "Bot şifreleri devre dışı.",
        "botpasswords-no-central-id": "Bot şifresini kullanmak için, merkezi bir hesap ile giriş yapmalısınız.",
        "botpasswords-existing": "Mevcut bot şifreleri",
        "saveprefs": "Kaydet",
        "restoreprefs": "Tüm varsayılan ayarları geri yükle (tüm bölümlerde)",
        "prefs-editing": "Sayfa yazma alanı",
-       "rows": "Satır",
-       "columns": "Sütun",
        "searchresultshead": "Arama",
        "stub-threshold": "<a href=\"#\" class=\"stub\">Taslak bağlantısı</a> formatı için baraj (bayt):",
        "stub-threshold-sample-link": "örnek",
index 586b55f..9297931 100644 (file)
@@ -29,9 +29,9 @@
                        "Irus"
                ]
        },
-       "tog-underline": "Сылтамаларның астына сызу:",
+       "tog-underline": "Сылтамаларны сызымлау:",
        "tog-hideminor": "Соңгы үзгәртүләр исемлегендә кече үзгәртүләр яшерелсен",
-       "tog-hidepatrolled": "Тикшерелгән үзгәртүләр яңа үзгәртүләр исемлегеннән яшерелсен.",
+       "tog-hidepatrolled": "Тикшерелгән үзгәртүләр яңа үзгәртүләр исемлегеннән яшерелсен",
        "tog-newpageshidepatrolled": "Тикшерелгән битләр яңа битләр исемлегеннән яшерелсен",
        "tog-hidecategorization": "Битләрне төркемләшүне ябу",
        "tog-extendwatchlist": "Соңгыларын гына түгел, ә барлык үзгәртүләрне эченә алган, киңәйтелгән күзәтү исемлеге",
        "searcharticle": "Күчү",
        "history": "Битнең тарихы",
        "history_short": "Тарих",
+       "history_small": "тарих",
        "updatedmarker": "соңгы керүемнән соң яңартылган",
        "printableversion": "Басма юрама",
        "permalink": "Даими сылтама",
        "pool-queuefull": "Сорауларны саклау  бите тулы",
        "pool-errorunknown": "Билгесез  хата",
        "pool-servererror": "Пул санау хезмәте эшләми ($1).",
-       "poolcounter-usage-error": "$1: куллану хатасы",
+       "poolcounter-usage-error": "Куллану хатасы: $1",
        "aboutsite": "{{SITENAME}} турында",
        "aboutpage": "Project:Тасвирлама",
        "copyright": "Мәгълүмат $1 буенча таратыла (әгәр башкасы күрсәтелмәсә).",
        "youhavenewmessagesfromusers": "{{PLURAL:$4|Сезгә}} {{PLURAL:$3|$3 кулланучыдан}} $1 килде ($2).",
        "youhavenewmessagesmanyusers": "Сез бик күп кулланучыдан $1 алдыгыз ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|яңа хәбәр|999=яңа хәбәрләр}}",
-       "newmessagesdifflinkplural": "{{PLURAL:$1|1=соңгы үзгәртү|соңгы үзгәртүләр}}\nсоңгы {{PLURAL:$1|үзгәртү|999=үзгәртү}}",
-       "youhavenewmessagesmulti": "Сезгә монда яңа хәбәрләр бар: $1",
+       "newmessagesdifflinkplural": "соңгы {{PLURAL:$1|үзгәртү|үзгәртүләр}}",
+       "youhavenewmessagesmulti": "$1 эчендә яңа хат бар",
        "editsection": "үзгәртү",
        "editold": "үзгәртү",
-       "viewsourceold": "башлангыч кодны карау",
+       "viewsourceold": "чыганак кодны карау",
        "editlink": "үзгәртү",
        "viewsourcelink": "чыганак кодны карау",
        "editsectionhint": "$1 бүлеген үзгәртү",
        "toc": "Эчтәлек",
        "showtoc": "күрсәтү",
        "hidetoc": "яшерү",
-       "collapsible-collapse": "Төрү",
+       "collapsible-collapse": "төрү",
        "collapsible-expand": "Ачу",
        "confirmable-confirm": "{{GENDER:$1|Шулаймы}}?",
        "confirmable-yes": "Әйе",
index ec501a0..93ca796 100644 (file)
        "variants": "Вариантъёс",
        "navigation-heading": "Навигация",
        "errorpagetitle": "Янгыш",
-       "returnto": "Берыктон борды бам $1.",
+       "returnto": "$1 баме берытскон.",
        "tagline": "{{SITENAME}}-ысь материал",
        "help": "Валэктонъёс",
        "search": "Утчан",
        "loginreqpagetext": "Тон кулэ $1-ысь, сое мукет бамез учкыны шуыса.",
        "newarticletext": "Тон бам ссылкаос вылэ выжыса, со кема уз улы.\nСоос мед кылдозы, текст бичась укноос, улазы интыяськемын (умой-умой см. [$1 бам справочной]).\nЯнгыш-а тон татын луысалыд ке, кнопказэ зӥбиз гинэ <strong>берлань</strong> асьтэлэсь браузеръёстэс.",
        "noarticletext": "Али дыре та бамын текст ӧвӧл. \nТӥ быгатоды [[Special:Search/{{PAGENAME}}|шедьтыны со сярысь кыӵе ке ивор]] мукет бамъёсысь,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} шедьтыны журналъёсысь гожъямъёсыз], \nяке [{{fullurl:{{FULLPAGENAME}}|action=edit}} сыӵе нимын бам кылдытыны]</span>.",
-       "noarticletext-nopermission": "Али дыре та бам вылын кылкуэт ӧвӧл.\nТон быгатӥськод [[Special:Search/{{PAGENAME}}|сётэм йыръянъёс шедьто упоминание]] мукет бам вылын,\nяке <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} соответствующий журнал книгаез шедьтыны].</span> Тӥ дорын сётӥське юаськыны кылдӥз бам ӧвӧл.",
+       "noarticletext-nopermission": "Али дыре та бамын текст ӧвӧл.\nТӥ быгатоды [[Special:Search/{{PAGENAME}}|шедьтыны со сярысь кыӵе ке ивор]] мукет бамъёсысь, яке <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} шедьтыны журналъёсысь гожъямъёсыз]</span>, нош та бамез кылдытыны тӥляд лэзёнды ӧвӧл.",
        "blocked-notice-logextract": "Та викиавтор али заблокировать каремын.\nБлокировкаосын журналысь берпум гожъям улӥ возьматэмын:",
        "continue-editing": "Тупатъянэз азьланьтоно",
        "editing": "Тупатон: $1",
        "nocreate-loggedin": "Выль бамъёсты кылдытъяны тӥляд лэзёнды ӧвӧл.",
        "permissionserrors": "Лэзён янгыш",
        "permissionserrorstext": "Тон дорын разрешенизы ӧвӧлэн, тазэ лэсьтом шуыса, со понна вуоно {{PLURAL:$1|мугез}}:",
-       "permissionserrorstext-withaction": "Ð\9fÑ\80авоез Ó§Ð²Ó§Ð», Ñ\82он Ð´Ð¾Ñ\80Ñ\8bн $2 Ñ\82Ó¥ {{PLURAL:$1/1=мÑ\83гез Ð²Ñ\83оно|мÑ\83гез Ð²Ñ\83оно}}:",
+       "permissionserrorstext-withaction": "ТӥлÑ\8fд $2 Ð»Ñ\8dзÑ\91ндÑ\8b Ó§Ð²Ó§Ð» Ñ\82а {{PLURAL:$1|1=мÑ\83ген|мÑ\83гÑ\8aÑ\91Ñ\81Ñ\8bн}} Ñ\81Ñ\8dÑ\80ен:",
        "moveddeleted-notice": "Та бам быдтэмын вал.\nБыдтонъёсын но ним воштонъёсын журналъёсысь ярано записьёс чӧлсконлы улӥ возьматэмын.",
        "content-model-wikitext": "викитекст",
        "undo-summary": "Шонертон вошъян $1, лэсьтӥзы {{GENDER:$2|участник|куакеч}} [[Special:Contributions/$2|$2]] ([[User talk:$2|обс.]])",
        "prefs-preview": "Бамез эскерон",
        "userrights": "Пыриськисьлэн правоосыныз кивалтон",
        "editusergroup": "Викиавторлэсь группаоссэ возьматыны",
-       "group-autoconfirmed": "Автоподтвержденный пыриськисьёс",
-       "group-bot": "Ð\91оÑ\82Ñ\8b",
+       "group-autoconfirmed": "Авто-юнматэм викиавторъёс",
+       "group-bot": "Ð\91оÑ\82Ñ\8aÑ\91Ñ\81",
        "group-sysop": "Администраторъёс",
        "group-all": "(ваньзэ)",
        "grouppage-sysop": "{{ns:project}}:Администраторъёс",
        "right-block": "мукет пыриськисьёслэсь курон-косон вылэ установкаосты редактировать",
        "newuserlogpage": "Викиавторъёсыз регистрациосын журнал",
        "action-read": "та лыдӟонъёс бам",
-       "action-edit": "Ñ\82а Ð±Ð°Ð¼ÐµÐ· Ñ\80едакÑ\82иÑ\80оваÑ\82Ñ\8c",
+       "action-edit": "Ñ\82а Ð±Ð°Ð¼ÐµÐ· Ñ\82Ñ\83паÑ\82Ñ\8bнÑ\8b",
        "action-block": "пыриськисьёс та понна луонлыкъёссы сюбегам редактировать",
        "enhancedrc-history": "история",
        "recentchanges": "Выль тупатонъёс",
        "sp-deletedcontributions-contribs": "тупатонъёсыз",
        "listusers-submit": "Возьматыны",
        "listusers-blocked": "(блокировать каремын)",
-       "listgrouprights": "Ð\9fÑ\80аво Ð³Ñ\80Ñ\83ппае Ð¿Ñ\8bÑ\80иÑ\81Ñ\8cкиÑ\81Ñ\8cÑ\91Ñ\81",
-       "listgrouprights-summary": "Та Ð³Ñ\80Ñ\83ппае Ð¿Ñ\8bÑ\80иÑ\81Ñ\8cÑ\91Ñ\81 Ð²Ð¾Ð·Ñ\8cмаÑ\82Ñ\8bнÑ\8b ÐºÑ\83лÑ\8d Ð²Ð¸ÐºÐ¸ Ñ\81пиÑ\81ок Ñ\83лӥзÑ\8b, Ð¿Ñ\80аво Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вÑ\83Ñ\8eÑ\89ийгеÑ\81 Ñ\81олÑ\8b Ð²Ð¾Ð·Ñ\8cмаÑ\82оно ÐºÐ°Ñ\80иÑ\81Ñ\8cкиз. Ð\9eло, Ð°Ñ\81 [[{{MediaWiki:Listgrouprights-helppage}}|кожазÑ\8b Ð²Ð°Ñ\82Ñ\81аÑ\81а Ð¸Ð²Ð¾Ñ\80Ñ\82одÑ\8dÑ\82]] Ñ\83лÑ\8bнÑ\8b Ñ\8dÑ\80икÑ\80адÑ\8dз Ñ\81Ñ\8fÑ\80Ñ\8bÑ\81ь.",
-       "listgrouprights-members": "(список пыриськисьёс)",
+       "listgrouprights": "Ð\92икиавÑ\82оÑ\80Ñ\8aÑ\91Ñ\81лÑ\8dн Ð³Ñ\80Ñ\83ппаоÑ\81Ñ\81Ñ\8bлÑ\8dн Ð¿Ñ\80авооÑ\81Ñ\81Ñ\8b",
+       "listgrouprights-summary": "Улӥ Ñ\81пиÑ\81ок Ð²Ð¾Ð·Ñ\8cмаÑ\82Ñ\8dмÑ\8bн Ð²Ð¸ÐºÐ¸Ð°Ð²Ñ\82оÑ\80Ñ\8aÑ\91Ñ\81лÑ\8dн Ñ\82а Ð²Ð¸ÐºÐ¸Ñ\8bн ÐºÑ\8bлдÑ\8bÑ\82Ñ\8dм Ð³Ñ\80Ñ\83ппаоÑ\81Ñ\81Ñ\8bлÑ\8b, Ñ\81ооÑ\81Ñ\8bн Ð³ÐµÑ\80Ó\9fаÑ\81Ñ\8cкем Ð»Ñ\8dзÑ\91н Ð¿Ñ\80авооÑ\81Ñ\81Ñ\8b ÓµÐ¾Ñ\88ен.\nÐ\9dимаз Ð¿Ñ\80авооÑ\81Ñ\81Ñ\8b Ñ\81Ñ\8fÑ\80Ñ\8bÑ\81Ñ\8c, Ð¾Ð»Ð¾, [[{{MediaWiki:Listgrouprights-helppage}}|Ñ\8dÑ\88Ñ\88о Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\8f]] Ð²Ð°Ð½ь.",
+       "listgrouprights-members": "(викиавторъёсызлэн списоксы)",
        "emailuser": "Викиавторлы гожтэт",
        "emailmessage": "Ивортон:",
        "watchlist": "Чаклан список",
        "revertpage-nouser": "Откат шонертон (пыриськисьёс ватэм нимъёссы) доры версия {{GENDER:$1|[[User:$1|$1]]}}",
        "protectlogpage": "Утёнъёсын журнал",
        "restriction-edit": "Тупатон",
-       "undeletehistory": "Ð\92Ñ\8bлÑ\8cÑ\8bÑ\81Ñ\8c ÐºÐµ Ñ\82он Ð±Ð°Ð¼Ñ\8aÑ\91Ñ\81Ñ\82Ñ\8d, Ð²Ñ\8bлÑ\8cÑ\8bÑ\81Ñ\8c Ð¸Ñ\81Ñ\82оÑ\80иÑ\8fз Ð»Ñ\83Ñ\8dм Ð²Ð¾Ñ\88Ñ\82Ó¥Ñ\81Ñ\8cконÑ\8aÑ\91Ñ\81 Ð²Ð°Ð½Ñ\8c.\nÐ\91Ó§Ñ\80Ñ\8bÑ\81Ñ\8c ÐºÑ\8bлдӥзÑ\8b Ð²Ñ\8bлÑ\8c Ð±Ð°Ð¼Ñ\8aÑ\91Ñ\81 Ð¿Ð°Ð»Ñ\8dнÑ\8d ÐºÐ¾Ñ\88коно Ð»Ñ\83Ñ\8d ÐºÐµ, Ñ\81Ñ\8bӵе Ð¸Ðº Ð½Ð¸Ð¼Ñ\8bз, Ð¸Ñ\81Ñ\82оÑ\80иÑ\8fз Ð²Ð¾Ñ\88Ñ\8aÑ\8fÑ\81Ñ\8cконÑ\8aÑ\91Ñ\81 Ð¿Ñ\80едÑ\88еÑ\81Ñ\82вÑ\83Ñ\8eÑ\89ий Ð²Ñ\8bлÑ\8cÑ\8bÑ\81Ñ\8c ÐºÑ\8bлдозÑ\8b.",
-       "undeletehistorynoadmin": "СÑ\82аÑ\82Ñ\8cÑ\8fоÑ\81 Ð¿Ð°Ð»Ñ\8dнÑ\82Ñ\8dмÑ\8bн Ð²Ð°Ð». Ð\9cÑ\83гез Ð½Ð¾ Ð¿Ð°Ð»Ñ\8dнÑ\8d Ñ\81пиÑ\81ок Ð¿Ñ\8bÑ\80идÑ\8b, Ñ\81о Ñ\81Ñ\82аÑ\82Ñ\8cÑ\8fе Ñ\80едакÑ\82иÑ\80оваÑ\82Ñ\8c-озÑ\8c Ð¿Ð°Ð»Ñ\8dнÑ\8dгеÑ\81, Ð·Ó§Ðº Ð²Ð¾Ð·Ñ\8cмаÑ\82Ñ\8d. Ð¢ÐµÐºÑ\81Ñ\82 Ñ\81Ñ\82аÑ\82Ñ\8cÑ\8fез Ñ\83даленнÑ\8bй Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\8aÑ\91Ñ\81 Ð³Ð¸Ð½Ñ\8d Ñ\83Ñ\87кÑ\8bнÑ\8b Ð±Ñ\8bгаÑ\82од.",
+       "undeletehistory": "Ð\91амез Ð±ÐµÑ\80ен Ñ\81Ñ\91Ñ\82одÑ\8b ÐºÐµ, Ñ\81ое Ð²Ð¾Ñ\88Ñ\82онÑ\8aÑ\91Ñ\81лÑ\8dн Ð¸Ñ\81Ñ\82оÑ\80изÑ\8b Ð±ÐµÑ\80Ñ\8bÑ\82Ñ\81коз Ð½Ð¾.\nÐ\91Ñ\8bдÑ\82он Ð±ÐµÑ\80е Ñ\82аӵе Ð¸Ðº Ð½Ð¸Ð¼ÐµÐ½ Ð²Ñ\8bлÑ\8c Ð±Ð°Ð¼ ÐºÑ\8bлдÑ\8bÑ\82Ñ\8dмÑ\8bн Ð²Ð°Ð» ÐºÐµ, Ð±ÐµÑ\80ен Ñ\81Ñ\91Ñ\82Ñ\8dм Ð²ÐµÑ\80Ñ\81иоÑ\81 Ð°Ð´Ó\9fиÑ\81Ñ\8cкозÑ\8b Ð²Ð¾Ñ\88Ñ\82онÑ\8aÑ\91Ñ\81лÑ\8dн Ð¸Ñ\81Ñ\82оÑ\80иÑ\8fзÑ\8b Ð²Ñ\8bлÑ\8c Ð²ÐµÑ\80Ñ\81иоÑ\81лÑ\8dÑ\81Ñ\8c Ð°Ð·Ñ\8cло.",
+       "undeletehistorynoadmin": "Та Ð±Ð°Ð¼ Ð±Ñ\8bдÑ\82Ñ\8dмÑ\8bн Ð²Ð°Ð».\nÐ\91Ñ\8bдÑ\82онлÑ\8dн Ð¼Ñ\83гез Ð½Ð¾ Ñ\81пиÑ\81ок Ð²Ð¸ÐºÐ¸Ð°Ð²Ñ\82оÑ\80Ñ\8aÑ\91Ñ\81лÑ\8b, ÐºÐ¸Ð½Ñ\8aÑ\91Ñ\81 Ñ\82а Ð±Ð°Ð¼ÐµÐ· Ñ\82Ñ\83паÑ\82Ñ\8aÑ\8fзÑ\8b Ñ\81ое Ð±Ñ\8bдÑ\82он Ð´Ñ\8bÑ\80озÑ\8c, Ñ\83лӥ Ð²Ð¾Ð·Ñ\8cмаÑ\82Ñ\8dмÑ\8bн.\nÐ\91Ñ\8bдÑ\82Ñ\8dм Ð±Ð°Ð¼Ð»Ñ\8dÑ\81Ñ\8c Ñ\82екÑ\81Ñ\82Ñ\81Ñ\8d Ñ\83Ñ\87кÑ\8bнÑ\8b Ð±Ñ\8bгаÑ\82о Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\8aÑ\91Ñ\81 Ð³Ð¸Ð½Ñ\8d.",
        "invert": "Ватыны быръемез",
        "blanknamespace": "(Валтӥсез)",
        "contributions": "{{GENDER:$1|Викиавтор}} гожтэмъёсы",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|вераськон]])",
        "version": "Версия",
        "specialpages": "Ваньмыз панельёс",
-       "specialpages-group-login": "ТÑ\83Ñ\81бÑ\83Ñ\8fÑ\81Ñ\8cкÑ\8bнÑ\8b / Ð\93ожÑ\82Ó¥Ñ\81Ñ\8cконо",
-       "specialpages-group-users": "Ð\9fÑ\8bÑ\80иÑ\81Ñ\8cкиÑ\81Ñ\8cÑ\91Ñ\81лÑ\8dÑ\81Ñ\8c Ð¿Ñ\80авооÑ\81Ñ\81Ñ\8dÑ\81 Ð½Ð¾",
+       "specialpages-group-login": "СиÑ\81Ñ\82емае Ð¿Ñ\8bÑ\80он / Ñ\80егиÑ\81Ñ\82Ñ\80аÑ\86иÑ\8f",
+       "specialpages-group-users": "Ð\92икиавÑ\82оÑ\80Ñ\8aÑ\91Ñ\81 Ð½Ð¾ Ð¿Ñ\80авооÑ\81Ñ\81Ñ\8b",
        "tag-filter": "[[Special:Tags|Тэгъёсыз]] фильтр:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|1=Метка|Меткаос}}]]: $2)",
        "tags-title": "Меткаос",
index e402601..e4db290 100644 (file)
        "searcharticle": "Перейти",
        "history": "Історія сторінки",
        "history_short": "Історія",
+       "history_small": "історія",
        "updatedmarker": "оновлено після мого останнього перегляду",
        "printableversion": "Версія до друку",
        "permalink": "Постійне посилання",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (див. також [[Special:NewPages|список нових сторінок]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "recentchanges-submit": "Показати",
+       "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": "Редагування, виконані іншими користувачами (не Вами)",
+       "rcfilters-filtergroup-userExpLevel": "Рівень досвіду користувачів",
+       "rcfilters-filter-userExpLevel-newcomer-label": "Новачки",
+       "rcfilters-filter-userExpLevel-newcomer-description": "Дуже нові редактори: менш ніж 10 редагувань і 4 дні активності.",
+       "rcfilters-filter-userExpLevel-learner-label": "Учні",
+       "rcfilters-filter-userExpLevel-learner-description": "Більше днів активності та більше редагувань, ніж у «новачків», але менше, ніж у «досвідчених користувачів».",
+       "rcfilters-filter-userExpLevel-experienced-label": "Досвідчені користувачі",
+       "rcfilters-filter-userExpLevel-experienced-description": "Більше 30 днів активності і понад 500 редагувань.",
        "rcnotefrom": "Нижче знаходяться {{PLURAL:$5|редагування}} з <strong>$3, $4</strong> (відображено до <strong>$1</strong>).",
        "rclistfrom": "Показати редагування починаючи з $3 $2.",
        "rcshowhideminor": "$1 незначні редагування",
        "uncategorizedcategories": "Некатегоризовані категорії",
        "uncategorizedimages": "Некатегоризовані зображення",
        "uncategorizedtemplates": "Некатегоризовані шаблони",
+       "uncategorized-categories-exceptionlist": " # Містить список категорій, які не мають згадуватись на сторінці Special:UncategorizedCategories. Одна категорія на рядок, починається з «*». Рядки, що починаються з іншого символу (включно з пробілом) ігноруються. Використовуйте «#» для коментарів.",
        "unusedcategories": "Категорії, що не використовуються",
        "unusedimages": "Файли, що не використовуються",
        "wantedcategories": "Необхідні категорії",
        "apisandbox-sending-request": "Надсилання запиту API…",
        "apisandbox-loading-results": "Отримання результатів API…",
        "apisandbox-results-error": "Сталася помилка при завантаженні відповіді на запит API: $1.",
+       "apisandbox-request-params-json": "Параметри JSON:",
        "apisandbox-request-url-label": "URL-адреса запиту:",
        "apisandbox-request-time": "Час запиту: {{PLURAL:$1|$1 мс}}",
        "apisandbox-results-fixtoken": "Виправте токен і надішліть ще раз",
        "changecontentmodel-emptymodels-title": "Немає доступних моделей коментарів",
        "changecontentmodel-emptymodels-text": "Вміст сторінки [[:$1]] не може бути перетворений до будь якого типу.",
        "log-name-contentmodel": "Журнал змін моделі вмісту",
-       "log-description-contentmodel": "Ð\9fодÑ\96Ñ\97, Ð¿Ð¾Ð²'Ñ\8fзанÑ\96 Ð· Ð¼Ð¾Ð´ÐµÐ»Ñ\8fми Ð²Ð¼Ñ\96Ñ\81Ñ\82Ñ\83 Ñ\81Ñ\82оÑ\80Ñ\96нки",
+       "log-description-contentmodel": "Ð\9dа Ñ\86Ñ\96й Ñ\81Ñ\82оÑ\80Ñ\96нÑ\86Ñ\96 Ð¿ÐµÑ\80елÑ\96Ñ\87енÑ\96 Ð·Ð¼Ñ\96ни Ð´Ð¾ ÐºÐ¾Ð½Ñ\82енÑ\82ниÑ\85 Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹ Ñ\81Ñ\82оÑ\80Ñ\96нок, Ð° Ñ\82акож Ñ\81Ñ\82оÑ\80Ñ\96нки, Ñ\81Ñ\82воÑ\80енÑ\96 Ð· Ð½ÐµÑ\81Ñ\82андаÑ\80Ñ\82ноÑ\8e ÐºÐ¾Ð½Ñ\82енÑ\82ноÑ\8e Ð¼Ð¾Ð´ÐµÐ»Ð»Ñ\8e.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|створив|створила}} сторінку $3, використовуючи нестандартну модель вмісту «$5»",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|змінив|змінила}} модель вмісту сторінки $3 з «$4» на «$5»",
        "logentry-contentmodel-change-revertlink": "відкинути",
        "sorbs": "DNSBL",
        "sorbsreason": "Ваша IP-адреса числиться як відкритий проксі в DNSBL.",
        "sorbs_create_account_reason": "Ваша IP-адреса числиться як відкритий проксі в DNSBL. Ви не можете створити обліковий запис.",
+       "softblockrangesreason": "Анонімний внесок заборонений з Вашої IP-адреси ($1). Будь ласка, увійдіть у систему.",
        "xffblockreason": "IP-адреса в X-Forwarded-For полі заголовка, або ваша, або проксі сервера, що використовується вами, заблокована. Початкова причина блокування була:$1",
        "cant-see-hidden-user": "Користувача, якого ви хочете заблокувати, вже заблоковано та приховано. Оскільки у вас немає прав щодо приховання користувачів, ви не можете переглянути або змінити дане блокування.",
        "ipbblocked": "Ви не можете блокувати чи розблоковувати інших користувачів, оскільки самі заблоковані",
        "pagelang-language": "Мова",
        "pagelang-use-default": "Мова за замовчуванням",
        "pagelang-select-lang": "Оберіть мову",
+       "pagelang-reason": "Причина",
        "pagelang-submit": "Відправити",
+       "pagelang-nonexistent-page": "Сторінка $1 не існує.",
+       "pagelang-unchanged-language": "Мова сторінки $1 вже визначена як «$2».",
+       "pagelang-unchanged-language-default": "Мова сторінки $1 вже визначена як стандартна мова вмісту.",
+       "pagelang-db-failed": "База даних не змогла змінити мову сторінки.",
        "right-pagelang": "зміна мови сторінки",
        "action-pagelang": "змінити мову сторінки",
        "log-name-pagelang": "Журнал змін мови",
        "sessionprovider-nocookies": "Куки можуть бути відключені. Переконайтеся, що у Вас включені cookies і почніть знову.",
        "randomrootpage": "Випадкова коренева сторінка",
        "log-action-filter-block": "Тип блокування:",
-       "log-action-filter-contentmodel": "Тип Ð¼Ð¾Ð´Ð¸Ñ\84Ñ\96каÑ\86Ñ\96Ñ\97 contentmodel:",
+       "log-action-filter-contentmodel": "Тип Ð·Ð¼Ñ\96ни ÐºÐ¾Ð½Ñ\82енÑ\82ноÑ\97 Ð¼Ð¾Ð´ÐµÐ»Ñ\96:",
        "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": "Зміна Contentmodel",
-       "log-action-filter-contentmodel-new": "СÑ\82воÑ\80еннÑ\8f Ñ\81Ñ\82оÑ\80Ñ\96нки Ð· Ð½ÐµÑ\81Ñ\82андаÑ\80Ñ\82ноÑ\8e Ð¼Ð¾Ð´ÐµÐ»Ð»Ñ\8e Contentmodel",
+       "log-action-filter-contentmodel-change": "Зміна контентної моделі",
+       "log-action-filter-contentmodel-new": "СÑ\82воÑ\80еннÑ\8f Ñ\81Ñ\82оÑ\80Ñ\96нки Ð· Ð½ÐµÑ\81Ñ\82андаÑ\80Ñ\82ноÑ\8e ÐºÐ¾Ð½Ñ\82енÑ\82ноÑ\8e Ð¼Ð¾Ð´ÐµÐ»Ð»Ñ\8e",
        "log-action-filter-delete-delete": "Видалення сторінки",
        "log-action-filter-delete-delete_redir": "Перезапис перенаправлення",
        "log-action-filter-delete-restore": "Відновлення сторінки",
index 6dfad4c..874dd17 100644 (file)
        "ipaddressorusername": "IP地址或用户名:",
        "ipbexpiry": "终止时间:",
        "ipbreason": "原因:",
-       "ipbreason-dropdown": "*常见封禁原因\n** 插入虚假信息\n** 除页面内容\n** 添加垃圾外部链接\n** 插入无意义文字\n** 恐吓行为/骚扰\n** 滥用多个账户\n** 不能接受的用户名",
+       "ipbreason-dropdown": "*常见封禁原因\n** 插入虚假信息\n** 除页面内容\n** 添加垃圾外部链接\n** 插入无意义文字\n** 恐吓行为/骚扰\n** 滥用多个账户\n** 不能接受的用户名",
        "ipb-hardblock": "阻止登录用户使用该IP地址编辑",
        "ipbcreateaccount": "阻止创建新账号",
        "ipbemailban": "阻止用户发送电子邮件",
index 7f7a3bb..02440f5 100644 (file)
@@ -78,7 +78,8 @@
                        "Wehwei",
                        "1233thehongkonger",
                        "Maskers",
-                       "Knch903"
+                       "Knch903",
+                       "Winstonyin"
                ]
        },
        "tog-underline": "底線標示連結:",
        "blockedtitle": "使用者已被封鎖",
        "blockedtext": "<strong>您的使用者名稱或 IP 位址以被封鎖。</strong>\n\n您被 $1 封鎖,\n原因爲 <em>$2</em>。\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵件地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細訊息。",
        "autoblockedtext": "因先前的另一位使用者被 $1 封鎖,您的 IP 位址已被自動封鎖。\n原因是:\n\n:<em>$2</em>\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯絡 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵件地址,且尚未被封鎖郵件功能,則您可透過 \"Email 聯絡此使用者\" 的功能來聯絡相關管理員。\n您目前的 IP 位址是 $3,此次封鎖的 ID 為 #$5。\n請您在詢問時附註以上詳細資料。",
+       "systemblockedtext": "您的使用者名稱或IP位址已被MediaWiki自動封禁。原因如下:\n\n:<em>$2</em>\n\n* 開始時間:$8\n* 結束時間:$6\n* 被封禁使用者:$7\n\n您目前的IP位址是$3。請在作出任何查詢時包含上述所有詳情。",
        "blockednoreason": "未說明原因",
        "whitelistedittext": "請先 $1 才可編輯頁面。",
        "confirmedittext": "在編輯此頁之前您必須確認您的電子郵件地址。\n請透過 [[Special:Preferences|偏好設定]] 設定並驗證您的電子郵件地址。",
        "userrights-user-editname": "請輸入使用者名稱:",
        "editusergroup": "加載用戶組",
        "editinguser": "變更{{GENDER:$1|使用者}} <strong>[[User:$1|$1]]</strong> 的使用者權限 $2",
+       "viewinguserrights": "檢視{{GENDER:$1|使用者}}<strong>[[User:$1|$1]]</strong>的使用者權限 $2",
        "userrights-editusergroup": "編輯使用者群組",
        "userrights-viewusergroup": "檢視使用者群組",
        "saveusergroups": "儲存{{GENDER:$1|使用者}}群組",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (請參考[[Special:NewPages|新頁面]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "recentchanges-submit": "顯示",
+       "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": "由其他使用者而非您所作的編輯。",
+       "rcfilters-filtergroup-userExpLevel": "使用者體驗水平",
+       "rcfilters-filter-userExpLevel-newcomer-label": "新手",
+       "rcfilters-filter-userExpLevel-newcomer-description": "非常新的編輯者:編輯數少於10次,活躍時間少於4天。",
+       "rcfilters-filter-userExpLevel-learner-label": "初學者",
+       "rcfilters-filter-userExpLevel-learner-description": "編輯數及活躍天數比「新手」多,但比「熟手」少。",
+       "rcfilters-filter-userExpLevel-experienced-label": "熟手",
+       "rcfilters-filter-userExpLevel-experienced-description": "活躍時間超過30天,編輯超過500次。",
        "rcnotefrom": "以下{{PLURAL:$5|為}}自 <strong>$3 $4</strong> 以來的變更 (最多顯示 <strong>$1</strong> 筆)。",
        "rclistfrom": "顯示自 $3 $2 以來的新變更",
        "rcshowhideminor": "$1 小修訂",
        "apisandbox-sending-request": "傳送 API 請求中...",
        "apisandbox-loading-results": "接收 API 結果中...",
        "apisandbox-results-error": "讀取 API 查詢回應時發生錯誤:$1。",
+       "apisandbox-request-params-json": "JSON參數:",
        "apisandbox-request-url-label": "請求 URL:",
        "apisandbox-request-time": "請求時間:{{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "更正密鑰並重新送出",
        "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-namespaces": "$1(所有名字空間)",
        "apisandbox-multivalue-all-values": "$1(所有值)",
        "booksources": "圖書資源",
        "booksources-search-legend": "尋找圖書資源",
        "emailccsubject": "您寄給 $1 的訊息副本:$2",
        "emailsent": "已寄出電子郵件",
        "emailsenttext": "已寄出您的電子郵件訊息。",
-       "emailuserfooter": "這封電子郵件是由 $1 透過 {{SITENAME}} 的 \"{{int:emailuser}}\" 功能{{GENDER:$1|寄給}} {{GENDER:$1|$2}}。",
+       "emailuserfooter": "這封電子郵件是由$1透過{{SITENAME}}的「{{int:emailuser}}」功能{{GENDER:$1|寄給}}{{GENDER:$1|$2}}的。{{GENDER:$2|您的}}郵件將直接寄往{{GENDER:$1|原發件人}},{{GENDER:$1|他|她|他}}將能夠看到您的電子郵件地址。",
        "usermessage-summary": "留訊息至系統。",
        "usermessage-editor": "系統訊息",
        "watchlist": "監視清單",
        "changecontentmodel-emptymodels-title": "沒有內容模型可用",
        "changecontentmodel-emptymodels-text": "[[:$1]]上的內容不能轉換為任何類型。",
        "log-name-contentmodel": "內容模型變更日誌",
-       "log-description-contentmodel": "與頁面內容模型相關的事件",
+       "log-description-contentmodel": "此頁列舉頁面內容模型的變更記錄以及使用非預設的內容模型所創建的頁面。",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|已使用}}非預設的內容模型 \"$5\" 建立頁面 $3",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|已變更}}頁面 $3 的內容模型自 \"$4\" 至 \"$5\"",
        "logentry-contentmodel-change-revertlink": "還原",
        "proxyblockreason": "因您的 IP 位址是開放代理伺服器,已被封鎖。\n請聯絡您的網路服務供應商或您所在組織的技術支援,告知他們此嚴重的安全性問題。",
        "sorbsreason": "您的 IP 位址在 {{SITENAME}} 使用的 DNSBL 列為開放代理伺服器。",
        "sorbs_create_account_reason": "您的 IP 位址在 {{SITENAME}} 使用的 DNSBL 列為開放代理伺服器。\n您不能建立帳號。",
+       "softblockrangesreason": "您的IP位址($1)不允許匿名貢獻,請登入。",
        "xffblockreason": "您的 IP 位址使用 X-Forwarded-For 標頭,您或您使用的代理伺服器已被封鎖。\n封鎖的原因為:$1",
        "cant-see-hidden-user": "您欲封鎖的使用者已經被封鎖並且隱藏。\n您沒有隱藏使用者的權限,您無法檢視或編輯該使用者的封鎖狀態。",
        "ipbblocked": "因您已被封鎖,故無法封鎖或解除封鎖其他使用者。",
        "cant-move-to-user-page": "您沒有權限移動頁面至使用者頁面 (除使用者子頁面外)。",
        "cant-move-category-page": "您沒有權限移動分類頁面。",
        "cant-move-to-category-page": "您沒有權限移動頁面至分類頁面。",
+       "cant-move-subpages": "您沒有權限移動子頁面。",
+       "namespace-nosubpages": "名字空間「$1」不允許有子頁面。",
        "newtitle": "新標題:",
        "move-watch": "監視來源以及目標頁面",
        "movepagebtn": "移動頁面",
        "pageinfo-length": "頁面長度 (位元組)",
        "pageinfo-article-id": "頁面 ID",
        "pageinfo-language": "頁面內容語言",
+       "pageinfo-language-change": "變更",
        "pageinfo-content-model": "頁面內容模型",
        "pageinfo-content-model-change": "變更",
        "pageinfo-robot-policy": "由機器人建立索引",
        "htmlform-user-not-exists": "<strong>$1</strong> 並不存在。",
        "htmlform-user-not-valid": "<strong>$1</strong> 不是有效的使用者名稱。",
        "logentry-delete-delete": "$1 刪除頁面 $3",
+       "logentry-delete-delete_redir": "$1通過覆蓋,{{GENDER:$2|刪除了}}重定向$3。",
        "logentry-delete-restore": "$1 還原頁面 $3",
        "logentry-delete-event": "$1 {{GENDER:$2|已更改}} $3 中 {{PLURAL:$5|1 筆日誌|$5 筆日誌}}的可見性:$4",
        "logentry-delete-revision": "$1 {{GENDER:$2|已更改}}頁面 $3 中 {{PLURAL:$5|1 筆修訂|$5 筆修訂}}的可見性:$4",
        "api-error-blocked": "您已被封鎖,無法編輯。",
        "api-error-copyuploaddisabled": "此伺服器已停用使用 URL 上傳檔案的功能。",
        "api-error-duplicate": "在網站上已有相同內容的{{PLURAL:$1|其他檔案|其他檔案}}。",
-       "api-error-duplicate-archive": "在網站上曾有相同內容的{{PLURAL:$1|其他檔案|其他檔案}},但已被刪除。",
+       "api-error-duplicate-archive": "在網站上曾有相同內容的{{PLURAL:$1|其他檔案|其他檔案}},但{{PLURAL:$1|已被}}刪除。",
        "api-error-empty-file": "您送出的檔案是空的。",
        "api-error-emptypage": "不允許建立空白的頁面。",
        "api-error-fetchfileerror": "內部錯誤:取得檔案時發生錯誤。",
        "pagelang-language": "語言",
        "pagelang-use-default": "使用預設語言",
        "pagelang-select-lang": "選擇語言",
+       "pagelang-reason": "原因",
        "pagelang-submit": "送出",
+       "pagelang-nonexistent-page": "頁面$1不存在。",
+       "pagelang-unchanged-language": "頁面$1的語言已經設為$2。",
+       "pagelang-unchanged-language-default": "頁面$1的語言已經設為wiki的預設內容語言。",
+       "pagelang-db-failed": "資料庫更改頁面語言失敗。",
        "right-pagelang": "變更頁面語言",
        "action-pagelang": "變更頁面語言",
        "log-name-pagelang": "語言變更日誌",
        "special-characters-title-emdash": "長破折號",
        "special-characters-title-minus": "減號",
        "mw-widgets-dateinput-no-date": "未選擇日期",
+       "mw-widgets-mediasearch-input-placeholder": "搜尋媒體",
+       "mw-widgets-mediasearch-noresults": "查無結果。",
        "mw-widgets-titleinput-description-new-page": "頁面不存在",
        "mw-widgets-titleinput-description-redirect": "重新導向至 $1",
+       "mw-widgets-categoryselector-add-category-placeholder": "加入分類...",
        "sessionmanager-tie": "無法合併多個請求認証類型:$1。",
        "sessionprovider-generic": "$1 連線階段",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "以 cookie 為基礎的連線階段",
        "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": "頁面取消刪除",
        "log-action-filter-delete-event": "日誌刪除",
        "log-action-filter-delete-revision": "修訂刪除",
        "usercssispublic": "請注意:CSS 子頁面可被其他使用者檢視,不應包含憑証資料。",
        "restrictionsfield-badip": "無效的 IP 位址或範圍:$1",
        "restrictionsfield-label": "允許的 IP 範圍:",
-       "restrictionsfield-help": "一個 IP 位址或 CIDR 範圍一行,要開啟所有範圍可使用 <br><code>0.0.0.0/0</code><br><code>::/0</code>"
+       "restrictionsfield-help": "一個 IP 位址或 CIDR 範圍一行,要開啟所有範圍可使用 <br><code>0.0.0.0/0</code><br><code>::/0</code>",
+       "revid": "版本$1",
+       "pageid": "頁面ID $1"
 }
index c675f09..9ad5951 100644 (file)
@@ -73,4 +73,3 @@ $magicWords = [
        'special'                   => [ '0', 'цастәи', 'служебная', 'special' ],
        'index'                     => [ '1', '__АИНДЕКС__', '__ИНДЕКС__', '__INDEX__' ],
 ];
-
index ad14f4d..d20ad9b 100644 (file)
@@ -153,4 +153,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Hubong_gisa' ],
        'Withoutinterwiki'          => [ 'Hana_interwiki' ],
 ];
-
index d6dab21..d82cde7 100644 (file)
@@ -196,4 +196,3 @@ $specialPageAliases = [
 # glibc is wrong in this respect in some versions
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
 $linkTrail = "/^([a-z]+)(.*)$/sD";
-
index b45bdbf..abbffa4 100644 (file)
@@ -26,4 +26,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Nkyekyem',
        NS_CATEGORY_TALK    => 'Nkyekyem_nkɔmmɔbea',
 ];
-
index 80d31bc..f5abe87 100644 (file)
@@ -59,4 +59,3 @@ $magicWords = [
        'servername'                => [ '0', 'EMNISERVERIT', 'EMRIISERVERIT', 'SERVERNAME' ],
        'currentweek'               => [ '1', 'JAVAAKTUALE', 'JAVAMOMENTALE', 'CURRENTWEEK' ],
 ];
-
index a991c63..99f6d3a 100644 (file)
@@ -37,4 +37,3 @@ $specialPageAliases = [
        'Newpages'                  => [ 'አዳዲስ_ገጾች' ],
        'Shortpages'                => [ 'አጫጭር_ገጾች' ],
 ];
-
index 038566b..b66fe0e 100644 (file)
@@ -119,4 +119,3 @@ $specialPageAliases = [
        'Wantedtemplates'           => [ 'Plantillas_requiestas', 'Plantillas_demandatas' ],
        'Watchlist'                 => [ 'Lista_de_seguimiento' ],
 ];
-
index d6432de..9e113b4 100644 (file)
@@ -39,4 +39,3 @@ $namespaceAliases = [
        'Floccgesprec'  => NS_CATEGORY_TALK,
        'Floccmotung'   => NS_CATEGORY_TALK,
 ];
-
index a83b717..795d706 100644 (file)
@@ -433,4 +433,3 @@ $imageFiles = [
        'button-headline' => 'ar/button_headline.png',
        'button-nowiki'   => 'ar/button_nowiki.png',
 ];
-
index 0c1b668..e0ab2da 100644 (file)
@@ -125,4 +125,3 @@ $magicWords = [
        'url_path'                  => [ '0', 'ܫܒܝܠܐ', 'PATH' ],
        'url_wiki'                  => [ '0', 'ܘܝܩܝ', 'WIKI' ],
 ];
-
index 311f2e2..2cfb464 100644 (file)
@@ -16,4 +16,3 @@ $separatorTransformTable = [
 ];
 
 $fallback = 'ar';
-
index 2e69353..d99a721 100644 (file)
@@ -332,4 +332,3 @@ $digitTransformTable = [
        '.' => '.',
        ',' => ',',
 ];
-
index bf757ee..2516fc7 100644 (file)
@@ -165,4 +165,3 @@ $digitTransformTable = [
 ];
 
 $digitGroupingPattern = "##,##,###";
-
index 99cc28b..95bbf5a 100644 (file)
@@ -60,4 +60,3 @@ $specialPageAliases = [
        'Search'                    => [ 'Gueta' ],
        'Statistics'                => [ 'Estadístiques' ],
 ];
-
index fab56b1..b335f66 100644 (file)
@@ -89,4 +89,3 @@ $specialPageAliases = [
        'Wantedpages'               => [ 'ErunBueem', 'EmpayanGluyasikieem' ],
        'Watchlist'                 => [ 'Suzdasiki' ],
 ];
-
index 66c7b9f..45afe2a 100644 (file)
@@ -59,4 +59,3 @@ $magicWords = [
 ];
 
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
-
index 92ca0f8..1ae3939 100644 (file)
@@ -83,4 +83,3 @@ $magicWords = [
        'img_none'                  => [ '1', 'هئچ', 'هیچ', 'none' ],
        'img_framed'                => [ '1', 'قابیق', 'قاب', 'frame', 'framed', 'enframed' ],
 ];
-
index b00da10..e118036 100644 (file)
@@ -129,4 +129,3 @@ $specialPageAliases = [
 $namespaceGenderAliases = [];
 
 $linkTrail = '/^((?:[a-z]|а|б|в|г|д|е|ё|ж|з|и|й|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я|ә|ө|ү|ғ|ҡ|ң|ҙ|ҫ|һ|“|»)+)(.*)$/sDu';
-
index f484027..8b8041f 100644 (file)
@@ -47,4 +47,3 @@ $namespaceAliases = [
 
 // Remove German aliases
 $namespaceGenderAliases = [];
-
index 84f273b..14b89bf 100644 (file)
@@ -131,4 +131,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'ای لینکی ادان هست' ],
        'Withoutinterwiki'          => [ 'بی بین ویکی' ],
 ];
-
index 0b0d42e..44e1f25 100644 (file)
@@ -87,4 +87,3 @@ $magicWords = [
        'pagesincategory'           => [ '1', 'PAHINASAKATEGORYA', 'PAHINASAKAT', 'PAGESINCATEGORY', 'PAGESINCAT' ],
        'pagesize'                  => [ '1', 'PAHINASOKOL', 'PAGESIZE' ],
 ];
-
index 9822436..9fe2e0c 100644 (file)
@@ -70,4 +70,3 @@ $separatorTransformTable = [
 ];
 
 $linkTrail = '/^([абвгґджзеёжзійклмнопрстуўфхцчшыьэюяćčłńśšŭźža-z]+)(.*)$/sDu';
-
index 25449f8..b184d94 100644 (file)
@@ -244,4 +244,3 @@ $imageFiles = [
        'button-italic'   => 'be-tarask/button_italic.png',
        'button-link'     => 'be-tarask/button_link.png',
 ];
-
index 74b7fe0..3a21e75 100644 (file)
@@ -218,4 +218,3 @@ $bookstoreList = [
 $linkTrail = '/^([a-zабвгдежзийклмнопрстуфхцчшщъыьэюя]+)(.*)$/sDu';
 
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
-
index 9b70dbf..f1505af 100644 (file)
@@ -135,4 +135,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Tautan_balik' ],
        'Withoutinterwiki'          => [ 'Kada_pakai_interwiki' ],
 ];
-
index f5afe2a..654171e 100644 (file)
@@ -12,4 +12,3 @@ $fallback = 'fr';
 
 // Remove French aliases
 $namespaceGenderAliases = [];
-
index dbf3443..043f4d1 100644 (file)
@@ -20,4 +20,3 @@ $digitTransformTable = [
        '8' => '༨', # &#x0f28;
        '9' => '༩', # &#x0f29;
 ];
-
index d8aee4f..decfbdd 100644 (file)
@@ -41,4 +41,3 @@ $digitTransformTable = [
        '8' => '৮',
        '9' => '৯'
 ];
-
index 69a5d2f..29d423c 100644 (file)
@@ -162,4 +162,3 @@ $dateFormats = [
 
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
 $linkTrail = "/^((?:c\'h|C\'H|C\'h|c’h|C’H|C’h|[a-zA-ZàâçéèêîôûäëïöüùñÇÉÂÊÎÔÛÄËÏÖÜÀÈÙÑ])+)(.*)$/sDu";
-
index 6211da2..23122cd 100644 (file)
@@ -261,4 +261,3 @@ $magicWords = [
 $fallback8bitEncoding = "iso-8859-2";
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
 $linkTrail = '/^([a-zćčžšđž]+)(.*)$/sDu';
-
index 93142b7..79381c1 100644 (file)
@@ -67,4 +67,3 @@ $specialPageAliases = [
        'Userlogin'                 => [ 'Нэбтэрхэ' ],
        'Userlogout'                => [ 'Гараха' ],
 ];
-
index 0d932a8..dd5a3af 100644 (file)
@@ -165,4 +165,3 @@ $bookstoreList = [
 ];
 
 $linkTrail = "/^((?:[a-zàèéíòóúç·ïü]|'(?!'))+)(.*)$/sDu";
-
index 6d875ae..d5e52e8 100644 (file)
@@ -138,4 +138,3 @@ $dateFormats = [
        'cdo date' => 'Y "nièng" n "nguŏk" j "hô̤" (l)',
        'cdo both' => 'Y "nièng" n "nguŏk" j "hô̤" (D) H:i',
 ];
-
index e2c038b..9ad3c52 100644 (file)
@@ -55,4 +55,3 @@ $specialPageAliases = [
        'Version'                   => [ 'Bersiyon' ],
        'Watchlist'                 => [ 'Gibantayan' ],
 ];
-
index 08f4e39..1bccad3 100644 (file)
@@ -22,4 +22,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Katigoria',
        NS_CATEGORY_TALK    => 'Kombetsasion_ni_katigoria',
 ];
-
index dab649d..ff68ad8 100644 (file)
@@ -99,4 +99,3 @@ $dateFormats = [
 $separatorTransformTable = [ ','  => '.', '.' => ',' ];
 $linkTrail = '/^([a-zâçğıñöşüа-яё“»]+)(.*)$/sDu';
 $linkPrefixCharset = 'a-zâçğıñöşüA-ZÂÇĞİÑÖŞÜa-яёА-ЯЁ«„';
-
index 738cb02..9a993ea 100644 (file)
@@ -94,4 +94,3 @@ $dateFormats = [
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
 $linkTrail = '/^([a-zâçğıñöşüа-яё“»]+)(.*)$/sDu';
 $linkPrefixCharset = 'a-zâçğıñöşüA-ZÂÇĞİÑÖŞÜa-яёА-ЯЁ«„';
-
index e778856..90f1128 100644 (file)
@@ -356,4 +356,3 @@ $bookstoreList = [
 $linkTrail = '/^([a-záčďéěíňóřšťúůýž]+)(.*)$/sDu';
 
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
-
index ee94546..27c786d 100644 (file)
@@ -28,4 +28,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Kategòrëjô',
        NS_CATEGORY_TALK    => 'Diskùsëjô_Kategòrëji',
 ];
-
index 8375270..c45f025 100644 (file)
@@ -92,4 +92,3 @@ $dateFormats = [
 
 $linkTrail = '/^([a-zабвгдеєжѕзїіıићклмнопсстѹфхѡѿцчшщъыьѣюѥѧѩѫѭѯѱѳѷѵґѓђёјйљњќуўџэ҄я“»]+)(.*)$/sDu';
 $linkPrefixCharset = '„«';
-
index 5b9c2b6..56b4d1d 100644 (file)
@@ -35,4 +35,3 @@ $namespaceGenderAliases = [];
 $linkPrefixExtension = true;
 $linkTrail = '/^([a-zа-яĕçăӳ"»]+)(.*)$/sDu';
 $linkPrefixCharset = 'a-zA-Z"\\x{80}-\\x{10ffff}';
-
index a569f16..096eb33 100644 (file)
@@ -103,4 +103,3 @@ $bookstoreList = [
 ];
 
 $linkTrail = "/^([àáâèéêìíîïòóôûŵŷa-z]+)(.*)$/sDu";
-
index c96a442..48450d3 100644 (file)
@@ -144,4 +144,3 @@ $bookstoreList = [
 
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
 $linkTrail = '/^([a-zæøå]+)(.*)$/sDu';
-
index 5fc359e..760f23c 100644 (file)
@@ -357,4 +357,3 @@ $imageFiles = [
        'button-bold'     => 'de/button_bold.png',
        'button-italic'   => 'de/button_italic.png',
 ];
-
index dacefa3..c0f53ed 100644 (file)
@@ -10,4 +10,3 @@
 
 $fallback = 'de';
 $separatorTransformTable = [ ',' => "'", '.' => ',' ];
-
index c81fd34..51067bf 100644 (file)
@@ -325,4 +325,3 @@ $magicWords = [
        'pagesincategory_subcats'   => [ '0', 'bınkatategori', 'subcats' ],
        'pagesincategory_files'     => [ '0', 'dosyey', 'files' ],
 ];
-
index 686ead0..4b5aeb0 100644 (file)
@@ -140,4 +140,3 @@ $dateFormats = [
        'dmy date' => 'j. xg Y',
        'dmy both' => 'j. xg Y, H:i',
 ];
-
index f3dfefb..67c59e3 100644 (file)
@@ -80,4 +80,3 @@ $specialPageAliases = [
        'Wantedtemplates'           => [ 'ބޭނުންވާ_ފަންވަތްތައް' ],
        'Watchlist'                 => [ 'މަގޭ_ނަޒަރު' ],
 ];
-
index 646012e..50ae191 100644 (file)
@@ -20,4 +20,3 @@ $digitTransformTable = [
        '8' => '༨', # &#x0f28;
        '9' => '༩', # &#x0f29;
 ];
-
index dd7cd68..7bf07ea 100644 (file)
@@ -332,4 +332,3 @@ $dateFormats = [
        'ISO 8601 date' => 'xnY-xnm-xnd',
        'ISO 8601 both' => 'xnY-xnm-xnd"T"xnH:xni:xns',
 ];
-
index c886457..61addfa 100644 (file)
@@ -14,4 +14,3 @@ $specialPageAliases = [
        'Uncategorizedpages'        => [ 'UncategorisedPages' ],
        'Uncategorizedtemplates'    => [ 'UncategorisedTemplates' ],
 ];
-
index 9c6b7be..0ce25e2 100644 (file)
@@ -284,4 +284,3 @@ $dateFormats = [
        'dmy date' => 'j M. Y',
        'dmy both' => 'H:i, j M. Y',
 ];
-
index 3b7c4bc..01bd00c 100644 (file)
@@ -300,4 +300,3 @@ $dateFormats = [
 
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
 $linkTrail = '/^([a-záéíóúñ]+)(.*)$/sDu';
-
index 8a53d9e..ec165ab 100644 (file)
@@ -289,4 +289,3 @@ $dateFormats = [
        'et roman date' => 'j. xrm Y',
        'et roman both' => 'j. xrm Y, "kell" H:i',
 ];
-
index 85d172c..bf65812 100644 (file)
@@ -106,4 +106,3 @@ $magicWords = [
 ];
 
 $separatorTransformTable = [ ',' => '.', '.' => ',' ]; /* Bug 15717 */
-
index eee9793..84dfabf 100644 (file)
@@ -417,4 +417,3 @@ $imageFiles = [
        'button-headline' => 'fa/button_headline.png',
        'button-nowiki'   => 'fa/button_nowiki.png',
 ];
-
index 71c4a75..ea09933 100644 (file)
@@ -12,4 +12,3 @@ $fallback = 'fr';
 
 // Remove French aliases
 $namespaceGenderAliases = [];
-
index 0d1abbd..b019fd6 100644 (file)
@@ -286,4 +286,3 @@ $bookstoreList = [
 ];
 
 $linkTrail = '/^([a-zäö]+)(.*)$/sDu';
-
index f7614ce..e0e7492 100644 (file)
@@ -99,4 +99,3 @@ $bookstoreList = [
 ];
 
 $linkTrail = '/^([áðíóúýæøa-z]+)(.*)$/sDu';
-
index 9bb02da..9e233de 100644 (file)
@@ -317,4 +317,3 @@ $dateFormats = [
 ];
 
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
-
index 106ba5e..88eafdf 100644 (file)
@@ -302,4 +302,3 @@ $dateFormats = [
 ];
 
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
-
index 7ad9d50..d76edbf 100644 (file)
@@ -11,4 +11,3 @@
 $fallback = 'de';
 
 $linkTrail = '/^([a-zäöüßåāđē]+)(.*)$/sDu';
-
index 8bb6c6c..9846686 100644 (file)
@@ -105,4 +105,3 @@ $dateFormats = [
 ];
 
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
-
index 4bf6a09..28f52b6 100644 (file)
@@ -129,4 +129,3 @@ $specialPageAliases = [
 
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
 $linkTrail = '/^([a-zàáèéìíòóùúâêîôûäëïöü]+)(.*)$/sDu';
-
index a508790..585e697 100644 (file)
@@ -77,4 +77,3 @@ $namespaceAliases = [
        'Plé_múnla' => NS_TEMPLATE_TALK,
        'Rang' => NS_CATEGORY
 ];
-
index 7a6d127..adf578f 100644 (file)
@@ -88,4 +88,3 @@ $specialPageAliases = [
 $magicWords = [
        'redirect'                  => [ '0', '#YÖNNENDİRMÄKLER', '#YÖNNENDİR', '#YÖNNENDİRMÄ', '#YÖNLENDİRME', '#YÖNLENDİR', '#REDIRECT' ],
 ];
-
index 6dd812d..86e2b27 100644 (file)
@@ -31,4 +31,3 @@ $namespaceNames = [
 $namespaceAliases = [
        '$1_談詑' => NS_PROJECT_TALK,
 ];
-
index 5fb511e..155ba2b 100644 (file)
@@ -20,4 +20,3 @@ $namespaceNames = [
        NS_HELP_TALK        => '帮助谈詑',
        NS_CATEGORY_TALK    => '分类谈詑',
 ];
-
index 1a136db..ae6944a 100644 (file)
@@ -45,4 +45,3 @@ $specialPageAliases = [
        'Unusedimages'              => [ '冇用嗰檔案' ],
        'Watchlist'                 => [ '監視列表' ],
 ];
-
index b147d5c..caa16d9 100644 (file)
@@ -26,4 +26,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Roinn-seòrsa',
        NS_CATEGORY_TALK    => 'Deasbaireachd_na_roinn-seòrsa',
 ];
-
index 8f1d4a7..a447df4 100644 (file)
@@ -274,4 +274,3 @@ $magicWords = [
 ];
 
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
-
index c5d7f46..6281208 100644 (file)
@@ -30,4 +30,3 @@ $namespaceNames = [
 
 // Remove Spanish gender aliases (bug 37090)
 $namespaceGenderAliases = [];
-
index d5817b6..a6fab27 100644 (file)
@@ -26,4 +26,3 @@ $specialPageAliases = [
        'Allpages'                  => [ '𐌰𐌻𐌻𐍃𐍃𐌴𐌹𐌳𐍉𐌽𐍃' ],
        'Recentchanges'             => [ '𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍉𐍃𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃' ],
 ];
-
index f1bb4f8..e2f0cc0 100644 (file)
@@ -21,4 +21,3 @@ $dateFormats = [
        'ymd date' => 'Y xg j',
        'ymd both' => 'H:i, Y xg j',
 ];
-
index 6d1b7b8..d47d9c0 100644 (file)
@@ -112,4 +112,3 @@ $magicWords = [
 ];
 
 $linkTrail = '/^([äöüßa-z]+)(.*)$/sDu';
-
index db29a56..aec3a76 100644 (file)
@@ -127,4 +127,3 @@ $digitTransformTable = [
 $digitGroupingPattern = "##,##,###";
 
 $linkTrail = "/^([\x{0A80}-\x{0AFF}]+)(.*)$/sDu";
-
index d3b6e44..e2fc110 100644 (file)
@@ -26,4 +26,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Ronney',
        NS_CATEGORY_TALK    => 'Resooney_ronney',
 ];
-
index 66a3e41..fab2a13 100644 (file)
@@ -117,4 +117,3 @@ $magicWords = [
        'pagesincategory_pages'     => [ '0', 'ʻaoʻao', 'aoao', 'pages' ],
        'pagesincategory_files'     => [ '0', 'waihona', 'files' ],
 ];
-
index 9e03942..46c4080 100644 (file)
@@ -345,4 +345,3 @@ $bookstoreList = [
        'Barnes & Noble' => 'http://search.barnesandnoble.com/bookSearch/isbnInquiry.asp?isbn=$1',
        'Amazon.com'     => 'http://www.amazon.com/exec/obidos/ISBN=$1'
 ];
-
index 3f3b007..5a70a83 100644 (file)
@@ -299,4 +299,3 @@ $digitTransformTable = [
 $linkTrail = "/^([a-z\x{0900}-\x{0963}\x{0966}-\x{A8E0}-\x{A8FF}]+)(.*)$/sDu";
 
 $digitGroupingPattern = "##,##,###";
-
index 5a32567..6671feb 100644 (file)
@@ -24,4 +24,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'vibhag',
        NS_CATEGORY_TALK    => 'voibhag_ke_baat',
 ];
-
index 97cac52..498585f 100644 (file)
@@ -289,4 +289,3 @@ $separatorTransformTable = [ ',' => '.', '.' => ',' ];
 $fallback8bitEncoding = 'iso-8859-2';
 
 $linkTrail = '/^([čšžćđßa-z]+)(.*)$/sDu';
-
index d9471e0..7fe8773 100644 (file)
@@ -144,4 +144,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Lisćina_wotkazow' ],
        'Withoutinterwiki'          => [ 'Falowace_mjezyrěčne_wotkazy' ],
 ];
-
index a217a29..0c894ef 100644 (file)
@@ -136,4 +136,3 @@ $specialPageAliases = [
 ];
 
 $linkTrail = '/^([a-zàèòÀÈÒ]+)(.*)$/sDu';
-
index 6ba075a..7fcfad8 100644 (file)
@@ -279,4 +279,3 @@ $magicWords = [
 ];
 
 $linkTrail = '/^([a-záéíóúöüőűÁÉÍÓÚÖÜŐŰ]+)(.*)$/sDu';
-
index ab1d198..065b4fb 100644 (file)
@@ -255,4 +255,3 @@ $specialPageAliases = [
 ];
 
 $linkTrail = '/^([a-zաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև«»]+)(.*)$/sDu';
-
index b4adcbb..c3a2905 100644 (file)
@@ -132,4 +132,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Referentias_a_iste_pagina' ],
        'Withoutinterwiki'          => [ 'Sin_interwiki' ],
 ];
-
index 5fee306..b57c03e 100644 (file)
@@ -310,4 +310,3 @@ $dateFormats = [
        'ymd date' => 'Y F j',
        'ymd both' => 'Y F j H.i',
 ];
-
index 75f45b1..6723742 100644 (file)
@@ -119,4 +119,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Quo_catenunes_ci' ],
        'Withoutinterwiki'          => [ 'Sin_interwiki' ],
 ];
-
index 29edef3..2177cbf 100644 (file)
@@ -69,4 +69,3 @@ $magicWords = [
        'displaytitle'              => [ '1', 'ZIÍSHÍ', 'DISPLAYTITLE' ],
        'pagesize'                  => [ '1', 'ÀSÁIHÜ', 'PAGESIZE' ],
 ];
-
index 6f4f23a..389cdcf 100644 (file)
@@ -9,4 +9,3 @@
  */
 
 $fallback = 'zh-cn, zh-hans';
-
index 280ea41..6bc195b 100644 (file)
@@ -26,4 +26,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Kategoria',
        NS_CATEGORY_TALK    => 'Kategoria_tungtungan',
 ];
-
index ffd164b..0b49204 100644 (file)
@@ -103,4 +103,3 @@ $specialPageAliases = [
        'Watchlist'                 => [ 'Surveyaji' ],
        'Whatlinkshere'             => [ 'QuoLigasHike' ],
 ];
-
index c6f0e39..e6151db 100644 (file)
@@ -212,4 +212,3 @@ $separatorTransformTable = [ ',' => '.', '.' => ',' ];
 $linkPrefixExtension = true;
 $linkTrail = '/^([áðéíóúýþæöa-z-–]+)(.*)$/sDu';
 $linkPrefixCharset = 'áÁðÐéÉíÍóÓúÚýÝþÞæÆöÖA-Za-z–-';
-
index 8714c72..e73a2fc 100644 (file)
@@ -226,4 +226,3 @@ $magicWords = [
 ];
 
 $linkTrail = '/^([a-zàéèíîìóòúù]+)(.*)$/sDu';
-
index b905345..c45a0dd 100644 (file)
@@ -321,4 +321,3 @@ $magicWords = [
        'url_wiki'                  => [ '0', 'ウィキ', 'WIKI' ],
        'url_query'                 => [ '0', 'クエリ', 'クエリー', 'QUERY' ],
 ];
-
index 05e892b..3b788a3 100644 (file)
@@ -36,4 +36,3 @@ $namespaceAliases = [
        'Pitulung_Dhiskusi' => NS_HELP_TALK,
        'Kategori_Dhiskusi' => NS_CATEGORY_TALK,
 ];
-
index 7c55460..d2e2d27 100644 (file)
@@ -146,4 +146,3 @@ $magicWords = [
 
 $linkPrefixExtension = true;
 $linkTrail = '/^([a-zაბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰ“»]+)(.*)$/sDu';
-
index 1f993b0..52e8e77 100644 (file)
@@ -142,4 +142,3 @@ $dateFormats = [
 
 $linkTrail = "/^((?:[a-zıʼ’“»]|'(?!'))+)(.*)$/sDu";
 $linkPrefixCharset = 'a-zıA-Zİ\\x80-\\xff';
-
index 2cfab54..3ae9975 100644 (file)
@@ -31,4 +31,3 @@ $namespaceAliases = [
        'Talγa'            => NS_TEMPLATE,
        'Amyannan_n_talγa' => NS_TEMPLATE_TALK,
 ];
-
index 621c964..256abd7 100644 (file)
@@ -46,4 +46,3 @@ $namespaceAliases = [
 
 // Remove Russian gender aliases
 $namespaceGenderAliases = [];
-
index fe2e92a..97d8d68 100644 (file)
@@ -20,4 +20,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Kalasi',
        NS_CATEGORY_TALK    => 'Disolo_kalasi',
 ];
-
index 23280af..b8f85e4 100644 (file)
@@ -30,4 +30,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'زمرہ',
        NS_CATEGORY_TALK    => 'تبادلۂ_خیال_زمرہ',
 ];
-
index 10e3ac3..39b68fa 100644 (file)
@@ -47,4 +47,3 @@ $namespaceAliases = [
        'Kategori'           => NS_CATEGORY,
        'Kategori_tartışma'  => NS_CATEGORY_TALK,
 ];
-
index ce30e55..b8fc7e7 100644 (file)
@@ -11,4 +11,3 @@
 # Stub message file for converter code "kk"
 
 $fallback = 'kk-cyrl';
-
index a589ac2..72179d6 100644 (file)
@@ -385,4 +385,3 @@ $specialPageAliases = [
 # -------------------------------------------------------------------
 # Default messages
 # -------------------------------------------------------------------
-
index 37b4a15..818a9b6 100644 (file)
@@ -355,4 +355,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Мында_сілтегендер' ],
        'Withoutinterwiki'          => [ 'Уики-аралықсыздар' ],
 ];
-
index 1f1289d..56d8a58 100644 (file)
@@ -349,4 +349,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Mında_siltegender' ],
        'Withoutinterwiki'          => [ 'Wïkï-aralıqsızdar' ],
 ];
-
index 5e7ae13..150d5cc 100644 (file)
@@ -54,4 +54,3 @@ $namespaceAliases = [
        'Kategori' => NS_CATEGORY,
        'Kategoridiskussion' => NS_CATEGORY_TALK
 ];
-
index e970b17..967224f 100644 (file)
@@ -256,4 +256,3 @@ $magicWords = [
        'noindex'                   => [ '1', '__មិនមានលិបិក្រម__', '__NOINDEX__' ],
        'staticredirect'            => [ '1', '__ស្ថិតិទំព័របញ្ជូនបន្ត__', '__STATICREDIRECT__' ],
 ];
-
index 5d846ea..5fa77e9 100644 (file)
@@ -62,4 +62,3 @@ $digitTransformTable = [
 ];
 
 $digitGroupingPattern = "##,##,###";
-
index 4a3c15e..3ac7779 100644 (file)
@@ -367,4 +367,3 @@ $dateFormats = [
        'ko date'            => 'Y년 M월 j일 (D)',
        'ko both'            => 'Y년 M월 j일 (D) H:i',
 ];
-
index eebd0fb..79548ea 100644 (file)
@@ -107,4 +107,3 @@ $magicWords = [
        'notoc'                     => [ '0', '__БАШЛАСЫЗ__', '__БЕЗ_ОГЛАВЛЕНИЯ__', '__БЕЗ_ОГЛ__', '__NOTOC__' ],
        'nogallery'                 => [ '0', '_ГАЛЛЕРЕЯСЫЗ__', '__БЕЗ_ГАЛЕРЕИ__', '__NOGALLERY__' ],
 ];
-
index b2f4697..27ac9f1 100644 (file)
@@ -49,4 +49,3 @@ $separatorTransformTable = [
        '.' => '٫', # &#x066b;
        ',' => '٬', # &#x066c;
 ];
-
index f8dc00f..55dc004 100644 (file)
@@ -41,4 +41,3 @@ $digitTransformTable = [
        '8' => '८', # &#x096e;
        '9' => '९', # &#x096f;
 ];
-
index b13578e..164b20a 100644 (file)
@@ -210,4 +210,3 @@ $magicWords = [
 $imageFiles = [
        'button-italic'   => 'ksh/button_italic.png',
 ];
-
index d8bee65..7551ccf 100644 (file)
@@ -32,4 +32,3 @@ $digitTransformTable = [
        '.' => '٫', # &#x066b; wrong table ?
        ',' => '٬', # &#x066c;
 ];
-
index a5204be..069c64b 100644 (file)
@@ -44,4 +44,3 @@ $namespaceAliases = [
        'Категория'                          => NS_CATEGORY,
        'Обсуждение_категории'               => NS_CATEGORY_TALK
 ];
-
index 5a0a02b..53be156 100644 (file)
@@ -202,4 +202,3 @@ $magicWords = [
        'pagesincategory_all'       => [ '0', 'oll', 'all' ],
        'pagesincategory_pages'     => [ '0', 'folennow', 'pages' ],
 ];
-
index e2256af..99b49a5 100644 (file)
@@ -32,4 +32,3 @@ $namespaceNames = [
        NS_HELP             => 'Жардам',
        NS_CATEGORY         => 'Категория',
 ];
-
index 67143e7..1fa3e11 100644 (file)
@@ -157,4 +157,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Nexus_ad_paginam' ],
        'Withoutinterwiki'          => [ 'Paginae_sine_nexibus_ad_linguas_alias', 'Paginae_sine_nexibus_intervicis' ],
 ];
-
index 78c87fc..bb18959 100644 (file)
@@ -177,4 +177,3 @@ $magicWords = [
        'img_left'                  => [ '1', 'cierda', 'izquierda', 'izda', 'izq', 'left' ],
        'img_none'                  => [ '1', 'dinguna', 'dinguno', 'ninguna', 'nada', 'no', 'ninguno', 'none' ],
 ];
-
index 2f52faf..a416fe7 100644 (file)
@@ -191,4 +191,3 @@ $magicWords = [
        'pagesincategory_pages'     => [ '0', 'Säiten', 'seiten', 'pages' ],
        'pagesincategory_files'     => [ '0', 'Fichieren', 'dateien', 'files' ],
 ];
-
index b54f73a..9b4aa82 100644 (file)
@@ -42,4 +42,3 @@ $namespaceNames = [
 $namespaceGenderAliases = [];
 
 $linkTrail = '/^([a-zабвгдеёжзийклмнопрстуфхцчшщъыьэюяӀ1“»]+)(.*)$/sDu';
-
index 86e9f88..0002adc 100644 (file)
@@ -56,4 +56,3 @@ $namespaceAliases = [
 
 // Remove Russian gender aliases
 $namespaceGenderAliases = [];
-
index eb453ea..051b323 100644 (file)
@@ -33,4 +33,3 @@ $specialPageAliases = [
        'Newimages'                 => [ 'FixesNova' ],
        'Newpages'                  => [ 'PajesNova' ],
 ];
-
index fe512b2..56ccf7b 100644 (file)
@@ -150,4 +150,3 @@ $dateFormats = [
        'ymd date' => 'Y M j',
        'ymd both' => 'Y M j H:i',
 ];
-
index d5a0788..8c01b09 100644 (file)
@@ -120,4 +120,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Cose appunta chì' ],
        'Withoutinterwiki'          => [ 'Sensa Interwiki' ],
 ];
-
index 92001ed..dc1840c 100644 (file)
@@ -100,4 +100,3 @@ $magicWords = [
        'img_none'                  => [ '1', 'nissön', 'nessuno', 'none' ],
        'sitename'                  => [ '1', 'NUMSIT', 'NOMESITO', 'SITENAME' ],
 ];
-
index d7ea41f..a44e0ac 100644 (file)
@@ -20,4 +20,3 @@ $linkPrefixExtension = true;
 
 # Same as the French (bug 8485)
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
-
index 1c79efd..665b222 100644 (file)
@@ -91,4 +91,3 @@ $digitTransformTable = [
        '8' => '໘', # &#x0ed8;
        '9' => '໙', # &#x0ed9;
 ];
-
index 8bdfc7f..f77049a 100644 (file)
@@ -32,4 +32,3 @@ $namespaceNames = [
 ];
 
 $fallback = 'lv';
-
index d9ef8bc..5214c46 100644 (file)
@@ -151,4 +151,3 @@ $digitTransformTable = [
        '.' => '點',
        ',' => '',
 ];
-
index 45d6f6c..b86bb14 100644 (file)
@@ -55,4 +55,3 @@ $namespaceAliases = [
        'Kategori'           => NS_CATEGORY,
        'Kategori_tartışma'  => NS_CATEGORY_TALK,
 ];
-
index 84b107e..76110ac 100644 (file)
@@ -137,4 +137,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'МезеньСюлмафкстТяса' ],
        'Withoutinterwiki'          => [ 'Интервикифтома' ],
 ];
-
index 653be83..e8df5aa 100644 (file)
@@ -231,4 +231,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Pejy_mirohy' ],
        'Withoutinterwiki'          => [ 'Tsy_misy_interwiki' ],
 ];
-
index 99ab0e5..7d12967 100644 (file)
@@ -91,4 +91,3 @@ $magicWords = [
        'img_bottom'                => [ '1', 'ӱлычын', 'снизу', 'bottom' ],
        'sitename'                  => [ '1', 'САЙТЛӰМ', 'НАЗВАНИЕ_САЙТА', 'SITENAME' ],
 ];
-
index 0529a0e..4bee5e1 100644 (file)
@@ -159,4 +159,3 @@ $magicWords = [
        'pagesincategory_pages'     => [ '0', 'laman', 'halaman', 'pages' ],
        'pagesincategory_files'     => [ '0', 'berkas', 'files' ],
 ];
-
index c15b040..cf608fc 100644 (file)
@@ -359,4 +359,3 @@ $magicWords = [
 
 $linkTrail = '/^([a-zабвгдѓежзѕијклљмнњопрстќуфхцчџш]+)(.*)$/sDu';
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
-
index 2c9542b..f6d0d14 100644 (file)
@@ -356,4 +356,3 @@ $magicWords = [
 $linkTrail = "/^([a-z\x{0D02}-\x{0D7F}]+)(.*)$/sDu";
 
 $digitGroupingPattern = "##,##,###";
-
index e63f009..a672fc4 100644 (file)
@@ -47,4 +47,3 @@ $magicWords = [
 ];
 
 $linkTrail = '/^([a-zабвгдеёжзийклмнопрстуфхцчшщъыьэюя“»]+)(.*)$/sDu';
-
index dd8133e..744fe73 100644 (file)
@@ -18,4 +18,3 @@ $specialPageAliases = [
        'Preferences'               => [ 'Преферинце' ],
        'Recentchanges'             => [ 'Модификэрьреченте' ],
 ];
-
index 61fc613..b51839d 100644 (file)
@@ -326,4 +326,3 @@ $digitTransformTable = [
 $linkTrail = "/^([\xE0\xA4\x80-\xE0\xA5\xA3\xE0\xA5\xB1-\xE0\xA5\xBF\xEF\xBB\xBF\xE2\x80\x8D]+)(.*)$/sDu";
 
 $digitGroupingPattern = "##,##,###";
-
index a9ddf7d..4d01b28 100644 (file)
@@ -42,4 +42,3 @@ $namespaceAliases = [
 
 // Remove Russian aliases
 $namespaceGenderAliases = [];
-
index c39854e..5d720ce 100644 (file)
@@ -211,4 +211,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Pautan_ke_sini', 'Pautan_ke' ],
        'Withoutinterwiki'          => [ 'Laman_tanpa_pautan_bahasa' ],
 ];
-
index aad38b7..015dade 100644 (file)
@@ -268,4 +268,3 @@ $magicWords = [
 ];
 
 $linkPrefixCharset = 'A-\\x{10ffff}';
-
index 42afbd9..0dcfe2d 100644 (file)
@@ -75,4 +75,3 @@ $magicWords = [
        'pagesize'                  => [ '1', 'TAMANHOFEXEIRO', 'TAMANHODAPAGINA', 'TAMANHODAPÁGINA', 'PAGESIZE' ],
        'staticredirect'            => [ '1', '_ANCAMINARSTATICO_', '__REDIRECIONAMENTOESTATICO__', '__REDIRECIONAMENTOESTÁTICO__', '__STATICREDIRECT__' ],
 ];
-
index ebaa7ca..3bafe48 100644 (file)
@@ -57,4 +57,3 @@ $dateFormats = [
        'my long date' => 'Y "ဇန်နဝါရီ" F"လ" j "ရက်"',
        'my long both' => 'H:i"၊" Y "ဇန်နဝါရီ" F"လ" j "ရက်"',
 ];
-
index 20057d5..01bc33d 100644 (file)
@@ -183,4 +183,3 @@ $magicWords = [
        'url_path'                  => [ '0', 'ЯН', 'ПУТЬ', 'PATH' ],
        'url_wiki'                  => [ '0', 'ВИКИ', 'WIKI' ],
 ];
-
index 027cf34..e93362b 100644 (file)
@@ -121,4 +121,3 @@ $magicWords = [
        'grammar'                   => [ '0', 'دستور_زبون:', 'دستور_زوون:', 'دستورزبان:', 'دستور_زبان:', 'GRAMMAR:' ],
        'gender'                    => [ '0', 'جنسیت:', 'جنس:', 'GENDER:' ],
 ];
-
index 1bf970c..767a305 100644 (file)
@@ -75,4 +75,3 @@ $specialPageAliases = [
        'Upload'                    => [ 'Quetza', 'Subir' ],
        'Userlogin'                 => [ 'Tlacalaquiliztli', 'Registrarse' ],
 ];
-
index 3f67a61..be7574c 100644 (file)
@@ -53,4 +53,3 @@ $namespaceAliases = [
        'Categoria' => NS_CATEGORY,
        'Discussioni_categoria' => NS_CATEGORY_TALK,
 ];
-
index 548b3db..d33075e 100644 (file)
@@ -330,4 +330,3 @@ $magicWords = [
        'url_path'                  => [ '0', 'STI', 'PATH' ],
        'url_query'                 => [ '0', 'SPØRRING', 'QUERY' ],
 ];
-
index b04066c..49ea249 100644 (file)
@@ -211,4 +211,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Wat wiest hier hen' ],
        'Withoutinterwiki'          => [ 'Sieden ahn Spraaklenken' ],
 ];
-
index 2a3ab0b..8af1c00 100644 (file)
@@ -319,4 +319,3 @@ $specialPageAliases = [
 ];
 
 $linkTrail = '/^([a-zäöüïëéèà]+)(.*)$/sDu';
-
index 2f7ad26..c6ab806 100644 (file)
@@ -57,4 +57,3 @@ $digitTransformTable = [
        '8' => '८', # &#x096e;
        '9' => '९', # &#x096f;
 ];
-
index 2d2cf39..65a7595 100644 (file)
@@ -39,4 +39,3 @@ $digitTransformTable = [
        '8' => '८', # &#x096e;
        '9' => '९', # &#x096f;
 ];
-
index dde2e04..9d22254 100644 (file)
@@ -382,4 +382,3 @@ $specialPageAliases = [
 ];
 
 $linkTrail = '/^([a-zäöüïëéèà]+)(.*)$/sDu';
-
index 5b599a9..2776847 100644 (file)
@@ -321,4 +321,3 @@ $separatorTransformTable = [
        '.' => ','
 ];
 $linkTrail = '/^([æøåa-z]+)(.*)$/sDu';
-
index 2cdc6f0..80ce2dc 100644 (file)
@@ -40,4 +40,3 @@ $magicWords = [
        'currenttime'               => [ '1', 'NAKO_BJALE', 'CURRENTTIME' ],
        'currenthour'               => [ '1', 'IRI_BJALE', 'CURRENTHOUR' ],
 ];
-
index 0917c73..334160f 100644 (file)
@@ -31,4 +31,3 @@ $namespaceNames = [
 ];
 
 $datePreferences = false;
-
index 6c7512b..3f84517 100644 (file)
@@ -285,4 +285,3 @@ $dateFormats = [
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
 
 $linkTrail = "/^([a-zàâçéèêîôû]+)(.*)$/sDu";
-
index 63c1e80..022a9ac 100644 (file)
@@ -30,4 +30,3 @@ $namespaceNames = [
 ];
 
 $linkTrail = '/^([a-zčČšŠžŽäÄöÖ]+)(.*)$/sDu';
-
index 4f500a7..d17105a 100644 (file)
@@ -252,4 +252,3 @@ $magicWords = [
 ];
 
 $digitGroupingPattern = "##,##,###";
-
index 5ba4ff5..44e943e 100644 (file)
@@ -179,4 +179,3 @@ $magicWords = [
 
 $linkTrail = '/^((?:[a-z]|а|æ|б|в|г|д|е|ё|ж|з|и|й|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я|“|»)+)(.*)$/sDu';
 $fallback8bitEncoding = 'windows-1251';
-
index 856ffa2..253119b 100644 (file)
@@ -182,4 +182,3 @@ $magicWords = [
 $linkTrail = '/^([ਁਂਃਅਆਇਈਉਊਏਐਓਔਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਲ਼ਵਸ਼ਸਹ਼ਾਿੀੁੂੇੈੋੌ੍ਖ਼ਗ਼ਜ਼ੜਫ਼ੰੱੲੳa-z]+)(.*)$/sDu';
 
 $digitGroupingPattern = "##,##,###";
-
index ff9a2b4..62c8418 100644 (file)
@@ -14,4 +14,3 @@ $fallback = 'fr';
 
 // Remove French aliases
 $namespaceGenderAliases = [];
-
index 449ec0e..bd13273 100644 (file)
@@ -58,4 +58,3 @@ $specialPageAliases = [
        'Listbots'                  => [ 'Waddefresser', 'Bots' ],
        'Search'                    => [ 'Uffgucke', 'Suche' ],
 ];
-
index 1e4706d..6365b8a 100644 (file)
@@ -60,4 +60,3 @@ $namespaceAliases = [
 
 // Remove German aliases
 $namespaceGenderAliases = [];
-
index f49889a..7062e07 100644 (file)
@@ -42,4 +42,3 @@ $digitTransformTable = [
        '8' => '८', # &#x096e;
        '9' => '९', # &#x096f;
 ];
-
index cfe0345..d7b5bea 100644 (file)
@@ -317,4 +317,3 @@ $magicWords = [
        'pagesincategory_pages'     => [ '0', 'strony', 'pages' ],
        'pagesincategory_files'     => [ '0', 'pliki', 'files' ],
 ];
-
index 7fd9f1f..1d1a8c3 100644 (file)
@@ -39,4 +39,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Categorìa',
        NS_CATEGORY_TALK    => 'Discussion_ant_sla_categorìa',
 ];
-
index e40b22b..410927b 100644 (file)
@@ -55,4 +55,3 @@ $dateFormats = [
        'pnt date' => 'j xg Y',
        'pnt both' => 'H:i, j xg Y',
 ];
-
index cc555b6..5db6ce4 100644 (file)
@@ -155,4 +155,3 @@ $magicWords = [
        'noindex'                   => [ '1', '__بې_ليکلړ__', '__NOINDEX__' ],
        'protectionlevel'           => [ '1', 'ژغورکچه', 'PROTECTIONLEVEL' ],
 ];
-
index 5c3c191..f020303 100644 (file)
@@ -329,4 +329,3 @@ $magicWords = [
        'staticredirect'            => [ '1', '__REDIRECIONAMENTOESTATICO__', '__REDIRECIONAMENTOESTÁTICO__', '__STATICREDIRECT__' ],
        'protectionlevel'           => [ '1', 'NIVELDEPROTECAO', 'NÍVELDEPROTEÇÃO', 'PROTECTIONLEVEL' ],
 ];
-
index 8f84f20..61625e1 100644 (file)
@@ -328,4 +328,3 @@ $magicWords = [
        'protectionlevel'           => [ '1', 'NIVELDEPROTECAO', 'NÍVELDEPROTEÇÃO', 'PROTECTIONLEVEL' ],
        'url_path'                  => [ '0', 'CAMINHO', 'PATH' ],
 ];
-
index eb1c8d9..d8282dc 100644 (file)
@@ -277,4 +277,3 @@ $magicWords = [
        'protectionlevel'           => [ '1', 'HAYKAAMACHAY', 'IMASINCHIAMACHAY', 'NIVELDEPROTECCIÓN', 'PROTECTIONLEVEL' ],
        'formatdate'                => [ '0', 'punchawrikchakuy', 'formatodefecha', 'formatearfecha', 'formatdate', 'dateformat' ],
 ];
-
index a85d801..523783e 100644 (file)
@@ -34,4 +34,3 @@ $namespaceNames = [
 
 // Remove Spanish gender aliases (bug 37090)
 $namespaceGenderAliases = [];
-
index 7304dbf..d4da53f 100644 (file)
@@ -40,4 +40,3 @@ $magicWords = [
        'img_manualthumb'           => [ '1', 'miniatura=$1', 'thumbnail=$1', 'thumb=$1' ],
        'img_upright'               => [ '1', 'sidretg', 'sidretg=$1', 'sidretg_$1', 'upright', 'upright=$1', 'upright $1' ],
 ];
-
index 0a5fd11..cb6b47d 100644 (file)
@@ -30,4 +30,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Shopni',
        NS_CATEGORY_TALK    => 'Shopni_vakyarimata',
 ];
-
index 8b92171..55674ce 100644 (file)
@@ -292,4 +292,3 @@ $dateFormats = [
 $fallback8bitEncoding = 'iso8859-2';
 
 $linkTrail = '/^([a-zăâîşţșțĂÂÎŞŢȘȚ]+)(.*)$/sDu';
-
index 29627a6..7c3663a 100644 (file)
@@ -23,4 +23,3 @@ $specialPageAliases = [
        'Version'                   => [ 'Versione' ],
        'Watchlist'                 => [ 'PàggeneCondrollete' ],
 ];
-
index e1af8f3..cb44ce9 100644 (file)
@@ -439,4 +439,3 @@ $imageFiles = [
 ];
 
 $linkTrail = '/^([a-zабвгдеёжзийклмнопрстуфхцчшщъыьэюя]+)(.*)$/sDu';
-
index 34832b0..6225aef 100644 (file)
@@ -128,4 +128,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Одказы_гев' ],
        'Withoutinterwiki'          => [ 'Без_інтервікі' ],
 ];
-
index 4a369bd..aa5fdeb 100644 (file)
@@ -283,4 +283,3 @@ $magicWords = [
 ];
 
 $digitGroupingPattern = "##,##,###";
-
index 38d58f6..8a69163 100644 (file)
@@ -41,4 +41,3 @@ $namespaceAliases = [
 
 // Remove Russian aliases
 $namespaceGenderAliases = [];
-
index 83770fa..0697595 100644 (file)
@@ -54,4 +54,3 @@ $dateFormats = [
 ];
 
 $linkTrail = "/^([a-z]+)(.*)$/sD";
-
index 43350d1..35d6e0a 100644 (file)
@@ -149,4 +149,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'PuntanoQui' ],
        'Withoutinterwiki'          => [ 'PagineSenzaInterwiki' ],
 ];
-
index 20c23f3..4d4a48e 100644 (file)
@@ -150,4 +150,3 @@ $magicWords = [
        'pagesincategory'           => [ '1', 'زمريجاصفحا', 'PAGESINCATEGORY', 'PAGESINCAT' ],
        'pagesize'                  => [ '1', 'صفحيجيماپ', 'PAGESIZE' ],
 ];
-
index 53e763f..954f3b6 100644 (file)
@@ -101,4 +101,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'PuntaniInogghi' ],
        'Withoutinterwiki'          => [ 'PàginiChenaInterwiki' ],
 ];
-
index e04b004..8e1d476 100644 (file)
@@ -137,4 +137,3 @@ $magicWords = [
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
 
 $linkTrail = '/^(:?[a-zàáâçčʒǯđðéèêëǧǥȟíìîïıǩŋñóòôõßšŧúùûýÿüžþæøåäö]+)(.*)$/sDu';
-
index b6de002..1253350 100644 (file)
@@ -14,4 +14,3 @@ $fallback = 'fr';
 
 // Remove French aliases
 $namespaceGenderAliases = [];
-
index adf90ce..f0367ae 100644 (file)
@@ -56,4 +56,3 @@ $namespaceAliases = [
 ];
 
 $namespaceGenderAliases = [];
-
index fb79237..3ee463e 100644 (file)
@@ -202,4 +202,3 @@ $magicWords = [
 ];
 
 $linkTrail = '/^([a-zčćđžš]+)(.*)$/sDu';
-
index eeed627..89e74e9 100644 (file)
@@ -188,4 +188,3 @@ $magicWords = [
        'img_middle'                => [ '1', 'මැද', 'middle' ],
        'special'                   => [ '0', 'විශේෂ', 'special' ],
 ];
-
index 40dc198..75cf114 100644 (file)
@@ -290,4 +290,3 @@ $separatorTransformTable = [
 ];
 
 $linkTrail = '/^([a-záäčďéíľĺňóôŕšťúýž]+)(.*)$/sDu';
-
index 7599bc2..3893109 100644 (file)
@@ -182,4 +182,3 @@ $dateFormats = [
 
 $fallback8bitEncoding = "iso-8859-2";
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
-
index a0d88d4..b674c49 100644 (file)
@@ -211,4 +211,3 @@ $dateFormats = [
 ];
 
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
-
index 2bf0156..892307a 100644 (file)
@@ -15,4 +15,3 @@
 
 $fallback = 'sr-ec';
 $linkTrail = '/^([abvgdđežzijklljmnnjoprstćufhcčdžšабвгдђежзијклљмнњопрстћуфхцчџш]+)(.*)$/usD';
-
index a34771d..9a6c51f 100644 (file)
@@ -405,4 +405,3 @@ $magicWords = [
        'pagesincategory_files'     => [ '0', 'датотеке', 'files' ],
 ];
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
-
index b03a482..b4d715b 100644 (file)
@@ -301,4 +301,3 @@ $magicWords = [
 ];
 
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
-
index c42b4bc..fc26b43 100644 (file)
@@ -148,4 +148,3 @@ $magicWords = [
        'talkspacee'                => [ '1', 'TAKIPREKIE', 'OVERLEGRUIMTEE', 'TALKSPACEE' ],
        'special'                   => [ '0', 'spesyal', 'speciaal', 'special' ],
 ];
-
index cce58e8..4f656d4 100644 (file)
@@ -41,4 +41,3 @@ $namespaceGenderAliases = [
        NS_USER => [ 'male' => 'Benutser', 'female' => 'Benutserske' ],
        NS_USER_TALK => [ 'male' => 'Benutser_Diskussion', 'female' => 'Benutserske_Diskussion' ],
 ];
-
index 5646cf1..75fff56 100644 (file)
@@ -123,4 +123,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'NumbuKaDieu' ],
        'Withoutinterwiki'          => [ 'TanpaInterwiki' ],
 ];
-
index 8819be6..01c33ee 100644 (file)
@@ -338,4 +338,3 @@ $dateFormats = [
        'ymd date' => 'Y F j',
        'ymd both' => 'Y F j "kl." H.i',
 ];
-
index 2aa75cd..a7f4278 100644 (file)
@@ -119,4 +119,3 @@ $specialPageAliases = [
        'Watchlist'                 => [ 'Maangalizi' ],
        'Whatlinkshere'             => [ 'VingoViungavyoUkurasahuu' ],
 ];
-
index 97853d4..797e443 100644 (file)
@@ -62,4 +62,3 @@ $namespaceAliases = [
 
 // Remove Polish gender aliases
 $namespaceGenderAliases = [];
-
index 1702d1f..f089896 100644 (file)
@@ -83,4 +83,3 @@ $magicWords = [
 $linkTrail = "/^([\xE0\xAE\x80-\xE0\xAF\xBF]+)(.*)$/sDu";
 
 $digitGroupingPattern = "##,##,###";
-
index 4383ab4..7ad1a7e 100644 (file)
@@ -31,4 +31,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'ವರ್ಗೊ',
        NS_CATEGORY_TALK    => 'ವರ್ಗೊ_ಪಾತೆರ',
 ];
-
index f322cfd..8e1020b 100644 (file)
@@ -147,4 +147,3 @@ $magicWords = [
 $linkTrail = "/^([\xE0\xB0\x81-\xE0\xB1\xAF]+)(.*)$/sDu";
 
 $digitGroupingPattern = "##,##,###";
-
index 6680d3c..18eb9fa 100644 (file)
@@ -69,4 +69,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Pájina_sira_ne\'ebé_bá_iha_ne\'e' ],
        'Withoutinterwiki'          => [ 'Laiha_interwiki' ],
 ];
-
index 9c58ee6..bd107f5 100644 (file)
@@ -67,4 +67,3 @@ $dateFormats = [
 ];
 
 $linkTrail = '/^([a-zабвгдеёжзийклмнопрстуфхчшъэюяғӣқўҳҷцщыь]+)(.*)$/sDu';
-
index 484d400..39b636a 100644 (file)
@@ -190,4 +190,3 @@ $dateFormats = [
        'ISO 8601 date' => 'xnY-xnm-xnd',
        'ISO 8601 both' => 'xnY-xnm-xnd"T"xnH:xni:xns',
 ];
-
index 484446b..1ae4716 100644 (file)
@@ -35,4 +35,3 @@ $namespaceNames = [
 ];
 
 $linkTrail = '/^([a-zÄäÇçĞğŇňÖöŞşÜüÝýŽž]+)(.*)$/sDu';
-
index 0c1813c..949969b 100644 (file)
@@ -144,4 +144,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'Ano_ang_nakakawing_dito' ],
        'Withoutinterwiki'          => [ 'Walang_ugnayang-wiki' ],
 ];
-
index 613cb28..ed0ff28 100644 (file)
@@ -154,4 +154,3 @@ $magicWords = [
        'pagesize'                  => [ '1', 'СӘҺИФӘ_ПАМЈӘ', 'PAGESIZE' ],
        'url_wiki'                  => [ '0', 'ВИКИ', 'WIKI' ],
 ];
-
index 8e8d475..16fa65f 100644 (file)
@@ -47,4 +47,3 @@ $specialPageAliases = [
        'Watchlist'                 => [ 'Lukautbuk' ],
        'Whatlinkshere'             => [ 'Ol link ikam long hia' ],
 ];
-
index 9e07263..564da6c 100644 (file)
@@ -354,4 +354,3 @@ $magicWords = [
 
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
 $linkTrail = '/^([a-zÇĞçğİıÖöŞşÜüÂâÎîÛû]+)(.*)$/sDu';
-
index 34c3cca..9d95444 100644 (file)
@@ -210,4 +210,3 @@ $magicWords = [
 ];
 
 $linkTrail = '/^([a-zабвгдеёжзийклмнопрстуфхцчшщъыьэюяӘәӨөҮүҖҗҢңҺһ]+)(.*)$/sDu';
-
index da073b1..c545012 100644 (file)
@@ -89,4 +89,3 @@ $magicWords = [
 $fallback8bitEncoding = "windows-1254";
 
 $linkTrail = '/^([a-zäçğıñöşü“»]+)(.*)$/sDu';
-
index cc9e2a3..7742b68 100644 (file)
@@ -15,4 +15,3 @@ $fallback = 'fr';
 
 // Remove French aliases
 $namespaceGenderAliases = [];
-
index 32194f6..d222639 100644 (file)
@@ -120,4 +120,3 @@ $bookstoreList = [
        'AddALL' => 'http://www.addall.com/New/Partner.cgi?query=$1&type=ISBN',
        'Barnes & Noble' => 'http://shop.barnesandnoble.com/bookSearch/isbnInquiry.asp?isbn=$1'
 ];
-
index 79cf100..46d5dcb 100644 (file)
@@ -45,4 +45,3 @@ $namespaceGenderAliases = [];
 $linkTrail = '/^([a-zа-яёӝӟӥӧӵ]+)(.*)$/sDu';
 $fallback8bitEncoding = 'windows-1251';
 $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
-
index 13d5775..492fbcb 100644 (file)
@@ -45,4 +45,3 @@ $specialPageAliases = [
        'Allpages'                  => [ 'بارلىق_بەتلەر' ],
        'Ancientpages'              => [ 'كونا_بەتلەر' ],
 ];
-
index d5449bf..cac8482 100644 (file)
@@ -167,4 +167,3 @@ $magicWords = [
        'index'                     => [ '1', '__اشاریہ__', '__INDEX__' ],
        'noindex'                   => [ '1', '__نااشاریہ__', '__NOINDEX__' ],
 ];
-
index 1f3aae2..53d8efa 100644 (file)
@@ -123,4 +123,3 @@ $separatorTransformTable = [
        '.' => ',',
        ',' => "\xc2\xa0", # nbsp
 ];
-
index f71092c..986d9bd 100644 (file)
@@ -155,4 +155,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'PuntaQua' ],
        'Withoutinterwiki'          => [ 'PagineSensaInterwiki' ],
 ];
-
index 0283b7d..b28c618 100644 (file)
@@ -85,4 +85,3 @@ $magicWords = [
        'fullurl'                   => [ '0', 'TÄUZ\'URL:', 'KOGUURL:', 'FULLURL:' ],
        'index'                     => [ '1', '__INDEKS__', 'INDEKSIGA', '__INDEX__' ],
 ];
-
index 201a677..64d4604 100644 (file)
@@ -351,4 +351,3 @@ $datePreferenceMigrationMap = [
 
 $linkTrail = "/^([a-zàâçéèêîôûäëïöüùÇÉÂÊÎÔÛÄËÏÖÜÀÈÙ]+)(.*)$/sDu";
 $separatorTransformTable = [ ',' => '.', '.' => ',' ];
-
index a28777f..271fae1 100644 (file)
@@ -31,4 +31,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Categorie',
        NS_CATEGORY_TALK    => 'Discuusje_categorie',
 ];
-
index 7400417..1a29f02 100644 (file)
@@ -61,4 +61,3 @@ $specialPageAliases = [
 
 // Remove German aliases
 $namespaceGenderAliases = [];
-
index ffb788a..d0f5ca5 100644 (file)
@@ -109,4 +109,3 @@ $specialPageAliases = [
        'Watchlist'                 => [ 'Galädalised' ],
        'Whatlinkshere'             => [ 'Yümsisio', 'Isio' ],
 ];
-
index 4829601..bef241a 100644 (file)
@@ -39,4 +39,3 @@ $namespaceNames = [
 $magicWords = [
        'redirect'                  => [ '0', '#saadaq', '#suuna', '#REDIRECT' ],
 ];
-
index 45841fd..68f3ae7 100644 (file)
@@ -83,4 +83,3 @@ $separatorTransformTable = [ ',' => "\xc2\xa0", '.' => ',' ];
 
 # $linkTrail = '/^([a-zåâêîôûçéèA-ZÅÂÊÎÔÛÇÉÈ]+)(.*)$/sDu';
 $linkTrail = '/^([a-zåâêîôûçéè]+)(.*)$/sDu';
-
index 1c6e9b5..8243e15 100644 (file)
@@ -60,4 +60,3 @@ $specialPageAliases = [
        'Whatlinkshere'             => [ 'AnoAnNasumpayDinhi' ],
        'Withoutinterwiki'          => [ 'Warayinterwiki' ],
 ];
-
index d96b51f..7722884 100644 (file)
@@ -80,4 +80,3 @@ $specialPageAliases = [
        'Wantedpages'               => [ 'Xët yiñ laaj' ],
        'Watchlist'                 => [ 'Limu toppte' ],
 ];
-
index 68ad7fb..07f9716 100644 (file)
@@ -53,4 +53,3 @@ $namespaceAliases = [
 
 // Remove Russian aliases
 $namespaceGenderAliases = [];
-
index edc860e..1553f6d 100644 (file)
@@ -199,4 +199,3 @@ $magicWords = [
        'url_wiki'                  => [ '0', 'וויקי', 'ויקי', 'WIKI' ],
        'pagesincategory_pages'     => [ '0', 'בלעטער', 'דפים', 'pages' ],
 ];
-
index 46acbb5..fc8581b 100644 (file)
@@ -50,4 +50,3 @@ $specialPageAliases = [
        'Userlogin'                 => [ 'ÌwọléOníse' ],
        'Userlogout'                => [ 'Ìbọ̀sódeOníṣe' ],
 ];
-
index 2422244..4915680 100644 (file)
@@ -227,4 +227,3 @@ $dateFormats = [
        'yue ymd date' => 'Y-n-j',
        'yue ymd both' => 'Y-n-j H:i',
 ];
-
index bd56d64..a7978be 100644 (file)
@@ -40,4 +40,3 @@ $namespaceNames = [
        NS_CATEGORY         => 'Categorie',
        NS_CATEGORY_TALK    => 'Overleg_categorie',
 ];
-
index 845db8b..3ac5d58 100644 (file)
@@ -180,4 +180,3 @@ $specialPageAliases = [
        'Watchlist'                 => [ '监视列表', '監視列表', '監視清单' ],
        'Whatlinkshere'             => [ '链入页面', '鏈入頁面', '連入頁面' ],
 ];
-
index b887a00..bd822d6 100644 (file)
@@ -15,4 +15,3 @@
 
 # Inherit everything for now
 $fallback = 'zh-hans';
-
index 7c80db1..b7be658 100644 (file)
@@ -433,4 +433,3 @@ $bookstoreList = [
        '天下书店' => 'http://www.cwbook.com.tw/search/result1.jsp?field=2&keyWord=$1',
        '新丝路书店' => 'http://www.silkbook.com/function/Search_list_book_data.asp?item=5&text=$1'
 ];
-
index cfa926d..1bfe940 100644 (file)
@@ -306,4 +306,3 @@ $bookstoreList = [
        '天下書店' => 'http://www.cwbook.com.tw/search/result1.jsp?field=2&keyWord=$1',
        '新絲路書店' => 'http://www.silkbook.com/function/Search_list_book_data.asp?item=5&text=$1'
 ];
-
index c25e44f..b15b22f 100644 (file)
@@ -25,4 +25,3 @@ $specialPageAliases = [
        'ComparePages'              => [ '頁面比較' ],
        'Unblock'                   => [ '解除封禁' ],
 ];
-
index 48e79cf..962811c 100644 (file)
@@ -13,4 +13,3 @@
 
 # Inherit everything for now
 $fallback = 'zh-hans';
-
index 94510ef..a6c6b84 100644 (file)
@@ -105,4 +105,3 @@ $dateFormats = [
        'CNS 7648 compact date'  => '"ROC" xoY-m-d (l)',
        'CNS 7648 compact both'  => '"ROC" xoY-m-d (D) H:i',
 ];
-
index 7f2a9e1..4a3d2d6 100644 (file)
@@ -187,6 +187,11 @@ class ImportImages extends Maintenance {
                if ( $count > 0 ) {
 
                        foreach ( $files as $file ) {
+
+                               if ( $sleep && ( $processed > 0 ) ) {
+                                       sleep( $sleep );
+                               }
+
                                $base = UtfNormal\Validator::cleanUp( wfBaseName( $file ) );
 
                                # Validate a title
@@ -375,10 +380,6 @@ class ImportImages extends Maintenance {
                                if ( $limit && $processed >= $limit ) {
                                        break;
                                }
-
-                               if ( $sleep ) {
-                                       sleep( $sleep );
-                               }
                        }
 
                        # Print out some statistics
index 556196c..870f605 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:40Z
+ * Date: 2017-01-18T00:07:07Z
  */
 ( function ( OO ) {
 
index c36774a..842ddfd 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:45Z
+ * Date: 2017-01-18T00:07:12Z
  */
 .oo-ui-element-hidden {
   display: none !important;
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
   opacity: 0.5;
-  -webkit-transform: translate3d(0, 0, 0);
+  -webkit-transform: translateZ(0);
+          transform: translateZ(0);
   box-shadow: none;
   color: #333;
   background: #eee;
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
+  min-height: 3.125em;
 }
 .oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-iconElement.oo-ui-iconElement-icon {
 .oo-ui-fieldLayout:after {
   clear: both;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
   display: block;
   float: left;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
   text-align: right;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body {
   display: table;
+  width: 100%;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
   display: table-cell;
   vertical-align: middle;
 }
-.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-  display: inline-block;
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
+  width: 1px;
 }
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
+.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
   float: right;
 }
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
+.oo-ui-fieldLayout .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
   z-index: 1;
 }
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content {
+.oo-ui-fieldLayout .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content {
   padding: 0.5em 0.75em;
   line-height: 1.5;
 }
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top .oo-ui-fieldLayout-help,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline .oo-ui-fieldLayout-help {
+  margin-top: -0.3em;
+}
 .oo-ui-fieldLayout:last-child {
   margin-bottom: 0;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-  padding-top: 0.5em;
-  margin-right: 5%;
-  width: 35%;
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help {
+  margin-right: 0;
+  margin-left: -1.875em;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
   width: 60%;
 }
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
+  margin-right: 5%;
+  width: 35%;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label {
+  display: block;
+  padding-top: 0.5em;
+}
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline {
   margin-bottom: 1.25em;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-  padding: 0.25em 0.25em 0.25em 0.5em;
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body {
+  max-width: 50em;
+}
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
+  padding: 0.25em 0 0.25em 0.5em;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
+  max-width: 50em;
   padding: 0.5em 0;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget {
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget:last-child {
   margin-right: 0;
 }
-.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label {
   color: #ccc;
 }
 .oo-ui-fieldLayout-messages {
   line-height: 1.5em;
   vertical-align: middle;
 }
-.oo-ui-actionFieldLayout {
-  max-width: 50em;
-}
 .oo-ui-actionFieldLayout-input,
 .oo-ui-actionFieldLayout-button {
   display: table-cell;
   width: 1%;
   white-space: nowrap;
 }
+.oo-ui-actionFieldLayout.oo-ui-fieldLayout-align-top {
+  max-width: 50em;
+}
 .oo-ui-fieldsetLayout {
   position: relative;
   min-width: 0;
 body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   display: table-cell;
 }
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
+.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-iconElement-icon {
   display: block;
   position: absolute;
 }
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
+.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header {
   color: inherit;
   display: inline-table;
   box-sizing: border-box;
@@ -400,44 +422,48 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   white-space: normal;
   float: left;
 }
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label:empty {
+.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label:empty {
   display: none;
 }
 .oo-ui-fieldsetLayout-group {
   clear: both;
 }
-.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help {
+.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help {
   float: right;
 }
-.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
+.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
   z-index: 1;
 }
-.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
+.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
   padding: 0.5em 0.75em;
   line-height: 1.4;
 }
+.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-header {
+  width: 50em;
+}
 .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout,
 .oo-ui-fieldsetLayout + .oo-ui-formLayout {
   margin-top: 2em;
 }
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
+.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label {
+  display: inline-block;
   font-size: 1.1em;
   margin-bottom: 0.5em;
   padding: 0.25em 0;
   font-weight: bold;
 }
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
+.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label {
   padding-left: 2em;
   line-height: 1.8em;
 }
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
+.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-iconElement-icon {
   left: 0;
   top: 0.25em;
 }
-.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget {
+.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-header > .oo-ui-popupButtonWidget {
   margin-right: 0;
 }
-.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget:last-child {
+.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-header > .oo-ui-popupButtonWidget:last-child {
   margin-right: 0;
 }
 .oo-ui-formLayout + .oo-ui-fieldsetLayout,
@@ -449,8 +475,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);
+  -webkit-transform: translateZ(0);
+          transform: translateZ(0);
 }
 .oo-ui-panelLayout-expanded {
   position: absolute;
@@ -464,7 +490,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 }
 .oo-ui-panelLayout-framed {
   border-radius: 0.5em;
-  box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.25);
 }
 .oo-ui-panelLayout-padded.oo-ui-panelLayout-framed {
   margin: 1em 0;
@@ -598,7 +623,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   border-radius: 0.3em;
   margin-right: 0.5em;
 }
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-active .oo-ui-buttonElement-button {
+.oo-ui-buttonGroupWidget .oo-ui-buttonWidget.oo-ui-buttonElement-active .oo-ui-buttonElement-button {
   cursor: default;
 }
 .oo-ui-buttonGroupWidget:last-child {
@@ -640,8 +665,8 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
   display: block;
   position: absolute;
-  top: 0;
-  /* @noflip */
+  /* `top` property is to be set in theme's selector due to specific `@size-anchor` values
+                       /* @noflip */
   left: 0;
   background-repeat: no-repeat;
 }
@@ -669,9 +694,12 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   border-radius: 0.25em;
   box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2);
 }
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
+.oo-ui-popupWidget-anchored {
   margin-top: 6px;
 }
+.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
+  top: -6px;
+}
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
   content: '';
@@ -873,6 +901,11 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
       -ms-user-select: none;
           user-select: none;
 }
+.oo-ui-textInputWidget-php > .oo-ui-iconElement-icon,
+.oo-ui-textInputWidget-php > .oo-ui-indicatorElement-indicator,
+.oo-ui-textInputWidget-php > .oo-ui-labelElement-label {
+  pointer-events: none;
+}
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
   padding: 0.5em;
index 68d6413..89b2164 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:45Z
+ * Date: 2017-01-18T00:07:12Z
  */
 .oo-ui-element-hidden {
   display: none !important;
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
+  min-height: 3.125em;
 }
 .oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-iconElement.oo-ui-iconElement-icon {
 .oo-ui-fieldLayout:after {
   clear: both;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
   display: block;
   float: left;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
   text-align: right;
 }
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body {
   display: table;
+  width: 100%;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
   display: table-cell;
   vertical-align: middle;
 }
-.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-  display: inline-block;
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
+  width: 1px;
 }
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
+.oo-ui-fieldLayout .oo-ui-fieldLayout-help {
   float: right;
 }
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
+.oo-ui-fieldLayout .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
   z-index: 1;
 }
-.oo-ui-fieldLayout .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content {
+.oo-ui-fieldLayout .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content {
   padding: 0.5em 0.75em;
   line-height: 1.5;
 }
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top .oo-ui-fieldLayout-help,
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline .oo-ui-fieldLayout-help {
+  margin-top: -0.3em;
+}
 .oo-ui-fieldLayout.oo-ui-labelElement,
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline {
   margin-top: 1.171875em;
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline:first-child {
   margin-top: 0;
 }
-.oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+.oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
   padding-bottom: 0.3125em;
+}
+.oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label {
   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.oo-ui-labelElement.oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header,
+.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body {
+  max-width: 50em;
 }
-.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header,
+.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
   width: 35%;
   margin-right: 5%;
+}
+.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label,
+.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label {
+  display: block;
   padding-top: 0.3125em;
 }
+.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help,
+.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help {
+  margin-right: 0;
+  margin-left: -1.875em;
+}
 .oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field,
 .oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
   width: 60%;
 }
-.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
+.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
+  padding: 0.3125em 0.46875em;
+  padding-right: 0;
+}
+.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label {
   color: #72777d;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget {
   line-height: 1.4;
   vertical-align: middle;
 }
-.oo-ui-actionFieldLayout {
-  max-width: 50em;
-}
 .oo-ui-actionFieldLayout-input,
 .oo-ui-actionFieldLayout-button {
   display: table-cell;
   width: 1%;
   white-space: nowrap;
 }
+.oo-ui-actionFieldLayout.oo-ui-fieldLayout-align-top {
+  max-width: 50em;
+}
 .oo-ui-fieldsetLayout {
   position: relative;
   min-width: 0;
 body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   display: table-cell;
 }
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
+.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-iconElement-icon {
   display: block;
   position: absolute;
 }
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
+.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header {
   color: inherit;
   display: inline-table;
   box-sizing: border-box;
@@ -539,44 +563,48 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   white-space: normal;
   float: left;
 }
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label:empty {
+.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label:empty {
   display: none;
 }
 .oo-ui-fieldsetLayout-group {
   clear: both;
 }
-.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help {
+.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help {
   float: right;
 }
-.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
+.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
   z-index: 1;
 }
-.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
+.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
   padding: 0.5em 0.75em;
   line-height: 1.4;
 }
+.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-header {
+  width: 50em;
+}
 .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout,
 .oo-ui-fieldsetLayout + .oo-ui-formLayout {
   margin-top: 2em;
 }
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
+.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label {
+  display: inline-block;
   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 {
+.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label {
   padding-left: 2em;
   line-height: 1.8;
 }
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
+.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-iconElement-icon {
   top: 0;
   left: 0;
 }
-.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget {
+.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-header > .oo-ui-popupButtonWidget {
   margin-right: 0;
 }
-.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget:last-child {
+.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-header > .oo-ui-popupButtonWidget:last-child {
   margin-right: 0;
 }
 .oo-ui-formLayout + .oo-ui-fieldsetLayout,
@@ -588,8 +616,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);
+  -webkit-transform: translateZ(0);
+          transform: translateZ(0);
 }
 .oo-ui-panelLayout-expanded {
   position: absolute;
@@ -601,10 +629,13 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 .oo-ui-panelLayout-padded {
   padding: 1.25em;
 }
+.oo-ui-panelLayout-padded.oo-ui-formLayout > .oo-ui-fieldsetLayout .oo-ui-labelElement-label,
+.oo-ui-panelLayout-padded.oo-ui-formLayout > .oo-ui-fieldsetLayout .oo-ui-iconElement-icon {
+  margin-top: -0.25em;
+}
 .oo-ui-panelLayout-framed {
   border: 1px solid #a2a9b1;
   border-radius: 2px;
-  box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15);
 }
 .oo-ui-panelLayout-padded.oo-ui-panelLayout-framed {
   margin: 1em 0;
@@ -737,7 +768,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   z-index: 0;
   position: relative;
 }
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-active .oo-ui-buttonElement-button {
+.oo-ui-buttonGroupWidget .oo-ui-buttonWidget.oo-ui-buttonElement-active .oo-ui-buttonElement-button {
   cursor: default;
 }
 .oo-ui-buttonGroupWidget:last-child {
@@ -792,8 +823,8 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
   display: block;
   position: absolute;
-  top: 0;
-  /* @noflip */
+  /* `top` property is to be set in theme's selector due to specific `@size-anchor` values
+                       /* @noflip */
   left: 0;
   background-repeat: no-repeat;
 }
@@ -819,11 +850,14 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   background-color: #fff;
   border: 1px solid #a2a9b1;
   border-radius: 2px;
-  box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15);
+  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25);
 }
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
+.oo-ui-popupWidget-anchored {
   margin-top: 9px;
 }
+.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
+  top: -9px;
+}
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
   content: '';
@@ -1232,6 +1266,11 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
       -ms-user-select: none;
           user-select: none;
 }
+.oo-ui-textInputWidget-php > .oo-ui-iconElement-icon,
+.oo-ui-textInputWidget-php > .oo-ui-indicatorElement-indicator,
+.oo-ui-textInputWidget-php > .oo-ui-labelElement-label {
+  pointer-events: none;
+}
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
   font-size: inherit;
@@ -1365,7 +1404,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   margin-top: -1px;
   border: 1px solid #a2a9b1;
   border-radius: 0 0 2px 2px;
-  box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15);
+  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25);
 }
 .oo-ui-menuSelectWidget input {
   position: absolute;
@@ -1626,7 +1665,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
   overflow: hidden;
 }
 .oo-ui-progressBarWidget-bar {
-  background-color: #36c;
   height: 1em;
   -webkit-transition: width 200ms;
      -moz-transition: width 200ms;
@@ -1643,8 +1681,11 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout {
           transform: translate(-25%);
   border-left-width: 1px;
 }
-.oo-ui-progressBarWidget.oo-ui-widget-disabled {
-  opacity: 0.6;
+.oo-ui-progressBarWidget.oo-ui-widget-enabled .oo-ui-progressBarWidget-bar {
+  background-color: #36c;
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled .oo-ui-progressBarWidget-bar {
+  background-color: #c8ccd1;
 }
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
   from {
index 872d81f..1542c4b 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:40Z
+ * Date: 2017-01-18T00:07:07Z
  */
 ( function ( OO ) {
 
@@ -57,17 +57,18 @@ OO.ui.MouseButtons = {
 
 /**
  * @property {number}
+ * @private
  */
 OO.ui.elementId = 0;
 
 /**
  * Generate a unique ID for element
  *
- * @return {string} [id]
+ * @return {string} ID
  */
 OO.ui.generateElementId = function () {
-       OO.ui.elementId += 1;
-       return 'oojsui-' + OO.ui.elementId;
+       OO.ui.elementId++;
+       return 'ooui-' + OO.ui.elementId;
 };
 
 /**
@@ -386,15 +387,49 @@ OO.ui.infuse = function ( idOrNode ) {
        /**
         * Get a localized message.
         *
-        * In environments that provide a localization system, this function should be overridden to
-        * return the message translated in the user's language. The default implementation always returns
-        * English messages.
-        *
         * After the message key, message parameters may optionally be passed. In the default implementation,
         * any occurrences of $1 are replaced with the first parameter, $2 with the second parameter, etc.
         * Alternative implementations of OO.ui.msg may use any substitution system they like, as long as
         * they support unnamed, ordered message parameters.
         *
+        * In environments that provide a localization system, this function should be overridden to
+        * return the message translated in the user's language. The default implementation always returns
+        * English messages. An example of doing this with [jQuery.i18n](https://github.com/wikimedia/jquery.i18n)
+        * follows.
+        *
+        *     @example
+        *     var i, iLen, button,
+        *         messagePath = 'oojs-ui/dist/i18n/',
+        *         languages = [ $.i18n().locale, 'ur', 'en' ],
+        *         languageMap = {};
+        *
+        *     for ( i = 0, iLen = languages.length; i < iLen; i++ ) {
+        *         languageMap[ languages[ i ] ] = messagePath + languages[ i ].toLowerCase() + '.json';
+        *     }
+        *
+        *     $.i18n().load( languageMap ).done( function() {
+        *         // Replace the built-in `msg` only once we've loaded the internationalization.
+        *         // OOjs UI uses `OO.ui.deferMsg` for all initially-loaded messages. So long as
+        *         // you put off creating any widgets until this promise is complete, no English
+        *         // will be displayed.
+        *         OO.ui.msg = $.i18n;
+        *
+        *         // A button displaying "OK" in the default locale
+        *         button = new OO.ui.ButtonWidget( {
+        *             label: OO.ui.msg( 'ooui-dialog-message-accept' ),
+        *             icon: 'check'
+        *         } );
+        *         $( 'body' ).append( button.$element );
+        *
+        *         // A button displaying "OK" in Urdu
+        *         $.i18n().locale = 'ur';
+        *         button = new OO.ui.ButtonWidget( {
+        *             label: OO.ui.msg( 'ooui-dialog-message-accept' ),
+        *             icon: 'check'
+        *         } );
+        *         $( 'body' ).append( button.$element );
+        *     } );
+        *
         * @param {string} key Message key
         * @param {...Mixed} [params] Message parameters
         * @return {string} Translated message with parameters substituted
@@ -554,7 +589,6 @@ OO.ui.Element = function OoUiElement( config ) {
        this.$element = config.$element ||
                $( document.createElement( this.getTagName() ) );
        this.elementGroup = null;
-       this.debouncedUpdateThemeClassesHandler = OO.ui.debounce( this.debouncedUpdateThemeClasses );
 
        // Initialization
        if ( Array.isArray( config.classes ) ) {
@@ -792,7 +826,7 @@ OO.ui.Element.static.reusePreInfuseDOM = function ( node, config ) {
 };
 
 /**
- * Gather the dynamic state (focus, value of form inputs, scroll position, etc.) of a HTML DOM node
+ * Gather the dynamic state (focus, value of form inputs, scroll position, etc.) of an HTML DOM node
  * (and its children) that represent an Element of the same class and the given configuration,
  * generated by the PHP implementation.
  *
@@ -1129,6 +1163,9 @@ OO.ui.Element.static.scrollIntoView = function ( el, config ) {
 
        animations = {};
        callback = typeof config.complete === 'function' && config.complete;
+       if ( callback ) {
+               OO.ui.warnDeprecation( 'Element#scrollIntoView: The `complete` callback config option is deprecated. Use the return promise instead.' );
+       }
        container = this.getClosestScrollableContainer( el, config.direction );
        $container = $( container );
        elementDimensions = this.getDimensions( el );
@@ -1297,16 +1334,7 @@ OO.ui.Element.prototype.supports = function ( methods ) {
  *   guaranteeing that theme updates do not occur within an element's constructor
  */
 OO.ui.Element.prototype.updateThemeClasses = function () {
-       this.debouncedUpdateThemeClassesHandler();
-};
-
-/**
- * @private
- * @localdoc This method is called directly from the QUnit tests instead of #updateThemeClasses, to
- *   make them synchronous.
- */
-OO.ui.Element.prototype.debouncedUpdateThemeClasses = function () {
-       OO.ui.theme.updateElementClasses( this );
+       OO.ui.theme.queueUpdateElementClasses( this );
 };
 
 /**
@@ -1512,7 +1540,7 @@ OO.mixinClass( OO.ui.Widget, OO.EventEmitter );
 /* Static Properties */
 
 /**
- * Whether this widget will behave reasonably when wrapped in a HTML `<label>`. If this is true,
+ * Whether this widget will behave reasonably when wrapped in an HTML `<label>`. If this is true,
  * wrappers such as OO.ui.FieldLayout may use a `<label>` instead of implementing own label click
  * handling.
  *
@@ -1595,7 +1623,10 @@ OO.ui.Widget.prototype.updateDisabled = function () {
  *
  * @constructor
  */
-OO.ui.Theme = function OoUiTheme() {};
+OO.ui.Theme = function OoUiTheme() {
+       this.elementClassesQueue = [];
+       this.debouncedUpdateQueuedElementClasses = OO.ui.debounce( this.updateQueuedElementClasses );
+};
 
 /* Setup */
 
@@ -1639,6 +1670,36 @@ OO.ui.Theme.prototype.updateElementClasses = function ( element ) {
                .addClass( classes.on.join( ' ' ) );
 };
 
+/**
+ * @private
+ */
+OO.ui.Theme.prototype.updateQueuedElementClasses = function () {
+       var i;
+       for ( i = 0; i < this.elementClassesQueue.length; i++ ) {
+               this.updateElementClasses( this.elementClassesQueue[ i ] );
+       }
+       // Clear the queue
+       this.elementClassesQueue = [];
+};
+
+/**
+ * Queue #updateElementClasses to be called for this element.
+ *
+ * @localdoc QUnit tests override this method to directly call #queueUpdateElementClasses,
+ *   to make them synchronous.
+ *
+ * @param {OO.ui.Element} element Element for which to update classes
+ */
+OO.ui.Theme.prototype.queueUpdateElementClasses = function ( element ) {
+       // Keep items in the queue unique. Use lastIndexOf to start checking from the end because that's
+       // the most common case (this method is often called repeatedly for the same element).
+       if ( this.elementClassesQueue.lastIndexOf( element ) !== -1 ) {
+               return;
+       }
+       this.elementClassesQueue.push( element );
+       this.debouncedUpdateQueuedElementClasses();
+};
+
 /**
  * Get the transition duration in milliseconds for dialogs opening/closing
  *
@@ -2868,6 +2929,7 @@ OO.ui.mixin.LabelElement.prototype.getLabel = function () {
  * @deprecated since 0.16.0
  */
 OO.ui.mixin.LabelElement.prototype.fitLabel = function () {
+       OO.ui.warnDeprecation( 'LabelElement#fitLabel: This is a deprecated no-op.' );
        return this;
 };
 
@@ -4029,7 +4091,14 @@ OO.ui.mixin.ClippableElement.prototype.toggleClipping = function ( clipping ) {
                        // Initial clip after visible
                        this.clip();
                } else {
-                       this.$clippable.css( { width: '', height: '', overflowX: '', overflowY: '' } );
+                       this.$clippable.css( {
+                               width: '',
+                               height: '',
+                               maxWidth: '',
+                               maxHeight: '',
+                               overflowX: '',
+                               overflowY: ''
+                       } );
                        OO.ui.Element.static.reconsiderScrollbars( this.$clippable[ 0 ] );
 
                        this.$clippableScrollableContainer = null;
@@ -4579,13 +4648,19 @@ OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
 /**
  * Set popup alignment
  *
- * @param {string} align Alignment of the popup, `center`, `force-left`, `force-right`,
+ * @param {string} [align=center] Alignment of the popup, `center`, `force-left`, `force-right`,
  *  `backwards` or `forwards`.
  */
 OO.ui.PopupWidget.prototype.setAlignment = function ( align ) {
-       // Validate alignment and transform deprecated values
-       if ( [ 'left', 'right', 'force-left', 'force-right', 'backwards', 'forwards', 'center' ].indexOf( align ) > -1 ) {
-               this.align = { left: 'force-right', right: 'force-left' }[ align ] || align;
+       // Transform values deprecated since v0.11.0
+       if ( align === 'left' || align === 'right' ) {
+               OO.ui.warnDeprecation( 'PopupWidget#setAlignment parameter value `' + align + '` is deprecated. Use `force-right` or `force-left` instead.' );
+               align = { left: 'force-right', right: 'force-left' }[ align ];
+       }
+
+       // Validate alignment
+       if ( [ 'force-left', 'force-right', 'backwards', 'forwards', 'center' ].indexOf( align ) > -1 ) {
+               this.align = align;
        } else {
                this.align = 'center';
        }
@@ -6281,7 +6356,7 @@ OO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {
  * OO.ui.MenuOptionWidget. The DropdownWidget takes care of opening and displaying the menu so that
  * users can interact with it.
  *
- * If you want to use this within a HTML form, such as a OO.ui.FormLayout, use
+ * If you want to use this within an HTML form, such as a OO.ui.FormLayout, use
  * OO.ui.DropdownInputWidget instead.
  *
  *     @example
@@ -6552,7 +6627,7 @@ OO.ui.RadioOptionWidget.prototype.setDisabled = function ( disabled ) {
  * an interface for adding, removing and selecting options.
  * Please see the [OOjs UI documentation on MediaWiki][1] for more information.
  *
- * If you want to use this within a HTML form, such as a OO.ui.FormLayout, use
+ * If you want to use this within an HTML form, such as a OO.ui.FormLayout, use
  * OO.ui.RadioSelectInputWidget instead.
  *
  *     @example
@@ -6913,7 +6988,7 @@ OO.ui.CheckboxMultioptionWidget.prototype.onKeyDown = function ( e ) {
  * CheckboxMultiselectWidget provides an interface for adding, removing and selecting options.
  * Please see the [OOjs UI documentation on MediaWiki][1] for more information.
  *
- * If you want to use this within a HTML form, such as a OO.ui.FormLayout, use
+ * If you want to use this within an HTML form, such as a OO.ui.FormLayout, use
  * OO.ui.CheckboxMultiselectInputWidget instead.
  *
  *     @example
@@ -7304,9 +7379,6 @@ OO.ui.FloatingMenuSelectWidget = function OoUiFloatingMenuSelectWidget( inputWid
 OO.inheritClass( OO.ui.FloatingMenuSelectWidget, OO.ui.MenuSelectWidget );
 OO.mixinClass( OO.ui.FloatingMenuSelectWidget, OO.ui.mixin.FloatableElement );
 
-// For backwards compatibility
-OO.ui.TextInputMenuSelectWidget = OO.ui.FloatingMenuSelectWidget;
-
 /* Methods */
 
 /**
@@ -7333,6 +7405,23 @@ OO.ui.FloatingMenuSelectWidget.prototype.toggle = function ( visible ) {
        return this;
 };
 
+/*
+ * The old name for the FloatingMenuSelectWidget widget, provided for backwards-compatibility.
+ *
+ * @class
+ * @extends OO.ui.FloatingMenuSelectWidget
+ *
+ * @constructor
+ * @deprecated since v0.12.5.
+ */
+OO.ui.TextInputMenuSelectWidget = function OoUiTextInputMenuSelectWidget() {
+       OO.ui.warnDeprecation( 'TextInputMenuSelectWidget is deprecated. Use the FloatingMenuSelectWidget instead.' );
+       // Parent constructor
+       OO.ui.TextInputMenuSelectWidget.parent.apply( this, arguments );
+};
+
+OO.inheritClass( OO.ui.TextInputMenuSelectWidget, OO.ui.FloatingMenuSelectWidget );
+
 /**
  * Progress bars visually display the status of an operation, such as a download,
  * and can be either determinate or indeterminate:
@@ -7835,7 +7924,7 @@ OO.ui.ButtonInputWidget.prototype.setValue = function ( value ) {
  * in {@link OO.ui.FieldLayout field layouts} that use the {@link OO.ui.FieldLayout#align inline}
  * alignment. For more information, please see the [OOjs UI documentation on MediaWiki][1].
  *
- * This widget can be used inside a HTML form, such as a OO.ui.FormLayout.
+ * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.
  *
  *     @example
  *     // An example of selected, unselected, and disabled checkbox inputs
@@ -7966,7 +8055,7 @@ OO.ui.CheckboxInputWidget.prototype.restorePreInfuseState = function ( state ) {
 
 /**
  * DropdownInputWidget is a {@link OO.ui.DropdownWidget DropdownWidget} intended to be used
- * within a HTML form, such as a OO.ui.FormLayout. The selected value is synchronized with the value
+ * within an HTML form, such as a OO.ui.FormLayout. The selected value is synchronized with the value
  * of a hidden HTML `input` tag. Please see the [OOjs UI documentation on MediaWiki][1] for
  * more information about input widgets.
  *
@@ -8128,7 +8217,7 @@ OO.ui.DropdownInputWidget.prototype.blur = function () {
  * with {@link OO.ui.RadioOptionWidget radio options} instead of this class. For more information,
  * please see the [OOjs UI documentation on MediaWiki][1].
  *
- * This widget can be used inside a HTML form, such as a OO.ui.FormLayout.
+ * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.
  *
  *     @example
  *     // An example of selected, unselected, and disabled radio inputs
@@ -8243,7 +8332,7 @@ OO.ui.RadioInputWidget.prototype.restorePreInfuseState = function ( state ) {
 
 /**
  * RadioSelectInputWidget is a {@link OO.ui.RadioSelectWidget RadioSelectWidget} intended to be used
- * within a HTML form, such as a OO.ui.FormLayout. The selected value is synchronized with the value
+ * within an HTML form, such as a OO.ui.FormLayout. The selected value is synchronized with the value
  * of a hidden HTML `input` tag. Please see the [OOjs UI documentation on MediaWiki][1] for
  * more information about input widgets.
  *
@@ -8581,7 +8670,7 @@ OO.ui.CheckboxMultiselectInputWidget.prototype.setOptions = function ( options )
  * which modifies incoming values rather than validating them.
  * Please see the [OOjs UI documentation on MediaWiki] [1] for more information and examples.
  *
- * This widget can be used inside a HTML form, such as a OO.ui.FormLayout.
+ * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.
  *
  *     @example
  *     // Example of a text input widget
@@ -9565,7 +9654,7 @@ OO.ui.SearchInputWidget.prototype.setReadOnly = function ( state ) {
  * - by choosing a value from the menu. The value of the chosen option will then appear in the text
  *   input field.
  *
- * This widget can be used inside a HTML form, such as a OO.ui.FormLayout.
+ * This widget can be used inside an HTML form, such as a OO.ui.FormLayout.
  *
  * For more information about menus and options, please see the [OOjs UI documentation on MediaWiki][1].
  *
@@ -9872,6 +9961,7 @@ OO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {
        this.notices = [];
        this.$field = $( '<div>' );
        this.$messages = $( '<ul>' );
+       this.$header = $( '<div>' );
        this.$body = $( '<' + ( hasInputWidget ? 'label' : 'div' ) + '>' );
        this.align = null;
        if ( config.help ) {
@@ -9905,8 +9995,9 @@ OO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {
        this.$element
                .addClass( 'oo-ui-fieldLayout' )
                .toggleClass( 'oo-ui-fieldLayout-disabled', this.fieldWidget.isDisabled() )
-               .append( this.$help, this.$body );
+               .append( this.$body );
        this.$body.addClass( 'oo-ui-fieldLayout-body' );
+       this.$header.addClass( 'oo-ui-fieldLayout-header' );
        this.$messages.addClass( 'oo-ui-fieldLayout-messages' );
        this.$field
                .addClass( 'oo-ui-fieldLayout-field' )
@@ -9992,10 +10083,15 @@ OO.ui.FieldLayout.prototype.setAlignment = function ( value ) {
                        value = 'left';
                }
                // Reorder elements
-               if ( value === 'inline' ) {
-                       this.$body.append( this.$field, this.$label );
+               if ( value === 'top' ) {
+                       this.$header.append( this.$label, this.$help );
+                       this.$body.append( this.$header, this.$field );
+               } else if ( value === 'inline' ) {
+                       this.$header.append( this.$label, this.$help );
+                       this.$body.append( this.$field, this.$header );
                } else {
-                       this.$body.append( this.$label, this.$field );
+                       this.$header.append( this.$label );
+                       this.$body.append( this.$header, this.$help, this.$field );
                }
                // Set classes. The following classes can be used here:
                // * oo-ui-fieldLayout-align-left
@@ -10200,6 +10296,8 @@ OO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {
        OO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: $( '<div>' ) } ) );
        OO.ui.mixin.GroupElement.call( this, config );
 
+       // Properties
+       this.$header = $( '<div>' );
        if ( config.help ) {
                this.popupButtonWidget = new OO.ui.PopupButtonWidget( {
                        classes: [ 'oo-ui-fieldsetLayout-help' ],
@@ -10222,10 +10320,13 @@ OO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {
        }
 
        // Initialization
+       this.$header
+               .addClass( 'oo-ui-fieldsetLayout-header' )
+               .append( this.$icon, this.$label, this.$help );
        this.$group.addClass( 'oo-ui-fieldsetLayout-group' );
        this.$element
                .addClass( 'oo-ui-fieldsetLayout' )
-               .prepend( this.$label, this.$help, this.$icon, this.$group );
+               .prepend( this.$header, this.$group );
        if ( Array.isArray( config.items ) ) {
                this.addItems( config.items );
        }
index c2ea652..96f6ebb 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:40Z
+ * Date: 2017-01-18T00:07:07Z
  */
 ( function ( OO ) {
 
index a367301..1fa8c8d 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:45Z
+ * Date: 2017-01-18T00:07:12Z
  */
 .oo-ui-popupTool .oo-ui-popupWidget-popup,
 .oo-ui-popupTool .oo-ui-popupWidget-anchor {
index 0610822..88b2c7c 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:45Z
+ * Date: 2017-01-18T00:07:12Z
  */
 .oo-ui-tool.oo-ui-widget-enabled {
   -webkit-transition: background-color 100ms;
   margin: 0 -1px;
   border: 1px solid #c8ccd1;
   background-color: #fff;
-  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
+  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25);
   min-width: 16em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link {
   pointer-events: none;
 }
 .oo-ui-toolbar-bar {
-  border-bottom: 1px solid #c8ccd1;
   background-color: #fff;
-  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-  font-weight: 500;
   color: #222;
+  border-bottom: 1px solid #c8ccd1;
+  box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
+  font-weight: 500;
 }
 .oo-ui-toolbar-bar .oo-ui-toolbar-bar {
   border-bottom: 0;
index 5280a9f..422704b 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:40Z
+ * Date: 2017-01-18T00:07:07Z
  */
 ( function ( OO ) {
 
index 941eb37..7e7d89c 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:45Z
+ * Date: 2017-01-18T00:07:12Z
  */
 .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: translate3d(0, 0, 0);
+  -webkit-transform: translateZ(0);
+          transform: translateZ(0);
   height: 2em;
   width: 4em;
   border-radius: 1em;
 }
 .oo-ui-capsuleItemWidget.oo-ui-widget-disabled {
   opacity: 0.5;
-  -webkit-transform: translate3d(0, 0, 0);
+  -webkit-transform: translateZ(0);
+          transform: translateZ(0);
   box-shadow: none;
   color: #333;
   background: #eee;
index 37eee66..11ebd2c 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:45Z
+ * Date: 2017-01-18T00:07:12Z
  */
 .oo-ui-draggableElement-handle,
 .oo-ui-draggableElement-handle.oo-ui-widget {
@@ -68,7 +68,7 @@
   border-right: 1px solid #ddd;
 }
 .oo-ui-bookletLayout-outlinePanel > .oo-ui-outlineControlsWidget {
-  box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15);
+  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25);
 }
 .oo-ui-indexLayout > .oo-ui-menuLayout-menu {
   height: 3em;
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
-  -webkit-transform: translate3d(0, 0, 0);
+  -webkit-transform: translateZ(0);
+          transform: translateZ(0);
   background-color: #f8f9fa;
   width: 3.5em;
   min-height: 26px;
index d7e92c2..e26e203 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:40Z
+ * Date: 2017-01-18T00:07:07Z
  */
 ( function ( OO ) {
 
@@ -3575,6 +3575,7 @@ OO.ui.CapsuleItemWidget.prototype.focus = function () {
  * @param {Object} [config] Configuration options
  * @cfg {string} [placeholder] Placeholder text
  * @cfg {boolean} [allowArbitrary=false] Allow data items to be added even if not present in the menu.
+ * @cfg {boolean} [allowDuplicates=false] Allow duplicate items to be added.
  * @cfg {Object} [menu] (required) Configuration options to pass to the
  *  {@link OO.ui.MenuSelectWidget menu select widget}.
  * @cfg {Object} [popup] Configuration options to pass to the {@link OO.ui.PopupWidget popup widget}.
@@ -3596,6 +3597,7 @@ OO.ui.CapsuleMultiselectWidget = function OoUiCapsuleMultiselectWidget( config )
        // Configuration initialization
        config = $.extend( {
                allowArbitrary: false,
+               allowDuplicates: false,
                $overlay: this.$element
        }, config );
 
@@ -3627,6 +3629,7 @@ OO.ui.CapsuleMultiselectWidget = function OoUiCapsuleMultiselectWidget( config )
        // Properties
        this.$content = $( '<div>' );
        this.allowArbitrary = config.allowArbitrary;
+       this.allowDuplicates = config.allowDuplicates;
        this.$overlay = config.$overlay;
        this.menu = new OO.ui.FloatingMenuSelectWidget( $.extend(
                {
@@ -3642,7 +3645,7 @@ OO.ui.CapsuleMultiselectWidget = function OoUiCapsuleMultiselectWidget( config )
        // Events
        if ( this.popup ) {
                $tabFocus.on( {
-                       focus: this.onFocusForPopup.bind( this )
+                       focus: this.focus.bind( this )
                } );
                this.popup.$element.on( 'focusout', this.onPopupFocusOut.bind( this ) );
                if ( this.popup.$autoCloseIgnore ) {
@@ -3826,7 +3829,7 @@ OO.ui.CapsuleMultiselectWidget.prototype.addItemsFromData = function ( datas ) {
        $.each( datas, function ( i, data ) {
                var item;
 
-               if ( !widget.getItemFromData( data ) ) {
+               if ( !widget.getItemFromData( data ) || widget.allowDuplicates ) {
                        item = menu.getItemFromData( data );
                        if ( item ) {
                                item = widget.createItemWidget( data, item.label );
@@ -4050,20 +4053,6 @@ OO.ui.CapsuleMultiselectWidget.prototype.onInputBlur = function () {
        this.clearInput();
 };
 
-/**
- * Handle focus events
- *
- * @private
- * @param {jQuery.Event} event
- */
-OO.ui.CapsuleMultiselectWidget.prototype.onFocusForPopup = function () {
-       if ( !this.isDisabled() ) {
-               this.popup.setSize( this.$handle.width() );
-               this.popup.toggle( true );
-               OO.ui.findFocusable( this.popup.$element ).focus();
-       }
-};
-
 /**
  * Handles popup focus out events.
  *
@@ -4329,10 +4318,21 @@ OO.ui.CapsuleMultiselectWidget.prototype.focus = function () {
 };
 
 /**
+ * The old name for the CapsuleMultiselectWidget widget, provided for backwards-compatibility.
+ *
  * @class
+ * @extends OO.ui.CapsuleMultiselectWidget
+ *
+ * @constructor
  * @deprecated since 0.17.3; use OO.ui.CapsuleMultiselectWidget instead
  */
-OO.ui.CapsuleMultiSelectWidget = OO.ui.CapsuleMultiselectWidget;
+OO.ui.CapsuleMultiSelectWidget = function OoUiCapsuleMultiSelectWidget() {
+       OO.ui.warnDeprecation( 'CapsuleMultiSelectWidget is deprecated. Use the CapsuleMultiselectWidget instead.' );
+       // Parent constructor
+       OO.ui.TextInputMenuSelectWidget.parent.apply( this, arguments );
+};
+
+OO.inheritClass( OO.ui.CapsuleMultiSelectWidget, OO.ui.CapsuleMultiselectWidget );
 
 /**
  * SelectFileWidgets allow for selecting files, using the HTML5 File API. These
index ff013a0..f29a03c 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:45Z
+ * Date: 2017-01-18T00:07:12Z
  */
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
   background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
index de26ac0..ba47634 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:45Z
+ * Date: 2017-01-18T00:07:12Z
  */
 .oo-ui-window {
   background: transparent;
   max-height: calc(100% - 2em);
   border: 1px solid #a2a9b1;
   border-radius: 2px;
-  box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15);
+  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25);
 }
index be81841..fc8beb2 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.18.3
+ * OOjs UI v0.18.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2017 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2017-01-04T00:22:40Z
+ * Date: 2017-01-18T00:07:07Z
  */
 ( function ( OO ) {
 
@@ -2702,7 +2702,8 @@ OO.ui.MessageDialog.static.name = 'message';
 
 OO.ui.MessageDialog.static.size = 'small';
 
-OO.ui.MessageDialog.static.verbose = false;
+// @deprecated since v0.18.4 as default; TODO: Remove
+OO.ui.MessageDialog.static.verbose = true;
 
 /**
  * Dialog title.
@@ -2810,7 +2811,6 @@ OO.ui.MessageDialog.prototype.getActionProcess = function ( action ) {
  * @param {Object} [data] Dialog opening data
  * @param {jQuery|string|Function|null} [data.title] Description of the action being confirmed
  * @param {jQuery|string|Function|null} [data.message] Description of the action's consequence
- * @param {boolean} [data.verbose] Message is verbose and should be styled as a long message
  * @param {Object[]} [data.actions] List of OO.ui.ActionOptionWidget configuration options for each
  *   action item
  */
@@ -2826,6 +2826,7 @@ OO.ui.MessageDialog.prototype.getSetupProcess = function ( data ) {
                        this.message.setLabel(
                                data.message !== undefined ? data.message : this.constructor.static.message
                        );
+                       // @deprecated since v0.18.4 as default; TODO: Remove and make default instead.
                        this.message.$element.toggleClass(
                                'oo-ui-messageDialog-message-verbose',
                                data.verbose !== undefined ? data.verbose : this.constructor.static.verbose
@@ -3397,7 +3398,6 @@ OO.ui.getWindowManager = function () {
 OO.ui.alert = function ( text, options ) {
        return OO.ui.getWindowManager().openWindow( 'messageDialog', $.extend( {
                message: text,
-               verbose: true,
                actions: [ OO.ui.MessageDialog.static.actions[ 0 ] ]
        }, options ) ).then( function ( opened ) {
                return opened.then( function ( closing ) {
@@ -3433,8 +3433,7 @@ OO.ui.alert = function ( text, options ) {
  */
 OO.ui.confirm = function ( text, options ) {
        return OO.ui.getWindowManager().openWindow( 'messageDialog', $.extend( {
-               message: text,
-               verbose: true
+               message: text
        }, options ) ).then( function ( opened ) {
                return opened.then( function ( closing ) {
                        return closing.then( function ( data ) {
@@ -3479,8 +3478,7 @@ OO.ui.prompt = function ( text, options ) {
        // TODO: This is a little hacky, and could be done by extending MessageDialog instead.
 
        return manager.openWindow( 'messageDialog', $.extend( {
-               message: textField.$element,
-               verbose: true
+               message: textField.$element
        }, options ) ).then( function ( opened ) {
                // After ready
                textInput.on( 'enter', function () {
index df6cf8b..db21542 100644 (file)
@@ -25,7 +25,7 @@
                // Events
                // Add the filterInput as trigger
                this.filterInput.$input
-                       .on( 'focus', this.onFocusForPopup.bind( this ) );
+                       .on( 'focus', this.focus.bind( this ) );
 
                this.$element
                        .addClass( 'mw-rcfilters-ui-filterCapsuleMultiselectWidget' );
        /**
         * @inheritdoc
         */
-       mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.onFocusForPopup = function () {
+       mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.focus = 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 );
+                       this.filterInput.$input.get( 0 ).focus();
                }
+               return this;
+       };
+
+       /**
+        * @inheritdoc
+        */
+       mw.rcfilters.ui.FilterCapsuleMultiselectWidget.prototype.onFocusForPopup = function () {
+               // HACK can be removed once I21b8cff4048 is merged in oojs-ui
+               this.focus();
        };
 
        /**
index f9cb5de..157ac06 100644 (file)
                                                        if ( self.wasDisabled === undefined ) {
                                                                self.wasDisabled = self.fieldWidget.isDisabled();
                                                        }
-                                                       self.fieldWidget.setDisabled( false );
+                                                       self.fieldWidget.setDisabled( true );
                                                } else if ( self.wasDisabled !== undefined ) {
                                                        self.fieldWidget.setDisabled( self.wasDisabled );
                                                }
index 4fd1cde..6d1fdf5 100644 (file)
@@ -241,4 +241,3 @@ class MWHttpRequestTestCase extends PHPUnit_Framework_TestCase {
                        array_change_key_case( $cookieJar->cookie, CASE_LOWER ) );
        }
 }
-
index 7809ab3..5ce0b34 100644 (file)
@@ -201,4 +201,3 @@ class DbTestPreviewer extends TestRecorder {
                        . " and $postDate";
        }
 }
-
index 0e94301..04a2a8d 100644 (file)
@@ -81,4 +81,3 @@ class DbTestRecorder extends TestRecorder {
                $this->db->commit( __METHOD__ );
        }
 }
-
index 4739be4..73d4a47 100644 (file)
@@ -55,4 +55,3 @@ class DjVuSupport {
                        && is_executable( $wgDjvuTxt );
        }
 }
-
index cad3a53..ac9f150 100644 (file)
@@ -323,4 +323,3 @@ class ParserTestPrinter extends TestRecorder {
                return ( $success == $total );
        }
 }
-
index a15d09e..37ed85f 100644 (file)
@@ -84,4 +84,3 @@ class ParserTestResultNormalizer {
                        [ '<body>' => '', '</body>' => '' ] );
        }
 }
-
index b6e811b..a96485d 100644 (file)
@@ -333,4 +333,3 @@ class TestFileReader {
                $this->requirements[$type][$name] = true;
        }
 }
-
index 4b81699..2731c4c 100644 (file)
@@ -91,4 +91,3 @@ class TestRecorder {
        }
 
 }
-
index 8ffcdfb..79feaa0 100644 (file)
@@ -24,4 +24,3 @@
  */
 function register_postsend_function( $callback ) {
 }
-
diff --git a/tests/phpunit/data/media/say-test.opus b/tests/phpunit/data/media/say-test.opus
new file mode 100644 (file)
index 0000000..168d218
Binary files /dev/null and b/tests/phpunit/data/media/say-test.opus differ
index 85927a3..53a36c5 100644 (file)
@@ -59,4 +59,14 @@ class MimeMagicTest extends PHPUnit_Framework_TestCase {
                $actualType = $this->mimeAnalyzer->getMediaType( $oggFile, 'application/ogg' );
                $this->assertEquals( $actualType, MEDIATYPE_AUDIO );
        }
+
+       /**
+        * Test to make sure that Opus audio files don't trigger
+        * MEDIATYPE_MULTIMEDIA (bug T151352)
+        */
+       function testOpusRecognize() {
+               $oggFile = __DIR__ . '/../../../data/media/say-test.opus';
+               $actualType = $this->mimeAnalyzer->getMediaType( $oggFile, 'application/ogg' );
+               $this->assertEquals( $actualType, MEDIATYPE_AUDIO );
+       }
 }
index fc5d660..eb163d3 100644 (file)
@@ -66,4 +66,3 @@ class ReverseChronologicalPagerTest extends MediaWikiLangTestCase {
                }
        }
 }
-
index 3fa8a9f..e9cf6a3 100644 (file)
@@ -121,13 +121,15 @@ class SpecialSearchTest extends MediaWikiTestCase {
                ] );
 
                # Initialize [[Special::Search]]
+               $ctx = new RequestContext();
+               $term = '{{SITENAME}}';
+               $ctx->setRequest( new FauxRequest( [ 'search' => $term, 'fulltext' => 1 ] ) );
+               $ctx->setTitle( Title::newFromText( 'Special:Search' ) );
                $search = new SpecialSearch();
-               $search->getContext()->setTitle( Title::newFromText( 'Special:Search' ) );
-               $search->load();
+               $search->setContext( $ctx );
 
                # Simulate a user searching for a given term
-               $term = '{{SITENAME}}';
-               $search->showResults( $term );
+               $search->execute( '' );
 
                # Lookup the HTML page title set for that page
                $pageTitle = $search
index e48a116..7a33a22 100644 (file)
@@ -7,4 +7,3 @@ class CoreParserTestSuite extends PHPUnit_Framework_TestSuite {
        }
 
 }
-