Merge "Use 'Create account' for button in Special:UserLogin/Signup"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 24 Sep 2015 06:52:35 +0000 (06:52 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 24 Sep 2015 06:52:35 +0000 (06:52 +0000)
425 files changed:
.jscsrc
.jshintrc
.mailmap
Gruntfile.js
RELEASE-NOTES-1.26
autoload.php
composer.json
docs/extension.schema.json
docs/hooks.txt
docs/uidesign/design.html
includes/AuthPlugin.php
includes/DefaultSettings.php
includes/Feed.php
includes/FileContentsHasher.php [new file with mode: 0644]
includes/GlobalFunctions.php
includes/Linker.php
includes/MWTimestamp.php
includes/MagicWord.php
includes/Preferences.php
includes/Setup.php
includes/User.php
includes/WebRequest.php
includes/WikiMap.php
includes/XmlSelect.php
includes/actions/RevertAction.php
includes/api/ApiFormatBase.php
includes/api/ApiFormatFeedWrapper.php
includes/api/ApiFormatJson.php
includes/api/ApiFormatXml.php
includes/api/ApiImport.php
includes/api/ApiMain.php
includes/api/ApiQueryDeletedRevisions.php
includes/api/ApiQuerySearch.php
includes/api/ApiResult.php
includes/api/ApiRevisionDelete.php
includes/api/ApiStashEdit.php
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/ja.json
includes/api/i18n/ksh.json
includes/api/i18n/lb.json
includes/api/i18n/mr.json
includes/api/i18n/nap.json
includes/api/i18n/nl.json
includes/api/i18n/olo.json [new file with mode: 0644]
includes/api/i18n/pl.json
includes/api/i18n/pt.json
includes/api/i18n/qqq.json
includes/api/i18n/sq.json
includes/api/i18n/zh-hans.json
includes/api/i18n/zh-hant.json
includes/changes/EnhancedChangesList.php
includes/changes/RecentChange.php
includes/db/Database.php
includes/db/DatabaseOracle.php
includes/debug/logger/MonologSpi.php
includes/debug/logger/monolog/AvroFormatter.php [new file with mode: 0644]
includes/debug/logger/monolog/BufferHandler.php [new file with mode: 0644]
includes/debug/logger/monolog/KafkaHandler.php [new file with mode: 0644]
includes/deferred/DataUpdate.php
includes/deferred/DeferredUpdates.php
includes/deferred/LinksDeletionUpdate.php [new file with mode: 0644]
includes/deferred/LinksUpdate.php
includes/exception/HttpError.php
includes/exception/MWExceptionHandler.php
includes/filebackend/FileBackend.php
includes/filebackend/FileBackendMultiWrite.php
includes/filebackend/FileBackendStore.php
includes/filebackend/MemoryFileBackend.php
includes/filebackend/lockmanager/LockManager.php
includes/htmlform/OOUIHTMLForm.php
includes/installer/MssqlInstaller.php
includes/installer/i18n/azb.json
includes/installer/i18n/el.json
includes/installer/i18n/es.json
includes/installer/i18n/it.json
includes/installer/i18n/jut.json
includes/installer/i18n/ksh.json
includes/installer/i18n/nah.json
includes/installer/i18n/nap.json
includes/installer/i18n/olo.json [new file with mode: 0644]
includes/installer/i18n/pt-br.json
includes/installer/i18n/pt.json
includes/installer/i18n/qqq.json
includes/installer/i18n/ru.json
includes/installer/i18n/sq.json
includes/jobqueue/jobs/RefreshLinksJob.php
includes/libs/CSSMin.php
includes/libs/objectcache/WANObjectCache.php
includes/libs/virtualrest/ParsoidVirtualRESTService.php
includes/libs/virtualrest/RestbaseVirtualRESTService.php
includes/libs/virtualrest/SwiftVirtualRESTService.php
includes/libs/virtualrest/VirtualRESTService.php
includes/media/GIF.php
includes/media/PNG.php
includes/objectcache/MultiWriteBagOStuff.php
includes/objectcache/RedisBagOStuff.php
includes/page/Article.php
includes/page/ImagePage.php
includes/page/WikiPage.php
includes/parser/Parser.php
includes/parser/ParserCache.php
includes/password/EncryptedPassword.php
includes/profiler/ProfilerFunctions.php
includes/registration/CoreVersionChecker.php [new file with mode: 0644]
includes/registration/ExtensionProcessor.php
includes/registration/ExtensionRegistry.php
includes/registration/Processor.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderEditToolbarModule.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/revisiondelete/RevDelList.php
includes/search/SearchResultSet.php
includes/skins/Skin.php
includes/specials/SpecialBlock.php
includes/specials/SpecialChangeEmail.php
includes/specials/SpecialEditTags.php
includes/specials/SpecialEmailuser.php
includes/specials/SpecialExport.php
includes/specials/SpecialImport.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPagesWithProp.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialSearch.php
includes/specials/SpecialSpecialpages.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialWantedtemplates.php
includes/tidy/RaggettWrapper.php
includes/upload/UploadBase.php
includes/upload/UploadFromUrl.php
includes/utils/AvroValidator.php [new file with mode: 0644]
includes/widget/ComplexTitleInputWidget.php [new file with mode: 0644]
includes/widget/NamespaceInputWidget.php
languages/i18n/ace.json
languages/i18n/ady-cyrl.json
languages/i18n/aeb-arab.json
languages/i18n/af.json
languages/i18n/am.json
languages/i18n/an.json
languages/i18n/ar.json
languages/i18n/arq.json
languages/i18n/ary.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/avk.json
languages/i18n/awa.json
languages/i18n/az.json
languages/i18n/azb.json
languages/i18n/ba.json
languages/i18n/bcc.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bgn.json
languages/i18n/bho.json
languages/i18n/bjn.json
languages/i18n/bn.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/cs.json
languages/i18n/cy.json
languages/i18n/da.json
languages/i18n/de-formal.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dsb.json
languages/i18n/dtp.json
languages/i18n/dty.json
languages/i18n/egl.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fo.json
languages/i18n/fr.json
languages/i18n/frp.json
languages/i18n/frr.json
languages/i18n/fy.json
languages/i18n/gd.json
languages/i18n/gl.json
languages/i18n/gom-deva.json
languages/i18n/gom-latn.json
languages/i18n/gsw.json
languages/i18n/gu.json
languages/i18n/gv.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hif-latn.json
languages/i18n/hil.json
languages/i18n/hr.json
languages/i18n/hrx.json
languages/i18n/hsb.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/ig.json
languages/i18n/ilo.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jut.json
languages/i18n/jv.json
languages/i18n/ka.json
languages/i18n/kab.json
languages/i18n/kk-cyrl.json
languages/i18n/km.json
languages/i18n/ko.json
languages/i18n/krc.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/ky.json
languages/i18n/la.json
languages/i18n/lad.json
languages/i18n/lb.json
languages/i18n/lez.json
languages/i18n/lg.json
languages/i18n/li.json
languages/i18n/lij.json
languages/i18n/lmo.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/lus.json
languages/i18n/lv.json
languages/i18n/mai.json
languages/i18n/map-bms.json
languages/i18n/mg.json
languages/i18n/min.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mn.json
languages/i18n/mr.json
languages/i18n/ms.json
languages/i18n/mt.json
languages/i18n/myv.json
languages/i18n/mzn.json
languages/i18n/nah.json
languages/i18n/nan.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/oc.json
languages/i18n/olo.json [new file with mode: 0644]
languages/i18n/or.json
languages/i18n/os.json
languages/i18n/pa.json
languages/i18n/pdc.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pnb.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/qu.json
languages/i18n/rm.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/rue.json
languages/i18n/sa.json
languages/i18n/sah.json
languages/i18n/sat.json
languages/i18n/sc.json
languages/i18n/scn.json
languages/i18n/sco.json
languages/i18n/ses.json
languages/i18n/sh.json
languages/i18n/si.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/so.json
languages/i18n/sq.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/stq.json
languages/i18n/su.json
languages/i18n/sv.json
languages/i18n/sw.json
languages/i18n/szl.json
languages/i18n/ta.json
languages/i18n/te.json
languages/i18n/tg-cyrl.json
languages/i18n/th.json
languages/i18n/tk.json
languages/i18n/tl.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/tyv.json
languages/i18n/ug-arab.json
languages/i18n/uk.json
languages/i18n/uz.json
languages/i18n/vec.json
languages/i18n/vep.json
languages/i18n/vi.json
languages/i18n/wa.json
languages/i18n/war.json
languages/i18n/wo.json
languages/i18n/xmf.json
languages/i18n/yi.json
languages/i18n/yo.json
languages/i18n/yue.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/i18n/zh-tw.json
languages/messages/MessagesLrc.php
maintenance/dictionary/mediawiki.dic
maintenance/jsduck/eg-iframe.html
maintenance/syncFileBackend.php
mw-config/images/help-question-hover.gif [new file with mode: 0644]
mw-config/images/help-question.gif [new file with mode: 0644]
package.json
resources/Resources.php
resources/ResourcesOOUI.php
resources/lib/oojs-ui/i18n/ca.json
resources/lib/oojs-ui/i18n/el.json
resources/lib/oojs-ui/i18n/en-ca.json
resources/lib/oojs-ui/i18n/en.json
resources/lib/oojs-ui/i18n/fa.json
resources/lib/oojs-ui/i18n/it.json
resources/lib/oojs-ui/i18n/ka.json
resources/lib/oojs-ui/i18n/krc.json
resources/lib/oojs-ui/i18n/krl.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/olo.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/pt.json
resources/lib/oojs-ui/i18n/qqq.json
resources/lib/oojs-ui/i18n/vec.json
resources/lib/oojs-ui/i18n/vi.json
resources/lib/oojs-ui/oojs-ui-apex-noimages.css
resources/lib/oojs-ui/oojs-ui-apex.js
resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/themes/apex/images/icons/picture.png
resources/lib/oojs-ui/themes/apex/images/icons/picture.svg
resources/lib/oojs-ui/themes/apex/images/icons/table.png
resources/lib/oojs-ui/themes/apex/images/icons/table.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/table.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/table.svg
resources/src/jquery/jquery.byteLimit.js
resources/src/jquery/jquery.suggestions.js
resources/src/mediawiki.legacy/oldshared.css
resources/src/mediawiki.legacy/shared.css
resources/src/mediawiki.messagePoster/mediawiki.messagePoster.MessagePoster.js
resources/src/mediawiki.special/mediawiki.special.css
resources/src/mediawiki.special/mediawiki.special.movePage.css [new file with mode: 0644]
resources/src/mediawiki.special/mediawiki.special.movePage.js
resources/src/mediawiki.special/mediawiki.special.preferences.css
resources/src/mediawiki.special/mediawiki.special.search.css
resources/src/mediawiki.widgets/mw.widgets.CalendarWidget.js
resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.base.css [new file with mode: 0644]
resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js [new file with mode: 0644]
resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.js
resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js
resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js
resources/src/mediawiki/mediawiki.ForeignStructuredUpload.js
resources/src/mediawiki/mediawiki.Title.js
resources/src/mediawiki/mediawiki.Upload.BookletLayout.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.Upload.Dialog.js
resources/src/mediawiki/mediawiki.Upload.js
resources/src/mediawiki/mediawiki.feedlink.css
resources/src/mediawiki/mediawiki.filewarning.less
resources/src/mediawiki/mediawiki.htmlform.js
resources/src/mediawiki/mediawiki.inspect.js
resources/src/mediawiki/mediawiki.js
resources/src/mediawiki/mediawiki.storage.js
resources/src/startup.js
tests/browser/features/support/pages/main_page.rb
tests/browser/features/support/pages/preferences_appearance_page.rb
tests/browser/features/support/pages/view_history_page.rb
tests/parser/parserTests.txt
tests/phpunit/LessFileCompilationTest.php
tests/phpunit/README
tests/phpunit/data/css/comments.css [new file with mode: 0644]
tests/phpunit/data/less/module/styles.css
tests/phpunit/includes/ConsecutiveParametersMatcher.php [new file with mode: 0644]
tests/phpunit/includes/FauxRequestTest.php
tests/phpunit/includes/LinkerTest.php
tests/phpunit/includes/WikiMapTest.php [new file with mode: 0644]
tests/phpunit/includes/WikiReferenceTest.php [new file with mode: 0644]
tests/phpunit/includes/api/ApiResultTest.php
tests/phpunit/includes/changes/RecentChangeTest.php
tests/phpunit/includes/debug/logger/monolog/AvroFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/debug/logger/monolog/KafkaHandlerTest.php [new file with mode: 0644]
tests/phpunit/includes/debug/logger/monolog/LineFormatterTest.php
tests/phpunit/includes/filebackend/FileBackendTest.php
tests/phpunit/includes/logging/LogFormatterTest.php
tests/phpunit/includes/media/GIFTest.php
tests/phpunit/includes/media/PNGTest.php
tests/phpunit/includes/objectcache/MultiWriteBagOStuffTest.php [new file with mode: 0644]
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/registration/CoreVersionCheckerTest.php [new file with mode: 0644]
tests/phpunit/includes/registration/ExtensionRegistryTest.php
tests/phpunit/includes/specials/SpecialSearchTest.php
tests/phpunit/includes/utils/AvroValidatorTest.php [new file with mode: 0644]
tests/phpunit/structure/ResourcesTest.php
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.storage.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js

diff --git a/.jscsrc b/.jscsrc
index aaa876c..46d98aa 100644 (file)
--- a/.jscsrc
+++ b/.jscsrc
@@ -7,6 +7,7 @@
        "disallowQuotedKeysInObjects": "allButReserved",
        "requireDotNotation": { "allExcept": [ "keywords" ] },
        "jsDoc": {
+               "checkRedundantReturns": true,
                "requireNewlineAfterDescription": true,
                "requireParamTypes": true,
                "requireReturnTypes": true
index b84d276..b776e8f 100644 (file)
--- a/.jshintrc
+++ b/.jshintrc
@@ -22,7 +22,7 @@
                "mediaWiki": true,
                "JSON": true,
                "OO": true,
-               "performance": true,
+               "mwPerformance": true,
                "jQuery": false,
                "QUnit": false,
                "sinon": false
index 12ff31d..5c82af8 100644 (file)
--- a/.mailmap
+++ b/.mailmap
@@ -7,14 +7,25 @@ addshore <addshorewiki@gmail.com>
 Adrian Heine <adrian.heine@wikimedia.de>
 Alex Monk <krenair@gmail.com>
 Alex Monk <krenair@gmail.com> <krenair@wikimedia.org>
+Alex Z <mrzmanwiki@gmail.com> <mrzman@users.mediawiki.org>
 Alexander Emsenhuber <ialex.wiki@gmail.com>
 Alexander Emsenhuber <ialex.wiki@gmail.com> <ialex@users.mediawiki.org>
 Alexander Emsenhuber <ialex.wiki@gmail.com> <mediawiki@emsenhuber.ch>
 Alexia E. Smith <washuu@gmail.com>
 Amir E. Aharoni <amir.aharoni@mail.huji.ac.il>
+Amir E. Aharoni <amir.aharoni@mail.huji.ac.il> <amire80@users.mediawiki.org>
+Anders Wegge Jakobsen <awegge@gmail.com> <wegge@users.mediawiki.org>
+Andre Engels <andreengels@gmail.com> <a_engels@users.mediawiki.org>
+Andrew Garrett <agarrett@wikimedia.org> <werdna@users.mediawiki.org>
+Angela Beesley Starling <wiki@nge.la> <angelab@users.mediawiki.org>
 Antoine Musso <hashar@free.fr>
 Antoine Musso <hashar@free.fr> <hashar@users.mediawiki.org>
+Aran Dunkley <aran@organicdesign.co.nz> <nad@users.mediawiki.org>
+Ariel Glenn <ariel@wikimedia.org> <ariel@users.mediawiki.org>
 Arlo Breault <abreault@wikimedia.org>
+Arthur Richards <arichards@wikimedia.org> <awjrichards@users.mediawiki.org>
+Aryeh Gregor <simetrical+mw@gmail.com> <simetrical@users.mediawiki.org>
+Asher Feldman <afeldman@wikimedia.org> <asher@users.mediawiki.org>
 aude <aude.wiki@gmail.com>
 Audrey Tang <audreyt@audreyt.org>
 Audrey Tang <audreyt@audreyt.org> <au@localhost>
@@ -23,37 +34,56 @@ Bahodir Mansurov <bmansurov@wikimedia.org>
 Bartosz Dziewoński <matma.rex@gmail.com>
 Bartosz Dziewoński <matma.rex@gmail.com> <matmarex@wikimedia.org>
 Bartosz Dziewoński <matma.rex@gmail.com> <bdziewonski@wikimedia.org>
+Ben Hartshorne <bhartshorne@wikimedia.org> <ben@users.mediawiki.org>
 Bene <benestar.wikimedia@gmail.com>
+Benjamin Lees <emufarmers@gmail.com> <emufarmers@users.mediawiki.org>
+Benny Situ <bsitu@wikimedia.org> <bsitu@users.mediawiki.org>
+Bertrand Grondin <bertrand.grondin@tiscali.fr> <grondin@users.mediawiki.org>
 Brad Jorsch <bjorsch@wikimedia.org>
+Brandon Harris <bharris@wikimedia.org> <bharris@users.mediawiki.org>
+Brian Wolff <bawolff+svn@gmail.com> <bawolff@users.mediawiki.org>
 Brian Wolff <bawolff+wn@gmail.com>
 Brion Vibber <brion@wikimedia.org>
 Brion Vibber <brion@wikimedia.org> <brion@pobox.com>
 Brion Vibber <brion@wikimedia.org> <brion@users.mediawiki.org>
 Bryan Davis <bd808@wikimedia.org>
+Bryan Tong Minh <bryan.tongminh@gmail.com> <btongminh@users.mediawiki.org>
 C. Scott Ananian <cscott@cscott.net>
 C. Scott Ananian <cscott@cscott.net> <cananian@wikimedia.org>
 cacycle@gerrit.wikimedia.org <cacyclewp@gmail.com>
 cenarium <cenarium.sysop@gmail.com>
 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 McMahon <cmcmahon@wikimedia.org>
 Chris Steipp <csteipp@wikimedia.org>
+Christian Aistleitner <christian@quelltextlich.at> <qchris@users.mediawiki.org>
 Christian Aistleitner <christian@quelltextlich.at>
 Christian Williams <orbit@framezero.com>
 Christian Williams <orbit@framezero.com> <christian@localhost>
 Christian Williams <orbit@framezero.com> <christian@wikia-inc.com>
 ckoerner <nobelx@gmail.com>
+Conrad Irwin <conrad.irwin+wiki@gmail.com> <conrad@users.mediawiki.org>
 Dan Duvall <dduvall@wikimedia.org>
 dan-nl <d_entous@yahoo.com>
-Daniel Kinzler <daniel.kinzler@wikimedia.de>
 Daniel A. R. Werner <daniel.a.r.werner@gmail.com>
+Daniel Cannon <cannon.danielc@gmail.com> <amidaniel@users.mediawiki.org>
+Daniel Friesen <mediawiki@danielfriesen.name> <dantman@users.mediawiki.org>
+Daniel Kinzler <daniel.kinzler@wikimedia.de>
+Daniel Kinzler <daniel.kinzler@wikimedia.de> <daniel@users.mediawiki.org>
+Danny B <Wikipedia.Danny.B@email.cz> <danny_b@users.mediawiki.org>
 David Chan <david@sheetmusic.org.uk>
+Derk-Jan Hartman <hartman@videolan.org> <hartman@users.mediawiki.org>
 Derk-Jan Hartman <hartman.wiki@gmail.com>
+Diederik van Liere <dvanliere@gmail.com> <diederik@users.mediawiki.org>
+Domas Mituzas <domas.mituzas@gmail.com> <midom@users.mediawiki.org>
 Douglas Gardner <douglas@chippy.ch>
 DPStokesNZ <duncan.stokes@gmail.com>
 Ebrahim Byagowi <ebrahim@gnu.org>
 Ed Sanders <esanders@wikimedia.org>
 Elliott Eggleston <ejegg@ejegg.com>
+Emmanuel Engelhart <kelson@kiwix.org> <kelson42@users.mediawiki.org>
 eranroz <eranroz89@gmail.com>
 Erik Bernhardson <ebernhardson@wikimedia.org>
 Erik Moeller <erik@wikimedia.org>
@@ -61,8 +91,11 @@ Erik Moeller <erik@wikimedia.org> <erik@users.mediawiki.org>
 Erwin Dokter <erwin@darcoury.nl>
 Evan McIntire <mcintire.evan@gmail.com>
 Federico Leva <federicoleva@tiscali.it>
-Florianschmidtwelzow <florian.schmidt.welzow@t-online.de>
+Fenzik Joseph <fenzik@gmail.com> <fenzik@users.mediawiki.org>
+Florianschmidtwelzow <florian.schmidt.welzow@t-online.de> <florian.schmidt.stargatewissen@gmail.com>
+Florianschmidtwelzow <florian.schmidt.welzow@t-online.de> Florian <florian.schmidt.welzow@t-online.de>
 Fomafix <fomafix@googlemail.com>
+Fran Rogers <fran@dumetella.net> <krimpet@users.mediawiki.org>
 FunPika <funpikawiki@gmail.com>
 Gabriel Wicke <gwicke@wikimedia.org>
 Gabriel Wicke <gwicke@wikimedia.org> <gwicke@users.mediawiki.org>
@@ -74,111 +107,183 @@ Giftpflanze <gifti@tools.wmflabs.org>
 Gilles Dubuc <gdubuc@wikimedia.org>
 gladoscc <admin@glados.cc>
 glaisher <glaisher.wiki@gmail.com>
+Greg Sabino Mullane <greg@turnstep.com>
+Greg Sabino Mullane <greg@turnstep.com> <greg@endpoint.com>
+Greg Sabino Mullane <greg@turnstep.com> <greg@users.mediawiki.org>
+Guy Van den Broeck <guyvdb@gmail.com> <guyvdb@users.mediawiki.org>
+Happy-melon <happy-melon@live.com> <happy-melon@users.mediawiki.org>
 Helder <he7d3r@gmail.com>
 Helder <he7d3r@gmail.com> <helder.wiki@gmail.com>
 Hoo man <hoo@online.de>
+Huji <huji.huji@gmail.com> <huji@users.mediawiki.org>
+Ian Baker <ibaker@wikimedia.org> <raindrift@users.mediawiki.org>
+Ilmari Karonen <nospam@vyznev.net> <vyznev@users.mediawiki.org>
 Inez Korczyński <inez@wikia-inc.com>
 Inez Korczyński <inez@wikia-inc.com> <inez@users.mediawiki.org>
 isarra <s@zaori.org>
+Ivan Lanin <ivanlanin@gmail.com> <ivanlanin@users.mediawiki.org>
+Jack Phoenix <jack@countervandalism.net> <ashley@users.mediawiki.org>
 Jack Phoenix <jack@countervandalism.net>
 Jackmcbarn <jackmcbarn@gmail.com>
 Jackmcbarn <jackmcbarn@users.noreply.github.com>
 jagori <jagori79@gmail.com>
 James D. Forrester <jforrester@wikimedia.org>
+Jan Gerber <j@thing.net> <j@users.mediawiki.org>
+Jan Luca Naumann <jan@jans-seite.de> <jan@users.mediawiki.org>
+Jan Paul Posma <jp.posma@gmail.com> <janpaul123@users.mediawiki.org>
 Jan Zerebecki <jan.wikimedia@zerebecki.de>
 Jaroslav Škarvada <jskarvad@redhat.com>
 jarrettmunton <jmuntjmunt@gmail.com>
+Jason Richey <jasonr@wikia.com> <jasonr@users.mediawiki.org>
 Jeff Hall <jeffreyehall@gmail.com>
 Jeff Hall <jeffreyehall@gmail.com> <jhall@wikimedia.org>
 Jeff Janes <jeff.janes@gmail.com>
-jeroendedauw <jeroendedauw@gmail.com>
+Jeremy Postlethwaite <jpostlethwaite@wikimedia.org> <jpostlethwaite@users.mediawiki.org>
+Jeroen De Dauw <jeroendedauw@gmail.com>
+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>
+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>
 Jon Robson <jrobson@wikimedia.org> <jdlrobson@gmail.com>
 Juliusz Gonera <jgonera@gmail.com>
 Juliusz Gonera <jgonera@gmail.com> <jgonera@wikimedia.org>
 JuneHyeon Bae <devunt@gmail.com>
+Jure Kajzer <freak@drajv.si> <freakolowsky@users.mediawiki.org>
+Katie Filbert <aude.wiki@gmail.com> <aude@users.mediawiki.org>
 Kevin Israel <pleasestand@live.com>
 Kunal Mehta <legoktm@gmail.com>
 Kunal Mehta <legoktm@gmail.com> <legoktm.wikipedia@gmail.com>
+Kwan Ting Chan <ktc@ktchan.info> <ktchan@users.mediawiki.org>
 lekshmi <andnlnbn18@gmail.com>
+Leo Koppelkamm <diebuche@gmail.com> <diebuche@users.mediawiki.org>
+Leon Weber <leon@vserver152.masterssystems.com> <leon@users.mediawiki.org>
+Leonardo Gregianin <leogregianin@googlemail.com> <leogregianin@users.mediawiki.org>
+Leons Petrazickis <leons.petrazickis.haveyouconsiderednotincludingthisphrase@gmail.com> <leonsp@users.mediawiki.org>
 Liangent <liangent@gmail.com>
+Lisa Ridley <lhridley@gmail.com> <lhridley@users.mediawiki.org>
 Ljudusika <plo2000@i.ua>
 Luis Felipe Schenone <schenonef@gmail.com>
 m4tx <m4tx@m4tx.pl>
+Magnus Manske <magnusmanske@googlemail.com> <magnusmanske@users.mediawiki.org>
+Manuel Schneider <manuel.schneider@wikimedia.ch> <80686@users.mediawiki.org>
+Marcin Cieślak <saper@saper.info> <saper@users.mediawiki.org>
 Marielle Volz <marielle.volz@gmail.com>
 Marius Hoch <hoo@online.de>
 Mark A. Hershberger <mah@everybody.org>
 Mark A. Hershberger <mah@everybody.org> <mah@nichework.com>
 Mark A. Hershberger <mah@everybody.org> <mah@users.mediawiki.org>
+Mark Clements <mediawiki@kennel17.co.uk> <happydog@users.mediawiki.org>
 Mark Holmquist <mtraceur@member.fsf.org>
 Marko Obrovac <mobrovac@wikimedia.org>
+Matt Johnston <mattj@emazestudios.com> <mattj@users.mediawiki.org>
+Matthew Britton <hugglegurch@gmail.com> <gurch@users.mediawiki.org>
 Matthew Flaschen <mflaschen@wikimedia.org>
 Matthias Mullie <git@mullie.eu>
+Matěj Grabovský <mgrabovsky@yahoo.com> <mgrabovsky@users.mediawiki.org>
 Max Semenik <maxsem.wiki@gmail.com>
+Max Semenik <maxsem.wiki@gmail.com> <maxsem@users.mediawiki.org>
 mgooley <g0013y@gmail.com>
+Michael Dale <mdale@wikimedia.org> <dale@users.mediawiki.org>
 mjbmr <mjbmri@gmail.com>
+Mohamed Magdy <mohamedmk@gmail.com> <alnokta@users.mediawiki.org>
 Moriel Schottlender <mschottlender@wikimedia.org>
 Moriel Schottlender <mschottlender@wikimedia.org> <moriel@gmail.com>
 Mormegil <mormegil@centrum.cz>
 Mukunda Modell <mmodell@wikimedia.org>
 MZMcBride <g@mzmcbride.com>
+nadeesha <nadeesha@calcey.com> <nadeesha@users.mediawiki.org>
 Namit <namit.ohri@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>
 Nik Everett <neverett@wikimedia.org>
 Niklas Laxström <niklas.laxstrom@gmail.com>
+Niklas Laxström <niklas.laxstrom@gmail.com> <nikerabbit@users.mediawiki.org>
+Nimish Gautam <nimishg@wikimedia.org> <nimishg@users.mediawiki.org>
 Nuria Ruiz <nuria@wikimedia.org>
 Ori.livneh <ori@wikimedia.org>
+OverlordQ <wikipedia@thedarkcitadel.com> <overlordq@users.mediawiki.org>
 paladox <thomasmulhall410@yahoo.com>
+Patrick Reilly <preilly@wikimedia.org> <preilly@users.mediawiki.org>
 Patrick Westerhoff <PatrickWesterhoff@gmail.com>
+Paul Copperman <paul.copperman@gmail.com> <pcopp@users.mediawiki.org>
 Peter Coti <petercoti@gmail.com>
+Peter Potrowl <peter017@gmail.com> <peter17@users.mediawiki.org>
 Petr Kadlec <mormegil@centrum.cz>
+Philip Tzou <philip.npc@gmail.com> <philip@users.mediawiki.org>
 physikerwelt (Moritz Schubotz) <wiki@physikerwelt.de>
 PiRSquared17 <pirsquared@tools.wmflabs.org>
+Platonides <platonides@gmail.com> <platonides@users.mediawiki.org>
 PranavK <pranavmk98@gmail.com>
 Prateek Saxena <psaxena@wikimedia.org>
 Prateek Saxena <psaxena@wikimedia.org> <prtksxna@gmail.com>
-Purodha <purodha@blissenbach.org>
+Priyanka Dhanda <pdhanda@wikimedia.org> <pdhanda@users.mediawiki.org>
+Purodha B Blissenbach <purodha@blissenbach.org>
+Purodha B Blissenbach <purodha@blissenbach.org> <purodha@users.mediawiki.org>
+Purodha B Blissenbach <purodha@blissenbach.org> <publi@web.de>
 Raimond Spekking <raimond.spekking@gmail.com>
 Raimond Spekking <raimond.spekking@gmail.com> <raymond@users.mediawiki.org>
+Remember the dot <rememberthedot@gmail.com> <rememberthedot@users.mediawiki.org>
 Reza <reza.energy@gmail.com>
 Ricordisamoa <ricordisamoa@openmailbox.org>
 rillke <rillke@wikipedia.de>
 rillke <rillke@wikipedia.de> <rainerrillke@hotmail.com>
+River Tarnell <river@wikimedia.org> <river@users.mediawiki.org>
+River Tarnell <river@wikimedia.org> <kateturner@users.mediawiki.org>
 Roan Kattouw <roan.kattouw@gmail.com>
 Roan Kattouw <roan.kattouw@gmail.com> <catrope@users.mediawiki.org>
 Roan Kattouw <roan.kattouw@gmail.com> <roan@wikimedia.org>
+Rob Church <robchur@gmail.com> <robchurch@users.mediawiki.org>
+Rob Lanphier <robla@robla.net> <robla@users.mediawiki.org>
 Rob Moen <rmoen@mediawiki.org>
 Rob Moen <rmoen@mediawiki.org> <rmoen@users.mediawiki.org>
 Rob Moen <rmoen@mediawiki.org> <rmoen@wikimedia.org>
 Robert Hoenig <indielives010@gmail.com>
+Robert Leverington <robert@rhl.me.uk> <roberthl@users.mediawiki.org>
+Robert Rohde <rarohde@gmail.com> <rarohde@users.mediawiki.org>
+Robert Stojnić <rainmansr@gmail.com> <rainman@users.mediawiki.org>
+Robin Pepermans <robinp.1273@gmail.com> <robin@users.mediawiki.org>
 robinhood701 <robinhood70@live.ca>
 Rohan <rohan1395@yahoo.com>
+Rotem Liss <rotemliss@gmail.com> <rotem@users.mediawiki.org>
 Rummana Yasmeen <ryasmeen@wikimedia.org>
+Russ Nelson <russnelson@gmail.com> <nelson@users.mediawiki.org>
+Ryan Kaldari <rkaldari@wikimedia.org> <kaldari@users.mediawiki.org>
 Ryan Kaldari <rkaldari@wikimedia.org>
 Ryan Kaldari <rkaldari@wikimedia.org> <kaldari@gmail.com>
+Ryan Lane <rlane32@gmail.com> <laner@users.mediawiki.org>
+Ryan Schmidt <skizzerz@gmail.com> <skizzerz@users.mediawiki.org>
 S Page <spage@wikimedia.org>
 Sam Reed <reedy@wikimedia.org>
 Sam Reed <reedy@wikimedia.org> <reedy@users.mediawiki.org>
 Sam Smith <git@samsmith.io>
+Santhosh Thottingal <santhosh.thottingal@gmail.com> <santhosh@users.mediawiki.org>
 Santhosh Thottingal <santhosh.thottingal@gmail.com>
 saper <saper@saper.info>
 Schnark <listenleser@gmail.com>
 Scimonster <tehalmightyscimonster@gmail.com>
+Sean Colombo <sean.colombo@gmail.com> <sean_colombo@users.mediawiki.org>
 Sean Pringle <springle@wikimedia.org>
 Seb35 <seb35wikipedia@gmail.com>
 Sergio Santoro <santoro.srg@gmail.com>
 Shahyar <shahyar@gmail.com>
+Shinjiman <shinjiman@gmail.com> <shinjiman@users.mediawiki.org>
 Siebrand Mazeland <s.mazeland@xs4all.nl>
 Siebrand Mazeland <s.mazeland@xs4all.nl> <siebrand@kitano.nl>
 Siebrand Mazeland <s.mazeland@xs4all.nl> <siebrand@users.mediawiki.org>
 Siebrand Mazeland <s.mazeland@xs4all.nl> <siebrand@wikimedia.org>
 Southparkfan <southparkfan223@hotmail.com>
+SQL <sxwiki@gmail.com> <sql@users.mediawiki.org>
 Stanislav Malyshev <smalyshev@gmail.com>
 Stephan Gambke <s7eph4n@gmail.com>
 Stephane Bisson <sbisson@wikimedia.org>
 Stephen Liang <github@stephenliang.pw>
+Steve Sanbeg <ffnaort@jro.qr> <sanbeg@users.mediawiki.org>
 Steven Roddis <StevenRoddis@users.noreply.github.com>
 Subramanya Sastry <ssastry@wikimedia.org>
 Sucheta Ghoshal <sghoshal@wikimedia.org>
@@ -188,12 +293,20 @@ TheDJ <hartman.wiki@gmail.com>
 Thiemo Mättig (WMDE) <thiemo.maettig@wikimedia.de>
 This, that and the other <at.light@live.com.au>
 tholam <t.lam@lamsinfosystem.com>
+Thomas Bleher <ThomasBleher@gmx.de> <tbleher@users.mediawiki.org>
+Thomas Dalton <thomas.dalton@gmail.com> <tango@users.mediawiki.org>
+Thomas Gries <mail@tgries.de> <wikinaut@users.mediawiki.org>
 Tim Landscheidt <tim@tim-landscheidt.de>
+Tim Laqua <t.laqua@gmail.com> <tlaqua@users.mediawiki.org>
 Tim Starling <tstarling@wikimedia.org>
+Tim Starling <tstarling@wikimedia.org> <tstarling@users.mediawiki.org>
 Timo Tijhof <krinklemail@gmail.com>
+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>
+Tom Maaswinkel <tom.maaswinkel@12wiki.eu> <thedevilonline@users.mediawiki.org>
+Tomasz Finc <tfinc@wikimedia.org> <tomasz@users.mediawiki.org>
 Tony Thomas <01tonythomas@gmail.com>
 Trevor Parscal <trevorparscal@gmail.com>
 Trevor Parscal <trevorparscal@gmail.com> <tparscal@users.mediawiki.org>
@@ -201,13 +314,20 @@ Trevor Parscal <trevorparscal@gmail.com> <tparscal@wikimedia.org>
 Tyler Cipriani <tcipriani@wikimedia.org>
 Tyler Romeo <tylerromeo@gmail.com>
 umherirrender <umherirrender_de.wp@web.de>
+Victor Vasiliev <vasilvv@mit.edu> <vasilievvv@users.mediawiki.org>
 Vikas S Yaligar <vikasyaligar.it@gmail.com>
 Vivek Ghaisas <v.a.ghaisas@gmail.com>
 wctaiwan <wctaiwan@gmail.com>
 withoutaname <drevitchi@gmail.com>
+X! <soxred93@gmail.com> <soxred93@users.mediawiki.org>
 Yaroslav Melnychuk <yaroslavmelnuchuk@gmail.com>
 Yuri Astrakhan <yurik@wikimedia.org>
+Yuri Astrakhan <yurik@wikimedia.org> <yurik@users.mediawiki.org>
 Yusuke Matsubara <whym@whym.org>
 YuviPanda <yuvipanda@gmail.com>
+Zak Greant <zak+mediawiki@fooassociates.com> <zak@users.mediawiki.org>
+Ævar Arnfjörð Bjarmason <avarab@gmail.com> <avar@users.mediawiki.org>
 Željko Filipin <zeljko.filipin@gmail.com>
 Željko Filipin <zeljko.filipin@gmail.com> <zfilipin@wikimedia.org>
+Zhengzhu Feng <zhengzhu@gmail.com>
+Zhengzhu Feng <zhengzhu@gmail.com> <zhengzhu@users.mediawiki.org>
index 035a208..8dbeb6b 100644 (file)
@@ -32,6 +32,11 @@ module.exports = function ( grunt ) {
                        ]
                },
                banana: {
+                       options: {
+                               disallowBlankTranslations: false,
+                               disallowDuplicateTranslations: false,
+                               disallowUnusedTranslations: false
+                       },
                        core: 'languages/i18n/',
                        api: 'includes/api/i18n/',
                        installer: 'includes/installer/i18n/'
index 8f5db0e..99fc2eb 100644 (file)
@@ -30,6 +30,20 @@ production.
 * Custom LESS functions (defined via $wgResourceLoaderLESSFunctions)
   have been removed, after being deprecated in 1.24.
 * $wgAlwaysUseTidy has been removed.
+* ResetSessionID hook has been removed. Nothing seems to use it.
+* Certain AuthPlugin methods are deprecated in favor of new hooks:
+** AuthPlugin::initUser() is replaced by LocalUserCreated.
+** AuthPlugin::updateUser() is replaced by UserLoggedIn.
+** AuthPlugin::updateExternalDB() is replaced by the existing UserSaveSettings.
+** AuthPlugin::updateExternalDBGroups() is replaced by UserGroupsChanged.
+** AuthPluginUser::isHidden() is replaced by UserIsHidden.
+** AuthPluginUser::isLocked() is replaced by UserIsLocked.
+* The UserRights hook is deprecated in favor of the new UserGroupsChanged hook.
+* AuthPlugin::initUser() and AuthPlugin::updateUser() should no longer replace
+  the passed User object.
+* $wgBlockAllowsUTEdit is now set to true by default. This allows
+  blocked users to edit their talk pages unless explicitly disabled
+  when they are being blocked.
 
 === New features in 1.26 ===
 * (T51506) Now action=info gives estimates of actual watchers for a page.
@@ -59,6 +73,9 @@ production.
 * Caches that need purging ability now use the WANObjectCache interface.
   This corresponds to a new $wgMainWANCache setting, which defaults to using
   the $wgMainCacheType settings.
+* Added MWTimestamp::getTimezoneString() which returns the localized timezone
+  string, if available. To localize this string, see the comments of
+  $wgLocaltimezone in includes/DefaultSettings.php.
 * Callers needing fast light-weight data stores use $wgMainStash to select
   the store type from $wgObjectCaches. The default is the local database.
 * Interface message overrides in the MediaWiki namespace will now be cached in
@@ -139,6 +156,7 @@ changes to languages because of Phabricator reports.
 * ChangeTags::tagDescription() will return false if the interface message
   for the tag is disabled.
 * Added PageHistoryPager::doBatchLookups hook.
+* Added $wikiId parameter to FormatAutocomments hook.
 * Added ParserCacheSaveComplete to ParserCache
 * supportsDirectEditing and supportsDirectApiEditing methods added to
   ContentHandler, to provide a way for ApiEditPage and EditPage to check
@@ -186,6 +204,15 @@ changes to languages because of Phabricator reports.
 * Watchlist tokens, SpecialResetTokens, and User::getTokenFromOption()
   are deprecated. Applications using those can work via the OAuth
   extension instead. New tokens types should not be added.
+* (T36948) The default file revert message's timestamp is now in $wgLocaltimezone,
+  instead of UTC.
+* DatabaseBase::errorCount() was removed (unused).
+* $wgDeferredUpdateList was removed.
+* DeferredUpdates::addHTMLCacheUpdate() was removed.
+* The default name of the 'suppress' group page has been changed from
+  'Project:Oversight' to 'Project:Suppress'.
+* (T84937) Free external links ("autolinked" urls) will now be terminated
+  by &nbsp; and HTML entity encodings of &nbsp, <, and >.
 
 == Compatibility ==
 
index 4db3ec7..e5e7cda 100644 (file)
@@ -149,6 +149,7 @@ $wgAutoloadLocalClasses = array(
        'AutoLoader' => __DIR__ . '/includes/AutoLoader.php',
        'AutoloadGenerator' => __DIR__ . '/includes/utils/AutoloadGenerator.php',
        'Autopromote' => __DIR__ . '/includes/Autopromote.php',
+       'AvroValidator' => __DIR__ . '/includes/utils/AvroValidator.php',
        'BacklinkCache' => __DIR__ . '/includes/cache/BacklinkCache.php',
        'BacklinkJobUtils' => __DIR__ . '/includes/jobqueue/utils/BacklinkJobUtils.php',
        'BackupDumper' => __DIR__ . '/maintenance/backup.inc',
@@ -273,6 +274,7 @@ $wgAutoloadLocalClasses = array(
        'CopyJobQueue' => __DIR__ . '/maintenance/copyJobQueue.php',
        'CoreParserFunctions' => __DIR__ . '/includes/parser/CoreParserFunctions.php',
        'CoreTagHooks' => __DIR__ . '/includes/parser/CoreTagHooks.php',
+       'CoreVersionChecker' => __DIR__ . '/includes/registration/CoreVersionChecker.php',
        'CreateAndPromote' => __DIR__ . '/maintenance/createAndPromote.php',
        'CreateFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
        'CreditsAction' => __DIR__ . '/includes/actions/CreditsAction.php',
@@ -382,6 +384,7 @@ $wgAutoloadLocalClasses = array(
        'EnhancedChangesList' => __DIR__ . '/includes/changes/EnhancedChangesList.php',
        'EnotifNotifyJob' => __DIR__ . '/includes/jobqueue/jobs/EnotifNotifyJob.php',
        'EnqueueJob' => __DIR__ . '/includes/jobqueue/jobs/EnqueueJob.php',
+       'EnqueueableDataUpdate' => __DIR__ . '/includes/deferred/DataUpdate.php',
        'EraseArchivedFile' => __DIR__ . '/maintenance/eraseArchivedFile.php',
        'ErrorPageError' => __DIR__ . '/includes/exception/ErrorPageError.php',
        'EventRelayer' => __DIR__ . '/includes/libs/eventrelayer/EventRelayer.php',
@@ -434,6 +437,7 @@ $wgAutoloadLocalClasses = array(
        'FileBackendStoreShardListIterator' => __DIR__ . '/includes/filebackend/FileBackendStore.php',
        'FileBasedSiteLookup' => __DIR__ . '/includes/site/FileBasedSiteLookup.php',
        'FileCacheBase' => __DIR__ . '/includes/cache/FileCacheBase.php',
+       'FileContentsHasher' => __DIR__ . '/includes/FileContentsHasher.php',
        'FileDeleteForm' => __DIR__ . '/includes/FileDeleteForm.php',
        'FileDependency' => __DIR__ . '/includes/cache/CacheDependency.php',
        'FileDuplicateSearchPage' => __DIR__ . '/includes/specials/SpecialFileDuplicateSearch.php',
@@ -677,7 +681,7 @@ $wgAutoloadLocalClasses = array(
        'LinkHolderArray' => __DIR__ . '/includes/parser/LinkHolderArray.php',
        'LinkSearchPage' => __DIR__ . '/includes/specials/SpecialLinkSearch.php',
        'Linker' => __DIR__ . '/includes/Linker.php',
-       'LinksDeletionUpdate' => __DIR__ . '/includes/deferred/LinksUpdate.php',
+       'LinksDeletionUpdate' => __DIR__ . '/includes/deferred/LinksDeletionUpdate.php',
        'LinksUpdate' => __DIR__ . '/includes/deferred/LinksUpdate.php',
        'ListDuplicatedFilesPage' => __DIR__ . '/includes/specials/SpecialListDuplicatedFiles.php',
        'ListVariants' => __DIR__ . '/maintenance/language/listVariants.php',
@@ -753,6 +757,9 @@ $wgAutoloadLocalClasses = array(
        'MediaWiki\\Logger\\LegacySpi' => __DIR__ . '/includes/debug/logger/LegacySpi.php',
        'MediaWiki\\Logger\\LoggerFactory' => __DIR__ . '/includes/debug/logger/LoggerFactory.php',
        'MediaWiki\\Logger\\MonologSpi' => __DIR__ . '/includes/debug/logger/MonologSpi.php',
+       'MediaWiki\\Logger\\Monolog\\AvroFormatter' => __DIR__ . '/includes/debug/logger/monolog/AvroFormatter.php',
+       'MediaWiki\\Logger\\Monolog\\BufferHandler' => __DIR__ . '/includes/debug/logger/monolog/BufferHandler.php',
+       'MediaWiki\\Logger\\Monolog\\KafkaHandler' => __DIR__ . '/includes/debug/logger/monolog/KafkaHandler.php',
        'MediaWiki\\Logger\\Monolog\\LegacyFormatter' => __DIR__ . '/includes/debug/logger/monolog/LegacyFormatter.php',
        'MediaWiki\\Logger\\Monolog\\LegacyHandler' => __DIR__ . '/includes/debug/logger/monolog/LegacyHandler.php',
        'MediaWiki\\Logger\\Monolog\\LineFormatter' => __DIR__ . '/includes/debug/logger/monolog/LineFormatter.php',
@@ -768,6 +775,7 @@ $wgAutoloadLocalClasses = array(
        'MediaWiki\\Tidy\\RaggettWrapper' => __DIR__ . '/includes/tidy/RaggettWrapper.php',
        'MediaWiki\\Tidy\\TidyDriverBase' => __DIR__ . '/includes/tidy/TidyDriverBase.php',
        'MediaWiki\\Widget\\ComplexNamespaceInputWidget' => __DIR__ . '/includes/widget/ComplexNamespaceInputWidget.php',
+       'MediaWiki\\Widget\\ComplexTitleInputWidget' => __DIR__ . '/includes/widget/ComplexTitleInputWidget.php',
        'MediaWiki\\Widget\\NamespaceInputWidget' => __DIR__ . '/includes/widget/NamespaceInputWidget.php',
        'MediaWiki\\Widget\\TitleInputWidget' => __DIR__ . '/includes/widget/TitleInputWidget.php',
        'MediaWiki\\Widget\\UserInputWidget' => __DIR__ . '/includes/widget/UserInputWidget.php',
index 1fe1e50..e41b6c7 100644 (file)
                "wiki": "https://www.mediawiki.org/"
        },
        "require": {
+               "composer/semver": "0.1.0",
                "cssjanus/cssjanus": "1.1.1",
                "ext-iconv": "*",
-               "leafo/lessphp": "0.5.0",
                "liuggio/statsd-php-client": "1.0.16",
-               "mediawiki/at-ease": "1.0.0",
-               "oojs/oojs-ui": "0.12.8",
+               "oyejorge/less.php": "1.7.0.5",
+               "mediawiki/at-ease": "1.1.0",
+               "oojs/oojs-ui": "0.12.9",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/assert": "0.2.2",
                "jakub-onderka/php-parallel-lint": "0.9",
                "justinrainbow/json-schema": "~1.3",
                "phpunit/phpunit": "3.7.37",
-               "mediawiki/mediawiki-codesniffer": "0.3.0"
+               "mediawiki/mediawiki-codesniffer": "0.3.0",
+               "wikimedia/avro": "1.7.7",
+               "nmred/kafka-php": "0.1.4",
+               "monolog/monolog": "1.14.0"
        },
        "suggest": {
                "ext-fileinfo": "Improved mime magic detection",
                "ext-wikidiff2": "Diff accelerator",
                "ext-apc": "Local data and opcode cache",
                "monolog/monolog": "Flexible debug logging system",
+               "nmred/kafka-php": "Send debug log events to kafka",
                "pear/mail": "Mail sending support",
                "pear/mail_mime": "Mail sending support",
-               "pear/mail_mime-decode": "Mail sending support"
+               "pear/mail_mime-decode": "Mail sending support",
+               "wikimedia/avro": "Binary serialization format used with kafka"
        },
        "autoload": {
                "psr-0": {
index d11635d..218a19c 100644 (file)
                                "Unlicense"
                        ]
                },
+               "requires": {
+                       "type": "object",
+                       "description": "Indicates what versions of MediaWiki core are required. This syntax may be extended in the future, for example to check dependencies between other extensions.",
+                       "properties": {
+                               "MediaWiki": {
+                                       "type": "string",
+                                       "description": "Version constraint string against MediaWiki core."
+                               }
+                       }
+               },
                "ResourceFileModulePaths": {
                        "type": "object",
                        "description": "Default paths to use for all ResourceLoader file modules",
index 5e2269a..9aa2964 100644 (file)
@@ -662,7 +662,8 @@ $oldPageID: the page ID of the revision when archived (may be null)
 
 'ArticleRevisionVisibilitySet': Called when changing visibility of one or more
 revisions of an article.
-&$title: Title object of the article
+$title: Title object of the article
+$ids: Ids to set the visibility for
 
 'ArticleRollbackComplete': After an article rollback is completed.
 $wikiPage: the WikiPage that was edited
@@ -1271,20 +1272,21 @@ $user: User being checked
 $confirmed: Whether or not the email address is confirmed
 
 'EmailUser': Before sending email from one user to another.
-$to: address of receiving user
-$from: address of sending user
+$to: MailAddress object of receiving user
+$from: MailAddress object of sending user
 $subject: subject of the mail
 $text: text of the mail
+&$error: Out-param for an error
 
 'EmailUserCC': Before sending the copy of the email to the author.
-$to: address of receiving user
-$from: address of sending user
+$to: MailAddress object of receiving user
+$from: MailAddress object of sending user
 $subject: subject of the mail
 $text: text of the mail
 
 'EmailUserComplete': After sending email from one user to another.
-$to: address of receiving user
-$from: address of sending user
+$to: MailAddress object of receiving user
+$from: MailAddress object of sending user
 $subject: subject of the mail
 $text: text of the mail
 
@@ -1376,6 +1378,9 @@ $auto: The extracted part of the parsed comment before the call to the hook.
 $post: Boolean, true if there is text after this autocomment
 $title: An optional title object used to links to sections. Can be null.
 $local: Boolean indicating whether section links should refer to local page.
+$wikiId: String containing the ID (as used by WikiMap) of the wiki from which the
+  autocomment originated; null for the local wiki. Added in 1.26, should default
+  to null in handler functions, for backwards compatibility.
 
 'GalleryGetModes': Get list of classes that can render different modes of a
 gallery.
@@ -1628,6 +1633,11 @@ Return false to stop further processing of the tag
 $reader: XMLReader object
 $revisionInfo: Array of information
 
+'ImportSources': Called when reading from the $wgImportSources configuration
+variable. Can be used to lazy-load the import sources list.
+&$importSources: The value of $wgImportSources. Modify as necessary. See the
+comment in DefaultSettings.php for the detail of how to structure this array.
+
 'InfoAction': When building information to display on the action=info page.
 $context: IContextSource object
 &$pageInfo: Array of information
@@ -1841,6 +1851,10 @@ optional localisation messages
 &$ignored: Array of ignored message keys
 &$optional: Array of optional message keys
 
+'LocalUserCreated': Called when a local user has been created
+$user: User object for the created user
+$autocreated: Boolean, whether this was an auto-creation
+
 'LogEventsListGetExtraInputs': When getting extra inputs to display on
 Special:Log for a specific log type
 $type: String of log type being displayed
@@ -2176,6 +2190,7 @@ which depends on user options should install this hook and append its values to
 the key.
 &$confstr: reference to a hash key string which can be modified
 $user: User (object) requesting the page
+&$forOptions: array of options the hash is for
 
 'PageViewUpdates': Allow database (or other) changes to be made after a
 page view is seen by MediaWiki.  Note this does not capture views made
@@ -2444,10 +2459,6 @@ $context: (IContextSource) The RequestContext the skin is being created for.
 $user: The user having their password expiration reset
 &$newExpire: The new expiration date
 
-'ResetSessionID': Called from wfResetSessionID
-$oldSessionID: old session id
-$newSessionID: new session id
-
 'ResourceLoaderForeignApiModules': Called from ResourceLoaderForeignApiModule.
 Use this to add dependencies to 'mediawiki.ForeignApi' module when you wish
 to override its behavior. See the module docs for more information.
@@ -3105,7 +3116,9 @@ $descriptor: (array) the HTMLForm descriptor
 
 'UploadFormSourceDescriptors': after the standard source inputs have been
 added to the descriptor
-$descriptor: (array) the HTMLForm descriptor
+&$descriptor: (array) the HTMLForm descriptor
+&$radio: Boolean, if source type should be shown as radio button
+$selectedSourceType: The selected source type
 
 'UploadVerification': Additional chances to reject an uploaded file. Consider
 using UploadVerifyFile instead.
@@ -3200,6 +3213,12 @@ $context: IContextSource object
 $user: User to get rights for
 &$rights: Current rights
 
+'UserGroupsChanged': Called after user groups are changed.
+$user: User whose groups changed
+$added: Groups added
+$removed: Groups removed
+$performer: User who performed the change, false if via autopromotion
+
 'UserIsBlockedFrom': Check if a user is blocked from a specific page (for
 specific block exemptions).
 $user: User in question
@@ -3217,6 +3236,14 @@ $ip: User's IP address
 false if a UserGetRights hook might remove the named right.
 $right: The user right being checked
 
+'UserIsHidden': Check if the user's name should be hidden. See User::isHidden().
+$user: User in question.
+&$hidden: Set true if the user's name should be hidden.
+
+'UserIsLocked': Check if the user is locked. See User::isLocked().
+$user: User in question.
+&$locked: Set true if the user should be locked.
+
 'UserLoadAfterLoadFromSession': Called to authenticate users on external or
 environmental means; occurs after session is loaded.
 $user: user object being loaded
@@ -3240,6 +3267,9 @@ database.
 $user: User object
 &$options: Options, can be modified.
 
+'UserLoggedIn': Called after a user is logged in
+$user: User object for the logged-in user
+
 'UserLoginComplete': After a user has logged in.
 $user: the user object that was created on login
 $inject_html: Any HTML to inject after the "logged in" message.
@@ -3285,8 +3315,9 @@ message(s).
 $user: user retrieving new talks messages
 $talks: array of new talks page(s)
 
-'UserRights': After a user's group memberships are changed.
-$user: User object that was changed
+'UserRights': DEPRECATED! Use UserGroupsChanged instead.
+After a user's group memberships are changed.
+&$user: User object that was changed
 $add: Array of strings corresponding to groups added
 $remove: Array of strings corresponding to groups removed
 
index 51c1b55..6ab57d7 100644 (file)
@@ -2,6 +2,7 @@
 <html lang="en" dir="ltr">
 <head>
        <link rel="stylesheet" href="../../resources/src/mediawiki.legacy/shared.css">
+       <link rel="stylesheet" href="../../resources/src/mediawiki/mediawiki.feedlink.css">
 </head>
 <body style="font-size: small;">
 
index 45ad4d1..badf47c 100644 (file)
@@ -120,6 +120,8 @@ class AuthPlugin {
         * The User object is passed by reference so it can be modified; don't
         * forget the & on your function declaration.
         *
+        * @deprecated since 1.26, use the UserLoggedIn hook instead. And assigning
+        *  a different User object to $user is no longer supported.
         * @param User $user
         * @return bool
         */
@@ -204,6 +206,7 @@ class AuthPlugin {
         * Update user information in the external authentication database.
         * Return true if successful.
         *
+        * @deprecated since 1.26, use the UserSaveSettings hook instead.
         * @param User $user
         * @return bool
         */
@@ -215,6 +218,7 @@ class AuthPlugin {
         * Update user groups in the external authentication database.
         * Return true if successful.
         *
+        * @deprecated since 1.26, use the UserGroupsChanged hook instead.
         * @param User $user
         * @param array $addgroups Groups to add.
         * @param array $delgroups Groups to remove.
@@ -278,6 +282,8 @@ class AuthPlugin {
         * The User object is passed by reference so it can be modified; don't
         * forget the & on your function declaration.
         *
+        * @deprecated since 1.26, use the UserLoggedIn hook instead. And assigning
+        *  a different User object to $user is no longer supported.
         * @param User $user
         * @param bool $autocreate True if user is being autocreated on login
         */
@@ -326,11 +332,21 @@ class AuthPluginUser {
                return -1;
        }
 
+       /**
+        * Indicate whether the user is locked
+        * @deprecated since 1.26, use the UserIsLocked hook instead.
+        * @return bool
+        */
        public function isLocked() {
                # Override this!
                return false;
        }
 
+       /**
+        * Indicate whether the user is hidden
+        * @deprecated since 1.26, use the UserIsHidden hook instead.
+        * @return bool
+        */
        public function isHidden() {
                # Override this!
                return false;
index 37429b9..3895318 100644 (file)
@@ -4573,7 +4573,7 @@ $wgAutoblockExpiry = 86400;
 /**
  * Set this to true to allow blocked users to edit their own user talk page.
  */
-$wgBlockAllowsUTEdit = false;
+$wgBlockAllowsUTEdit = true;
 
 /**
  * Allow sysops to ban users from accessing Emailuser
@@ -6363,8 +6363,8 @@ $wgShowCreditsIfMax = true;
 
 /**
  * List of interwiki prefixes for wikis we'll accept as sources for
- * Special:Import (for sysops). Since complete page history can be imported,
- * these should be 'trusted'.
+ * Special:Import and API action=import. Since complete page history can be
+ * imported, these should be 'trusted'.
  *
  * This can either be a regular array, or an associative map specifying
  * subprojects on the interwiki map of the target wiki, or a mix of the two,
@@ -6377,6 +6377,9 @@ $wgShowCreditsIfMax = true;
  *     );
  * @endcode
  *
+ * If you have a very complex import sources setup, you can lazy-load it using
+ * the ImportSources hook.
+ *
  * If a user has the 'import' permission but not the 'importupload' permission,
  * they will only be able to run imports through this transwiki interface.
  */
index 600b136..2133dae 100644 (file)
@@ -141,7 +141,7 @@ class FeedItem {
         */
        public function getLanguage() {
                global $wgLanguageCode;
-               return $wgLanguageCode;
+               return wfBCP47( $wgLanguageCode );
        }
 
        /**
diff --git a/includes/FileContentsHasher.php b/includes/FileContentsHasher.php
new file mode 100644 (file)
index 0000000..67eb9d2
--- /dev/null
@@ -0,0 +1,111 @@
+<?php
+/**
+ * Generate hash digests of file contents to help with cache invalidation.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+class FileContentsHasher {
+
+       /** @var BagOStuff */
+       protected $cache;
+
+       /** @var FileContentsHasher */
+       private static $instance;
+
+       /**
+        * Constructor.
+        */
+       public function __construct() {
+               $this->cache = ObjectCache::newAccelerator( 'hash' );
+       }
+
+       /**
+        * Get the singleton instance of this class.
+        *
+        * @return FileContentsHasher
+        */
+       public static function singleton() {
+               if ( !self::$instance ) {
+                       self::$instance = new self;
+               }
+
+               return self::$instance;
+       }
+
+       /**
+        * Get a hash of a file's contents, either by retrieving a previously-
+        * computed hash from the cache, or by computing a hash from the file.
+        *
+        * @private
+        * @param string $filePath Full path to the file.
+        * @param string $algo Name of selected hashing algorithm.
+        * @return string|bool Hash of file contents, or false if the file could not be read.
+        */
+       public function getFileContentsHashInternal( $filePath, $algo = 'md4' ) {
+               $mtime = MediaWiki\quietCall( 'filemtime', $filePath );
+               if ( $mtime === false ) {
+                       return false;
+               }
+
+               $cacheKey = wfGlobalCacheKey( __CLASS__, $filePath, $mtime, $algo );
+               $hash = $this->cache->get( $cacheKey );
+
+               if ( $hash ) {
+                       return $hash;
+               }
+
+               $contents = MediaWiki\quietCall( 'file_get_contents', $filePath );
+               if ( $contents === false ) {
+                       return false;
+               }
+
+               $hash = hash( $algo, $contents );
+               $this->cache->set( $cacheKey, $hash, 60 * 60 * 24 );  // 24h
+
+               return $hash;
+       }
+
+       /**
+        * Get a hash of the combined contents of one or more files, either by
+        * retrieving a previously-computed hash from the cache, or by computing
+        * a hash from the files.
+        *
+        * @param string|string[] $filePaths One or more file paths.
+        * @param string $algo Name of selected hashing algorithm.
+        * @return string|bool Hash of files' contents, or false if no file could not be read.
+        */
+       public static function getFileContentsHash( $filePaths, $algo = 'md4' ) {
+               $instance = self::singleton();
+
+               if ( !is_array( $filePaths ) ) {
+                       $filePaths = (array) $filePaths;
+               }
+
+               if ( count( $filePaths ) === 1 ) {
+                       return $instance->getFileContentsHashInternal( $filePaths[0], $algo );
+               }
+
+               sort( $filePaths );
+               $hashes = array_map( function ( $filePath ) use ( $instance, $algo ) {
+                       return $instance->getFileContentsHashInternal( $filePath, $algo ) ?: '';
+               }, $filePaths );
+
+               $hashes = implode( '', $hashes );
+               return $hashes ? hash( $algo, $hashes ) : false;
+       }
+}
index 2852561..486926f 100644 (file)
@@ -171,6 +171,7 @@ if ( !function_exists( 'hash_equals' ) ) {
  *
  * @param string $ext Name of the extension to load
  * @param string|null $path Absolute path of where to find the extension.json file
+ * @since 1.25
  */
 function wfLoadExtension( $ext, $path = null ) {
        if ( !$path ) {
@@ -191,6 +192,7 @@ function wfLoadExtension( $ext, $path = null ) {
  *
  * @see wfLoadExtension
  * @param string[] $exts Array of extension names to load
+ * @since 1.25
  */
 function wfLoadExtensions( array $exts ) {
        global $wgExtensionDirectory;
@@ -206,6 +208,7 @@ function wfLoadExtensions( array $exts ) {
  * @see wfLoadExtension
  * @param string $skin Name of the extension to load
  * @param string|null $path Absolute path of where to find the skin.json file
+ * @since 1.25
  */
 function wfLoadSkin( $skin, $path = null ) {
        if ( !$path ) {
@@ -220,6 +223,7 @@ function wfLoadSkin( $skin, $path = null ) {
  *
  * @see wfLoadExtensions
  * @param string[] $skins Array of extension names to load
+ * @since 1.25
  */
 function wfLoadSkins( array $skins ) {
        global $wgStyleDirectory;
@@ -3212,6 +3216,7 @@ function wfUsePHP( $req_ver ) {
  *
  * @see perldoc -f use
  *
+ * @deprecated since 1.26, use the "requires' property of extension.json
  * @param string|int|float $req_ver The version to check, can be a string, an integer, or a float
  * @throws MWException
  */
@@ -3462,7 +3467,6 @@ function wfResetSessionID() {
                $_SESSION = $tmp;
        }
        $newSessionId = session_id();
-       Hooks::run( 'ResetSessionID', array( $oldSessionId, $newSessionId ) );
 }
 
 /**
index d6a4056..9b5ff27 100644 (file)
@@ -1276,9 +1276,11 @@ class Linker {
         * @param string $comment
         * @param Title|null $title Title object (to generate link to the section in autocomment) or null
         * @param bool $local Whether section links should refer to local page
+        * @param string|null $wikiId Id (as used by WikiMap) of the wiki to generate links to. For use with external changes.
+        *
         * @return mixed|string
         */
-       public static function formatComment( $comment, $title = null, $local = false ) {
+       public static function formatComment( $comment, $title = null, $local = false, $wikiId = null ) {
 
                # Sanitize text a bit:
                $comment = str_replace( "\n", " ", $comment );
@@ -1286,8 +1288,8 @@ class Linker {
                $comment = Sanitizer::escapeHtmlAllowEntities( $comment );
 
                # Render autocomments and make links:
-               $comment = self::formatAutocomments( $comment, $title, $local );
-               $comment = self::formatLinksInComment( $comment, $title, $local );
+               $comment = self::formatAutocomments( $comment, $title, $local, $wikiId );
+               $comment = self::formatLinksInComment( $comment, $title, $local, $wikiId );
 
                return $comment;
        }
@@ -1304,9 +1306,11 @@ class Linker {
         * @param string $comment Comment text
         * @param Title|null $title An optional title object used to links to sections
         * @param bool $local Whether section links should refer to local page
-        * @return string Formatted comment
+        * @param string|null $wikiId Id of the wiki to link to (if not the local wiki), as used by WikiMap.
+        *
+        * @return string Formatted comment (wikitext)
         */
-       private static function formatAutocomments( $comment, $title = null, $local = false ) {
+       private static function formatAutocomments( $comment, $title = null, $local = false, $wikiId = null ) {
                // @todo $append here is something of a hack to preserve the status
                // quo. Someone who knows more about bidi and such should decide
                // (1) what sane rendering even *is* for an LTR edit summary on an RTL
@@ -1320,7 +1324,7 @@ class Linker {
                        // zero-width assertions optional, so wrap them in a non-capturing
                        // group.
                        '!(?:(?<=(.)))?/\*\s*(.*?)\s*\*/(?:(?=(.)))?!',
-                       function ( $match ) use ( $title, $local, &$append ) {
+                       function ( $match ) use ( $title, $local, $wikiId, &$append ) {
                                global $wgLang;
 
                                // Ensure all match positions are defined
@@ -1330,7 +1334,7 @@ class Linker {
                                $auto = $match[2];
                                $post = $match[3] !== '';
                                $comment = null;
-                               Hooks::run( 'FormatAutocomments', array( &$comment, $pre, $auto, $post, $title, $local ) );
+                               Hooks::run( 'FormatAutocomments', array( &$comment, $pre, $auto, $post, $title, $local, $wikiId ) );
                                if ( $comment === null ) {
                                        $link = '';
                                        if ( $title ) {
@@ -1349,9 +1353,7 @@ class Linker {
                                                                $title->getDBkey(), $section );
                                                }
                                                if ( $sectionTitle ) {
-                                                       $link = Linker::link( $sectionTitle,
-                                                               $wgLang->getArrow(), array(), array(),
-                                                               'noclasses' );
+                                                       $link = Linker::makeCommentLink( $sectionTitle, $wgLang->getArrow(), $wikiId, 'noclasses' );
                                                } else {
                                                        $link = '';
                                                }
@@ -1384,7 +1386,7 @@ class Linker {
         * @param string $comment Text to format links in
         * @param Title|null $title An optional title object used to links to sections
         * @param bool $local Whether section links should refer to local page
-        * @param string|null $wikiId Id of the wiki to link to (if not the local wiki), as used by WikiMap
+        * @param string|null $wikiId Id of the wiki to link to (if not the local wiki), as used by WikiMap.
         *
         * @return string
         */
@@ -1459,22 +1461,9 @@ class Linker {
                                                        $newTarget = clone ( $title );
                                                        $newTarget->setFragment( '#' . $target->getFragment() );
                                                        $target = $newTarget;
-
-                                               }
-
-                                               if ( $wikiId !== null ) {
-                                                       $thelink = Linker::makeExternalLink(
-                                                               WikiMap::getForeignURL( $wikiId, $target->getFullText() ),
-                                                               $linkText . $inside,
-                                                               /* escape = */ false // Already escaped
-                                                       ) . $trail;
-                                               } else {
-                                                       $thelink = Linker::link(
-                                                               $target,
-                                                               $linkText . $inside
-                                                       ) . $trail;
                                                }
 
+                                               $thelink = Linker::makeCommentLink( $target, $linkText . $inside, $wikiId ) . $trail;
                                        }
                                }
                                if ( $thelink ) {
@@ -1493,6 +1482,32 @@ class Linker {
                );
        }
 
+       /**
+        * Generates a link to the given Title
+        *
+        * @note This is only public for technical reasons. It's not intended for use outside Linker.
+        *
+        * @param Title $title
+        * @param string $text
+        * @param string|null $wikiId Id of the wiki to link to (if not the local wiki), as used by WikiMap.
+        * @param string|string[] $options See the $options parameter in Linker::link.
+        *
+        * @return string HTML link
+        */
+       public static function makeCommentLink( Title $title, $text, $wikiId = null, $options = array() ) {
+               if ( $wikiId !== null && !$title->isExternal() ) {
+                       $link = Linker::makeExternalLink(
+                                       WikiMap::getForeignURL( $wikiId, $title->getPrefixedText(), $title->getFragment() ),
+                                       $text,
+                                       /* escape = */ false // Already escaped
+                               );
+               } else {
+                       $link = Linker::link( $title, $text, array(), array(), $options );
+               }
+
+               return $link;
+       }
+
        /**
         * @param Title $contextTitle
         * @param string $target
@@ -1579,17 +1594,18 @@ class Linker {
         * @param string $comment
         * @param Title|null $title Title object (to generate link to section in autocomment) or null
         * @param bool $local Whether section links should refer to local page
+        * @param string|null $wikiId Id (as used by WikiMap) of the wiki to generate links to. For use with external changes.
         *
         * @return string
         */
-       public static function commentBlock( $comment, $title = null, $local = false ) {
+       public static function commentBlock( $comment, $title = null, $local = false, $wikiId = null ) {
                // '*' used to be the comment inserted by the software way back
                // in antiquity in case none was provided, here for backwards
                // compatibility, acc. to brion -ævar
                if ( $comment == '' || $comment == '*' ) {
                        return '';
                } else {
-                       $formatted = self::formatComment( $comment, $title, $local );
+                       $formatted = self::formatComment( $comment, $title, $local, $wikiId );
                        $formatted = wfMessage( 'parentheses' )->rawParams( $formatted )->escaped();
                        return " <span class=\"comment\">$formatted</span>";
                }
@@ -2382,6 +2398,7 @@ class Linker {
                        'title' => $tooltip
                ) );
        }
+
 }
 
 /**
index d28f88e..6f3be73 100644 (file)
@@ -367,6 +367,26 @@ class MWTimestamp {
                return $this->timestamp->getTimezone();
        }
 
+       /**
+        * Get the localized timezone message, if available.
+        *
+        * Premade translations are not shipped as format() may return whatever the
+        * system uses, localized or not, so translation must be done through wiki.
+        *
+        * @since 1.25
+        * @return Message The localized timezone message
+        */
+       public function getTimezoneMessage() {
+               $tzMsg = $this->format( 'T' );  // might vary on DST changeover!
+               $key = 'timezone-' . strtolower( trim( $tzMsg ) );
+               $msg = wfMessage( $key );
+               if ( $msg->exists() ) {
+                       return $msg;
+               } else {
+                       return new RawMessage( $tzMsg );
+               }
+       }
+
        /**
         * Format the timestamp in a given format.
         *
index 833f852..2c7ba91 100644 (file)
@@ -950,10 +950,12 @@ class MagicWordArray {
                        if ( $regex === '' ) {
                                continue;
                        }
-                       preg_match_all( $regex, $text, $matches, PREG_SET_ORDER );
-                       foreach ( $matches as $m ) {
-                               list( $name, $param ) = $this->parseMatch( $m );
-                               $found[$name] = $param;
+                       $matches = array();
+                       if ( preg_match_all( $regex, $text, $matches, PREG_SET_ORDER ) ) {
+                               foreach ( $matches as $m ) {
+                                       list( $name, $param ) = $this->parseMatch( $m );
+                                       $found[$name] = $param;
+                               }
                        }
                        $text = preg_replace( $regex, '', $text );
                }
index 248b308..d0475c1 100644 (file)
@@ -1433,10 +1433,10 @@ class Preferences {
                        }
 
                        Hooks::run( 'PreferencesFormPreSave', array( $formData, $form, $user, &$result ) );
-                       $user->saveSettings();
                }
 
                $wgAuth->updateExternalDB( $user );
+               $user->saveSettings();
 
                return $result;
        }
index 479ce8c..e79d13c 100644 (file)
@@ -681,12 +681,6 @@ if ( !is_object( $wgAuth ) ) {
  */
 $wgTitle = null;
 
-/**
- * @deprecated since 1.24 Use DeferredUpdates::addUpdate instead
- * @var array
- */
-$wgDeferredUpdateList = array();
-
 Profiler::instance()->scopedProfileOut( $ps_globals );
 $ps_extensions = Profiler::instance()->scopedProfileIn( $fname . '-extensions' );
 
index 605dab6..22c90cd 100644 (file)
@@ -1430,8 +1430,8 @@ class User implements IDBAccessObject {
                foreach ( $toPromote as $group ) {
                        $this->addGroup( $group );
                }
-
                // update groups in external authentication database
+               Hooks::run( 'UserGroupsChanged', array( $this, $toPromote, array(), false ) );
                $wgAuth->updateExternalDBGroups( $this, $toPromote );
 
                $newGroups = array_merge( $oldGroups, $toPromote ); // all groups
@@ -1591,7 +1591,7 @@ class User implements IDBAccessObject {
                # We only need to worry about passing the IP address to the Block generator if the
                # user is not immune to autoblocks/hardblocks, and they are the current user so we
                # know which IP address they're actually coming from
-               if ( !$this->isAllowed( 'ipblock-exempt' ) && $this->getID() == $wgUser->getID() ) {
+               if ( !$this->isAllowed( 'ipblock-exempt' ) && $this->equals( $wgUser ) ) {
                        $ip = $this->getRequest()->getIP();
                } else {
                        $ip = null;
@@ -1993,6 +1993,7 @@ class User implements IDBAccessObject {
                global $wgAuth;
                $authUser = $wgAuth->getUserInstance( $this );
                $this->mLocked = (bool)$authUser->isLocked();
+               Hooks::run( 'UserIsLocked', array( $this, &$this->mLocked ) );
                return $this->mLocked;
        }
 
@@ -2010,6 +2011,7 @@ class User implements IDBAccessObject {
                        global $wgAuth;
                        $authUser = $wgAuth->getUserInstance( $this );
                        $this->mHideName = (bool)$authUser->isHidden();
+                       Hooks::run( 'UserIsHidden', array( $this, &$this->mHideName ) );
                }
                return $this->mHideName;
        }
@@ -3709,14 +3711,6 @@ class User implements IDBAccessObject {
                Hooks::run( 'UserSaveSettings', array( $this ) );
                $this->clearSharedCache();
                $this->getUserPage()->invalidateCache();
-
-               // T95839: clear the cache again post-commit to reduce race conditions
-               // where stale values are written back to the cache by other threads.
-               // Note: this *still* doesn't deal with REPEATABLE-READ snapshot lag...
-               $that = $this;
-               $dbw->onTransactionIdle( function() use ( $that ) {
-                       $that->clearSharedCache();
-               } );
        }
 
        /**
index 03410cc..b4b8be9 100644 (file)
@@ -871,7 +871,7 @@ class WebRequest {
        /**
         * Initialise the header list
         */
-       private function initHeaders() {
+       protected function initHeaders() {
                if ( count( $this->headers ) ) {
                        return;
                }
@@ -1325,11 +1325,10 @@ class FauxRequest extends WebRequest {
        }
 
        /**
-        * @param string $method
-        * @throws MWException
+        * Initialise the header list
         */
-       private function notImplemented( $method ) {
-               throw new MWException( "{$method}() not implemented" );
+       protected function initHeaders() {
+               // Nothing to init
        }
 
        /**
@@ -1425,10 +1424,6 @@ class FauxRequest extends WebRequest {
                return $this->protocol;
        }
 
-       private function initHeaders() {
-               return;
-       }
-
        /**
         * @param string $name
         * @param string $val
index f16f5aa..027ff72 100644 (file)
@@ -108,13 +108,15 @@ class WikiMap {
         *
         * @param string $wikiID Wiki'd id (generally database name)
         * @param string $page Page name (must be normalised before calling this function!)
+        * @param string|null $fragmentId
+        *
         * @return string|bool URL or false if the wiki was not found
         */
-       public static function getForeignURL( $wikiID, $page ) {
+       public static function getForeignURL( $wikiID, $page, $fragmentId = null ) {
                $wiki = WikiMap::getWiki( $wikiID );
 
                if ( $wiki ) {
-                       return $wiki->getFullUrl( $page );
+                       return $wiki->getFullUrl( $page, $fragmentId );
                }
 
                return false;
@@ -146,20 +148,6 @@ class WikiReference {
                $this->mServer = $server === null ? $canonicalServer : $server;
        }
 
-       /**
-        * @return string
-        * @throws MWException
-        */
-       public function getHostname() {
-               $prefixes = array( 'http://', 'https://' );
-               foreach ( $prefixes as $prefix ) {
-                       if ( substr( $this->mCanonicalServer, 0, strlen( $prefix ) ) ) {
-                               return substr( $this->mCanonicalServer, strlen( $prefix ) );
-                       }
-               }
-               throw new MWException( "Invalid hostname for wiki {$this->mMinor}.{$this->mMajor}" );
-       }
-
        /**
         * Get the URL in a way to be displayed to the user
         * More or less Wikimedia specific
@@ -167,13 +155,12 @@ class WikiReference {
         * @return string
         */
        public function getDisplayName() {
-               $url = $this->getUrl( '' );
-               $parsed = wfParseUrl( $url );
+               $parsed = wfParseUrl( $this->mCanonicalServer );
                if ( $parsed ) {
                        return $parsed['host'];
                } else {
-                       // Invalid URL. There's no sane thing to do here, so just return it
-                       return $url;
+                       // Invalid server spec. There's no sane thing to do here, so just return the canonical server name in full
+                       return $this->mCanonicalServer;
                }
        }
 
@@ -181,21 +168,32 @@ class WikiReference {
         * Helper function for getUrl()
         *
         * @todo FIXME: This may be generalized...
-        * @param string $page Page name (must be normalised before calling this function!)
-        * @return string Url fragment
+        *
+        * @param string $page Page name (must be normalised before calling this function! May contain a section part.)
+        * @param string|null $fragmentId
+        *
+        * @return string relative URL, without the server part.
         */
-       private function getLocalUrl( $page ) {
-               return str_replace( '$1', wfUrlEncode( str_replace( ' ', '_', $page ) ), $this->mPath );
+       private function getLocalUrl( $page, $fragmentId = null ) {
+               $page = wfUrlEncode( str_replace( ' ', '_', $page ) );
+
+               if ( is_string( $fragmentId ) && $fragmentId !== '' ) {
+                       $page .= '#' . wfUrlEncode( $fragmentId );
+               }
+
+               return str_replace( '$1', $page, $this->mPath );
        }
 
        /**
         * Get a canonical (i.e. based on $wgCanonicalServer) URL to a page on this foreign wiki
         *
         * @param string $page Page name (must be normalised before calling this function!)
+        * @param string|null $fragmentId
+        *
         * @return string Url
         */
-       public function getCanonicalUrl( $page ) {
-               return $this->mCanonicalServer . $this->getLocalUrl( $page );
+       public function getCanonicalUrl( $page, $fragmentId = null ) {
+               return $this->mCanonicalServer . $this->getLocalUrl( $page, $fragmentId );
        }
 
        /**
@@ -209,10 +207,12 @@ class WikiReference {
        /**
         * Alias for getCanonicalUrl(), for backwards compatibility.
         * @param string $page
+        * @param string|null $fragmentId
+        *
         * @return string
         */
-       public function getUrl( $page ) {
-               return $this->getCanonicalUrl( $page );
+       public function getUrl( $page, $fragmentId = null ) {
+               return $this->getCanonicalUrl( $page, $fragmentId );
        }
 
        /**
@@ -220,10 +220,12 @@ class WikiReference {
         * when called locally on the wiki.
         *
         * @param string $page Page name (must be normalized before calling this function!)
+        * @param string|null $fragmentId
+        *
         * @return string URL
         */
-       public function getFullUrl( $page ) {
+       public function getFullUrl( $page, $fragmentId = null ) {
                return $this->mServer .
-                       $this->getLocalUrl( $page );
+                       $this->getLocalUrl( $page, $fragmentId );
        }
 }
index e765eed..78f4764 100644 (file)
@@ -43,7 +43,7 @@ class XmlSelect {
        }
 
        /**
-        * @param string $default
+        * @param string|array $default
         */
        public function setDefault( $default ) {
                $this->default = $default;
@@ -95,7 +95,7 @@ class XmlSelect {
         * label => ( label => value, label => value )
         *
         * @param array $options
-        * @param string $default
+        * @param string|array $default
         * @return string
         */
        static function formatOptions( $options, $default = false ) {
@@ -106,7 +106,11 @@ class XmlSelect {
                                $contents = self::formatOptions( $value, $default );
                                $data .= Html::rawElement( 'optgroup', array( 'label' => $label ), $contents ) . "\n";
                        } else {
-                               $data .= Xml::option( $label, $value, $value === $default ) . "\n";
+                               // If $default is an array, then the <select> probably has the multiple attribute,
+                               // so we should check if each $value is in $default, rather than checking if
+                               // $value is equal to $default.
+                               $selected = is_array( $default ) ? in_array( $value, $default ) : $value === $default;
+                               $data .= Xml::option( $label, $value, $selected ) . "\n";
                        }
                }
 
index c7f3346..4885a31 100644 (file)
@@ -82,8 +82,11 @@ class RevertAction extends FormAction {
                $lang = $this->getLanguage();
                $userDate = $lang->userDate( $timestamp, $user );
                $userTime = $lang->userTime( $timestamp, $user );
-               $siteDate = $wgContLang->date( $timestamp, false, false );
-               $siteTime = $wgContLang->time( $timestamp, false, false );
+               $siteTs = MWTimestamp::getLocalInstance( $timestamp );
+               $ts = $siteTs->format( 'YmdHis' );
+               $siteDate = $wgContLang->date( $ts, false, false );
+               $siteTime = $wgContLang->time( $ts, false, false );
+               $tzMsg = $siteTs->getTimezoneMessage()->inContentLanguage()->text();
 
                return array(
                        'intro' => array(
@@ -100,8 +103,8 @@ class RevertAction extends FormAction {
                        'comment' => array(
                                'type' => 'text',
                                'label-message' => 'filerevert-comment',
-                               'default' => $this->msg( 'filerevert-defaultcomment', $siteDate, $siteTime
-                                       )->inContentLanguage()->text()
+                               'default' => $this->msg( 'filerevert-defaultcomment', $siteDate, $siteTime,
+                                       $tzMsg )->inContentLanguage()->text()
                        )
                );
        }
index f54f20f..e522d70 100644 (file)
@@ -387,10 +387,11 @@ abstract class ApiFormatBase extends ApiBase {
         * are required to ignore it or filter it out.
         *
         * @deprecated since 1.25
-        * @return bool
+        * @return bool Always true
         */
        public function getNeedsRawData() {
-               return false;
+               wfDeprecated( __METHOD__, '1.25' );
+               return true;
        }
 
        /**@}*/
index 00747ee..d2bfd48 100644 (file)
@@ -59,15 +59,6 @@ class ApiFormatFeedWrapper extends ApiFormatBase {
                return null;
        }
 
-       /**
-        * Optimization - no need to sanitize data that will not be needed
-        *
-        * @return bool
-        */
-       public function getNeedsRawData() {
-               return true;
-       }
-
        /**
         * ChannelFeed doesn't give us a method to print errors in a friendly
         * manner, so just punt errors to the default printer.
index 9538842..be1b12c 100644 (file)
@@ -56,13 +56,6 @@ class ApiFormatJson extends ApiFormatBase {
                return 'application/json';
        }
 
-       /**
-        * @deprecated since 1.25
-        */
-       public function getNeedsRawData() {
-               return $this->isRaw;
-       }
-
        /**
         * @deprecated since 1.25
         */
index 4be7d93..e8ad387 100644 (file)
@@ -39,13 +39,6 @@ class ApiFormatXml extends ApiFormatBase {
                return 'text/xml';
        }
 
-       /**
-        * @deprecated since 1.25
-        */
-       public function getNeedsRawData() {
-               return true;
-       }
-
        public function setRootElement( $rootElemName ) {
                $this->mRootElemName = $rootElemName;
        }
index 735cc7f..a6aae4b 100644 (file)
@@ -92,6 +92,30 @@ class ApiImport extends ApiBase {
                $result->addValue( null, $this->getModuleName(), $resultData );
        }
 
+       /**
+        * Returns a list of interwiki prefixes corresponding to each defined import
+        * source.
+        *
+        * @return array
+        * @since 1.26
+        */
+       public function getAllowedImportSources() {
+               $importSources = $this->getConfig()->get( 'ImportSources' );
+               Hooks::run( 'ImportSources', array( &$importSources ) );
+
+               $result = array();
+               foreach ( $importSources as $key => $value ) {
+                       if ( is_int( $key ) ) {
+                               $result[] = $value;
+                       } else {
+                               foreach ( $value as $subproject ) {
+                                       $result[] = "$key:$subproject";
+                               }
+                       }
+               }
+               return $result;
+       }
+
        public function mustBePosted() {
                return true;
        }
@@ -107,7 +131,7 @@ class ApiImport extends ApiBase {
                                ApiBase::PARAM_TYPE => 'upload',
                        ),
                        'interwikisource' => array(
-                               ApiBase::PARAM_TYPE => $this->getConfig()->get( 'ImportSources' ),
+                               ApiBase::PARAM_TYPE => $this->getAllowedImportSources(),
                        ),
                        'interwikipage' => null,
                        'fullhistory' => false,
index c558c2b..d943c86 100644 (file)
@@ -1203,10 +1203,6 @@ class ApiMain extends ApiBase {
                        // Create an appropriate printer
                        $this->mPrinter = $this->createPrinterByName( $params['format'] );
                }
-
-               if ( $this->mPrinter->getNeedsRawData() ) {
-                       $this->getResult()->setRawMode();
-               }
        }
 
        /**
index 3a98478..bf48b19 100644 (file)
@@ -234,8 +234,10 @@ class ApiQueryDeletedRevisions extends ApiQueryRevisionsBase {
                                        }
                                }
                                if ( !isset( $pageMap[$row->ar_namespace][$row->ar_title] ) ) {
-                                       ApiBase::dieDebug( "Found row in archive (ar_id={$row->ar_id}) that didn't " .
-                                               "get processed by ApiPageSet" );
+                                       ApiBase::dieDebug(
+                                               __METHOD__,
+                                               "Found row in archive (ar_id={$row->ar_id}) that didn't get processed by ApiPageSet"
+                                       );
                                }
 
                                $fit = $this->addPageSubItem(
index 65fd727..b866f43 100644 (file)
@@ -82,6 +82,7 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                        SearchEngine::create( $params['backend'] ) : SearchEngine::create();
                $search->setLimitOffset( $limit + 1, $params['offset'] );
                $search->setNamespaces( $params['namespace'] );
+               $search->setFeatureData( 'rewrite', (bool)$params['enablerewrites'] );
 
                $query = $search->transformSearchTerm( $query );
                $query = $search->replacePrefixes( $query );
@@ -134,6 +135,12 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                $apiResult->addValue( array( 'query', 'searchinfo' ),
                                        'suggestionsnippet', $matches->getSuggestionSnippet() );
                        }
+                       if ( isset( $searchInfo['rewrittenquery'] ) && $matches->hasRewrittenQuery() ) {
+                               $apiResult->addValue( array( 'query', 'searchinfo' ),
+                                       'rewrittenquery', $matches->getQueryAfterRewrite() );
+                               $apiResult->addValue( array( 'query', 'searchinfo' ),
+                                       'rewrittenquerysnippet', $matches->getQueryAfterRewriteSnippet() );
+                       }
                }
 
                // Add the search results to the result
@@ -303,10 +310,11 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                )
                        ),
                        'info' => array(
-                               ApiBase::PARAM_DFLT => 'totalhits|suggestion',
+                               ApiBase::PARAM_DFLT => 'totalhits|suggestion|rewrittenquery',
                                ApiBase::PARAM_TYPE => array(
                                        'totalhits',
                                        'suggestion',
+                                       'rewrittenquery',
                                ),
                                ApiBase::PARAM_ISMULTI => true,
                        ),
@@ -342,6 +350,7 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_SML2
                        ),
                        'interwiki' => false,
+                       'enablerewrites' => false,
                );
 
                $alternatives = SearchEngine::getSearchTypes();
index 142a780..cd4165b 100644 (file)
@@ -144,7 +144,7 @@ class ApiResult implements ApiSerializable {
        private $errorFormatter;
 
        // Deprecated fields
-       private $isRawMode, $checkingSize, $mainForContinuation;
+       private $checkingSize, $mainForContinuation;
 
        /**
         * @param int|bool $maxSize Maximum result "size", or false for no limit
@@ -159,7 +159,6 @@ class ApiResult implements ApiSerializable {
                }
 
                $this->maxSize = $maxSize;
-               $this->isRawMode = false;
                $this->checkingSize = true;
                $this->reset();
        }
@@ -1205,27 +1204,23 @@ class ApiResult implements ApiSerializable {
         */
 
        /**
-        * Call this function when special elements such as '_element'
-        * are needed by the formatter, for example in XML printing.
+        * Formerly used to enable/disable "raw mode".
         * @deprecated since 1.25, you shouldn't have been using it in the first place
         * @since 1.23 $flag parameter added
         * @param bool $flag Set the raw mode flag to this state
         */
        public function setRawMode( $flag = true ) {
-               // Can't wfDeprecated() here, since we need to set this flag from
-               // ApiMain for BC with stuff using self::getIsRawMode as
-               // "self::getIsXMLMode".
-               $this->isRawMode = $flag;
+               wfDeprecated( __METHOD__, '1.25' );
        }
 
        /**
-        * Returns true whether the formatter requested raw data.
+        * Returns true, the equivalent of "raw mode" is always enabled now
         * @deprecated since 1.25, you shouldn't have been using it in the first place
         * @return bool
         */
        public function getIsRawMode() {
-               /// @todo: After Wikibase stops calling this, warn
-               return $this->isRawMode;
+               wfDeprecated( __METHOD__, '1.25' );
+               return true;
        }
 
        /**
@@ -1238,7 +1233,7 @@ class ApiResult implements ApiSerializable {
                return $this->getResultData( null, array(
                        'BC' => array(),
                        'Types' => array(),
-                       'Strip' => $this->isRawMode ? 'bc' : 'all',
+                       'Strip' => 'all',
                ) );
        }
 
index bb5c145..7d89b69 100644 (file)
@@ -139,10 +139,8 @@ class ApiRevisionDelete extends ApiBase {
                if ( !$messages ) {
                        return array();
                }
-               $result = $this->getResult();
                $ret = array();
                foreach ( $messages as $m ) {
-                       $message = array();
                        if ( $m['message'] instanceof Message ) {
                                $msg = $m['message'];
                                $message = array( 'message' => $msg->getKey() );
index a66b356..e87fc97 100644 (file)
@@ -20,7 +20,7 @@
  */
 
 /**
- * Prepare and edit in shared cache so that it can be reused on edit
+ * Prepare an edit in shared cache so that it can be reused on edit
  *
  * This endpoint can be called via AJAX as the user focuses on the edit
  * summary box. By the time of submission, the parse may have already
index 0b6c167..8737f7f 100644 (file)
        "apihelp-query+allfileusages-param-from": "Titel der Datei, bei der die Aufzählung beginnen soll.",
        "apihelp-query+allfileusages-param-to": "Titel der Datei, bei der die Aufzählung enden soll.",
        "apihelp-query+allfileusages-param-prop": "Informationsteile zum Einbinden:",
+       "apihelp-query+allfileusages-paramvalue-prop-title": "Ergänzt den Titel der Datei.",
        "apihelp-query+allfileusages-param-limit": "Wie viele Gesamtobjekte zurückgegeben werden sollen.",
        "apihelp-query+allfileusages-param-dir": "Aufzählungsrichtung.",
        "apihelp-query+allfileusages-example-unique": "Einheitliche Dateititel auflisten",
        "apihelp-query+tags-description": "Änderungs-Tags auflisten.",
        "apihelp-query+tags-example-simple": "Verfügbare Tags auflisten",
        "apihelp-query+usercontribs-description": "Alle Bearbeitungen von einem Benutzer abrufen.",
+       "apihelp-query+usercontribs-param-limit": "Die maximale Anzahl der zurückzugebenden Beiträge.",
+       "apihelp-query+usercontribs-param-start": "Der zurückzugebende Start-Zeitstempel.",
+       "apihelp-query+usercontribs-param-end": "Der zurückzugebende End-Zeitstempel.",
+       "apihelp-query+usercontribs-param-user": "Die Benutzer, für die Beiträge abgerufen werden sollen.",
        "apihelp-query+usercontribs-paramvalue-prop-ids": "Ergänzt die Seiten- und Versionskennung.",
+       "apihelp-query+usercontribs-paramvalue-prop-timestamp": "Ergänzt den Zeitstempel der Bearbeitung.",
+       "apihelp-query+usercontribs-paramvalue-prop-comment": "Ergänzt den Kommentar der Bearbeitung.",
+       "apihelp-query+userinfo-paramvalue-prop-editcount": "Ergänzt den Bearbeitungszähler des aktuellen Benutzers.",
        "apihelp-query+userinfo-paramvalue-prop-realname": "Fügt den bürgerlichen Namen des Benutzers hinzu.",
        "apihelp-query+userinfo-example-simple": "Informationen über den aktuellen Benutzer abrufen",
        "apihelp-query+users-description": "Informationen über eine Liste von Benutzern abrufen.",
+       "apihelp-query+users-example-simple": "Gibt Informationen für den Benutzer <kbd>Example</kbd> zurück.",
        "apihelp-rsd-description": "Ein RSD-Schema (Really Simple Discovery) exportieren.",
        "apihelp-rsd-example-simple": "Das RSD-Schema exportieren",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "An allen beobachteten Seiten arbeiten.",
        "api-help-param-deprecated": "Veraltet.",
        "api-help-param-required": "Dieser Parameter ist erforderlich.",
        "api-help-datatypes-header": "Datentypen",
-       "api-help-param-list": "{{PLURAL:$1|1=Ein Wert|2=Werte (mit <kbd>{{!}}</kbd> trennen)}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=Einer der folgenden Werte|2=Werte (mit <kbd>{{!}}</kbd> trennen)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Muss leer sein|Kann leer sein oder $2}}",
        "api-help-param-limit": "Nicht mehr als $1 erlaubt.",
        "api-help-param-limit2": "Nicht mehr als $1 ($2 für Bots) erlaubt.",
index 2cb0e37..78f0568 100644 (file)
        "apihelp-query+search-param-limit": "How many total pages to return.",
        "apihelp-query+search-param-interwiki": "Include interwiki results in the search, if available.",
        "apihelp-query+search-param-backend": "Which search backend to use, if not the default.",
+       "apihelp-query+search-param-enablerewrites": "Enable internal query rewriting. Some search backends can rewrite the query into one its thinks gives better results, such as correcting spelling errors.",
        "apihelp-query+search-example-simple": "Search for <kbd>meaning</kbd>.",
        "apihelp-query+search-example-text": "Search texts for <kbd>meaning</kbd>.",
        "apihelp-query+search-example-generator": "Get page info about the pages returned for a search for <kbd>meaning</kbd>.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Set the notification timestamp for <kbd>Main page</kbd> so all edits since 1 January 2012 are unviewed.",
        "apihelp-setnotificationtimestamp-example-allpages": "Reset the notification status for pages in the <kbd>{{ns:user}}</kbd> namespace.",
 
+       "apihelp-stashedit-description": "Prepare an edit in shared cache.\n\nThis is intended to be used via AJAX from the edit form to improve the performance of the page save.",
+       "apihelp-stashedit-param-title": "Title of the page being edited.",
+       "apihelp-stashedit-param-section": "Section number. <kbd>0</kbd> for the top section, <kbd>new</kbd> for a new section.",
+       "apihelp-stashedit-param-sectiontitle": "The title for a new section.",
+       "apihelp-stashedit-param-text": "Page content.",
+       "apihelp-stashedit-param-contentmodel": "Content model of the new content.",
+       "apihelp-stashedit-param-contentformat": "Content serialization format used for the input text.",
+       "apihelp-stashedit-param-baserevid": "Revision ID of the base revision.",
+
        "apihelp-tag-description": "Add or remove change tags from individual revisions or log entries.",
        "apihelp-tag-param-rcid": "One or more recent changes IDs from which to add or remove the tag.",
        "apihelp-tag-param-revid": "One or more revision IDs from which to add or remove the tag.",
index edc5b7a..a9c04d0 100644 (file)
@@ -77,7 +77,7 @@
        "apihelp-edit-description": "Crear y editar páginas.",
        "apihelp-edit-param-title": "Título de la página a editar. No se puede utilizar junto a <var>$1pageid</var>.",
        "apihelp-edit-param-pageid": "ID de la página a editar. No se puede utilizar junto a <var>$1title</var>.",
-       "apihelp-edit-param-section": "Número de la sección. <kbd>0</kbd> para una sección superior, <kbd>nuevo</kbd> para una nueva sección.",
+       "apihelp-edit-param-section": "Número de la sección. <kbd>0</kbd> para una sección superior, <kbd>new</kbd> para una sección nueva.",
        "apihelp-edit-param-sectiontitle": "El título de una sección nueva.",
        "apihelp-edit-param-text": "Contenido de la página.",
        "apihelp-edit-param-summary": "Editar resumen. Además de la sección del título cuando $1section=new y $1sectiontitle no están establecidos.",
        "apihelp-feedrecentchanges-param-hidebots": "Ocultar los cambios realizados por bots.",
        "apihelp-feedrecentchanges-param-hideanons": "Ocultar los cambios realizados por usuarios anónimos.",
        "apihelp-feedrecentchanges-param-hideliu": "Ocultar los cambios realizados por usuarios registrados.",
-       "apihelp-feedrecentchanges-param-hidepatrolled": "Ocultar los cambios patrullados.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Ocultar los cambios verificados.",
        "apihelp-feedrecentchanges-param-hidemyself": "Ocultar los cambios realizados por el usuario actual.",
        "apihelp-feedrecentchanges-param-tagfilter": "Filtrar por etiquetas.",
        "apihelp-feedrecentchanges-param-target": "Mostrar solo los cambios en las páginas enlazadas en esta.",
        "apihelp-parse-example-text": "Analizar wikitexto.",
        "apihelp-parse-example-texttitle": "Analizar wikitexto, especificando el título de la página.",
        "apihelp-parse-example-summary": "Analizar un resumen.",
-       "apihelp-patrol-description": "Patrullar una página o revisión.",
-       "apihelp-patrol-example-rcid": "Patrullar un cambio reciente",
-       "apihelp-patrol-example-revid": "Patrullar una revisión",
+       "apihelp-patrol-description": "Verificar una página o revisión.",
+       "apihelp-patrol-param-rcid": "Identificador de cambios recientes que verificar.",
+       "apihelp-patrol-example-rcid": "Verificar un cambio reciente.",
+       "apihelp-patrol-example-revid": "Verificar una revisión.",
        "apihelp-protect-description": "Cambiar el nivel de protección de una página.",
        "apihelp-protect-param-title": "Título de la página a (des)proteger. No se puede utilizar con $1pageid.",
        "apihelp-protect-param-pageid": "ID de la página a (des)proteger. No se puede utilizar con $1title.",
        "apihelp-query+recentchanges-param-prop": "Incluir piezas adicionales de información:",
        "apihelp-query+recentchanges-paramvalue-prop-parsedcomment": "Añade el comentario analizado para la edición.",
        "apihelp-query+recentchanges-paramvalue-prop-flags": "Añade marcas para la edición.",
-       "apihelp-query+recentchanges-paramvalue-prop-patrolled": "Etiqueta ediciones patrullables como patrulladas o no patrulladas.",
+       "apihelp-query+recentchanges-paramvalue-prop-patrolled": "Etiqueta ediciones verificables como verificadas o no verificadas.",
        "apihelp-query+recentchanges-param-token": "Usa <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> en su lugar.",
        "apihelp-query+recentchanges-param-limit": "Cuántos cambios en total se devolverán.",
        "apihelp-query+recentchanges-param-type": "Cuántos tipos de cambios se mostrarán.",
        "apihelp-query+usercontribs-paramvalue-prop-title": "Agrega el título y el identificador del espacio de nombres de la página.",
        "apihelp-query+usercontribs-paramvalue-prop-timestamp": "Añade fecha y hora de la edición.",
        "apihelp-query+usercontribs-paramvalue-prop-comment": "Añade el comentario de la edición.",
+       "apihelp-query+usercontribs-paramvalue-prop-patrolled": "Etiqueta ediciones verificadas.",
        "apihelp-query+usercontribs-paramvalue-prop-tags": "Lista las etiquetas para la edición.",
+       "apihelp-query+usercontribs-param-show": "Mostrar solo los elementos que coinciden con estos criterios. Por ejemplo, solo ediciones no menores: <kbd>$2show=!minor</kbd>.\n\nSi se establece <kbd>$2show=patrolled</kbd> o <kbd>$2show=!patrolled</kbd>, las revisiones más antiguas que <var>[[mw:Manual:$wgRCMaxAge|$wgRCMaxAge]]</var> ($1 {{PLURAL:$1|segundo|segundos}}) no se mostrarán.",
        "apihelp-query+usercontribs-example-user": "Mostrar contribuciones del usuario <kbd>Ejemplo</kbd>.",
        "apihelp-query+usercontribs-example-ipprefix": "Mostrar las contribuciones de todas las direcciones IP con el prefijo <kbd>192.0.2.</kbd>.",
        "apihelp-query+userinfo-description": "Obtener información sobre el usuario actual.",
        "apihelp-query+watchlist-paramvalue-prop-userid": "Añade el identificador de usuario de quien hizo la edición.",
        "apihelp-query+watchlist-paramvalue-prop-comment": "Añade el comentario de la edición.",
        "apihelp-query+watchlist-paramvalue-prop-timestamp": "Añade fecha y hora de la edición.",
-       "apihelp-query+watchlist-paramvalue-prop-patrol": "Etiqueta las ediciones que están patrulladas.",
+       "apihelp-query+watchlist-paramvalue-prop-patrol": "Etiqueta las ediciones que están verificadas.",
        "apihelp-query+watchlist-paramvalue-prop-sizes": "Añade la longitud vieja y la nueva de la página.",
        "apihelp-query+watchlist-paramvalue-prop-notificationtimestamp": "Añade fecha y hora de cuando el usuario fue notificado por última vez acerca de la edición.",
        "apihelp-query+watchlist-paramvalue-prop-loginfo": "Añade información del registro cuando corresponda.",
        "apihelp-revisiondelete-param-show": "Qué mostrar en cada revisión.",
        "apihelp-revisiondelete-param-reason": "Motivo de la eliminación o restauración.",
        "apihelp-rollback-param-summary": "Resumen de edición personalizado. Si se deja vacío se utilizará el predeterminado.",
+       "apihelp-stashedit-param-title": "Título de la página que se está editando.",
+       "apihelp-stashedit-param-section": "Número de la sección. <kbd>0</kbd> para una sección superior, <kbd>new</kbd> para una sección nueva.",
+       "apihelp-stashedit-param-sectiontitle": "El título de una sección nueva.",
+       "apihelp-stashedit-param-text": "Contenido de la página.",
+       "apihelp-stashedit-param-contentformat": "Formato de serialización de contenido utilizado para el texto de entrada.",
+       "apihelp-stashedit-param-baserevid": "Identificador de la revisión de base.",
        "apihelp-tag-param-logid": "Uno o más identificadores de entradas del registro a los que agregar o eliminar la etiqueta.",
        "apihelp-tag-param-reason": "Motivo del cambio.",
        "apihelp-tag-example-rev": "Añadir la etiqueta <kbd>vandalism</kbd> al identificador de revisión 123 sin especificar un motivo",
        "api-help-param-type-boolean": "Tipo: booleano/lógico ([[Special:ApiHelp/main#main/datatypes|detalles]])",
        "api-help-param-type-timestamp": "Tipo: {{PLURAL:$1|1=timestamp|2=lista de timestamps}} ([[Special:ApiHelp/main#main/datatypes|formatos permitidos]])",
        "api-help-param-type-user": "Tipo: {{PLURAL:$1|1=nombre de usuario|2=lista de nombres de usuarios}}",
-       "api-help-param-list": "{{PLURAL:$1|1=Un valor|2=Valores (separados por <kbd>{{!}}</kbd>)}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=Uno de los siguientes valores|2=Valores (separados por <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Debe estar vacío|Puede estar vacío, o $2}}",
        "api-help-param-limit": "No se permite más de $1.",
        "api-help-param-limit2": "No se permite más de $1 ($2 para los bots).",
index 5aec2c6..8d4bd0c 100644 (file)
@@ -20,7 +20,8 @@
                        "Wladek92",
                        "Ash Crow",
                        "L",
-                       "Umherirrender"
+                       "Umherirrender",
+                       "Elfix"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentation]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Liste de diffusion]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annonces de l’API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bogues et demandes]\n</div>\n<strong>État :</strong> Toutes les fonctionnalités affichées sur cette page devraient fonctionner, mais l’API est encore en cours de développement et peut changer à tout moment. Inscrivez-vous à [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la liste de diffusion mediawiki-api-announce] pour être informé des mises à jour.\n\n<strong>Requêtes erronées :</strong> Si des requêtes erronées sont envoyées à l’API, un en-tête HTTP sera renvoyé avec la clé « MediaWiki-API-Error ». La valeur de cet en-tête et le code d’erreur renvoyé prendront la même valeur. Pour plus d’information, voyez [[mw:API:Errors_and_warnings|API: Errors and warnings]].",
        "apihelp-query+logevents-paramvalue-prop-details": "Liste les détails supplémentaires sur l’événement.",
        "apihelp-query+logevents-paramvalue-prop-tags": "Liste les balises de l’événement.",
        "apihelp-query+logevents-param-type": "Filtrer les entrées du journal à ce seul type.",
-       "apihelp-query+logevents-param-action": "Filtrer les actions du journal à cette seule action. Écrase <var>$1type</var>. Des actions avec une astérisque de la forme <var>$1type</var> sont autorisées pour spécifier n’importe quelle chaîne à la place de l’astérisque.",
+       "apihelp-query+logevents-param-action": "Filtrer les actions du journal à cette seule action. Écrase <var>$1type</var>. La présence d'une valeur avec un astérisque dans la liste, comme <var>$1type</var>, indique qu'une chaîne arbitraire peut être passée dans dans la requête à la place de l'astérisque.",
        "apihelp-query+logevents-param-start": "L’horodatage auquel démarrer l’énumération.",
        "apihelp-query+logevents-param-end": "L’horodatage auquel arrêter l’énumération.",
        "apihelp-query+logevents-param-user": "Restreindre aux entrées générées par l’utilisateur spécifié.",
        "apihelp-query+querypage-param-page": "Le nom de la page spéciale. Remarque, ce nom est sensible à la casse.",
        "apihelp-query+querypage-param-limit": "Nombre de résultats à renvoyer.",
        "apihelp-query+querypage-example-ancientpages": "Renvoyer les résultats de [[Special:Ancientpages]].",
-       "apihelp-query+random-description": "Obtenir un ensemble de pages au hasard.\n\nLes pages sont listées dans un ordre prédéterminé, seul le point de départ est aléatoire. Par exemple, cela signifie que si la première page dans la liste est <samp>Accueil</samp>, la seconde sera <em>toujours</em> <samp>Liste des singes de fiction</samp>, la troisième <samp>Liste de personnes figurant sur les timbres de Vanuatu</samp>, etc.\n\nSi le nombre de page dans l’espace de nom est inférieur à <var>$1limit</var>, moins de pages seront renvoyées. La même page ne sera jamais renvoyée deux fois.",
+       "apihelp-query+random-description": "Obtenir un ensemble de pages au hasard.\n\nLes pages sont listées dans un ordre prédéterminé, seul le point de départ est aléatoire. Par exemple, cela signifie que si la première page dans la liste est <samp>Accueil</samp>, la seconde sera <em>toujours</em> <samp>Liste des singes de fiction</samp>, la troisième <samp>Liste de personnes figurant sur les timbres de Vanuatu</samp>, etc.",
        "apihelp-query+random-param-namespace": "Renvoyer seulement des pages de ces espaces de noms.",
        "apihelp-query+random-param-limit": "Limite sur le nombre de pages aléatoires renvoyées.",
-       "apihelp-query+random-param-redirect": "Charger une redirection aléatoire plutôt qu’une page aléatoire.",
+       "apihelp-query+random-param-redirect": "Utilisez <kbd>$1filterredir=redirects</kbd> au lieu de ce paramètre.",
+       "apihelp-query+random-param-filterredir": "Comment filtrer les redirections.",
        "apihelp-query+random-example-simple": "Obtenir deux pages aléatoires de l’espace principal",
        "apihelp-query+random-example-generator": "Renvoyer les informations de la page sur deux pages au hasard de l’espace de noms principal",
        "apihelp-query+recentchanges-description": "Énumérer les modifications récentes.",
        "apihelp-query+redirects-param-show": "Afficher uniquement les éléments correspondant à ces critères :\n;fragment:Afficher uniquement les redirections avec un fragment.\n;!fragment:Afficher uniquement les redirections sans fragment.",
        "apihelp-query+redirects-example-simple": "Obtenir une liste des redirections vers [[Main Page]]",
        "apihelp-query+redirects-example-generator": "Obtenir des informations sur toutes les redirections vers [[Main Page]]",
-       "apihelp-query+revisions-description": "Obtenir des informations sur la révision.\n\nPeut être utilisé de différentes manières :\n# Obtenir des données sur un ensemble de pages (dernière révision), en mettant les titres ou les ids de page.\n# Obtenir les révisions d’une page donnée, en utilisant les titres ou les ids de page avec début, fin ou limite.\n# Obtenir des données sur un ensemble de révisions en donnant leurs IDs et leurs ids de révision.",
+       "apihelp-query+revisions-description": "Obtenir des informations sur la révision.\n\nPeut être utilisé de différentes manières :\n# Obtenir des données sur un ensemble de pages (dernière révision), en mettant les titres ou les ids de page.\n# Obtenir les révisions d’une page donnée, en utilisant les titres ou les ids de page avec rvstart, rvend ou rvlimit.\n# Obtenir des données sur un ensemble de révisions en donnant leurs IDs avec revids.",
        "apihelp-query+revisions-paraminfo-singlepageonly": "Utilisable uniquement avec une seule page (mode #2).",
        "apihelp-query+revisions-param-startid": "À quel ID de révision démarrer l’énumération.",
        "apihelp-query+revisions-param-endid": "Arrêter l’énumération des révisions à cet ID.",
        "apihelp-query+search-param-limit": "Combien de pages renvoyer au total.",
        "apihelp-query+search-param-interwiki": "Inclure les résultats interwiki dans la recherche, s’ils sont disponibles.",
        "apihelp-query+search-param-backend": "Quel serveur de recherche utiliser, si ce n’est pas celui par défaut.",
+       "apihelp-query+search-param-enablerewrites": "Activer la réécriture interne de la requête. Les serveurs de recherche peuvent changer la requête en une autre dont ils estiment qu'elle donne de meilleurs résultats, par exemple en corrigeant l'orthographe.",
        "apihelp-query+search-example-simple": "Rechercher  <kbd>signification </kbd>.",
        "apihelp-query+search-example-text": "Rechercher des textes pour <kbd>signification</kbd>.",
        "apihelp-query+search-example-generator": "Obtenir les informations sur les pages renvoyées par une recherche de <kbd>signification</kbd>.",
        "apihelp-setnotificationtimestamp-example-page": "Réinitialiser l’état de notification pour la <kbd>Page principale<kbd>.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixer l’horodatage de notification pour <kbd>Page principale</kbd> afin que toutes les modifications depuis le 1 janvier 2012 soient non vues",
        "apihelp-setnotificationtimestamp-example-allpages": "Réinitialiser l’état de notification sur les pages dans l’espace de noms <kbd>{{ns:user}}</kbd>.",
+       "apihelp-stashedit-description": "Préparer une modification dans le cache partagé.\n\nCeci a pour but d’être utilisé via AJAX depuis le formulaire d’édition pour améliorer la performance de la sauvegarde de la page.",
+       "apihelp-stashedit-param-title": "Titre de la page en cours de modification.",
+       "apihelp-stashedit-param-section": "Numéro de section. <kbd>0</kbd> pour la section du haut, <kbd>new</kbd> pour une nouvelle section.",
+       "apihelp-stashedit-param-sectiontitle": "Le titre pour une nouvelle section.",
+       "apihelp-stashedit-param-text": "Contenu de la page.",
+       "apihelp-stashedit-param-contentmodel": "Modèle de contenu du nouveau contenu.",
+       "apihelp-stashedit-param-contentformat": "Format de sérialisation de contenu utilisé pour le texte saisi.",
+       "apihelp-stashedit-param-baserevid": "ID de révision de la révision de base.",
        "apihelp-tag-description": "Ajouter ou enlever des balises de modification aux révisions ou ou aux entrées de journal individuelles.",
        "apihelp-tag-param-rcid": "Un ou plus IDs de modification récente à partir desquels ajouter ou supprimer la balise.",
        "apihelp-tag-param-revid": "Un ou plus IDs de révision à partir desquels ajouter ou supprimer la balise.",
        "api-help-param-type-boolean": "Type : booléen ([[Special:ApiHelp/main#main/datatypes|détails]])",
        "api-help-param-type-timestamp": "Type : {{PLURAL:$1|1=horodatage|2=liste d’horodatages}} ([[Special:ApiHelp/main#main/datatypes|formats autorisés]])",
        "api-help-param-type-user": "Type : {{PLURAL:$1|1=nom d’utilisateur|2=liste de noms d’utilisateur}}",
-       "api-help-param-list": "{{PLURAL:$1|1=Une valeur|2=Valeurs (séparées par <kbd>{{!}}</kbd>)}} : $2",
+       "api-help-param-list": "{{PLURAL:$1|1=Une des valeurs suivantes|2=Valeurs (séparées par <kbd>{{!}}</kbd>)}} : $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Doit être vide|Peut être vide, ou $2}}",
        "api-help-param-limit": "Pas plus de $1 autorisé.",
        "api-help-param-limit2": "Pas plus de $1 autorisé ($2 pour les robots).",
index 84a8d68..1d06cd8 100644 (file)
        "apihelp-setnotificationtimestamp-example-page": "Restaurar o estado de notificación para a <kbd>Páxina Principal</kbd>.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixar o selo de tempo de notificación para a <kbd>Main page</kbd> de forma que todas as edicións dende o 1 se xaneiro de 2012 queden sen revisar.",
        "apihelp-setnotificationtimestamp-example-allpages": "Restaurar o estado de notificación para as páxinas no espazo de nomes de <kbd>{{ns:user}}</kbd>.",
+       "apihelp-stashedit-param-text": "Contido da páxina.",
+       "apihelp-stashedit-param-contentmodel": "Modelo de contido para o novo contido.",
+       "apihelp-stashedit-param-contentformat": "Formato de serialización de contido utilizado para o texto de entrada.",
+       "apihelp-stashedit-param-baserevid": "Identificador da revisión da revisión de base.",
        "apihelp-tag-description": "Engadir ou eliminar etiquetas de cambio de revisións individuais ou entradas de rexistro.",
        "apihelp-tag-param-rcid": "Identificadores de un ou máis cambios recentes nos que engadir ou eliminar a etiqueta.",
        "apihelp-tag-param-revid": "Identificadores de unha ou máis revisións nas que engadir ou eliminar a etiqueta.",
        "api-help-param-type-boolean": "Tipo: booleano ([[Special:ApiHelp/main#main/datatypes|detalles]])",
        "api-help-param-type-timestamp": "Tipo: {{PLURAL:$1|1=selo de tempo|2=lista de selos de tempo}} ([[Special:ApiHelp/main#main/datatypes|formatos permitidos]])",
        "api-help-param-type-user": "Tipo: {{PLURAL:$1|1=nome de usuario|2=lista de nomes de usuarios}}",
-       "api-help-param-list": "{{PLURAL:$1|1=Un valor|2=Valores (separados con <kbd>{{!}}</kbd>)}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=Un valor dos seguintes valores|2=Valores (separados con <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Debe ser baleiro|Pode ser baleiro, ou $2}}",
        "api-help-param-limit": "Non se permiten máis de $1.",
        "api-help-param-limit2": "Non se permiten máis de $1 ($2 para bots).",
index ccc9aae..cb29d8c 100644 (file)
        "apihelp-query+search-paramvalue-prop-sectiontitle": "הוספת שם הפסקה התואמת.",
        "apihelp-query+search-paramvalue-prop-categorysnippet": "הוספת קטע קצר מפוענח של הקטגוריה התואמת.",
        "apihelp-query+search-paramvalue-prop-isfilematch": "הוספת בוליאני שמציין אם החיפוש תאם לתוכן של קובץ.",
-       "apihelp-query+search-paramvalue-prop-score": "<span class=\"apihelp-deprecated\">×\9e×\99×\95ש×\9f ×\95×\97סר־ת×\95ק×\9f.</span>",
-       "apihelp-query+search-paramvalue-prop-hasrelated": "<span class=\"apihelp-deprecated\">×\9e×\99×\95ש×\9f ×\95×\97סר־ת×\95ק×\9f.</span>",
+       "apihelp-query+search-paramvalue-prop-score": "<span class=\"apihelp-deprecated\">×\9e×\99×\95ש×\9f ×\95×\97סר־×\94שפע×\94.</span>",
+       "apihelp-query+search-paramvalue-prop-hasrelated": "<span class=\"apihelp-deprecated\">×\9e×\99×\95ש×\9f ×\95×\97סר־×\94שפע×\94.</span>",
        "apihelp-query+search-param-limit": "כמה דפים להחזיר בסך הכול.",
-       "apihelp-query+search-param-interwiki": "לכלול תוצאות בינוויקי בחיפוש ם זמין.",
+       "apihelp-query+search-param-interwiki": "לכלול תוצאות בינוויקי בחיפוש, אם זמין.",
        "apihelp-query+search-param-backend": "באיזה שרת חיפוש להשתמש אם לא בבררת המחדל.",
+       "apihelp-query+search-param-enablerewrites": "הפעלת שכתוב שאילתות פנימי. שרתי חיפוש אחדים יכולים לשכתב את השאילתה לצורה שלדעתם נותנת תוצאות טובות יותר, למשל תיקון שגיאות כתיב.",
        "apihelp-query+search-example-simple": "חיפוש <kbd>meaning</kbd>.",
        "apihelp-query+search-example-text": "חיפוש טקסטים עבור <kbd>meaning</kbd>.",
        "apihelp-query+search-example-generator": "קבלת מידע על הדף עבור שמוחזרים מחיפוש אחרי <kbd>meaning</kbd>.",
        "apihelp-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-stashedit-description": "הכנת עריכה במטמון משותף.\n\nזה מיועד לשימוש דרך AJAX מתוך ערך כדי לשפר את הביצועים של שמירת הדף.",
+       "apihelp-stashedit-param-title": "כותרת הדף הנערך.",
+       "apihelp-stashedit-param-section": "מספר הפסקה. <kbd>0</kbd> עבור הפסקה הראשונה, <kbd>new</kbd> עבור פסקה חדשה.",
+       "apihelp-stashedit-param-sectiontitle": "כותרת הפסקה החדשה.",
+       "apihelp-stashedit-param-text": "תוכן הדף.",
+       "apihelp-stashedit-param-contentmodel": "מודל התוכן של התוכן החדש.",
+       "apihelp-stashedit-param-contentformat": "תסדיר הסדרת תוכן עבור טקסט הקלט.",
+       "apihelp-stashedit-param-baserevid": "מזהה גסה של גרסת הבסיס.",
        "apihelp-tag-description": "הוספת או הסרה של תגים מגרסאות בודדות או עיולי יומן בודדים.",
        "apihelp-tag-param-rcid": "מזהה שינוי אחרון אחד או יותר שתג יתווסף אליו או יוסר ממנו.",
        "apihelp-tag-param-revid": "מזהה גרסה אחד או יותר שתג יתווסף אליה או יוסר ממנה.",
        "api-help-param-type-boolean": "סוג: בוליאני ([[Special:ApiHelp/main#main/datatypes|פרטים]])",
        "api-help-param-type-timestamp": "סוג: {{PLURAL:$1|חותם־זמן|רשימת חותמי־זמן}} ([[Special:ApiHelp/main#main/datatypes|תסדירים מורשים]])",
        "api-help-param-type-user": "סוג: {{PLURAL:$1|1=שם משתמש|2=רשימת שמות משתמשים}}",
-       "api-help-param-list": "{{PLURAL:$1|1=ער×\9a ×\90×\97×\93|2=ערכים (מופרדים באמצעות \"<kbd>{{!}}</kbd>\")}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=×\90×\97×\93 ×\9e×\94ער×\9b×\99×\9d ×\94×\91×\90×\99×\9d|2=ערכים (מופרדים באמצעות \"<kbd>{{!}}</kbd>\")}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=חייב להיות ריק|יכול להיות ריק או $2}}",
        "api-help-param-limit": "מספר הפרמטרים לא יכול להיות גדול מ־$1.",
        "api-help-param-limit2": "המספר המרבי המותר הוא $1 (עבור בוטים – $2).",
        "api-help-permissions-granted-to": "{{PLURAL:$1|הוענק ל|הוענקו ל}}: $2",
        "api-help-right-apihighlimits": "להשתמש במגבלות גבוהות יותר בשאילתות API (שאילתות אטיות: $1; שאילתות מהירות: $2). המגבלות לשאילתות אטיות חלות גם על פרמטרים מרובי־ערכים.",
        "api-credits-header": "קרדיטים",
-       "api-credits": "מפתחי ה־API:\n* רואן קטאו (מפתח מוביל 2007–2009)\n* ויקטור וסילייב\n* בריאן טונג מין\n* סאם ריד\n* יורי אסטרחן (יוצר, מפתח מוביל מספטמבר 2006 עד ספטמבר 2007)\n* בראד יורש (מפתח מוביל מאז 2013)\n\nאנא שלחו הערות, הצעות ושאלות לכתובת mediawiki-api@lists.wikimedia.org או כתבו דיווח באג באתר https://bugzilla.wikimedia.org."
+       "api-credits": "מפתחי ה־API:\n* רואן קטאו (מפתח מוביל 2007–2009)\n* ויקטור וסילייב\n* בריאן טונג מין\n* סאם ריד\n* יורי אסטרחן (יוצר, מפתח מוביל מספטמבר 2006 עד ספטמבר 2007)\n* בראד יורש (מפתח מוביל מאז 2013)\n\nאנא שלחו הערות, הצעות ושאלות לכתובת mediawiki-api@lists.wikimedia.org או כתבו דיווח באג באתר https://phabricator.wikimedia.org."
 }
index 5c4c55e..90be9e2 100644 (file)
@@ -7,7 +7,8 @@
                        "Gianfranco",
                        "Alexmar983",
                        "Ricordisamoa",
-                       "Valepert"
+                       "Valepert",
+                       "Sannita"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentazione (in inglese)]]\n* [[mw:API:FAQ|FAQ (in inglese)]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailing list]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annunci sull'API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bug & richieste]\n</div>\n<strong>Stato:</strong> Tutte le funzioni e caratteristiche mostrate su questa pagina dovrebbero funzionare, ma l'API è ancora in fase d'attivo sviluppo, e potrebbe cambiare in qualsiasi momenento. Iscriviti alla [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce mailing list] per essere informato sugli aggiornamenti.\n\n<strong>Istruzioni sbagliate:</strong> quando vengono impartite all'API delle istruzioni sbagliate, un'intestazione HTTP verrà inviata col messaggio \"MediaWiki-API-Error\" e sia al valore dell'intestazione sia al codice d'errore verrà impostato lo stesso valore. Per maggiori informazioni leggi [[mw:API:Errors_and_warnings|API:Errori ed avvertimenti (in inglese)]].",
        "apihelp-edit-param-unwatch": "Rimuovi la pagina dagli Osservati Speciali dell'utente corrente.",
        "apihelp-edit-example-edit": "Modifica una pagina.",
        "apihelp-emailuser-description": "Manda un'e-mail ad un utente.",
+       "apihelp-emailuser-param-target": "Utente a cui inviare l'e-mail.",
+       "apihelp-emailuser-param-subject": "Oggetto dell'e-mail.",
+       "apihelp-emailuser-param-text": "Testo dell'e-mail.",
        "apihelp-emailuser-param-ccme": "Mandami una copia di questa mail.",
+       "apihelp-emailuser-example-email": "Manda una e-mail all'utente <kbd>WikiSysop</kbd> con il testo <kbd>Contenuto</kbd>",
        "apihelp-expandtemplates-description": "Espandi tutti i template nel wikitesto.",
        "apihelp-expandtemplates-param-title": "Titolo della pagina.",
        "apihelp-expandtemplates-param-text": "Wikitesto da convertire.",
@@ -94,6 +99,8 @@
        "apihelp-feedrecentchanges-param-hideanons": "Nascondi le modifiche fatte da utenti anonimi.",
        "apihelp-feedrecentchanges-param-hideliu": "Nascondi le modifiche apportate dagli utenti registrati.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Mostra solo le modifiche alle pagine collegate a quella specificata.",
+       "apihelp-feedrecentchanges-example-simple": "Mostra le ultime modifiche.",
+       "apihelp-feedrecentchanges-example-30days": "Mostra le modifiche degli ultimi 30 giorni.",
        "apihelp-login-param-name": "Nome utente.",
        "apihelp-login-param-password": "Password.",
        "apihelp-move-description": "Sposta una pagina.",
index 8dac7e0..bb403c6 100644 (file)
        "api-help-parameters": "{{PLURAL:$1|パラメーター}}:",
        "api-help-param-deprecated": "廃止予定です。",
        "api-help-param-required": "このパラメーターは必須です。",
-       "api-help-param-list": "{{PLURAL:$1|1=値 (いずれか1つ)|2=値 (<kbd>{{!}}</kbd>で区切る)}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=値 (次の値のいずれか1つ)|2=値 (<kbd>{{!}}</kbd>で区切る)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=空欄にしてください|空欄にするか、または $2}}",
        "api-help-param-integer-min": "{{PLURAL:$1|値}}は $2 以上にしてください。",
        "api-help-param-integer-max": "{{PLURAL:$1|値}}は $3 以下にしてください。",
index a263e09..4e0c006 100644 (file)
        "apihelp-query+imageinfo-paramvalue-prop-userid": "Deiht de Kännong vun jehdem Metmaacher derbei, dä en Väsohn vun dä Dattei huh jelaahde hät.",
        "apihelp-query+imageinfo-paramvalue-prop-comment": "Aanmärkonge bei dä Väsjohn.",
        "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "Donn di Aanmärkonge bei dä Väsjohn paase.",
-       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "Deiht de kannohnesche Överschreff vun dä Dattei derbei.",
+       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "Deiht de kannohnesche, schtandattmähßejje, Överschreff vun dä Dattei derbei.",
        "apihelp-query+imageinfo-paramvalue-prop-url": "Jitt dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i> för di Dattei un de Sigg met däh iere Äkliehrong uß.",
        "apihelp-query+imageinfo-paramvalue-prop-size": "Deiht de Jrühße vun dä Dattei en \n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Bytes</i>, de Hühde, de Breide, un, woh et se jitt, de Aanzahl Sigge derbei.",
        "apihelp-query+imageinfo-paramvalue-prop-dimensions": "Et sällve, wi de Jrühße.",
        "apihelp-query+querypage-example-ancientpages": "Donn de Äjehbneße vun „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[Special:Ancientpages]]</code>“ ußjävve.",
        "apihelp-query+random-param-namespace": "Jiff blohß sigge en heh dä Appachtemangs uß.",
        "apihelp-query+random-param-limit": "Wi vill zohfälleje Sigge sulle ußjejovve wähde?",
-       "apihelp-query+random-param-redirect": "Donn en zohfälleje Ömleijdong anschtatt vun ene zohfälleje Sigg lahde.",
+       "apihelp-query+random-param-redirect": "Nemm <kbd>$1filterredir=redirects</kbd> schtatt dämm.",
        "apihelp-query+random-example-simple": "Donn zwai zohfälleje Sigge vum Houb_Appachtemang ußjävve.",
        "apihelp-query+random-example-generator": "Donn Ennfommazjuhne övver zwai zohfälleje Sigge vum Houb_Appachtemang ußjävve.",
        "apihelp-query+recentchanges-description": "Donn de  neußte Änderonge opleßte.",
        "apihelp-rollback-param-title": "De Övverschreff vun dä Sigg för di_j_en vörrejje Väsjohn zeröckzeholle es. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</var>“ bruche.",
        "apihelp-rollback-param-pageid": "De Kännong vun dä Sigg för di_j_en vörrejje Väsjohn zeröckzeholle es. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1title</var>“ bruche.",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "Donn alle Sigge beärbeide, di en Oppaßleßte dren sin.",
+       "apihelp-stashedit-param-section": "Däm Affschnett sing Nommer. „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr>0</kbd>“ brängk der eezde Affschnett, dä keijn Övverschreff hät, „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr>new</kbd>“ brängg_ene neuje Affschnett.",
+       "apihelp-stashedit-param-sectiontitle": "De Övverschreff för ene neuje Afschnett",
+       "apihelp-stashedit-param-text": "Dä Sigg ehre Ennhalld.",
        "apihelp-tag-description": "Donn Makkehronge vun einzel Väsjohne udder Enndraähsch em Logbohch fott nämme udder se verjävve.",
        "apihelp-tag-param-rcid": "Ein udder mih Kännonge uß de neuste Ännderonge, woh di Makkehrong derbei jedonn udder fott jenumme wähde sull.",
        "apihelp-tag-param-revid": "Ein Kännong udder mih, woh di Makkehrong derbei jedonn udder fott jenumme wähde sull.",
        "api-help-param-type-boolean": "Zoot: Boolsch ([[Special:ApiHelp/main#main/datatypes|Einjzelheijte]])",
        "api-help-param-type-timestamp": "Zoot: {{PLURAL:$1|1=en Dattomm un en Zigg|2=en Leß met Aanjahbe us Dattom un Zigg}} (de [[Special:ApiHelp/main#main/datatypes|zohjelohße Fommahte]])",
        "api-help-param-type-user": "Zoot: {{PLURAL:$1|1=ene Metmaacher_Nahme|2=en Leß met Metmaacher_Nahme}}",
-       "api-help-param-list": "{{PLURAL:$1|1=Eijne Wäät|2=Wääte met <kbd>{{!}}</kbd> derzwesche}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=Eijne Wäät|2=Wääte met <kbd>{{!}}</kbd> derzwesche}} vun dänne heh: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Moß läddesch sin|Kann läddesch sin, udder $2}}",
        "api-help-param-limit": "Nit mih wi $1 sin zohjelohße.",
        "api-help-param-limit2": "Nit mih wi $1 sin zohjelohße, ävver $2 för de Bots.",
index d9ea21a..89bed36 100644 (file)
@@ -95,7 +95,7 @@
        "apihelp-query+linkshere-paramvalue-prop-redirect": "Markéiere wann d'Säit eng Viruleedung ass.",
        "apihelp-query+pageswithprop-example-generator": "Zousätzlech Informatiounen iwwer déi 10 éischt Säite kréie mat <code>_&#95;NOTOC_&#95;</code>.",
        "apihelp-query+protectedtitles-param-namespace": "Nëmmen Titelen aus dësen Nummraim opzielen.",
-       "apihelp-query+random-param-redirect": "Eng zoufälleg Viruleedung lueden aplaz vun enger zoufälleger Säit.",
+       "apihelp-query+random-param-redirect": "Benotzt dofir <kbd>$1filterredir=Viruleedungen</kbd>.",
        "apihelp-query+recentchanges-param-user": "Nëmmen Ännerunge vun dësem Benotzer opzielen.",
        "apihelp-query+recentchanges-paramvalue-prop-comment": "Setzt d'Bemierkung vun der Ännerung derbäi.",
        "apihelp-query+recentchanges-example-simple": "Rezent Ännerunge weisen",
        "apihelp-revisiondelete-description": "Versioune läschen a restauréieren.",
        "apihelp-revisiondelete-param-reason": "Grond fir ze Läschen oder ze Restauréieren.",
        "apihelp-rsd-example-simple": "Den RSD-Schema exportéieren",
+       "apihelp-stashedit-param-title": "Titel vun der Säit déi geännert gëtt.",
+       "apihelp-stashedit-param-sectiontitle": "Den Titel fir en neien Abschnitt.",
+       "apihelp-stashedit-param-text": "Inhalt vun der Säit",
        "apihelp-tag-param-reason": "Grond fir d'Ännerung.",
        "apihelp-unblock-description": "D'Spär vun engem Benotzer ophiewen.",
        "apihelp-unblock-param-reason": "Grond fir d'Spär opzehiewen",
index 30cf75b..74db742 100644 (file)
@@ -1,11 +1,12 @@
 {
        "@metadata": {
                "authors": [
-                       "Rahuldeshmukh101"
+                       "Rahuldeshmukh101",
+                       "V.narsikar"
                ]
        },
-       "apihelp-main-param-action": "à¤\95à¥\8bणति à¤\95ारवाà¤\88 à¤\95रायà¤\9aि",
-       "apihelp-main-param-curtimestamp": "निà¤\95ालात à¤\86ताà¤\9aà¥\8dया à¤µà¥\87ळà¥\87à¤\9aि à¤¨à¥\8bनà¥\8dद à¤\98à¥\8dया",
-       "apihelp-block-description": "सदसà¥\8dयास à¤¬à¥\8dयान à¤\95रा",
-       "apihelp-block-param-user": "सदस्याचे नाव, अंक पत्त्ता अथवा अंकपत्यांनचि मालिका प्रतिबांधित करा"
+       "apihelp-main-param-action": "à¤\95à¥\8bणतà¥\80 à¤\95ारà¥\8dयवाहà¥\80 à¤\95रावयाà¤\9aà¥\80.",
+       "apihelp-main-param-curtimestamp": "निà¤\95ालात à¤¸à¤¦à¥\8dय à¤µà¥\87ळठशà¥\8dयाà¤\9aा à¤\85à¤\82तरà¥\8dभाव à¤\95रा.",
+       "apihelp-block-description": "सदसà¥\8dयास à¤ªà¥\8dरतिबà¤\82धित à¤\95रा.",
+       "apihelp-block-param-user": "सदस्याचे नाव, अंक-पत्त्ता, किंवा प्रतिबंध करण्यासाठीचा आयपीचा आवाका."
 }
index a285b04..0d30440 100644 (file)
@@ -1,10 +1,18 @@
 {
        "@metadata": {
                "authors": [
-                       "Chelin"
+                       "Chelin",
+                       "C.R."
                ]
        },
        "apihelp-block-description": "Blocca n'utente.",
        "apihelp-createaccount-param-name": "Nomme utente.",
-       "apihelp-delete-description": "Scancella 'na paggena."
+       "apihelp-delete-description": "Scancella 'na paggena.",
+       "apihelp-edit-example-edit": "Cagna paggena.",
+       "apihelp-emailuser-description": "E-mail a n'utente.",
+       "apihelp-feedwatchlist-param-feedformat": "'O furmato d' 'o feed.",
+       "apihelp-login-example-login": "Tràse.",
+       "apihelp-move-description": "Mòve paggena.",
+       "apihelp-opensearch-param-search": "Ascìa stringa.",
+       "apihelp-opensearch-param-format": "'O furmato 'e ll'output."
 }
index 41443c6..c961872 100644 (file)
@@ -38,8 +38,8 @@
        "apihelp-edit-param-bot": "Markeer deze bewerking als bot.",
        "apihelp-edit-param-createonly": "Bewerk de pagina niet als die al bestaat.",
        "apihelp-edit-param-nocreate": "Geef een foutmelding als de pagina niet bestaat.",
-       "apihelp-edit-param-watch": "Voeg de pagina toe aan je huidige volglijst.",
-       "apihelp-edit-param-unwatch": "Verwijder de pagina van je huidige volglijst.",
+       "apihelp-edit-param-watch": "Voeg de pagina toe aan de volglijst van de huidige gebruiker.",
+       "apihelp-edit-param-unwatch": "Verwijder de pagina van de volglijst van de huidige gebruiker.",
        "apihelp-edit-example-edit": "Pagina bewerken",
        "apihelp-emailuser-description": "Gebruiker e-mailen.",
        "apihelp-emailuser-param-target": "Gebruiker naar wie de e-mail moet worden gestuurd.",
diff --git a/includes/api/i18n/olo.json b/includes/api/i18n/olo.json
new file mode 100644 (file)
index 0000000..99aef3f
--- /dev/null
@@ -0,0 +1,12 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Mashoi7"
+               ]
+       },
+       "apihelp-createaccount-param-name": "Käyttäitunnus.",
+       "apihelp-delete-description": "Ota sivu iäre.",
+       "apihelp-login-param-name": "Käyttäitunnus.",
+       "apihelp-login-param-password": "Peittosana.",
+       "apihelp-login-example-login": "Kirjuttai."
+}
index a5aedeb..a64e8e2 100644 (file)
        "apihelp-query+allcategories-param-dir": "Kierunek sortowania.",
        "apihelp-query+allcategories-param-limit": "Liczba kategorii do zwórcenia.",
        "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Może być użyte tylko z <var>$3user</var>.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Nie może być używane z <var>$3user</var>.",
        "apihelp-query+alldeletedrevisions-param-from": "Zacznij nasłuchiwanie na tym tytule.",
        "apihelp-query+alldeletedrevisions-param-to": "Skończ nasłuchiwanie na tym tytule.",
        "apihelp-query+alldeletedrevisions-param-tag": "Pokazuj tylko zmiany oznaczone tym znacznikiem.",
        "apihelp-query+watchlist-paramvalue-prop-comment": "Dodaje komentarz do edycji.",
        "apihelp-query+watchlist-paramvalue-prop-timestamp": "Dodaje znacznik czasu edycji.",
        "apihelp-query+watchlist-paramvalue-prop-sizes": "Dodaje starą i nową długość strony.",
+       "apihelp-stashedit-param-title": "Tytuł edytowanej strony.",
+       "apihelp-stashedit-param-sectiontitle": "Tytuł nowej sekcji.",
+       "apihelp-stashedit-param-text": "Zawartość strony.",
        "apihelp-tag-param-reason": "Powód zmiany.",
        "apihelp-unblock-param-reason": "Powód odblokowania.",
        "apihelp-undelete-param-reason": "Powód przywracania.",
        "api-help-param-type-boolean": "Typ: wartość logiczna ([[Special:ApiHelp/main#main/datatypes|szczegóły]])",
        "api-help-param-type-timestamp": "Typ: {{PLURAL:$1|1=znacznik czasu|2=lista znaczników czasu}} ([[Special:ApiHelp/main#main/datatypes|dozwolone formaty]])",
        "api-help-param-type-user": "Typ: {{PLURAL:$1|1=nazwa użytkownika|2=lista nazw uzytkowników}}",
-       "api-help-param-list": "{{PLURAL:$1|1=Jedna wartość|2=Wartości (oddziel za pomocą <kbd>{{!}}</kbd>)}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=Jedna z następujących wartość|2=Wartości (oddziel za pomocą <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-limit": "Nie więcej niż $1 dozwolone.",
        "api-help-param-limit2": "Nie więcej niż $1 ($2 dla botów) dozwolone.",
        "api-help-param-integer-min": "{{PLURAL:$1|1=Wartość musi być nie mniejsza|2=Wartości muszą być nie mniejsze}} niż $2.",
index 150ad8e..b919c44 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Vitorvicentevalente",
                        "Fúlvio",
-                       "Macofe"
+                       "Macofe",
+                       "Jkb8"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentação]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de discussão]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anúncios da API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Erros e solicitações]\n</div>\n<strong>Estado:</strong> Todas as funcionalidades mostradas nesta página deveriam estar a funcionar, mas a API ainda está em activo desenvolvimento, e pode ser alterada a qualquer momento. Inscreva-se na [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ lista de discussão mediawiki-api-announce] para ser informado acerca das actualizações.\n\n<strong>Solicitações erradas:</strong> Quando solicitações erradas são enviadas à API, um cabeçalho em HTTP será enviado com a chave \"MediaWiki-API-Error\" e, em seguida, tanto o valor do cabeçalho quanto o código de erro retornado serão definidos com o mesmo valor. Para mais informação, consulte [[mw:API:Errors_and_warnings|API: Errors and warnings]].",
@@ -18,8 +19,8 @@
        "apihelp-createaccount-param-email": "Endereço de correio eletrónico do utilizador (opcional).",
        "apihelp-createaccount-param-realname": "Nome verdadeiro do utilizador (opcional).",
        "apihelp-delete-description": "Eliminar uma página.",
-       "apihelp-delete-param-watch": "Adicionar a página à lista de vigiadas do utilizador actual.",
-       "apihelp-delete-param-unwatch": "Remover a página da lista de vigiadas do utilizador actual.",
+       "apihelp-delete-param-watch": "Adicionar a página à lista de vigiadas do utilizador atual.",
+       "apihelp-delete-param-unwatch": "Remover a página da lista de vigiadas do utilizador atual.",
        "apihelp-delete-example-simple": "Eliminar <kbd>Página Principal</kbd>.",
        "apihelp-disabled-description": "O módulo foi desativado.",
        "apihelp-edit-description": "Criar e editar páginas.",
@@ -41,7 +42,7 @@
        "apihelp-feedrecentchanges-param-hideminor": "Ocultar edições menores.",
        "apihelp-feedrecentchanges-param-hidebots": "Ocultar alterações feitas por robôs.",
        "apihelp-feedrecentchanges-param-hidepatrolled": "Ocultar alterações patrulhadas.",
-       "apihelp-feedrecentchanges-param-hidemyself": "Ocultar alterações feitas pelo utilizador actual.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Ocultar alterações feitas pelo utilizador atual.",
        "apihelp-feedrecentchanges-param-target": "Mostrar apenas mudanças em páginas afluentes a esta.",
        "apihelp-feedrecentchanges-example-simple": "Mostrar mudanças recentes",
        "apihelp-help-example-main": "Ajuda para o módulo principal",
@@ -75,6 +76,7 @@
        "apihelp-query+filearchive-example-simple": "Mostrar lista de todos os ficheiros eliminados",
        "apihelp-query+info-description": "Obter informação básica da página.",
        "apihelp-query+recentchanges-example-simple": "Lista de mudanças recentes",
+       "apihelp-query+search-param-enablerewrites": "Habilitar rescrever a pesquisa interna. Alguns motores de busca podem rescrever a consulta para outra que acha dará melhores resultados, como a corrigir erros de ortografia.",
        "apihelp-unblock-description": "Desbloquear um utilizador.",
        "apihelp-unblock-param-reason": "Motivo para o desbloqueio.",
        "apihelp-undelete-param-title": "Título da página a restaurar.",
@@ -96,6 +98,7 @@
        "api-help-param-deprecated": "Obsoleto.",
        "api-help-param-required": "Este parâmetro é obrigatório.",
        "api-help-datatypes-header": "Tipo de dados",
+       "api-help-param-list": "{{PLURAL:$1|1=Um dos seguintes valores|2=Valores (separar com <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-multi-separate": "Separe os valores com <kbd>|</kbd>.",
        "api-help-param-default": "Padrão: $1",
        "api-help-param-default-empty": "Padrão: <span class=\"apihelp-empty\">(vazio)</span>",
index 082f83f..b55faf4 100644 (file)
        "apihelp-query+imageinfo-paramvalue-prop-userid": "Imageinfo returns information about file revisions (normally the last revision since <code>iilimit</code> defaults to 1). <code>userid</code> includes the ID of the user who made the (re)upload which created that revision. So there will be one user ID per imageinfo item; if you set the limit high enough, you will get all revisions of all files as separate imageinfo items.\n\n{{doc-apihelp-paramvalue|query+imageinfo|prop|userid}}",
        "apihelp-query+imageinfo-paramvalue-prop-comment": "{{doc-apihelp-paramvalue|query+imageinfo|prop|comment}}",
        "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "{{doc-apihelp-paramvalue|query+imageinfo|prop|parsedcomment}}",
-       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "{{doc-apihelp-paramvalue|query+imageinfo|prop|canonicaltitle}}",
+       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "A canonocal title is aa title formatted in the same way you would see it on the top of the page (localized namespace name, first letters capitalized, spaces instead of underscores). \n{{doc-apihelp-paramvalue|query+imageinfo|prop|canonicaltitle}}",
        "apihelp-query+imageinfo-paramvalue-prop-url": "{{doc-apihelp-paramvalue|query+imageinfo|prop|url}}",
        "apihelp-query+imageinfo-paramvalue-prop-size": "{{doc-apihelp-paramvalue|query+imageinfo|prop|size}}",
        "apihelp-query+imageinfo-paramvalue-prop-dimensions": "{{doc-apihelp-paramvalue|query+imageinfo|prop|dimensions}}",
        "apihelp-query+search-param-limit": "{{doc-apihelp-param|query+search|limit}}",
        "apihelp-query+search-param-interwiki": "{{doc-apihelp-param|query+search|interwiki}}",
        "apihelp-query+search-param-backend": "{{doc-apihelp-param|query+search|backend}}",
+       "apihelp-query+search-param-enablerewrites": "{{doc-apihelp-param|query+search|enablerewrites}}",
        "apihelp-query+search-example-simple": "{{doc-apihelp-example|query+search}}",
        "apihelp-query+search-example-text": "{{doc-apihelp-example|query+search}}",
        "apihelp-query+search-example-generator": "{{doc-apihelp-example|query+search}}",
        "apihelp-setnotificationtimestamp-example-page": "{{doc-apihelp-example|setnotificationtimestamp}}",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "{{doc-apihelp-example|setnotificationtimestamp}}",
        "apihelp-setnotificationtimestamp-example-allpages": "{{doc-apihelp-example|setnotificationtimestamp}}",
+       "apihelp-stashedit-description": "{{doc-apihelp-description|stashedit}}",
+       "apihelp-stashedit-param-title": "{{doc-apihelp-param|stashedit|title}}",
+       "apihelp-stashedit-param-section": "{{doc-apihelp-param|stashedit|section}}",
+       "apihelp-stashedit-param-sectiontitle": "{{doc-apihelp-param|stashedit|sectiontitle}}",
+       "apihelp-stashedit-param-text": "{{doc-apihelp-param|stashedit|text}}",
+       "apihelp-stashedit-param-contentmodel": "{{doc-apihelp-param|stashedit|contentmodel}}",
+       "apihelp-stashedit-param-contentformat": "{{doc-apihelp-param|stashedit|contentformat}}",
+       "apihelp-stashedit-param-baserevid": "{{doc-apihelp-param|stashedit|baserevid}}",
        "apihelp-tag-description": "{{doc-apihelp-description|tag}}",
        "apihelp-tag-param-rcid": "{{doc-apihelp-param|tag|rcid}}",
        "apihelp-tag-param-revid": "{{doc-apihelp-param|tag|revid}}",
index 34d55af..ed3d9e1 100644 (file)
@@ -1,12 +1,13 @@
 {
        "@metadata": {
                "authors": [
-                       "Ammartivari"
+                       "Ammartivari",
+                       "Kosovastar"
                ]
        },
        "apihelp-block-param-reason": "Arsyeja për bllokim.",
        "apihelp-move-param-reason": "Arsyeja për riemërtim.",
        "apihelp-tag-param-reason": "Arsyeja për ndërrimin.",
        "apihelp-unblock-description": "Zhblloko një përdorues.",
-       "apihelp-userrights-description": "Ndërro anëtarësinë e grupit e një përdoruesit."
+       "apihelp-userrights-description": "Ndërro anëtarësinë e grupit  një përdoruesit."
 }
index cd2f9a3..2a5f805 100644 (file)
        "apihelp-setnotificationtimestamp-example-page": "重置用于<kbd>Main page</kbd>的通知状态。",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "设置<kbd>Main page</kbd>的通知时间戳,这样所有从2012年1月1日起的编辑都会是未复核的。",
        "apihelp-setnotificationtimestamp-example-allpages": "重置在<kbd>{{ns:user}}</kbd>名字空间中的页面的通知状态。",
+       "apihelp-stashedit-param-title": "已开始编辑的页面标题。",
+       "apihelp-stashedit-param-text": "页面内容。",
+       "apihelp-stashedit-param-contentmodel": "新内容的内容模型。",
        "apihelp-tag-description": "从个别修订或日志记录中添加或移除更改标签。",
        "apihelp-tag-param-rcid": "要添加或移除标签的一个或更多的最近更改ID。",
        "apihelp-tag-param-revid": "要添加或移除标签的一个或更多的修订ID。",
        "api-help-param-type-boolean": "类型:布尔值([[Special:ApiHelp/main#main/datatypes|详细信息]])",
        "api-help-param-type-timestamp": "类型:{{PLURAL:$1|1=时间戳|2=时间戳列表}}([[Special:ApiHelp/main#main/datatypes|允许格式]])",
        "api-help-param-type-user": "类型:{{PLURAL:$1|1=用户名|2=用户名列表}}",
-       "api-help-param-list": "{{PLURAL:$1|1=ä¸\80个å\80¼|2=值(以<kbd>{{!}}</kbd>分隔)}}:$2",
+       "api-help-param-list": "{{PLURAL:$1|1=以ä¸\8bå\80¼ä¸­ç\9a\84ä¸\80个|2=值(以<kbd>{{!}}</kbd>分隔)}}:$2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=必须为空|可以为空,或$2}}",
        "api-help-param-limit": "不允许超过$1。",
        "api-help-param-limit2": "不允许超过$1个(对于机器人则是$2个)。",
index b1e6d95..1b5d20b 100644 (file)
        "apihelp-query+usercontribs-param-limit": "回傳的貢獻數量上限。",
        "apihelp-query+watchlist-param-limit": "每個請求要回傳的結果總數。",
        "apihelp-query+watchlistraw-param-limit": "每個請求要回傳的結果總數。",
+       "apihelp-stashedit-param-title": "正在編輯此頁面的標題。",
+       "apihelp-stashedit-param-text": "頁面內容。",
        "apihelp-tokens-description": "取得資料修改動作的密鑰。\n\n此模組已因支援 [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] 而停用。",
        "apihelp-unblock-param-reason": "解除封鎖的原因。",
        "apihelp-unblock-example-id": "解除封銷 ID #<kbd>105</kbd>。",
index 3f106bd..d912e3a 100644 (file)
@@ -280,6 +280,9 @@ class EnhancedChangesList extends ChangesList {
                                unset( $block[$i] );
                        }
                }
+               // Further down are some assumptions that $block is a 0-indexed array
+               // with (count-1) as last key. Let's make sure it is.
+               $block = array_values( $block );
 
                $r .= $this->getLogText( $block, $queryParams, $allLogs, $isnew, $namehidden );
 
index 54ca2ab..87871f4 100644 (file)
@@ -89,6 +89,16 @@ class RecentChange {
         */
        public $counter = -1;
 
+       /**
+        * @var array Array of change types
+        */
+       private static $changeTypes = array(
+               'edit' => RC_EDIT,
+               'new' => RC_NEW,
+               'log' => RC_LOG,
+               'external' => RC_EXTERNAL,
+       );
+
        # Factory methods
 
        /**
@@ -119,18 +129,10 @@ class RecentChange {
                        return $retval;
                }
 
-               switch ( $type ) {
-                       case 'edit':
-                               return RC_EDIT;
-                       case 'new':
-                               return RC_NEW;
-                       case 'log':
-                               return RC_LOG;
-                       case 'external':
-                               return RC_EXTERNAL;
-                       default:
-                               throw new MWException( "Unknown type '$type'" );
+               if ( !array_key_exists( $type, self::$changeTypes ) ) {
+                       throw new MWException( "Unknown type '$type'" );
                }
+               return self::$changeTypes[$type];
        }
 
        /**
@@ -140,24 +142,18 @@ class RecentChange {
         * @return string $type
         */
        public static function parseFromRCType( $rcType ) {
-               switch ( $rcType ) {
-                       case RC_EDIT:
-                               $type = 'edit';
-                               break;
-                       case RC_NEW:
-                               $type = 'new';
-                               break;
-                       case RC_LOG:
-                               $type = 'log';
-                               break;
-                       case RC_EXTERNAL:
-                               $type = 'external';
-                               break;
-                       default:
-                               $type = "$rcType";
-               }
+               return array_search( $rcType, self::$changeTypes, true ) ?: "$rcType";
+       }
 
-               return $type;
+       /**
+        * Get an array of all change types
+        *
+        * @since 1.26
+        *
+        * @return array
+        */
+       public static function getChangeTypes() {
+               return array_keys( self::$changeTypes );
        }
 
        /**
index 4d1b1c0..1e54f55 100644 (file)
@@ -58,7 +58,6 @@ abstract class DatabaseBase implements IDatabase {
        protected $mSchema;
        protected $mFlags;
        protected $mForeign;
-       protected $mErrorCount = 0;
        protected $mLBInfo = array();
        protected $mDefaultBigSelects = null;
        protected $mSchemaVars = false;
@@ -259,15 +258,6 @@ abstract class DatabaseBase implements IDatabase {
                return $this->mTrxLevel ? $this->mTrxTimestamp : null;
        }
 
-       /**
-        * Get/set the number of errors logged. Only useful when errors are ignored
-        * @param int $count The count to set, or omitted to leave it unchanged.
-        * @return int The error count
-        */
-       public function errorCount( $count = null ) {
-               return wfSetVar( $this->mErrorCount, $count );
-       }
-
        /**
         * Get/set the table prefix.
         * @param string $prefix The table prefix to set, or omitted to leave it unchanged.
@@ -1111,8 +1101,6 @@ abstract class DatabaseBase implements IDatabase {
         * @throws DBQueryError
         */
        public function reportQueryError( $error, $errno, $sql, $fname, $tempIgnore = false ) {
-               ++$this->mErrorCount;
-
                if ( $this->ignoreErrors() || $tempIgnore ) {
                        wfDebug( "SQL ERROR (ignored): $error\n" );
                } else {
@@ -3238,9 +3226,6 @@ abstract class DatabaseBase implements IDatabase {
                                $retVal = call_user_func_array( $function, $args );
                                break;
                        } catch ( DBQueryError $e ) {
-                               $error = $this->lastError();
-                               $errno = $this->lastErrno();
-                               $sql = $this->lastQuery();
                                if ( $this->wasDeadlock() ) {
                                        // Retry after a randomized delay
                                        usleep( mt_rand( self::DEADLOCK_DELAY_MIN, self::DEADLOCK_DELAY_MAX ) );
index 081174a..87c3164 100644 (file)
@@ -971,20 +971,6 @@ class DatabaseOracle extends DatabaseBase {
                return $valuedata;
        }
 
-       function reportQueryError( $error, $errno, $sql, $fname, $tempIgnore = false ) {
-               # Ignore errors during error handling to avoid infinite
-               # recursion
-               $ignore = $this->ignoreErrors( true );
-               ++$this->mErrorCount;
-
-               if ( $ignore || $tempIgnore ) {
-                       wfDebug( "SQL ERROR (ignored): $error\n" );
-                       $this->ignoreErrors( $ignore );
-               } else {
-                       throw new DBQueryError( $this, $error, $errno, $sql, $fname );
-               }
-       }
-
        /**
         * @return string Wikitext of a link to the server software's web site
         */
index 7b54861..274e18e 100644 (file)
@@ -20,6 +20,7 @@
 
 namespace MediaWiki\Logger;
 
+use MediaWiki\Logger\Monolog\BufferHandler;
 use Monolog\Logger;
 use ObjectFactory;
 
@@ -84,6 +85,7 @@ use ObjectFactory;
  *                   'logstash'
  *               ),
  *               'formatter' => 'logstash',
+ *               'buffer' => true,
  *           ),
  *           'udp2log' => array(
  *               'class' => '\\MediaWiki\\Logger\\Monolog\\LegacyHandler',
@@ -247,6 +249,9 @@ class MonologSpi implements Spi {
                                        $this->getFormatter( $spec['formatter'] )
                                );
                        }
+                       if ( isset( $spec['buffer'] ) && $spec['buffer'] ) {
+                               $handler = new BufferHandler( $handler );
+                       }
                        $this->singletons['handlers'][$name] = $handler;
                }
                return $this->singletons['handlers'][$name];
diff --git a/includes/debug/logger/monolog/AvroFormatter.php b/includes/debug/logger/monolog/AvroFormatter.php
new file mode 100644 (file)
index 0000000..b6adab4
--- /dev/null
@@ -0,0 +1,139 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+namespace MediaWiki\Logger\Monolog;
+
+use AvroIODatumWriter;
+use AvroIOBinaryEncoder;
+use AvroIOTypeException;
+use AvroNamedSchemata;
+use AvroSchema;
+use AvroStringIO;
+use AvroValidator;
+use Monolog\Formatter\FormatterInterface;
+
+/**
+ * Log message formatter that uses the apache Avro format.
+ *
+ * @since 1.26
+ * @author Erik Bernhardson <ebernhardson@wikimedia.org>
+ * @copyright © 2015 Erik Bernhardson and Wikimedia Foundation.
+ */
+class AvroFormatter implements FormatterInterface {
+       /**
+        * @var array Map from schema name to schema definition
+        */
+       protected $schemas;
+
+       /**
+        * @var AvroStringIO
+        */
+       protected $io;
+
+       /**
+        * @var AvroIOBinaryEncoder
+        */
+       protected $encoder;
+
+       /**
+        * @var AvroIODatumWriter
+        */
+       protected $writer;
+
+       /**
+        * @var array $schemas Map from Monolog channel to Avro schema.
+        *  Each schema can be either the JSON string or decoded into PHP
+        *  arrays.
+        */
+       public function __construct( array $schemas ) {
+               $this->schemas = $schemas;
+               $this->io = new AvroStringIO( '' );
+               $this->encoder = new AvroIOBinaryEncoder( $this->io );
+               $this->writer = new AvroIODatumWriter();
+       }
+
+       /**
+        * Formats the record context into a binary string per the
+        * schema configured for the records channel.
+        *
+        * @param array $record
+        * @return string|null The serialized record, or null if
+        *  the record is not valid for the selected schema.
+        */
+       public function format( array $record ) {
+               $this->io->truncate();
+               $schema = $this->getSchema( $record['channel'] );
+               if ( $schema === null ) {
+                       trigger_error( "The schema for channel '{$record['channel']}' is not available" );
+                       return null;
+               }
+               try {
+                       $this->writer->write_data( $schema, $record['context'], $this->encoder );
+               } catch ( AvroIOTypeException $e ) {
+                       $errors = AvroValidator::getErrors( $schema, $record['context'] );
+                       $json = json_encode( $errors );
+                       trigger_error( "Avro failed to serialize record for {$record['channel']} : {$json}" );
+                       return null;
+               }
+               return $this->io->string();
+       }
+
+       /**
+        * Format a set of records into a list of binary strings
+        * conforming to the configured schema.
+        *
+        * @param array $records
+        * @return string[]
+        */
+       public function formatBatch( array $records ) {
+               $result = array();
+               foreach ( $records as $record ) {
+                       $message = $this->format( $record );
+                       if ( $message !== null ) {
+                               $result[] = $message;
+                       }
+               }
+               return $result;
+       }
+
+       /**
+        * Get the writer for the named channel
+        *
+        * @var string $channel Name of the schema to fetch
+        * @return AvroSchema|null
+        */
+       protected function getSchema( $channel ) {
+               if ( !isset( $this->schemas[$channel] ) ) {
+                       return null;
+               }
+               if ( !$this->schemas[$channel] instanceof AvroSchema ) {
+                       if ( is_string( $this->schemas[$channel] ) ) {
+                               $this->schemas[$channel] = AvroSchema::parse( $this->schemas[$channel] );
+                       } else {
+                               $this->schemas[$channel] = AvroSchema::real_parse(
+                                       $this->schemas[$channel],
+                                       null,
+                                       new AvroNamedSchemata()
+                               );
+                       }
+               }
+               return $this->schemas[$channel];
+       }
+}
diff --git a/includes/debug/logger/monolog/BufferHandler.php b/includes/debug/logger/monolog/BufferHandler.php
new file mode 100644 (file)
index 0000000..3ebd0b1
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Helper class for the index.php entry point.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+namespace MediaWiki\Logger\Monolog;
+
+use DeferredUpdates;
+use Monolog\Handler\BufferHandler as BaseBufferHandler;
+
+/**
+ * Updates the Monolog BufferHandler to use DeferredUpdates rather
+ * than register_shutdown_function. On supported platforms this will
+ * use register_postsend_function or fastcgi_finish_request() to delay
+ * until after the request has shutdown and we are no longer delaying
+ * the web request.
+ */
+class BufferHandler extends BaseBufferHandler {
+       /**
+        * {@inheritDoc}
+        */
+       public function handle( array $record ) {
+               if (!$this->initialized) {
+                       DeferredUpdates::addCallableUpdate( array( $this, 'close' ) );
+                       $this->initialized = true;
+               }
+               return parent::handle( $record );
+       }
+}
+
diff --git a/includes/debug/logger/monolog/KafkaHandler.php b/includes/debug/logger/monolog/KafkaHandler.php
new file mode 100644 (file)
index 0000000..59d7764
--- /dev/null
@@ -0,0 +1,224 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+namespace MediaWiki\Logger\Monolog;
+
+use Kafka\MetaDataFromKafka;
+use Kafka\Produce;
+use MediaWiki\Logger\LoggerFactory;
+use Monolog\Handler\AbstractProcessingHandler;
+use Monolog\Logger;
+use Psr\Log\LoggerInterface;
+
+/**
+ * Log handler sends log events to a kafka server.
+ *
+ * Constructor options array arguments:
+ * * alias: map from monolog channel to kafka topic name. When no
+ *       alias exists the topic "monolog_$channel" will be used.
+ * * swallowExceptions: Swallow exceptions that occur while talking to
+ *    kafka. Defaults to false.
+ * * logExceptions: Log exceptions talking to kafka here. Either null,
+ *    the name of a channel to log to, or an object implementing
+ *    FormatterInterface. Defaults to null.
+ *
+ * Requires the nmred/kafka-php library, version >= 1.3.0
+ *
+ * @since 1.26
+ * @author Erik Bernhardson <ebernhardson@wikimedia.org>
+ * @copyright © 2015 Erik Bernhardson and Wikimedia Foundation.
+ */
+class KafkaHandler extends AbstractProcessingHandler {
+       /**
+        * @var Produce Sends requests to kafka
+        */
+       protected $produce;
+
+       /**
+        * @var array Optional handler configuration
+        */
+       protected $options;
+
+       /**
+        * @var array Map from topic name to partition this request produces to
+        */
+       protected $partitions = array();
+
+       /**
+        * @var array defaults for constructor options
+        */
+       private static $defaultOptions = array(
+               'alias' => array(), // map from monolog channel to kafka topic
+               'swallowExceptions' => false, // swallow exceptions sending records
+               'logExceptions' => null, // A PSR3 logger to inform about errors
+       );
+
+       /**
+        * @param Produce $produce Kafka instance to produce through
+        * @param array $options optional handler configuration
+        * @param int $level The minimum logging level at which this handler will be triggered
+        * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
+        */
+       public function __construct( Produce $produce, array $options, $level = Logger::DEBUG, $bubble = true ) {
+               parent::__construct( $level, $bubble );
+               $this->produce = $produce;
+               $this->options = array_merge( self::$defaultOptions, $options );
+       }
+
+       /**
+        * Constructs the necessary support objects and returns a KafkaHandler
+        * instance.
+        *
+        * @param string[] $kafkaServers
+        * @param array $options
+        * @param int $level The minimum logging level at which this handle will be triggered
+        * @param bool $bubble Whether the messages that are handled can bubble the stack or not
+        * @return KafkaHandler
+        */
+       public static function factory( $kafkaServers, array $options = array(), $level = Logger::DEBUG, $bubble = true ) {
+               $metadata = new MetaDataFromKafka( $kafkaServers );
+               $produce = new Produce( $metadata );
+               if ( isset( $options['logExceptions'] ) && is_string( $options['logExceptions'] ) ) {
+                       $options['logExceptions'] = LoggerFactory::getInstance( $options['logExceptions'] );
+               }
+               return new self( $produce, $options, $level, $bubble );
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       protected function write( array $record ) {
+               if ( $record['formatted'] !== null ) {
+                       $this->addMessages( $record['channel'], array( $record['formatted'] ) );
+                       $this->send();
+               }
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       public function handleBatch( array $batch ) {
+               $channels = array();
+               foreach ( $batch as $record ) {
+                       if ( $record['level'] < $this->level ) {
+                               continue;
+                       }
+                       $channels[$record['channel']][] = $this->processRecord( $record );
+               }
+
+               $formatter = $this->getFormatter();
+               foreach ( $channels as $channel => $records ) {
+                       $messages = array();
+                       foreach ( $records as $idx => $record ) {
+                               $message = $formatter->format( $record );
+                               if ( $message !== null ) {
+                                       $messages[] = $message;
+                               }
+                       }
+                       if ( $messages ) {
+                               $this->addMessages($channel, $messages);
+                       }
+               }
+
+               $this->send();
+       }
+
+       /**
+        * Send any records in the kafka client internal queue.
+        */
+       protected function send() {
+               try {
+                       $this->produce->send();
+               } catch ( \Kafka\Exception $e ) {
+                       $ignore = $this->warning(
+                               'Error sending records to kafka: {exception}',
+                               array( 'exception' => $e ) );
+                       if ( !$ignore ) {
+                               throw $e;
+                       }
+               }
+       }
+
+       /**
+        * @param string $topic Name of topic to get partition for
+        * @return int|null The random partition to produce to for this request,
+        *  or null if a partition could not be determined.
+        */
+       protected function getRandomPartition( $topic ) {
+               if ( !array_key_exists( $topic, $this->partitions ) ) {
+                       try {
+                               $partitions = $this->produce->getAvailablePartitions( $topic );
+                       } catch ( \Kafka\Exception $e ) {
+                               $ignore = $this->warning(
+                                       'Error getting metadata for kafka topic {topic}: {exception}',
+                                       array( 'topic' => $topic, 'exception' => $e ) );
+                               if ( $ignore ) {
+                                       return null;
+                               }
+                               throw $e;
+                       }
+                       if ( $partitions ) {
+                               $key = array_rand( $partitions );
+                               $this->partitions[$topic] = $partitions[$key];
+                       } else {
+                               $details = $this->produce->getClient()->getTopicDetail( $topic );
+                               $ignore = $this->warning(
+                                       'No partitions available for kafka topic {topic}',
+                                       array( 'topic' => $topic, 'kafka' => $details )
+                               );
+                               if ( !$ignore ) {
+                                       throw new \RuntimeException( "No partitions available for kafka topic $topic" );
+                               }
+                               $this->partitions[$topic] = null;
+                       }
+               }
+               return $this->partitions[$topic];
+       }
+
+       /**
+        * Adds records for a channel to the Kafka client internal queue.
+        *
+        * @param string $channel Name of Monolog channel records belong to
+        * @param array $records List of records to append
+        */
+       protected function addMessages( $channel, array $records ) {
+               if ( isset( $this->options['alias'][$channel] ) ) {
+                       $topic = $this->options['alias'][$channel];
+               } else {
+                       $topic = "monolog_$channel";
+               }
+               $partition = $this->getRandomPartition( $topic );
+               if ( $partition !== null ) {
+                       $this->produce->setMessages( $topic, $partition, $records );
+               }
+       }
+
+       /**
+        * @param string $message PSR3 compatible message string
+        * @param array $context PSR3 compatible log context
+        * @return bool true if caller should ignore warning
+        */
+       protected function warning( $message, array $context = array() ) {
+               if ( $this->options['logExceptions'] instanceof LoggerInterface ) {
+                       $this->options['logExceptions']->warning( $message, $context );
+               }
+               return $this->options['swallowExceptions'];
+       }
+}
index ed12c60..f5d6845 100644 (file)
  *       subclasses can override the beginTransaction() and commitTransaction() methods.
  */
 abstract class DataUpdate implements DeferrableUpdate {
-       /**
-        * Constructor
-        */
        public function __construct() {
-               noop
+               //noop
        }
 
        /**
@@ -73,22 +70,23 @@ abstract class DataUpdate implements DeferrableUpdate {
         * This allows for limited transactional logic across multiple backends for storing
         * secondary data.
         *
-        * @param array $updates A list of DataUpdate instances
+        * @param DataUpdate[] $updates A list of DataUpdate instances
+        * @param string $mode Use "enqueue" to use the job queue when possible [Default: run]
         * @throws Exception|null
         */
-       public static function runUpdates( $updates ) {
-               if ( empty( $updates ) ) {
-                       return; # nothing to do
+       public static function runUpdates( array $updates, $mode = 'run' ) {
+               if ( $mode === 'enqueue' ) {
+                       // When possible, push updates as jobs instead of calling doUpdate()
+                       $updates = self::enqueueUpdates( $updates );
+               }
+
+               if ( !count( $updates ) ) {
+                       return; // nothing to do
                }
 
                $open_transactions = array();
                $exception = null;
 
-               /**
-                * @var $update DataUpdate
-                * @var $trans DataUpdate
-                */
-
                try {
                        // begin transactions
                        foreach ( $updates as $update ) {
@@ -122,4 +120,36 @@ abstract class DataUpdate implements DeferrableUpdate {
                        throw $exception; // rethrow after cleanup
                }
        }
+
+       /**
+        * Enqueue jobs for every DataUpdate that support enqueueUpdate()
+        * and return the remaining DataUpdate objects (those that do not)
+        *
+        * @param DataUpdate[] $updates A list of DataUpdate instances
+        * @return DataUpdate[]
+        * @since 1.26
+        */
+       protected static function enqueueUpdates( array $updates ) {
+               $remaining = array();
+
+               foreach ( $updates as $update ) {
+                       if ( $update instanceof EnqueueableDataUpdate ) {
+                               $update->enqueueUpdate();
+                       } else {
+                               $remaining[] = $update;
+                       }
+               }
+
+               return $remaining;
+       }
 }
+
+/**
+ * @since 1.26
+ */
+interface EnqueueableDataUpdate {
+       /**
+        * Push the update into the job queue
+        */
+       public function enqueueUpdate();
+}
\ No newline at end of file
index b7e5b0a..cd0266f 100644 (file)
@@ -78,17 +78,6 @@ class DeferredUpdates {
                }
        }
 
-       /**
-        * HTMLCacheUpdates are the most common deferred update people use. This
-        * is a shortcut method for that.
-        * @see HTMLCacheUpdate::__construct()
-        * @param Title $title
-        * @param string $table
-        */
-       public static function addHTMLCacheUpdate( $title, $table ) {
-               self::addUpdate( new HTMLCacheUpdate( $title, $table ) );
-       }
-
        /**
         * Add a callable update.  In a lot of cases, we just need a callback/closure,
         * defining a new DeferrableUpdate object is not necessary
@@ -106,9 +95,7 @@ class DeferredUpdates {
         *   prevent lock contention
         */
        public static function doUpdates( $commit = '' ) {
-               global $wgDeferredUpdateList;
-
-               $updates = array_merge( $wgDeferredUpdateList, self::$updates );
+               $updates = self::$updates;
 
                while ( count( $updates ) ) {
                        self::clearPendingUpdates();
@@ -131,7 +118,7 @@ class DeferredUpdates {
                                }
                        }
 
-                       $updates = array_merge( $wgDeferredUpdateList, self::$updates );
+                       $updates = self::$updates;
                }
        }
 
@@ -140,7 +127,6 @@ class DeferredUpdates {
         * want or need to call this. Unit tests need it though.
         */
        public static function clearPendingUpdates() {
-               global $wgDeferredUpdateList;
-               $wgDeferredUpdateList = self::$updates = array();
+               self::$updates = array();
        }
 }
diff --git a/includes/deferred/LinksDeletionUpdate.php b/includes/deferred/LinksDeletionUpdate.php
new file mode 100644 (file)
index 0000000..bbdfcf1
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Updater for link tracking tables after a page edit.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Update object handling the cleanup of links tables after a page was deleted.
+ **/
+class LinksDeletionUpdate extends SqlDataUpdate {
+       /** @var WikiPage The WikiPage that was deleted */
+       protected $mPage;
+
+       /**
+        * Constructor
+        *
+        * @param WikiPage $page Page we are updating
+        * @throws MWException
+        */
+       function __construct( WikiPage $page ) {
+               parent::__construct( false ); // no implicit transaction
+
+               $this->mPage = $page;
+
+               if ( !$page->exists() ) {
+                       throw new MWException( "Page ID not known, perhaps the page doesn't exist?" );
+               }
+       }
+
+       /**
+        * Do some database updates after deletion
+        */
+       public function doUpdate() {
+               $title = $this->mPage->getTitle();
+               $id = $this->mPage->getId();
+
+               # Delete restrictions for it
+               $this->mDb->delete( 'page_restrictions', array( 'pr_page' => $id ), __METHOD__ );
+
+               # Fix category table counts
+               $cats = array();
+               $res = $this->mDb->select( 'categorylinks', 'cl_to', array( 'cl_from' => $id ), __METHOD__ );
+
+               foreach ( $res as $row ) {
+                       $cats[] = $row->cl_to;
+               }
+
+               $this->mPage->updateCategoryCounts( array(), $cats );
+
+               # If using cascading deletes, we can skip some explicit deletes
+               if ( !$this->mDb->cascadingDeletes() ) {
+                       # Delete outgoing links
+                       $this->mDb->delete( 'pagelinks', array( 'pl_from' => $id ), __METHOD__ );
+                       $this->mDb->delete( 'imagelinks', array( 'il_from' => $id ), __METHOD__ );
+                       $this->mDb->delete( 'categorylinks', array( 'cl_from' => $id ), __METHOD__ );
+                       $this->mDb->delete( 'templatelinks', array( 'tl_from' => $id ), __METHOD__ );
+                       $this->mDb->delete( 'externallinks', array( 'el_from' => $id ), __METHOD__ );
+                       $this->mDb->delete( 'langlinks', array( 'll_from' => $id ), __METHOD__ );
+                       $this->mDb->delete( 'iwlinks', array( 'iwl_from' => $id ), __METHOD__ );
+                       $this->mDb->delete( 'redirect', array( 'rd_from' => $id ), __METHOD__ );
+                       $this->mDb->delete( 'page_props', array( 'pp_page' => $id ), __METHOD__ );
+               }
+
+               # If using cleanup triggers, we can skip some manual deletes
+               if ( !$this->mDb->cleanupTriggers() ) {
+                       # Find recentchanges entries to clean up...
+                       $rcIdsForTitle = $this->mDb->selectFieldValues( 'recentchanges',
+                               'rc_id',
+                               array(
+                                       'rc_type != ' . RC_LOG,
+                                       'rc_namespace' => $title->getNamespace(),
+                                       'rc_title' => $title->getDBkey()
+                               ),
+                               __METHOD__
+                       );
+                       $rcIdsForPage = $this->mDb->selectFieldValues( 'recentchanges',
+                               'rc_id',
+                               array( 'rc_type != ' . RC_LOG, 'rc_cur_id' => $id ),
+                               __METHOD__
+                       );
+
+                       # T98706: delete PK to avoid lock contention with RC delete log insertions
+                       $rcIds = array_merge( $rcIdsForTitle, $rcIdsForPage );
+                       if ( $rcIds ) {
+                               $this->mDb->delete( 'recentchanges', array( 'rc_id' => $rcIds ), __METHOD__ );
+                       }
+               }
+       }
+}
\ No newline at end of file
index e9ec7ff..be5aff3 100644 (file)
@@ -935,99 +935,3 @@ class LinksUpdate extends SqlDataUpdate {
                }
        }
 }
-
-/**
- * Update object handling the cleanup of links tables after a page was deleted.
- **/
-class LinksDeletionUpdate extends SqlDataUpdate {
-       /** @var WikiPage The WikiPage that was deleted */
-       protected $mPage;
-
-       /**
-        * Constructor
-        *
-        * @param WikiPage $page Page we are updating
-        * @throws MWException
-        */
-       function __construct( WikiPage $page ) {
-               parent::__construct( false ); // no implicit transaction
-
-               $this->mPage = $page;
-
-               if ( !$page->exists() ) {
-                       throw new MWException( "Page ID not known, perhaps the page doesn't exist?" );
-               }
-       }
-
-       /**
-        * Do some database updates after deletion
-        */
-       public function doUpdate() {
-               $title = $this->mPage->getTitle();
-               $id = $this->mPage->getId();
-
-               # Delete restrictions for it
-               $this->mDb->delete( 'page_restrictions', array( 'pr_page' => $id ), __METHOD__ );
-
-               # Fix category table counts
-               $cats = array();
-               $res = $this->mDb->select( 'categorylinks', 'cl_to', array( 'cl_from' => $id ), __METHOD__ );
-
-               foreach ( $res as $row ) {
-                       $cats[] = $row->cl_to;
-               }
-
-               $this->mPage->updateCategoryCounts( array(), $cats );
-
-               # If using cascading deletes, we can skip some explicit deletes
-               if ( !$this->mDb->cascadingDeletes() ) {
-                       # Delete outgoing links
-                       $this->mDb->delete( 'pagelinks', array( 'pl_from' => $id ), __METHOD__ );
-                       $this->mDb->delete( 'imagelinks', array( 'il_from' => $id ), __METHOD__ );
-                       $this->mDb->delete( 'categorylinks', array( 'cl_from' => $id ), __METHOD__ );
-                       $this->mDb->delete( 'templatelinks', array( 'tl_from' => $id ), __METHOD__ );
-                       $this->mDb->delete( 'externallinks', array( 'el_from' => $id ), __METHOD__ );
-                       $this->mDb->delete( 'langlinks', array( 'll_from' => $id ), __METHOD__ );
-                       $this->mDb->delete( 'iwlinks', array( 'iwl_from' => $id ), __METHOD__ );
-                       $this->mDb->delete( 'redirect', array( 'rd_from' => $id ), __METHOD__ );
-                       $this->mDb->delete( 'page_props', array( 'pp_page' => $id ), __METHOD__ );
-               }
-
-               # If using cleanup triggers, we can skip some manual deletes
-               if ( !$this->mDb->cleanupTriggers() ) {
-                       # Find recentchanges entries to clean up...
-                       $rcIdsForTitle = $this->mDb->selectFieldValues( 'recentchanges',
-                               'rc_id',
-                               array(
-                                       'rc_type != ' . RC_LOG,
-                                       'rc_namespace' => $title->getNamespace(),
-                                       'rc_title' => $title->getDBkey()
-                               ),
-                               __METHOD__
-                       );
-                       $rcIdsForPage = $this->mDb->selectFieldValues( 'recentchanges',
-                               'rc_id',
-                               array( 'rc_type != ' . RC_LOG, 'rc_cur_id' => $id ),
-                               __METHOD__
-                       );
-
-                       # T98706: delete PK to avoid lock contention with RC delete log insertions
-                       $rcIds = array_merge( $rcIdsForTitle, $rcIdsForPage );
-                       if ( $rcIds ) {
-                               $this->mDb->delete( 'recentchanges', array( 'rc_id' => $rcIds ), __METHOD__ );
-                       }
-               }
-       }
-
-       /**
-        * Update all the appropriate counts in the category table.
-        * @param array $added Associative array of category name => sort key
-        * @param array $deleted Associative array of category name => sort key
-        */
-       function updateCategoryCounts( $added, $deleted ) {
-               $a = WikiPage::factory( $this->mTitle );
-               $a->updateCategoryCounts(
-                       array_keys( $added ), array_keys( $deleted )
-               );
-       }
-}
index b910ec6..9211bf8 100644 (file)
@@ -121,7 +121,7 @@ class HttpError extends MWException {
                if ( $this->content instanceof Message ) {
                        $contentHtml = $this->content->escaped();
                } else {
-                       $contentHtml = htmlspecialchars( $this->content );
+                       $contentHtml = nl2br( htmlspecialchars( $this->content ) );
                }
 
                return "<!DOCTYPE html>\n" .
index d4a240f..d25f1a8 100644 (file)
@@ -56,9 +56,9 @@ class MWExceptionHandler {
 
        /**
         * Report an exception to the user
-        * @param Exception $e
+        * @param Exception|Throwable $e
         */
-       protected static function report( Exception $e ) {
+       protected static function report( $e ) {
                global $wgShowExceptionDetails;
 
                $cmdLine = MWException::isCommandLine();
@@ -132,9 +132,9 @@ class MWExceptionHandler {
         * transaction could be aborted properly.
         *
         * @since 1.23
-        * @param Exception $e
+        * @param Exception|Throwable $e
         */
-       public static function rollbackMasterChangesAndLog( Exception $e ) {
+       public static function rollbackMasterChangesAndLog( $e ) {
                $factory = wfGetLBFactory();
                if ( $factory->hasMasterChanges() ) {
                        $logger = LoggerFactory::getInstance( 'Bug56269' );
@@ -159,9 +159,9 @@ class MWExceptionHandler {
         *   }
         *
         * @since 1.25
-        * @param Exception $e
+        * @param Exception|Throwable $e
         */
-       public static function handleException( Exception $e ) {
+       public static function handleException( $e ) {
                try {
                        // Rollback DBs to avoid transaction notices. This may fail
                        // to rollback some DB due to connection issues or exceptions.
@@ -350,11 +350,11 @@ TXT;
         * Like Exception::getTraceAsString, but replaces argument values with
         * argument type or class name.
         *
-        * @param Exception $e
+        * @param Exception|Throwable $e
         * @return string
         * @see prettyPrintTrace()
         */
-       public static function getRedactedTraceAsString( Exception $e ) {
+       public static function getRedactedTraceAsString( $e ) {
                return self::prettyPrintTrace( self::getRedactedTrace( $e ) );
        }
 
@@ -407,10 +407,10 @@ TXT;
         * or its type (if the element is a PHP primitive).
         *
         * @since 1.22
-        * @param Exception $e
+        * @param Exception|Throwable $e
         * @return array
         */
-       public static function getRedactedTrace( Exception $e ) {
+       public static function getRedactedTrace( $e ) {
                return static::redactTrace( $e->getTrace() );
        }
 
@@ -442,10 +442,10 @@ TXT;
         * $wgShowExceptionDetails is set to false), to the entry in the debug log.
         *
         * @since 1.22
-        * @param Exception $e
+        * @param Exception|Throwable $e
         * @return string
         */
-       public static function getLogId( Exception $e ) {
+       public static function getLogId( $e ) {
                if ( !isset( $e->_mwLogId ) ) {
                        $e->_mwLogId = wfRandomString( 8 );
                }
@@ -471,10 +471,10 @@ TXT;
         * Get a message formatting the exception message and its origin.
         *
         * @since 1.22
-        * @param Exception $e
+        * @param Exception|Throwable $e
         * @return string
         */
-       public static function getLogMessage( Exception $e ) {
+       public static function getLogMessage( $e ) {
                $id = self::getLogId( $e );
                $type = get_class( $e );
                $file = $e->getFile();
@@ -492,10 +492,10 @@ TXT;
         * exception that can be used to augment a log message sent to a PSR-3
         * logger.
         *
-        * @param Exception $e
+        * @param Exception|Throwable $e
         * @return array
         */
-       public static function getLogContext( Exception $e ) {
+       public static function getLogContext( $e ) {
                return array(
                        'exception' => $e,
                        'exception_id' => static::getLogId( $e ),
@@ -509,11 +509,11 @@ TXT;
         * backtrace) derived from the given exception. The backtrace information
         * will be redacted as per getRedactedTraceAsArray().
         *
-        * @param Exception $e
+        * @param Exception|Throwable $e
         * @return array
         * @since 1.26
         */
-       public static function getStructuredExceptionData( Exception $e ) {
+       public static function getStructuredExceptionData( $e ) {
                global $wgLogExceptionBacktrace;
                $data = array(
                        'id' => self::getLogId( $e ),
@@ -592,12 +592,12 @@ TXT;
         * @endcode
         *
         * @since 1.23
-        * @param Exception $e
+        * @param Exception|Throwable $e
         * @param bool $pretty Add non-significant whitespace to improve readability (default: false).
         * @param int $escaping Bitfield consisting of FormatJson::.*_OK class constants.
         * @return string|false JSON string if successful; false upon failure
         */
-       public static function jsonSerializeException( Exception $e, $pretty = false, $escaping = 0 ) {
+       public static function jsonSerializeException( $e, $pretty = false, $escaping = 0 ) {
                $data = self::getStructuredExceptionData( $e );
                return FormatJson::encode( $data, $pretty, $escaping );
        }
@@ -609,9 +609,9 @@ TXT;
         * it is also used to handle PHP exceptions or exceptions from other libraries.
         *
         * @since 1.22
-        * @param Exception $e
+        * @param Exception|Throwable $e
         */
-       public static function logException( Exception $e ) {
+       public static function logException( $e ) {
                if ( !( $e instanceof MWException ) || $e->isLoggable() ) {
                        $logger = LoggerFactory::getInstance( 'exception' );
                        $logger->error(
index ce0360f..cd82ab1 100644 (file)
@@ -1302,7 +1302,7 @@ abstract class FileBackend {
         *
         * @param array $ops List of file operations to FileBackend::doOperations()
         * @param Status $status Status to update on lock/unlock
-        * @return array List of ScopedFileLocks or null values
+        * @return ScopedLock|null
         * @since 1.20
         */
        abstract public function getScopedLocksForOps( array $ops, Status $status );
index d27d2c6..1603d44 100644 (file)
  * Only use this class when transitioning from one storage system to another.
  *
  * Read operations are only done on the 'master' backend for consistency.
- * Write operations are performed on all backends, in the order defined.
- * If an operation fails on one backend it will be rolled back from the others.
+ * Write operations are performed on all backends, starting with the master.
+ * This makes a best-effort to have transactional semantics, but since requests
+ * may sometimes fail, the use of "autoResync" or background scripts to fix
+ * inconsistencies is important.
  *
  * @ingroup FileBackend
  * @since 1.19
  */
 class FileBackendMultiWrite extends FileBackend {
-       /** @var array Prioritized list of FileBackendStore objects.
-        * array of (backend index => backends)
-        */
+       /** @var FileBackendStore[] Prioritized list of FileBackendStore objects */
        protected $backends = array();
 
        /** @var int Index of master backend */
        protected $masterIndex = -1;
+       /** @var int Index of read affinity backend */
+       protected $readIndex = -1;
 
        /** @var int Bitfield */
        protected $syncChecks = 0;
@@ -54,12 +56,6 @@ class FileBackendMultiWrite extends FileBackend {
        /** @var string|bool */
        protected $autoResync = false;
 
-       /** @var array */
-       protected $noPushDirConts = array();
-
-       /** @var bool */
-       protected $noPushQuickOps = false;
-
        /* Possible internal backend consistency checks */
        const CHECK_SIZE = 1;
        const CHECK_TIME = 2;
@@ -75,6 +71,7 @@ class FileBackendMultiWrite extends FileBackend {
         *                      FileBackendStore class, but with these additional settings:
         *                        - class         : The name of the backend class
         *                        - isMultiMaster : This must be set for one backend.
+        *                        - readAffinity  : Use this for reads without 'latest' set.
         *                        - template:     : If given a backend name, this will use
         *                                          the config of that backend as a template.
         *                                          Values specified here take precedence.
@@ -88,8 +85,6 @@ class FileBackendMultiWrite extends FileBackend {
         *                      Use "conservative" to limit resyncing to copying newer master
         *                      backend files over older (or non-existing) clone backend files.
         *                      Cases that cannot be handled will result in operation abortion.
-        *   - noPushQuickOps : (hack) Only apply doQuickOperations() to the master backend.
-        *   - noPushDirConts : (hack) Only apply directory functions to the master backend.
         *
         * @param array $config
         * @throws FileBackendError
@@ -102,12 +97,6 @@ class FileBackendMultiWrite extends FileBackend {
                $this->autoResync = isset( $config['autoResync'] )
                        ? $config['autoResync']
                        : false;
-               $this->noPushQuickOps = isset( $config['noPushQuickOps'] )
-                       ? $config['noPushQuickOps']
-                       : false;
-               $this->noPushDirConts = isset( $config['noPushDirConts'] )
-                       ? $config['noPushDirConts']
-                       : array();
                // Construct backends here rather than via registration
                // to keep these backends hidden from outside the proxy.
                $namesUsed = array();
@@ -134,6 +123,9 @@ class FileBackendMultiWrite extends FileBackend {
                                $this->masterIndex = $index; // this is the "master"
                                $config['fileJournal'] = $this->fileJournal; // log under proxy backend
                        }
+                       if ( !empty( $config['readAffinity'] ) ) {
+                               $this->readIndex = $index; // prefer this for reads
+                       }
                        // Create sub-backend object
                        if ( !isset( $config['class'] ) ) {
                                throw new FileBackendError( 'No class given for a backend config.' );
@@ -144,6 +136,9 @@ class FileBackendMultiWrite extends FileBackend {
                if ( $this->masterIndex < 0 ) { // need backends and must have a master
                        throw new FileBackendError( 'No master backend defined.' );
                }
+               if ( $this->readIndex < 0 ) {
+                       $this->readIndex = $this->masterIndex; // default
+               }
        }
 
        final protected function doOperationsInternal( array $ops, array $opts ) {
@@ -154,6 +149,7 @@ class FileBackendMultiWrite extends FileBackend {
                // Try to lock those files for the scope of this function...
                if ( empty( $opts['nonLocking'] ) ) {
                        // Try to lock those files for the scope of this function...
+                       /** @noinspection PhpUnusedLocalVariableInspection */
                        $scopeLock = $this->getScopedLocksForOps( $ops, $status );
                        if ( !$status->isOK() ) {
                                return $status; // abort
@@ -460,12 +456,10 @@ class FileBackendMultiWrite extends FileBackend {
                $masterStatus = $this->backends[$this->masterIndex]->doQuickOperations( $realOps );
                $status->merge( $masterStatus );
                // Propagate the operations to the clone backends...
-               if ( !$this->noPushQuickOps ) {
-                       foreach ( $this->backends as $index => $backend ) {
-                               if ( $index !== $this->masterIndex ) { // not done already
-                                       $realOps = $this->substOpBatchPaths( $ops, $backend );
-                                       $status->merge( $backend->doQuickOperations( $realOps ) );
-                               }
+               foreach ( $this->backends as $index => $backend ) {
+                       if ( $index !== $this->masterIndex ) { // not done already
+                               $realOps = $this->substOpBatchPaths( $ops, $backend );
+                               $status->merge( $backend->doQuickOperations( $realOps ) );
                        }
                }
                // Make 'success', 'successCount', and 'failCount' fields reflect
@@ -478,24 +472,11 @@ class FileBackendMultiWrite extends FileBackend {
                return $status;
        }
 
-       /**
-        * @param string $path Storage path
-        * @return bool Path container should have dir changes pushed to all backends
-        */
-       protected function replicateContainerDirChanges( $path ) {
-               list( , $shortCont, ) = self::splitStoragePath( $path );
-
-               return !in_array( $shortCont, $this->noPushDirConts );
-       }
-
        protected function doPrepare( array $params ) {
                $status = Status::newGood();
-               $replicate = $this->replicateContainerDirChanges( $params['dir'] );
                foreach ( $this->backends as $index => $backend ) {
-                       if ( $replicate || $index == $this->masterIndex ) {
-                               $realParams = $this->substOpPaths( $params, $backend );
-                               $status->merge( $backend->doPrepare( $realParams ) );
-                       }
+                       $realParams = $this->substOpPaths( $params, $backend );
+                       $status->merge( $backend->doPrepare( $realParams ) );
                }
 
                return $status;
@@ -503,12 +484,9 @@ class FileBackendMultiWrite extends FileBackend {
 
        protected function doSecure( array $params ) {
                $status = Status::newGood();
-               $replicate = $this->replicateContainerDirChanges( $params['dir'] );
                foreach ( $this->backends as $index => $backend ) {
-                       if ( $replicate || $index == $this->masterIndex ) {
-                               $realParams = $this->substOpPaths( $params, $backend );
-                               $status->merge( $backend->doSecure( $realParams ) );
-                       }
+                       $realParams = $this->substOpPaths( $params, $backend );
+                       $status->merge( $backend->doSecure( $realParams ) );
                }
 
                return $status;
@@ -516,12 +494,9 @@ class FileBackendMultiWrite extends FileBackend {
 
        protected function doPublish( array $params ) {
                $status = Status::newGood();
-               $replicate = $this->replicateContainerDirChanges( $params['dir'] );
                foreach ( $this->backends as $index => $backend ) {
-                       if ( $replicate || $index == $this->masterIndex ) {
-                               $realParams = $this->substOpPaths( $params, $backend );
-                               $status->merge( $backend->doPublish( $realParams ) );
-                       }
+                       $realParams = $this->substOpPaths( $params, $backend );
+                       $status->merge( $backend->doPublish( $realParams ) );
                }
 
                return $status;
@@ -529,12 +504,9 @@ class FileBackendMultiWrite extends FileBackend {
 
        protected function doClean( array $params ) {
                $status = Status::newGood();
-               $replicate = $this->replicateContainerDirChanges( $params['dir'] );
                foreach ( $this->backends as $index => $backend ) {
-                       if ( $replicate || $index == $this->masterIndex ) {
-                               $realParams = $this->substOpPaths( $params, $backend );
-                               $status->merge( $backend->doClean( $realParams ) );
-                       }
+                       $realParams = $this->substOpPaths( $params, $backend );
+                       $status->merge( $backend->doClean( $realParams ) );
                }
 
                return $status;
@@ -542,44 +514,52 @@ class FileBackendMultiWrite extends FileBackend {
 
        public function concatenate( array $params ) {
                // We are writing to an FS file, so we don't need to do this per-backend
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->concatenate( $realParams );
+               return $this->backends[$index]->concatenate( $realParams );
        }
 
        public function fileExists( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->fileExists( $realParams );
+               return $this->backends[$index]->fileExists( $realParams );
        }
 
        public function getFileTimestamp( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->getFileTimestamp( $realParams );
+               return $this->backends[$index]->getFileTimestamp( $realParams );
        }
 
        public function getFileSize( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->getFileSize( $realParams );
+               return $this->backends[$index]->getFileSize( $realParams );
        }
 
        public function getFileStat( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->getFileStat( $realParams );
+               return $this->backends[$index]->getFileStat( $realParams );
        }
 
        public function getFileXAttributes( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->getFileXAttributes( $realParams );
+               return $this->backends[$index]->getFileXAttributes( $realParams );
        }
 
        public function getFileContentsMulti( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
-               $contentsM = $this->backends[$this->masterIndex]->getFileContentsMulti( $realParams );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
+
+               $contentsM = $this->backends[$index]->getFileContentsMulti( $realParams );
 
                $contents = array(); // (path => FSFile) mapping using the proxy backend's name
                foreach ( $contentsM as $path => $data ) {
@@ -590,26 +570,31 @@ class FileBackendMultiWrite extends FileBackend {
        }
 
        public function getFileSha1Base36( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->getFileSha1Base36( $realParams );
+               return $this->backends[$index]->getFileSha1Base36( $realParams );
        }
 
        public function getFileProps( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->getFileProps( $realParams );
+               return $this->backends[$index]->getFileProps( $realParams );
        }
 
        public function streamFile( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->streamFile( $realParams );
+               return $this->backends[$index]->streamFile( $realParams );
        }
 
        public function getLocalReferenceMulti( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
-               $fsFilesM = $this->backends[$this->masterIndex]->getLocalReferenceMulti( $realParams );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
+
+               $fsFilesM = $this->backends[$index]->getLocalReferenceMulti( $realParams );
 
                $fsFiles = array(); // (path => FSFile) mapping using the proxy backend's name
                foreach ( $fsFilesM as $path => $fsFile ) {
@@ -620,8 +605,10 @@ class FileBackendMultiWrite extends FileBackend {
        }
 
        public function getLocalCopyMulti( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
-               $tempFilesM = $this->backends[$this->masterIndex]->getLocalCopyMulti( $realParams );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
+
+               $tempFilesM = $this->backends[$index]->getLocalCopyMulti( $realParams );
 
                $tempFiles = array(); // (path => TempFSFile) mapping using the proxy backend's name
                foreach ( $tempFilesM as $path => $tempFile ) {
@@ -632,9 +619,10 @@ class FileBackendMultiWrite extends FileBackend {
        }
 
        public function getFileHttpUrl( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
 
-               return $this->backends[$this->masterIndex]->getFileHttpUrl( $realParams );
+               return $this->backends[$index]->getFileHttpUrl( $realParams );
        }
 
        public function directoryExists( array $params ) {
@@ -667,13 +655,15 @@ class FileBackendMultiWrite extends FileBackend {
        }
 
        public function preloadCache( array $paths ) {
-               $realPaths = $this->substPaths( $paths, $this->backends[$this->masterIndex] );
-               $this->backends[$this->masterIndex]->preloadCache( $realPaths );
+               $realPaths = $this->substPaths( $paths, $this->backends[$this->readIndex] );
+               $this->backends[$this->readIndex]->preloadCache( $realPaths );
        }
 
        public function preloadFileStat( array $params ) {
-               $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
-               return $this->backends[$this->masterIndex]->preloadFileStat( $realParams );
+               $index = $this->getReadIndexFromParams( $params );
+               $realParams = $this->substOpPaths( $params, $this->backends[$index] );
+
+               return $this->backends[$index]->preloadFileStat( $realParams );
        }
 
        public function getScopedLocksForOps( array $ops, Status $status ) {
@@ -688,6 +678,14 @@ class FileBackendMultiWrite extends FileBackend {
                );
 
                // Actually acquire the locks
-               return array( $this->getScopedFileLocks( $pbPaths, 'mixed', $status ) );
+               return $this->getScopedFileLocks( $pbPaths, 'mixed', $status );
+       }
+
+       /**
+        * @param array $params
+        * @return int The master or read affinity backend index, based on $params['latest']
+        */
+       protected function getReadIndexFromParams( array $params ) {
+               return !empty( $params['latest'] ) ? $this->masterIndex : $this->readIndex;
        }
 }
index e4b07b8..9433964 100644 (file)
@@ -1058,7 +1058,7 @@ abstract class FileBackendStore extends FileBackend {
        public function getScopedLocksForOps( array $ops, Status $status ) {
                $paths = $this->getPathsToLockForOpsInternal( $this->getOperationsInternal( $ops ) );
 
-               return array( $this->getScopedFileLocks( $paths, 'mixed', $status ) );
+               return $this->getScopedFileLocks( $paths, 'mixed', $status );
        }
 
        final protected function doOperationsInternal( array $ops, array $opts ) {
@@ -1076,6 +1076,7 @@ abstract class FileBackendStore extends FileBackend {
                        // Build up a list of files to lock...
                        $paths = $this->getPathsToLockForOpsInternal( $performOps );
                        // Try to lock those files for the scope of this function...
+
                        $scopeLock = $this->getScopedFileLocks( $paths, 'mixed', $status );
                        if ( !$status->isOK() ) {
                                return $status; // abort
index ba2cf23..2879ddd 100644 (file)
@@ -35,6 +35,10 @@ class MemoryFileBackend extends FileBackendStore {
        /** @var array Map of (file path => (data,mtime) */
        protected $files = array();
 
+       public function getFeatures() {
+               return self::ATTR_UNICODE_PATHS;
+       }
+
        public function isPathUsableInternal( $storagePath ) {
                return true;
        }
index 615ba77..8115fd4 100644 (file)
@@ -102,7 +102,6 @@ abstract class LockManager {
         * @since 1.22
         */
        final public function lockByType( array $pathsByType, $timeout = 0 ) {
-               $status = Status::newGood();
                $pathsByType = $this->normalizePathsByType( $pathsByType );
                $msleep = array( 0, 50, 100, 300, 500 ); // retry backoff times
                $start = microtime( true );
index 84d40a1..f8aa0ac 100644 (file)
@@ -133,7 +133,7 @@ class OOUIHTMLForm extends HTMLForm {
        function getErrors( $err ) {
                if ( !$err ) {
                        $errors = array();
-               } else if ( $err instanceof Status ) {
+               } elseif ( $err instanceof Status ) {
                        if ( $err->isOK() ) {
                                $errors = array();
                        } else {
index 5a8403f..4d79d96 100644 (file)
@@ -537,7 +537,6 @@ class MssqlInstaller extends DatabaseInstaller {
                $this->setupSchemaVars();
                $dbName = $this->getVar( 'wgDBname' );
                $this->db->selectDB( $dbName );
-               $server = $this->getVar( 'wgDBserver' );
                $password = $this->getVar( 'wgDBpassword' );
                $schemaName = $this->getVar( 'wgDBmwschema' );
 
index 775e6e6..ba0ad68 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Mousa",
                        "Koroğlu",
-                       "Ebrahimi-amir"
+                       "Ebrahimi-amir",
+                       "Alp Er Tunqa"
                ]
        },
        "config-desc": "مئدیاویکی قوروجوسو",
@@ -23,7 +24,7 @@
        "config-page-readme": "منی اوخو",
        "config-env-php": "PHP $1 قورولوبدور.",
        "config-env-hhvm": "HHVM $1 قورولوبدور.",
-       "config-help": "یاردیم",
+       "config-help": "کؤمک",
        "config-help-tooltip": "گئنیشلتمک اوچون کلیک ائدین",
        "config-nofile": "«$1» فایلی تاپیلانمادی. سیلینیبدیرمی؟"
 }
index d8405cf..8109c2e 100644 (file)
@@ -48,7 +48,9 @@
        "config-env-hhvm": "Το HHVM $1 είναι εγκατεστημένο.",
        "config-unicode-using-intl": "Χρησιμοποιώντας την [http://pecl.php.net/intl επέκταση intl PECL] για κανονικοποίηση Unicode.",
        "config-unicode-pure-php-warning": "<strong>Προειδοποίηση:</strong> Η [http://pecl.php.net/intl επέκταση intl PECL] δεν είναι διαθέσιμη για να χειριστεί την κανονικοποίηση Unicode, επιστρέφουμε στην αργή αμιγώς PHP εφαρμογή.\nΕάν λειτουργείτε έναν ιστότοπο υψηλής επισκεψιμότητας, θα πρέπει να ρίξετε μια ματιά στην [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations κανονικοποίηση Unicode].",
+       "config-xcache": "[http://xcache.lighttpd.net/ Το XCache] είναι εγκατεστημένο",
        "config-apc": "Το [http://www.php.net/apc APC] είναι εγκατεστημένο",
+       "config-wincache": "[http://www.iis.net/download/WinCacheForPhp Το WinCache] είναι εγκατεστημένο",
        "config-diff3-bad": "Το GNU diff3 δεν βρέθηκε.",
        "config-db-type": "Τύπος βάσης δεδομένων:",
        "config-db-host": "Φιλοξενία βάσης δεδομένων:",
index 1262388..9f6f22c 100644 (file)
        "config-mysql-utf8": "UTF-8",
        "config-mysql-charset-help": "En '''modo binario''', MediaWiki almacena texto UTF-8 para la base de datos en campos binarios.\nEsto es más eficiente que el modo UTF-8 de MySQL y le permite utilizar la gama completa de caracteres Unicode.\n\nEn '''modo UTF-8''', MySQL sabrá qué conjunto de caracteres emplean sus datos y puede presentarlos y convertirlos adecuadamente, pero no le permitirá almacenar caracteres por encima del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plano multilingüe básico].",
        "config-mssql-auth": "Tipo de autenticación:",
-       "config-mssql-install-auth": "Seleccione el tipo de autenticación que se utilizará para conectarse a la base de datos durante el proceso de instalación.\nSi selecciona \"{{int:config-mssql-windowsauth}}\", las credenciales de cualquier usuario de el servidor web que se está ejecutando van a ser utilizadas.",
+       "config-mssql-install-auth": "Selecciona el tipo de autenticación que se utilizará para conectarse a la base de datos durante el proceso de instalación.\nSi seleccionas \"{{int:config-mssql-windowsauth}}\", se usarán las credenciales del usuario con el que se ejecuta el servidor web.",
        "config-mssql-web-auth": "Selecciona el tipo de autenticación que utilizará el servidor web para conectarse al servidor de base de datos, durante el funcionamiento normal de la wiki.\nSi seleccionas \"{{int:config-mssql-windowsauth}}\", se usarán las credenciales del usuario con el cual se ejecuta el servidor web.",
        "config-mssql-sqlauth": "Autenticación de SQL Server",
        "config-mssql-windowsauth": "Autentificación de Windows",
        "config-admin-error-bademail": "Has escrito una dirección de correo electrónico no válida.",
        "config-subscribe": "Suscribirse a la [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista de correo de anuncios de versiones].",
        "config-subscribe-help": "Esta es una lista de divulgación de bajo volumen para anuncios de lanzamiento de versiones nuevas, incluyendo anuncios de seguridad importantes.\nTe recomendamos suscribirte y actualizar tu instalación MediaWiki cada vez que se lance una nueva versión.",
-       "config-subscribe-noemail": "Ha intentado suscribirse a la lista de correo de anuncios de nuevos lanzamientos sin proporcionar una dirección de correo electrónico.\nProporcione una dirección de correo electrónico si desea suscribirse a la lista de correo.",
+       "config-subscribe-noemail": "Has intentado suscribirte a la lista de correo de anuncios de nuevos lanzamientos sin proporcionar una dirección de correo electrónico.\nProporciona una dirección de correo electrónico si quieres suscribirte a la lista de correo.",
        "config-almost-done": "¡Ya casi has terminado!\nAhora puedes saltarte el resto de los pasos e instalar el wiki ya.",
        "config-optional-continue": "Hazme más preguntas.",
        "config-optional-skip": "Ya estoy aburrido, sólo instala el wiki.",
        "config-install-interwiki-exists": "<strong>Advertencia:</strong> la tabla de interwikis parece ya contener entradas.\nSe omitirá la lista predeterminada.",
        "config-install-stats": "Iniciando las estadísticas",
        "config-install-keys": "Generando claves secretas",
-       "config-insecure-keys": "<strong>Advertencia:</strong> {{PLURAL:$2|una clave de seguridad generada|las claves de seguridad generadas}} ($1) durante la instalación no  {{PLURAL:$2|es totalmente segura|son totalmente seguras}}. Considera {{PLURAL:$2| cambiarla|cambiarlas}} manualmente.",
+       "config-insecure-keys": "<strong>Advertencia:</strong> {{PLURAL:$2|una clave de seguridad generada|las claves de seguridad generadas}} ($1) durante la instalación no {{PLURAL:$2|es totalmente segura|son totalmente seguras}}. Considera {{PLURAL:$2|cambiarla|cambiarlas}} manualmente.",
        "config-install-updates": "Evitar ejecutar actualizaciones innecesarias",
        "config-install-updates-failed": "<strong>Error:</strong> falló la inserción de claves de actualización en las tablas con el siguiente error: $1",
        "config-install-sysop": "Creando la cuenta de usuario del administrador",
index aa24362..96c9fd3 100644 (file)
@@ -14,7 +14,8 @@
                        "Ricordisamoa",
                        "Fpugliajno",
                        "The Polish",
-                       "Sannita"
+                       "Sannita",
+                       "C.R."
                ]
        },
        "config-desc": "Programma di installazione per MediaWiki",
        "config-mysql-charset": "Set di caratteri del database:",
        "config-mysql-binary": "Binario",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "In <strong>modalità binaria</strong>, MediaWiki archivia il testo UTF-8 nel database in cambi binari.\nQuesto è più efficiente rispetto alla modalità UTF-8 di MySQL, e consente di utilizzare la gamma completa di caratteri Unicode.\n\nIn <strong>modalità UTF-8</strong>, MySQL conoscerà in quale set di caratteri sono i tuoi dati, e può presentarli e convertirli in modo appropriato, ma non ti permetterà di memorizzare i caratteri al di sopra del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+       "config-mysql-charset-help": "In <strong>modalità binaria</strong>, MediaWiki archivia il testo UTF-8 nel database in campi binari.\nQuesto è più efficiente rispetto alla modalità UTF-8 di MySQL, e consente di utilizzare la gamma completa di caratteri Unicode.\n\nIn <strong>modalità UTF-8</strong>, MySQL conoscerà in quale set di caratteri sono i tuoi dati, e può presentarli e convertirli in modo appropriato, ma non ti permetterà di memorizzare i caratteri al di sopra del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Tipo di autenticazione:",
        "config-mssql-install-auth": "Seleziona il tipo di autenticazione che verrà utilizzato per connettersi al database durante il processo di installazione.\nSe si seleziona \"{{int:config-mssql-windowsauth}}\", saranno utilizzate le credenziali dell'utente con cui viene eseguito il server web, qualunque esso sia.",
        "config-mssql-web-auth": "Seleziona il tipo di autenticazione che il server web utilizzerà per connettersi al database, durante il normale funzionamento del wiki.\nSe si seleziona \"{{int:config-mssql-windowsauth}}\", saranno utilizzate le credenziali dell'utente con cui viene eseguito il server web, qualunque esso sia.",
index 10119be..28c2087 100644 (file)
@@ -1,9 +1,10 @@
 {
        "@metadata": {
                "authors": [
-                       "Huslåke"
+                       "Huslåke",
+                       "Jyllanj"
                ]
        },
-       "mainpagetext": "'''MediaWiki er nu installeret.'''",
-       "mainpagedocfooter": "Se vores engelskspråĝede [//meta.wikimedia.org/wiki/MediaWiki_localisation dokumentåsje tilpasnenge'm åf æ brugergrænseflade] og [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide æ brugervejlednenge] før åplysnenger åpsætnenge'm og anvendelse."
+       "mainpagetext": "'''MediaWiki ä nu installiirtj.'''",
+       "mainpagedocfooter": "Sie [//meta.wikimedia.org/wiki/Help:Contents brugewejliednengen] for oplysnenge om brugi å wikiprogramme.\n\n== Å kom i gång ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listen öwe opsättnengsmulihede]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki oft stellen spöyrgsmol]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Postlist ångoenje utdjielse å MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Öwesätt MediaWiki te det spraw]"
 }
index b998e34..bffdf05 100644 (file)
        "config-email-sender": "De Adräß för de Antwoote op <i lang=\"en\">e-mails</i>:",
        "config-email-sender-help": "Jiff de Adräß för de <i lang=\"en\">e-mail</i> en, woh Antwoote ob em Wiki singe <i lang=\"en\">e-mails</i> hen jonn sulle.\nDat es och de Adräß, woh de <i lang=\"en\">e-mails</i> met Fählermäldonge hen jon.\nVill ẞöövere för de <i lang=\"en\">e-mail</i> welle winnischßdens ene jöltijje Domain en dä Adräß han.",
        "config-upload-settings": "Belder un Datteie huh laade",
-       "config-upload-enable": "Belder un Datteie huh laade zohlohße",
+       "config-upload-enable": "Et Belder un Datteie Huhlahde zohlohße",
        "config-upload-help": "Datteije huh ze laade künnt e Risiko för dem ẞööver singe Sescherheit sin.\nMieh doh drövver kam_mer em [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security Kapitel övver de Sescherheit] em Handbooch lässe.\n\nÖm et Huhlaade zohzelohße donn de Rääschde för der Zohjreff op dat Ongerverzeischneß <code lang=\"en\">images</code> em MediaWiki singem Houpverzeischneß esu enshtälle, dat et Webßööverprojramm doh Datteije un Verzeischneße eren schrieve kann.\nDonoh donn heh di Saach zohlohße.",
        "config-upload-deleted": "Dat Verzeishneß för fottjeschmeße Datteije:",
        "config-upload-deleted-help": "Söhk e Verzeijschneß uß för de fottjeschmeße Datteije vum Wiki dren afzelääje.\nEt bäß es, wam_mer vum <i lang=\"en\">world wide web</i> doh nit drahn kumme kann.",
        "config-install-extension-tables": "Ben Datebangk-Tabälle för de Zohsazprojramme aam ennreschte",
        "config-install-mainpage-failed": "Kunnt de Houpsigg nit afshpeishere: $1",
        "config-install-done": "'''Jlöckwonsch!'''\nMediaWiki es jetz enstalleet.\n\nEt Projramm zom Enreeschte hät en Dattei <code lang=\"en\">LocalSettings.php</code> aanjelaat.\nDoh sin de Enstellunge vum Wiki dren.\n\nDo weeß se eronge laade möße un dann en dem Wiki sing Aanfangsverzeishnes donn möße, et sellve Verzeisneß, woh di Dattei <code lang=\"en\">index.php</code> dren litt. Dat Erongerlaade sullt automattesch aanjefange han.\n\nWann domet jet nit jeflupp hät, udder De di Dattei norr_ens han wells, donn op dä Lengk heh dronger klecke:\n\n$3\n\n'''Opjepaß''': Wann De dat jez nit deihß, es alles verschött, wat De bes jöz enjejovve häs, weil di Dattei fott es en däm Momang, woh heh dat Projamm aam Engk es.\n\nWann De mem Ronger- un widder Huhlaade fäädesh bes, kanns De '''[$2 en Ding Wiki jonn]'''.",
-       "config-download-localsettings": "Donn di Dattei <code lang=\"en\">LocalSettings.php</code> eronger laade",
+       "config-download-localsettings": "Donn di Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code> eronger lahde",
        "config-help": "Hölp",
        "config-help-tooltip": "Donn Hölp heh aan däm Plaaz enblände.",
        "config-nofile": "De Dattei „$1“ ham_mer nit jefonge. Es di fottjeschmeße?",
index 03ea59c..235ff29 100644 (file)
@@ -1,4 +1,9 @@
 {
-       "@metadata": [],
+       "@metadata": {
+               "authors": [
+                       "Taresi"
+               ]
+       },
+       "config-project-namespace": "Tlatequipanōlli ītōcātlacāuh:",
        "mainpagetext": "'''MediaHuiqui cualli ōmotlahtlāli.'''"
 }
index 3058130..f518d15 100644 (file)
        "config-mysql-engine": "Mutore d'astipo:",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
+       "config-mysql-myisam-dep": "<strong>Attenziò:</strong> avite scigliuto MyISAM comm' 'o mutore 'archiviaziona MySQL, ca nun è raccummannato pe' l'ausà cu MediaWiki, pecché:\n* supporta debolmente 'a concorrenza p' 'o blocco d' 'a tabbella\n* è cchiù inchine 'a corruzione 'e l'ati mutore\n* 'o codece 'e base 'e MediaWiki nun gestisce sempe MyISAM comme l'avess'a gistiunà\n\nSi ll'installazione vosta MySQL suppuorta InnoDB, è autamente raccummandato ca si scigliesse a 'o posto suo.\nSi 'a installazione MySQL nun suppurtasse InnoDB, forse è 'o mumento 'e ll'agghiurnà.",
+       "config-mysql-only-myisam-dep": "<strong>Attenziò:</strong> MyISAM è l'uneco mutore p'astipà date ca se trova mo' a disposizione p' 'o MySQL dint'a sta macchina, e nun fosse raccumandato 'e s'ausà cu MediaWiki, pecché:\n* suppurtasse minimamente concorrenza pe' bbìa 'e bluccà tabbelle\n* è cchiù facile ca jesse a se scassà cchiù 'e l'ati mutore\n* 'o codece MediaWiki nun maniasse sempe MyISAM comme l'avesse 'e manià\n\nL'installazione MySQL nun suppurtasse InnoDB, può darse ca chist'è 'o mumento pe' ve ll'agghiurnà.",
        "config-mysql-engine-help": "<strong>InnoDB</strong> è quase sempe 'a meglia opzione, pecché ave nu buono suppuorto concorrente.\n\n<strong>MyISAM</strong> putesse ghì cchiù ampressa int'a na installazione mono-utente e liegge-surtanto.\n'E database MyISAM se scassano cchiù spisso d' 'e database InnoDB.",
        "config-mysql-charset": "Nzieme 'e carattere d' 'o database:",
        "config-mysql-binary": "Binario",
        "config-mysql-utf8": "UTF-8",
+       "config-mysql-charset-help": "Int'a <strong>modalità binaria</strong>, MediaWiki archiviasse 'o testo UTF-8 dint' 'o database a campe binarie.\nChest'è cchiù efficiente rispetto 'a modalità UTF-8 'e MySQL, e ve cunzente d'ausà 'a gamma cumpreta 'e carattere Unicode.\n\nInt'a <strong>modalità UTF-8</strong>, MySQL canoscesse dint'a quale set 'e carattere ce stanno 'e date vuoste, e putesse presentà e scagnà sti date int'a nu modo appropriato, ma nun ve premmettesse 'e dà memoria a 'e carattere ncopp' 'o [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Piano base Multilengua].",
        "config-mssql-auth": "Tipo d'autenticazione:",
        "config-mssql-install-auth": "Sceglie 'o tipo d'autenticazziona ca s'ausarrà pe cunnettà â database, durante ll'operazziona d'istallazziona. Si piglie \"{{int:config-mssql-windowsauth}}\", 'e credenziale 'e qualunque fosse ll'utenza ca 'o webserver sta pruciessanno sarranno ausate.",
        "config-mssql-web-auth": "Sceglie 'o tipo d'autenticazziona ca 'o web server pigliarrà pe se cunnettà a 'o server 'e bbase 'e dati, durante ll'operazziona nurmale d' 'a wiki.\nSi piglie \"{{int:config-mssql-windowsauth}}\", 'e credenziale 'e qualunque fosse ll'utenza ca 'o webserver sta pruciessanno sarranno ausate.",
        "config-ns-site-name": "'O stesso ch' 'o nomme d' 'o wiki: $1",
        "config-ns-other": "Ati (specificà)",
        "config-ns-other-default": "MyWiki",
+       "config-project-namespace-help": "Secutanno l'esempio 'e Wikipedia, tante wiki teneno 'e paggene lloro ch' 'e regole spartute d' 'e paggene 'e cuntenute, dint'a nu \"'''namespace 'e pruggetto'''\". Tuttuquante 'e titule d' 'e paggene dint'a stu namespace accummenciano cu nu certo prefisso ca se putesse nzegnà ccà.\n'O solito, stu prefisso vene d' 'o nomme d' 'o wiki, ma nun adda cuntenè carattere 'e punteggiatura comme fossero \"#\" o \":\".",
        "config-ns-invalid": "'O namespace specificato \"<nowiki>$1</nowiki>\" nun è buono.\nSpecificate nu namespace 'e pruggetto differente.",
        "config-ns-conflict": "'O namespace innecato \"<nowiki>$1</nowiki>\" tràse ncunflitto cu nu namespace predefinito 'e MediaWiki.\nSpecifiate n'atu nomme divierzo 'e namespace 'e pruggetto.",
        "config-admin-box": "Cunto ammenistratore",
        "config-admin-error-password": "Errore interno quanno se steva a mpustà na password pe ll'ammenistratore \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
        "config-admin-error-bademail": "Avite miso n'indirizzo e-mail invalido.",
        "config-subscribe": "Mettiteve dint' 'a [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce mailing list 'e ll'annunciazione 'e verziune d' 'o software rilassate].",
+       "config-subscribe-help": "Chest'è na mailing list a basso traffeco ca se dedicasse a se ffà annunzie 'e verziune nove, piglianno pure mpurtante nutarelle ca riguardassero 'a sicurezza.\nFosse cunzigliato 'e se nzegnà e s'agghiurnà l'installazione 'e MediaWiki quanno na verziona nova fosse pubbreca.",
+       "config-subscribe-noemail": "Vuje avite tentato 'e ve trasì dint' 'a mailing list addedecata a se fà annunzie ncopp' 'e verziune nove senza ve dà n'indirizzo email.\nNzertanno n'indirizzo email se vulite affettuà l'iscrizione dint'a mailing list.",
        "config-almost-done": "Avite quase fernuto!\nMo' putite zumpà 'a parta r' 'a configurazione e sempricemente installà 'a wiki.",
        "config-optional-continue": "Spiate cchiù dimanne.",
        "config-optional-skip": "Me so' scucciato già, installa surtanto 'o wiki.",
        "config-profile-no-anon": "Cunto utente obbligatorio",
        "config-profile-fishbowl": "Surtanto ll'editure premmesse",
        "config-profile-private": "Wiki privato",
+       "config-profile-help": "'E wiki funzionano meglio si se lassa ca tante perzone 'e putessero cagnà.\nInt'a MediaWiki, è semprice cuntrullà sti cagnamiente cchiù ricente, e arrepiglià 'e danne causate d' 'e prove o male ntenziune.\n\nAncora, nu cuofeno 'utente hanno truvato ca MediaWiki fosse utile int'a tante ruole, e cocche vota nun è facile 'e cunvencere tuttuquante ncopp' 'e vantagge d' 'a modalità wiki. Picciò facite 'a scelta vosta. Sciglite vuje.\n\n'O mudello <strong>{{int:config-profile-wiki}}</strong> cunzente a chiunque 'e cagnà, pure senza trasì.\nNu wiki cu <strong>{{int:config-profile-no-anon}}</strong> uffrisse na responsabilità maggiore, ma putesse scuraggià cocche cuntribbutore occasionale.\n\n'O  scenario <strong>{{int:config-profile-fishbowl}}</strong> cunzente l'utente autorizzate 'e cagnà, ma 'o pubbreco putesse vedé 'e paggene vedenno pure tutta quanta 'a cronologgia.\nNu <strong>{{int:config-profile-private}}</strong> cunzente ll'utente autorizzate surtanto 'e se vedé 'e paggene, 'o stesso gruppo 'e putesse cagnà.\n\nMpustaziune 'e deritte utente cchiù cumplesse songo a disposizione aropp'a l'installazione, vedite 'a [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights parte relativa d' 'o manuale].",
        "config-license": "Copyright e licienza:",
        "config-license-none": "Nisciuno piede 'e paggena p' 'a licienza",
        "config-license-cc-by-sa": "Creative Commons Attribuziona-SparteEguale",
        "config-license-gfdl": "GNU Free Documentation License 1.3 o verziune aroppo",
        "config-license-pd": "Pubbreco duminio",
        "config-license-cc-choose": "Sciglite na licienza Creative Commons ca vulite",
+       "config-license-help": "Nu cuofeno 'e wiki pubbrece lassano 'e cuntribbute lloro cu na [http://freedomdefined.org/Definition licienza libbera]. Chesto aiutasse a crià nu senso 'e pruprietà spartuta dint'a communità e ncuraggiasse a cuntribbuiì a nu tèrmene luongo. Nun è generalmente necessario pe' nu wiki privato o aziendale.\n\nSi vulite ausà testi 'a Wikipedia, o vulite ca Wikipedia se pozza miette 'n grado d'accettà teste cupiate d' 'o wiki vuosto, avissev'a scegiere <strong>{{int:config-license-cc-by-sa}}</strong>.\n\nApprimma Wikipedia aveva ausato 'a GNU Free Documentation License. 'A GFDL è una licienza valida, ma è di difficile comprensiona e complica 'o riutilizzo 'e cuntenute.",
        "config-email-settings": "Mpustaziune email",
        "config-enable-email": "Premmette mmasciate elettroniche r'asciuta",
+       "config-enable-email-help": "Si vulite ca 'o sistema 'e mmasciate mail funziunasse, [http://www.php.net/manual/en/mail.configuration.php 'e mpustaziune PHP] s'avesser'a ffà bbuone.\nSi nun vulite 'a funziona mmasciata e-mail, allora stutate chiste llàn.",
        "config-email-user": "Premmette email utente-utente",
        "config-email-user-help": "Cunzente a ll'utente 'e mannà uno a ll'ato le mail si 'e teneno appicciate dint' 'e preferenze lloro.",
        "config-email-usertalk": "Premmette notifiche p' 'e paggene 'e chiacchiera utente",
        "config-email-usertalk-help": "Premmette ll'utente 'e ricevere notifiche p' 'e cagnamiente r' 'e paggene 'e chiacchiera lloro, si l'avessero appicciato dint' 'e preferenze lloro.",
        "config-email-watchlist": "Appiccia notifica 'osservati speciale",
+       "config-email-watchlist-help": "Premmettesse ll'utente 'e se piglià notifiche ncopp' 'e paggene cuntrullate lloro si tenessero appicciate chisto in'a le mpustaziune.",
        "config-email-auth": "Appiccia autenticaziona via email",
        "config-email-sender": "Innerizo email e ritorno:",
        "config-upload-settings": "Immaggene e upload",
        "config-cc-not-chosen": "Sciglite quale licienza Creative Commons desiderate e cliccate ncopp' 'a \"prucede\".",
        "config-advanced-settings": "Configurazione avanzata",
        "config-cache-options": "Mpustaziune p' 'a cache d'oggette:",
+       "config-cache-none": "Nisciuna memorizzazione n cache (nisciuna funziunalità è luvata, ma 'a velocità se putesse ffà a meno dint' 'e wiki cchiù gruosse)",
+       "config-cache-accel": "Mettere 'n cache oggette PHP (APC, XCache o WinCache)",
+       "config-cache-memcached": "Aúsa 'o Memcached (richiede cchiù mpustaziune 'installazione e configuraziona)",
        "config-memcached-servers": "Server memcached:",
        "config-memcached-help": "Elenco 'e ll'indirizzi IP p' 'e putè ausà p' 'o Memcached.\nS'avess'a specificà uno pe' riga e scrivere 'a porta 'e trasuta. P'esempio:\n 127.0.0.1:11211\n 192.168.1.25:1234",
        "config-memcache-needservers": "È stato scigliuto 'o tipo 'e caching Memcached, ma nun è stato mpustato 'a nisciunu server.",
        "config-memcache-noport": "Nun avite specificato na porta p'ausà 'o server Memcached: $1. Si nun sapite 'a porta, chill' 'e default è 11211.",
        "config-memcache-badport": "'E nummere 'e porta 'e Memcached avesser'a stà nfra $1 e $2.",
        "config-extensions": "Estenziune",
+       "config-extensions-help": "L'estensiune elencate ncoppa so' state rilevate dint' 'a cartella vosta <code>./extensions</code>.\n\nChiste putessero richiedere nu poco 'e cchiù 'e mpustaziona, ma se putessero appiccià mo'",
        "config-skins": "Skin",
+       "config-skins-help": "'E skin elencate ncoppa so' state rilevate dint' 'a cartella vosta <code>./skins</code>. Avit'appiccià minimo una e ne scegliere chilla predefinita.",
+       "config-skins-use-as-default": "Aùsa sta skin comme predefinita",
+       "config-skins-missing": "Nisciuna skin s'è truvata, MediaWiki ausasse na soluzione 'e ripiego nfin'a quanno nun sarrà installata una buona.",
+       "config-skins-must-enable-some": "Avit'a scegliere minimo na skin p' 'a puté appiccià.",
+       "config-skins-must-enable-default": "'A skin scigliuta comme predefinita s'avess'appiccià.",
        "config-install-step-done": "fatto",
        "config-install-step-failed": "fallito",
        "config-install-extensions": "Ncludenno 'estenziune",
        "config-install-pg-schema-not-exist": "'O schema PostgreSQL nun esiste.",
        "config-install-pg-commit": "Mannann' 'e cagnamiente",
        "config-install-pg-plpgsql": "Cuntrollo p' 'o lenguaggio PL/pgSQL",
+       "config-pg-not-in-role": "'O cunto c'avite nzegnato p' 'o utente web esiste già.\n'O cunto dato pe' ce fà 'installazione nun è n'utente avanzato e nun è nu membro d' 'o ruolo 'utente web, picciò nun è in grado 'e se crià oggette 'e pruprietà 'utente web.\n\nMediaWiki mo' addimanna ch' 'e tabbelle fossero pruprietà 'e ll'utente web. Putite nzegnà n'atu cunto web, o facite pure \"arreto\" e specificate n'utente pe' ce ffà 'installazione opportunamente privileggiato.",
        "config-install-user": "Crianno utente 'e database",
+       "config-install-user-alreadyexists": "L'utente \"$1\" esiste già",
+       "config-install-user-create-failed": "Crianno utente \"$1\" guastaje: $2",
+       "config-install-tables": "Crianno tabbelle",
+       "config-install-tables-exist": "'''Attenziò:''' pare ch' 'e tabbelle 'e MediaWiki esisteno già.\nZumpo 'a creazione.",
        "config-install-stats": "Inizializzaziona d' 'e statistiche",
        "config-install-keys": "Generaziona d' 'e chiave segrete",
        "config-install-updates": "Mpiccià ll'agghiurnamiente ca nun fossero necessarie",
diff --git a/includes/installer/i18n/olo.json b/includes/installer/i18n/olo.json
new file mode 100644 (file)
index 0000000..9f8743c
--- /dev/null
@@ -0,0 +1,59 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Mashoi7"
+               ]
+       },
+       "config-your-language": "Sinun kieli:",
+       "config-wiki-language": "Wikin kieli:",
+       "config-back": "← Järilleh",
+       "config-continue": "Jatka →",
+       "config-page-language": "Kieli",
+       "config-page-welcome": "Tule terveh MediaWikih!",
+       "config-page-dbconnect": "Yhtistä tiedokandah",
+       "config-page-dbsettings": "Tiedokanduazetukset",
+       "config-page-name": "Nimi",
+       "config-page-options": "Azetukset",
+       "config-page-install": "Azenda",
+       "config-page-complete": "Valmis!",
+       "config-page-readme": "Luve minut",
+       "config-page-copying": "Kopiruitah",
+       "config-page-upgradedoc": "Päivitetäh",
+       "config-page-existingwiki": "Olemasolii wiki",
+       "config-restart": "Muga, käynnistä uvvelleh",
+       "config-env-php": "PHP $1 on azendettu.",
+       "config-env-hhvm": "HHVM $1 on azendettu.",
+       "config-db-name": "Tiedokannan nimi:",
+       "config-db-username": "Tiedokannan käyttäinimi:",
+       "config-db-password": "Tiedokannan peittosana:",
+       "config-type-mssql": "Microsoft SQL Server",
+       "config-header-mysql": "MySQL-azetukset",
+       "config-header-postgres": "PostgreSQL-azetukset",
+       "config-header-sqlite": "SQLite-azetukset",
+       "config-header-oracle": "Oracle-azetukset",
+       "config-header-mssql": "Microsoft SQL Server azetukset",
+       "config-mysql-innodb": "InnoDB",
+       "config-mysql-myisam": "MyISAM",
+       "config-mysql-utf8": "UTF-8",
+       "config-site-name": "Wikin nimi:",
+       "config-site-name-blank": "Kirjuta sivun nimi.",
+       "config-project-namespace": "Projektan nimitila:",
+       "config-ns-generic": "Projektu",
+       "config-ns-other-default": "MinunWiki",
+       "config-admin-name": "Sinun käyttäitunnus:",
+       "config-admin-password": "Peittosana:",
+       "config-admin-password-confirm": "Peittosana myös:",
+       "config-admin-name-blank": "Kirjuta administruattoran käyttäinimi.",
+       "config-admin-password-blank": "Kirjuta administruattorutilin peittosana.",
+       "config-admin-password-mismatch": "Sinun kirjutetut kaksi peittosanua ei oldu yhtenjyttymät.",
+       "config-admin-email": "Sähköpoštuadressu:",
+       "config-optional-continue": "Kyzy minuspäi ližiä kyzymyksii.",
+       "config-optional-skip": "Olen jo terstavunnuh, vaiku azenda wiki.",
+       "config-email-settings": "Sähköpoštuazetukset",
+       "config-logo": "Logon URL:",
+       "config-skins": "Ketut",
+       "config-install-step-done": "ruattu",
+       "config-install-user-alreadyexists": "Käyttäi \"$1\" on jo olemas",
+       "config-help": "abu",
+       "config-nofile": "Failua \"$1\" ei löydynyh. Ongo se otettu iäre?"
+}
index 27dddd3..948b6dd 100644 (file)
@@ -66,7 +66,7 @@
        "config-unicode-using-intl": "Usando a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.",
        "config-unicode-pure-php-warning": "<strong>Aviso</strong>: A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode, abortando e passando para a lenta implementação de PHP puro.\nSe o seu site tem um alto volume de tráfego, informe-se sobre a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalização Unicode].",
        "config-unicode-update-warning": "<strong>Aviso:</strong> A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [//www.site.icu-project.org/projeto ICU].\nVocê deve [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations atualizar] se você tem quaisquer preocupações com o uso do Unicode.",
-       "config-no-db": "Não foi possível localizar um driver de banco de dados apropriado! Você precisa instalar um driver de banco de dados para PHP. O banco de dados seguinte {{PLURAL: $ 2 | | tipo é tipos são}} suportado: $ 1. Se você compilou o PHP mesmo, reconfigurá-lo com um cliente de banco de dados ativada, por exemplo, usando <code> ./ configure --with-mysqli </ code>. Se você instalou o PHP a partir de um pacote Debian ou Ubuntu, então você também precisa instalar, por exemplo, o <code> php5-mysql </ code> pacote.",
+       "config-no-db": "Não foi possível encontrar um driver apropriado para a banco de dados! Você precisa instalar um driver de banco de dados para PHP. {{PLURAL:$2|É aceite o seguinte tipo|São aceites os seguintes tipos}} de banco de dados: $1.\n\nSe compilou o PHP você mesmo, reconfigure-o com um cliente de banco de dados ativado, por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então também precisa instalar, por exemplo, o pacote <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Aviso:</strong> você tem o SQLite versão $1, que é menor do que a versão mínima necessária $2. O SQLite não estará disponível.",
        "config-no-fts3": "<strong>Aviso</strong> O SQLite foi compilado sem o [//sqlite.org/fts3.html módulo FTS3], as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
        "config-register-globals-error": "<strong>Erro: a opção <code>[http://php.net/register_globals register_globals]</code> do PHP está ativada.\nA mesma deve ser desativada para continuar a instalação.</strong>\nVeja [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] para obter ajuda com isto.",
@@ -75,7 +75,7 @@
        "config-magic-quotes-sybase": "<strong>Erro fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está ativada!</strong>\nEsta opção corrompe os dados de entrada de forma imprevisível.\nVocê não pode instalar ou utilizar o MediaWiki a menos que esta opção seja desativada.",
        "config-mbstring": "<strong>Erro fatal: A opção [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está ativada!</strong>\nEsta opção causa erros e pode corromper os dados de forma imprevisível.\nVocê não pode instalar ou utilizar o MediaWiki a menos que esta opção seja desativada.",
        "config-safe-mode": "<strong>Aviso:</strong> O [http://www.php.net/features.safe-mode safe mode] do PHP está ativado.\nEste modo pode causar problemas, especialmente no upload de arquivos e no suporte a <code>math</code>.",
-       "config-xml-bad": "Módulo XML do PHP está faltando. MediaWiki requer funções deste módulo e não vai funcionar nesta configuração. Pode ser necessário instalar o pacote RPM php-xml.",
+       "config-xml-bad": "Falta o módulo XML do PHP.\nO MediaWiki necessita de funções deste módulo e não funcionará com esta configuração.\nPode precisar de instalar o pacote RPM chamado php-xml.",
        "config-pcre-old": "<strong>Erro fatal:</strong> É necessário o PCRE $1 ou versão posterior.\nO binário do seu PHP foi vinculado com o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mais informações].",
        "config-pcre-no-utf8": "<strong>Erro fatal:</strong> O módulo PCRE do PHP parece ser compilado sem suporte a PCRE_UTF8.\nO MediaWiki requer suporte a UTF-8 para funcionar corretamente.",
        "config-memory-raised": "A configuração <code>memory_limit</code> do PHP era $1; foi aumentada para $2.",
index ffb4fb6..bbf2798 100644 (file)
@@ -76,7 +76,7 @@
        "config-memory-raised": "A configuração <code>memory_limit</code> do PHP era $1; foi aumentada para $2.",
        "config-memory-bad": "'''Aviso:''' A configuração <code>memory_limit</code> do PHP é $1.\nIsto é provavelmente demasiado baixo.\nA instalação poderá falhar!",
        "config-ctype": "'''Erro fatal''': O PHP tem de ser compilado com suporte para a [http://www.php.net/manual/en/ctype.installation.php extensão Ctype].",
-       "config-iconv": "<strong>Fatal:</strong> PHP deve ser compilado com suporte à [http://www.php.net/manual/en/iconv.installation.php extensão iconv].",
+       "config-iconv": "<strong>Erro fatal:</strong> O PHP deve ser compilado com suporte à [http://www.php.net/manual/en/iconv.installation.php extensão iconv].",
        "config-json": "<strong>Erro fatal:</strong> O PHP foi compilado sem suporte de JSON.\nTem de instalar a extensão JSON do PHP (incluída no PHP 5.2 ou posterior) ou a extensão [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar o MediaWiki.\n* A extensão JSON do PHP está incluída nas distribuções 5 e 6 do Red Hat Enterprise Linux (CentOS), mas tem de estar ativa nos ficheiros <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.\n* Algumas distribuições do Linux posteriores a maio de 2013 omitem a extensão JSON do PHP e substituem-na pela extensão PECL chamando-lhe <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] instalada",
        "config-apc": "[http://www.php.net/apc APC] instalada",
index 89f2dd9..bb42d88 100644 (file)
@@ -82,7 +82,7 @@
        "config-memory-bad": "Parameters:\n* $1 is the configured <code>memory_limit</code>.",
        "config-ctype": "Message if support for [http://www.php.net/manual/en/ctype.installation.php Ctype] is missing from PHP.\n{{Related|Config-fatal}}",
        "config-iconv": "Message if support for [http://www.php.net/manual/en/iconv.installation.php iconv] is missing from PHP.\n{{Related|Config-fatal}}",
-       "config-json": "Message if support for [[wikipedia:JSON|JSON]] is missing from PHP.\n* \"[[wikipedia:Red Hat Enterprise Linux|Red Hat Enterprise Linux]]\" (RHEL) and \"[[wikipedia:CentOS|CentOS]]\" refer to two almost-identical Linux distributions. \"5 and 6\" refers to version 5 or 6 of either distribution. Because RHEL 7 likely will not include the PHP extension, do not translate as \"5 or newer\".\n* \"The [http://www.php.net/json PHP extension]\" is the JSON extension included with PHP 5.2 and newer.\n* \"The [http://pecl.php.net/package/jsonc PECL extension]\" is based on the PHP extension, though excludes code some distributions have found unacceptable (see [[bugzilla:47431]]).\n{{Related|Config-fatal}}",
+       "config-json": "Message if support for [[wikipedia:JSON|JSON]] is missing from PHP.\n* \"[[wikipedia:Red Hat Enterprise Linux|Red Hat Enterprise Linux]]\" (RHEL) and \"[[wikipedia:CentOS|CentOS]]\" refer to two almost-identical Linux distributions. \"5 and 6\" refers to version 5 or 6 of either distribution. Because RHEL 7 likely will not include the PHP extension, do not translate as \"5 or newer\".\n* \"The [http://www.php.net/json PHP extension]\" is the JSON extension included with PHP 5.2 and newer.\n* \"The [http://pecl.php.net/package/jsonc PECL extension]\" is based on the PHP extension, though excludes code some distributions have found unacceptable (see [[phab:T49431]]).\n{{Related|Config-fatal}}",
        "config-xcache": "Message indicates if this program is available",
        "config-apc": "Message indicates if this program is available",
        "config-wincache": "Message indicates if this program is available",
index fa3512e..dfe4376 100644 (file)
@@ -29,7 +29,7 @@
        "config-localsettings-key": "Ключ обновления:",
        "config-localsettings-badkey": "Вы указали неправильный ключ",
        "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-incomplete": "Похоже, что существующий файл <code>LocalSettings.php</code> неполон.\nНе установлена переменная $1.\nПожалуйста, измените <code>LocalSettings.php</code> так, чтобы значение этой переменной было задано, затем нажмите «{{int:Config-continue}}».",
        "config-localsettings-connection-error": "Произошла ошибка при подключении к базе данных с помощью настроек, указанных в <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Пожалуйста, исправьте эти настройки и повторите попытку.\n\n$1",
        "config-session-error": "Ошибка при запуске сессии: $1",
        "config-session-expired": "Ваша сессия истекла.\nСессии настроены на длительность $1.\nВы её можете увеличить, изменив <code>session.gc_maxlifetime</code> в php.ini.\nПерезапустите процесс установки.",
        "config-db-install-account": "Учётная запись для установки",
        "config-db-username": "Имя пользователя базы данных:",
        "config-db-password": "Пароль базы данных:",
-       "config-db-password-empty": "Пожалуйста, введите пароль для нового пользователя базы данных «$1».\nХотя и возможно создание пользователей без паролей, это небезопасно.",
-       "config-db-username-empty": "Вы должны ввести значение параметра «{{int:config-db-username}}».",
        "config-db-install-username": "Введите имя пользователя, которое будет использоваться для подключения к базе данных в процессе установки.\nЭто не имя пользователя MediaWiki, это имя пользователя для базы данных.",
        "config-db-install-password": "Введите пароль, который будет использоваться для подключения к базе данных в процессе установки.\nЭто не пароль пользователя MediaWiki, это пароль для базы данных.",
        "config-db-install-help": "Введите имя пользователя и пароль, которые будут использоваться для подключения к базе данных во время процесса установки.",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "''' Внимание.''' Вы выбрали механизм MyISAM для хранения данных MySQL. Он не рекомендуется к использованию по следующим причинам:\n* он слабо поддерживает параллелизм из-за табличных блокировок;\n* более склонен к потере данных, по сравнению с другими механизмами;\n* код MediaWiki не всегда учитывает особенности MyISAM должным образом.\n\nЕсли ваша MySQL поддерживает InnoDB, настоятельно рекомендуется выбрать этот механизм.\nЕсли ваша MySQL не поддерживает InnoDB, возможно, настало время обновиться.",
-       "config-mysql-only-myisam-dep": "'''Предупреждение:''' MyISAM является единственной доступной системой хранения данных для MySQL на этом компьютере, и она не рекомендуется для использования с MediaWiki, потому что:\n * он слабо поддерживает параллелизм из-за блокировки таблиц\n * она больше других систем подвержена повреждению\n * кодовая база MediaWiki не всегда обрабатывает MyISAM так, как следует\n\nВаша MySQL не поддерживает InnoDB, так что, возможно, настало время для обновления.",
+       "config-mysql-only-myisam-dep": "<strong>Предупреждение:</strong> MyISAM — единственная доступная система хранения данных для MySQL на этом компьютере, и она не рекомендуется для использования совместно с MediaWiki, потому что:\n* слабо поддерживает параллелизм из-за блокировки таблиц\n* больше других систем подвержена повреждению\n* кодовая база MediaWiki не всегда обрабатывает MyISAM так, как следует\n\nВаша MySQL не поддерживает InnoDB, так что, возможно, настало время для обновления.",
        "config-mysql-engine-help": "'''InnoDB''' почти всегда предпочтительнее, так как он лучше справляется с параллельным доступом.\n\n'''MyISAM''' может оказаться быстрее для вики с одним пользователем или с минимальным количеством поступающих правок, однако базы данных на нём портятся чаще, чем на InnoDB.",
        "config-mysql-charset": "Кодировка базы данных:",
        "config-mysql-binary": "Двоичный",
        "config-install-pg-plpgsql": "Проверка языка PL/pgSQL",
        "config-pg-no-plpgsql": "Вам необходимо установить поддержку языка PL/pgSQL для базы данных $1",
        "config-pg-no-create-privs": "Учётная запись, указанная для установки, не обладает достаточными привилегиями для создания учётной записи.",
-       "config-pg-not-in-role": "УказаннаÑ\8f Ñ\83Ñ\87Ñ\91Ñ\82наÑ\8f Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c Ð²ÐµÐ±-полÑ\8cзоваÑ\82елÑ\8f Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82.\nУказаннаÑ\8f Ð´Ð»Ñ\8f Ñ\83Ñ\81Ñ\82ановки Ñ\83Ñ\87Ñ\91Ñ\82наÑ\8f Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c Ð½Ðµ Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8cÑ\8e Ñ\81Ñ\83пеÑ\80полÑ\8cзоваÑ\82елÑ\8f, Ð¸ Ð½Ðµ Ð¾Ñ\82ноÑ\81иÑ\82Ñ\81Ñ\8f Ðº Ñ\80оли Ð²ÐµÐ±-полÑ\8cзоваÑ\82елÑ\8f, Ð¿Ð¾Ñ\8dÑ\82омÑ\83 Ð½Ðµ Ð¿Ð¾Ð»Ñ\83Ñ\87аеÑ\82Ñ\81Ñ\8f Ñ\81оздаÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b, Ð¿Ñ\80инадлежаÑ\89ие Ð²ÐµÐ±-полÑ\8cзоваÑ\82елÑ\8e.\n\nMediaWiki Ð² Ð½Ð°Ñ\81Ñ\82оÑ\8fÑ\89ее Ð²Ñ\80емÑ\8f Ñ\82Ñ\80ебÑ\83еÑ\82, Ñ\87Ñ\82обÑ\8b Ð²Ð»Ð°Ð´ÐµÐ»Ñ\8cÑ\86ем Ñ\82аблиÑ\86 Ð±Ñ\8bл Ð²ÐµÐ±-полÑ\8cзоваÑ\82елÑ\8c. Ð\9fожалÑ\83йÑ\81Ñ\82а, Ñ\83кажиÑ\82е Ð´Ñ\80Ñ\83гое Ð¸Ð¼Ñ\8f Ñ\83Ñ\87Ñ\91Ñ\82ной Ð·Ð°Ð¿Ð¸Ñ\81и Ð´Ð»Ñ\8f Ð²ÐµÐ±, или нажмите кнопку «назад» и укажите пользователя с достаточными для установки правами.",
+       "config-pg-not-in-role": "УказаннаÑ\8f Ñ\83Ñ\87Ñ\91Ñ\82наÑ\8f Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c Ð²ÐµÐ±-полÑ\8cзоваÑ\82елÑ\8f Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82.\nÐ\92Ñ\8bбÑ\80аннаÑ\8f Ð²Ð°Ð¼Ð¸ Ð´Ð»Ñ\8f Ñ\83Ñ\81Ñ\82ановки Ñ\83Ñ\87Ñ\91Ñ\82наÑ\8f Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8c Ð½Ðµ Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ð·Ð°Ð¿Ð¸Ñ\81Ñ\8cÑ\8e Ñ\81Ñ\83пеÑ\80полÑ\8cзоваÑ\82елÑ\8f Ð¸ Ð½Ðµ Ð¾Ñ\82ноÑ\81иÑ\82Ñ\81Ñ\8f Ðº Ñ\80оли Ð²ÐµÐ±-полÑ\8cзоваÑ\82елÑ\8f; Ð¿Ð¾Ñ\8dÑ\82омÑ\83 Ð½Ðµ Ð¿Ð¾Ð»Ñ\83Ñ\87аеÑ\82Ñ\81Ñ\8f Ñ\81оздаÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82Ñ\8b, Ð¿Ñ\80инадлежаÑ\89ие Ð²ÐµÐ±-полÑ\8cзоваÑ\82елÑ\8e.\n\nMediaWiki Ð² Ð½Ð°Ñ\81Ñ\82оÑ\8fÑ\89ее Ð²Ñ\80емÑ\8f Ñ\82Ñ\80ебÑ\83еÑ\82, Ñ\87Ñ\82обÑ\8b Ð²Ð»Ð°Ð´ÐµÐ»Ñ\8cÑ\86ем Ñ\82аблиÑ\86 Ð±Ñ\8bл Ð²ÐµÐ±-полÑ\8cзоваÑ\82елÑ\8c. Ð\9fожалÑ\83йÑ\81Ñ\82а, Ñ\83кажиÑ\82е Ð´Ñ\80Ñ\83гое Ð¸Ð¼Ñ\8f Ñ\83Ñ\87Ñ\91Ñ\82ной Ð·Ð°Ð¿Ð¸Ñ\81и Ð´Ð»Ñ\8f Ð²ÐµÐ±-полÑ\8cзоваÑ\82елÑ\8f, или нажмите кнопку «назад» и укажите пользователя с достаточными для установки правами.",
        "config-install-user": "Создание базы данных пользователей",
        "config-install-user-alreadyexists": "Участник «$1» уже существует",
        "config-install-user-create-failed": "Не получилось создать участника «$1»: $2",
index 7f0ad67..388968b 100644 (file)
@@ -1,22 +1,23 @@
 {
        "@metadata": {
                "authors": [
-                       "Ammartivari"
+                       "Ammartivari",
+                       "Kosovastar"
                ]
        },
        "config-desc": "Instaluesi për MediaWiki",
        "config-title": "Instalimi MediaWiki $1",
        "config-information": "Të dhëna",
-       "config-your-language": "Gjuha juaj:",
+       "config-your-language": "Gjuha juaj:",
        "config-your-language-help": "Zgjidhni një gjuhë për ta përdorur gjatë procesit të instalimit.",
-       "config-wiki-language": "Gjuha wiki:",
-       "config-wiki-language-help": "Zgjidhni gjuhën në të cilën wiki do të jetë kryesisht e shkruar.",
+       "config-wiki-language": "Gjuha e wikit:",
+       "config-wiki-language-help": "Zgjidhni gjuhën e cila do të mbizotërojë në shkrimin e wiki-t.",
        "config-back": "← Prapa",
        "config-continue": "Para →",
        "config-page-language": "Gjuha",
-       "config-page-welcome": "Mirë se vini në MediaWiki!",
+       "config-page-welcome": "Mirësevini në MediaWiki!",
        "config-page-dbconnect": "Lidhuni me bazën e të dhënave",
-       "config-page-dbsettings": "Cilësimet e bazës së të dhënave",
+       "config-page-dbsettings": "Parametrat e bazës së të dhënave",
        "config-page-name": "Emri",
        "config-page-options": "Opcionet",
        "config-page-install": "Instalo",
@@ -33,9 +34,9 @@
        "config-admin-box": "Llogari administruesi",
        "config-admin-name-blank": "Shkruani nofkën e një administruesi.",
        "config-admin-password-blank": "Shkruani një fjalëkalim për llogarinë e administruesit.",
-       "config-admin-email": "Email adresa:",
+       "config-admin-email": "Adresa e emailit:",
        "config-license-pd": "Domeni publik",
-       "config-logo": "URL-ja i logos:",
+       "config-logo": "URL e logos:",
        "config-install-tables": "Duke krijuar tabela",
        "config-help": "ndihmë",
        "mainpagetext": "'''MediaWiki software u instalua me sukses.'''",
index dec944a..935d2fb 100644 (file)
@@ -111,9 +111,6 @@ class RefreshLinksJob extends Job {
         * @return bool
         */
        protected function runForTitle( Title $title = null ) {
-               $linkCache = LinkCache::singleton();
-               $linkCache->clear();
-
                if ( is_null( $title ) ) {
                        $this->setLastError( "refreshLinks: Invalid title" );
                        return false;
@@ -126,14 +123,18 @@ class RefreshLinksJob extends Job {
                        wfGetLB()->waitFor( $this->params['masterPos'] );
                }
 
-               $page = WikiPage::factory( $title );
+               // Clear out title cache data from prior job transaction snapshots
+               $linkCache = LinkCache::singleton();
+               $linkCache->clear();
 
-               // Fetch the current revision...
+               // Fetch the current page and revision...
+               $page = WikiPage::factory( $title );
                $revision = Revision::newFromTitle( $title, false, Revision::READ_NORMAL );
                if ( !$revision ) {
                        $this->setLastError( "refreshLinks: Article not found {$title->getPrefixedDBkey()}" );
                        return false; // XXX: what if it was just deleted?
                }
+
                $content = $revision->getContent( Revision::RAW );
                if ( !$content ) {
                        // If there is no content, pretend the content is empty
index 2c90431..5a8c4c7 100644 (file)
@@ -60,13 +60,15 @@ class CSSMin {
        /* Static Methods */
 
        /**
-        * Gets a list of local file paths which are referenced in a CSS style sheet
+        * Gets a list of local file paths which are referenced in a CSS style sheet.
         *
-        * This function will always return an empty array if the second parameter is not given or null
-        * for backwards-compatibility.
+        * If you wish non-existent files to be listed too, use getAllLocalFileReferences().
         *
-        * @param string $source CSS data to remap
-        * @param string $path File path where the source was read from (optional)
+        * For backwards-compatibility, if the second parameter is not given or null,
+        * this function will return an empty array instead of erroring out.
+        *
+        * @param string $source CSS stylesheet source to process
+        * @param string $path File path where the source was read from
         * @return array List of local file references
         */
        public static function getLocalFileReferences( $source, $path = null ) {
@@ -74,11 +76,31 @@ class CSSMin {
                        return array();
                }
 
+               $files = self::getAllLocalFileReferences( $source, $path );
+
+               // Skip non-existent files
+               $files = array_filter( $files, function ( $file ) {
+                       return file_exists( $file );
+               } );
+
+               return $files;
+       }
+
+       /**
+        * Gets a list of local file paths which are referenced in a CSS style sheet, including
+        * non-existent files.
+        *
+        * @param string $source CSS stylesheet source to process
+        * @param string $path File path where the source was read from
+        * @return array List of local file references
+        */
+       public static function getAllLocalFileReferences( $source, $path ) {
+               $stripped = preg_replace( '/' . self::COMMENT_REGEX . '/s', '', $source );
                $path = rtrim( $path, '/' ) . '/';
                $files = array();
 
                $rFlags = PREG_OFFSET_CAPTURE | PREG_SET_ORDER;
-               if ( preg_match_all( '/' . self::URL_REGEX . '/', $source, $matches, $rFlags ) ) {
+               if ( preg_match_all( '/' . self::URL_REGEX . '/', $stripped, $matches, $rFlags ) ) {
                        foreach ( $matches as $match ) {
                                $url = $match['file'][0];
 
@@ -87,13 +109,7 @@ class CSSMin {
                                        break;
                                }
 
-                               $file = $path . $url;
-                               // Skip non-existent files
-                               if ( file_exists( $file ) ) {
-                                       break;
-                               }
-
-                               $files[] = $file;
+                               $files[] = $path . $url;
                        }
                }
                return $files;
index dcd413d..41dc66f 100644 (file)
@@ -73,11 +73,17 @@ class WANObjectCache {
        const CHECK_KEY_TTL = 31536000; // 1 year
        /** Seconds to keep lock keys around */
        const LOCK_TTL = 5;
+       /** Default remaining TTL at which to consider pre-emptive regeneration */
+       const LOW_TTL = 10;
+       /** Default time-since-expiry on a miss that makes a key "hot" */
+       const LOCK_TSE = 1;
 
        /** Idiom for set()/getWithSetCallback() TTL */
        const TTL_NONE = 0;
        /** Idiom for getWithSetCallback() callbacks to avoid calling set() */
        const TTL_UNCACHEABLE = -1;
+       /** Idiom for getWithSetCallback() callbacks to 'lockTSE' logic */
+       const TSE_NONE = -1;
 
        /** Cache format version number */
        const VERSION = 1;
@@ -146,6 +152,13 @@ class WANObjectCache {
         *   - c) When the source data that "check" keys represent changes,
         *        the touchCheckKey() method is called on them
         *
+        * Source data entities might exists in a DB that uses snapshot isolation
+        * (e.g. the default REPEATABLE-READ in innoDB). Even for mutable data, that
+        * isolation can largely be maintained by doing the following:
+        *   - a) Calling delete() on entity change *and* creation, before DB commit
+        *   - b) Keeping transaction duration shorter than delete() hold-off TTL
+        * However, pre-snapshot values might still be seen due to delete() relay lag.
+        *
         * For keys that are hot/expensive, consider using getWithSetCallback() instead.
         *
         * @param string $key Cache key
@@ -256,23 +269,25 @@ class WANObjectCache {
        /**
         * Purge a key from all clusters
         *
-        * This deletes the key and instantiates a hold-off period where the key
-        * cannot be written to for the next few seconds (HOLDOFF_TTL). This is to
-        * avoid the following race condition:
-        *   a) Some DB data changes and delete() is called on a corresponding key
-        *   b) A request refills the key with a stale value from a lagged DB
-        *   c) The stale value is stuck there until the key is expired/evicted
+        * This should only be called when the underlying data (being cached)
+        * changes in a significant way. This deletes the key and starts a hold-off
+        * period where the key cannot be written to for a few seconds (HOLDOFF_TTL).
+        * This is done to avoid the following race condition:
+        *   - a) Some DB data changes and delete() is called on a corresponding key
+        *   - b) A request refills the key with a stale value from a lagged DB
+        *   - c) The stale value is stuck there until the key is expired/evicted
         *
         * This is implemented by storing a special "tombstone" value at the cache
         * key that this class recognizes; get() calls will return false for the key
         * and any set() calls will refuse to replace tombstone values at the key.
         * For this to always avoid writing stale values, the following must hold:
-        *   a) Replication lag is bounded to being less than HOLDOFF_TTL; or
-        *   b) If lag is higher, the DB will have gone into read-only mode already
+        *   a) Replication lag is bounded to being less than HOLDOFF_TTL; or
+        *   b) If lag is higher, the DB will have gone into read-only mode already
         *
-        * This should only be called when the underlying data (being cached)
-        * changes in a significant way. If called twice on the same key, then
-        * the last TTL takes precedence.
+        * If called twice on the same key, then the last hold-off TTL takes
+        * precedence. For idempotence, the $ttl should not vary for different
+        * delete() calls on the same key. Also note that lowering $ttl reduces
+        * the effective range of the 'lockTSE' parameter to getWithSetCallback().
         *
         * @param string $key Cache key
         * @param integer $ttl How long to block writes to the key [seconds]
@@ -362,9 +377,9 @@ class WANObjectCache {
         *
         * This is similar to touchCheckKey() in that keys using it via
         * getWithSetCallback() will be invalidated. The differences are:
-        *   a) The timestamp will be deleted from all caches and lazily
+        *   a) The timestamp will be deleted from all caches and lazily
         *      re-initialized when accessed (rather than set everywhere)
-        *   b) Thus, dependent keys will be known to be invalid, but not
+        *   b) Thus, dependent keys will be known to be invalid, but not
         *      for how long (they are treated as "just" purged), which
         *      effects any lockTSE logic in getWithSetCallback()
         * The advantage is that this does not place high TTL keys on every cache
@@ -412,8 +427,8 @@ class WANObjectCache {
         *
         * The simplest way to avoid stampedes for hot keys is to use
         * the 'lockTSE' option in $opts. If cache purges are needed, also:
-        *   a) Pass $key into $checkKeys
-        *   b) Use touchCheckKey( $key ) instead of delete( $key )
+        *   a) Pass $key into $checkKeys
+        *   b) Use touchCheckKey( $key ) instead of delete( $key )
         * Following this pattern lets the old cache be used until a
         * single thread updates it as needed. Also consider tweaking
         * the 'lowTTL' parameter.
@@ -459,23 +474,24 @@ class WANObjectCache {
         *   - lowTTL  : consider pre-emptive updates when the current TTL (sec)
         *               of the key is less than this. It becomes more likely
         *               over time, becoming a certainty once the key is expired.
+        *               [Default: WANObjectCache::LOW_TTL seconds]
         *   - lockTSE : if the key is tombstoned or expired (by $checkKeys) less
         *               than this many seconds ago, then try to have a single
         *               thread handle cache regeneration at any given time.
         *               Other threads will try to use stale values if possible.
         *               If, on miss, the time since expiration is low, the assumption
         *               is that the key is hot and that a stampede is worth avoiding.
-        *   - tempTTL : TTL of the temp key used to cache values while a key is tombstoned.
-        *               This avoids excessive regeneration of hot keys on delete() but may
-        *               result in stale values.
+        *               Setting this above WANObjectCache::HOLDOFF_TTL makes no difference.
+        *               The higher this is set, the higher the worst-case staleness can be.
+        *               Use WANObjectCache::TSE_NONE to disable this logic.
+        *               [Default: WANObjectCache::TSE_NONE]
         * @return mixed Value to use for the key
         */
        final public function getWithSetCallback(
                $key, $callback, $ttl, array $checkKeys = array(), array $opts = array()
        ) {
-               $lowTTL = isset( $opts['lowTTL'] ) ? $opts['lowTTL'] : min( 10, $ttl );
-               $lockTSE = isset( $opts['lockTSE'] ) ? $opts['lockTSE'] : -1;
-               $tempTTL = isset( $opts['tempTTL'] ) ? $opts['tempTTL'] : 5;
+               $lowTTL = isset( $opts['lowTTL'] ) ? $opts['lowTTL'] : min( self::LOW_TTL, $ttl );
+               $lockTSE = isset( $opts['lockTSE'] ) ? $opts['lockTSE'] : self::TSE_NONE;
 
                // Get the current key value
                $curTTL = null;
@@ -487,29 +503,33 @@ class WANObjectCache {
                        return $value;
                }
 
+               // A deleted key with a negative TTL left must be tombstoned
                $isTombstone = ( $curTTL !== null && $value === false );
                // Assume a key is hot if requested soon after invalidation
                $isHot = ( $curTTL !== null && $curTTL <= 0 && abs( $curTTL ) <= $lockTSE );
-
-               $locked = false;
-               if ( $isHot ) {
+               // Decide whether a single thread should handle regenerations.
+               // This avoids stampedes when $checkKeys are bumped and when preemptive
+               // renegerations take too long. It also reduces regenerations while $key
+               // is tombstoned. This balances cache freshness with avoiding DB load.
+               $useMutex = ( $isHot || ( $isTombstone && $lockTSE > 0 ) );
+
+               $lockAcquired = false;
+               if ( $useMutex ) {
                        // Acquire a cluster-local non-blocking lock
                        if ( $this->cache->lock( $key, 0, self::LOCK_TTL ) ) {
                                // Lock acquired; this thread should update the key
-                               $locked = true;
+                               $lockAcquired = true;
                        } elseif ( $value !== false ) {
                                // If it cannot be acquired; then the stale value can be used
                                return $value;
-                       }
-               }
-
-               if ( !$locked && ( $isTombstone || $isHot ) ) {
-                       // Use the stash value for tombstoned keys to reduce regeneration load.
-                       // For hot keys, either another thread has the lock or the lock failed;
-                       // use the stash value from the last thread that regenerated it.
-                       $value = $this->cache->get( self::STASH_KEY_PREFIX . $key );
-                       if ( $value !== false ) {
-                               return $value;
+                       } else {
+                               // Use the stash value for tombstoned keys to reduce regeneration load.
+                               // For hot keys, either another thread has the lock or the lock failed;
+                               // use the stash value from the last thread that regenerated it.
+                               $value = $this->cache->get( self::STASH_KEY_PREFIX . $key );
+                               if ( $value !== false ) {
+                                       return $value;
+                               }
                        }
                }
 
@@ -521,11 +541,12 @@ class WANObjectCache {
                $value = call_user_func_array( $callback, array( $cValue, &$ttl ) );
                // When delete() is called, writes are write-holed by the tombstone,
                // so use a special stash key to pass the new value around threads.
-               if ( $value !== false && ( $isHot || $isTombstone ) && $ttl >= 0 ) {
+               if ( $useMutex && $value !== false && $ttl >= 0 ) {
+                       $tempTTL = max( 1, (int)$lockTSE ); // set() expects seconds
                        $this->cache->set( self::STASH_KEY_PREFIX . $key, $value, $tempTTL );
                }
 
-               if ( $locked ) {
+               if ( $lockAcquired ) {
                        $this->cache->unlock( $key );
                }
 
index 2a179be..97ddccf 100644 (file)
@@ -34,7 +34,7 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
         *   * body: array( 'wikitext' => ... ) or array( 'wikitext' => ..., 'bodyOnly' => true/false )
         *   * $title is optional
         *   * $revision is optional
-     *
+        *
         * There are also deprecated "v1" requests; see onParsoid1Request
         * for details.
         * @param array $params Key/value map
@@ -54,6 +54,7 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
                }
                // set up defaults and merge them with the given params
                $mparams = array_merge( array(
+                       'name' => 'parsoid',
                        'url' => 'http://localhost:8000/',
                        'prefix' => 'localhost',
                        'domain' => 'localhost',
index bc520aa..3a7bc58 100644 (file)
@@ -48,6 +48,7 @@ class RestbaseVirtualRESTService extends VirtualRESTService {
        public function __construct( array $params ) {
                // set up defaults and merge them with the given params
                $mparams = array_merge( array(
+                       'name' => 'restbase',
                        'url' => 'http://localhost:7231/',
                        'domain' => 'localhost',
                        'timeout' => 100,
index 011dabe..88b0e1f 100644 (file)
@@ -45,7 +45,11 @@ class SwiftVirtualRESTService extends VirtualRESTService {
         *   - swiftAuthTTL       : Swift authentication TTL (seconds)
         */
        public function __construct( array $params ) {
-               parent::__construct( $params );
+               // set up defaults and merge them with the given params
+               $mparams = array_merge( array(
+                       'name' => 'swift'
+               ), $params );
+               parent::__construct( $mparams );
        }
 
        /**
index 2a0b3f0..01a4ea6 100644 (file)
@@ -44,6 +44,17 @@ abstract class VirtualRESTService {
                $this->params = $params;
        }
 
+       /**
+        * Return the name of this service, in a form suitable for error
+        * reporting or debugging.
+        *
+        * @return string The name of the service behind this VRS object.
+        */
+       public function getName() {
+               return isset( $this->params['name'] ) ? $this->params['name'] :
+                       get_class( $this );
+       }
+
        /**
         * Prepare virtual HTTP(S) requests (for this service) for execution
         *
index 94aca61..b998d18 100644 (file)
@@ -187,4 +187,25 @@ class GIFHandler extends BitmapHandler {
 
                return $wgLang->commaList( $info );
        }
+
+       /**
+        * Return the duration of the GIF file.
+        *
+        * Shown in the &query=imageinfo&iiprop=size api query.
+        *
+        * @param $file File
+        * @return float The duration of the file.
+        */
+       public function getLength( $file ) {
+               $serMeta = $file->getMetadata();
+               MediaWiki\suppressWarnings();
+               $metadata = unserialize( $serMeta );
+               MediaWiki\restoreWarnings();
+
+               if ( !$metadata || !isset( $metadata['duration'] ) || !$metadata['duration'] ) {
+                       return 0.0;
+               } else {
+                       return (float)$metadata['duration'];
+               }
+       }
 }
index c3f0832..e297fe1 100644 (file)
@@ -175,9 +175,29 @@ class PNGHandler extends BitmapHandler {
                return $wgLang->commaList( $info );
        }
 
+       /**
+        * Return the duration of an APNG file.
+        *
+        * Shown in the &query=imageinfo&iiprop=size api query.
+        *
+        * @param $file File
+        * @return float The duration of the file.
+        */
+       public function getLength( $file ) {
+               $serMeta = $file->getMetadata();
+               MediaWiki\suppressWarnings();
+               $metadata = unserialize( $serMeta );
+               MediaWiki\restoreWarnings();
+
+               if ( !$metadata || !isset( $metadata['duration'] ) || !$metadata['duration'] ) {
+                       return 0.0;
+               } else {
+                       return (float)$metadata['duration'];
+               }
+       }
+
        // PNGs should be easy to support, but it will need some sharpening applied
        // and another user test to check if the perceived quality change is noticeable
-
        public function supportsBucketing() {
                return false;
        }
index bbfaa5e..1a52930 100644 (file)
 class MultiWriteBagOStuff extends BagOStuff {
        /** @var BagOStuff[] */
        protected $caches;
+       /** @var bool Use async secondary writes */
+       protected $asyncWrites = false;
 
        /**
-        * Constructor. Parameters are:
-        *
-        *   - caches:   This should have a numbered array of cache parameter
-        *               structures, in the style required by $wgObjectCaches. See
-        *               the documentation of $wgObjectCaches for more detail.
+        * $params include:
+        *   - caches:      This should have a numbered array of cache parameter
+        *                  structures, in the style required by $wgObjectCaches. See
+        *                  the documentation of $wgObjectCaches for more detail.
+        *                  BagOStuff objects can also be used as values.
+        *                  The first cache is the primary one, being the first to
+        *                  be read in the fallback chain. Writes happen to all stores
+        *                  in the order they are defined. However, lock()/unlock() calls
+        *                  only use the primary store.
+        *   - replication: Either 'sync' or 'async'. This controls whether writes to
+        *                  secondary stores are deferred when possible. Async writes
+        *                  require the HHVM register_postsend_function() function.
+        *                  Async writes can increase the chance of some race conditions
+        *                  or cause keys to expire seconds later than expected. It is
+        *                  safe to use for modules when cached values: are immutable,
+        *                  invalidation uses logical TTLs, invalidation uses etag/timestamp
+        *                  validation against the DB, or merge() is used to handle races.
         *
         * @param array $params
         * @throws InvalidArgumentException
         */
        public function __construct( $params ) {
                parent::__construct( $params );
-               if ( !isset( $params['caches'] ) ) {
-                       throw new InvalidArgumentException( __METHOD__ . ': the caches parameter is required' );
+
+               if ( empty( $params['caches'] ) || !is_array( $params['caches'] ) ) {
+                       throw new InvalidArgumentException( __METHOD__ . ': "caches" parameter must be an array of caches' );
                }
 
                $this->caches = array();
                foreach ( $params['caches'] as $cacheInfo ) {
-                       $this->caches[] = ObjectCache::newFromParams( $cacheInfo );
+                       $this->caches[] = ( $cacheInfo instanceof BagOStuff )
+                               ? $cacheInfo
+                               : ObjectCache::newFromParams( $cacheInfo );
                }
+
+               $this->asyncWrites = isset( $params['replication'] ) && $params['replication'] === 'async';
        }
 
        /**
@@ -126,11 +145,7 @@ class MultiWriteBagOStuff extends BagOStuff {
         */
        public function lock( $key, $timeout = 6, $expiry = 6, $rclass = '' ) {
                // Lock only the first cache, to avoid deadlocks
-               if ( isset( $this->caches[0] ) ) {
-                       return $this->caches[0]->lock( $key, $timeout, $expiry, $rclass );
-               } else {
-                       return true;
-               }
+               return $this->caches[0]->lock( $key, $timeout, $expiry, $rclass );
        }
 
        /**
@@ -138,11 +153,7 @@ class MultiWriteBagOStuff extends BagOStuff {
         * @return bool
         */
        public function unlock( $key ) {
-               if ( isset( $this->caches[0] ) ) {
-                       return $this->caches[0]->unlock( $key );
-               } else {
-                       return true;
-               }
+               return $this->caches[0]->unlock( $key );
        }
 
        /**
@@ -157,13 +168,11 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        public function getLastError() {
-               return isset( $this->caches[0] ) ? $this->caches[0]->getLastError() : self::ERR_NONE;
+               return $this->caches[0]->getLastError();
        }
 
        public function clearLastError() {
-               if ( isset( $this->caches[0] ) ) {
-                       $this->caches[0]->clearLastError();
-               }
+               $this->caches[0]->clearLastError();
        }
 
        /**
@@ -175,11 +184,25 @@ class MultiWriteBagOStuff extends BagOStuff {
                $args = func_get_args();
                array_shift( $args );
 
-               foreach ( $this->caches as $cache ) {
-                       if ( !call_user_func_array( array( $cache, $method ), $args ) ) {
-                               $ret = false;
+               foreach ( $this->caches as $i => $cache ) {
+                       if ( $i == 0 || !$this->asyncWrites ) {
+                               // First store or in sync mode: write now and get result
+                               if ( !call_user_func_array( array( $cache, $method ), $args ) ) {
+                                       $ret = false;
+                               }
+                       } else {
+                               // Secondary write in async mode: do not block this HTTP request
+                               $logger = $this->logger;
+                               DeferredUpdates::addCallableUpdate(
+                                       function () use ( $cache, $method, $args, $logger ) {
+                                               if ( !call_user_func_array( array( $cache, $method ), $args ) ) {
+                                                       $logger->warning( "Async $method op failed" );
+                                               }
+                                       }
+                               );
                        }
                }
+
                return $ret;
        }
 
@@ -198,6 +221,7 @@ class MultiWriteBagOStuff extends BagOStuff {
                                $ret = true;
                        }
                }
+
                return $ret;
        }
 }
index a9af9b1..7d9903f 100644 (file)
  * @file
  */
 
+/**
+ * Redis-based caching module for redis server >= 2.6.12
+ *
+ * @note: avoid use of Redis::MULTI transactions for twemproxy support
+ */
 class RedisBagOStuff extends BagOStuff {
        /** @var RedisConnectionPool */
        protected $redisPool;
@@ -81,7 +86,6 @@ class RedisBagOStuff extends BagOStuff {
        }
 
        public function get( $key, &$casToken = null, $flags = 0 ) {
-
                list( $server, $conn ) = $this->getConnection( $key );
                if ( !$conn ) {
                        return false;
@@ -100,7 +104,6 @@ class RedisBagOStuff extends BagOStuff {
        }
 
        public function set( $key, $value, $expiry = 0 ) {
-
                list( $server, $conn ) = $this->getConnection( $key );
                if ( !$conn ) {
                        return false;
@@ -122,41 +125,7 @@ class RedisBagOStuff extends BagOStuff {
                return $result;
        }
 
-       protected function cas( $casToken, $key, $value, $expiry = 0 ) {
-
-               list( $server, $conn ) = $this->getConnection( $key );
-               if ( !$conn ) {
-                       return false;
-               }
-               $expiry = $this->convertToRelative( $expiry );
-               try {
-                       $conn->watch( $key );
-
-                       if ( $this->serialize( $this->get( $key ) ) !== $casToken ) {
-                               $conn->unwatch();
-                               return false;
-                       }
-
-                       // multi()/exec() will fail atomically if the key changed since watch()
-                       $conn->multi();
-                       if ( $expiry ) {
-                               $conn->setex( $key, $expiry, $this->serialize( $value ) );
-                       } else {
-                               // No expiry, that is very different from zero expiry in Redis
-                               $conn->set( $key, $this->serialize( $value ) );
-                       }
-                       $result = ( $conn->exec() == array( true ) );
-               } catch ( RedisException $e ) {
-                       $result = false;
-                       $this->handleException( $conn, $e );
-               }
-
-               $this->logRequest( 'cas', $key, $server, $result );
-               return $result;
-       }
-
        public function delete( $key ) {
-
                list( $server, $conn ) = $this->getConnection( $key );
                if ( !$conn ) {
                        return false;
@@ -175,7 +144,6 @@ class RedisBagOStuff extends BagOStuff {
        }
 
        public function getMulti( array $keys, $flags = 0 ) {
-
                $batches = array();
                $conns = array();
                foreach ( $keys as $key ) {
@@ -220,7 +188,6 @@ class RedisBagOStuff extends BagOStuff {
         * @return bool
         */
        public function setMulti( array $data, $expiry = 0 ) {
-
                $batches = array();
                $conns = array();
                foreach ( $data as $key => $value ) {
@@ -265,7 +232,6 @@ class RedisBagOStuff extends BagOStuff {
        }
 
        public function add( $key, $value, $expiry = 0 ) {
-
                list( $server, $conn ) = $this->getConnection( $key );
                if ( !$conn ) {
                        return false;
@@ -273,11 +239,11 @@ class RedisBagOStuff extends BagOStuff {
                $expiry = $this->convertToRelative( $expiry );
                try {
                        if ( $expiry ) {
-                               $conn->multi();
-                               $conn->setnx( $key, $this->serialize( $value ) );
-                               // @FIXME: this always bumps the TTL; use Redis 2.8 or Lua
-                               $conn->expire( $key, $expiry );
-                               $result = ( $conn->exec() == array( true, true ) );
+                               $result = $conn->set(
+                                       $key,
+                                       $this->serialize( $value ),
+                                       array( 'nx', 'ex' => $expiry )
+                               );
                        } else {
                                $result = $conn->setnx( $key, $this->serialize( $value ) );
                        }
@@ -303,7 +269,6 @@ class RedisBagOStuff extends BagOStuff {
         * @return int|bool New value or false on failure
         */
        public function incr( $key, $value = 1 ) {
-
                list( $server, $conn ) = $this->getConnection( $key );
                if ( !$conn ) {
                        return false;
@@ -323,14 +288,6 @@ class RedisBagOStuff extends BagOStuff {
                return $result;
        }
 
-       public function merge( $key, $callback, $exptime = 0, $attempts = 10 ) {
-               if ( !is_callable( $callback ) ) {
-                       throw new Exception( "Got invalid callback." );
-               }
-
-               return $this->mergeViaCas( $key, $callback, $exptime, $attempts );
-       }
-
        public function modifySimpleRelayEvent( array $event ) {
                if ( array_key_exists( 'val', $event ) ) {
                        $event['val'] = serialize( $event['val'] ); // this class uses PHP serialization
@@ -381,7 +338,9 @@ class RedisBagOStuff extends BagOStuff {
 
                        // If automatic failover is enabled, check that the server's link
                        // to its master (if any) is up -- but only if there are other
-                       // viable candidates left to consider.
+                       // viable candidates left to consider. Also, getMasterLinkStatus()
+                       // does not work with twemproxy, though $candidates will be empty
+                       // by now in such cases.
                        if ( $this->automaticFailover && $candidates ) {
                                try {
                                        if ( $this->getMasterLinkStatus( $conn ) === 'down' ) {
index 54db19c..56b9520 100644 (file)
@@ -1091,11 +1091,6 @@ class Article implements Page {
                // to get the recentchanges row belonging to that entry
                // (with rc_new = 1).
 
-               // Check for cached results
-               if ( $cache->get( wfMemcKey( 'NotPatrollablePage', $this->getTitle()->getArticleID() ) ) ) {
-                       return false;
-               }
-
                if ( $this->mRevision
                        && !RecentChange::isInRCLifespan( $this->mRevision->getTimestamp(), 21600 )
                ) {
@@ -1104,6 +1099,12 @@ class Article implements Page {
                        return false;
                }
 
+               // Check for cached results
+               $key = wfMemcKey( 'NotPatrollablePage', $this->getTitle()->getArticleID() );
+               if ( $cache->get( $key ) ) {
+                       return false;
+               }
+
                $dbr = wfGetDB( DB_SLAVE );
                $oldestRevisionTimestamp = $dbr->selectField(
                        'revision',
@@ -1121,20 +1122,30 @@ class Article implements Page {
                                        'rc_new' => 1,
                                        'rc_timestamp' => $oldestRevisionTimestamp,
                                        'rc_namespace' => $this->getTitle()->getNamespace(),
-                                       'rc_cur_id' => $this->getTitle()->getArticleID(),
-                                       'rc_patrolled' => 0
+                                       'rc_cur_id' => $this->getTitle()->getArticleID()
                                ),
                                __METHOD__,
                                array( 'USE INDEX' => 'new_name_timestamp' )
                        );
+               } else {
+                       // Cache the information we gathered above in case we can't patrol
+                       // Don't cache in case we can patrol as this could change
+                       $cache->set( $key, '1' );
                }
 
                if ( !$rc ) {
-                       // No RC entry around
+                       // Don't cache: This can be hit if the page gets accessed very fast after
+                       // its creation or in case we have high slave lag. In case the revision is
+                       // too old, we will already return above.
+                       return false;
+               }
+
+               if ( $rc->getAttribute( 'rc_patrolled' ) ) {
+                       // Patrolled RC entry around
 
                        // Cache the information we gathered above in case we can't patrol
                        // Don't cache in case we can patrol as this could change
-                       $cache->set( wfMemcKey( 'NotPatrollablePage', $this->getTitle()->getArticleID() ), '1' );
+                       $cache->set( $key, '1' );
 
                        return false;
                }
@@ -1224,18 +1235,33 @@ class Article implements Page {
 
                Hooks::run( 'ShowMissingArticle', array( $this ) );
 
-               // Give extensions a chance to hide their (unrelated) log entries
-               $logTypes = array( 'delete', 'move' );
-               $conds = array( "log_action != 'revision'" );
-               Hooks::run( 'Article::MissingArticleConditions', array( &$conds, $logTypes ) );
-
-               # Show delete and move logs
-               LogEventsList::showLogExtract( $outputPage, $logTypes, $title, '',
-                       array( 'lim' => 10,
-                               'conds' => $conds,
-                               'showIfEmpty' => false,
-                               'msgKey' => array( 'moveddeleted-notice' ) )
-               );
+               # Show delete and move logs if there were any such events.
+               # The logging query can DOS the site when bots/crawlers cause 404 floods,
+               # so be careful showing this. 404 pages must be cheap as they are hard to cache.
+               $cache = ObjectCache::getMainStashInstance();
+               $key = wfMemcKey( 'page-recent-delete', md5( $title->getPrefixedText() ) );
+               $loggedIn = $this->getContext()->getUser()->isLoggedIn();
+               if ( $loggedIn || $cache->get( $key ) ) {
+                       $logTypes = array( 'delete', 'move' );
+                       $conds = array( "log_action != 'revision'" );
+                       // Give extensions a chance to hide their (unrelated) log entries
+                       Hooks::run( 'Article::MissingArticleConditions', array( &$conds, $logTypes ) );
+                       LogEventsList::showLogExtract(
+                               $outputPage,
+                               $logTypes,
+                               $title,
+                               '',
+                               array(
+                                       'lim' => 10,
+                                       'conds' => $conds,
+                                       'showIfEmpty' => false,
+                                       'msgKey' => array( $loggedIn
+                                               ? 'moveddeleted-notice'
+                                               : 'moveddeleted-notice-recent'
+                                       )
+                               )
+                       );
+               }
 
                if ( !$this->mPage->hasViewableContent() && $wgSend404Code && !$validUserPage ) {
                        // If there's no backing content, send a 404 Not Found
index 43b12b2..9b9e3cb 100644 (file)
@@ -712,7 +712,7 @@ EOT
                $canUpload = $this->getTitle()->quickUserCan( 'upload', $this->getContext()->getUser() );
                if ( $canUpload && UploadBase::userCanReUpload(
                                $this->getContext()->getUser(),
-                               $this->mPage->getFile()->name )
+                               $this->mPage->getFile() )
                ) {
                        $ulink = Linker::makeExternalLink(
                                $this->getUploadUrl(),
index 657c4d0..c99928a 100644 (file)
@@ -1765,7 +1765,6 @@ class WikiPage implements Page, IDBAccessObject {
 
                $dbw = wfGetDB( DB_MASTER );
                $now = wfTimestampNow();
-               $this->mTimestamp = $now;
 
                if ( $flags & EDIT_UPDATE ) {
                        // Update article, but only if changed.
@@ -1844,6 +1843,7 @@ class WikiPage implements Page, IDBAccessObject {
                                $user->incEditCount();
 
                                $dbw->commit( __METHOD__ );
+                               $this->mTimestamp = $now;
                        } else {
                                // Bug 32948: revision ID must be set to page {{REVISIONID}} and
                                // related variables correctly
@@ -1938,6 +1938,7 @@ class WikiPage implements Page, IDBAccessObject {
                        $user->incEditCount();
 
                        $dbw->commit( __METHOD__ );
+                       $this->mTimestamp = $now;
 
                        // Update links, etc.
                        $this->doEditUpdates( $revision, $user, array( 'created' => true ) );
@@ -2854,7 +2855,7 @@ class WikiPage implements Page, IDBAccessObject {
                // Clone the title, so we have the information we need when we log
                $logTitle = clone $this->mTitle;
 
-               // Log the deletion, if the page was suppressed, log it at Oversight instead
+               // Log the deletion, if the page was suppressed, put it in the suppression log instead
                $logtype = $suppress ? 'suppress' : 'delete';
 
                $logEntry = new ManualLogEntry( $logtype, 'delete' );
@@ -2872,6 +2873,10 @@ class WikiPage implements Page, IDBAccessObject {
                        $dbw->commit( __METHOD__ );
                }
 
+               // Show log excerpt on 404 pages rather than just a link
+               $key = wfMemcKey( 'page-recent-delete', md5( $logTitle->getPrefixedText() ) );
+               ObjectCache::getMainStashInstance()->set( $key, 1, 86400 );
+
                $this->doDeleteUpdates( $id, $content );
 
                Hooks::run( 'ArticleDeleteComplete', array( &$this, &$user, $reason, $id, $content, $logEntry ) );
@@ -2911,7 +2916,7 @@ class WikiPage implements Page, IDBAccessObject {
 
                // remove secondary indexes, etc
                $updates = $this->getDeletionUpdates( $content );
-               DataUpdate::runUpdates( $updates );
+               DataUpdate::runUpdates( $updates, 'enqueue' );
 
                // Reparse any pages transcluding this page
                LinksUpdate::queueRecursiveJobsForTable( $this->mTitle, 'templatelinks' );
@@ -3218,10 +3223,10 @@ class WikiPage implements Page, IDBAccessObject {
         */
        public static function onArticleEdit( Title $title, Revision $revision = null ) {
                // Invalidate caches of articles which include this page
-               DeferredUpdates::addHTMLCacheUpdate( $title, 'templatelinks' );
+               DeferredUpdates::addUpdate( new HTMLCacheUpdate( $title, 'templatelinks' ) );
 
                // Invalidate the caches of all pages which redirect here
-               DeferredUpdates::addHTMLCacheUpdate( $title, 'redirect' );
+               DeferredUpdates::addUpdate( new HTMLCacheUpdate( $title, 'redirect' ) );
 
                // Purge squid for this page only
                $title->purgeSquid();
index 677da63..12bb175 100644 (file)
@@ -1474,8 +1474,9 @@ class Parser {
                # The characters '<' and '>' (which were escaped by
                # removeHTMLtags()) should not be included in
                # URLs, per RFC 2396.
+               # Make &nbsp; terminate a URL as well (bug T84937)
                $m2 = array();
-               if ( preg_match( '/&(lt|gt);/', $url, $m2, PREG_OFFSET_CAPTURE ) ) {
+               if ( preg_match( '/&(lt|gt|nbsp|#x0*(3[CcEe]|[Aa]0)|#0*(60|62|160));/', $url, $m2, PREG_OFFSET_CAPTURE ) ) {
                        $trail = substr( $url, $m2[0][1] ) . $trail;
                        $url = substr( $url, 0, $m2[0][1] );
                }
@@ -4842,16 +4843,7 @@ class Parser {
                $ts = $this->mOptions->getTimestamp();
                $timestamp = MWTimestamp::getLocalInstance( $ts );
                $ts = $timestamp->format( 'YmdHis' );
-               $tzMsg = $timestamp->format( 'T' );  # might vary on DST changeover!
-
-               # Allow translation of timezones through wiki. format() can return
-               # whatever crap the system uses, localised or not, so we cannot
-               # ship premade translations.
-               $key = 'timezone-' . strtolower( trim( $tzMsg ) );
-               $msg = wfMessage( $key )->inContentLanguage();
-               if ( $msg->exists() ) {
-                       $tzMsg = $msg->text();
-               }
+               $tzMsg = $timestamp->getTimezoneMessage()->inContentLanguage()->text();
 
                $d = $wgContLang->timeanddate( $ts, false, false ) . " ($tzMsg)";
 
index 47fcd30..abff543 100644 (file)
@@ -44,15 +44,14 @@ class ParserCache {
 
        /**
         * Setup a cache pathway with a given back-end storage mechanism.
-        * May be a memcached client or a BagOStuff derivative.
+        *
+        * This class use an invalidation strategy that is compatible with
+        * MultiWriteBagOStuff in async replication mode.
         *
         * @param BagOStuff $memCached
         * @throws MWException
         */
-       protected function __construct( $memCached ) {
-               if ( !$memCached ) {
-                       throw new MWException( "Tried to create a ParserCache with an invalid memcached" );
-               }
+       protected function __construct( BagOStuff $memCached ) {
                $this->mMemc = $memCached;
        }
 
index 39da32d..6723793 100644 (file)
@@ -47,7 +47,7 @@ class EncryptedPassword extends ParameterizedPassword {
                                        $secret, 0, base64_decode( $this->args[0] )
                                ) );
                } else {
-                       $underlyingPassword = $this->factory->newFromType( $this->config['underlying'], $this->config );
+                       $underlyingPassword = $this->factory->newFromType( $this->config['underlying'] );
                }
 
                $underlyingPassword->crypt( $password );
index 6c58453..50a77ec 100644 (file)
@@ -32,7 +32,7 @@
 function wfGetRusage() {
        if ( !function_exists( 'getrusage' ) ) {
                return false;
-       } elseif ( defined( 'HHVM_VERSION' ) ) {
+       } elseif ( defined( 'HHVM_VERSION' ) && PHP_OS === 'Linux' ) {
                return getrusage( 2 /* RUSAGE_THREAD */ );
        } else {
                return getrusage( 0 /* RUSAGE_SELF */ );
diff --git a/includes/registration/CoreVersionChecker.php b/includes/registration/CoreVersionChecker.php
new file mode 100644 (file)
index 0000000..a7a926c
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+use Composer\Semver\VersionParser;
+use Composer\Semver\Constraint\VersionConstraint;
+
+/**
+ * @since 1.26
+ */
+class CoreVersionChecker {
+
+       /**
+        * @var VersionConstraint|bool representing $wgVersion
+        */
+       private $coreVersion = false;
+
+       /**
+        * @var VersionParser
+        */
+       private $versionParser;
+
+       /**
+        * @param string $coreVersion Current version of core
+        */
+       public function __construct( $coreVersion ) {
+               $this->versionParser = new VersionParser();
+               try {
+                       $this->coreVersion = new VersionConstraint(
+                               '==',
+                               $this->versionParser->normalize( $coreVersion )
+                       );
+               } catch ( UnexpectedValueException $e ) {
+                       // Non-parsable version, don't fatal.
+               }
+       }
+
+       /**
+        * Check that the provided constraint is compatible with the current version of core
+        *
+        * @param string $constraint Something like ">= 1.26"
+        * @return bool
+        */
+       public function check( $constraint ) {
+               if ( $this->coreVersion === false ) {
+                       // Couldn't parse the core version, so we can't check anything
+                       return true;
+               }
+
+               return $this->versionParser->parseConstraints( $constraint )
+                       ->matches( $this->coreVersion );
+       }
+}
index ca84a51..a286f6b 100644 (file)
@@ -192,6 +192,16 @@ class ExtensionProcessor implements Processor {
                );
        }
 
+       public function getRequirements( array $info ) {
+               $requirements = array();
+               $key = ExtensionRegistry::MEDIAWIKI_CORE;
+               if ( isset( $info['requires'][$key] ) ) {
+                       $requirements[$key] = $info['requires'][$key];
+               }
+
+               return $requirements;
+       }
+
        protected function extractHooks( array $info ) {
                if ( isset( $info['Hooks'] ) ) {
                        foreach ( $info['Hooks'] as $name => $value ) {
index f838103..23e29d8 100644 (file)
  */
 class ExtensionRegistry {
 
+       /**
+        * "requires" key that applies to MediaWiki core/$wgVersion
+        */
+       const MEDIAWIKI_CORE = 'MediaWiki';
+
        /**
         * Version of the highest supported manifest version
         */
@@ -156,8 +161,11 @@ class ExtensionRegistry {
         * @throws Exception
         */
        public function readFromQueue( array $queue ) {
+               global $wgVersion;
                $autoloadClasses = array();
                $processor = new ExtensionProcessor();
+               $incompatible = array();
+               $coreVersionParser = new CoreVersionChecker( $wgVersion );
                foreach ( $queue as $path => $mtime ) {
                        $json = file_get_contents( $path );
                        if ( $json === false ) {
@@ -179,8 +187,27 @@ class ExtensionRegistry {
                        // Set up the autoloader now so custom processors will work
                        $GLOBALS['wgAutoloadClasses'] += $autoload;
                        $autoloadClasses += $autoload;
+                       // Check any constraints against MediaWiki core
+                       $requires = $processor->getRequirements( $info );
+                       if ( isset( $requires[self::MEDIAWIKI_CORE] )
+                               && !$coreVersionParser->check( $requires[self::MEDIAWIKI_CORE] )
+                       ) {
+                               // Doesn't match, mark it as incompatible.
+                               $incompatible[] = "{$info['name']} is not compatible with the current "
+                                       . "MediaWiki core (version {$wgVersion}), it requires: ". $requires[self::MEDIAWIKI_CORE]
+                                       . '.';
+                               continue;
+                       }
+                       // Compatible, read and extract info
                        $processor->extractInfo( $path, $info, $version );
                }
+               if ( $incompatible ) {
+                       if ( count( $incompatible ) === 1 ) {
+                               throw new Exception( $incompatible[0] );
+                       } else {
+                               throw new Exception( implode( "\n", $incompatible ) );
+                       }
+               }
                $data = $processor->getExtractedInfo();
                // Need to set this so we can += to it later
                $data['globals']['wgAutoloadClasses'] = array();
@@ -225,7 +252,7 @@ class ExtensionRegistry {
                                        $GLOBALS[$key] = wfArrayPlus2d( $GLOBALS[$key], $val );
                                        break;
                                case 'array_plus':
-                                       $GLOBALS[$key] = $val + $GLOBALS[$key];
+                                       $GLOBALS[$key] += $val;
                                        break;
                                case 'array_merge':
                                        $GLOBALS[$key] = array_merge( $val, $GLOBALS[$key] );
index e1aaca7..e5669d2 100644 (file)
@@ -30,4 +30,14 @@ interface Processor {
         *              'attributes' - registration info which isn't a global variable
         */
        public function getExtractedInfo();
+
+       /**
+        * Get the requirements for the provided info
+        *
+        * @since 1.26
+        * @param array $info
+        * @return array Where keys are the name to have a constraint on,
+        *              like 'MediaWiki'. Values are a constraint string like "1.26.1".
+        */
+       public function getRequirements( array $info );
 }
index b8ec63b..1f48514 100644 (file)
@@ -283,8 +283,8 @@ class ResourceLoader implements LoggerAwareInterface {
                $this->register( include "$IP/resources/Resources.php" );
                $this->register( include "$IP/resources/ResourcesOOUI.php" );
                // Register extension modules
-               Hooks::run( 'ResourceLoaderRegisterModules', array( &$this ) );
                $this->register( $config->get( 'ResourceModules' ) );
+               Hooks::run( 'ResourceLoaderRegisterModules', array( &$this ) );
 
                if ( $config->get( 'EnableJavaScriptTest' ) === true ) {
                        $this->registerTestModules();
@@ -747,18 +747,18 @@ class ResourceLoader implements LoggerAwareInterface {
 
                if ( $context->getImageObj() && $this->errors ) {
                        // We can't show both the error messages and the response when it's an image.
-                       $errorText = '';
-                       foreach ( $this->errors as $error ) {
-                               $errorText .= $error . "\n";
-                       }
-                       $response = $errorText;
+                       $response = implode( "\n\n",  $this->errors );
                } elseif ( $this->errors ) {
-                       // Prepend comments indicating errors
-                       $errorText = '';
-                       foreach ( $this->errors as $error ) {
-                               $errorText .= self::makeComment( $error );
+                       $errorText = implode( "\n\n", $this->errors );
+                       $errorResponse = self::makeComment( $errorText );
+                       if ( $context->shouldIncludeScripts() ) {
+                               $errorResponse .= 'if (window.console && console.error) {'
+                                       . Xml::encodeJsCall( 'console.error', array( $errorText ) )
+                                       . "}\n";
                        }
-                       $response = $errorText . $response;
+
+                       // Prepend error info to the response
+                       $response = $errorResponse . $response;
                }
 
                $this->errors = array();
@@ -940,11 +940,11 @@ class ResourceLoader implements LoggerAwareInterface {
        protected static function formatExceptionNoComment( $e ) {
                global $wgShowExceptionDetails;
 
-               if ( $wgShowExceptionDetails ) {
-                       return $e->__toString();
-               } else {
-                       return wfMessage( 'internalerror' )->text();
+               if ( !$wgShowExceptionDetails ) {
+                       return 'Internal error';
                }
+
+               return $e->__toString();
        }
 
        /**
@@ -1011,7 +1011,7 @@ MESSAGE;
                                                        $out .= $scripts;
                                                } elseif ( is_array( $scripts ) ) {
                                                        // ...except when $scripts is an array of URLs
-                                                       $out .= self::makeLoaderImplementScript( $name, $scripts, array(), array() );
+                                                       $out .= self::makeLoaderImplementScript( $name, $scripts, array(), array(), array() );
                                                }
                                                break;
                                        case 'styles':
@@ -1485,7 +1485,7 @@ MESSAGE;
                $query = self::createLoaderQuery( $context, $extraQuery );
                $script = $this->getLoadScript( $source );
 
-               return wfExpandUrl( wfAppendQuery( $script, $query ), PROTO_RELATIVE );
+               return wfAppendQuery( $script, $query );
        }
 
        /**
@@ -1513,7 +1513,7 @@ MESSAGE;
                        $only, $printable, $handheld, $extraQuery
                );
 
-               return wfExpandUrl( wfAppendQuery( $wgLoadScript, $query ), PROTO_RELATIVE );
+               return wfAppendQuery( $wgLoadScript, $query );
        }
 
        /**
@@ -1608,24 +1608,23 @@ MESSAGE;
         * @param Config $config
         * @throws MWException
         * @since 1.22
-        * @return lessc
+        * @return Less_Parser
         */
        public static function getLessCompiler( Config $config ) {
                // When called from the installer, it is possible that a required PHP extension
                // is missing (at least for now; see bug 47564). If this is the case, throw an
                // exception (caught by the installer) to prevent a fatal error later on.
-               if ( !class_exists( 'lessc' ) ) {
-                       throw new MWException( 'MediaWiki requires the lessphp compiler' );
-               }
-               if ( !function_exists( 'ctype_digit' ) ) {
-                       throw new MWException( 'lessc requires the Ctype extension' );
+               if ( !class_exists( 'Less_Parser' ) ) {
+                       throw new MWException( 'MediaWiki requires the less.php parser' );
                }
 
-               $less = new lessc();
-               $less->setPreserveComments( true );
-               $less->setVariables( self::getLessVars( $config ) );
-               $less->setImportDir( $config->get( 'ResourceLoaderLESSImportPaths' ) );
-               return $less;
+               $parser = new Less_Parser;
+               $parser->ModifyVars( self::getLessVars( $config ) );
+               $parser->SetImportDirs( array_fill_keys( $config->get( 'ResourceLoaderLESSImportPaths' ), '' ) );
+               $parser->SetOption( 'relativeUrls', false );
+               $parser->SetCacheDir( $config->get( 'CacheDirectory' ) ?: wfTempDir() );
+
+               return $parser;
        }
 
        /**
index f3fae0e..da729fd 100644 (file)
@@ -56,7 +56,7 @@ class ResourceLoaderEditToolbarModule extends ResourceLoaderFileModule {
                // This is very conveniently formatted and we can pass it right through
                $vars = $language->getImageFiles();
 
-               // lessc tries to be helpful and parse our variables as LESS source code
+               // less.php tries to be helpful and parse our variables as LESS source code
                foreach ( $vars as $key => &$value ) {
                        $value = self::cssSerializeString( $value );
                }
@@ -78,11 +78,11 @@ class ResourceLoaderEditToolbarModule extends ResourceLoaderFileModule {
         *
         * @throws MWException
         * @param ResourceLoaderContext $context
-        * @return lessc
+        * @return Less_Parser
         */
        protected function getLessCompiler( ResourceLoaderContext $context = null ) {
-               $compiler = parent::getLessCompiler();
-               $compiler->setVariables( $this->getLessVars( $context ) );
-               return $compiler;
+               $parser = parent::getLessCompiler();
+               $parser->ModifyVars( $this->getLessVars( $context ) );
+               return $parser;
        }
 }
index 4a4a828..51118b1 100644 (file)
@@ -152,6 +152,12 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         */
        protected $localFileRefs = array();
 
+       /**
+        * @var array Place where readStyleFile() tracks file dependencies for non-existent files.
+        * Used in tests to detect missing dependencies.
+        */
+       protected $missingLocalFileRefs = array();
+
        /* Methods */
 
        /**
@@ -917,10 +923,14 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                $localDir = dirname( $localPath );
                $remoteDir = dirname( $remotePath );
                // Get and register local file references
-               $this->localFileRefs = array_merge(
-                       $this->localFileRefs,
-                       CSSMin::getLocalFileReferences( $style, $localDir )
-               );
+               $localFileRefs = CSSMin::getAllLocalFileReferences( $style, $localDir );
+               foreach ( $localFileRefs as $file ) {
+                       if ( file_exists( $file ) ) {
+                               $this->localFileRefs[] = $file;
+                       } else {
+                               $this->missingLocalFileRefs[] = $file;
+                       }
+               }
                return CSSMin::remap(
                        $style, $localDir, $remoteDir, true
                );
@@ -950,18 +960,50 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * Keeps track of all used files and adds them to localFileRefs.
         *
         * @since 1.22
-        * @throws Exception If lessc encounters a parse error
+        * @throws Exception If less.php encounters a parse error
         * @param string $fileName File path of LESS source
-        * @param lessc $compiler Compiler to use, if not default
+        * @param Less_Parser $parser Compiler to use, if not default
         * @return string CSS source
         */
        protected function compileLessFile( $fileName, $compiler = null ) {
+               static $cache;
+
+               if ( !$cache ) {
+                       $cache = ObjectCache::newAccelerator( CACHE_ANYTHING );
+               }
+
+               // Construct a cache key from the LESS file name and a hash digest
+               // of the LESS variables used for compilation.
+               $varsHash = hash( 'md4', serialize( ResourceLoader::getLessVars( $this->getConfig() ) ) );
+               $cacheKey = wfGlobalCacheKey( 'LESS', $fileName, $varsHash );
+               $cachedCompile = $cache->get( $cacheKey );
+
+               // If we got a cached value, we have to validate it by getting a
+               // checksum of all the files that were loaded by the parser and
+               // ensuring it matches the cached entry's.
+               if ( isset( $cachedCompile['hash'] ) ) {
+                       $contentHash = FileContentsHasher::getFileContentsHash( $cachedCompile['files'] );
+                       if ( $contentHash === $cachedCompile['hash'] ) {
+                               $this->localFileRefs += $cachedCompile['files'];
+                               return $cachedCompile['css'];
+                       }
+               }
+
                if ( !$compiler ) {
                        $compiler = $this->getLessCompiler();
                }
-               $result = $compiler->compileFile( $fileName );
-               $this->localFileRefs += array_keys( $compiler->allParsedFiles() );
-               return $result;
+
+               $css = $compiler->parseFile( $fileName )->getCss();
+               $files = $compiler->AllParsedFiles();
+               $this->localFileRefs = array_merge( $this->localFileRefs, $files );
+
+               $cache->set( $cacheKey, array(
+                       'css'   => $css,
+                       'files' => $files,
+                       'hash'  => FileContentsHasher::getFileContentsHash( $files ),
+               ), 60 * 60 * 24 );  // 86400 seconds, or 24 hours.
+
+               return $css;
        }
 
        /**
@@ -972,7 +1014,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * @param ResourceLoaderContext $context
         * @throws MWException
         * @since 1.24
-        * @return lessc
+        * @return Less_Parser
         */
        protected function getLessCompiler( ResourceLoaderContext $context = null ) {
                return ResourceLoader::getLessCompiler( $this->getConfig() );
index 1243f23..376b62c 100644 (file)
@@ -849,16 +849,14 @@ abstract class ResourceLoaderModule {
        }
 
        /**
-        * Safe version of sha1_file(), which doesn't throw a PHP warning if the file doesn't exist.
-        * Defaults to empty string.
+        * Compute a non-cryptographic string hash of a file's contents.
+        * If the file does not exist or cannot be read, returns an empty string.
         *
+        * @since 1.26 Uses MD4 instead of SHA1.
         * @param string $filePath File path
         * @return string Hash
         */
        protected static function safeFileHash( $filePath ) {
-               MediaWiki\suppressWarnings();
-               $hash = sha1_file( $filePath ) ?: '';
-               MediaWiki\restoreWarnings();
-               return $hash;
+               return FileContentsHasher::getFileContentsHash( $filePath );
        }
 }
index 837557c..7aac3b8 100644 (file)
@@ -251,7 +251,7 @@ abstract class RevDelList extends RevisionListBase {
                if ( !$field ) {
                        throw new MWException( "Bad log URL param type!" );
                }
-               // Put things hidden from sysops in the oversight log
+               // Put things hidden from sysops in the suppression log
                if ( ( $params['newBits'] | $params['oldBits'] ) & $this->getSuppressBit() ) {
                        $logType = 'suppress';
                } else {
index 0a05eef..8d18b0e 100644 (file)
@@ -60,6 +60,33 @@ class SearchResultSet {
                return null;
        }
 
+       /**
+        * Some search modes will run an alternative query that it thinks gives
+        * a better result than the provided search. Returns true if this has
+        * occured.
+        *
+        * @return bool
+        */
+       function hasRewrittenQuery() {
+               return false;
+       }
+
+       /**
+        * @return string|null The search the query was internally rewritten to,
+        *  or null when the result of the original query was returned.
+        */
+       function getQueryAfterRewrite() {
+               return null;
+       }
+
+       /**
+        * @return string|null Same as self::getQueryAfterRewrite(), but in HTML
+        *  and with changes highlighted. Null when the query was not rewritten.
+        */
+       function getQueryAfterRewriteSnippet() {
+               return null;
+       }
+
        /**
         * Some search modes return a suggested alternate term if there are
         * no exact hits. Returns true if there is one on this set.
index 53af3e7..4e6201c 100644 (file)
@@ -200,16 +200,15 @@ abstract class Skin extends ContextSource {
                );
 
                // Add various resources if required
-               if ( $wgUseAjax ) {
-                       if ( $wgEnableAPI ) {
-                               if ( $wgEnableWriteAPI && $wgAjaxWatch && $user->isLoggedIn()
-                                       && $user->isAllowed( 'writeapi' )
-                               ) {
-                                       $modules['watch'][] = 'mediawiki.page.watch.ajax';
-                               }
-
-                               $modules['search'][] = 'mediawiki.searchSuggest';
+               if ( $wgUseAjax && $wgEnableAPI ) {
+                       if ( $wgEnableWriteAPI && $wgAjaxWatch && $user->isLoggedIn()
+                               && $user->isAllowedAll( 'writeapi', 'viewmywatchlist', 'editmywatchlist' )
+                               && $this->getRelevantTitle()->canExist()
+                       ) {
+                               $modules['watch'][] = 'mediawiki.page.watch.ajax';
                        }
+
+                       $modules['search'][] = 'mediawiki.searchSuggest';
                }
 
                if ( $user->getBoolOption( 'editsectiononrightclick' ) ) {
@@ -238,8 +237,8 @@ abstract class Skin extends ContextSource {
                        $titles[] = $user->getTalkPage();
                }
 
-               // Other tab link
-               if ( $title->isSpecialPage() ) {
+               // Check, if the page can hold some kind of content, otherwise do nothing
+               if ( !$title->canExist() ) {
                        // nothing
                } elseif ( $title->isTalkPage() ) {
                        $titles[] = $title->getSubjectPage();
index e0f35c6..cd6cc76 100644 (file)
@@ -662,8 +662,8 @@ class SpecialBlock extends FormSpecialPage {
                if ( $data['HideUser'] ) {
                        if ( !$performer->isAllowed( 'hideuser' ) ) {
                                # this codepath is unreachable except by a malicious user spoofing forms,
-                               # or by race conditions (user has oversight and sysop, loads block form,
-                               # and is de-oversighted before submission); so need to fail completely
+                               # or by race conditions (user has hideuser and block rights, loads block form,
+                               # and loses hideuser rights before submission); so need to fail completely
                                # rather than just silently disable hiding
                                return array( 'badaccess-group0' );
                        }
@@ -787,7 +787,7 @@ class SpecialBlock extends FormSpecialPage {
                $logParams['5::duration'] = $data['Expiry'];
                $logParams['6::flags'] = self::blockLogFlags( $data, $type );
 
-               # Make log entry, if the name is hidden, put it in the oversight log
+               # Make log entry, if the name is hidden, put it in the suppression log
                $log_type = $data['HideUser'] ? 'suppress' : 'block';
                $logEntry = new ManualLogEntry( $log_type, $logaction );
                $logEntry->setTarget( Title::makeTitle( NS_USER, $target ) );
index c2aa704..22df04e 100644 (file)
@@ -160,6 +160,10 @@ class SpecialChangeEmail extends FormSpecialPage {
                        return Status::newFatal( 'invalidemailaddress' );
                }
 
+               if ( $newaddr === $user->getEmail() ) {
+                       return Status::newFatal( 'changeemail-nochange' );
+               }
+
                $throttleCount = LoginForm::incLoginThrottle( $user->getName() );
                if ( $throttleCount === true ) {
                        $lang = $this->getLanguage();
index f41a1f1..d2b2e70 100644 (file)
@@ -123,7 +123,7 @@ class SpecialEditTags extends UnlistedSpecialPage {
 
                // Either submit or create our form
                if ( $this->isAllowed && $this->submitClicked ) {
-                       $this->submit( $request );
+                       $this->submit();
                } else {
                        $this->showForm();
                }
@@ -349,20 +349,18 @@ class SpecialEditTags extends UnlistedSpecialPage {
        protected function getTagSelect( $selectedTags, $label ) {
                $result = array();
                $result[0] = Xml::label( $label, 'mw-edittags-tag-list' );
-               $result[1] = Xml::openElement( 'select', array(
-                       'name' => 'wpTagList[]',
-                       'id' => 'mw-edittags-tag-list',
-                       'multiple' => 'multiple',
-                       'size' => '8',
-               ) );
+
+               $select = new XmlSelect( 'wpTagList[]', 'mw-edittags-tag-list', $selectedTags );
+               $select->setAttribute( 'multiple', 'multiple' );
+               $select->setAttribute( 'size', '8' );
 
                $tags = ChangeTags::listExplicitlyDefinedTags();
                $tags = array_unique( array_merge( $tags, $selectedTags ) );
-               foreach ( $tags as $tag ) {
-                       $result[1] .= Xml::option( $tag, $tag, in_array( $tag, $selectedTags ) );
-               }
 
-               $result[1] .= Xml::closeElement( 'select' );
+               // Values of $tags are also used as <option> labels
+               $select->addOptions( array_combine( $tags, $tags ) );
+
+               $result[1] = $select->getHTML();
                return $result;
        }
 
index 1754471..92cb8bf 100644 (file)
@@ -369,7 +369,10 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                        if ( $data['CCMe'] && $to != $from ) {
                                $cc_subject = $context->msg( 'emailccsubject' )->rawParams(
                                        $target->getName(), $subject )->text();
+
+                               // target and sender are equal, because this is the CC for the sender
                                Hooks::run( 'EmailUserCC', array( &$from, &$from, &$cc_subject, &$text ) );
+
                                $ccStatus = UserMailer::send( $from, $from, $cc_subject, $text );
                                $status->merge( $ccStatus );
                        }
index 69b795d..39c4d77 100644 (file)
@@ -30,7 +30,6 @@
  */
 class SpecialExport extends SpecialPage {
        private $curonly, $doExport, $pageLinkDepth, $templates;
-       private $images;
 
        public function __construct() {
                parent::__construct( 'Export' );
@@ -46,7 +45,6 @@ class SpecialExport extends SpecialPage {
                $this->doExport = false;
                $request = $this->getRequest();
                $this->templates = $request->getCheck( 'templates' );
-               $this->images = $request->getCheck( 'images' ); // Doesn't do anything yet
                $this->pageLinkDepth = $this->validateLinkDepth(
                        $request->getIntOrNull( 'pagelink-depth' )
                );
@@ -279,13 +277,6 @@ class SpecialExport extends SpecialPage {
                }
 
                $formDescriptor += array(
-                       /* Enable this when we can do something useful exporting/importing image information.
-                       'images' => array(
-                               'type' => 'check',
-                               'name' => 'images',
-                               'id' => 'wpExportImages',
-                               'default' => false,
-                       ),*/
                        'wpDownload' => array(
                                'type' => 'check',
                                'name' =>'wpDownload',
@@ -359,11 +350,6 @@ class SpecialExport extends SpecialPage {
                                $pageSet = $this->getPageLinks( $inputPages, $pageSet, $linkDepth );
                        }
 
-                       // Enable this when we can do something useful exporting/importing image information.
-                       // if( $this->images ) ) {
-                       // $pageSet = $this->getImages( $inputPages, $pageSet );
-                       // }
-
                        $pages = array_keys( $pageSet );
 
                        // Normalize titles to the same format and remove dupes, see bug 17374
@@ -549,24 +535,6 @@ class SpecialExport extends SpecialPage {
                return $pageSet;
        }
 
-       /**
-        * Expand a list of pages to include images used in those pages.
-        *
-        * @param array $inputPages List of titles to look up
-        * @param array $pageSet Associative array indexed by titles for output
-        *
-        * @return array Associative array index by titles
-        */
-       private function getImages( $inputPages, $pageSet ) {
-               return $this->getLinks(
-                       $inputPages,
-                       $pageSet,
-                       'imagelinks',
-                       array( 'namespace' => NS_FILE, 'title' => 'il_to' ),
-                       array( 'page_id=il_from' )
-               );
-       }
-
        /**
         * Expand a list of pages to include items used in those pages.
         * @param array $inputPages Array of page titles
index 4cdf6dd..e2bc629 100644 (file)
@@ -42,6 +42,7 @@ class SpecialImport extends SpecialPage {
        private $history = true;
        private $includeTemplates = false;
        private $pageLinkDepth;
+       private $importSources;
 
        /**
         * Constructor
@@ -66,6 +67,9 @@ class SpecialImport extends SpecialPage {
 
                $this->getOutput()->addModules( 'mediawiki.special.import' );
 
+               $this->importSources = $this->getConfig()->get( 'ImportSources' );
+               Hooks::run( 'ImportSources', array( &$this->importSources ) );
+
                $user = $this->getUser();
                if ( !$user->isAllowedAny( 'import', 'importupload' ) ) {
                        throw new PermissionsError( 'import' );
@@ -136,16 +140,17 @@ class SpecialImport extends SpecialPage {
                        }
                        $this->interwiki = $this->fullInterwikiPrefix = $request->getVal( 'interwiki' );
                        // does this interwiki have subprojects?
-                       $importSources = $this->getConfig()->get( 'ImportSources' );
-                       $hasSubprojects = array_key_exists( $this->interwiki, $importSources );
-                       if ( !$hasSubprojects && !in_array( $this->interwiki, $importSources ) ) {
+                       $hasSubprojects = array_key_exists( $this->interwiki, $this->importSources );
+                       if ( !$hasSubprojects && !in_array( $this->interwiki, $this->importSources ) ) {
                                $source = Status::newFatal( "import-invalid-interwiki" );
                        } else {
                                if ( $hasSubprojects ) {
                                        $this->subproject = $request->getVal( 'subproject' );
                                        $this->fullInterwikiPrefix .= ':' . $request->getVal( 'subproject' );
                                }
-                               if ( $hasSubprojects && !in_array( $this->subproject, $importSources[$this->interwiki] ) ) {
+                               if ( $hasSubprojects &&
+                                       !in_array( $this->subproject, $this->importSources[$this->interwiki] )
+                               ) {
                                        $source = Status::newFatal( "import-invalid-interwiki" );
                                } else {
                                        $this->history = $request->getCheck( 'interwikiHistory' );
@@ -306,7 +311,6 @@ class SpecialImport extends SpecialPage {
                $user = $this->getUser();
                $out = $this->getOutput();
                $this->addHelpLink( '//meta.wikimedia.org/wiki/Special:MyLanguage/Help:Import', true );
-               $importSources = $this->getConfig()->get( 'ImportSources' );
 
                if ( $user->isAllowed( 'importupload' ) ) {
                        $mappingSelection = $this->getMappingFormPart( 'upload' );
@@ -356,12 +360,12 @@ class SpecialImport extends SpecialPage {
                                        Xml::closeElement( 'fieldset' )
                        );
                } else {
-                       if ( empty( $importSources ) ) {
+                       if ( empty( $this->importSources ) ) {
                                $out->addWikiMsg( 'importnosources' );
                        }
                }
 
-               if ( $user->isAllowed( 'import' ) && !empty( $importSources ) ) {
+               if ( $user->isAllowed( 'import' ) && !empty( $this->importSources ) ) {
                        # Show input field for import depth only if $wgExportMaxLinkDepth > 0
                        $importDepth = '';
                        if ( $this->getConfig()->get( 'ExportMaxLinkDepth' ) > 0 ) {
@@ -403,7 +407,7 @@ class SpecialImport extends SpecialPage {
                        );
 
                        $needSubprojectField = false;
-                       foreach ( $importSources as $key => $value ) {
+                       foreach ( $this->importSources as $key => $value ) {
                                if ( is_int( $key ) ) {
                                        $key = $value;
                                } elseif ( $value !== $key ) {
@@ -435,7 +439,7 @@ class SpecialImport extends SpecialPage {
                                );
 
                                $subprojectsToAdd = array();
-                               foreach ( $importSources as $key => $value ) {
+                               foreach ( $this->importSources as $key => $value ) {
                                        if ( is_array( $value ) ) {
                                                $subprojectsToAdd = array_merge( $subprojectsToAdd, $value );
                                        }
index eb8a274..8091f1b 100644 (file)
@@ -147,6 +147,7 @@ class MovePageForm extends UnlistedSpecialPage {
                $out = $this->getOutput();
                $out->setPageTitle( $this->msg( 'move-page', $this->oldTitle->getPrefixedText() ) );
                $out->addModules( 'mediawiki.special.movePage' );
+               $out->addModuleStyles( 'mediawiki.special.movePage.styles' );
                $this->addHelpLink( 'Help:Moving a page' );
 
                $newTitle = $this->newTitle;
@@ -290,7 +291,6 @@ class MovePageForm extends UnlistedSpecialPage {
                // is enforced in the mediawiki.special.movePage module
 
                $immovableNamespaces = array();
-
                foreach ( array_keys( $this->getLanguage()->getNamespaces() ) as $nsId ) {
                        if ( !MWNamespace::isMovable( $nsId ) ) {
                                $immovableNamespaces[] = $nsId;
@@ -299,202 +299,207 @@ class MovePageForm extends UnlistedSpecialPage {
 
                $handler = ContentHandler::getForTitle( $this->oldTitle );
 
-               $out->addHTML(
-                       Xml::openElement(
-                               'form',
-                               array(
-                                       'method' => 'post',
-                                       'action' => $this->getPageTitle()->getLocalURL( 'action=submit' ),
-                                       'id' => 'movepage'
-                               )
-                       ) .
-                       Xml::openElement( 'fieldset' ) .
-                       Xml::element( 'legend', null, $this->msg( 'move-page-legend' )->text() ) .
-                       Xml::openElement( 'table', array( 'id' => 'mw-movepage-table' ) )
+               $out->enableOOUI();
+               $fields = array();
+
+               $fields[] = new OOUI\FieldLayout(
+                       new OOUI\LabelWidget( array(
+                               'label' => new OOUI\HtmlSnippet( "<strong>$oldTitleLink</strong>" )
+                       ) ),
+                       array(
+                               'label' => $this->msg( 'movearticle' )->text(),
+                               'align' => 'top',
+                       )
                );
 
-               $out->addHTML(
-                       "<tr>
-                               <td class='mw-label'>" .
-                                       $this->msg( 'movearticle' )->escaped() .
-                               "</td>
-                               <td class='mw-input'>
-                                       <strong>{$oldTitleLink}</strong>
-                               </td>
-                       </tr>
-                       <tr>
-                               <td class='mw-label'>" .
-                                       Xml::label( $this->msg( 'newtitle' )->text(), 'wpNewTitleMain' ) .
-                               "</td>
-                               <td class='mw-input'>" .
-                                       Html::namespaceSelector(
-                                               array(
-                                                       'selected' => $newTitle->getNamespace(),
-                                                       'exclude' => $immovableNamespaces
-                                               ),
-                                               array( 'name' => 'wpNewTitleNs', 'id' => 'wpNewTitleNs' )
-                                       ) .
-                                       Xml::input(
-                                               'wpNewTitleMain',
-                                               60,
-                                               $wgContLang->recodeForEdit( $newTitle->getText() ),
-                                               array(
-                                                       'type' => 'text',
-                                                       'id' => 'wpNewTitleMain',
-                                                       'maxlength' => 255
-                                               )
-                                       ) .
-                                       Html::hidden( 'wpOldTitle', $this->oldTitle->getPrefixedText() ) .
-                               "</td>
-                       </tr>
-                       <tr>
-                               <td class='mw-label'>" .
-                                       Xml::label( $this->msg( 'movereason' )->text(), 'wpReason' ) .
-                               "</td>
-                               <td class='mw-input'>" .
-                                       Xml::input( 'wpReason', 60, $this->reason, array(
-                                               'type' => 'text',
-                                               'id' => 'wpReason',
-                                               'maxlength' => 200,
-                                       ) ) .
-                               "</td>
-                       </tr>"
+               $fields[] = new OOUI\FieldLayout(
+                       new MediaWiki\Widget\ComplexTitleInputWidget( array(
+                               'id' => 'wpNewTitle',
+                               'namespace' => array(
+                                       'id' => 'wpNewTitleNs',
+                                       'name' => 'wpNewTitleNs',
+                                       'value' => $newTitle->getNamespace(),
+                                       'exclude' => $immovableNamespaces,
+                               ),
+                               'title' => array(
+                                       'id' => 'wpNewTitleMain',
+                                       'name' => 'wpNewTitleMain',
+                                       'value' => $wgContLang->recodeForEdit( $newTitle->getText() ),
+                                       // Inappropriate, since we're expecting the user to input a non-existent page's title
+                                       'suggestions' => false,
+                               ),
+                               'infusable' => true,
+                       ) ),
+                       array(
+                               'label' => $this->msg( 'newtitle' )->text(),
+                               'align' => 'top',
+                       )
+               );
+
+               $fields[] = new OOUI\FieldLayout(
+                       new OOUI\TextInputWidget( array(
+                               'name' => 'wpReason',
+                               'id' => 'wpReason',
+                               'maxLength' => 200,
+                               'infusable' => true,
+                       ) ),
+                       array(
+                               'label' => $this->msg( 'movereason' )->text(),
+                               'align' => 'top',
+                       )
                );
 
                if ( $considerTalk ) {
-                       $out->addHTML( "
-                               <tr>
-                                       <td></td>
-                                       <td class='mw-input'>" .
-                                               Xml::checkLabel(
-                                                       $this->msg( 'movetalk' )->text(),
-                                                       'wpMovetalk',
-                                                       'wpMovetalk',
-                                                       $this->moveTalk
-                                               ) .
-                                       "</td>
-                               </tr>"
+                       $fields[] = new OOUI\FieldLayout(
+                               new OOUI\CheckboxInputWidget( array(
+                                       'name' => 'wpMovetalk',
+                                       'id' => 'wpMovetalk',
+                                       'value' => '1',
+                                       'selected' => $this->moveTalk,
+                               ) ),
+                               array(
+                                       'label' => $this->msg( 'movetalk' )->text(),
+                                       'align' => 'inline',
+                               )
                        );
                }
 
                if ( $user->isAllowed( 'suppressredirect' ) ) {
                        if ( $handler->supportsRedirects() ) {
                                $isChecked = $this->leaveRedirect;
-                               $options = array();
+                               $isDisabled = false;
                        } else {
                                $isChecked = false;
-                               $options = array(
-                                       'disabled' => 'disabled'
-                               );
+                               $isDisabled = true;
                        }
-                       $out->addHTML( "
-                               <tr>
-                                       <td></td>
-                                       <td class='mw-input'>" .
-                                               Xml::checkLabel(
-                                                       $this->msg( 'move-leave-redirect' )->text(),
-                                                       'wpLeaveRedirect',
-                                                       'wpLeaveRedirect',
-                                                       $isChecked,
-                                                       $options
-                                               ) .
-                                       "</td>
-                               </tr>"
+                       $fields[] = new OOUI\FieldLayout(
+                               new OOUI\CheckboxInputWidget( array(
+                                       'name' => 'wpLeaveRedirect',
+                                       'id' => 'wpLeaveRedirect',
+                                       'value' => '1',
+                                       'selected' => $isChecked,
+                                       'disabled' => $isDisabled,
+                               ) ),
+                               array(
+                                       'label' => $this->msg( 'move-leave-redirect' )->text(),
+                                       'align' => 'inline',
+                               )
                        );
                }
 
                if ( $hasRedirects ) {
-                       $out->addHTML( "
-                               <tr>
-                                       <td></td>
-                                       <td class='mw-input'>" .
-                                               Xml::checkLabel(
-                                                       $this->msg( 'fix-double-redirects' )->text(),
-                                                       'wpFixRedirects',
-                                                       'wpFixRedirects',
-                                                       $this->fixRedirects
-                                               ) .
-                                       "</td>
-                               </tr>"
+                       $fields[] = new OOUI\FieldLayout(
+                               new OOUI\CheckboxInputWidget( array(
+                                       'name' => 'wpFixRedirects',
+                                       'id' => 'wpFixRedirects',
+                                       'value' => '1',
+                                       'selected' => $this->fixRedirects,
+                               ) ),
+                               array(
+                                       'label' => $this->msg( 'fix-double-redirects' )->text(),
+                                       'align' => 'inline',
+                               )
                        );
                }
 
                if ( $canMoveSubpage ) {
                        $maximumMovedPages = $this->getConfig()->get( 'MaximumMovedPages' );
-                       $out->addHTML( "
-                               <tr>
-                                       <td></td>
-                                       <td class='mw-input'>" .
-                                               Xml::check(
-                                                       'wpMovesubpages',
-                                                       # Don't check the box if we only have talk subpages to
-                                                       # move and we aren't moving the talk page.
-                                                       $this->moveSubpages && ( $this->oldTitle->hasSubpages() || $this->moveTalk ),
-                                                       array( 'id' => 'wpMovesubpages' )
-                                               ) . '&#160;' .
-                                               Xml::tags(
-                                                       'label',
-                                                       array( 'for' => 'wpMovesubpages' ),
-                                                       $this->msg(
-                                                               ( $this->oldTitle->hasSubpages()
-                                                                       ? 'move-subpages'
-                                                                       : 'move-talk-subpages' )
-                                                       )->numParams( $maximumMovedPages )->params( $maximumMovedPages )->parse()
-                                               ) .
-                                       "</td>
-                               </tr>"
+                       $fields[] = new OOUI\FieldLayout(
+                               new OOUI\CheckboxInputWidget( array(
+                                       'name' => 'wpMovesubpages',
+                                       'id' => 'wpMovesubpages',
+                                       'value' => '1',
+                                       # Don't check the box if we only have talk subpages to
+                                       # move and we aren't moving the talk page.
+                                       'selected' => $this->moveSubpages && ( $this->oldTitle->hasSubpages() || $this->moveTalk ),
+                               ) ),
+                               array(
+                                       'label' => new OOUI\HtmlSnippet(
+                                               $this->msg(
+                                                       ( $this->oldTitle->hasSubpages()
+                                                               ? 'move-subpages'
+                                                               : 'move-talk-subpages' )
+                                               )->numParams( $maximumMovedPages )->params( $maximumMovedPages )->parse()
+                                       ),
+                                       'align' => 'inline',
+                               )
                        );
                }
 
-               $watchChecked = $user->isLoggedIn() && ( $this->watch || $user->getBoolOption( 'watchmoves' )
-                       || $user->isWatched( $this->oldTitle ) );
                # Don't allow watching if user is not logged in
                if ( $user->isLoggedIn() ) {
-                       $out->addHTML( "
-                               <tr>
-                                       <td></td>
-                                       <td class='mw-input'>" .
-                                               Xml::checkLabel(
-                                                       $this->msg( 'move-watch' )->text(),
-                                                       'wpWatch',
-                                                       'watch',
-                                                       $watchChecked
-                                               ) .
-                                       "</td>
-                               </tr>"
+                       $watchChecked = $user->isLoggedIn() && ( $this->watch || $user->getBoolOption( 'watchmoves' )
+                               || $user->isWatched( $this->oldTitle ) );
+                       $fields[] = new OOUI\FieldLayout(
+                               new OOUI\CheckboxInputWidget( array(
+                                       'name' => 'wpWatch',
+                                       'id' => 'watch', # ew
+                                       'value' => '1',
+                                       'selected' => $watchChecked,
+                               ) ),
+                               array(
+                                       'label' => $this->msg( 'move-watch' )->text(),
+                                       'align' => 'inline',
+                               )
                        );
                }
 
                if ( $confirm ) {
-                       $out->addHTML( "
-                               <tr>
-                                       <td></td>
-                                       <td class='mw-input'>" .
-                                               Xml::checkLabel(
-                                                       $this->msg( 'delete_and_move_confirm' )->text(),
-                                                       'wpConfirm',
-                                                       'wpConfirm'
-                                               ) .
-                                       "</td>
-                               </tr>"
+                       $watchChecked = $user->isLoggedIn() && ( $this->watch || $user->getBoolOption( 'watchmoves' )
+                               || $user->isWatched( $this->oldTitle ) );
+                       $fields[] = new OOUI\FieldLayout(
+                               new OOUI\CheckboxInputWidget( array(
+                                       'name' => 'wpConfirm',
+                                       'id' => 'wpConfirm',
+                                       'value' => '1',
+                               ) ),
+                               array(
+                                       'label' => $this->msg( 'delete_and_move_confirm' )->text(),
+                                       'align' => 'inline',
+                               )
                        );
                }
 
-               $out->addHTML( "
-                       <tr>
-                               <td></td>
-                               <td class='mw-submit'>" .
-                                       Xml::submitButton( $movepagebtn, array( 'name' => $submitVar ) ) .
-                               "</td>
-                       </tr>"
+               $fields[] = new OOUI\FieldLayout(
+                       new OOUI\ButtonInputWidget( array(
+                               'name' => $submitVar,
+                               'value' => $movepagebtn,
+                               'label' => $movepagebtn,
+                               'flags' => array( 'progressive', 'primary' ),
+                               'type' => 'submit',
+                       ) ),
+                       array(
+                               'align' => 'top',
+                       )
+               );
+
+               $fieldset = new OOUI\FieldsetLayout( array(
+                       'label' => $this->msg( 'move-page-legend' )->text(),
+                       'id' => 'mw-movepage-table',
+                       'items' => $fields,
+               ) );
+
+               $form = new OOUI\FormLayout( array(
+                       'method' => 'post',
+                       'action' => $this->getPageTitle()->getLocalURL( 'action=submit' ),
+                       'id' => 'movepage',
+               ) );
+               $form->appendContent(
+                       $fieldset,
+                       new OOUI\HtmlSnippet(
+                               Html::hidden( 'wpOldTitle', $this->oldTitle->getPrefixedText() ) .
+                               Html::hidden( 'wpEditToken', $user->getEditToken() )
+                       )
                );
 
                $out->addHTML(
-                       Xml::closeElement( 'table' ) .
-                       Html::hidden( 'wpEditToken', $user->getEditToken() ) .
-                       Xml::closeElement( 'fieldset' ) .
-                       Xml::closeElement( 'form' ) .
-                       "\n"
+                       new OOUI\PanelLayout( array(
+                               'classes' => array( 'movepage-wrapper' ),
+                               'expanded' => false,
+                               'padded' => true,
+                               'framed' => true,
+                               'content' => $form,
+                       ) )
                );
 
                $this->showLogFragment( $this->oldTitle );
index 251a8e0..c8d4aa6 100644 (file)
@@ -315,7 +315,7 @@ class SpecialNewpages extends IncludableSpecialPage {
                        array()
                );
 
-               $query = array( 'redirect' => 'no' );
+               $query = $title->isRedirect() ? array( 'redirect' => 'no' ) : array();
 
                // Linker::linkKnown() uses 'known' and 'noclasses' options.
                // This breaks the colouration for stubs.
index 26d0fe8..f211ec9 100644 (file)
@@ -113,9 +113,11 @@ class SpecialPagesWithProp extends QueryPage {
                                'pp_value',
                        ),
                        'conds' => array(
-                               'page_id = pp_page',
                                'pp_propname' => $this->propName,
                        ),
+                       'join_conds' => array(
+                               'page' => array( 'INNER JOIN', 'page_id = pp_page' )
+                       ),
                        'options' => array()
                );
        }
index 8cad616..9e72807 100644 (file)
@@ -271,7 +271,7 @@ class SpecialPasswordReset extends FormSpecialPage {
                        round( $this->getConfig()->get( 'NewPasswordExpiry' ) / 86400 )
                );
 
-               $title = $this->msg( 'passwordreset-emailtitle' );
+               $title = $this->msg( 'passwordreset-emailtitle' )->inLanguage( $userLanguage );
 
                $this->result = $firstUser->sendMail( $title->text(), $this->email->text() );
 
index af2dc94..06cad42 100644 (file)
@@ -216,6 +216,7 @@ class SpecialSearch extends SpecialPage {
                global $wgContLang;
 
                $search = $this->getSearchEngine();
+               $search->setFeatureData( 'rewrite', $this->runSuggestion );
                $search->setLimitOffset( $this->limit, $this->offset );
                $search->setNamespaces( $this->namespaces );
                $search->prefix = $this->mPrefix;
@@ -272,12 +273,8 @@ class SpecialSearch extends SpecialPage {
                // did you mean... suggestions
                $didYouMeanHtml = '';
                if ( $showSuggestion && $textMatches && !$textStatus ) {
-                       if ( $this->shouldRunSuggestedQuery( $textMatches ) ) {
-                               $newMatches = $search->searchText( $textMatches->getSuggestionQuery() );
-                               if ( $newMatches instanceof SearchResultSet && $newMatches->numRows() > 0 ) {
-                                       $didYouMeanHtml = $this->getDidYouMeanRewrittenHtml( $term, $textMatches );
-                                       $textMatches = $newMatches;
-                               }
+                       if ( $textMatches->hasRewrittenQuery() ) {
+                               $didYouMeanHtml = $this->getDidYouMeanRewrittenHtml( $term, $textMatches );
                        } elseif ( $textMatches->hasSuggestion() ) {
                                $didYouMeanHtml = $this->getDidYouMeanHtml( $textMatches );
                        }
@@ -369,14 +366,14 @@ class SpecialSearch extends SpecialPage {
                                $out->wrapWikiMsg( "==$1==\n", 'textmatches' );
                        }
 
-                       // show interwiki results if any
-                       if ( $textMatches->hasInterwikiResults() ) {
-                               $out->addHTML( $this->showInterwiki( $textMatches->getInterwikiResults(), $term ) );
-                       }
                        // show results
                        if ( $numTextMatches > 0 ) {
                                $out->addHTML( $this->showMatches( $textMatches ) );
                        }
+                       // show interwiki results if any
+                       if ( $textMatches->hasInterwikiResults() ) {
+                               $out->addHTML( $this->showInterwiki( $textMatches->getInterwikiResults(), $term ) );
+                       }
 
                        $textMatches->free();
                }
@@ -391,6 +388,7 @@ class SpecialSearch extends SpecialPage {
                        }
                }
 
+               $out->addHTML( '<div class="visualClear"></div>' );
                if ( $prevnext ) {
                        $out->addHTML( "<p class='mw-search-pager-bottom'>{$prevnext}</p>\n" );
                }
@@ -463,7 +461,7 @@ class SpecialSearch extends SpecialPage {
                // Showing results for '$rewritten'
                // Search instead for '$orig'
 
-               $params = array( 'search' => $textMatches->getSuggestionQuery() );
+               $params = array( 'search' => $textMatches->getQueryAfterRewrite() );
                if ( $this->fulltext != null ) {
                        $params['fulltext'] = $this->fulltext;
                }
@@ -471,7 +469,7 @@ class SpecialSearch extends SpecialPage {
 
                $rewritten = Linker::linkKnown(
                        $this->getPageTitle(),
-                       $textMatches->getSuggestionSnippet() ?: null,
+                       $textMatches->getQueryAfterRewriteSnippet() ?: null,
                        array(),
                        $stParams
                );
index eaa9007..cf3804e 100644 (file)
@@ -96,22 +96,14 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
                $includesCachedPages = false;
 
                foreach ( $groups as $group => $sortedPages ) {
-                       $total = count( $sortedPages );
-                       $middle = ceil( $total / 2 );
-                       $count = 0;
 
                        $out->wrapWikiMsg(
                                "<h2 class=\"mw-specialpagesgroup\" id=\"mw-specialpagesgroup-$group\">$1</h2>\n",
                                "specialpages-group-$group"
                        );
                        $out->addHTML(
-                               Html::openElement(
-                                       'table',
-                                       array( 'style' => 'width:100%;', 'class' => 'mw-specialpages-table' )
-                               ) . "\n" .
-                               Html::openElement( 'tr' ) . "\n" .
-                               Html::openElement( 'td', array( 'style' => 'width:30%;vertical-align:top' ) ) . "\n" .
-                               Html::openElement( 'ul' ) . "\n"
+                               Html::openElement( 'div', array( 'class' => 'mw-specialpages-list' ) )
+                               . '<ul>'
                        );
                        foreach ( $sortedPages as $desc => $specialpage ) {
                                list( $title, $restricted, $cached ) = $specialpage;
@@ -132,21 +124,10 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
                                                array( 'class' => implode( ' ', $pageClasses ) ),
                                                $link
                                        ) . "\n" );
-
-                               # Split up the larger groups
-                               $count++;
-                               if ( $total > 3 && $count == $middle ) {
-                                       $out->addHTML(
-                                               Html::closeElement( 'ul' ) . Html::closeElement( 'td' ) .
-                                               Html::element( 'td', array( 'style' => 'width:10%' ), '' ) .
-                                               Html::openElement( 'td', array( 'style' => 'width:30%' ) ) . Html::openElement( 'ul' ) . "\n"
-                                       );
-                               }
                        }
                        $out->addHTML(
-                               Html::closeElement( 'ul' ) . Html::closeElement( 'td' ) .
-                               Html::element( 'td', array( 'style' => 'width:30%' ), '' ) .
-                               Html::closeElement( 'tr' ) . Html::closeElement( 'table' ) . "\n"
+                               Html::closeElement( 'ul' ) .
+                               Html::closeElement( 'div' )
                        );
                }
 
index 0410ef0..21f1194 100644 (file)
@@ -674,7 +674,12 @@ class LoginForm extends SpecialPage {
                $u->setRealName( $this->mRealName );
                $u->setToken();
 
+               Hooks::run( 'LocalUserCreated', array( $u, $autocreate ) );
+               $oldUser = $u;
                $wgAuth->initUser( $u, $autocreate );
+               if ( $oldUser !== $u ) {
+                       wfWarn( get_class( $wgAuth ) . '::initUser() replaced the user object' );
+               }
 
                $u->saveSettings();
 
@@ -820,7 +825,12 @@ class LoginForm extends SpecialPage {
                        $retval = self::RESET_PASS;
                        $this->mAbortLoginErrorMsg = 'resetpass-expired';
                } else {
+                       Hooks::run( 'UserLoggedIn', array( $u ) );
+                       $oldUser = $u;
                        $wgAuth->updateUser( $u );
+                       if ( $oldUser !== $u ) {
+                               wfWarn( get_class( $wgAuth ) . '::updateUser() replaced the user object' );
+                       }
                        $wgUser = $u;
                        // This should set it for OutputPage and the Skin
                        // which is needed or the personal links will be
index 0158fdb..1ed392f 100644 (file)
@@ -269,11 +269,13 @@ class UserrightsPage extends SpecialPage {
                $user->invalidateCache();
 
                // update groups in external authentication database
+               Hooks::run( 'UserGroupsChanged', array( $user, $add, $remove, $this->getUser() ) );
                $wgAuth->updateExternalDBGroups( $user, $add, $remove );
 
                wfDebug( 'oldGroups: ' . print_r( $oldGroups, true ) . "\n" );
                wfDebug( 'newGroups: ' . print_r( $newGroups, true ) . "\n" );
-               Hooks::run( 'UserRights', array( &$user, $add, $remove ) );
+               // Deprecated in favor of UserGroupsChanged hook
+               Hooks::run( 'UserRights', array( &$user, $add, $remove ), '1.26' );
 
                if ( $newGroups != $oldGroups ) {
                        $this->addLogEntry( $user, $oldGroups, $newGroups, $reason );
index a4b9dd8..9e26f0f 100644 (file)
@@ -44,10 +44,7 @@ class WantedTemplatesPage extends WantedQueryPage {
                                'title' => 'tl_title',
                                'value' => 'COUNT(*)'
                        ),
-                       'conds' => array(
-                               'page_title IS NULL',
-                               'tl_namespace' => NS_TEMPLATE
-                       ),
+                       'conds' => array( 'page_title IS NULL' ),
                        'options' => array( 'GROUP BY' => array( 'tl_namespace', 'tl_title' ) ),
                        'join_conds' => array( 'page' => array( 'LEFT JOIN',
                                array( 'page_namespace = tl_namespace',
index 083f402..3f549d0 100644 (file)
@@ -86,4 +86,3 @@ class RaggettWrapper {
        }
 
 }
-?>
index b06b91e..30a85ae 100644 (file)
@@ -1706,24 +1706,21 @@ abstract class UploadBase {
         * Check if a user is the last uploader
         *
         * @param User $user
-        * @param string $img Image name
+        * @param File $img
         * @return bool
         */
-       public static function userCanReUpload( User $user, $img ) {
+       public static function userCanReUpload( User $user, File $img ) {
                if ( $user->isAllowed( 'reupload' ) ) {
                        return true; // non-conditional
-               }
-               if ( !$user->isAllowed( 'reupload-own' ) ) {
+               } elseif ( !$user->isAllowed( 'reupload-own' ) ) {
                        return false;
                }
-               if ( is_string( $img ) ) {
-                       $img = wfLocalFile( $img );
-               }
+
                if ( !( $img instanceof LocalFile ) ) {
                        return false;
                }
 
-               $img->load( File::READ_LATEST );
+               $img->load();
 
                return $user->getId() == $img->getUser( 'id' );
        }
index f578745..f897a79 100644 (file)
@@ -175,7 +175,6 @@ class UploadFromUrl extends UploadBase {
                $url = $request->getVal( 'wpUploadFileURL' );
 
                return !empty( $url )
-                       && Http::isValidURI( $url )
                        && $wgUser->isAllowed( 'upload_by_url' );
        }
 
diff --git a/includes/utils/AvroValidator.php b/includes/utils/AvroValidator.php
new file mode 100644 (file)
index 0000000..4f8e0b1
--- /dev/null
@@ -0,0 +1,184 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Generate error strings for data that doesn't match the specified
+ * Avro schema. This is very similar to AvroSchema::is_valid_datum(),
+ * but returns error messages instead of a boolean.
+ *
+ * @since 1.26
+ * @author Erik Bernhardson <ebernhardson@wikimedia.org>
+ * @copyright © 2015 Erik Bernhardson and Wikimedia Foundation.
+ */
+class AvroValidator {
+       /**
+        * @param AvroSchema $schema The rules to conform to.
+        * @param mixed $datum The value to validate against $schema.
+        * @return string|string[] An error or list of errors in the
+        *  provided $datum. When no errors exist the empty array is
+        *  returned.
+        */
+       public static function getErrors( AvroSchema $schema, $datum ) {
+               switch ( $schema->type) {
+               case AvroSchema::NULL_TYPE:
+                       if ( !is_null($datum) ) {
+                               return self::wrongType( 'null', $datum );
+                       }
+                       return array();
+               case AvroSchema::BOOLEAN_TYPE:
+                       if ( !is_bool($datum) ) {
+                               return self::wrongType( 'boolean', $datum );
+                       }
+                       return array();
+               case AvroSchema::STRING_TYPE:
+               case AvroSchema::BYTES_TYPE:
+                       if ( !is_string($datum) ) {
+                               return self::wrongType( 'string', $datum );
+                       }
+                       return array();
+               case AvroSchema::INT_TYPE:
+                       if ( !is_int($datum) ) {
+                               return self::wrongType( 'integer', $datum );
+                       }
+                       if ( AvroSchema::INT_MIN_VALUE > $datum
+                               || $datum > AvroSchema::INT_MAX_VALUE
+                       ) {
+                               return self::outOfRange(
+                                       AvroSchema::INT_MIN_VALUE,
+                                       AvroSchema::INT_MAX_VALUE,
+                                       $datum
+                               );
+                       }
+                       return array();
+               case AvroSchema::LONG_TYPE:
+                       if ( !is_int($datum) ) {
+                               return self::wrongType( 'integer', $datum );
+                       }
+                       if ( AvroSchema::LONG_MIN_VALUE > $datum
+                               || $datum > AvroSchema::LONG_MAX_VALUE
+                       ) {
+                               return self::outOfRange(
+                                       AvroSchema::LONG_MIN_VALUE,
+                                       AvroSchema::LONG_MAX_VALUE,
+                                       $datum
+                               );
+                       }
+                       return array();
+               case AvroSchema::FLOAT_TYPE:
+               case AvroSchema::DOUBLE_TYPE:
+                       if ( !is_float($datum) && !is_int($datum) ) {
+                               return self::wrongType( 'float or integer', $datum );
+                       }
+                       return array();
+               case AvroSchema::ARRAY_SCHEMA:
+                       if (!is_array($datum)) {
+                               return self::wrongType( 'array', $datum );
+                       }
+                       $errors = array();
+                       foreach ($datum as $d) {
+                               $result = $this->validate( $schema->items(), $d );
+                               if ( $result ) {
+                                       $errors[] = $result;
+                               }
+                       }
+                       if ( $errors ) {
+                               return $errors;
+                       }
+                       return array();
+               case AvroSchema::MAP_SCHEMA:
+                       if (!is_array($datum)) {
+                               return self::wrongType( 'array', $datum );
+                       }
+                       $errors = array();
+                       foreach ($datum as $k => $v) {
+                       if ( !is_string($k) ) {
+                                       $errors[] = self::wrongType( 'string key', $k );
+                               }
+                               $result = self::getErrors( $schema->values(), $v );
+                               if ( $result ) {
+                                       $errors[$k] = $result;
+                               }
+                       }
+                       return $errors;
+               case AvroSchema::UNION_SCHEMA:
+                       $errors = array();
+                       foreach ($schema->schemas() as $schema) {
+                               $result = self::getErrors( $schema, $datum );
+                               if ( !$result ) {
+                                       return array();
+                               }
+                               $errors[] = $result;
+                       }
+                       if ( $errors ) {
+                               return array( "Expected any one of these to be true", $errors );
+                       }
+                       return "No schemas provided to union";
+               case AvroSchema::ENUM_SCHEMA:
+                       if ( !in_array( $datum, $schema->symbols() ) ) {
+                               $symbols = implode( ', ', $schema->symbols );
+                               return "Expected one of $symbols but recieved $datum";
+                       }
+                       return array();
+               case AvroSchema::FIXED_SCHEMA:
+                       if ( !is_string( $datum ) ) {
+                               return self::wrongType( 'string', $datum );
+                       }
+                       $len = strlen( $datum );
+                       if ( $len !== $schema->size() ) {
+                               return "Expected string of length {$schema->size()}, "
+                                       . "but recieved one of length $len";
+                       }
+                       return array();
+               case AvroSchema::RECORD_SCHEMA:
+               case AvroSchema::ERROR_SCHEMA:
+               case AvroSchema::REQUEST_SCHEMA:
+                       if ( !is_array( $datum ) ) {
+                               return self::wrongType( 'array', $datum );
+                       }
+                       $errors = array();
+                       foreach ( $schema->fields() as $field ) {
+                               $name = $field->name();
+                               if ( !array_key_exists( $name, $datum ) ) {
+                                       $errors[$name] = 'Missing expected field';
+                                       continue;
+                               }
+                               $result = self::getErrors( $field->type(), $datum[$name] );
+                               if ( $result ) {
+                                       $errors[$name] = $result;
+                               }
+                       }
+                       return $errors;
+               default:
+                       return "Unknown avro schema type: {$schema->type}";
+               }
+       }
+
+       public static function typeOf( $datum ) {
+               return is_object( $datum ) ? get_class( $datum ) : gettype( $datum );
+       }
+
+       public static function wrongType( $expected, $datum ) {
+               return "Expected $expected, but recieved " . self::typeOf( $datum );
+       }
+
+       public static function outOfRange( $min, $max, $datum ) {
+               return "Expected value between $min and $max, but recieved $datum";
+       }
+}
diff --git a/includes/widget/ComplexTitleInputWidget.php b/includes/widget/ComplexTitleInputWidget.php
new file mode 100644 (file)
index 0000000..73ef54c
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+/**
+ * MediaWiki Widgets – ComplexTitleInputWidget class.
+ *
+ * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+namespace MediaWiki\Widget;
+
+/**
+ * Complex title input widget.
+ */
+class ComplexTitleInputWidget extends \OOUI\Widget {
+
+       protected $namespace = null;
+       protected $title = null;
+
+       /**
+        * Like TitleInputWidget, but the namespace has to be input through a separate dropdown field.
+        *
+        * @param array $config Configuration options
+        * @param array $config['namespace'] Configuration for the NamespaceInputWidget dropdown with list
+        *     of namespaces
+        * @param array $config['title'] Configuration for the TitleInputWidget text field
+        */
+       public function __construct( array $config = array() ) {
+               // Configuration initialization
+               $config = array_merge(
+                       array(
+                               'namespace' => array(),
+                               'title' => array(),
+                       ),
+                       $config
+               );
+
+               // Parent constructor
+               parent::__construct( $config );
+
+               // Properties
+               $this->config = $config;
+               $this->namespace = new NamespaceInputWidget( $config['namespace'] );
+               $this->title = new TitleInputWidget( array_merge(
+                       $config['title'],
+                       array(
+                               // The inner TitleInputWidget shouldn't be infusable, only the ComplexTitleInputWidget itself can be.
+                               'infusable' => false,
+                               'relative' => true,
+                               'namespace' => isset( $config['namespace']['value'] ) ? $config['namespace']['value'] : null,
+                       )
+               ) );
+
+               // Initialization
+               $this
+                       ->addClasses( array( 'mw-widget-complexTitleInputWidget' ) )
+                       ->appendContent( $this->namespace, $this->title );
+       }
+
+       protected function getJavaScriptClassName() {
+               return 'mw.widgets.ComplexTitleInputWidget';
+       }
+
+       public function getConfig( &$config ) {
+               $config['namespace'] = $this->config['namespace'];
+               $config['title'] = $this->config['title'];
+               return parent::getConfig( $config );
+       }
+}
index a99227e..696c8ad 100644 (file)
@@ -18,6 +18,7 @@ class NamespaceInputWidget extends \OOUI\DropdownInputWidget {
         * @param array $config Configuration options
         * @param string $config['includeAllValue'] If specified, add a "all namespaces" option to the
         *     namespace dropdown, and use this as the input value for it
+        * @param number[] $config['exclude'] List of namespace numbers to exclude from the selector
         */
        public function __construct( array $config = array() ) {
                // Configuration initialization
@@ -28,14 +29,17 @@ class NamespaceInputWidget extends \OOUI\DropdownInputWidget {
 
                // Properties
                $this->includeAllValue = isset( $config['includeAllValue'] ) ? $config['includeAllValue'] : null;
+               $this->exclude = isset( $config['exclude'] ) ? $config['exclude'] : array();
 
                // Initialization
                $this->addClasses( array( 'mw-widget-namespaceInputWidget' ) );
        }
 
        protected function getNamespaceDropdownOptions( array $config ) {
-               $namespaceOptionsParams = isset( $config['includeAllValue'] ) ?
-                       array( 'all' => $config['includeAllValue'] ) : array();
+               $namespaceOptionsParams = array(
+                       'all' => isset( $config['includeAllValue'] ) ? $config['includeAllValue'] : null,
+                       'exclude' => isset( $config['exclude'] ) ? $config['exclude'] : null
+               );
                $namespaceOptions = \Html::namespaceSelectorOptions( $namespaceOptionsParams );
 
                $options = array();
@@ -55,6 +59,7 @@ class NamespaceInputWidget extends \OOUI\DropdownInputWidget {
 
        public function getConfig( &$config ) {
                $config['includeAllValue'] = $this->includeAllValue;
+               $config['exclude'] = $this->exclude;
                // Skip DropdownInputWidget's getConfig(), we don't need 'options' config
                return \OOUI\InputWidget::getConfig( $config );
        }
index fef06bc..5bab69a 100644 (file)
        "passwordreset": "Atô keulayi lageuëm rahsia",
        "passwordreset-text-one": "Neupeuleungkap formulir nyoë keu meuatô keulayi narit rahsia",
        "passwordreset-text-many": "{{PLURAL:$1|Neupasoë saboh kutak dimeuyub nyoë keu neuteumèe narit rahsia siat rot e-surat}}",
-       "passwordreset-legend": "Atô keulayi lageuëm rahsia",
        "passwordreset-disabled": "Meuatô narit rahsia keulayi ka geupeumaté lam wiki nyoë",
        "passwordreset-emaildisabled": "Tanda e-surat ka geupeumaté lam wiki nyoë",
        "passwordreset-username": "Ureueng ngui:",
        "passwordreset-capture-help": "Meunyoë droëneuh neuceuë kutak nyoë, e-surat (ngon narit rahsia siat) ka geupeuleumah keudroëneuh ngon geukirém cit keu ureuëng ngui",
        "passwordreset-email": "Alamat surat-e:",
        "passwordreset-emailtitle": "Teuneurang nan ureueng ngui bak {{SITENAME}}",
-       "passwordreset-emailelement": "Nan ureuëng ngui: $1\nLageuëm rahsia sijamong: $2",
+       "passwordreset-emailelement": "Nan ureuëng ngui: \n$1\n\nLageuëm rahsia sijamong: \n$2",
        "changeemail": "Gantoe alamat surat-e",
        "changeemail-no-info": "Droeneuh suwah neutamöng mangat jeuet neu'eu laman nyoe",
        "changeemail-oldemail": "Alamat surat-e jinoe:",
        "emailuser": "Surat-e ureuëng ngui",
        "emailuser-title-target": "Peu'ét surat-e keu {{GENDER:$1|ureuëng ngui}} nyoë",
        "emailuser-title-notarget": "Peu'ét surat-e",
-       "emailpage": "Peu'ét surat-e keu ureuëng ngui",
        "emailusername": "Ureueng ngui:",
        "emailusernamesubmit": "Kirém",
        "email-legend": "Kirém surat-e keu ureueng ngui {{SITENAME}} la'én",
index 8cf83e5..2b6bd58 100644 (file)
        "cannotdelete": "НэкIубгъоу е файлэу \"$1\" тегъэкIын лъэкIыгъэп.\nПэмыкI нэбгырэм тыригъэкIыгъахэн фае.",
        "cannotdelete-title": "НэкIубгъоу \"$1\" тегъэкIыгъэн лъэкIырэп",
        "badtitle": "ЦӀэ дэгъуэп",
+       "badtitletext": "УзкIэупчIэрэ нэкIубгъом ыцIэр къуанчэ, е нэкIы, е бзэзэпыщэ е интервики гъэнэфагъэп.\nМыхъущт символ агъэфедагъэнкIи мэхъу.",
        "viewsource": "Еплъ лъапсэм",
        "viewsource-title": "Еплъ лъапсэм $1 пае",
        "protectedpagetext": "ЕIэзэнхэм ыкIи нэмыкI шIэнмэ яягъэ къэмыкIынэу мы нэкIубгъор ухъумагъэу щыт.",
        "passwordreset-capture": "Къэхъурэ емэйлым уеплъыщта?",
        "passwordreset-email": "Емэйл адрес:",
        "passwordreset-emailtitle": "Аккаунт и гъэпсыкIэхэр, мий щыI {{SITENAME}}",
-       "passwordreset-emailelement": "НэбгырацIэ: $1\nTemporary password: $2",
+       "passwordreset-emailelement": "НэбгырацIэ: \n$1\n\nTemporary password: \n$2",
        "passwordreset-emailsent": "ШъэфгущыIэм и зэтедзым пае емэйл агъэхьыгъ.",
        "passwordreset-emailsent-capture": "ШъэфгущыIэм изэтедз фэгъэхьыгъэ емэйлыр гъахьыгъэ, ычIэгъкIэ ар олъэгъу.",
        "changeemail": "Зэблэхъу емэйл адресыр",
        "loginreqlink": "системэм хахь",
        "accmailtitle": "ШъэфгущыIэр агъэхьыгъ",
        "newarticle": "(КIэ)",
+       "newarticletext": "ЩымыIэ нэкIубгъом уекIугъ зэпыщэмкIэ.\nНэкIубгъор ебгъэжьэным пае ычIэгъ щыт плIэмыем зыгорэ итх (еплъ [$1 IэпыIэгъу нэкIубгъом] нахьыбэу пшIэным пае).\nУмышIахэу мыщ укъэкIуагъэмэ, уи броузерым и <strong>зэкIакIо</strong> кнопкэм теIункI.",
        "noarticletext": "Текст пари итыгоп мы нэкIубгъом.\n[[Special:Search/{{PAGENAME}}|Мы нэкIубгъом ыцIэ улъыхъун]] плъэкIыщт нэмыкI нэкIубгъомэ,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ехьылIэгъэ журналхэм къащыбгъотын],\nе [{{fullurl:{{FULLPAGENAME}}|action=edit}} мы нэкIубгъом уеIэзэн]</span>.",
        "noarticletext-nopermission": "Текст пари итыгоп мы нэкIубгъом.\n[[Special:Search/{{PAGENAME}}|Мы нэкIубгъом ыцIэ улъыхъун]] плъэкIыщт нэмыкI нэкIубгъомэ, е\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ехьылIэгъэ журналхэм къащыбгъотын]</span>. Ау мы нэкIубгъор уублэнэу фитыныгъэ уиIэп.",
        "userpage-userdoesnotexist-view": "Аккаунтэу \"$1\" регистрацие ыкIугъэп.",
        "compareselectedversions": "Хэгъэщыгъэ версиехэр зэгъапш",
        "editundo": "зэкӀэгъэкӀожь",
        "diff-empty": "(зэфэмыдэ яIэп)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Зы гурыт версие горэ|$1 гурыт версиехэр}} зы нэбгырэм иеу къэгъэлъэгъуагъэп)",
        "searchresults": "Къэгъотынэу хъугъэр",
        "searchresults-title": "$1-м пае къэгъот",
        "prevn": "ыпэ {{PLURAL:$1|$1}}",
        "whatlinkshere-next": "{{PLURAL:$1|кӀэлъыкӀорэр|кӀэлъыкӀорэ $1}}",
        "whatlinkshere-links": "← зэпыщэхэр",
        "whatlinkshere-hideredirs": "$1 гъэкӀожьын",
+       "whatlinkshere-hidetrans": "$1 хэлъхьаныгъэ",
        "whatlinkshere-hidelinks": "$1 зэпыщ",
        "whatlinkshere-filters": "Филтрэхэр",
        "ipaddressorusername": "IP-адрес е нэбгырацIэ:",
        "tooltip-t-permalink": "Мы нэкӀубгъом къакIорэ зэмыхъокӀ зэпыщ",
        "tooltip-ca-nstab-main": "КӀоцӀытхагъэм еплъ",
        "tooltip-ca-nstab-user": "ЦӀыфым итхьапэ еплъ",
-       "tooltip-ca-nstab-special": "Мы нэкӀубгъор шъхьафы, зыцэ хэптхэжьынэу щытэп",
+       "tooltip-ca-nstab-special": "Мы нэкӀубгъор шъхьафы, зыцэ хэптхэжьын хъущтэп",
        "tooltip-ca-nstab-project": "Проектым и нэкӀубгъу",
        "tooltip-ca-nstab-image": "Тхьапэм и файл еплъ",
        "tooltip-ca-nstab-mediawiki": "Систем мессаджым еплъ",
        "previousdiff": "← ЫпэкъэкӀорэ еӀэзэн",
        "nextdiff": "Нахь еӀэзэныгъакӀ →",
        "file-info-size": "Пиксел $1 × $2, файлым иинагъэ: $3, MIME-тип: $4",
+       "file-nohires": "Нахь зэхэщыкIэ ин щыIэп.",
        "svg-long-desc": "SVG файл, номиналэу $1 × $2 пиксел, файлым иинагъэ: $3",
        "show-big-image": "Оригинал файлыр",
        "show-big-image-preview": "Мыщ и ыпэтеплъэм иинагъэр: $1.",
        "exif-orientation-1": "Тэрэз",
        "namespacesall": "зэкӀэ",
        "monthsall": "зэкӀэ",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|тегущыIэныр]])",
        "fileduplicatesearch-submit": "Лъыхъу",
        "specialpages": "ЯӀамышӀыкӀ нэкӀубгъохэр",
        "specialpages-group-login": "Къыхахь / аккаунт къэубл",
index b72324c..906ef0c 100644 (file)
        "passwordreset-emailtitle": "تفاصيل حساب {{SITENAME}}",
        "passwordreset-emailtext-ip": "احد ما (قد يكون انت$1)طلب مذكرة تفاصيل الحساب ل{{SITENAME}} ($4).المستخدم الاتي {{PLURAL:$3|الحساب هو|الحسابات هي}} قد قرن بهذا العنوان :\n\n$2\n\n{{PLURAL:$3|كلمة المرور المؤقتة|كلمات المرور المؤقة}}سينتهي في {{PLURAL:$5|يوم|ايام$5 }}\nمن الافضل ان تسجل الدخول وتختار كلمة مرور جديدة الان .\nإذا قام شخص آخر بهذا الطلب، أو إذا  تذكرت كلمة المرور الأصلية الخاصة بك،ولم تعد ترغب في تغييره، يمكنك تجاهل هذه الرسالة ومتابعة استخدام  كلمة المرورالقديمة.",
        "passwordreset-emailtext-user": "احد ما (قد يكون انت$1)طلب مذكرة تفاصيل الحساب ل{{SITENAME}} ($4).المستخدم الاتي {{PLURAL:$3|الحساب هو|الحسابات هي}} قد قرن بهذا العنوان :\n\n$2\n\n{{PLURAL:$3|كلمة المرور المؤقتة|كلمات المرور المؤقة}}سينتهي في {{PLURAL:$5|يوم|ايام$5 }}\nمن الافضل ان تسجل الدخول وتختار كلمة مرور جديدة الان .\nإذا قام شخص آخر بهذا الطلب، أو إذا  تذكرت كلمة المرور الأصلية الخاصة بك،ولم تعد ترغب في تغييره، يمكنك تجاهل هذه الرسالة ومتابعة استخدام  كلمة المرورالقديمة.",
-       "passwordreset-emailelement": "اسم المستخدم: $1\nكلمة السر المؤقتة: $2",
+       "passwordreset-emailelement": "اسم المستخدم: \n$1\n\nكلمة السر المؤقتة: \n$2",
        "passwordreset-emailsent": "أرسل بريد إلكتروني تذكيري",
        "passwordreset-emailsent-capture": "أرسل بريد إلكتروني تذكيري وهو معروض بالأسفل.",
        "passwordreset-emailerror-capture": "ولّد بريد إلكتروني تذكيري وهو معروض بالأسفل لكن فشل إرساله للمستخدم: $1",
index f31a36e..f2ee892 100644 (file)
        "passwordreset-emailtitle": "Gebruiker se details op {{site name}}",
        "passwordreset-emailtext-ip": "Iemand, waarskynlik u vanaf die IP-adres $1, het u gebruikersgegewens vir {{SITENAME}} ($4) opgevra.\nDie volgende {{PLURAL:$3|gebruiker is|gebruikers is}} aan die e-posadres gekoppel:\n\n$2\n\n{{PLURAL:$3|Die tydelike wagwoord verval|Hierdie tydelike wagwoorde verval}} oor {{PLURAL:$5|een dag|$5 dae}}.\nMeld asseblief nou aan en wysig u wagwoord. As u dit nie versoek het nie, of as u die oorspronklike wagwoord nog ken en dit nie wil verander nie, ignoreer die berig en hou aan om u ou wagwoord te gebruik.",
        "passwordreset-emailtext-user": "Gebruiker $1 op die webtuiste {{SITENAME}} het u gebruikersgegewens vir {{SITENAME}} ($4) opgevra.\nDie volgende {{PLURAL:$3|gebruiker is|gebruikers is}} aan die e-posadres gekoppel:\n\n$2\n\n{{PLURAL:$3|Die tydelike wagwoord verval|Hierdie tydelike wagwoorde verval}} oor {{PLURAL:$5|een dag|$5 dae}}.\nMeld asseblief aan en verander u wagwoord nou. As u dit nie versoek het nie, of as u die oorspronklike wagwoord nog ken en dit nie wil verander nie, ignoreer die berig en hou aan om u ou wagwoord te gebruik.",
-       "passwordreset-emailelement": "Gebruikersnaam: $1\nTydelike wagwoord: $2",
+       "passwordreset-emailelement": "Gebruikersnaam: \n$1\n\nTydelike wagwoord: \n$2",
        "passwordreset-emailsent": "'n E-pos is gestuur om u wagwoord te herstel.",
        "passwordreset-emailsent-capture": "'n E-pos vir die herstel van 'n wagwoord is gestuur. Dit word hieronder vertoon.",
        "passwordreset-emailerror-capture": "'n E-pos vir die herstel van 'n wagwoord is saamgestel. Dit word hieronder vertoon. Die uitstuur daarvan na die {{GENDER:$2|gebruiker}} het egter gefaal: $1",
        "invalid-content-data": "Ongeldige inhoud",
        "content-not-allowed-here": "\"$1\" word nie op bladsy [[$2]] toegelaat nie.",
        "editwarning-warning": "As u hierdie bladsy verlaat, verloor u moontlik al die wysigings wat u aangebring het.\nIndien u aangemeld is, kan u hierdie waarskuwing in die \"Wysigings\"-afdeling van u voorkeure afskakel.",
+       "editpage-notsupportedcontentformat-title": "Inhoudsformaat word nie ondersteun nie",
        "content-model-wikitext": "Wikiteks",
        "content-model-text": "eenvoudige teks",
        "content-model-javascript": "JavaScript",
        "upload-too-many-redirects": "Die URL bevat te veel aansture",
        "upload-http-error": "'n HTTP-fout het voorgekom: $1",
        "upload-copy-upload-invalid-domain": "Gekopieerde oplaaie word nie vanuit die domein toegelaat nie.",
+       "upload-dialog-title": "Laai lêer op",
+       "upload-dialog-error": "'n Fout het voorgekom",
+       "upload-dialog-warning": "'n Waarskuwing is uitgereik",
+       "upload-dialog-button-cancel": "Kanselleer",
+       "upload-dialog-button-done": "Gedoen",
+       "upload-dialog-button-save": "Stoor",
+       "upload-dialog-button-upload": "Oplaai",
+       "upload-dialog-label-select-file": "Kies lêer",
+       "upload-dialog-label-infoform-title": "Details",
+       "upload-dialog-label-infoform-name": "Naam",
+       "upload-dialog-label-infoform-description": "Beskrywing",
+       "upload-dialog-label-usage-title": "Gebruik",
+       "upload-dialog-label-usage-filename": "Lêernaam",
        "backend-fail-stream": "Kon nie die lêer $1 uitstroom nie.",
        "backend-fail-backup": "Kon nie 'n rugsteunkopie van die lêer $1 maak nie.",
        "backend-fail-notexists": "Die lêer $1 bestaan nie.",
        "pager-older-n": "{{PLURAL:$1|ouer 1|ouer $1}}",
        "suppress": "Toesig",
        "querypage-disabled": "Hierdie spesiale bladsy is afgeskakel om werkverrigting te verbeter (bediener is oorlaai).",
+       "apihelp-no-such-module": "Module \"$1\" nie gevind nie.",
        "booksources": "Boekbronne",
        "booksources-search-legend": "Soek vir boekbronne",
        "booksources-search": "Soek",
        "rollback-success": "Wysigings deur $1 is teruggerol.\nDie laaste weergawe van $2 is teruggeplaas.",
        "sessionfailure-title": "Sessie het gefaal",
        "sessionfailure": "Dit lyk of daar 'n probleem met u sessie is.\nHierdie aksie is gekanselleer omdat dit 'n veiligheidsrisiko is (moontlike kaping van u sessie).\nGaan een bladsy terug, herlaai die bladsy en probeer dan weer.",
+       "changecontentmodel-reason-label": "Rede:",
        "protectlogpage": "Beskermingboekstaaf",
        "protectlogtext": "Hieronder is 'n lys van veranderinge wat aan die beveilig van bladsye aangebring is.\nSien die [[Special:ProtectedPages|lys van beveiligde bladsye]] vir alle bladsye wat tans operasioneel beveilig is.",
        "protectedarticle": "het [[$1]] beskerm",
        "tooltip-ca-nstab-main": "Bekyk die inhoudbladsy",
        "tooltip-ca-nstab-user": "Bekyk die gebruikerbladsy",
        "tooltip-ca-nstab-media": "Bekyk die mediabladsy",
-       "tooltip-ca-nstab-special": "Hierdie is 'n spesiale bladsy; u kan dit nie wysig nie",
+       "tooltip-ca-nstab-special": "Hierdie is 'n spesiale bladsy wat nie wysig kan word nie",
        "tooltip-ca-nstab-project": "Bekyk die projekbladsy",
        "tooltip-ca-nstab-image": "Bekyk die lêerbladsy",
        "tooltip-ca-nstab-mediawiki": "Bekyk die stelselboodskap",
        "version-entrypoints-header-url": "URL",
        "version-libraries-library": "Biblioteek",
        "version-libraries-version": "Weergawe",
+       "version-libraries-license": "Lisensie",
+       "version-libraries-description": "Beskrywing",
+       "version-libraries-authors": "Outeurs",
        "redirect": "Aanstuur volgens lêer, gebruiker, bladsy of weergawenommer",
        "redirect-legend": "Aanstuur na 'n lêer of bladsy",
        "redirect-summary": "Hierdie spesiale bladsy stuur aan na 'n lêer (as 'n lêernaam verskaf word), 'n bladsy (as 'n weergawe-nommer verskaf word) of 'n gebruikersblad (as 'n gebruiker-ID verskaf word).",
        "tags-tag": "Etiketnaam",
        "tags-display-header": "Weergawe in wysigingslyste",
        "tags-description-header": "Volledige beskrywing van betekenis",
+       "tags-source-header": "Bron",
        "tags-active-header": "Aktief?",
        "tags-hitcount-header": "Geëtiketteerde veranderings",
+       "tags-actions-header": "Aksies",
        "tags-active-yes": "Ja",
        "tags-active-no": "Nee",
+       "tags-source-none": "Nie meer in gebruik nie",
        "tags-edit": "wysig",
+       "tags-delete": "skrap",
+       "tags-activate": "aktiveer",
+       "tags-deactivate": "deaktiveer",
        "tags-hitcount": "$1 {{PLURAL:$1|wysiging|wysigings}}",
+       "tags-create-reason": "Rede:",
+       "tags-create-submit": "Skep",
+       "tags-delete-reason": "Rede:",
+       "tags-activate-reason": "Rede:",
+       "tags-activate-submit": "Aktiveer",
+       "tags-deactivate-reason": "Rede:",
+       "tags-edit-existing-tags-none": "''Geen''",
+       "tags-edit-reason": "Rede:",
        "comparepages": "Vergelyk bladsye",
        "compare-page1": "Bladsy 1",
        "compare-page2": "Bladsy 2",
        "rightsnone": "(geen)",
        "revdelete-summary": "redigeringsopsomming",
        "feedback-adding": "U terugvoer word op die bladsy geplaas...",
+       "feedback-back": "Terug",
        "feedback-bugcheck": "Gaaf! Kontroleer of dit nie dalk een van die [$1 bekende foute] is nie.",
        "feedback-bugnew": "Ek het gekontroleer. Rapporteer 'n nuwe fout.",
        "feedback-bugornote": "As u reg is om 'n tegniese probleem in detail te beskryf, [$1 rapporteer 'n fout].\nAnders kan u die eenvoudige vorm hieronder gebruik. U kommentaar sal by die bladsy \"[$3 $2]\", saam met u gebruikersnaam en die webblaaier wat u gebruik gevoeg word.",
        "feedback-subject": "Onderwerp:",
        "feedback-submit": "Dien in",
        "feedback-thanks": "Dankie! U terugvoer is op die bladsy \"[$2 $1]\" geplaas.",
+       "feedback-thanks-title": "Baie dankie!",
        "searchsuggest-search": "Soek",
        "searchsuggest-containing": "bevat...",
        "api-error-badaccess-groups": "U word nie toegelaat om lêers te laai op hierdie wiki.",
        "api-error-copyuploaddisabled": "Oplaai via URL is gedeaktiveer op hierdie bediener.",
        "api-error-duplicate": "Daar {{PLURAL:$1|is al [$2 'n lêer]|is al [$2 lêers]}} met dieselfde inhoud op die wiki.",
        "api-error-duplicate-archive": "Daar {{PLURAL:$1|was [$2 'n ander lêer]|was [$2 ander lêers]}} op hierdie webtuiste met dieselfde inhoud, maar {{PLURAL:$1|dit is|dit is}} geskrap.",
-       "api-error-duplicate-archive-popup-title": "Duplikaat{{PLURAL:$1|lêer|lêers}} wat al verwyder is.",
-       "api-error-duplicate-popup-title": "Duplikaat{{PLURAL:$1|lêer|lêers}}",
        "api-error-empty-file": "Die lêer wat u probeer oplaai is leeg.",
        "api-error-emptypage": "Die skep van leë nuwe bladsye word nie toegelaat nie.",
        "api-error-fetchfileerror": "Interne fout: Iets het verkeerd gegaan met die haal van die lêer.",
        "mediastatistics-header-executable": "Uitvoerbare lêers",
        "mediastatistics-header-archive": "Gekompakteerde lêers",
        "json-error-syntax": "Sintaksfout",
+       "headline-anchor-title": "Skakel na die afdeling",
        "special-characters-group-latin": "Latyns",
        "special-characters-group-latinextended": "Latyns uitgebreid",
        "special-characters-group-ipa": "IFA",
        "special-characters-group-thai": "Thai",
        "special-characters-group-lao": "Lao",
        "special-characters-group-khmer": "Khmer",
+       "mw-widgets-dateinput-no-date": "Geen datum gekies nie",
        "mw-widgets-dateinput-placeholder-day": "JJJJ-MM-DD",
-       "mw-widgets-dateinput-placeholder-month": "JJJJ-MM"
+       "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
+       "mw-widgets-titleinput-description-new-page": "bladsy bestaan nog nie",
+       "mw-widgets-titleinput-description-redirect": "aanstuur na $1"
 }
index 5716334..8818f13 100644 (file)
        "resetpass-wrong-oldpass": "ጊዜያዊው ወይም ያሁኑኑ መግቢያ ቃል አይስማማም።\nምናልባት መግቢያ ቃልዎን መቀይሩ ተከናወነ፣ ወይም አዲስ ጊዜያዊ መግቢያ ቃልን ጠየቁ።",
        "resetpass-temp-password": "ኅላፊ (ጊዜያዊ) መግቢያ ቃል፦",
        "passwordreset": "መግቢያ ቃል መቀይር",
-       "passwordreset-legend": "መግቢያ ቃልዎን ለመቀይር",
        "passwordreset-disabled": "በዚሁ ዊኪ መግቢያ ቃል መቀይር አልተቻለም",
        "passwordreset-username": "የብዕር ስም:",
        "passwordreset-email": "የኢ-ሜል አድራሻ:",
-       "passwordreset-emailelement": "የአባል ስም፦ $1\nጊዜያዊ መግቢያ ቃል፦ $2",
+       "passwordreset-emailelement": "የአባል ስም፦ \n$1\n\nጊዜያዊ መግቢያ ቃል፦ \n$2",
        "passwordreset-emailsent": "የማስታወሻ ኢ-ሜል ተልኳል።",
        "passwordreset-emailsent-capture": "የማስታወሻ ኢ-ሜል ተልኳል፤ ከዚህም ታች ይታያል።",
        "passwordreset-emailerror-capture": "የማስታወሻ ኢ-ሜል ተልኳል፤ ከዚህም ታች ይታያል፤ ነገር ግን ወደ ተጠቃሚው ለመላክ ስንል አልተከናወነም፡",
        "nlinks": "$1 መያያዣዎች",
        "nmembers": "$1 {{PLURAL:$1|መጣጥፍ|መጣጥፎች}}",
        "nrevisions": "$1 ለውጦች",
-       "nviews": "$1 {{PLURAL:$1|ዕይታ|ዕይታዎች}}",
        "nimagelinks": "በ$1 {{PLURAL:$1|ገጽ|ገጾች}} ላይ ይጠቀማል።",
        "ntransclusions": "በ$1 {{PLURAL:$1|ገጽ|ገጾች}} ይጠቀማል።",
        "specialpage-empty": "(ይህ ገጽ ባዶ ነው።)",
        "emailuser": "ለዚህ/ች ሰው ኢሜል መላክ",
        "emailuser-title-target": "{{GENDER:$1|ለዚህ|ለዚች}} አባል ኢ-ሜል መላክ",
        "emailuser-title-notarget": "ወደ አባል ኢ-ሜል ለመላክ",
-       "emailpage": "ወደዚህ/ች አባል ኢ-ሜል ለመላክ",
        "emailpagetext": "አባሉ በሳቸው «ምርጫዎች» ክፍል ተግባራዊ ኢ-ሜል አድራሻ ያስገቡ እንደሆነ፣ ከታች ያለው ማመልከቻ አንድን ደብዳቤ በቀጥታ ይልካቸዋል።\n\nተቀባዩም መልስ በቀጥታ ሊሰጡዎ እንዲችሉ፣ በእርስዎ «ምርጫዎች» ክፍል ያስገቡት ኢ-ሜል አድራሻ በደብዳቤዎ «From:» መስመር ይታይላቸዋል።",
        "defemailsubject": "{{SITENAME}} Email / ኢ-ሜል",
        "usermaildisabledtext": "በዚሁ ዊኪ ኢ-ሜል ለአባላት መላክ አይችሉም።",
        "api-error-badtoken": "የውስጥ ስህተት: መጥፎ ጥቅል።",
        "api-error-copyuploaddisabled": "በሰነድ አድራሻ መላክ በዚህ አቅራቢ ላይ አልተፈቀደም።",
        "api-error-duplicate": "በዚህ ድረ ገጽ ላይ የዚህ ዓይነት ይዞታ {{PLURAL:$1| [$2 ያለው ፋይል አለ።] | [$2 ያላቸው ፍይሎች አሉ።]}}",
-       "api-error-duplicate-popup-title": "አንድ አይነት {{PLURAL:$1|ፋይል|ፋይሎች}}",
        "api-error-empty-file": "የላኩት ፋይል ባዶ ነበር።",
        "api-error-fetchfileerror": "የውስጥ ስህተት: ፍይሉ ሲመጣ ችግር ተፈጠረ።",
        "api-error-file-too-large": "የላኩት ፋይል በጣም ትልቅ ነበር።",
index 31a6016..9d4c88f 100644 (file)
        "passwordreset-emailtitle": "Detalles d'a cuenta en {{SITENAME}}",
        "passwordreset-emailtext-ip": "Belún (probablement vusté, dende l'adreza IP $1) ha demandau un recordatorio d'a información d'a suya cuenta en  {{SITENAME}} ($4). {{PLURAL:$3|A cuenta d'usuario siguient ye asociata|As cuentas d'usuario siguients son asociatas}} a ista adreza de correu-e:\n\n$2\n\n{{PLURAL:$3|Ista clau temporal circumducirá|Istas claus temporals circumducirán}} en {{PLURAL:$5|un día|$5 días}}. Habría de connectar-se agora y trigar una nueva clau. Si ista demanda no dimana de vusté, u ya se'n ha acordau d'a suya clau inicial y ya no deseya modificar-la, puet ignorar iste mensache y continar emplegando a suya viella clau.",
        "passwordreset-emailtext-user": "L'usuario $1 en {{SITENAME}} ha demandau un recordatorio d'a información d'a suya cuenta en {{SITENAME}} ($4). {{PLURAL:$3|A cuenta d'usuario siguient ye asociata|As cuentas d'usuario siguients son asociatas}} a ista adreza de correu-e:\n\n$2\n\n{{PLURAL:$3|Ista clau d'acceso temporal circumducirá|Istas claus d'acceso temporals circumducirán}} en {{PLURAL:$5|un día|$5 días}}. Habría de connectar-se agora y trigar una nueva clau. Si ista demanda no dimana de vusté, u ya se'n ha acordau d'a suya clau inicial y ya no deseya modificar-la, puet ignorar iste mensache y continar emplegando a suya viella clau.",
-       "passwordreset-emailelement": "Nombre de usuario: $1\nClau d'acceso temporal: $2",
+       "passwordreset-emailelement": "Nombre de usuario: \n$1\n\nClau d'acceso temporal: \n$2",
        "passwordreset-emailsent": "S'ha ninviau un recordatorio por correu-e.",
        "passwordreset-emailsent-capture": "Se le ha ninviau un recordatorio por correu electronico, que s'amuestra contino.",
        "passwordreset-emailerror-capture": "S'ha chenerau un recordatorio por correu electronico, que s'amuestra contino, pero o ninvío ta l'usuario ha fallau: $1",
        "api-error-badtoken": "Error interna: Simbolo incorrecto.",
        "api-error-copyuploaddisabled": "A puyada por URL ye desactivada en iste servidor.",
        "api-error-duplicate": "Ya existe{{PLURAL:$1| [$2 unatro fichero]|[$2 belatros fichers]}} en o puesto con o mesmo conteniu.",
-       "api-error-duplicate-archive": "Ya {{PLURAL:$1|existiba [$2 unatro fichero]|existiban [$2 atros fichers]}} en o puesto con o mesmo conteniu, pero {{PLURAL:$1|estió|estioron}} {{PLURAL:$1|eliminau|eliminaus}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Fichero|Fichers}} {{PLURAL:$1|duplicau|duplicaus}} que ya s'han eliminau",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Fichero|Fichers}} {{PLURAL:$1|duplicau|duplicaus}}",
+       "api-error-duplicate-archive": "Ya {{PLURAL:$1|existiba unatro fichero|existiban atros fichers}} en o puesto con o mesmo conteniu, pero {{PLURAL:$1|estió eliminau|estioron eliminaus}}.",
        "api-error-empty-file": "O fichero que ninvió yera vuedo.",
        "api-error-emptypage": "No se permite a creyación de pachinas nuevas en blanco.",
        "api-error-fetchfileerror": "Error interna: Bella cosa salió malament mientres s'obteneba o fichero.",
index 2332ff6..11bf0a2 100644 (file)
        "passwordreset-emailtitle": "تفاصيل حساب {{SITENAME}}",
        "passwordreset-emailtext-ip": "أحد ما (قد يكون أنت، من العنوان $1)  طلب إعادة ضبط كلمة سر حسابك على {{SITENAME}} ($4). {{PLURAL:$3||الحساب|الحسابان| الحسابات}} أدناه قد اقترنت ببريدك الإلكتروني :\n\n$2\n\n{{PLURAL:$3||كلمة السر المؤقتة|كلمات السر المؤقتة}} ستنتهي صلاحيتها في {{PLURAL:$5||يوم واحد|يومين|$5 أيام|$5 يوما|$5 يوم}}\nيمكنك تسجيل الدخول واختيار كلمة سر جديدة. إذا كان هذا الطلب تم بواسطة شخص أخر، أو إذا تذكرت كلمة السر الأصلية الخاصة بك، ولم تعد ترغب في تغييرها، يمكنك تجاهل هذه الرسالة ومتابعة استخدام كلمة السر القديمة.",
        "passwordreset-emailtext-user": "المستخدم $1 على {{SITENAME}} طلب إعادة ضبط كلمة سر حسابك على {{SITENAME}} ($4). {{PLURAL:$3||الحساب|الحسابان| الحسابات}} أدناه قد اقترنت ببريدك الإلكتروني :\n\n$2\n\n{{PLURAL:$3||كلمة السر المؤقتة|كلمات السر المؤقتة}} ستنتهي صلاحيتها في {{PLURAL:$5||يوم واحد|يومين|$5 أيام|$5 يوما|$5 يوم}}\nيمكنك تسجيل الدخول واختيار كلمة سر جديدة. إذا كان هذا الطلب تم بواسطة شخص أخر، أو إذا تذكرت كلمة السر الأصلية الخاصة بك، ولم تعد ترغب في تغييرها، يمكنك تجاهل هذه الرسالة ومتابعة استخدام كلمة السر القديمة.",
-       "passwordreset-emailelement": "اسم {{GENDER:$1|المستخدم|المستخدمة}}: $1\nكلمة السر المؤقتة: $2",
+       "passwordreset-emailelement": "اسم {{GENDER:$1\n|المستخدم|المستخدمة}}: \n$1\n\nكلمة السر المؤقتة: \n$2",
        "passwordreset-emailsent": "أُرسل بريد إلكتروني لإعادة ضبط كلمة السر.",
        "passwordreset-emailsent-capture": "أُرسل بريد إلكتروني لإعادة ضبط كلمة السر، وهو معروض بالأسفل.",
        "passwordreset-emailerror-capture": "تم توليد رسالة بريد إلكتروني لتصفير كلمة السر نصّه التالي، إلا أنه تعذّر إرسال الرّسالة إلى {{GENDER:$2|المستخدم|المستخدمة}}: $1",
        "allmessagesname": "الاسم",
        "allmessagesdefault": "النص الافتراضي",
        "allmessagescurrent": "النص الحالي",
-       "allmessagestext": "Ù\87Ø°Ù\87 Ù\82ائÙ\85Ø© Ø¨Ø±Ø³Ø§Ø¦Ù\84 Ø§Ù\84Ù\86ظاÙ\85 Ø§Ù\84Ù\85تÙ\88Ù\81رة Ù\81Ù\8a Ù\86طاÙ\82 Ù\85Ù\8aدÙ\8aاÙ\88Ù\8aÙ\83Ù\8a.\nÙ\85Ù\86 Ù\81ضÙ\84Ù\83 Ø²Ø± [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ØªØ±Ø¬Ù\85Ø© Ù\85Ù\8aدÙ\8aاÙ\88Ù\8aÙ\83Ù\8a] Ù\88 [//translatewiki.net Ø¨Ù\8aتاÙ\88Ù\8aÙ\83Ù\8a] لو كنت ترغب في المساهمة في ترجمة ميدياويكي الأساسية.",
+       "allmessagestext": "Ù\87Ø°Ù\87 Ù\82ائÙ\85Ø© Ø¨Ø±Ø³Ø§Ø¦Ù\84 Ø§Ù\84Ù\86ظاÙ\85 Ø§Ù\84Ù\85تÙ\88Ù\81رة Ù\81Ù\8a Ù\86طاÙ\82 Ù\85Ù\8aدÙ\8aاÙ\88Ù\8aÙ\83Ù\8a.\nÙ\85Ù\86 Ù\81ضÙ\84Ù\83 Ø²Ø± [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ØªØ±Ø¬Ù\85Ø© Ù\85Ù\8aدÙ\8aاÙ\88Ù\8aÙ\83Ù\8a] Ù\88 [//translatewiki.net ØªØ±Ø§Ù\86سÙ\84Ù\8aت Ù\88Ù\8aÙ\83Ù\8a Ø¯Ù\88ت Ù\86ت] لو كنت ترغب في المساهمة في ترجمة ميدياويكي الأساسية.",
        "allmessagesnotsupportedDB": "هذه الصفحة لا يمكن استخدامها لأن '''$wgUseDatabaseMessages''' تم تعطيله.",
        "allmessages-filter-legend": "المرشح",
        "allmessages-filter": "رشح حسب حالة التخصيص:",
        "logentry-newusers-create2": "أنشأ $1 حسابا {{GENDER:$2|للمستخدم|للمستخدمة}} $3",
        "logentry-newusers-byemail": "ُ{{GENDER:$2|أنشأ|أنشأت}} $1 حساب المستخدم $3 وأُرسلت كلمة السر بالبريد الإلكتروني",
        "logentry-newusers-autocreate": "أنشئ حساب {{GENDER:$2|المستخدم|المستخدمة}} $1 تلقائيًا",
+       "logentry-protect-move_prot": "$1 {{GENDER:$2|نقل}} إعدادات الحماية من $4 إلى $3",
        "logentry-rights-rights": "{{GENDER:$2|غيّر|غيّرت}} $1 عضوية $3 من $4 إلى $5",
        "logentry-rights-rights-legacy": "{{GENDER:$2|غيّر|غيّرت}} $1 عضوية $3",
        "logentry-rights-autopromote": "تمت تلقائيا ترقية {{GENDER:$2|المستخدم|المستخدمة}} $1 من  $4 إلى $5",
        "api-error-badtoken": "خطأ داخلي: رمز مميز غير صحيح.",
        "api-error-copyuploaddisabled": "تم تعطيل تحميل من رابط على هذا الخادم.",
        "api-error-duplicate": "هناك {{PLURAL:$1|هو [$2 ملف آخر [|كذلك]$2 بعض الملفات الأخرى]}} مسبقاً على الموقع بنفس المضمون.",
-       "api-error-duplicate-archive": "هناك {{PLURAL:$1|كان [$2 ملف آخر] |كذلك [$2 بعض الملفات الأخرى]}} مسبقاً على الموقع بنفس المضمون، ولكن {{PLURAL:$1|أنه تم | إجراء}} الحذف لها.",
-       "api-error-duplicate-archive-popup-title": "تكرار {{PLURAL:$1|ملف|ملفات}} قد تم حذفه مسبقاً",
-       "api-error-duplicate-popup-title": "ارفع {{PLURAL:$1|الملف|الملف|الملفين|الملفات|الملفات|الملفات}}",
+       "api-error-duplicate-archive": "هناك {{PLURAL:$1|كان ملف آخر |كذلك بعض الملفات الأخرى}} مسبقاً على الموقع بنفس المضمون، ولكن {{PLURAL:$1|أنه تم | إجراء}} الحذف لها.",
        "api-error-empty-file": "كان ملف الذي قمت بإرسال فارغة.",
        "api-error-emptypage": "إنشاء صفحات فارغة جديدة، غير مسموح به.",
        "api-error-fetchfileerror": "خطأ داخلي: قد حدث خطأ أثناء إحضار الملف.",
index a15dabd..fc2fc81 100644 (file)
        "passwordreset": "صفّي كلمت` السرّ",
        "passwordreset-text-one": "كمّل هاد الجدوال تاع الإختيارات باش تلحق لك كلمت` سرّ جديدة بل إيمال.",
        "passwordreset-text-many": "{{PLURAL:$1|عمّر واحد من هاد قويبسات باش تلحق لك كلمت` سرّ جديدة بل إيمال.}}",
-       "passwordreset-legend": "استرجع كلمت` السرّ",
        "passwordreset-disabled": "التبدال تاع كلمت` السرّ راهي محبّسة ف هاد الويكي.",
        "passwordreset-emaildisabled": "الفعاليّات تاع الإيمال راهي محبّسة ف هاد الويكي.",
        "passwordreset-username": "سميّت` المستعملي:",
        "passwordreset-emailtitle": "وصافات تاع الحساب ف {{SITENAME}}",
        "passwordreset-emailtext-ip": "شي واحد (يكون بالاك نتا، لادريسة إيپي $1) راه طلَب المصاوبة تاع كلمت` السرّ تاعك ف {{SITENAME}} ($4). {{PLURAL:$3|هاد الحساب |هاد الحسابات}} تاع المستعملي {{PLURAL:$3|راه مربوط|راهم مربوطين}} ب لادريسة تاع الإيمال:\n\n$2\n\n{{PLURAL:$3|هاد كلمت` السرّ المأقّتة|هادي كلمات` السرّ المأقّتة}} غادي يكمل صلوحها منّا على {{PLURAL:$5|نهار واحد|$5 إيّام}}.\nمليح لوكان تدخُل ل`السيت من ضركا و تبدّل كلمت` السرّ.\nيلا كاش ما وحداخُر دار هاد المطلب ولا راك تفكّرت كلمت` السرّ تاعك و ما بقيتش باغي تبدّلها، تنجم برك تنسا هاد الميساج و تستعمل كلمت` السرّ تاعك تاع مضاري.",
        "passwordreset-emailtext-user": "المستعملي $1 ف {{SITENAME}} راه طلب تبدال ف كلمت` السرّ تاعك ف {{SITENAME}}\n($4). {{PLURAL:$3|الحساب|الحسايات}} تاع المستعملي {{PLURAL:$3|راه مربوط|راهم مربوطين}} ب لادريسة تاع ليمال هادي:\n\n$2\n\n{{PLURAL:$3|هاد كلمت` السرّ المأقّتة|هادي كلمات` السرّ المأقّتة}} غادي يكمل صلوحها منّا على {{PLURAL:$5|نهار واحد|$5 إيّام}}.\nمادابيك تسجّل داخل ضركا و تختار كلمت` سرّ جديدة. يلا كان وحداخُر دار هاد المطلب، ولا راك ضركا تفكّرت كلمت` السرّ تاعك القديمة و ما بقيتش باغي تبدّلها، تنجم برك تتنسّا هاد الميساج و تدخُل ب كلمت` السرّ تاعك تاع مضاري.",
-       "passwordreset-emailelement": "سميّت` المستعملي: $1\nكلمت` السرّ المأقّتة: $2",
+       "passwordreset-emailelement": "سميّت` المستعملي: \n$1\n\nكلمت` السرّ المأقّتة: \n$2",
        "passwordreset-emailsent": "راه نبعَت إيمال تاع تبدال كلمت` السرّ.",
        "passwordreset-emailsent-capture": "راه اترسل إيمال تاع تبدال كلمت` السرّ، و راه محطوط هنا لتحت.",
        "passwordreset-emailerror-capture": "راه اترسل الإيمال تاع تبدال كلمت` السرّ، الّي راح محطوط هنا لتحت، بصّح البعيت تاعهُ لل {{GENDER:$2|مستعملي}} ما نجحش: $1",
        "resettokens": "بدّل المفاتح",
        "resettokens-text": "تنجم تبدّل المفاتح الّي يخلّيوك توصل ل شي معلومات خوصوصيّة، مربوطة بل حساب تاعك هنا.\n\nلازم لك تديرها يلا كُنت نتا مدّيتهم ل شي واحد ولا بلا كان الحساب تاعك اتهدّد.",
        "resettokens-no-tokens": "ما كاين حتا مفاتح تنجم تبدّلهم.",
-       "resettokens-legend": "بدّل المفاتح",
        "resettokens-tokens": "مفاتح:",
        "resettokens-token-label": "$1 (القيمة تاع ضركا: $2)",
        "resettokens-watchlist-token": "المفتاح تاع السيل (Atom/RSS) تاع [[Special:Watchlist|التبدالات الّي فل ليستة تاع المتابعة تاعك]]",
index 3b89d8b..9d4f6c4 100644 (file)
        "passwordreset-emailtitle": "ṫafaṣil l-ḫisab f-{{SITENAME}}",
        "passwordreset-emailtext-ip": "ċi waḫd (ġaliban nṫa, mn ĝonwan l-IP $1) tlḅ ṫdkir\nb-ṫṫafaṣil dial l-ḫisab ṫaĝk f-{{SITENAME}} ($4). {{PLURAL:$3|l-ḫisab lli mrṫabt|l-ḫisabat lli mrṫabta}}\nb-had l-ĝonwan dl-email {{PLURAL:$3|howa|hiya}}:\n\n$2\n\nhad {{PLURAL:$3|klmṫ|klmaṫ}} s-srr l-mo'qaṫa ġadi ṫṫḫyyad mn bĝd {{PLURAL:$5|nhar waḫd|$5 yyam/yom}}.\nĥaṣṣk ṫdĥol o-ṫbddal klmṫ s-srr. ila kan ċi waḫd aĥor hwwa lli dar had\ntalab, wlla ila ṫfkkarṫi klmṫ s-srr l-qdima, o-ma bqiti-ċ baġi ṫbddalha, ġir bqa ĥddam biha o-nsa ĝlik had l-mesaj.",
        "passwordreset-emailtext-user": "l_mosṫĥdim $1 f-{{SITENAME}} tlḅ ṫdkir b-ṫṫafaṣil dial l-ḫisab ṫaĝk f-{{SITENAME}} ($4). {{PLURAL:$3|l-ḫisab lli mrṫabt|l-ḫisabat lli mrṫabta}} b-had l-ĝonwan dl-email {{PLURAL:$3|howa|hiya}}:\n\n$2\n\nhad {{PLURAL:$3|klmṫ|klmaṫ}} s-srr l-mo'qaṫa ġadi ṫṫḫyyad mn bĝd {{PLURAL:$5|nhar waḫd|$5 yyam/yom}}.\nĥaṣṣk ṫdĥol o-ṫbddal klmṫ s-srr. ila kan ċi waḫd aĥor hwwa lli dar had\ntalab, wlla ila ṫfkkarṫi klmṫ s-srr l-qdima, o-ma bqiti-ċ baġi ṫbddalha, ġir bqa ĥddam biha o-nsa ĝlik had l-mesaj.",
-       "passwordreset-emailelement": "smiṫ l-mosṫĥdim: $1\nklmṫ s-srr l-mo'qaṫa: $2",
+       "passwordreset-emailelement": "smiṫ l-mosṫĥdim: \n$1\n\nklmṫ s-srr l-mo'qaṫa: \n$2",
        "passwordreset-emailsent": "ṫsift email liṫ-ṫdkir.",
        "changeemail": "bddel ĝonwan l-email",
        "changeemail-no-info": "ĥaṣṣ tkon daĥol baĥ tqdr twṣl l-had ṣfḫa niċan.",
index ec213a1..e183181 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}}ত একাউণ্টৰ সবিশেষ তথ্য আছে ।",
        "passwordreset-emailtext-ip": "কোনোবাই (IP ঠিকনা $1 ৰ পৰা সম্ভৱতঃ আপুনিয়েই) {{SITENAME}} ($4) ৰ বাবে আপোনাৰ গুপ্তশব্দ ন-কৈ বহুৱাবলৈ অনুৰোধ জনাইছিল। ইমেইল ঠিকনাটোৰ লগত এই সদস্যৰ {{PLURAL:$3|একাউণ্ট|একাউণ্টবোৰ}} জড়িত হৈ আছে ।\n\n$2\n \n{{PLURAL:$3|এই অস্থায়ী গুপ্তশব্দ|এই অস্থায়ী গুপ্তশব্দবোৰ}} {{PLURAL:$5|এদিনত|$5 দিনত }} নাইকীয়া হ’ব । আপুনি লগ-ইন কৰি এটা নতুন গুপ্তশব্দ দিয়া উচিত । যদি আন কোনোবাই এই অনুৰোধ কৰিছিল, বা আপুনি নিজৰ পূৰ্বৰ গুপ্তশব্দ মনত পেলাইছে আৰু ইয়াক সলাব খোজা নাই, তেন্তে আপুনি এই বাৰ্তাক অগ্ৰাহ্য কৰি নিজৰ পূৰ্বৰ গুপ্তশব্দ ব্যৱহাৰ কৰি থাকিব পাৰে ।",
        "passwordreset-emailtext-user": "{{SITENAME}}ত $1 ব্যৱহাৰকাৰীয়ে {{SITENAME}} ($4)ৰ বাবে আপোনাৰ গুপ্তশব্দ ন-কৈ বহুৱাবলৈ অনুৰোধ জনাইছিল। ই-পত্ৰ ঠিকনাটোৰ লগত এই সদস্যৰ {{PLURAL:$3|একাউণ্ট|একাউণ্টসমূহ}} জড়িত হৈ আছে।\n \n$2\n \n{{PLURAL:$3|এই অস্থায়ী গুপ্তশব্দ|এই অস্থায়ী গুপ্তশব্দবোৰ}} {{PLURAL:$5|এদিনত|$5 দিনত }} নাইকীয়া হ’ব । আপুনি লগ-ইন কৰি এটা নতুন গুপ্তশব্দ দিয়া উচিত। যদি আন কোনোবাই এই অনুৰোধ কৰিছিল, বা আপুনি নিজৰ পূৰ্বৰ গুপ্তশব্দ মনত পেলাইছে আৰু ইয়াক সলাব খোজা নাই, তেন্তে আপুনি এই বাৰ্তাক অগ্ৰাহ্য কৰি নিজৰ পূৰ্বৰ গুপ্তশব্দ ব্যৱহাৰ কৰি থাকিব পাৰে।",
-       "passwordreset-emailelement": "সদস্যনাম: $1\nঅস্থায়ী গুপ্তশব্দ: $2",
+       "passwordreset-emailelement": "সদস্যনাম: \n$1\n\nঅস্থায়ী গুপ্তশব্দ: \n$2",
        "passwordreset-emailsent": "এখন গুপ্তশব্দ উদ্ধাৰ ই-মেইল পঠিওৱা হৈছে।",
        "passwordreset-emailsent-capture": "এখন গুপ্তশব্দ উদ্ধাৰ ইমেইল পঠিওৱা হৈছে, এইখন তলত দেখা পাব।",
        "passwordreset-emailerror-capture": "এখন গুপ্তশব্দ উদ্ধাৰ ইমেইল সৃষ্টি কৰা হ'ল, কিন্তু {{GENDER:$2|সদস্যজনলৈ}} পঠিয়াব পৰা নগ'ল। সেইখন তলত দেখুওৱা হৈছে: $1",
        "api-error-badtoken": "আভ্যন্তৰীণ ত্ৰুটি: ভুল টোকেন।",
        "api-error-copyuploaddisabled": "ইউ আৰ এলৰ মাধ্যমেৰে আপল'ড কৰাটো এই চাৰ্ভাৰত নিষ্ক্ৰিয় কৰা হৈছে।",
        "api-error-duplicate": "এই চাইটত একে বিষয়বস্তুৰ {{PLURAL:$1|[$2 আন এটা ফাইল]|[$2 আন কিছুমান ফাইল]}} ইতিমধ্যেই আছে।",
-       "api-error-duplicate-archive": "এই চাইটত একে বিষয়বস্তুৰ {{PLURAL:$1|[$2 আন এটা ফাইল]|[$2 আন কিছুমান ফাইল]}} ইতিমধ্যেই আছিল, কিন্তু {{PLURAL:$1|সেইটো|সেইবোৰ}} বিলোপ কৰা হৈছে।",
-       "api-error-duplicate-archive-popup-title": "প্ৰতিলিপি {{PLURAL:$1|ফাইল|ফাইল}} যিসমূহ ইতিমধ্যে বিলোপ কৰা হৈছে।",
-       "api-error-duplicate-popup-title": "প্ৰতিলিপি {{PLURAL:$1|ফাইল|ফাইলসমূহ}}।",
+       "api-error-duplicate-archive": "এই চাইটত একে বিষয়বস্তুৰ {{PLURAL:$1|আন এটা ফাইল|আন কিছুমান ফাইল}} ইতিমধ্যেই আছিল, কিন্তু {{PLURAL:$1|সেইটো|সেইবোৰ}} বিলোপ কৰা হৈছে।",
        "api-error-empty-file": "আপুনি দাখিল কৰা ফাইলটো খালী ।",
        "api-error-emptypage": "নতুন, খালি পৃষ্ঠা সৃষ্টি কৰিবলৈ অনুমতি নাই।",
        "api-error-fetchfileerror": "আভ্যন্তৰীণ ত্ৰুটি: ফাইলটো অনাত কিবা সমস্যা হৈছে।",
index 6a50141..76940e6 100644 (file)
        "passwordreset-emailtitle": "Detalles de la cuenta en {{SITENAME}}",
        "passwordreset-emailtext-ip": "Dalguién (seique vusté, dende la direición IP $1)solicitó'l reaniciu de la so contraseña de {{SITENAME}} ($4).\n{{PLURAL:$3|La cuenta d'usuariu siguiente ta asociada|Les cuentes d'usuariu siguientes tán asociaes}}\na esta direición de corréu electrónicu:\n\n$2\n\n{{PLURAL:$3|Esta contraseña provisional caduca|Estes contraseñes provisionales caduquen}} {{PLURAL:$5|nun día|en $5 díes}}.\nTendría d'aniciar sesión y escoyer una contraseña nueva agora. Si esta solicitú la fizo otra persona,\no si recordó la clave orixinal y yá nun quier camudala, pue escaecer esti mensaxe y siguir\nusando la contraseña antigua.",
        "passwordreset-emailtext-user": "L'usuariu $1 de {{SITENAME}} solicitó un reaniciu de la so contraseña de {{SITENAME}} ($4). {{PLURAL:$3|La cuenta d'usuariu siguiente ta asociada|Les cuentes d'usuariu siguientes tán asociaes}} con esta direición de corréu electrónicu:\n\n$2\n\n{{PLURAL:$3|Esta contraseña provisional caduca|Estes contraseñes provisionales caduquen}} {{PLURAL:$5|nun día|en $5 díes}}.\nTendría d'aniciar sesión y escoyer una contraseña nueva agora. Si esta solicitú la fizo otra persona, o si recordó la clave orixinal y yá nun quier camudala, pue escaecer esti mensaxe y siguir usando la contraseña antigua.",
-       "passwordreset-emailelement": "Nome d'usuariu: $1\nContraseña temporal: $2",
+       "passwordreset-emailelement": "Nome d'usuariu: \n$1\n\nContraseña temporal: \n$2",
        "passwordreset-emailsent": "Unvióse un corréu electrónicu pa reaniciar la contraseña.",
        "passwordreset-emailsent-capture": "Unvióse un corréu electrónicu pa reaniciar la contraseña, que s'amuesa abaxo.",
        "passwordreset-emailerror-capture": "Unvióse un corréu electrónicu pa reaniciar la contraseña, que s'amuesa abaxo, pero falló l'unviu {{GENDER:$2|al usuariu|a la usuaria}}: $1",
        "booksources-text": "Esta ye una llista d'enllaces a otros sitios que vienden llibros nuevos y usaos, y que puen tener más información sobre los llibros que ta buscando:",
        "booksources-invalid-isbn": "El códigu ISBN que puxisti nun paez que valga; mira que te vien copiáu de la fonte orixinal.",
        "specialloguserlabel": "Fecho por:",
-       "speciallogtitlelabel": "Oxetivu (títulu o usuariu):",
+       "speciallogtitlelabel": "Oxetivu (títulu o {{ns:user}}:nome d'usuariu):",
        "log": "Rexistros",
        "all-logs-page": "Tolos rexistros públicos",
        "alllogstext": "Visualización combinada de tolos rexistros disponibles de {{SITENAME}}.\nPues filtrar la visualización seleicionando una mena de rexistru, el nome d'usuariu (teniendo en cuenta les mayúscules y minúscules) o la páxina afectada (teniendo en cuenta tamién les mayúscules y minúscules).",
        "tooltip-ca-nstab-main": "Ver la páxina de conteníu",
        "tooltip-ca-nstab-user": "Ver la páxina d'usuariu",
        "tooltip-ca-nstab-media": "Amuesa la páxina de multimedia",
-       "tooltip-ca-nstab-special": "Esta ye una páxina especial, nun pues editar la propia páxina",
+       "tooltip-ca-nstab-special": "Esta ye una páxina especial y nun pué editase",
        "tooltip-ca-nstab-project": "Vera la páxina de proyeutu",
        "tooltip-ca-nstab-image": "Ver la páxina del ficheru",
        "tooltip-ca-nstab-mediawiki": "Amuesa'l mensaxe de sistema",
        "api-error-badtoken": "Fallu internu: token incorreutu.",
        "api-error-copyuploaddisabled": "Xubir d'una URL ta desactivao nesti sirvidor.",
        "api-error-duplicate": "Yá hai {{PLURAL:$1|[$2 otru ficheru]|[$2 otros ficheros]}} nesti sitiu col mesmu conteníu.",
-       "api-error-duplicate-archive": "Había {{PLURAL:$1|[$2 otru ficheru]|[$2 otros ficheros]}} nesti sitiu col mesmu conteníu, pero se {{PLURAL:$1|desanició|desaniciaron}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Ficheru duplicáu|Ficheros duplicaos}} que yá se {{PLURAL:$1|desanició|desaniciaron}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Ficheru duplicáu|Ficheros duplicaos}}",
+       "api-error-duplicate-archive": "Había {{PLURAL:$1|otru ficheru|otros ficheros}} nesti sitiu col mesmu conteníu, pero se {{PLURAL:$1|desanició|desaniciaron}}.",
        "api-error-empty-file": "El ficheru qu'unviasti taba baleru.",
        "api-error-emptypage": "Nun se permite la creación de páxines nueves baleres.",
        "api-error-fetchfileerror": "Fallu internu: daqué nun funcionó al buscar el ficheru.",
index 2d2e09a..14b9db7 100644 (file)
        "resetpass-submit-cancel": "Kuidera",
        "resetpass-temp-password": "Ugaloraf remravlem :",
        "passwordreset": "Va remravlem tolbazel",
-       "passwordreset-legend": "Va remravlem tolbazel",
        "passwordreset-username": "Favesikyolt :",
        "passwordreset-domain": "Ind",
        "passwordreset-email": "E-mail mane",
        "passwordreset-emailtitle": "Pinta va pata dene {{SITENAME}}",
-       "passwordreset-emailelement": "Favesikyolt : $1\nUgaloraf remravlem : $2",
+       "passwordreset-emailelement": "Favesikyolt : \n$1\n\nUgaloraf remravlem : \n$2",
        "changeemail": "Betara va e-mail mane",
        "changeemail-oldemail": "Noelafe e-mail mane",
        "changeemail-newemail": "Warzafe e-mail mane",
        "nlinks": "$1 {{PLURAL:$1|gluyasiki|gluyasiki}}",
        "nmembers": "$1 {{PLURAL:$1|bewik}}",
        "nrevisions": "$1 betara",
-       "nviews": "$1 rupera",
        "specialpage-empty": "Mek trasiks tori bat munsteks.",
        "lonelypages": "Avuwikaf bueem",
        "lonelypagestext": "Batu bu tid gluyasikiiskafu male aru bu koe {{SITENAME}}.",
        "mailnologin": "Meke mane",
        "mailnologintext": "Rin gotil [[Special:UserLogin|dogluyarakiraf]]\nis bazeyes va wadafe internetmane ko rinaf [[Special:Preferences|lodamaceem]]\nta da pu ar favesik rostaksal.",
        "emailuser": "Staksara va bat favesik",
-       "emailpage": "E-mail staksara va tel favesik",
        "emailpagetext": "Si cet utilisateur a indiqué une adresse électronique valide dans ses préférences, le formulaire ci-dessous lui enverra un message.\nL'adresse électronique que vous avez indiquée dans vos préférences apparaîtra dans le champ « Expéditeur » de votre message afin que le destinataire puisse vous répondre.",
        "defemailsubject": "internettwa staksayana mal {{SITENAME}}",
        "noemailtitle": "Me internetmane",
index e00af38..4e97b8c 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "1AnuraagPandey",
-                       "राम प्रसाद जोशी"
+                       "राम प्रसाद जोशी",
+                       "Macofe"
                ]
        },
        "tog-underline": "कड़ि अधोरेखन:",
        "passwordreset-emailtitle": "{{SITENAME}} पे खाता कय विवरण",
        "passwordreset-emailtext-ip": "केहु (शायद आप कय, $1 आइ॰पी ठहर से) {{SITENAME}} ($4) पे अपने {{PLURAL:$3|गुप्त कुंजी}} कय रीसेट करेक अनुरोध करे है। इ ई-मेल ठहर से निचे  कय{{PLURAL:$3|खाता जोड़ान् है}}:\n\n$2\n\n{{PLURAL:$3|इ}} अस्थायी गुप्त कुंजी {{PLURAL:$5|दिन}} कय बाद काम नाइ करि। आप लॉग इन कई कय एकठु नँवा गुप्त कुंजी अभीनै चुन लुहा जाए। यदि इ अनुरोध केहु अउर करे है, या फिर आप कय आपन गुप्त कुंजी याद आइ गा है, औ आप {{PLURAL:$3|आपन}} गुप्त कुंजी नाइ बदलेक चाहा जात है तव आप इ संदेश कय अनदेखा कई कय आपन पुरान गुप्तकुंजी कय प्रयोग कै सका जात है।",
        "passwordreset-emailtext-user": "{{SITENAME}} ($4) पे सदस्य $1 आपकय {{PLURAL:$3|खाता}} कय गुप्तकुंजी कय रीसेट करेक अनुरोध करे हैं। इ ई-मेल ठहर से इ {{PLURAL:$3|खाता जोडान है}}:\n\n$2\n\n{{PLURAL:$3|ई}} अस्थायी गुप्तकुंजी {{PLURAL:$5|दिन}} कय बाद काम नाइ करि।\nआप लॉग इन कइकै एकठु नँवा गुप्त कुंजी अभीन लै लेक चाहि। यदि इ अनुरोध केहु दुसर करे है, या फिर आप कय आपन गुप्त कुंजी याद आई गा है, अव आप {{PLURAL:$3|आपन}} गुप्तकुंजी नाई बदलेक चाहा जात है, आप इ संदेश कय अनदेखा कई कय आपन पुरान गुप्तकुंजी कय प्रयोग कइ सका जात है।",
-       "passwordreset-emailelement": "सदस्यनाँव: $1\nअस्थायी गुप्तकुंजी: $2",
+       "passwordreset-emailelement": "सदस्यनाँव: \n$1\n\nअस्थायी गुप्तकुंजी: \n$2",
        "passwordreset-emailsent": "एक गुप्तकुंजी रीसेट ई-मेल भेज दिहा गा है।",
        "passwordreset-emailsent-capture": "नीचे जवन देखावा है ओकर गुप्तकुंजी रीसेट ई-मेल भेज दिहा गा है।",
        "passwordreset-emailerror-capture": "नीचे दिहा गुप्त कुंजी रीसेट ई-मेल पैदा भा रहा, लेकिन ओका {{GENDER:$2|सदस्य}} कय भेजब असफल रहा।\nत्रुटि: $1",
        "emailuser": "इ सदस्य कय ई-मेल पठवा जाय",
        "emailuser-title-target": "इ {{GENDER:$1|सदस्य|सदस्या}} कय ई-मेल करा जाय।",
        "emailuser-title-notarget": "सदस्य कय ई-मेल करा जाय",
-       "emailpage": "सदस्य कय ई-मेल करा जाय",
        "emailpagetext": "नीचे कय पर्चा से आप इ {{GENDER:$1|सदस्य}} कय ई-मेल भेजि सका जात है।\nआप जवन ठहर [[Special:Preferences|आप कय पसंद]] में दिहा गा है उ इ ई-मेल कय \"भेजय वाले\" कय तौर पे आइ, इही से प्राप्तकर्ता आप कय सीधय जवाब दई सकत हैं।",
        "defemailsubject": "{{SITENAME}} ई-मेल \"$1\" सदस्य से",
        "usermaildisabled": "सदस्य ई-मेल अक्षम कै गय",
        "api-error-badtoken": "आंतरिक त्रुटि: खराब टोकन।",
        "api-error-copyuploaddisabled": "URL द्वारा इस सर्वर पर अपलोड अक्षम है।",
        "api-error-duplicate": "वहाँ {{PLURAL:$1| [ $2 अन्य फ़ाइल] | रहे हैं [ $2 कुछ अन्य फ़ाइलों]}} एक ही सामग्री के साथ साइट पर पहले से ही है.",
-       "api-error-duplicate-archive": "वहाँ {{PLURAL:$1|था [$2 कुछ अन्य फ़ाइल] |were [$2 कुछ अन्य फ़ाइलें]}}, पहले से ही {{PLURAL:$1|यह was|they थे}} परन्तु  हटा दिये गये",
-       "api-error-duplicate-archive-popup-title": "डुप्लिकेट {{PLURAL:$1| फ़ाइल | फ़ाइलें}} है कि पहले से ही हटा दिया गया है",
-       "api-error-duplicate-popup-title": "डुप्लिकेट {{PLURAL:$1| फ़ाइल | फ़ाइल}}",
+       "api-error-duplicate-archive": "वहाँ {{PLURAL:$1|था कुछ अन्य फ़ाइल|कुछ अन्य फ़ाइलें}}, पहले से ही {{PLURAL:$1|यह was|they थे}} परन्तु  हटा दिये गये",
        "api-error-empty-file": "आप कय दीहल फ़ाइल खाली रहा।",
        "api-error-emptypage": "नँवा अव खाली पन्ना बनावै कय अनुमति नाइ है",
        "api-error-fetchfileerror": "आंतरिक त्रुटि: जब फ़ाइल लाया जा रहा तो कुछ गलत हो गया था।",
index cca3b29..1a0ea3b 100644 (file)
        "passwordreset-domain": "Domen:",
        "passwordreset-email": "E-mail ünvanı:",
        "passwordreset-emailtitle": "{{SITENAME}} hesabın yaradılması",
-       "passwordreset-emailelement": "İstifadəçi adı: $1\nMüvəqqəti parol: $2",
+       "passwordreset-emailelement": "İstifadəçi adı: \n$1\n\nMüvəqqəti parol: \n$2",
        "passwordreset-emailsent": "Xəbərdarlıq məktubu e-maillə göndərildi.",
        "changeemail": "E-məktub ünvanını dəyiş",
        "changeemail-oldemail": "Hazırkı e-poçt ünvanı:",
index a5b4d78..f14fe86 100644 (file)
        "errorpagetitle": "خطا",
        "returnto": "$1-ه قاییت.",
        "tagline": "{{SITENAME}} سایتیندان",
-       "help": "یاردیم",
+       "help": "کؤمک",
        "search": "آختار",
        "searchbutton": "آختار",
        "go": "گئت",
        "history": "صفحه‌‌نین گئچمیشی",
        "history_short": "گئچمیش",
        "updatedmarker": "سوْن باخیشیمدان سوْنرا یئنی‌لنیب‌دیر",
-       "printableversion": "یازدیریرا بیلن سۆروم",
+       "printableversion": "چاپ اۆچون نۆسخه",
        "permalink": "قالیجی باغلانتی",
        "print": "یازدیر",
        "view": "باخ",
        "viewtalkpage": "دانیشیغا باخ",
        "otherlanguages": "آیری دیل‌لرده",
        "redirectedfrom": "($1-دن يوْل‌لاندیریلمیش)",
-       "redirectpagesub": "یوْل‌لاندیرما صحیفه‌سی",
+       "redirectpagesub": "یوْل‌لاندیرما صفحه‌سی",
        "redirectto": "مسیزپرین دَییشیب:",
        "lastmodifiedat": "بۇ صفحه‌‌ سوْن دفعه $1، $2 تاریخینده دَییشیلمیشدیر.",
        "viewcount": "بۇ صحیفه {{PLURAL:$1|بیر|$1}} دفعه گؤرولوبدور.",
        "disclaimers": "یالانلامالار",
        "disclaimerpage": "Project:گنل یالانلاما",
        "edithelp": "ديَیشتیرمک یاردیمی",
-       "helppage-top-gethelp": "یاردیم",
+       "helppage-top-gethelp": "کؤمک",
        "mainpage": "آنا صفحه",
        "mainpage-description": "آنا صفحه",
        "policy-url": "Project:قایدالار",
-       "portal": "تÙ\88Ù\92Ù¾Ù\84Ù\88Ù\85 پوْرتالی",
-       "portal-url": "Project:تÙ\88Ù\92Ù¾Ù\84Ù\88Ù\85 پوْرتالی",
+       "portal": "اÛ\8cØ´Ù\84دÙ\86Ù\84ر پوْرتالی",
+       "portal-url": "Project:اÛ\8cØ´Ù\84دÙ\86Ù\84ر پوْرتالی",
        "privacy": "گیزلیلیک سیاستی",
        "privacypage": "Project:گیزلیلیک سیاستی",
        "badaccess": "ایجازه خطاسی",
        "sort-ascending": "چوْخالان سیرالاماق",
        "nstab-main": "صفحه",
        "nstab-user": "ایشلدن صفحه‌سی",
-       "nstab-media": "Ù\85ئدÛ\8cا ØµØ­Û\8cÙ\81Ù\87â\80\8cسÛ\8c",
+       "nstab-media": "Ù\85دÛ\8cا",
        "nstab-special": "اؤزل صفحه",
-       "nstab-project": "پروژه صحیفه‌سی",
+       "nstab-project": "پروژه صفحه‌سی",
        "nstab-image": "فایل",
        "nstab-mediawiki": "مئساژ",
        "nstab-template": "شابلون",
        "nstab-help": "یاردیم صفحه‌سی",
        "nstab-category": "بؤلمه",
+       "mainpage-nstab": "آنا صفحه",
        "nosuchaction": "بئله چالیشما یوْخدور",
        "nosuchactiontext": "URL طرفیندن بیلینن ایش گئچرسیزدیر.\nURL-ی یانلیش یازمیش، یا یانلیش بیر باغلانتی ایله گلمیش، اوْلابیلرسیز.\nهم‌ده بۇ، {{SITENAME}} سایتی ایشلدن یازیلیمین خطاسینی گؤستره بیلر.",
        "nosuchspecialpage": "بئله اؤزل صحیفه یوْخدور",
        "welcomecreation-msg": "حسابینیز آچیلدی.\n[[Special:Preferences|{{SITENAME}}ترجیحلر]] دییشدیرمیی اونوتمایین.",
        "yourname": "ایستیفاده‌چی آدی:",
        "userlogin-yourname": "ایشلدن آدی",
-       "userlogin-yourname-ph": "ایشلدن آدینیزی دَییشدیرین",
-       "createacct-another-username-ph": "ایشلدن آدینیزی گیردیرین",
+       "userlogin-yourname-ph": "ایشلدن آدینیزی یازین",
+       "createacct-another-username-ph": "ایشلدن آدینیزی یازین",
        "yourpassword": "رمز:",
        "userlogin-yourpassword": "رمز",
-       "userlogin-yourpassword-ph": "رمزینیزی گیردیرن",
-       "createacct-yourpassword-ph": "بÛ\8cر Ø±Ù\85ز Ú¯Û\8cردÛ\8cرین",
+       "userlogin-yourpassword-ph": "رمزینیزی یازین",
+       "createacct-yourpassword-ph": "رÙ\85زÛ\8c Û\8cازین",
        "yourpasswordagain": "رمزی یئنی‌دن یازین:",
        "createacct-yourpasswordagain": "رمزی دوغرولایین",
-       "createacct-yourpasswordagain-ph": "رمزی یئنی‌دن گیردیرن",
+       "createacct-yourpasswordagain-ph": "رمزی یئنی‌دن یازین",
        "remembermypassword": "بو بیلگی‌سایاردا منیم گیریشیمی (چوخو $1 {{PLURAL:$1|گون}}ه قدر) یاددا ساخلا",
        "userlogin-remembermypassword": "منی ایچری‌ده ساخلا",
        "userlogin-signwithsecure": "آرخایین باغلانتی ایشلدین",
        "gotaccountlink": "گیریش",
        "userlogin-resetlink": "گیریش بیلگیلرینیزی اونوتموسونوز؟",
        "userlogin-resetpassword-link": "رمزینیزی اونوتموسوز مو؟",
-       "userlogin-helplink2": "کؤÙ\85Ú© Ø§Û\8cÙ\84Ù\87 Ú¯Û\8cرÛ\8cØ´",
+       "userlogin-helplink2": "Ú¯Û\8cرÛ\8cØ´ Ø§Û\8cÙ\84Ù\87 Ú©Ø¤Ù\85Ú©",
        "userlogin-loggedin": "سیر حال حاضیردا {{GENDER:$1|$1}} عونوانیندا گیریش ائدیب سیز.\nآشاغیداکی فورمودان بیر آیری ایشلدن عونوانیندا گیریش اوچون ایشلدین.",
        "userlogin-createanother": "بیر باشقا حساب یارات",
        "createacct-emailrequired": "ایمیل آدرسی",
        "createacct-emailoptional": "ایمیل آدرسی (ایستگه باغلی)",
-       "createacct-email-ph": "ایمیل آدرسینیزی گیردیرن",
-       "createacct-another-email-ph": "ایمیل آدرسینیزی گیردیرن",
+       "createacct-email-ph": "ایمیل آدرسینیزی یازین",
+       "createacct-another-email-ph": "ایمیل آدرسینیزی یازین",
        "createaccountmail": "بیر گئچیجی راست‌گله رمز ایشلت و اونو آشاغیدا بللندیرن ایمیل آدرسینه گؤندر",
        "createacct-realname": "دوغرو آد (ایستگه باغلی)",
        "createaccountreason": "نَدَن‌لیک:",
        "createacct-reason": "سبب",
        "createacct-reason-ph": "ندن سیز باشقا حساب یارادیرسینیز",
        "createacct-captcha": "امنیت یوخلاماسی",
-       "createacct-imgcaptcha-ph": "اوست‌ده‌کی گؤردوگونوز یازی‌نی گیردیرن",
+       "createacct-imgcaptcha-ph": "اۆستده‌کی گؤردوگونوز یازینی یازین",
        "createacct-submit": "حسابینیزی یارادین",
        "createacct-another-submit": "بیر باشقا حساب یارات",
        "createacct-benefit-heading": "{{SITENAME}} سیزین کیمی آدام‌لارین الی ایله یارانیب‌دیر.",
        "passwordreset-emailtitle": "{{SITENAME}}-ده حساب بیلگیلری",
        "passwordreset-emailtext-ip": "بیر کس (احتیمالاً سیز، $1 آی‌پی آدرسی‌له)، {{SITENAME}} ($4) سایتینداکی حسابینیز اوچون رمزی یئنیله‌مک ایسته‌ییب‌دیر. آشاغیداکی ایستیفاده‌چی {{PLURAL:$3|حسابی|حسابلاری}} بو ایمیل ایله ایلگی‌لی‌دیرلر:\n\n$2\n\nبو گئچیجی {{PLURAL:$3|رمز|رمزلر}}، {{PLURAL:$5|بیر گون|$5 گون}}‌ده {{PLURAL:$3|واختی|واختلاری}} قورتاراجاق‌دیر.\nسیز گرک ایندی سایتا گیریب و یئنی بیر رمز سئچه‌سینیز. باشقا آدام بو ایستَگی وئرمیش‌سه، یوخسا سیز اسکی رمزینیزی یادا گتیرمیشسینیزسه، و داها اونو چئویرمک ایسته‌میرسینیزسه، بو مئساژی سایماییب و اسکی رمزینیزی ایشلدمگه داوام ائده بیلرسینیز.",
        "passwordreset-emailtext-user": "{{SITENAME}} سایتیندا، $1 ایستیفاده‌چی، سیزین اوردا ($4) حسابینیزین رمزینی یئنیله‌مک ایستگی وئریب‌دیر. آشاغیداکی {{PLURAL:$3|ایستیفاده‌چی|ایستیفاده‌چیلر}} بو ایمیل ایله ایلگیلیدیرلر:\n\n$2\n\nبو گئچیجی {{PLURAL:$3|رمز|رمزلر}}، {{PLURAL:$5|بیر|$5گون}} سونرا واختلاری قورتاراجاق‌دیر. \nسیز گرک ایندی گیریب و بیر یئنی رمز سئچه‌سینیز. باشقا آدام بو ایستَگی وئرمیش‌سه، یوخسا سیز اسکی رمزینیزی یادا گتیرمیشسینیزسه، و داها اونو چئویرمک ایسته‌میرسینیزسه، بو مئساژی سایماییب و اسکی رمزینیزی ایشلدمگه داوام ائده بیلرسینیز.",
-       "passwordreset-emailelement": "اÛ\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8c Ø¢Ø¯Û\8c: $1\nگئÚ\86Û\8cجÛ\8c Ø±Ù\85ز: $2",
+       "passwordreset-emailelement": "اÛ\8cØ´Ù\84دÙ\86 Ø¢Ø¯Û\8c: \n$1\n\nگئÚ\86Û\8cجÛ\8c Ø±Ù\85ز: \n$2",
        "passwordreset-emailsent": "بیر رمز یئنیله‌مه ایمیلی گؤندریلیب‌دیر.",
        "passwordreset-emailsent-capture": "آشاغیدا گؤستریلن کیمی بیر رمز یئنیله‌مه ایمیلی گؤندریلیب‌دیر.",
        "passwordreset-emailerror-capture": "آشاغیدا گؤستریلن کیمی بیر رمز یئنیله‌مه ایمیلی یارادیلیب‌دیر، اما {{GENDER:$2ایستیفاده‌چی}}‌یه گؤندرمگی باشاریلی اولمادی: $1",
        "prefs-advancedrendering": "گلیشمیش سئچَنکلر",
        "prefs-advancedsearchoptions": "گلیشمیش سئچَنکلر",
        "prefs-advancedwatchlist": "گلیشمیش سئچَنکلر",
-       "prefs-displayrc": "عکس سئچَنکلری",
-       "prefs-displaywatchlist": "عکس سئچَنکلری",
+       "prefs-displayrc": "گؤرونوش سئچَنکلری",
+       "prefs-displaywatchlist": "گؤرونوش سئچَنکلری",
        "prefs-tokenwatchlist": "آدرس",
        "prefs-diffs": "فرق‌لر",
        "prefs-help-prefershttps": "سیزین بو ترجیحینیزین اثری سیزین سونراکی گیریشینیز دن سونرا اولاجاق.",
        "action-read": "بو صحیفه‌نی اوخو",
        "action-edit": "بو صحیفه‌نی دَییشدیر",
        "action-createpage": "صفحه یارات",
-       "action-createtalk": "دانیشیق صحیفه‌سی یاراد",
+       "action-createtalk": "دانیشیق صفحه‌سی یارات",
        "action-createaccount": "بو ایستیفاده‌چی حسابینی یاراد",
        "action-history": "بو صفحه نین گئچمیشین گور",
        "action-minoredit": "بو دَییشیکلیگی، کیچیک اولاراق نیشانلا",
        "rcshowhidebots": "بوتلاری $1",
        "rcshowhidebots-show": "گؤستر",
        "rcshowhidebots-hide": "گیزلت",
-       "rcshowhideliu": "یازیلمیش ایشلدنلری $1",
+       "rcshowhideliu": "یازیلمیش ایشلدنلری $1",
        "rcshowhideliu-show": "گؤستر",
        "rcshowhideliu-hide": "گیزلت",
-       "rcshowhideanons": "تانینمامیش ایشلدنلری $1",
+       "rcshowhideanons": "تانینمامیش ایشلدنلری $1",
        "rcshowhideanons-show": "گؤستر",
        "rcshowhideanons-hide": "گیزلت",
        "rcshowhidepatr": "نظارت ائدیلن دَییشیکلیکلری $1",
        "rc-enhanced-expand": "تفصیل‌لری گؤستر",
        "rc-enhanced-hide": "تفصیل‌لری گیزلت",
        "rc-old-title": "ایلک‌جه «$1» آدی‌له یارانمیشدیر",
-       "recentchangeslinked": "ایلگیلی دَییشیکلیکلر",
-       "recentchangeslinked-feed": "ایلگیلی دَییشیکلیکلر",
-       "recentchangeslinked-toolbox": "ایلگیلی دَییشیکلیکلر",
+       "recentchangeslinked": "مربوط دَییشیکلیکلر",
+       "recentchangeslinked-feed": "مربوط دَییشیکلیکلر",
+       "recentchangeslinked-toolbox": "مربوط دَییشیکلیکلر",
        "recentchangeslinked-title": "''$1'' ایله ایلگی‌لی دییشیکلر",
        "recentchangeslinked-summary": "آشاغیداکی سیياهی، قئيد اوْلونان صحیفه‌‌يه (و يا قئيد اوْلونان کاتئقوْرياداکی صحیفه‌‌لره) داخیلی کئچید وئرن صحیفه‌‌لرده ائدیلمیش سوْن ديَیشیکلیکلرین سیياهیسیدیر. \n[[Special:Watchlist|ایزله‌مه سیياهینیزداکی]] صحیفه‌‌لر '''قالین''' شریفتله گؤستریلمیشدیر.",
        "recentchangeslinked-page": "صفحه آدی:",
        "unusedtemplates": "ایشلدیلمه‌میش شابلونلار",
        "unusedtemplatestext": "بو صحیفه بوتون، {{ns:template}} آدفضاسیندا اولان و باشقا صحیفه‌لرده اولمایان صحیفه‌لری لیست ائدیر.\nشابلونلاری سیلمک‌دن اؤنجه، لوطفاً اونلارا اولان باشقا باغلانتیلاری یوخلایین.",
        "unusedtemplateswlh": "باشقا باغلانتیلار",
-       "randompage": "راستâ\80\8cÚ¯Ù\84Ù\87 صفحه",
+       "randompage": "تصادÙ\88Ù\81Û\8c صفحه",
        "randompage-nopages": "بو {{PLURAL:$2|آدفضاسیندا|آدفضالاریندا}} هئچ صحیفه یوخدور: $1.",
        "randomincategory": "بؤلمه‌ده راست‌گله صحیفه",
        "randomincategory-invalidcategory": "«$1» بیر گئچرلی بؤلمه آدی دئییل.",
        "randomincategory-nopages": "[[:Category:$1|$1]] بؤلمه‌سین‌ده، هئچ صحیفه یوخدور.",
        "randomincategory-category": "بؤلمه:",
-       "randomincategory-legend": "بؤÙ\84Ù\85Ù\87â\80\8cدÙ\87 Ø±Ø§Ø³Øªâ\80\8cÚ¯Ù\84Ù\87 صفحه",
+       "randomincategory-legend": "بؤÙ\84Ù\85Ù\87â\80\8cدÙ\87 ØªØµØ§Ø¯Ù\88Ù\81Û\8c صفحه",
        "randomincategory-submit": "گئت",
        "randomredirect": "راست‌گله یول‌لاندیرما",
        "randomredirect-nopages": "«$1» آدفضاسیندا هئچ بیر یول‌لاندیرما یوخدور.",
        "special-categories-sort-abc": "الیفبا سیراسی ایله دوز",
        "deletedcontributions": "سیلینمیش ایستیفاده‌چی چالیشمالاری",
        "deletedcontributions-title": "سیلین‌میش ایستیفاده‌چی چالیشمالاری",
-       "sp-deletedcontributions-contribs": "فالیت",
+       "sp-deletedcontributions-contribs": "چالیشمالار",
        "linksearch": "خاریجی باغلانتی آختار",
        "linksearch-pat": "آختاریش اولگوسو:",
        "linksearch-ns": "آد فضاسی:",
        "tooltip-n-portal": "پروژه‌ یه گؤره، سیز نه ایش گوره بیلرسیز، هاردا نه‌لری تاپا بیلرسیز",
        "tooltip-n-currentevents": "ایندیکی اولای‌لارا ایلگیلی بیلگی‌لر تاپ",
        "tooltip-n-recentchanges": "بو ویکی‌ده سون دَییشیکلرین لیستی",
-       "tooltip-n-randompage": "بÛ\8cر Ø±Ø§Ø³Øªâ\80\8cÚ¯Ù\84Ù\87 صفحه گتیر",
+       "tooltip-n-randompage": "بÛ\8cر ØªØµØ§Ø¯Ù\88Ù\81Û\8c صفحه گتیر",
        "tooltip-n-help": "آنلاماق یئری",
        "tooltip-t-whatlinkshere": "بورایا باغلانان بوتون ویکی صفحه‌لرین لیستی",
        "tooltip-t-recentchangeslinked": "بو صفحه‌دن باغلانان صفحه‌لرین سون دَییشیکلیک‌لری",
        "tooltip-ca-nstab-main": "مقاله‌یه باخین",
        "tooltip-ca-nstab-user": "ایشلدن صفحه‌سینه باخ",
        "tooltip-ca-nstab-media": "مئدیا-فايل",
-       "tooltip-ca-nstab-special": "بÙ\88 Ø¨Û\8cر Ø§Ø¤Ø²Ù\84 ØµÙ\81Ø­Ù\87â\80\8cدÛ\8cرØ\8c Ø³Û\8cز Ø§Ù\88Ù\86Ù\88 Ø¯Ù\8eÛ\8cÛ\8cشدÛ\8cرÙ\87 Ø¨Û\8cÙ\84Ù\85زسÛ\8cز",
+       "tooltip-ca-nstab-special": "بÙ\88 Ø¨Û\8cر Ø§Ø¤Ø²Ù\84 ØµÙ\81Ø­Ù\87â\80\8cدÛ\8cرØ\8c Ø¨Ù\88 ØµÙ\81Ø­Ù\87 Ø¯Ù\8eÛ\8cÛ\8cØ´Û\8cÙ\84Ù\85Ù\87â\80\8cÙ\85Ù\87â\80\8cÙ\84Û\8cدÛ\8cر",
        "tooltip-ca-nstab-project": "پروژه صحیفه‌سینه باخ",
        "tooltip-ca-nstab-image": "فايل صفحه‌‌سینه باخین",
        "tooltip-ca-nstab-mediawiki": "سیستم مئساژلرینه باخ",
        "pageinfo-toolboxlink": "صفحه بیلگی‌سی",
        "pageinfo-redirectsto": "ایستیقامتلن‌دیریلن",
        "pageinfo-redirectsto-info": "بیلگی",
-       "pageinfo-contentpage": "بÛ\8cر Ù\85زÙ\85Ù\88Ù\86 ØµØ­Û\8cÙ\81ه‌سی ساییلیر",
+       "pageinfo-contentpage": "بÛ\8cر Ù\85ضÙ\85Ù\88Ù\86 ØµÙ\81Ø­ه‌سی ساییلیر",
        "pageinfo-contentpage-yes": "بلی",
        "pageinfo-protect-cascading": "مدافعه‌‌لر بورادان شراره کیمی تؤکولور",
        "pageinfo-protect-cascading-yes": "بلی",
        "api-error-badtoken": "ایچری خطاسی: پیس کود.",
        "api-error-copyuploaddisabled": "بو خیدمتچی‌ده، اینترنت آدرسی‌له فایل یوکله‌مک یاساقلانیب‌دیر.",
        "api-error-duplicate": "بو یاست‌دا، همن بیلگیلرله، باشقا {{PLURAL:$1|[$2 فایل]|[$2 فایل‌لار]}} واردیر.",
-       "api-error-duplicate-archive": "بو یاست‌دا، همن بیلگیلرله، باشقا {{PLURAL:$1|[$2 فایل]|[$2 فایل‌لار]}} وار ایدی، اما {{PLURAL:$1|سیلینیب‌دیر|سیلینیبلر}}.",
-       "api-error-duplicate-archive-popup-title": "تیکرارلانمیش {{PLURAL:$1|فایل|فایل‌لار}}، اؤنجه‌دن {{PLURAL:$1|سیلینیب‌دیر|سیلینیبلر}}.",
-       "api-error-duplicate-popup-title": "تیکرارلانمیش {{PLURAL:$1|فایل|فایل‌لار}}.",
+       "api-error-duplicate-archive": "بو یاست‌دا، همن بیلگیلرله، باشقا {{PLURAL:$1|فایل|فایل‌لار}} وار ایدی، اما {{PLURAL:$1|سیلینیب‌دیر|سیلینیبلر}}.",
        "api-error-empty-file": "سیز یول‌لادیغینیز فایل، بوش ایدی.",
        "api-error-emptypage": "یئنی بوش صحیفه یارادماغا ایجازه یوخدور.",
        "api-error-fetchfileerror": "ایچری خطا: فایلی گتیرمک‌ده بیر ایشکال قاباغا گلدی.",
index d2f7c5b..2ea4477 100644 (file)
        "nstab-template": "Ҡалып",
        "nstab-help": "Ярҙам",
        "nstab-category": "Категория",
+       "mainpage-nstab": "Баш бит",
        "nosuchaction": "Бындай ғәмәл юҡ",
        "nosuchactiontext": "URL-ла күрһәтелгән ғәмәл хаталы.\nҺеҙ URL-ны хаталы кереткәнһегеҙ йәки хаталы һылтанма буйынса күскәнһегеҙ.\nБыл шулай уҡ {{SITENAME}} проектындағы хата сәбәпле  лә булырға мөмкин.",
        "nosuchspecialpage": "Бындай махсус бит юҡ",
        "passwordreset-emailtitle": "{{SITENAME}} иҫәп яҙыуы мәғлүмәттәре",
        "passwordreset-emailtext-ip": "Берәү (бәлки һәҙ, $1 IP-адресынан ) {{SITENAME}} ($4) проектындағы иҫәп яҙыуығыҙҙы хәтерләтеүҙе һоратты.\nКиләһе ҡулланыусы {{PLURAL:$3|1=иҫәп яҙыуы|иҫәп яҙыуҙары}} был электрон почта адресы менән бәйле:\n\n$2\n\nБыл ваҡытлыса {{PLURAL:$3|1=серһүҙ|серһүҙҙәр}} {{PLURAL:$5|$5 көн}} ғәмәлдә буласаҡ.\nҺеҙ системала танылырға һәм яңы серһүҙ һайларға тейешһегеҙ.\nӘгәр, һеҙ быны һоратмаған булһағыҙ йәки элекке серһүҙегеҙҙе киренән иҫләһәгеҙ һәм уны үҙгәртергә теләмәһәгеҙ, был хатҡа иғтибар итмәгеҙ һәм элекке серһүҙегеҙҙе ҡулланыуҙы дауам итегеҙ.",
        "passwordreset-emailtext-user": "{{SITENAME}} проектындағы $1 ҡулланыусыһы {{SITENAME}} ($4) проектындағы иҫәп яҙыуығыҙҙы хәтерләтеүҙе һоратты. Киләһе ҡулланыусы {{PLURAL:$3|1=иҫәп яҙыуы|иҫәп яҙыуҙары}} был электрон почта адресы менән бәйле:\n\n$2\n\nБыл ваҡытлыса {{PLURAL:$3|1=серһүҙ|серһүҙҙәр}} {{PLURAL:$5|$5 көн}} ғәмәлдә буласаҡ.\nҺеҙ системала танылырға һәм яңы серһүҙ һайларға тейешһегеҙ.\nӘгәр, һеҙ быны һоратмаған булһағыҙ йәки элекке серһүҙегеҙҙе киренән иҫләһәгеҙ һәм уны үҙгәртергә теләмәһәгеҙ, был хатҡа иғтибар итмәгеҙ һәм элекке серһүҙеҙҙе ҡулланыуҙы дауам итегеҙ.",
-       "passwordreset-emailelement": "Ҡулланыусы исеме: $1\nВаҡытлыса серһүҙ: $2",
+       "passwordreset-emailelement": "Ҡулланыусы исеме: \n$1\n\nВаҡытлыса серһүҙ: \n$2",
        "passwordreset-emailsent": "Серһүҙҙе ташлау тураһындағы мәғлүмәт менән электрон почта аша хат ебәрелде.",
        "passwordreset-emailsent-capture": "Серһүҙҙе ташлау тураһындағы мәғлүмәт менән электрон хат ебәрелде, уның тексы түбәндә бирелә:",
        "passwordreset-emailerror-capture": "Серһүҙҙе ташлау тураһында хәбәр итеүсе электрон хат булдырылғайны, ләкин уны  {{GENDER:$2|kullanıcıya}} түбәндәге сәбәп арҡаһында ебәреп булманы: $1",
        "emailuser": "Ҡатнашыусыға хат",
        "emailuser-title-target": "{{GENDER:$1|Ҡатнашыусыға}} хат яҙыу",
        "emailuser-title-notarget": "Ҡатнашыусыға хат",
-       "emailpage": "Ҡатнашыусыға хат",
        "emailpagetext": "Был {{GENDER:$1|ҡатнашыусы}} электрон почта аша хат ебәреү өсөн, һеҙ түбәндәге форманы ҡуллана алаһығыҙ.\nЯуап өсөн адрес булараҡ һеҙ [[Special:Preferences|көйләүҙәрегеҙҙә]] күрһәткән электрон почта адресы күрһәтеләсәк, шулай итеп, хатты алыусы һеҙгә тура яуап ебәрә аласаҡ.",
        "defemailsubject": "{{SITENAME}} — $1 ҡулланыусыһынан хат",
        "usermaildisabled": "Ҡатнашыусының электрон почтаһы һүндерелгән",
        "api-error-copyuploaddisabled": "Был серверҙа URL адрес буйынса йөкләү өҙөлгән",
        "api-error-duplicate": "Бындай эстәлекле {{PLURAL:$1|[$2 файл]}}  бар.",
        "api-error-duplicate-archive": "Сайтта бындай эстәлекле {{PLURAL:$1|[$2 башҡа файл]}} бар ине инде, ләкин {{PLURAL:$1|1=ул юйылды|улар юйылды}}",
-       "api-error-duplicate-archive-popup-title": "Элек юйылған {{PLURAL:$1|1=файлдың|файлдарҙың}} дубликаты",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|1=файлы|файлдары}} дубликаты.",
        "api-error-empty-file": "Һеҙ ебәргән файл буш.",
        "api-error-emptypage": "Яңы буш биттәр яһау тыйыла.",
        "api-error-fetchfileerror": "Эске хата: файлды күсергән ваҡытта хата китте",
index b280c97..f6a041b 100644 (file)
        "passwordreset-emailtitle": "اکانتء جزئیات مان {{SITENAME}}",
        "passwordreset-emailtext-ip": "یک شهسء (بلکین شما، گون آی‌پیء نشانیگ $1) شمئی پسوردء واترء {{SITENAME}} ($4) لوٹتگ انت. {{PLURAL:$3|اکانت|اکانتان}} گون ائ ایمیل ادرسء همگرنچ انت:\n\n$2\n\n{{PLURAL:$3|ائ موکتین پسورد|ائ موکتین پسوردان}} رند چه {{PLURAL:$5|یک روچ|$5 روچ}} باطل بیت انت.\nشما پیکن انیگء لاگین کن ات ءُ نوکین پسوردء بزیر ات. اگان شمئی پگر انت که ادگر شهسء ائ لوٹء راهیگ کتگ یانکه وتی پیسریگین پسوردء هیال کت ات ءُ رندء نلوٹیت آئرا ٹگل دئیت، بیت که ائ پیگامء ناگند بزان ات ءُ وتی پیسریگین پسوردء کارمرز کن ات.",
        "passwordreset-emailtext-user": "کاربر $1 چه {{SITENAME}} شمئی پسوردء واترء لوٹ مان {{SITENAME}} ($4) کتگ انت. {{PLURAL:$3|اکانت|اکانتان}} چیریگین کاربر گون ائ ایمیل ادرس همگرنچ انت:\n\n$2\n\n{{PLURAL:$3|ائ موکتین پسورد|ائ موکتین پسوردان}} رند چه {{PLURAL:$5|یک روچ|$5 روچ}} باطل بیت انت.\nشما ضرور انت انیگء لاگین کن ات ءُ نوکین پسوردء بزیر ات. اگان ادگر شهسء ائ لوٹء راهیگ کتگ انت، یانکه وتی اصلیگین پسوردء هیال کت ات ءُ رندء نلوٹ ات آئرا ٹگل دئیت، بیت که ائ پیگامء نگند بزان ات ءُ وتی پیسریگین پسوردء کارمرز کن ات.",
-       "passwordreset-emailelement": "یوزرنام: $1\nموکتین پسورد: $2",
+       "passwordreset-emailelement": "یوزرنام: \n$1\n\nموکتین پسورد: \n$2",
        "passwordreset-emailsent": "یک ایمیلء گون پسوردء واترء راهیگ بوت.",
        "passwordreset-emailsent-capture": "یک ایمیلء پر پسورد واترء واسته که جهلیگء پیش دارگ بیت، راهیگ بیتگ انت.",
        "passwordreset-emailerror-capture": "واترین ایمیل، که جهلیگء پیش دارگ بیت، اڈ بوت، بلئی آئی راهیگ پر {{GENDER:$2|کاربر}} پکا نبوت: $1",
        "mailnologin": "هچ آدرس دیم دهگ",
        "mailnologintext": "شما بایدن [[Special:UserLogin|وارد بیت]] و یک معتبرین آدرس ایمیلی داشته بیت ته وتی [[Special:Preferences|ترجیحات]] په دیم داتن ایمیل په دگه کاربران",
        "emailuser": "په ای کابر ایمیل دیم دی",
-       "emailpage": "ایمیل کاربر",
        "emailpagetext": "گر ای کاربر یک معتبرین آدرس ایمیلی ته وتی ترجیحات کاربری وارد کتت،جهلگین فرم په آیء یک کوله ای دیم دنت.\nآدرس ایمیلی که شما وارد کتت ته [[Special:Preferences|وتی ترجیحات]] په داب آدرس  \"From\" پیش دارگ بیت، اچه گروک ایمیل تونیت پسوء دنت.",
        "defemailsubject": "{{SITENAME}} ایمیل",
        "noemailtitle": "هچ آدرس ایمیل",
index 308e1d7..081b25b 100644 (file)
        "passwordreset-emailtitle": "Mga detalye kan panindog sa {{SITENAME}}",
        "passwordreset-emailtext-ip": "May sarong tawo (pwedeng ika gayod, gikan sa IP address na $1) naghahagad nin pagliliwat kan saimong sekretong panlaog para sa{{SITENAME}}($4). An minasunod na paragamit {{PLURAL:$3|panindog iyo an|mga panindog iyo an}} na asosyado kaining e-surat na adres:\n\n$2\n\n{{PLURAL:$3|Ining temporaryong sekretong panlaog|Ining mga temporaryong sekretong panlaog}} mapapaso sa laog nin {{PLURAL:$5|sarong aldaw|$5 mga aldaw}}.\nDapat kang maglaog asin magpili nin sarong baguhon na sekretong panlaog ngunyan. Kun ibang tawo an naghimo kaining kahagadan, o kun saimo nang nagiromdoman an saimong orihinal na sekretong panlaog, asin habo mo nang ribayan ini, ipasipara mo na sana ining mensahe asin ipagpadagos mo nang gamiton an luma mong sekretong panlaog.",
        "passwordreset-emailtext-user": "Paragamit $1 sa {{SITENAME}} naghahagad nin sarong pagiromdom kan detalye nin saimong panindog para sa {{SITENAME}}\n($4). An minasunod na paragamit {{PLURAL:$3|panindog iyo an|mga panindog iyo an}} na asosyado kaining e-koreong address:\n\n$2\n\n\n{{PLURAL:$3|Ining temporaryong sekretong panlaog|Ining mga temporaryong panlaog}} mapapaso sa {{PLURAL:$5|sarong aldaw|$5 mga aldaw}}.\nIka dapat na maglaog asin magpili nin sarong bagong sekretong panlaog ngunyan. Kun ibang tawo an naghimo kaining kahagadan, o kun saimo nang nagiromdoman an saimong orihinal na sekretong panlaog, asin habo mo nang ribayan ini, ipasapara mo na sana an mensaheng ini asin ipadagos mo nang gamiton an saimong lumang sekretong panlaog.",
-       "passwordreset-emailelement": "Paragamit-ngaran: $1\nTemporaryong sekretong panlaog: $2",
+       "passwordreset-emailelement": "Paragamit-ngaran: \n$1\n\nTemporaryong sekretong panlaog: \n$2",
        "passwordreset-emailsent": "Sarong e-surat sa pagliliwat kan sekretong panlaog an ipinadara na.",
        "passwordreset-emailsent-capture": "Sarong e-surat sa pagliliwat kan sekretong panlaog an ipinadara na, yaon ipinapahiling sa ibaba.",
        "passwordreset-emailerror-capture": "Sarong e-surat sa pagliliwat kan sekretong panlaog an pinagpuyos na, yaon ipinapahiling sa ibaba, alagad sa pagpapadara kaini sa {{GENDER:$2|paragamit}} nagpalya: $1",
        "api-error-badtoken": "Panlaog na kasalaan: Raot na pangilip",
        "api-error-copyuploaddisabled": "An pagkakarga sa paagi kan URL pinag-untok sa serbidor na ini.",
        "api-error-duplicate": "Igwa {{PLURAL:$1|nin [$2 ibang sagunson]|mga [$2 iba pang mga sagunson]}} na yaon sa sityo na igwa nin kaparehong laog.",
-       "api-error-duplicate-archive": "Igwa {{PLURAL:$1|kaidto nin [$2 ibang sagunson]|kaidto nin [$2 ibang mga sagunson]}} na yaon sa sityo na igwa nin kaparehong laog, alagad {{PLURAL:$1|ini kaidto|sinda kaidto}} pinagpura na.",
-       "api-error-duplicate-archive-popup-title": "Kambal na {{PLURAL:$1|sagunson na|mga sagunson na}} pinagpura na.",
-       "api-error-duplicate-popup-title": "Kambal na {{PLURAL:$1|sagunson|mga sagunson}}.",
+       "api-error-duplicate-archive": "Igwa {{PLURAL:$1|kaidto nin ibang sagunson|kaidto nin ibang mga sagunson}} na yaon sa sityo na igwa nin kaparehong laog, alagad {{PLURAL:$1|ini kaidto|sinda kaidto}} pinagpura na.",
        "api-error-empty-file": "An sagunson na saimong pinagsumite daeng laog.",
        "api-error-emptypage": "Nagmumukna nin bago, mayong laog na mga pahina dae pinagtutugutan.",
        "api-error-fetchfileerror": "Panlaog na kasalaan: May bagay na naging sala habang hinahakot an sagunson.",
index cfe03fb..9155990 100644 (file)
@@ -14,7 +14,8 @@
                        "Zedlik",
                        "Тест",
                        "아라",
-                       "Liashko"
+                       "Liashko",
+                       "Macofe"
                ]
        },
        "tog-underline": "Падкрэсьліваць спасылкі:",
        "nstab-template": "Шаблён",
        "nstab-help": "Старонка дапамогі",
        "nstab-category": "Катэгорыя",
+       "mainpage-nstab": "Галоўная старонка",
        "nosuchaction": "Няма такога дзеяньня",
        "nosuchactiontext": "Дзеяньне, пазначанае ў URL, зьяўляецца няслушным.\nМагчыма, вы ўвялі няслушны URL або перайшлі па няслушнай спасылцы.\nГэта можа быць і памылкай у праграмным забесьпячэньні {{GRAMMAR:родны|{{SITENAME}}}}.",
        "nosuchspecialpage": "Такой спэцыяльнай старонкі не існуе",
        "passwordreset-emailtitle": "Падрабязнасьці рахунку ў {{GRAMMAR:месны|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "Нехта (магчыма Вы, з IP-адрасу $1) зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|1=Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|1=Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дні|дзён}}.\nЦяпер Вам неабходна ўвайсьці і выбраць новы пароль. Калі нехта іншы зрабіў гэты запыт, ці Вы ўспомнілі Ваш пачатковы пароль, які ня хочаце мяняць, Вы можаце праігнараваць гэтае паведамленьне, і працягваць выкарыстоўваць стары пароль.",
        "passwordreset-emailtext-user": "Удзельнік $1 зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|1=Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|1=Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дні|дзён}}.\nЦяпер Вам неабходна ўвайсьці і выбраць новы пароль. Калі нехта іншы зрабіў гэты запыт, ці Вы ўспомнілі Ваш пачатковы пароль, які ня хочаце мяняць, Вы можаце праігнараваць гэтае паведамленьне, і працягваць выкарыстоўваць стары пароль.",
-       "passwordreset-emailelement": "Імя ўдзельніка: $1\nЧасовы пароль: $2",
+       "passwordreset-emailelement": "Імя ўдзельніка: \n$1\n\nЧасовы пароль: \n$2",
        "passwordreset-emailsent": "Ліст пра скіданьне паролю быў дасланы.",
        "passwordreset-emailsent-capture": "Ліст пра скіданьне паролю быў дасланы, што паказана ніжэй.",
        "passwordreset-emailerror-capture": "Ліст пра скіданьне паролю быў створаны і паказаны ніжэй, але не ўдалося адправіць яго {{GENDER:$2|ўдзельніку|ўдзельніцы}}: $1",
        "changeemail-password": "Ваш пароль у {{GRAMMAR:месны|{{SITENAME}}}}:",
        "changeemail-submit": "Зьмяніць адрас электроннай пошты",
        "changeemail-throttled": "Вы зрабілі зашмат спробаў увайсьці ў сыстэму.\nКалі ласка, пачакайце $1 перад наступнай спробай.",
+       "changeemail-nochange": "Калі ласка, увядзіце іншы новы адрас электроннай пошты",
        "resettokens": "Скідваньне токенаў",
        "resettokens-text": "Тут вы можаце скінуць токены, якія даюць вамд доступ да пэўных прыватных зьвестак, асацыяваных з вашым рахункам.\n\nКалі вы выпадкова падзяліліся токенамі зь іншымі, або калі ваш рахунак быў скампрамэтаваны, скарыстайцеся гэтай магчымасьцю і скіньце токены.",
        "resettokens-no-tokens": "Няма што скідаць.",
        "undelete-show-file-submit": "Так",
        "namespace": "Прастора назваў:",
        "invert": "Адваротны выбар",
-       "tooltip-invert": "Пазначце гэтае поле каб схаваць зьмены ў старонках з выбранай прасторы назваў (і зьвязнай прасторы назваў, калі пазначана)",
+       "tooltip-invert": "Пазначце гэтае поле, каб схаваць зьмены старонак з выбранай прасторы назваў (і зьвязнай прасторы назваў, калі пазначана)",
        "tooltip-whatlinkshere-invert": "Адзначце гэтае поле, каб схаваць спасылкі з старонак у вызначанай прасторы назваў",
        "namespace_association": "Зьвязаная прастора назваў",
-       "tooltip-namespace_association": "Пазначце гэтае поле каб уключыць простору назваў абмеркаваньняў (альбо прадметную), зьвязаных з выбранай прасторай назваў",
+       "tooltip-namespace_association": "Пазначце гэтае поле, каб уключыць прастору назваў абмеркаваньняў (альбо прадметную), зьвязаных з выбранай прасторай назваў",
        "blanknamespace": "(Асноўная)",
        "contributions": "Унёсак {{GENDER:$1|удзельніка|удзельніцы}}",
        "contributions-title": "Унёсак {{GENDER:$1|удзельніка|удзельніцы}} $1",
        "show-big-image-preview": "Памер прагляду: $1.",
        "show-big-image-other": "{{PLURAL:$2|1=Іншае разрозьненьне|Іншыя разрозьненьні}}: $1.",
        "show-big-image-size": "$1 × $2 піксэлаў",
-       "file-info-gif-looped": "паўтараючыся",
+       "file-info-gif-looped": "паўтараецца",
        "file-info-gif-frames": "$1 {{PLURAL:$1|кадар|кадры|кадраў}}",
        "file-info-png-looped": "паўтараючыся",
        "file-info-png-repeat": "паўтораны $1 {{PLURAL:$1|раз|разы|разоў}}",
        "intentionallyblankpage": "Гэтая старонка наўмысна пакінутая пустой",
        "external_image_whitelist": " #Пакіньце гэты радок такім, які ён ёсьць<pre>\n#Зьмясьціце часткі рэгулярных выразаў (толькі частку якая знаходзіцца паміж //) ніжэй\n#Яны будуць суаднесеныя з URL-адрасамі вонкавых выяваў\n#Тыя, якія будуць пасаваць будуць паказвацца як выявы, астатнія толькі як спасылкі\n#Радкі, пазначаныя #, лічыцца камэнтарамі\n#Рэгістар сымбаляў ня ўлічваецца\n\n#Зьмясьціце ўсе часткі рэгулярных выразаў над гэтым радком. Сам радок пакіньце ў такім жа выглядзе</pre>",
        "tags": "Дзейныя меткі зьменаў",
-       "tag-filter": "Фільтар [[Special:Tags|тэгаў]]:",
+       "tag-filter": "Фільтар [[Special:Tags|метак]]:",
        "tag-filter-submit": "Фільтар",
-       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|1=ТÑ\8dг|ТÑ\8dгі}}]]: $2)",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|1=Ð\9cеÑ\82ка|Ð\9cеÑ\82кі}}]]: $2)",
        "tags-title": "Меткі",
        "tags-intro": "На гэтай старонцы знаходзіцца сьпіс метак, якімі праграмнае забесьпячэньне можа пазначыць рэдагаваньне, і іх значэньне.",
        "tags-tag": "Назва меткі",
        "tags-display-header": "Новыя запісы ў сьпісе зьменаў",
        "tags-description-header": "Поўнае апісаньне значэньня",
        "tags-source-header": "Крыніца",
-       "tags-active-header": "Актыўны?",
+       "tags-active-header": "Актыўная?",
        "tags-hitcount-header": "Пазначаныя зьмены",
        "tags-actions-header": "Дзеяньні",
        "tags-active-yes": "Так",
        "tags-update-no-permission": "Вы ня маеце права на дадаваньне ці выдаленьне метак зьменаў для асобных вэрсіяў ці запісаў журналаў.",
        "tags-update-add-not-allowed-one": "Метка «$1» ня можа быць дададзеная ўручную.",
        "tags-update-add-not-allowed-multi": "{{PLURAL:$2|1=Наступную метку|Наступныя меткі}} нельга дадаваць уручную: $1",
+       "tags-update-remove-not-allowed-one": "Метка «$1» ня можа быць выдаленая.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|1=Наступная метка на можа быць выдаленая|Наступныя меткі ня могуць быць выдаленыя}} ўручную: $1",
        "tags-edit-title": "Рэдагаваньне метак",
        "tags-edit-manage-link": "Кіраваньне меткамі",
        "tags-edit-revision-selected": "{{PLURAL:$1|1=Абраная вэрсія|Абраныя вэрсіі}} [[:$2]]:",
        "tags-edit-remove": "Выдаліць гэтыя меткі:",
        "tags-edit-remove-all-tags": "(выдаліць усе меткі)",
        "tags-edit-chosen-placeholder": "Абярыце меткі",
+       "tags-edit-chosen-no-results": "Адпаведныя меткі ня знойдзеныя",
+       "tags-edit-reason": "Прычына:",
+       "tags-edit-revision-submit": "Дастасаваць зьмены да {{PLURAL:$1|1=гэтай вэрсіі|$1 вэрсіяў}}",
+       "tags-edit-logentry-submit": "Дастасаваць зьмены да {{PLURAL:$1|$1 журнальнага запісу|$1 журнальных запісаў}}",
+       "tags-edit-success": "Зьмены былі пасьпяхова дастасаваныя.",
+       "tags-edit-failure": "Гэтыя зьмены ня могуць быць дастасаваныя:\n$1",
+       "tags-edit-nooldid-title": "Няслушная мэтавая вэрсія",
        "comparepages": "Параўнаньне старонак",
        "compare-page1": "Старонка 1",
        "compare-page2": "Старонка 2",
        "api-error-badaccess-groups": "У Вас няма дазволу загружаць файлы ў гэтую вікі.",
        "api-error-badtoken": "Унутраная памылка: няслушны ключ.",
        "api-error-copyuploaddisabled": "Загрузка з URL-адрасу забароненая на гэтым сэрвэры.",
-       "api-error-duplicate": "Ужо {{PLURAL:$1|1=існуе [$2 іншы файл]|існуюць [$2 іншыя файлы]}} з такім жа зьместам.",
-       "api-error-duplicate-archive": "Раней на сайце {{PLURAL:$1|1=быў [$2 файл]|былі [$2 файлы]}} з дакладна такім жа зьместам, але {{PLURAL:$1|1=ён быў выдалены|яны былі выдаленыя}}.",
-       "api-error-duplicate-archive-popup-title": "Дублікаты {{PLURAL:$1|1=файла, які ўжо быў выдалены|файлаў, якія ўжо былі выдаленыя}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|1=Ідэнтычны файл|Ідэнтычныя файлы}}",
+       "api-error-duplicate": "На сайце ўжо {{PLURAL:$1|1=існуе іншы файл|існуюць іншыя файлы}} з такім жа зьместам.",
+       "api-error-duplicate-archive": "Раней на сайце {{PLURAL:$1|1=быў файл|былі файлы}} з дакладна такім жа зьместам, але {{PLURAL:$1|1=ён быў выдалены|яны былі выдаленыя}}.",
        "api-error-empty-file": "Дасланы Вамі файл быў пусты.",
        "api-error-emptypage": "Стварэньне новых пустых старонак забаронена.",
        "api-error-fetchfileerror": "Унутраная памылка: падчас атрыманьня файла штосьці здарылася.",
index 61b60cb..748b6f4 100644 (file)
@@ -22,7 +22,8 @@
                        "아라",
                        "Unomano",
                        "Mikalai Udodau",
-                       "Artificial123"
+                       "Artificial123",
+                       "Macofe"
                ]
        },
        "tog-underline": "Падкрэсліваць спасылкі:",
        "passwordreset-emailtitle": "Інфармацыя пра рахунак на сайце {{SITENAME}}",
        "passwordreset-emailtext-ip": "Нехта (магчыма вы, з IP-адрасу $1) запытаў скід  вашага пароля ў праекце {{SITENAME}} ($4).\n{{PLURAL:$3|Наступны ўліковы запіс звязаны|Наступныя ўліковыя запісы звязаны}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць {{PLURAL:$5|адзін дзень|$5 дні|$5 дзён}}.\nВы павінны зараз увайсці ў сістэму і абраць новы пароль. Калі вы не рабілі гэтага запыту, ці ўспомнілі свой зыходны пароль і не жадаеце яго мяняць, вы можаце праігнараваць гэтае паведамленне і працягнуць выкарыстоўваць свой стары пароль.",
        "passwordreset-emailtext-user": "Удзельнік $1 з праекта {{SITENAME}} запытаў скід вашага пароля ў праекце {{SITENAME}}\n($4).\n{{PLURAL:$3|Наступны ўліковы запіс звязаны|Наступныя уліковыя запісы звязаны}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць {{PLURAL:$5|$5 дзень |$5 дні |$5 дзён}}.\nВы павінны зараз увайсці ў сістэму і выбраць новы пароль. Калі вы не рабілі гэтага запыту, ці ўспомнілі свой зыходны пароль і не жадаеце яго мяняць, вы можаце праігнараваць гэтае паведамленне і працягваць выкарыстоўваць свой стары пароль.",
-       "passwordreset-emailelement": "Імя ўдзельніка: $1\nЧасовы пароль: $2",
+       "passwordreset-emailelement": "Імя ўдзельніка: \n$1\n\nЧасовы пароль: \n$2",
        "passwordreset-emailsent": "Па электроннай пошце быў адпраўлены ліст пра скід пароля.",
        "passwordreset-emailsent-capture": "Ніжэй прыведзены адпраўлены ліст пра скід пароля.",
        "passwordreset-emailerror-capture": "Ніжэй прыведзены створаны ліст пра скід пароля, яго адпраўка не атрымалася па прычыне: $1",
        "emailuser": "Эл.пошта ўдзельніка",
        "emailuser-title-target": "Напісаць ліст {{GENDER:$1|удзельніку|удзельніцы}}",
        "emailuser-title-notarget": "Напісанне электроннага ліста ўдзельніку",
-       "emailpage": "Зварот да ўдзельніка праз эл.пошту",
        "emailpagetext": "Тут можна выслаць эл.пошту гэта{{GENDER:$1|му ўдзельніку|й удзельніцы}}.\nАдрас эл.пошты, уведзены вамі ў [[Special:Preferences|сваіх настройках]], з'явіцца ў полі \"Ад каго (From)\" вашага ліста, і атрымальнік зможа адказаць на ваш ліст.",
        "defemailsubject": "{{SITENAME}} — Ліст ад $1",
        "usermaildisabled": "Электронная пошта ўдзельніка не працуе",
        "api-error-badtoken": "Унутраная памылка: няслушны ключ.",
        "api-error-copyuploaddisabled": "Загрузка з URL-адрасу забароненая на гэтым серверы.",
        "api-error-duplicate": "Ужо {{PLURAL:$1|існуе [$2 іншы файл]|існуюць [$2 іншыя файлы]}} з такім жа зместам.",
-       "api-error-duplicate-archive": "Раней на сайце {{PLURAL:$1|ўжо быў [$2 файл]|былі [$2 файлы]}} з дакладна такім жа зместам, але {{PLURAL:$1|ён быў выдалены|яны былі выдаленыя}}.",
-       "api-error-duplicate-archive-popup-title": "Дублікаты {{PLURAL:$1|файла, які ўжо быў выдалены|файлаў, якія ўжо былі выдаленыя}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Ідэнтычны файл|Ідэнтычныя файлы}}",
+       "api-error-duplicate-archive": "Раней на сайце {{PLURAL:$1|ўжо быў файл|былі файлы}} з дакладна такім жа зместам, але {{PLURAL:$1|ён быў выдалены|яны былі выдаленыя}}.",
        "api-error-empty-file": "Дасланы Вамі файл быў пусты.",
        "api-error-emptypage": "Стварэнне новых пустых старонак забаронена.",
        "api-error-fetchfileerror": "Унутраная памылка: падчас атрымання файла штосьці здарылася.",
index 45d6601..60d95bb 100644 (file)
@@ -28,7 +28,8 @@
                        "ShadeOfGrey",
                        "PetaRZ",
                        "Macofe",
-                       "V111P"
+                       "V111P",
+                       "Лорд Бъмбъри"
                ]
        },
        "tog-underline": "Подчертаване на препратките:",
        "pool-timeout": "Изтичане на времето за заключване на страницата",
        "pool-queuefull": "Опашката за заявки е пълна",
        "pool-errorunknown": "Непозната грешка",
+       "poolcounter-usage-error": "Грешка при ползване $1",
        "aboutsite": "За {{SITENAME}}",
        "aboutpage": "Project:За {{SITENAME}}",
        "copyright": "Освен ако не е посочено друго, съдържанието е достъпно при условията на $1.",
        "nstab-template": "Шаблон",
        "nstab-help": "Помощ",
        "nstab-category": "Категория",
+       "mainpage-nstab": "Главна страница",
        "nosuchaction": "Няма такова действие",
        "nosuchactiontext": "Действието, указано в интернет адреса, е невалидно.\nМоже би сте допуснали грешка в изписването на адреса или сте последвали некоректна хипервръзка.\nПроблемът може да се дължи и на грешка в софтуера на {{SITENAME}}.",
        "nosuchspecialpage": "Няма такава специална страница",
        "readonly_lag": "Базата от данни беше автоматично заключена, докато подчинените сървъри успеят да се съгласуват с основния сървър.",
        "internalerror": "Вътрешна грешка",
        "internalerror_info": "Вътрешна грешка: $1",
+       "internalerror-fatal-exception": "Фатална грешка от тип „$1“",
        "filecopyerror": "Файлът „$1“ не можа да бъде копиран като „$2“.",
        "filerenameerror": "Файлът „$1“ не можа да бъде преименуван на „$2“.",
        "filedeleteerror": "Файлът „$1“ не можа да бъде изтрит.",
        "no-null-revision": "Не може да бъде създадена празна версия на страницата „$1“",
        "badtitle": "Невалидно заглавие",
        "badtitletext": "Желаното заглавие на страница е невалидно, празно или неправилна препратка към друго уики. Възможно е да съдържа знаци, които не са позволени в заглавия.",
+       "title-invalid-utf8": "Желаната страница съдържа невалиден низ с кодиране UTF-8",
+       "title-invalid-interwiki": "Желаното заглавие на страница съдържа препратка към друго уики, което не може да бъде ползвано в заглавия.",
+       "title-invalid-talk-namespace": "Желаното заглавие на страница се отнася към беседа, която не съществува",
+       "title-invalid-characters": "Желаното заглавие на статия съдържа невалидни знаци: „$1“",
+       "title-invalid-relative": "Заглавието съдържа относителен път. Относителни заглавия на статии (./,../) са невалидни, защото често ще са недостижимо, когато биват извиквани от браузъра на потребителя.",
+       "title-invalid-magic-tilde": "Желаното заглавие на статия съдържа невалидна поредица от вълчнички (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Желаното заглавие на статия е твърде дълго. Трябва да е не по-дълго от $1 {{PLURAL:$1|байт|байта}} в кодиране UTF-8.",
        "perfcached": "Следните данни са извлечени от склада и затова може да не отговарят на текущото състояние. В складираното копие {{PLURAL:$1|е допустим най-много един резултат|са допустими най-много $1 резултата}}.",
        "perfcachedts": "Данните са складирани и обновени за последно на $1. Най-много {{PLURAL:$4|един резултат е допустим и наличен|$4 резултата са допустими и налични}} в складираното копие.",
        "querypage-no-updates": "Обновяването на тази страница в момента е изключено. Засега данните тук няма да бъдат обновявани.",
        "passwordreset-emailtitle": "Подробности за сметката в {{SITENAME}}",
        "passwordreset-emailtext-ip": "Някой (вероятно вие, от IP адрес $1) поиска възстановяване на паролата за сметката в {{SITENAME}} ($4). За {{PLURAL:$3|следната сметка|следните сметки}}\nе посочен този адрес за електронна поща:\n\n$2\n\n{{PLURAL:$3|Тази временна парола ще бъде активна|Тези временни пароли ще бъдат активни}} {{PLURAL:$5|един ден|$5 дни}}.\nСега би трябвало да влезете в системата и да си изберете нова парола. Ако заявката е направена от друг или пък сте си спомнили паролата и не искате да я променяте, можете да пренебрегнете това съобщение и да продължите да използвате старата си парола.",
        "passwordreset-emailtext-user": "Потребител $1 от {{SITENAME}} поиска възстановяване на паролата за сметката в {{SITENAME}}\n($4). За {{PLURAL:$3|следната сметка|следните сметки}} е посочен този адрес за електронна поща:\n\n$2\n\n{{PLURAL:$3|Тази временна парола ще бъде активна|Тези временни пароли ще бъдат активни}} {{PLURAL:$5|един ден|$5 дни}}.\nСега би трябвало да влезете в системата и да изберете нова парола. Ако заявката е направена \nот друг или пък сте си спомнили паролата и не искате да я променяте, можете да пренебрегнете \nтова съобщение и да продължите да използвате старата си парола.",
-       "passwordreset-emailelement": "Потребителско име: $1\nВременна парола: $2",
+       "passwordreset-emailelement": "Потребителско име: \n$1\n\nВременна парола: \n$2",
        "passwordreset-emailsent": "На електронната поща беше изпратено писмо за възстановяване на паролата.",
        "passwordreset-emailsent-capture": "По-долу е показано електронното писмо за възстановяване на паролата, което беше изпратено.",
        "passwordreset-emailerror-capture": "По-долу е показано създадено електронно писмо за възстановяване на паролата, което не беше изпратено на {{GENDER:$2|потребителя}}: $1",
        "api-error-badtoken": "Вътрешна грешка: неправилен маркер.",
        "api-error-copyuploaddisabled": "Качването през URL е забранено на този сървър.",
        "api-error-duplicate": "На сайта вече има качени {{PLURAL:$1|[$2 друг файл]|[$2 други файла]}} с идентично съдържание.",
-       "api-error-duplicate-archive": "На сайта вече е имало {{PLURAL:$1|качен [$2 друг файл]|качени [$2 други файла]}} с идентично съдържание, {{PLURAL:$1|който е бил изтрит|които са били изтрити}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Дублиращ се файл, който вече е бил изтрит|Дублиращи се файлове, които вече са били изтрити}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Повтарящ се файл|Повтарящи се файлове}}",
+       "api-error-duplicate-archive": "На сайта вече е имало {{PLURAL:$1|качен друг файл|качени други файла}} с идентично съдържание, {{PLURAL:$1|който е бил изтрит|които са били изтрити}}.",
        "api-error-empty-file": "Заявеният за качване файл беше празен.",
        "api-error-emptypage": "Създаването на нови, празени страници, не е разрешено.",
        "api-error-fetchfileerror": "Вътрешна грешка: Нещо се обърка при извличане на файла.",
index cf12609..b720da0 100644 (file)
        "passwordreset-capture-help": "اگه ای گزینه ئا بگیندیت ، ایمیل (گو موقتین پاسوردا) بی شما نشان داته ئه بیئت و په کار زوروکا هم دیم داته ئه بیئت.",
        "passwordreset-email": "ایمیل ادرس:",
        "passwordreset-emailtitle": "حسابئ مئلومات بی {{SITENAME}}",
-       "passwordreset-emailelement": "کار زوروکئ نام: $1\nموقت ئین چیهرگال: $2",
+       "passwordreset-emailelement": "کار زوروکئ نام: \n$1\n\nموقت ئین چیهرگال: \n$2",
        "passwordreset-emailsent": "یک ایمیل په چیهر گالئ  پاک بوتین  خاتیرا دیم داته بوت.",
        "passwordreset-emailsent-capture": "یک ایمیلئ په بیئرگردینتین ئا پاسوردئ خاتیرا، دیم داته بوت.",
        "changeemail": "ایمیل ادرسی تغیر داتین",
        "emailuser": "ای کار زوروکئ ایمیل",
        "emailuser-title-target": "ایمیل په {{GENDER:$1|کار زوروکا}}",
        "emailuser-title-notarget": "کار زوروکی ایمیل",
-       "emailpage": "کار زوروکی ایمیل",
        "defemailsubject": "{{SITENAME}} ایمیل شه کار زوروکئ نیمگا «$1»",
        "usermaildisabled": "کار زوروکئ ایمیل غیر پئال اینت",
        "usermaildisabledtext": "شما نه توانیت ای ویکی تا په دیگه رین کارزوروکان ایمیل دیم دهیت.",
        "searchsuggest-containing": "شامیلین دیمان...",
        "api-error-badaccess-groups": "شما اجازه په پایلی ئی بُرز کورتین ئا بئ ای ویکی ای تا نداریت.",
        "api-error-badtoken": "داخیلی ئین خه تا: امنیتی ئین کوڈ سه ئی نه اینت (Bad token).",
-       "api-error-duplicate-popup-title": "تکرارین {{PLURAL:$1|فایل|فایلان}}",
        "api-error-empty-file": "فایلی که دیم داته بوت خالی ات.",
        "api-error-emptypage": "خالی ئین دیمانی جۆڑ کورتین جایز نه اینت.",
        "api-error-file-too-large": "فایلی که دیم داتیت بئ حد ٹوو ات.",
index 5a894ea..9467810 100644 (file)
        "category-media-header": "\"$1\" श्रेणी में मीडिया",
        "category-empty": "''इ श्रेणी में इ समय कउनो पन्ना या मीडिया नइखे।''",
        "hidden-categories": "{{PLURAL:$1|छिपावल गइल श्रेणी|छिपावल गइल श्रेणी सब}}",
-       "hidden-category-category": "à¤\9bà¥\81पावल गइल श्रेणी",
+       "hidden-category-category": "à¤\9bिपावल गइल श्रेणी",
        "category-subcat-count": "{{PLURAL:$2|ए श्रेणी में खाली निम्नलिखित श्रेणी बा|ए श्रेणी में कुल $2 में से {{PLURAL:$1|उपश्रेणी|$1 उपश्रेणी सब}} बा।}}",
        "category-subcat-count-limited": "ए श्रेणी में निम्नलिखित {{PLURAL:$1|उपश्रेणी बा|$1 उपश्रेणी बाड़ीं।}}",
        "category-article-count": "{{PLURAL:$2|ए श्रेणी में मात्र निम्नलिखित पन्न बा।|इ श्रेणी में निम्नलिखित {{PLURAL:$1|पन्ना बा|$1 पन्ना बाड़े}}, कुल पन्ना $2}}",
        "category-file-count": "{{PLURAL:$2|ए श्रेणी में खाली निम्नलिखित फइल बा।|ए श्रेणी में निम्नलिखित कुल फ़ाइलं $2 {{PLURAL:$1|फाइल|$1फाइलं}} बाड़े}}",
        "category-file-count-limited": "वर्तमान में निम्नलिखित {{PLURAL:$1|पन्ना|$1 पन्नां}} इ श्रेणीं में बाड़े।",
        "listingcontinuesabbrev": "जारी...",
-       "index-category": "सà¥\82à¤\9aà¥\80बदà¥\8dध à¤ªà¥\83षà¥\8dठ",
+       "index-category": "सà¥\82à¤\9aà¥\80बदà¥\8dध à¤ªà¤¨à¥\8dना",
        "noindex-category": "बिना सूचीबद्ध पन्ना",
-       "broken-file-category": "à¤\9fà¥\82à¤\9fल à¤«à¤¼à¤¾à¤\87ल à¤\95ड़ियन à¤µà¤¾à¤²à¤¾ à¤ªà¤¨à¥\8dना",
+       "broken-file-category": "टूटल फाइल कड़ियन वाला पन्ना",
        "about": "बारे में",
        "article": "सामग्री पन्ना",
        "newwindow": "(नया विंडो में खोलीं)",
        "qbpageoptions": "ई पन्ना",
        "qbmyoptions": "हमार पन्ना",
        "faq": "साधारण सवाल",
-       "faqpage": "Project:साधारण सवाल",
-       "actions": "à¤\95à¥\8dरिया",
-       "namespaces": "नामस्थान",
+       "faqpage": "Project:à¤\85à¤\95à¥\8dसर à¤ªà¥\82à¤\9bल à¤\9cाà¤\8f à¤µà¤¾à¤²à¤¾ सवाल",
+       "actions": "à¤\95ारà¥\8dयवाहà¥\80",
+       "namespaces": "नाà¤\81वस्थान",
        "variants": "अउरी प्रकार",
        "navigation-heading": "नेविगेशन मेनु",
-       "errorpagetitle": "तà¥\8dरà¥\81à¤\9fी",
-       "returnto": "जाईं $1 पर।",
+       "errorpagetitle": "à¤\96राबी",
+       "returnto": "$1 पर लौट जाईं।",
        "tagline": "भोजपुरी {{SITENAME}} से",
        "help": "मदद",
        "search": "खोज",
        "personaltools": "व्यक्तिगत औजार",
        "articlepage": "सामग्री पन्ना देखीं",
        "talk": "बात-चीत",
-       "views": "राय",
+       "views": "à¤\95à¤\87सन à¤²à¤\89à¤\95à¥\80?",
        "toolbox": "औजार",
        "userpage": "प्रयोगकर्ता पन्ना देखीं",
        "projectpage": "परियोजना पन्ना देखीं",
        "imagepage": "फाइल पन्ना देखीं",
        "mediawikipage": "सन्देश पन्ना देखीं",
-       "templatepage": "à¤\96ाà¤\81à¤\9aा पन्ना देखीं",
+       "templatepage": "à¤\9fà¥\87मà¥\8dपलà¥\87à¤\9f पन्ना देखीं",
        "viewhelppage": "मदद पन्ना देखीं",
        "categorypage": "श्रेणी पन्ना देखीं",
        "viewtalkpage": "बात-चीत देखीं",
        "otherlanguages": "दुसरी भाषा में",
-       "redirectedfrom": "($1 à¤¦à¥\8dवारा अनुप्रेषित)",
-       "redirectpagesub": "पà¥\81न: à¤¨à¤¿à¤°à¥\8dदà¥\87शित पन्ना",
+       "redirectedfrom": "($1 à¤¸à¥\87 अनुप्रेषित)",
+       "redirectpagesub": "à¤\85नà¥\81पà¥\8dरà¥\87षण पन्ना",
        "redirectto": "अनुप्रेषित:",
        "lastmodifiedat": "$1 के $2 पर ए पन्ना पर अन्तिम बेर बदलाव भइल।",
        "viewcount": "ई पन्ना {{PLURAL:$1|एक|$1}} बार देखल गईल बा।",
        "page-rss-feed": "\"$1\" आर एस एस फिड",
        "page-atom-feed": "\"$1\" एटम फीड",
        "red-link-title": "$1 (पन्ना मौजूद नइखे)।",
-       "sort-descending": "à¤\85वरà¥\8bहà¥\80 क्रम में",
-       "sort-ascending": "à¤\86रà¥\8bहà¥\80 क्रम में",
+       "sort-descending": "à¤\89तरत क्रम में",
+       "sort-ascending": "à¤\9aढ़त क्रम में",
        "nstab-main": "पन्ना",
        "nstab-user": "सदस्य पन्ना",
-       "nstab-media": "मिडà¥\80या पन्ना",
+       "nstab-media": "मà¥\80डिया पन्ना",
        "nstab-special": "विशेष पन्ना",
        "nstab-project": "प्रोजेक्ट पन्ना",
        "nstab-image": "फाइल",
        "passwordreset-emailtitle": "{{SITENAME}} पर खाता विवरण",
        "passwordreset-emailtext-ip": "केहु (शायद रउए, $1 आइ॰पी पता से) {{SITENAME}} ($4) पर आपन {{PLURAL:$3|गुप्तशब्द}} के रीसेट करे के अनुरोध कईले बानी। इ ई-मेल पता से निम्न {{PLURAL:$3|खाता जुड़ल बा}}:\n\n$2\n\n{{PLURAL:$3|इ}} अस्थायी गुप्तशब्द {{PLURAL:$5|एक दिन|$5 दिन}} के बाद काम ना करी। रउआ खाता में प्रवेश करके एगो नया गुप्तशब्द अभी चुन लेवे के चाहीं। यदि इ अनुरोध केहु अउर कइले बा, या फिर रउआ आपन मूल गुप्तशब्द याद आ गईल बा, अउर आप {{PLURAL:$3|आपन}} गुप्तशब्द नइखी बदले के चाहत त, रउआ इ संदेश के अनदेखा कर के आपन पुरानका गुप्तशब्द के प्रयोग जारी रख सकत बानी।",
        "passwordreset-emailtext-user": "{{SITENAME}} ($4) पर सदस्य $1 राउर {{PLURAL:$3|खाता}} के गुप्तशब्द के पुनर्स्थापित करे के अनुरोध कइले बानी। इ ई-मेल पता से निम्न {{PLURAL:$3|खाता जुड़ल बा}}:\n\n$2\n\n{{PLURAL:$3|इ}} अस्थायी गुप्तशब्द {{PLURAL:$5|एक दिन|$5 दिन}} के बाद काम ना करी।\nरउआ खाता में प्रवेश करके एगो नया गुप्तशब्द अभीये चुन लेवे के चाहीं। यदि इ अनुरोध केहु अउर कइले बा, या फिर रउआ आपन मूल गुप्तशब्द याद आ गईल बा, अउर रउआ {{PLURAL:$3|आपन}} गुप्तशब्द नईखीं बदले के चाहत त, रउआ इ संदेश के अनदेखा कर के आपन पुरनका गुप्तशब्द के प्रयोग जारी रख सकत बानीं।",
-       "passwordreset-emailelement": "सदस्यनाम: $1\nअस्थायी गुप्तशब्द: $2",
+       "passwordreset-emailelement": "सदस्यनाम: \n$1\n\nअस्थायी गुप्तशब्द: \n$2",
        "passwordreset-emailsent": "एगो गुप्तशब्द रिसेट ई-मेल भेजल जा चुकल बा।",
        "passwordreset-emailsent-capture": "नीचे दिखावल गईल गुप्तशब्द पुनर्स्थापना ई-मेल भेज दिहल गईल बा।",
        "passwordreset-emailerror-capture": "नीचे दिखावल गईल गुप्तशब्द पुनर्स्थापना ई-मेल उत्पन्न करल गईल रहल, परंतु उ के {{GENDER:$2|सदस्य}} के भेजे के क्रिया असफल रहल।\nत्रुटि: $1",
        "watchthis": "धियानसूची में डालीं",
        "savearticle": "पन्ना सहेजीं",
        "preview": "पूर्वावलोकन",
-       "showpreview": "नमà¥\82ना à¤¦à¥\87à¤\96ाà¤\88ं",
-       "showdiff": "परिवरà¥\8dतन à¤¦à¥\87à¤\96ाà¤\88ं",
+       "showpreview": "à¤\9dलà¤\95 à¤¦à¥\87à¤\96à¥\80ं",
+       "showdiff": "बदलाव à¤¦à¥\87à¤\96à¥\80ं",
        "blankarticle": "<strong>चेतावनी:</strong> आप एगो खाली पन्ना के बनावे जा रहल बानी।\nयदि आप \"{{int:savearticle}}\" के फेर से दबायेब त पन्ना बिना कउनो सामग्री के बन जाई।",
        "anoneditwarning": "<strong>चेतावनी:</strong> रउआ आपन खाता में प्रवेश नइखीं कइले। अगर रउआ कौनों बदलाव करत बानी त राउर आईपी पता दर्ज होई। अगर रउआ <strong>[$1 लॉग इन]</strong> या <strong>[$2 नया खाता बनाइब]</strong> त, अउरी सुबिधा सब की संघे राउर संपादन के श्रेय भी राउर सदस्य-नाँव से जुड़ जाई!",
        "anonpreviewwarning": "''रउआ खाता में प्रवेश नईखीं भईल। सुरक्षित करेब त ई पन्ना के सम्पादन इतिहास पर राउर आई पी पता दर्ज हो जाई।\"",
index 863182a..643313f 100644 (file)
        "passwordreset-emailtitle": "Rarincian akun pada {{SITENAME}}",
        "passwordreset-emailtext-ip": "Ada urang (pinanya Pian, matan alamat IP $1) maminta sabuting pangingat hagan rarincian akun Pian gasan {{SITENAME}} ($4). Pamakai barikut {{PLURAL:$3|akun|akun}}\ntarait awan suril:\n\n$2\n\n{{PLURAL:$3|katasunduk pahadangan ngini|kakatasunduk pahadangan ngini}} akan kadaluarsa dalam {{PLURAL:$5|asa hari|$5 hari}}.\nPian parlu babuat log wan mamilih katasunduk hanyar wayah ni jua. Amun urang lain nang maminta ngini, atawa amun Pian sudah paingatan awan katasunduk Pian, wan Pian kada handak maubahnya, Pian kawa kada mahuwal pasan ngini wan manyambung mamuruk katasunduk lawas Pian.",
        "passwordreset-emailtext-user": "Ada urang (pinanya Pian, matan alamat IP $1) maminta sabuting pangingat hagan rarincian akun Pian gasan {{SITENAME}} ($4). Pamakai barikut {{PLURAL:$3|akun|akun}}\ntarait awan suril:\n\n$2\n\n{{PLURAL:$3|katasunduk pahadangan ngini|kakatasunduk pahadangan ngini}} akan kadaluarsa dalam {{PLURAL:$5|asa hari|$5 hari}}.\nPian parlu babuat log wan mamilih katasunduk hanyar wayah ini jua. Amun urang lain nang maminta ngini, atawa amun Pian sudah paingatan awan katasunduk Pian, wan Pian kada handak maubahnya, Pian kawa kada mahuwal pasan ngini wan manyambung mamuruk katasunduk lawas Pian.",
-       "passwordreset-emailelement": "Ngaran pamakai: $1\nKatasunduk pahadangan: $2",
+       "passwordreset-emailelement": "Ngaran pamakai: \n$1\n\nKatasunduk pahadangan: \n$2",
        "passwordreset-emailsent": "Sabuting suril pangingat sudah takirim.",
        "passwordreset-emailsent-capture": "Sabuting suril pangingat sudah dikirim, nangkaya ditampaiakan di bawah.",
        "passwordreset-emailerror-capture": "Suril paugingat, nang ditampaikan di bawah, hudah dihasilakan, tagal gagal mangirimakannya ka pamakai: $1",
        "mailnologin": "Kadada alamat kirim",
        "mailnologintext": "Pian musti [[Special:UserLogin|babuat log]] wan baisi sabuah alamat suril sah di [[Special:Preferences|kakatujuan]] Pian hagan mangirim suril ka papamuruk lain.",
        "emailuser": "Suril pamakai",
-       "emailpage": "Surili pamakai",
        "emailpagetext": "Pian kawa mamuruk purmulir di bawah hagan mangirim sabuah suril ka pamuruk ngini.\nAlamat sril Pian pintang [[Special:Preferences|kakatujuan pamuruk Pian]] akan cungul  sawagai \"Matan\" alamat suril, lalu-ai panarima akan kawa langsung mambalas ka Pian.",
        "defemailsubject": "Suril {{SITENAME}} matan pamuruk \"$1\"",
        "usermaildisabled": "Suril pamuruk dipajahakan",
index e04beca..c88085a 100644 (file)
@@ -25,7 +25,8 @@
                        "Aftabuzzaman",
                        "Wikisagnik",
                        "Aashaa",
-                       "Sayma Jahan"
+                       "Sayma Jahan",
+                       "Macofe"
                ]
        },
        "tog-underline": "সংযোগগুলির নিচে দাগ দেখানো হোক:",
        "passwordreset-emailtitle": "{{SITENAME}} সাইটে ব্যবহারকারীর বিস্তারিত তথ্যাদি",
        "passwordreset-emailtext-ip": "কেউ একজন (সম্ভবত আপনি, $1 আইপি ঠিকানা থেকে) {{SITENAME}} ($4) সাইটের জন্য আপনার\nপাসওয়ার্ড বদলের জন্য অনুরোধ করেছে। নিচের ব্যবহারকারী {{PLURAL:$3|অ্যাকাউন্টটি|অ্যাকাউন্টগুলো}}\nএই ই-মেইল ঠিকানার সাথে সংযুক্ত:\n\n$2\n\n{{PLURAL:$3|এই অস্থায়ী পাসওয়ার্ডটি|এই অস্থায়ী পাসওয়ার্ডগুলো}} আগামী {{PLURAL:$5|এক দিন|$5 দিন}} পর মেয়াদোত্তীর্ণ হয়ে যাবে।\nআপনার অবশ্যই লগ-ইন করে একটি নতুন পাসওয়ার্ড পছন্দ করা উচিত। যদি অন্য কেউ এই অনুরোধ করে থাকে,\nঅথবা আপনি যদি পুরোনো পাসওয়ার্ড মনে করতে পারেন, এবং আপনার সেটি পরিবর্তন করার কোনো ইচ্ছা না থাকে, তবে\nআপনি এই বার্তাটি উপেক্ষা করতে পারে, এবং আপনার পুরোনো পাসওয়ার্ড ব্যবহার করা চালিয়ে যেতে পারেন।",
        "passwordreset-emailtext-user": "ব্যবহারকারী $1 {{SITENAME}} ($4) সাইটের জন্য আপনার পাসওয়ার্ড বদলের জন্য অনুরোধ করেছে। নিচের ব্যবহারকারী {{PLURAL:$3|অ্যাকাউন্টটি|অ্যাকাউন্টগুলো}}\nএই ই-মেইল ঠিকানার সাথে সংযুক্ত:\n\n$2\n\n{{PLURAL:$3|এই অস্থায়ী পাসওয়ার্ডটি|এই অস্থায়ী পাসওয়ার্ডগুলো}} আগামী {{PLURAL:$5|এক দিন|$5 দিন}} পর মেয়াদোত্তীর্ণ হয়ে যাবে।\nআপনার অবশ্যই লগ-ইন করে একটি নতুন পাসওয়ার্ড পছন্দ করা উচিত। যদি অন্য কেউ এই অনুরোধ করে থাকে,\nঅথবা আপনি যদি পুরোনো পাসওয়ার্ড মনে করতে পারেন, এবং আপনার সেটি পরিবর্তন করার কোনো ইচ্ছা না থাকে, তবে\nআপনি এই বার্তাটি উপেক্ষা করতে পারে, এবং আপনার পুরোনো পাসওয়ার্ড ব্যবহার করা চালিয়ে যেতে পারেন।",
-       "passwordreset-emailelement": "ব্যবহারকারী নাম: $1\nঅস্থায়ী পাসওয়ার্ড: $2",
+       "passwordreset-emailelement": "ব্যবহারকারী নাম: \n$1\n\nঅস্থায়ী পাসওয়ার্ড: \n$2",
        "passwordreset-emailsent": "পাসওয়ার্ড বদলের একটি ই-মেইল পাঠানো হয়েছে।",
        "passwordreset-emailsent-capture": "স্মরণ করিয়ে দেয়ার জন্য একটি ইমেইল করা হয়েছে, যা নিচে দেখানো হচ্ছে।",
        "passwordreset-emailerror-capture": "স্মরণ করিয়ে দেয়ার জন্য একটি ইমেইল তৈরী করা হয়েছিল, যা নিচে দেখানো হচ্ছে, তবে $1 {{GENDER:$2|ব্যবহারকারীকে}} এটি পাঠানো যায়নি!",
        "sectioneditnotsupported-text": "এই সম্পাদনা পাতায় অনুচ্ছেদ সম্পাদনা সমর্থন করে না",
        "permissionserrors": "অনুমতি ত্রুটিসমূহ",
        "permissionserrorstext": "আপনার এটা করার অনুমতি নেই, নিচের {{PLURAL:$1|টি কারণের|টি কারণের}} জন্য:",
-       "permissionserrorstext-withaction": "à¦\86পনার $2 à¦\95রতà§\87 অনুমতি নেই, যার {{PLURAL:$1|কারণ|কারণসমূহ}}:",
+       "permissionserrorstext-withaction": "à¦\86পনার $2 à¦\95রার অনুমতি নেই, যার {{PLURAL:$1|কারণ|কারণসমূহ}}:",
        "recreate-moveddeleted-warn": "'''সতর্কীকরণ: আপনি এমন একটি পাতা পুনরায় তৈরি করছেন যা পূর্বে অপসারণ করা হয়েছিল।'''\n\nআপনি পাতাটি সম্পাদনা চালিয়ে যাওয়া ঠিক হবে কিনা, তা বিবেচনা করুন।\nআপনার সুবিধার্থে পাতাটির অপলুপ্তি লগ এখানে দেয়া হলো:",
        "moveddeleted-notice": "এই পাতাটি অপসারণ করা হয়েছে।\nসূত্র হিসেবে নিচে এ পাতার অবলুপ্তি লগ দেওয়া হলো।",
        "log-fulllog": "সম্পূর্ণ লগ দেখাও",
        "api-error-badtoken": "অভ্যন্তরীণ ত্রুটি: খারাপ টোকেন।",
        "api-error-copyuploaddisabled": "এই সার্ভারে ইউআরএল-এর মাধ্যমে আপলোড করার সুবিধা নিস্ক্রিয় রয়েছে।",
        "api-error-duplicate": "ইতোমধ্যে এই সাইটে একই রকমের কন্টেট সমৃদ্ধ {{PLURAL:$1|[$2 অন্য ফাইল]|[$2 কিছু অন্য ফাইল]}} রয়েছে।",
-       "api-error-duplicate-archive": "একই নাম ও বিষয়বস্তু বিশিষ্ট {{PLURAL:$1| [$2 অপর একটি ফাইল]| [$2 কয়েকটি ফাইল]}} পূর্বে এই উইকিতে ছিলো, এবং {{PLURAL:$1|সেটিকে|সেগুলোকে}} অপসারণ করা হয়েছে।",
-       "api-error-duplicate-archive-popup-title": "অনুলিপি {{PLURAL:$1|ফাইল|ফাইল}} যা ইতমধ্যে অপসারণ করা হয়েছে",
-       "api-error-duplicate-popup-title": "অনুলিপি {{PLURAL:$1|ফাইল|ফাইল}}",
+       "api-error-duplicate-archive": "একই নাম ও বিষয়বস্তু বিশিষ্ট {{PLURAL:$1|অপর একটি ফাইল|কয়েকটি ফাইল}} পূর্বে এই উইকিতে ছিলো, এবং {{PLURAL:$1|সেটিকে|সেগুলোকে}} অপসারণ করা হয়েছে।",
        "api-error-empty-file": "আপনার জমাকৃত ফাইলটি খালি।",
        "api-error-emptypage": "নতুন পাতা তৈরি হচ্ছে, খালি পাতা গ্রহণযোগ্য নয়।",
        "api-error-fetchfileerror": "অভ্যন্তরীণ ত্রুটি: ফাইল নিয়ে আসার সময় কোনো সমস্যা হয়েছিলো।",
index 50a8f7f..89277a2 100644 (file)
        "passwordreset-emailtitle": "Titouroù kont war {{SITENAME}}",
        "passwordreset-emailtext-ip": "Unan bennak (c'hwi moarvat gant ar chomlec'h IP $1) en deus goulennet ma vefe degaset soñj dezhañ eus titouroù e gont evit {{SITENAME}} ($4). Emañ liammet {{PLURAL:$3|ar gont implijer|ar c'hontoù implijer}} da-heul gant ar chomlec'h postel-mañ :\n\n$2\n\nMont a raio da get {{PLURAL:$3|ar ger-tremen da c'hortoz|ar gerioù-tremen da c'hortoz}} a-benn {{PLURAL:$5|un devezh|$5 deiz}}.\nMat e vefe deoc'h kevreañ ha dibab ur ger-tremen nevez bremañ. Mard eo bet goulennet kement-se gant unan bennak all pe m'hoc'h eus soñj eus ho ker-tremen orin ha mar ne fell ket deoc'h e cheñch ken, na daolit ket evezh ouzh ar gemennadenn-mañ ha dalc'hit d'ober gant ho ker-tremen kozh.",
        "passwordreset-emailtext-user": "Goulennet en deus an implijer $1 war  {{SITENAME}} e vefe degaset soñj dezhañ eus titouroù e gont evit {{SITENAME}} ($4). Emañ liammet {{PLURAL:$3|ar gont implijer|ar c'hontoù implijer}} da-heul gant ar chomlec'h postel-mañ :\n\n$2\n\nMont a raio da get {{PLURAL:$3|ar ger-tremen da c'hortoz|ar gerioù-tremen da c'hortoz}} a-benn {{PLURAL:$5|un devezh|$5 deiz}}.\nMat e vefe deoc'h kevreañ ha dibab ur ger-tremen nevez bremañ. Mard eo bet goulennet kement-se gant unan bennak all pe m'hoc'h eus soñj eus ho ker-tremen orin ha mar ne fell ket deoc'h e cheñch ken, na daolit ket evezh ouzh ar gemennadenn-mañ ha dalc'hit d'ober gant ho ker-tremen kozh.",
-       "passwordreset-emailelement": "Anv implijer :           $1\nGer-tremen da c'hortoz : $2",
+       "passwordreset-emailelement": "Anv implijer :           \n$1\n\nGer-tremen da c'hortoz : \n$2",
        "passwordreset-emailsent": "Kaset ez eus bet ur postel deoc'h da adderaouekaat ho ker-tremen.",
        "passwordreset-emailsent-capture": "Ur postel evit aderaouekaat ho ker-tremen, evel diskouezet amañ dindan, zo bet kaset.",
        "passwordreset-emailerror-capture": "Kaset ez eus bet ur postel degas da soñj evel m'emañ diskouezet amañ dindan met c'hwitet eo bet ar gasadenn d'an {{GENDER:$2|implijer|implijerez}} : $1",
        "emailuser": "Kas ur postel d'an implijer-mañ",
        "emailuser-title-target": "Kas ur postel d'an {{PLURAL:$1|an implijer-mañ|an implijerez-mañ}}",
        "emailuser-title-notarget": "Kas ur postel d'un implijer",
-       "emailpage": "Postel implijer",
        "emailpagetext": "Gallout a rit ober gant ar furmskrid a-is a-benn kas ur postel d'an {{GENDER:$1|implijer|implijerez}}-mañ.\nE maezienn \"Kaser\" ho postel e vo merket ar chomlec'h postel resisaet ganeoc'h-c'hwi en ho [[Special:Preferences|Penndibaboù]], d'ar resever da c'hallout respont deoc'h war-eeun ma kar.",
        "defemailsubject": "Postel kaset eus {{SITENAME}} gant an implijer \"$1\"",
        "usermaildisabled": "Diweredekaet eo ar c'has posteloù etre an implijerien.",
        "tooltip-pt-logout": "Digevreañ",
        "tooltip-pt-createaccount": "Erbedet eo deoc'h krouiñ ur gont ha kevreañ ; n'eo ket ret koulskoude.",
        "tooltip-ca-talk": "Kaozeadennoù diwar-benn ar pennad",
-       "tooltip-ca-edit": "Gallout a rit kemmañ ar bajenn-mañ. Implijit ar stokell Rakwelet a-raok enrollañ, mar plij.",
+       "tooltip-ca-edit": "Kemmañ ar bajenn-mañ.",
        "tooltip-ca-addsection": "Kregiñ gant ur rann nevez.",
        "tooltip-ca-viewsource": "Gwarezet eo ar bajenn-mañ. Gallout a rit gwelet an danvez anezhañ memes tra.",
        "tooltip-ca-history": "Stummoù kozh ar bajenn-mañ gant an aozerien anezhi.",
        "tooltip-ca-nstab-main": "Gwelet ar pennad",
        "tooltip-ca-nstab-user": "Gwelet ar bajenn implijer",
        "tooltip-ca-nstab-media": "Gwelet pajenn ar media",
-       "tooltip-ca-nstab-special": "Ur bajenn dibar eo homañ, n'oc'h ket evit kemmañ anezhi.",
+       "tooltip-ca-nstab-special": "Ur bajenn dibar eo homañ ha ne c'haller kemmañ anezhi.",
        "tooltip-ca-nstab-project": "Gwelet pajenn ar raktres",
        "tooltip-ca-nstab-image": "Gwelet pajenn deskrivañ ar bajenn-mañ",
        "tooltip-ca-nstab-mediawiki": "Gwelet kemenn ar reizhiad",
        "spam_reverting": "Distreiñ d'ar stumm diwezhañ hep liamm davet $1",
        "spam_blanking": "Diverkañ an holl stummoù enno liammoù davet $1",
        "spam_deleting": "An holl stummoù enno liammoù war-zu $1, o tiverkañ",
-       "simpleantispam-label": "Taol gwiriañ eneb-strob.\n'''Arabat''' merkañ tra pe dra amañ !",
+       "simpleantispam-label": "Taol gwiriañ eneb-strob.\n<trong>Arabat<strong> merkañ tra pe dra amañ !",
        "pageinfo-title": "Titouroù evit \"$1\"",
        "pageinfo-not-current": "Hon digarezit, ne c'haller ket reiñ an titouroù-mañ evit an adweloù kozh.",
        "pageinfo-header-basic": "Titouroù diazez",
        "api-error-badtoken": "Fazi diabarzh : \"jedouer\" fall.",
        "api-error-copyuploaddisabled": "Diweredekaet eo an enporzhioù dre URL war ar servijer-mañ.",
        "api-error-duplicate": "Bez' {{PLURAL:$1|ez eus [$2 restr all]|[$2 restr all]}} gant an hevelep danvez war al lec'hienn-mañ c'hoazh",
-       "api-error-duplicate-archive": "Bez' e oa {{PLURAL:$1|[$2 ur restr all]|[$2 restroù all]}} c'hoazh enno an hevelep danvez, nemet {{PLURAL:$1|eo bet diverket|int bet diverket}}.",
-       "api-error-duplicate-archive-popup-title": "Eilañ ar {{PLURAL:$1|restr|restroù}} zo bet diverket c'hoazh",
-       "api-error-duplicate-popup-title": "Eilañ {{PLURAL:$1|ar restr|ar restroù}}",
+       "api-error-duplicate-archive": "Bez' e oa {{PLURAL:$1|ur restr all|restroù all}} c'hoazh enno an hevelep danvez, nemet {{PLURAL:$1|eo bet diverket|int bet diverket}}.",
        "api-error-empty-file": "Ar restr hoc'h eus roet a oa goullo.",
        "api-error-emptypage": "N'eo ket aotreet krouiñ pajennoù goullo.",
        "api-error-fetchfileerror": "Fazi diabarzh : aet ez eus un dra bennak a-dreuz en ur glask adtapout ar restr.",
index f54fe35..b615a7d 100644 (file)
        "passwordreset-emailtitle": "Detalji računa na {{SITENAME}}",
        "passwordreset-emailtext-ip": "Neko (vjerovatno Vi, s IP adrese $1) je zatražio podsjetnik Vaših detalja računa za {{SITENAME}} ($4). Sljedeći {{PLURAL:$3|račun korisnika je|računi korisnika su}} povezani s ovom e-mail adresom:\n\n$2\n\n{{PLURAL:$3|Ova privremena šifra|Ove privremene šifre}} će isteći za {{PLURAL:$5|jedan dan|$5 dana}}.\nTrebate se prijaviti i odabrati novu šifru. Ako je neko drugi napravio ovaj zahtjev, ili ako ste se sjetili Vaše početne šifre, a ne želite je promijeniti, možete zanemariti ovu poruku i nastaviti koristiti staru šifru.",
        "passwordreset-emailtext-user": "Korisnik $1 na {{SITENAME}} je zatražio podsjetnik o detaljima Vašeg računa za {{SITENAME}} ($4). Sljedeći {{PLURAL:$3|korisnički račun je|korisnički računi su}} povezani s ovom e-mail adresom:\n\n$2\n\n{{PLURAL:$3|Ova privremena šifra|Ove privremene šifre}} će isteći za {{PLURAL:$5|jedan dan|$5 dana}}.\nTrebate se prijaviti i odabrati novu šifru. Ako je neko drugi napravio ovaj zahtjev, ili ako ste se sjetili Vaše originalne šifre, a ne želite je više promijeniti, možete zanemariti ovu poruku i nastaviti koristiti staru šifru.",
-       "passwordreset-emailelement": "Korisničko ime: $1\nPrivremena šifra: $2",
+       "passwordreset-emailelement": "Korisničko ime: \n$1\n\nPrivremena šifra: \n$2",
        "passwordreset-emailsent": "Podsjetnik na lozinku poslan je na Vašu e-mail adresu.",
        "passwordreset-emailsent-capture": "Poslan je podsjetnik preko e-pošte (prikazano ispod).",
        "passwordreset-emailerror-capture": "E-poruka za resetiranje lozinke, prikazano ispod, poslana je, ali slanje {{GENDER:$2|korisniku|korisnici}} nije uspjelo: $1",
        "parser-unstrip-loop-warning": "Pronađena petlja",
        "parser-unstrip-recursion-limit": "Prekoračeno ograničenje rekurzije ($1)",
        "converter-manual-rule-error": "Pronađena je greška u pravilu za ručno pretvaranje jezika",
-       "undo-success": "Izmjena se može vratiti.\nMolimo da provjerite usporedbu ispod da budete sigurni da ovo želite uraditi, a zatim sačuvajte promjene da bi ste završili vraćanje izmjene.",
-       "undo-failure": "Izmjena se ne može vratiti zbog sukoba izmjena.",
-       "undo-norev": "Izmjena se ne može vratiti jer ne postoji ranija ili je obrisana.",
+       "undo-success": "Izmjenu je moguće poništiti.\nMolimo da ispod uporedite razlike u verzijama kako biste bili sigurni da ovo zaista želite uraditi, te sačuvajte stranicu i izmjene će biti poništene.",
+       "undo-failure": "Ova izmjena se ne može poništiti jer se međuverzije sukobe.",
+       "undo-norev": "Izmjena se ne može poništiti jer ne postoji ili je obrisana.",
        "undo-nochange": "Izgleda da je izmjena već vraćena.",
-       "undo-summary": "Vraćena izmjena $1 {{GENDER:$2|korisnika|korisnice}} [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]])",
+       "undo-summary": "Poništena izmjena $1 {{GENDER:$2|korisnika|korisnice}} [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]])",
        "undo-summary-username-hidden": "Poništi izmjenu $1 od skrivenog korisnika",
        "cantcreateaccounttitle": "Nije moguće napraviti korisnički račun",
        "cantcreateaccount-text": "Pravljenje korisničkog računa sa ove IP adrese ('''$1''') je blokirano od strane [[User:$3|$3]].\n\nRazlog koji je naveo $3 je ''$2''",
        "mergelog": "Zapisnik spajanja",
        "revertmerge": "Vrati spajanje",
        "mergelogpagetext": "Ispod je spisak nedavnih spajanja historija stranica.",
-       "history-title": "Historija izmjena stranice \"$1\"",
+       "history-title": "$1: Historija izmjena",
        "difference-title": "Razlike između verzija stranice \"$1\"",
        "difference-title-multipage": "Razlika između stranica \"$1\" i \"$2\"",
        "difference-multipage": "(Razlika između stranica)",
        "lineno": "Red $1:",
-       "compareselectedversions": "Uporedite označene verzije",
+       "compareselectedversions": "Uporedi označene verzije",
        "showhideselectedversions": "Pokaži/sakrij odabrane verzije",
-       "editundo": "vrati",
+       "editundo": "poništi",
        "diff-empty": "(Nema razlike)",
        "diff-multi-sameuser": "({{PLURAL:$1|Nije prikazana jedna međurevizija|Nisu prikazane $1 međurevizije}} istog korisnika)",
        "diff-multi-otherusers": "(Nije prikazana {{PLURAL:$1|jedna međuverzija|$1 međuverzija}} {{PLURAL:$2|drugog korisnika|$2 korisnika}})",
        "datedefault": "Nije bitno",
        "prefs-labs": "Eksperimentalne mogućnosti",
        "prefs-user-pages": "Korisničke stranice",
-       "prefs-personal": "Korisnički profil",
+       "prefs-personal": "Profil",
        "prefs-rc": "Nedavne izmjene",
-       "prefs-watchlist": "Praćeni članci",
-       "prefs-editwatchlist": "Uredi spisak praćenja",
-       "prefs-editwatchlist-label": "Uredi unose na spisku praćenja:",
-       "prefs-editwatchlist-edit": "Pregledaj i ukloni članke sa spiska praćenja",
-       "prefs-editwatchlist-raw": "Napredno uređivanje spiska praćenja",
-       "prefs-editwatchlist-clear": "Očisti spisak praćenja",
+       "prefs-watchlist": "Spisak praćenja",
+       "prefs-editwatchlist": "Uređivanje spiska praćenja",
+       "prefs-editwatchlist-label": "Uređivanje spiska:",
+       "prefs-editwatchlist-edit": "Uredi spisak",
+       "prefs-editwatchlist-raw": "Napredno uredi spisak",
+       "prefs-editwatchlist-clear": "Isprazni spisak",
        "prefs-watchlist-days": "Broj dana za prikaz u spisku praćenja:",
        "prefs-watchlist-days-max": "Najviše $1 {{PLURAL:$1|dan|dana}}",
        "prefs-watchlist-edits": "Najveći broj izmjena za prikaz u proširenom spisku praćenja:",
        "deleteprotected": "Ne možete obrisati ovu stranicu jer je zaštićena.",
        "deleting-backlinks-warning": "'''Upozorenje:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Druge stranice]] sadrže link ili vode na stranicu koju brišete.",
        "rollback": "Vrati izmjene",
-       "rollbacklink": "ukloni",
+       "rollbacklink": "vrati",
        "rollbacklinkcount": "vrati $1 {{PLURAL:$1|izmjenu|izmjene|izmjena}}",
        "rollbacklinkcount-morethan": "vrati više od $1 {{PLURAL:$1|izmjene|izmjene|izmjena}}",
        "rollbackfailed": "Neuspešno vraćanje",
        "cantrollback": "Ne mogu vratiti izmjenu;\nposljednji autor je ujedno i jedini.",
        "alreadyrolled": "Ne može se vratiti posljednja izmjena [[:$1]] od korisnika [[User:$2|$2]] ([[User talk:$2|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); neko je već izmijenio ili vratio članak na prethodnu provjerenu verziju.\n\nPosljednju izmjenu napravio je korisnik [[User:$3|$3]] ([[User talk:$3|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Sažetak izmjene je bio: \"''$1''\".",
-       "revertpage": "Vraćene izmjene korisnika [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]]) na posljednju izmjenu koju je napravio [[User:$1|$1]]",
+       "revertpage": "Vraćene izmjene {{GENDER:$2|korisnika|korisnice}} [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]]) na posljednju izmjenu {{GENDER:$1|korisnika|korisnice}} [[User:$1|$1]]",
        "revertpage-nouser": "Vraćene izmjene skrivenog korisnika na posljednju reviziju, koju je {{GENDER:$1|napravio|napravila}} [[User:$1|$1]]",
-       "rollback-success": "Poništene izmjene korisnika $1;\nvraćeno na posljednju verziju koju je sačuvao $2.",
+       "rollback-success": "Vraćene izmjene {{GENDER:$2|korisnika|korisnice}} $1 na posljednju verziju {{GENDER:$2|korisnika|korisnice}} $2.",
        "sessionfailure-title": "Greška u sesiji",
        "sessionfailure": "Izgleda da postoji problem sa vašom sesijom; ova akcija je otkazana kao prevencija protiv napadanja sesija. Kliknite \"back\" (''nazad'') i osvježite stranicu sa koje ste došli, i opet pokušajte.",
        "changecontentmodel": "Promijeni model sadržaja stranice",
        "tooltip-watchlistedit-raw-submit": "Ažuriraj spisak praćenja",
        "tooltip-recreate": "Ponovno pravljenje stranice iako je već brisana",
        "tooltip-upload": "Započni postavljanje",
-       "tooltip-rollback": "Brzo vraćanje izmjene(izmjena) ove stranice posljednjeg uređivača jednim klikom.",
-       "tooltip-undo": "Vraća posljednju izmjenu i otvara formu za uređivanje u modu pregleda.\nDopušta unos razloga u sažetak.",
+       "tooltip-rollback": "\"Vrati\" vraća izmjene posljednjeg uređivača jednim klikom",
+       "tooltip-undo": "Dugme \"poništi\" poništava ovu izmjenu, te otvara stranicu u režimu za uređivanje s pregledom izmjena koje će biti poništene. Također omogućava unošenje razloga poništenja u sažetak.",
        "tooltip-preferences-save": "Sačuvaj podešavanja",
        "tooltip-summary": "Unesite kratki sažetak",
        "common.css": "/* CSS umetnut ovdje primijenit će se na sve skinove */",
        "watchlistedit-raw-done": "Vaš spisak praćenja je ažuriran.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 naslov je dodan|$1 naslova su dodana|$1 naslova je dodano}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 naslov je uklonjen|$1 naslova je uklonjeno}}:",
-       "watchlistedit-clear-title": "Očišćen spisak nadgledanja",
-       "watchlistedit-clear-legend": "Očisti spisak nadgledanja",
-       "watchlistedit-clear-explain": "Svi naslovi će biti uklonjeni iz vašeg spiska nadgledanja",
+       "watchlistedit-clear-title": "Pražnjenje spiska praćenja",
+       "watchlistedit-clear-legend": "Isprazni spisak praćenja",
+       "watchlistedit-clear-explain": "Sve stranice će biti uklonjene iz Vašeg spiska praćenja",
        "watchlistedit-clear-titles": "Naslovi:",
-       "watchlistedit-clear-submit": "Isprazni spisak nadgledanja (Ovo je trajno!)",
+       "watchlistedit-clear-submit": "Isprazni spisak praćenja (Ovo je nepovratno!)",
        "watchlistedit-clear-done": "Vaš spisak praćenja je očišćen.",
        "watchlistedit-clear-removed": "{{PLURAL:$1|1 naslov je uklonjen|$1 naslova su uklonjena|$1 naslova je uklonjeno}}:",
        "watchlistedit-too-many": "Ima previše stranica za prikaz ovdje.",
        "htmlform-int-toohigh": "Vrijednost koju ste naveli je iznad maksimuma od $1",
        "htmlform-required": "Ova vrijednost je obavezna",
        "htmlform-submit": "Pošalji",
-       "htmlform-reset": "Vrati izmjene",
+       "htmlform-reset": "Poništi izmjene",
        "htmlform-selectorother-other": "Ostalo",
        "htmlform-no": "Ne",
        "htmlform-yes": "Da",
        "api-error-badtoken": "Unutrašnja greška: token nije ispravan.",
        "api-error-copyuploaddisabled": "Postavljanja putem URL-a su onemogućena na ovom serveru.",
        "api-error-duplicate": "Već postoji {{PLURAL:$1|[$2 druga datoteka]|[$2 druge datoteke]}} na ovoj stranici sa istim sadržajem",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Postojala je [$2 druga datoteka]|Postojale su [$2 neke druge datoteke]}} na sajtu sa istim sadržajem, ali {{PLURAL:$1|je obrisana|su obrisane}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Dupla datoteka|Duple datoteke}} koje su već obrisane",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Dvojna datoteka|Dvojne datoteke}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Postojala je druga datoteka|Postojale su neke druge datoteke}} na sajtu sa istim sadržajem, ali {{PLURAL:$1|je obrisana|su obrisane}}.",
        "api-error-empty-file": "Datoteka koju ste poslali je bila prazna.",
        "api-error-emptypage": "Stvaranje novih praznih stranica nije dozvoljeno.",
        "api-error-fetchfileerror": "Unutrašnja greška: pojavio se neki problem pri dobijanju podataka o datoteci.",
index 87c29a5..ac591c9 100644 (file)
        "nstab-template": "Plantilla",
        "nstab-help": "Ajuda",
        "nstab-category": "Categoria",
+       "mainpage-nstab": "Pàgina principal",
        "nosuchaction": "No es reconeix aquesta operació",
        "nosuchactiontext": "L'acció especificada per la URL no és vàlida.\nPotser heu escrit malament la URL o heu seguit un enllaç incorrecte.\nAixò també pot ser causat per un error al programari utilitzat pel projecte {{SITENAME}}.",
        "nosuchspecialpage": "No es troba la pàgina especial que busqueu",
        "passwordreset-emailtitle": "Detalls del compte a {{SITENAME}}",
        "passwordreset-emailtext-ip": "Algú (vós mateix segurament, des de l'adreça IP $1) ha demanat una reinicialització de la vostra contrasenya al projecte {{SITENAME}} ($4). {{PLURAL:$3|El següent compte d'usuari està associat|Els següents comptes d'usuari estan associats}} amb aquesta adreça de correu electrònic:\n\n$2\n\n{{PLURAL:$3|Aquesta contrasenya temporal caducarà|Aquestes contrasenyes temporals caducaran}} en {{PLURAL:$5|un dia|$5 dies}}.\nHauríeu d'entrar al compte per a fixar-hi una nova contrasenya al més aviat possible. Si algú que no sou vós és qui ha fet aquesta petició o si heu recordat la contrasenya original i ja no la voleu canviar, podeu ignorar aquest missatge i seguir utilitzant la vostra antiga contrasenya.",
        "passwordreset-emailtext-user": "L'usuari $1 de {{SITENAME}} ha demanat una reinicialització de la vostra contrasenya per al projecte {{SITENAME}} ($4). {{PLURAL:$3|El següent compte d'usuari està associat|Els següents comptes d'usuari estan associats}} amb aquesta adreça de correu electrònic:\n\n$2\n\n{{PLURAL:$3|Aquesta contrasenya temporal caducarà|Aquestes contrasenyes temporals caducaran}} en {{PLURAL:$5|un dia|$5 dies}}.\nHauríeu d'entrar ara per fixar una nova contrasenya. Si algú que no sou vós és qui ha fet aquesta petició o si heu recordat la contrasenya original i ja no la voleu canviar, podeu ignorar aquest missatge i seguir utilitzant la vostra antiga contrasenya.",
-       "passwordreset-emailelement": "Nom d'usuari: $1\nContrasenya temporal: $2",
+       "passwordreset-emailelement": "Nom d'usuari: \n$1\n\nContrasenya temporal: \n$2",
        "passwordreset-emailsent": "S'ha enviat un correu de reinicialització de contrasenya.",
        "passwordreset-emailsent-capture": "S'ha enviat un correu electrònic de reinicialització de contrasenya, tal com es mostra a continuació.",
        "passwordreset-emailerror-capture": "S'ha generat un correu electrònic de renovació de contrasenya, que es mostra a continuació, però ha fallat l'enviament a {{GENDER:$2:l'usuari|la usuària}}: $1",
        "api-error-badtoken": "Error intern: argument incorrecte.",
        "api-error-copyuploaddisabled": "Les càrregues via URL estan desactivades en aquest servidor.",
        "api-error-duplicate": "Ja hi ha {{PLURAL:$1|[$2 un altre fitxer]|[$2 altres fitxers]}} en aquest lloc web amb el mateix contingut.",
-       "api-error-duplicate-archive": "Aquí ja hi ha hagut {{PLURAL:$1|[$2 un altre fitxer]|[$2 altres fitxers]}} amb el mateix contingut, i {{PLURAL:$1|va ser esborrat|varen ser esborrats}}.",
-       "api-error-duplicate-archive-popup-title": "Duplica {{PLURAL:$1|el fitxer|els fitxers}} que ja s'han eliminat",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Fitxer duplicat|Fitxers duplicats}}",
+       "api-error-duplicate-archive": "Aquí ja hi ha hagut {{PLURAL:$1|un altre fitxer|altres fitxers}} amb el mateix contingut, i {{PLURAL:$1|va ser esborrat|varen ser esborrats}}.",
        "api-error-empty-file": "El fitxer que heu tramès està buit.",
        "api-error-emptypage": "No es permet la creació de pàgines noves en blanc.",
        "api-error-fetchfileerror": "Error intern: quelcom no ha funcionat en accedir al fitxer.",
index 217863f..cc4f5ce 100644 (file)
        "protect": "Ларъяр",
        "protect_change": "хийца",
        "protectthispage": "Ларъе хӀара агӀо",
-       "unprotect": "Ð\93Ó\80аÑ\80оллеÑ\85 ÐºÑ\8aаÑ\81Ñ\82а",
-       "unprotectthispage": "Ð\93Ó\80аÑ\80оллеÑ\85 ÐºÑ\8aаÑ\81Ñ\82а",
+       "unprotect": "Ð\9bаÑ\80Ñ\8aÑ\8fÑ\80 Ñ\85ийÑ\86аÑ\80",
+       "unprotectthispage": "ХийÑ\86а Ñ\85Ó\80окÑ\85Ñ\83 Ð°Ð³Ó\80она Ð»Ð°Ñ\80Ñ\8aÑ\8fÑ\80",
        "newpage": "Керла агӀонаш",
-       "talkpage": "Дийцаре йила хӀара агӀо",
+       "talkpage": "Ð\94ийÑ\86аÑ\80е Ð¹Ð¸Ð»Ð»Ð° Ñ\85Ó\80аÑ\80а Ð°Ð³Ó\80о",
        "talkpagelinktext": "Дийцаре",
        "specialpage": "Белхан агӀо",
        "personaltools": "Долахь болу гӀирсаш",
        "youhavenewmessagesfromusers": "Хьуна кхачанна $1 {{PLURAL:$3|1=$3 декъашхочунгара|$3 декъашхошкара}} ($2).",
        "youhavenewmessagesmanyusers": "Хьона еъна $1 дукху декъашхошкар ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|керла хаам|999=керла хаамаш}}",
-       "newmessagesdifflinkplural": "{{PLURAL:$1|Ñ\82Ó\80аÑ\8cÑ\85Ñ\8cаÑ\80а Ð±Ð¸Ð½Ð° Ñ\85ийÑ\86ам|999=Ñ\82Ó\80аÑ\8cхьара бина хийцамаш}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|Ñ\82Ó\80аÑ\8cÑ\85Ñ\85Ñ\8cаÑ\80а Ð±Ð¸Ð½Ð° Ñ\85ийÑ\86ам|999=Ñ\82Ó\80аÑ\8cÑ\85хьара бина хийцамаш}}",
        "youhavenewmessagesmulti": "Хьуна кхаьчна керла хаам оцу $1",
        "editsection": "нисъе",
        "editold": "нисъе",
        "viewsource-title": "Агӏона $1 дуьххьарлера йозане хьажар",
        "actionthrottled": "Сиххалин доза тохар",
        "actionthrottledtext": "Спам цахилийта хӀара дешдерг кӀезиг хенахь дукху ца дайта дихкина ду. Дехар до массийта минот яьлча гӀорта.",
-       "protectedpagetext": "Ð¥Ó\80аÑ\80а Ð°Ð³Ó\80о Ð´Ó\80акÑ\8aоÑ\8cвлина Ñ\8e Ñ\82адаÑ\80Ñ\88 Ñ\86а Ð´айта.",
+       "protectedpagetext": "Ð¥Ó\80аÑ\80а Ð°Ð³Ó\80о Ð»Ð°Ñ\80йина Ñ\8e Ñ\85ийÑ\86амаÑ\88 Ñ\86а Ð±айта.",
        "viewsourcetext": "Хьоьга далундерг хьажар а дезахь хlокху агlон чура йоза хьаэцар:",
        "viewyourtext": "Хьан йиш ю '''хьой нисдинчу''' дӀадолалун йозе хьажа а, цуна копи ян а:",
        "protectedinterface": "ХӀокху агӀона чохь интерфейсан программа латторан хаам бу. Зулам ца дайта цуна хийцам бан куьйгалхошна бен цало.\nХӀокху хааман гоч тӀетоха я хийца лелае локализацин сайт MediaWiki [//translatewiki.net/ translatewiki.net]",
        "passwordreset-emailtitle": "{{SITENAME}}: декъашхочун дӀаяздарх лаьцна хаам",
        "passwordreset-emailtext-ip": "{{SITENAME}} ($4) проектехь цхьам я ахьа хӀокху IP-адрес $1 тӀера хьа декъашхочун пароль кхоссар дехна,\nоьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:\n\n$2\n\n{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.\nСистемин чугӀой харжа керла пароль. \nХьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.",
        "passwordreset-emailtext-user": "{{SITENAME}} ($4) проектера декъашхочо $1 хьа декъашхочун пароль кхоссар дехна,\nоьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:\n\n$2\n\n{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.\nСистемин чугӀой харжа керла пароль. \nХьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.",
-       "passwordreset-emailelement": "Декъашхочун цӀе: $1\nХанна йолу пароль: $2",
+       "passwordreset-emailelement": "Декъашхочун цӀе: \n$1\n\nХанна йолу пароль: \n$2",
        "passwordreset-emailsent": "Электронан хаам баийтина кхоьссинчу паролах лаьцна хаам чохь болуш.",
        "passwordreset-emailsent-capture": "Электронан хаам баийтина кхоьссинчу паролах лаьцна хаам чохь болуш. \nцуна йозане хьажа йиш ю лахахь.",
        "passwordreset-emailerror-capture": "Пароль кхоссаран хаам чохь болуш электронан кехат кхоьллина, цуна йоза хьажа йиш ю лахахь, амма иза {{GENDER:$2|декъашхочунга}} дӀадахьийта тар цаделира бахьнехь: $1",
        "readonlywarning": "'''ДӀАХЬЕДО. ГӀирса бух блоктоьхна оьшуш долучу хьаштан, цундера хӀинц хьоьга дӀа ца йазло хийцам.\nХила мега, ахьа Ӏалаш дан дезаш хьайн йоза, юха тӀаьхьо леладан иза йоза.'''\n\nКуьйгалхочо блоктоьхна гӀирса бух, цо битина кхетош хӀара хаам: $1",
        "protectedpagewarning": "'''ДӀахьедар. ХӀара агӀо ларйина ю хийцам цабайта, иза хийца я нисъян а бакъо йолуш куьйгалла лелош болу декъашхой бе бац.'''\nЛахахьа гойту хаамаш тӀаьххьара бина болу хийцамна тептар чура:",
        "semiprotectedpagewarning": "'''ДӀахьедо.''' ХӀара агӀо ларйина ю; дӀабазбиначу декъашхошка бе цӀе хийцалуш яц.\nЛахахьа тептаро балийна тӀаьххьаралера дӀаязбина хаам:",
-       "cascadeprotectedwarning": "<div id=\"cascadeprotectedwarning\" style=\"border:1px solid #ee0; padding:10px; background:#ffa; margin-bottom:1em\">[[file:Padlock.svg|left|25px|ДовгӀа|link=]]\nХӀара агӀо тада бакъо йолуш [[Project:Куьйгалхой|куьйгалхой]] бу, хӀунда аьлча и агӀо латийна кхечу агӀонашца хӀоттделлачу гӀаролле:</div>",
+       "cascadeprotectedwarning": "<strong>ДӀахьедар:</strong> ХӀара агӀо таян бакъо йолуш [[Project:Куьйгалхой|куьйгалхой]] бу, хӀунда аьлча {{PLURAL:$1|1=и агӀо латийна кхечу агӀонашца|и агӀо латийна кхечу агӀонашца}} хӀоттделлачу ларйиначух:",
        "templatesused": "{{PLURAL:$1|1=Кеп, лелош ю|Кепаш, лелош ю}} хӀокху агӀон башхонца:",
        "templatesusedpreview": "{{PLURAL:$1|1=Кеп, лелошдолу|Кепаш, лелойлу}} оцу хьалх хьожучу агӀонца:",
        "templatesusedsection": "ХӀокху декъан чохь {{PLURAL:$1|1=лелош йолу кеп|лелош йолу кепаш}}:",
        "permissionserrorstext": "Хьан бакъо яц кхочуш хилийта хийцам оцу {{PLURAL:$1|1=шолгlа бахьанца|шолгlа бахьанашца}}:",
        "permissionserrorstext-withaction": "Хьан бакъо яц хlумда «'''$2'''» оцу {{PLURAL:$1|1=шолгlа бахьанца|шолгlа бахьанашца}}:",
        "recreate-moveddeleted-warn": "'''Тидам бе. Ахьа кхуллуш ю, хьалхо дӀаяьккхина йолу агӀо.'''\n\nХьажа, билгалла оьши хьуна хӀара агӀо юха кхолла.\nЛахахь далина ду дӀаяхарш тӀяхь долу тептарш а хӀокх агӀона цӀе хийцарш а.",
-       "moveddeleted-notice": "Ð\98за Ð°Ð³Ó\80о Ð´Ó\80аÑ\8fÑ\8cккÑ\85ина Ñ\8fÑ\80а.\nХаийÑ\82аÑ\80на Ð»Ð°Ñ\85аÑ\85Ñ\8cа Ð³Ð¾Ð¹Ñ\82Ñ\83, Ñ\86Ñ\83Ñ\8cнÑ\86а Ð´Ð¾Ð»Ñ\83 Ð´Ó\80аÑ\8fздаÑ\80Ñ\88 ÐºÑ\85Ñ\83 Ñ\82епÑ\82аÑ\80 Ñ\87Ñ\83Ñ\80а Ð´Ó\80аÑ\8fÑ\85аÑ\80Ñ\88 Ð° цӀе хийцарш а.",
+       "moveddeleted-notice": "Ð¥Ó\80аÑ\80а Ð°Ð³Ó\80о Ð´Ó\80аÑ\8fÑ\8cккÑ\85ина Ñ\8fÑ\80а.\nÐ\9bаÑ\85аÑ\85Ñ\8cа Ð³Ð¾Ð¹Ñ\82Ñ\83 Ñ\85Ó\80аÑ\80а Ð´Ó\80аккÑ\85аÑ\80Ñ\88 Ð°, цӀе хийцарш а.",
        "log-fulllog": "Хьажа деригге тептаре",
        "edit-hook-aborted": "Нисдар юхадаьккхина тӀехьожучо.\nХӀу бахьана ду билгал дина дац.",
        "edit-gone-missing": "АгӀо карлаяккха цатарло.\nИза дӀаяьккхина хила мега.",
        "enhancedrc-history": "истори",
        "recentchanges": "Керла нисдарш",
        "recentchanges-legend": "Керлачу хийцамийн нисдарш",
-       "recentchanges-summary": "Лахахь гайтина хене хьаьжжина Википедин агӀонашкахь тӀаьхьара бина хийцамаш",
+       "recentchanges-summary": "Ð\9bаÑ\85аÑ\85Ñ\8c Ð³Ð°Ð¹Ñ\82ина Ñ\85ене Ñ\85Ñ\8cаÑ\8cжжина Ð\92икипедин Ð°Ð³Ó\80онаÑ\88каÑ\85Ñ\8c Ñ\82Ó\80аÑ\8cÑ\85Ñ\85Ñ\8cаÑ\80а Ð±Ð¸Ð½Ð° Ñ\85ийÑ\86амаÑ\88",
        "recentchanges-noresult": "Билгал йинчу хенахь цхьа хийцамаш бина бац.",
        "recentchanges-feed-description": "Тергам бе тӀаьххьара вики хийцаман хӀокху ларца.",
        "recentchanges-label-newpage": "Оцу нисдарца кхоьллина керла агӀо.",
        "protectlogpage": "Ларяран тептар",
        "protectlogtext": "Лахахь гойту агӀо лаъръяран хийцамаш чохь болу тептар.\nХьа кхин йиш ю [[Special:ProtectedPages|хӀинца ларйина йолу агӀонийн могӀаме хьажа]].",
        "protectedarticle": "Ларйина агӀо «[[$1]]»",
-       "modifiedarticleprotection": "агӀонан ларяран локхалла хийцина «[[$1]]»",
-       "unprotectedarticle": "ГӀоролла дӀадаьстина «[[$1]]»",
+       "modifiedarticleprotection": "«[[$1]]» агӀонан ларяран локхалла хийцина",
+       "unprotectedarticle": "«[[$1]]» ларъяр дӀадаьстина",
        "movedarticleprotection": "«[[$2]]» агӀона тӀера ларъяр «[[$1]]» агӀона тӀе даьккхина",
        "protect-title": "Ларъяр: «$1»",
        "protect-title-notallowed": "ГӀораллин бараме хьажар «$1»",
        "tooltip-ca-viewsource": "ХӀара агӀо ларъеш ю, хийцамаш ца-байта, амма хьо хьажа а, копи яккхан а мегар ду",
        "tooltip-ca-history": "ХӀокху агӀона хийцамаш болу тептар",
        "tooltip-ca-protect": "Ларъе агӀо хийцамаш цабайта",
-       "tooltip-ca-unprotect": "Ð\94lадаккÑ\85а Ñ\85lокÑ\85Ñ\83 Ð°Ð³lонна Ð´Ð¾Ð»Ñ\83 Ð³Ð°Ñ\80олла",
+       "tooltip-ca-unprotect": "ХийÑ\86а Ñ\85Ó\80окÑ\85Ñ\83 Ð°Ð³Ó\80она Ð»Ð°Ñ\80Ñ\8aÑ\8fÑ\80",
        "tooltip-ca-delete": "ДӀаяккха хӀара агӀо",
        "tooltip-ca-move": "АгӀон цӀе хийца",
        "tooltip-ca-watch": "ТӀетоха хӀара агӀо сан тергаме могӀанан юкъа",
        "logentry-merge-merge": "$1 {{GENDER:$2|вовшахтоьхна}} $3 $4 чохь ($5 кхаччалц версеш)",
        "logentry-move-move": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4 дӀасахьажорг цаюьтуш",
-       "logentry-move-move_redir": "$1 {{GENDER:$2|Ñ\86Ó\80е Ñ\85ийÑ\86ина}} $3 â\86\92 $4 Ð´Ó\80аÑ\81аÑ\85Ñ\8cажоÑ\80ан Ñ\82Ó\80охул",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|Ñ\86Ó\80е Ñ\85ийÑ\86ина}} $3 â\86\92 $4 Ð´Ó\80аÑ\81аÑ\85Ñ\8cажоÑ\80ан Ñ\82Ó\80ехул",
        "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|цӀе хийцина}} $3 → $4 дӀасахьажорган тӀехул а, дӀасахьажорг цаюьтуш а",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|хьаьжина}}  агӀона $3 $4 версега",
        "logentry-patrol-patrol-auto": "$1 автоматически {{GENDER:$2|хьаьжина}} $3 агӀона версега $4",
        "searchsuggest-search": "Лахар",
        "searchsuggest-containing": "чуьраниг…",
        "api-error-duplicate": "Иштта чулацам болу {{PLURAL:$1|1=[$2 кхин файл]|[$2 кхин файлаш]}} йолуш ю",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|1=Файлан|Файлийн}} дубликат.",
        "api-error-empty-file": "Ахьа яхьийтина файл еса ю.",
        "api-error-mustbeposted": "Чоьхьара гӀалат: дехаро хьехам схьабоьху HTTP POST.",
        "api-error-noimageinfo": "Кхиамца чуяьккхина, амма серверо файлахь лаьцна цхьаа хаам битина бац.",
index 2fba2bd..48c7193 100644 (file)
        "disclaimers": "نابەرپرسییەکان",
        "disclaimerpage": "Project:بەرپرسنەبوون",
        "edithelp": "ڕێنوێنیی دەستکاریکردن",
+       "helppage-top-gethelp": "یارمەتی",
        "mainpage": "دەستپێک",
        "mainpage-description": "دەستپێک",
        "policy-url": "Project: سیاسەت",
        "passwordreset-emailtitle": "وردەکارییەکانی ھەژمار لە {{SITENAME}}",
        "passwordreset-emailtext-ip": "‫کەسێک (لەوانەیە خۆت، بە ناونیشانی ئایپیی $1) داوای ڕیسێتکردنەوەی تێپەڕوشەکەت لە {{SITENAME}}دا ($4) کردووە. {{PLURAL:$3|ھەژماری بەکارھێنەریی ژێرەوە پەیوەندیی ھەیە|ھەژمارە بەکارھێنەرییەکانی ژێرەوە پەیوەندییان ھەیە}} بەم ناونیشانەی ئیمەیلەوە:\n\n$2\n\n{{PLURAL:$3|ئەم تێپەڕوشە کاتییە|ئەم تێپەڕوشە کاتییانە}} لە {{PLURAL:$5|ڕۆژێک|$5 ڕۆژ}}دا بەسەردەچێت.\nدەبێ بچیتە ژوورەوە و ھەر ئێستا تێپەڕوشەیەکی نوێ ھەڵبژێریت. ئەگەر کەسێکی تر ئەم داواکارییەی کردووە،\nیان ئەگەر تێپەڕوشە سەرەتاییەکەت ھاتووەتەوە بیرت و ئیتر ناتەوێ بیگۆڕی، دەتوانی گوێ بەم پەیامە نەدەیت و ھەر لە تێپەڕوشە کۆنەکەت کەڵک وەربگریت.",
        "passwordreset-emailtext-user": "‫بەکارھێنەر $1 لە {{SITENAME}} ڕیسێتکردنەوەی تێپەڕوشەکەت لە {{SITENAME}}دا ($4) کردووە. {{PLURAL:$3|ھەژماری بەکارھێنەریی ژێرەوە پەیوەندیی ھەیە|ھەژمارە بەکارھێنەرییەکانی ژێرەوە پەیوەندییان ھەیە}} بەم ناونیشانەی ئیمەیلەوە:\n\n$2\n\n{{PLURAL:$3|ئەم تێپەڕوشە کاتییە|ئەم تێپەڕوشە کاتییانە}} لە {{PLURAL:$5|ڕۆژێک|$5 ڕۆژ}}دا بەسەردەچێت.\nدەبێ بچیتە ژوورەوە و ھەر ئێستا تێپەڕوشەیەکی نوێ ھەڵبژێریت. ئەگەر کەسێکی تر ئەم داواکارییەی کردووە، یان ئەگەر تێپەڕوشە سەرەتاییەکەت ھاتووەتەوە بیرت و ئیتر ناتەوێ بیگۆڕی، \nدەتوانی گوێ بەم پەیامە نەدەیت و ھەر لە تێپەڕوشە کۆنەکەت کەڵک وەربگریت.",
-       "passwordreset-emailelement": "ناوی بەکارھێنەری: $1\nتێپەڕوشەی کاتی: $2",
+       "passwordreset-emailelement": "ناوی بەکارھێنەری: \n$1\n\nتێپەڕوشەی کاتی: \n$2",
        "passwordreset-emailsent": "ئیمەیلێکی ڕیسێتکردنەوەی تێپەڕوشە نێردرا.",
        "passwordreset-emailsent-capture": "ئیمەیلێکی ڕیسێتکردنەوەی تێپەڕوشە نێردرا، کە لە ژێرەوە نیشان دراوە.",
        "passwordreset-emailerror-capture": "ئیمەیلێکی ڕیسێتکردنەوەی تێپەڕوشە نێردرا، کە لە ژێرەوە نیشان دراوە، بەڵام ناردنەکەی بۆ {{GENDER:$2|بەکارھێنەر}} سەرکەوتوو نەبوو: $1",
        "search-section": "(بەشی $1)",
        "search-category": "(پۆلی $1)",
        "search-suggest": "ئایا مەبەستت ئەمە بوو: $1",
+       "search-rewritten": "نیشاندانی ئاکامەکان بۆ $1. لە جیات ئەو لە $2 بگەڕێ.",
        "search-interwiki-caption": "پرۆژە خوشکەکان",
        "search-interwiki-default": "ئاکام لە $1:",
        "search-interwiki-more": "(زیاتر)",
        "hide": "بشارەوە",
        "show": "نیشان بدە",
        "minoreditletter": "ب",
-       "newpageletter": "نوێ",
+       "newpageletter": "ن",
        "boteditletter": "بۆت",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|بەکارھێنەر}}ی چاودێر]",
        "rc_categories": "بەرتەسک‌کردنەوە بە هاوپۆلەکان (به «|» جیای بکەوە‌)",
        "sp-contributions-toponly": "تەنیا ئەو دەستکارییانە نیشان بدە کە دوایین پێداچوونەوەن",
        "sp-contributions-newonly": "تەنیا ئەو دەستکارییانە نیشان بدە کە دروستکردنی پەڕەن",
        "sp-contributions-submit": "بگەڕێ",
-       "whatlinkshere": "پەیوەندیدار بە ئێرەوە",
+       "whatlinkshere": "بەستەرەکان بە ئێرەوە",
        "whatlinkshere-title": "ئەو پەڕانەی بەستەریان ھەیە بۆ «$1»",
        "whatlinkshere-page": "پەڕە:",
        "linkshere": "پەڕەکانی ژێرەوە بەستەر دراون بۆ <strong>[[:$1]]</strong>:",
        "import-interwiki-history": "هەموو مێژووی پێداچوونەوەکانی ئەم پەڕەیە کۆپی بکە",
        "import-interwiki-templates": "ھەموو داڕێژەکان لەخۆبگرێتەوە",
        "import-interwiki-submit": "هاوردە بکە",
+       "import-mapping-default": "ھەر لە شوێنی خۆی ھاوردە بکە",
+       "import-mapping-namespace": "لەم بۆشایی ناوەدا ھاوردە بکە:",
+       "import-mapping-subpage": "وەک ژێرپەڕەی ئەم پەڕەیە ھاوردە بکە:",
        "import-upload-filename": "ناوی پەڕگە‌:",
        "import-comment": "بۆچوون:",
        "importtext": "تکایە پەڕگەکە لە ویکی سەرچاوەوە بە کەڵک وەرگرتن لە [[Special:Export|ئامێری ھەناردن]] ھەناردە بکە.\nلەسەر کۆمپیۆتەرەکەت پاشەکەوتی بکە و لێرە باری بكە.",
index 9c1c3a4..f2de5d0 100644 (file)
        "nstab-template": "Šablona",
        "nstab-help": "Nápověda",
        "nstab-category": "Kategorie",
+       "mainpage-nstab": "Hlavní strana",
        "nosuchaction": "Neznámý úkon",
        "nosuchactiontext": "Činnost („action“) uvedená v URL je neplatná.\nZřejmě jste se při zadávání adresy překlepli nebo jste přešli na chybný odkaz.\nMůže se ale jednat také o chybu v softwaru {{GRAMMAR:2sg|{{SITENAME}}}}.",
        "nosuchspecialpage": "Neexistující speciální stránka",
        "passwordreset-emailtitle": "Informace k účtu na {{grammar:6sg|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "Někdo (patrně vy, z IP adresy $1) zažádal na {{grammar:6sg|{{SITENAME}}}} ($4) o nastavení nového hesla k vašemu účtu. K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší za {{PLURAL:$5|jeden den|$5 dny|$5 dnů}}.\nNyní byste se měli přihlásit a zvolit si nové heslo. Pokud tento požadavek poslal někdo jiný nebo jste si na své staré heslo vzpomněli, a nechcete ho tedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
        "passwordreset-emailtext-user": "{{gender:$1|Uživatel|Uživatelka}} $1 na {{grammar:6sg|{{SITENAME}}}} {{gender:$1|zažádal|zažádala}} na {{grammar:6sg|{{SITENAME}}}} ($4) o nastavení nového hesla k vašemu\núčtu. K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší {{PLURAL:$5|za jeden den|za $5 dny|za $5 dnů}}.\nNyní byste se měl(a) přihlásit a zvolit si nové heslo. Pokud tento požadavek\nposlal někdo jiný nebo jste si na své staré heslo vzpomněl(a), a nechcete ho\ntedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
-       "passwordreset-emailelement": "Uživatelské jméno: $1\nDočasné heslo: $2",
+       "passwordreset-emailelement": "Uživatelské jméno: \n$1\n\nDočasné heslo: \n$2",
        "passwordreset-emailsent": "E-mail pro získání nového hesla byl odeslán.",
        "passwordreset-emailsent-capture": "Byl odeslán e-mail pro získání nového hesla, který je zobrazen níže.",
        "passwordreset-emailerror-capture": "Byl vygenerován e-mail pro získání nového hesla, který je zobrazen níže, ale {{GENDER:$2|uživateli|uživatelce}} se ho nepodařilo odeslat: $1",
        "changeemail-password": "Vaše heslo do {{gender:2sg|{{SITENAME}}}}:",
        "changeemail-submit": "Změnit e-mail",
        "changeemail-throttled": "Provedli jste příliš mnoho pokusů o přihlášení.\nČekejte prosím $1 a zkuste to znovu.",
+       "changeemail-nochange": "Zadejte prosím odlišnou e-mailovou adresu.",
        "resettokens": "Reinicializace klíčů",
        "resettokens-text": "Na této stránce můžete reinicializovat klíče, které umožňují přístup k jistým soukromým údajům spojeným s vaším účtem.\n\n{{GENDER:|Měl|Měla|Měli}} byste to provést v případě, že jste je omylem někomu {{GENDER:|prozradil|prozradila|prozradili}}, nebo byl váš účet narušen.",
        "resettokens-no-tokens": "Neexistují žádné klíče, které by bylo možno reinicializovat.",
        "upload-copy-upload-invalid-domain": "Načítání kopírováním není dostupné z této domény.",
        "upload-dialog-title": "Načtení souboru",
        "upload-dialog-error": "Došlo k chybě",
+       "upload-dialog-warning": "Objevilo se upozornění",
        "upload-dialog-button-cancel": "Storno",
        "upload-dialog-button-done": "Hotovo",
        "upload-dialog-button-save": "Uložit",
        "upload-dialog-button-upload": "Načíst",
+       "upload-dialog-label-select-file": "Výběr souboru",
+       "upload-dialog-label-infoform-title": "Podrobnosti",
+       "upload-dialog-label-infoform-name": "Název",
+       "upload-dialog-label-infoform-description": "Popis",
+       "upload-dialog-label-usage-title": "Použití",
        "upload-dialog-label-usage-filename": "Jméno souboru",
        "backend-fail-stream": "Soubor $1 nelze streamovat.",
        "backend-fail-backup": "Soubor $1 nelze zazálohovat.",
        "api-error-badaccess-groups": "Nemáte povoleno nahrávat soubory na tuto wiki.",
        "api-error-badtoken": "Vnitřní chyba: špatný token.",
        "api-error-copyuploaddisabled": "Načítání z URL je na tomto severu zakázáno.",
-       "api-error-duplicate": "Na této wiki již {{PLURAL:$1|existuje [$2 jiný soubor]|existují [$2 jiné soubory]}} se shodným obsahem.",
-       "api-error-duplicate-archive": "[$2 {{PLURAL:$1|Soubor|Soubory}}] se stejným obsahem již zde dříve {{PLURAL:$1|byl|byly}}, ale {{PLURAL:$1|byl smazán|byly smazány}}.",
-       "api-error-duplicate-archive-popup-title": "Duplicitní {{PLURAL:$1|soubor, který byl smazán|soubory, které byly smazány}}.",
-       "api-error-duplicate-popup-title": "Duplicitní {{PLURAL:$1|soubor|soubory}}.",
+       "api-error-duplicate": "Na této wiki již {{PLURAL:$1|existuje jiný soubor|existují jiné soubory}} se shodným obsahem.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Soubor|Soubory}} se stejným obsahem již zde dříve {{PLURAL:$1|byl|byly}}, ale {{PLURAL:$1|byl smazán|byly smazány}}.",
        "api-error-empty-file": "Načtený soubor je prázdný.",
        "api-error-emptypage": "Zakládání prázdných stránek není dovoleno.",
        "api-error-fetchfileerror": "Vnitřní chyba: došlo k chybě při stahování souboru.",
index 20b5624..ec3a284 100644 (file)
        "passwordreset-emailtitle": "Manylion eich cyfrif ar {{SITENAME}}",
        "passwordreset-emailtext-ip": "Mae rhywun (chi yn ôl pob tebyg, o'r cyfeiriad IP $1) wedi gofyn am ailosod eich cyfrinair ar {{SITENAME}} ($4). Mae'r {{PLURAL:$3|cyfrif|cyfrif|cyfrifon}} canlynol ynghlwm wrth y cyfeiriad e-bost hwn:\n\n$2\n\nBydd y {{PLURAL:$3||cyfrinair dros dro hwn|cyfrineiriau dros dro hyn}} yn dod i ben ymhen {{PLURAL:$5||diwrnod |deuddydd|tridiau|$5 diwrnod}}. Dylech fewngofnodi nawr a dewis cyfrinair newydd. Os mai rhywun arall a ofynodd am ailosod y cyfrinair, neu os ydych wedi cofio eich cyfrinair gwreiddiol, neu os nad ydych am ei newid bellach, gallwch anwybyddu'r neges hon a pharhau i ddefnyddio eich hen gyfrinair.",
        "passwordreset-emailtext-user": "Gofynodd y defnyddiwr $1 ar {{SITENAME}} am gael ailosod ei gyfrinair ar {{SITENAME}}\n($4). Mae'r {{PLURAL:$3||cyfrif|cyfrifon}} canlynol ynghlwm wrth y cyfeiriad e-bost hwn:\n\n$2\n\nBydd y {{PLURAL:$3||cyfrinair|cyfrineiriau}} dros dro hyn yn dod i ben ymhen {{PLURAL:$5||diwrnod|deuddydd|tridiau|$5 diwrnod}}.\nDylech fewngofnodi nawr a dewis cyfrinair newydd. Os mai rhywun arall a ofynodd am ailosod y cyfrinair, neu os ydych wedi cofio eich cyfrinair gwreiddiol, neu os nad ydych am ei newid bellach, gallwch anwybyddu'r neges hon a pharhau i ddefnyddio eich hen gyfrinair.",
-       "passwordreset-emailelement": "Enw'r defnyddiwr: $1\nY cyfrinair dros dro: $2",
+       "passwordreset-emailelement": "Enw'r defnyddiwr: \n$1\n\nY cyfrinair dros dro: \n$2",
        "passwordreset-emailsent": "Anfonwyd e-bost i ailosod eich cyfrinair atoch.",
        "passwordreset-emailsent-capture": "Anfonwyd e-bost i ailosod cyfrinair, ac fe'i ddangosir isod.",
        "passwordreset-emailerror-capture": "Lluniwyd e-bost i ailosod cyfrinair fel ag a welir isod, ond ni lwyddwyd i'w anfon at y {{GENDER:$2|defnyddiwr}}: $1",
        "emailuser": "Anfon e-bost at y defnyddiwr hwn",
        "emailuser-title-target": "Ebostio'r {{GENDER:$1|defnyddiwr hwn}}",
        "emailuser-title-notarget": "Anfon e-bost at ddefnyddiwr",
-       "emailpage": "Anfon e-bost at ddefnyddiwr",
        "emailpagetext": "Os yw'r cyfeiriad e-bost sydd yn newisiadau'r {{GENDER:$1|defnyddiwr}} hwn yn un dilys, gellir anfon neges ato o'i ysgrifennu ar y ffurflen isod.\nBydd y cyfeiriad e-bost a osodoch yn eich [[Special:Preferences|dewisiadau]] yn ymddangos ym maes \"Oddi wrth\" yr e-bost, fel bod y defnyddiwr arall yn gallu anfon ateb uniongyrchol atoch.",
        "defemailsubject": "{{SITENAME}} yn anfon e-bost oddi wrth y defnyddiwr \"$1\"",
        "usermaildisabled": "Dim modd anfon e-bost at ddefnyddwyr",
        "api-error-badtoken": "Gwall mewnol: tocyn gwael.",
        "api-error-copyuploaddisabled": "Nid oes modd uwchlwytho drwy URL ar y gweinydd hwn",
        "api-error-duplicate": "Mae {{PLURAL:$1||[$2 ffeil arall]|[$2 ffeiliau eraill]|[$2 ffeiliau eraill]|[$2 ffeiliau eraill]|[$2 ffeiliau eraill]}} gyda'r un cynnwys {{PLURAL:$1||ynddi|ynddynt|ynddynt|ynddynt|ynddynt}} eisoes ar y wici hwn",
-       "api-error-duplicate-archive": "Fe fu {{PLURAL:$1|[$2 ffeil arall gyda'r un cynnwys ynddi]|[$2 ffeiliau eraill gyda'r un cynnwys ynddynt]}} ar y safle, ond fe'{{PLURAL:$1|i|u}} dilëwyd.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Ffeiliau|Ffeil|Ffeiliau|Ffeiliau|Ffeiliau|Ffeiliau}} dyblyg, sydd eisoes wedi {{PLURAL:$1|eu|ei|eu|eu|eu|eu}} dileu.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Ffeiliau|ffeil|ffeiliau|ffeiliau|ffeiliau|ffeiliau}} dyblyg.",
+       "api-error-duplicate-archive": "Fe fu {{PLURAL:$1|ffeil arall gyda'r un cynnwys ynddi|ffeiliau eraill gyda'r un cynnwys ynddynt}} ar y safle, ond fe'{{PLURAL:$1|i|u}} dilëwyd.",
        "api-error-empty-file": "Mae'r ffeil a gyflwynwyd gennych yn wag.",
        "api-error-emptypage": "Ni chaniateir dechrau tudalen newydd, a honno'n wag.",
        "api-error-fetchfileerror": "Gwall mewnol: aeth rhywbeth o'i le tra'n cywain y ffeil.",
index ee33863..93b0f7e 100644 (file)
@@ -49,7 +49,8 @@
                        "아라",
                        "Thomsen",
                        "Knud Winckelmann",
-                       "Macofe"
+                       "Macofe",
+                       "Jyllanj"
                ]
        },
        "tog-underline": "Understreg henvisninger:",
@@ -84,7 +85,7 @@
        "tog-watchlisthideminor": "Skjul mindre ændringer i overvågningslisten",
        "tog-watchlisthideliu": "Skjul indloggede brugeres redigeringer i overvågningslisten",
        "tog-watchlisthideanons": "Skjul anonyme brugeres redigeringer i overvågningslisten",
-       "tog-watchlisthidepatrolled": "Skjul patrujerede ændringer fra overvågningslisten",
+       "tog-watchlisthidepatrolled": "Skjul patruljerede ændringer fra overvågningslisten",
        "tog-ccmeonemails": "Send mig kopier af e-mails som jeg sender til andre brugere",
        "tog-diffonly": "Vis ikke sideindhold neden under versionssammenligninger",
        "tog-showhiddencats": "Vis skjulte kategorier",
        "yourname": "Dit brugernavn:",
        "userlogin-yourname": "Brugernavn",
        "userlogin-yourname-ph": "Indtast dit brugernavn",
-       "createacct-another-username-ph": "Indtast Brugernavn",
+       "createacct-another-username-ph": "Indtast brugernavn",
        "yourpassword": "Din adgangskode:",
        "userlogin-yourpassword": "Adgangskode",
        "userlogin-yourpassword-ph": "Indtast din adgangskode",
        "passwordreset-emailtitle": "Kontooplysninger på {{SITENAME}}",
        "passwordreset-emailtext-ip": "Nogen (sandsynligvis dig, fra IP-adressen $1) har anmodet om at få nulstillet din adgangskode til {{SITENAME}} ($4). {{PLURAL:$3|Den følgende brugerkonto er associeret|De følgende brugerkonti er associerede}} med denne e-mailadresse:\n\n$2\n\n{{PLURAL:$3|Denne midlertidige adgangskode|Disse midlertidige adgangskoder}} vil udløbe om {{PLURAL:$5|en dag|$5 dage}}.\nDu bør logge på og vælge en ny adgangskode nu. Hvis en anden end dig har lavet denne anmodning, eller hvis du er kommet i tanke om din oprindelig adgangskode og ikke længere ønsker at ændre den, kan du ignorere denne meddelelse og fortsætte med at bruge din gamle adgangskode.",
        "passwordreset-emailtext-user": "Brugeren $1 på {{SITENAME}} har anmodet om at få nulstillet din adgangskode til {{SITENAME}} ($4). {{PLURAL:$3|Den følgende brugerkonto er associeret|De følgende brugerkonti er associerede}} med denne e-mailadresse:\n\n$2\n\n{{PLURAL:$3|Denne midlertidige adgangskode|Disse midlertidige adgangskoder}} vil udløbe om {{PLURAL:$5|en dag|$5 dage}}.\nDu bør logge på og vælge en ny adgangskode nu. Hvis en anden end dig har lavet denne anmodning, eller hvis du er kommet i tanke om din oprindelig adgangskode og ikke længere ønsker at ændre den, kan du ignorere denne meddelelse og fortsætte med at bruge din gamle adgangskode.",
-       "passwordreset-emailelement": "Brugernavn: $1\nMidlertidig adgangskode: $2",
+       "passwordreset-emailelement": "Brugernavn: \n$1\n\nMidlertidig adgangskode: \n$2",
        "passwordreset-emailsent": "En e-mail om nulstilling af adgangskode er blevet sendt.",
        "passwordreset-emailsent-capture": "En e-mail om nulstilling af adgangskode, som vist nedenfor, er blevet sendt.",
        "passwordreset-emailerror-capture": "En mail om nulstilling af adgangskode, som vist nedenfor, blev genereret, men det lykkedes ikke at sende den til {{GENDER:$2|bruger}}: $1",
        "api-error-badtoken": "Intern fejl: ugyldigt mærke.",
        "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|[$2 en anden fil]|[$2 nogle andre filer]}} med samme indhold på webstedet.",
-       "api-error-duplicate-archive": "Der var allerede {{PLURAL:$1|en [$2 anden fil]|[$2 nogle andre filer]}} med samme indhold på webstedet, men {{PLURAL:$1|den|de}} blev slettet.",
-       "api-error-duplicate-archive-popup-title": "Duplet af {{PLURAL:$1|fil|filer}}, der allerede er slettet",
-       "api-error-duplicate-popup-title": "Duplet {{PLURAL:$1|fil|filer}}",
+       "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-empty-file": "Den fil du indsendte var tom.",
        "api-error-emptypage": "Det er ikke tilladt at oprette nye, tomme sider.",
        "api-error-fetchfileerror": "Intern fejl: noget gik galt under hentningen af filen.",
index 6314a70..8dc362c 100644 (file)
        "prefs-help-watchlist-token2": "Dies ist der geheime Schlüssel zum Webfeed Ihrer Beobachtungsliste.\nJeder, der ihn kennt, kann Ihre Beobachtungsliste lesen. Teilen Sie ihn deshalb nicht Anderen mit.\nSofern notwendig, [[Special:ResetTokens|können Sie ihn zurücksetzen]].",
        "savedprefs": "Ihre Einstellungen wurden gespeichert.",
        "prefs-reset-intro": "Sie können diese Seite verwenden, um die Einstellungen auf die Standards zurückzusetzen.\nDies kann nicht mehr rückgängig gemacht werden.",
-       "yourgender": "Welches Geschlecht haben Sie?",
        "prefs-help-gender": "Dies ist eine freiwillige Angabe.\nDie Software nutzt sie, um Sie anzureden sowie als Hinweis für andere durch Verwendung des zutreffenden grammatikalischen Geschlechts.\nDiese Information ist öffentlich.",
        "prefs-help-realname": "Dies ist eine freiwillige Angabe. Damit kann Ihr bürgerlicher Name Ihren Beiträgen zugeordnet werden.",
        "prefs-help-email": "Die Angabe einer E-Mail-Adresse ist optional, ermöglicht aber die Zusendung eines Ersatzpasswortes, sofern Sie Ihr Passwort vergessen haben.",
index b2a76d7..89fe6cd 100644 (file)
        "nstab-template": "Vorlage",
        "nstab-help": "Hilfeseite",
        "nstab-category": "Kategorie",
+       "mainpage-nstab": "Hauptseite",
        "nosuchaction": "Diese Aktion gibt es nicht",
        "nosuchactiontext": "Die in der URL angegebene Aktion wird von MediaWiki nicht unterstützt.\nEs kann ein Schreibfehler in der URL vorliegen oder es wurde ein fehlerhafter Link angeklickt.\nEs kann sich auch um einen Programmierfehler in der Software, die von {{SITENAME}} benutzt wird, handeln.",
        "nosuchspecialpage": "Spezialseite nicht vorhanden",
        "passwordreset-emailtitle": "Benutzerkontoinformationen auf {{SITENAME}}",
        "passwordreset-emailtext-ip": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst, hat eine Zurücksetzung deines Passworts bei {{SITENAME}} angefordert ($4). {{PLURAL:$3|Das folgende Benutzerkonto ist|Die folgenden Benutzerkonten sind}} mit dieser E-Mail-Adresse verknüpft:\n\n$2\n\n{{PLURAL:$3|Dieses temporäre Passwort läuft|Diese temporären Passwörter laufen}} innerhalb von {{PLURAL:$5|einem Tag|$5 Tagen}} ab.\nDu solltest dich anmelden und ein neues Passwort vergeben. Falls jemand anderes diese Anfrage getätigt hat oder du dich wieder an dein ursprüngliches Passwort erinnern kannst und es nicht länger ändern möchtest, kannst du diese Nachricht ignorieren und weiterhin dein altes Passwort benutzen.",
        "passwordreset-emailtext-user": "Benutzer $1 bei {{SITENAME}} hat eine Zurücksetzung deines Passworts bei {{SITENAME}} angefordert ($4). {{PLURAL:$3|Das folgende Benutzerkonto ist|Die folgenden Benutzerkonten sind}} mit dieser E-Mail-Adresse verknüpft:\n\n$2\n\n{{PLURAL:$3|Dieses temporäre Passwort läuft|Diese temporären Passwörter laufen}} innerhalb von {{PLURAL:$5|einem Tag|$5 Tagen}} ab. Du solltest dich anmelden und ein neues Passwort vergeben. Falls jemand anderes diese Anfrage getätigt hat oder du dich wieder an dein ursprüngliches Passwort erinnern kannst und es nicht ändern möchtest, kannst du diese Nachricht ignorieren und weiterhin dein altes Passwort benutzen.",
-       "passwordreset-emailelement": "Benutzername: $1\nTemporäres Passwort: $2",
+       "passwordreset-emailelement": "Benutzername: \n$1\n\nTemporäres Passwort: \n$2",
        "passwordreset-emailsent": "Eine Passwortzurücksetzungs-E-Mail wurde versandt.",
        "passwordreset-emailsent-capture": "Eine Passwortzurücksetzungs-E-Mail wurde versandt, die unten angezeigt wird.",
        "passwordreset-emailerror-capture": "Die unten angezeigte Passwortzurücksetzungs-E-Mail wurde generiert, allerdings ist der Versand an {{GENDER:$2|den Benutzer|die Benutzerin}} gescheitert: $1",
        "changeemail-password": "Dein {{SITENAME}}-Passwort:",
        "changeemail-submit": "E-Mail-Adresse ändern",
        "changeemail-throttled": "Du hast zu viele Anmeldeversuche unternommen.\nBitte warte $1, bevor du es erneut versuchst.",
+       "changeemail-nochange": "Bitte gib eine andere neue E-Mail-Adresse ein.",
        "resettokens": "Tokens zurücksetzen",
        "resettokens-text": "Du kannst Tokens zurücksetzen, welche dir den Zugriff auf bestimmte private Daten ermöglichen, die mit deinem Benutzerkonto hier verknüpft sind.\n\nDu solltest dies nur machen, wenn du die Tokens versehentlich mit jemandem geteilt hast oder dein Konto gefährdet ist.",
        "resettokens-no-tokens": "Es gibt keine Tokens zum Zurücksetzen.",
        "permissionserrorstext-withaction": "Du bist aus {{PLURAL:$1|dem folgenden Grund|den folgenden Gründen}} nicht berechtigt, $2:",
        "recreate-moveddeleted-warn": "'''Achtung: Du erstellst eine Seite, die bereits früher gelöscht wurde.'''\n\nBitte prüfe sorgfältig, ob die erneute Seitenerstellung den Richtlinien entspricht.\nZu deiner Information folgt das Lösch- und Verschiebungs-Logbuch mit der Begründung für die vorhergehende Löschung:",
        "moveddeleted-notice": "Diese Seite wurde gelöscht. Zur Information folgt das Lösch- und Verschiebungs-Logbuch dieser Seite.",
+       "moveddeleted-notice-recent": "Leider wurde diese Seite kürzlich gelöscht (innerhalb der letzten 24 Stunden).\nZur Information wird das Lösch- und Verschiebungs-Logbuch für die Seite unten angezeigt.",
        "log-fulllog": "Alle Logbucheinträge ansehen",
        "edit-hook-aborted": "Die Bearbeitung wurde ohne Erklärung durch eine Schnittstelle abgebrochen.",
        "edit-gone-missing": "Die Seite konnte nicht aktualisiert werden.\nSie wurde anscheinend gelöscht.",
        "gender-unknown": "„Der Benutzer“, „seine Diskussion“, „er bearbeitet“ usw.",
        "gender-male": "„Der Benutzer“, „seine Diskussion“, „er bearbeitet“ usw. (männlich)",
        "gender-female": "„Die Benutzerin“, „ihre Diskussion“, „sie bearbeitet“ usw. (weiblich)",
-       "prefs-help-gender": "Dies ist eine freiwillige Angabe.\nDie Software nutzt sie, um dich mit dem zutreffenden grammatikalischen Geschlecht anzureden oder gegenüber anderen zu erwähnen.\nDiese Information ist öffentlich zugänglich.\n\nBei der ersten Option wird das generische Maskulinum verwendet, so dass sich das gleiche Resultat ergibt wie bei der dritten Option.",
+       "prefs-help-gender": "Dies ist eine freiwillige Angabe.\nDie Software nutzt sie, um dich mit dem zutreffenden grammatikalischen Geschlecht anzureden oder gegenüber anderen zu erwähnen.\nDiese Information ist öffentlich zugänglich.",
        "email": "E-Mail",
        "prefs-help-realname": "Der bürgerliche Name ist optional.\nFalls angegeben, kann er verwendet werden, um dir eine Zuordnung für deine Beiträge zu geben.",
        "prefs-help-email": "Die Angabe einer E-Mail-Adresse ist optional, ermöglicht aber die Zusendung eines Ersatzpasswortes, sofern du dein Passwort vergessen hast.",
        "api-error-badaccess-groups": "Du hast nicht die Berechtigung Dateien in dieses Wiki hochzuladen.",
        "api-error-badtoken": "Interner Fehler: Der Token ist fehlerhaft.",
        "api-error-copyuploaddisabled": "Das Hochladen via URL wurde auf diesem Server deaktiviert.",
-       "api-error-duplicate": "Es gibt im Wiki bereits {{PLURAL:$1|[$2 eine andere Datei]|[$2 mehrere andere Dateien]}} gleichen Inhalts.",
-       "api-error-duplicate-archive": "Es {{PLURAL:$1|war bereits [$2 andere Datei]|waren bereits [$2 andere Dateien]}} gleichen Inhalts vorhanden. {{PLURAL:$1|Sie wurde|Sie wurden}} allerdings gelöscht.",
-       "api-error-duplicate-archive-popup-title": "Doppelte {{PLURAL:$1|Datei, die bereits gelöscht wurde|Dateien, die bereits gelöscht wurden}}",
-       "api-error-duplicate-popup-title": "Doppelt vorhandene {{PLURAL:$1|Datei|Dateien}}",
+       "api-error-duplicate": "Es gibt im Wiki bereits {{PLURAL:$1|eine andere Datei|mehrere andere Dateien}} gleichen Inhalts.",
+       "api-error-duplicate-archive": "Es {{PLURAL:$1|war bereits eine andere Datei|waren bereits andere Dateien}} gleichen Inhalts vorhanden. Sie {{PLURAL:$1|wurde|wurden}} allerdings gelöscht.",
        "api-error-empty-file": "Die hochgeladene Datei war leer.",
        "api-error-emptypage": "Es ist nicht erlaubt, neue leere Seiten zu erstellen.",
        "api-error-fetchfileerror": "Interner Fehler: Beim Abrufen der Datei ist ein Fehler aufgetreten.",
index 445e27c..ab4c2ba 100644 (file)
        "passwordreset-emailtitle": "Hesab timarê {{SITENAME}}",
        "passwordreset-emailtext-ip": "Jeweri, {{SITENAME}} ra (ma heta şımayê, $1 IP adresi ra) ($4) teferuatê hesabdê şıma  va wa biyaro xo viri. Karbero ke cêrdeyo {{PLURAL:$3|hesaba|eno hesaba}} ena e-posta adresiya aleqey cı esto:\n\n$2\n\n{{PLURAL:$3|ena parola idaretena|ena parola idareten}} {{PLURAL:$5|jew roc|$5  roca}}rêya.\nEna parolaya deqewe de u xorê ju parolaya newi bıweçine. Parolaya şıma emaya şıma viri se  yana  ena e-posta şıma nê weştase u şıma qayıl niye parolaya xo bıvurnese, ena mesacer peygoş bıkerê.",
        "passwordreset-emailtext-user": "$1 enê karberi, {{SITENAME}}  ra ($4) teferuatê hesab dê şıma  va wa biyaro xo viri. Karbero ke cêrdeyo {{PLURAL:$3|hesaba|eno hesaba}} ena e-posta adresiya aleqey cı esto:\n\n$2\n\n{{PLURAL:$3|ena parola idaretena|ena parola idareten}} {{PLURAL:$5|jew roc|$5  roca}}rêya.\nEna parolaya deqewe de u xorê ju parolaya newi bıweçine. Parolaya şıma emaya şıma viri se  yana  ena e-posta şıma nê weştase u şıma qayıl niye parolaya xo bıvurnese, ena mesacer peygoş bıkerê.",
-       "passwordreset-emailelement": "Nameyê karberi: $1\nParolaya vêrdiye: $2",
+       "passwordreset-emailelement": "Nameyê karberi: \n$1\n\nParolaya vêrdiye: \n$2",
        "passwordreset-emailsent": "Yew e-posteyê esterıtışê parola rışiya.",
        "passwordreset-emailsent-capture": "Yew e-posteyê esterıtışê parolayo ke rışiya, no cêr mocniyayo.",
        "passwordreset-emailerror-capture": "Yew e-posteyê esterıtışê parolayo ke rışiya, no cêr mocniyayo, ema {{GENDER:$2|karber}}i rê rıştış de mıwefeq nêbi: $1",
        "emailuser": "Ena karberi rê mesac bırse",
        "emailuser-title-target": "Na E-postaya {{GENDER:$1|karberi}}ya",
        "emailuser-title-notarget": "E-postaya karberi",
-       "emailpage": "karberi re e-posta bırışê",
        "emailpagetext": "Şıma şenê nê formê cêrêni nê {{GENDER:$1|karber}}i rê e-poste rıştış de bıgurenê.\n[[Special:Preferences|Tercihanê şımayê karberi]] de adresa e-posteya ke şıma daya, na adrese qısmê adresa e-postey de \"kami ra\" asena, no sebeb ra gırewtoğ şeno direkt cewab bıdero şıma.",
        "defemailsubject": "\"$1\" ra e-postay {{SITENAME}} amê",
        "usermaildisabled": "E-mailê karberani kafiliyeya",
        "api-error-badtoken": "Xetaya zerreki: Antışo xırabın.",
        "api-error-copyuploaddisabled": "URL barkerdış ena waster dı qefılyayo.",
        "api-error-duplicate": "Ena {{PLURAL:$1|ze ke [zey $2]|biya [zey dosya da $2]}} zeq wesiqa biya wendeyê.",
-       "api-error-duplicate-archive": "Ena {{PLURAL:$1|vurneyaya [$2 zey na dosya]| [zerrey cı zey $2 dosya]}} aseno,feqet {{PLURAL:$1|ena dosya|tewr veri}} besterneyaya.",
-       "api-error-duplicate-archive-popup-title": "Ena {{PLURAL:$1|Dosya besterneyaya|dosya}} xora  besterneyaya.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|dosyaya|dosyaya}} dılet",
+       "api-error-duplicate-archive": "Ena {{PLURAL:$1|vurneyaya zey na dosya|zerrey cı zey dosya}} aseno,feqet {{PLURAL:$1|ena dosya|tewr veri}} besterneyaya.",
        "api-error-empty-file": "Dosyaya ke şıma rışta venga.",
        "api-error-emptypage": "Newi, pelaya veng vıraştışi rê mısade nêdeyêno.",
        "api-error-fetchfileerror": "Xırabiya zerrek:Dosya grotış dı tay çi raşt nêşı.",
index b7b1cb8..9448eca 100644 (file)
        "passwordreset-emailtitle": "Kontowe drobnostki na {{GRAMMAR:lokatiw|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "Něchten (nejskerjej ty, z IP-adresu $1) jo anulěrowanje gronidła za {{GRAMMAR:akuzatiw|{{SITENAME}}}} pominał ($4).  {{PLURAL:$3|Slědujuce wužywarske konto jo|Slědujucej wužywarskej konśe stej|Slědujuce wužywarske konta su}} z toś tej e-mailoweju adresu {{PLURAL:$3|zwězane|zwězanej|zwězane}}:\n\n$2\n\n{{PLURAL:$3|Toś to nachylne gronidło spadnjo|Toś tej nachylnej gronidle spadnjotej|Toś te nachylne gronidła spadnu}} za {{PLURAL:$5|jaden źeń|$5 dnja|$5 dny|$5 dnjow}}.\nTy by měł se něnto pśizjawiś a nowe gronidło wustajiś. Jolic něchten drugi jo toś to napšašowanje pósłał, abo jolic sy se zasej na spócetne gronidło spomnjeł a wěcej njocoš jo změniś, móžoš toś to zdźělenje ignorěrowaś a swójo stare gronidło dalej wužywaś.",
        "passwordreset-emailtext-user": "Wužywaŕ $1 jo anulěrowanje gronidła za {{GRAMMAR:akuzatiw|{{SITENAME}}}} pominał ($4).  {{PLURAL:$3|Slědujuce wužywarske konto jo|Slědujucej wužywarskej konśe stej|Slědujuce wužywarske konta su}} z toś tej e-mailoweju adresu {{PLURAL:$3|zwězane|zwězanej|zwězane}}:\n\n$2\n\n{{PLURAL:$3|Toś to nachylne gronidło spadnjo|Toś tej nachylnej gronidle spadnjotej|Toś te nachylne gronidła spadnu}} za {{PLURAL:$5|jaden źeń|$5 dnja|$5 dny|$5 dnjow}}.\nTy by měł se něnto pśizjawiś a nowe gronidło wustajiś. Jolic něchten drugi jo toś to napšašowanje pósłał, abo jolic sy se zasej na spócetne gronidło spomnjeł a wěcej njocoš jo změniś, móžoš toś to zdźělenje ignorěrowaś a swójo stare gronidło dalej wužywaś.",
-       "passwordreset-emailelement": "Wužywarske mě: $1\nNachylne gronidło: $2",
+       "passwordreset-emailelement": "Wužywarske mě: \n$1\n\nNachylne gronidło: \n$2",
        "passwordreset-emailsent": "E-mail za anulěrowanje gronidła jo se pósłała.",
        "passwordreset-emailsent-capture": "E-mail za anulěrowanje gronidła jo se pósłała, kótaraž pokazujo se dołojce.",
        "passwordreset-emailerror-capture": "E-mail za anulěrowanje gronidła jo se napórała, kótaraž se dołojce pokazujo, ale słanje {{GENDER:$2|wužywarjeju|wužywarce}} njejo se raźiło: $1",
        "emailuser": "Toś tomu wužywarjeju e-mail pósłaś",
        "emailuser-title-target": "E-mail na {{GENDER:$1|toś tomu wužywarjeju|toś tej wužywarce}} pósłaś",
        "emailuser-title-notarget": "E-mail wužywarjeju",
-       "emailpage": "E-mail wužywarjeju",
        "emailpagetext": "Móžoš slědujucy formular wužywaś, aby toś tomu {{GENDER:$1|wužywarjeju}} e-mail pósłał.\nE-mailowa adresa, kótaruž sy zapódał w [[Special:Preferences|swójich wužywarskich nastajenjach]], zjawi se ako adresa w pólu \"Wót\" e-maile, aby dostawaŕ móžo śi direktnje wótegroniś.",
        "defemailsubject": "{{SITENAME}} - e-mail wót wužywarja \"$1\"",
        "usermaildisabled": "Wužywarska e-mail znjemóžnjona",
        "api-error-copyuploaddisabled": "Nagrawanje pśez URL jo na toś tom serwerje znjemóžnjone.",
        "api-error-duplicate": "{{PLURAL:$1|Jo|Stej|Su|Jo}} južo {{PLURAL:$1|[$2 druga dataja]|[$2 drugej dataji]|[$2 druge dataje]|[$2 drugich datajow]}} z tym samym wopśimjeśim na sedle",
        "api-error-duplicate-archive": "{{PLURAL:$1|Jo była [$2 druga dataja]|Stej byłej [$2 drugej dataji]|Su byli [$2 druge dataje]|Jo było [$2 drugich datajow]}} južo na websedle z tym samym wopśimjeśim, ale {{PLURAL:$1|jo se wulašowała|stej se wulašowałej|su se wulašowali|jo se wulašowało}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Dwójna dataja, kótaraž jo|Dwójnej dataji, kótarejž stej|Dwójne dataje, kótarež su|Dwójne dataje, kótarež su}} se južo {{PLURAL:$1|wulašowała|wulašowałej|wulašowali|wulašowali}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Dwójna dataja|Dwójnej dataji|Dwójne dataje|Dwójne dataje}}",
        "api-error-empty-file": "Dataja, kótaruž sy nagrał, jo prozna była.",
        "api-error-emptypage": "Napóranje nowych, proznych bokow njejo dowólone.",
        "api-error-fetchfileerror": "Nutśikowna zmólka: Pśi wobstarowanju dataje něco njejo se raźiło.",
index de7ba43..56af462 100644 (file)
        "resetpass-wrong-oldpass": "Nokosilap kaatalib daamot toi iy maso gunoon.\nNaalanannu noh kaatalib toi nokopokianu koh no do kaatalib daamot.",
        "resetpass-temp-password": "Kaatalib daamot:",
        "passwordreset": "Pudoliai kawagu kaatalib",
-       "passwordreset-legend": "Pudoliai kawagu kaatalib",
        "passwordreset-disabled": "Pomudolian kawagu do kaatalib kitaantob id wiki diti.",
        "passwordreset-username": "Ngarandait:",
        "passwordreset-domain": "Sumanganu:",
        "passwordreset-capture-help": "Nung goritannu id kutak diti, surat-i (ii ki-kaa-talib daamot) mangan pokitanai montok dia om nogi porikoton montok momomoguno diti.",
        "passwordreset-email": "Porikatan surat-i:",
        "passwordreset-emailtitle": "Kointalangan takaun id {{SITENAME}}",
-       "passwordreset-emailelement": "Ngaranmoguno: $1\nKaatalib daamot: $2",
+       "passwordreset-emailelement": "Ngaranmoguno: \n$1\n\nKaatalib daamot: \n$2",
        "passwordreset-emailsent": "Surat-i pononsorou nakaatod noh.",
        "passwordreset-emailsent-capture": "Surat-i pononsorou nakaatod noh, miagal id siriba diti.",
        "passwordreset-emailerror-capture": "Surat-i pononsorou nopudali noh, miagal id siriba diti, nga awu kaatod id momomoguno: $1",
index 70e4dd3..76c1aad 100644 (file)
@@ -4,7 +4,8 @@
                        "जनक राज भट्ट",
                        "बिप्लब आनन्द",
                        "रमेश सिंह बोहरा",
-                       "राम प्रसाद जोशी"
+                       "राम प्रसाद जोशी",
+                       "Macofe"
                ]
        },
        "tog-underline": "सम्बन्ध निम्न रेखाङ्कन:",
        "passwordreset-capture": "निस्कने इमेलको नमुना हेर्ने ?",
        "passwordreset-email": "इमेल ठेगाना:",
        "passwordreset-emailtitle": "{{SITENAME}}मा खाता विवरण",
-       "passwordreset-emailelement": "प्रयोगकर्ताको नाम: $1\nअस्थाई पासवर्ड: $2",
+       "passwordreset-emailelement": "प्रयोगकर्ताको नाम: \n$1\n\nअस्थाई पासवर्ड: \n$2",
        "passwordreset-emailsent": "पासवर्ड परिवर्तनका लागि इमेल पठाइया छ।",
        "changeemail": "इमेल ठेगाना बदेल",
        "changeemail-text": "आफ्नो इमेल ठेगाना परिवर्तन गद्द यो फारम भर । यैलाई पुष्टि गद्द तमीले आफ्नो पासवर्ड हाल्नु पडन्छ।",
        "powersearch-togglelabel": "जाँच्ने :",
        "powersearch-toggleall": "सबै",
        "powersearch-togglenone": "कोइ लै होइनन",
+       "powersearch-remember": "चयन गर्याकोलाई भविष्यमी गरिन्या खोजहरूमी सम्झन्या",
        "search-external": "भाइरका खोज",
        "searchdisabled": "{{SITENAME}} खोज निस्क्रिय पारियाको छ ।\nअहिल तमी गूगलद्वारा खोज्न सकन्छौ ।\nयाद गर्या उनीहरूको {{SITENAME}}को सूची सामग्री पुरानो भयाको हुनसकन्छ ।",
        "preferences": "मेरी रोजाई",
        "feedback-bugornote": "यदि तमी कुनै प्राविधिक समस्यालाई विस्तारले सम्झाउन तयार छौ भण्या कृपया [$1 बग राख]।\nयदि हैन, भण्या तमी तल दियाको सरल फारमको प्रयोग गद्दसक्द्याहौ । तमरो टिप्पणी, तमरो प्रयोगकर्ता नाम र तमरो ब्राउजरको नाम सहित \"[$3 $2]\" पानामी जोडिन्याछ ।",
        "searchsuggest-search": "खोज",
        "api-error-duplicate": "यै साइटमी पहिलीबठे यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल छ]|भयाका  [$2 केहि अरु फाइलहरू छन्]}} ।",
-       "api-error-duplicate-archive": "यै साइटमी पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल थियो]|भयाका  [$2 केहि अरु फाइलहरू थिए]}} ।\nतर {{PLURAL:$1|यो मेट्याको थियो|यी मेटायाका थिए}} ।",
-       "api-error-duplicate-archive-popup-title": "पैल्ली  {{PLURAL:$1|मेट्याको फाइलको|मेट्याका फाइलहरूको}} नकल प्रति बनाउन्या।",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|फाइल|फाइलहरू}} नकल प्रति बनाउन्या",
+       "api-error-duplicate-archive": "यै साइटमी पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भयाको अर्को फाइल थियो|भयाका केहि अरु फाइलहरू थिए}} ।\nतर {{PLURAL:$1|यो मेट्याको थियो|यी मेटायाका थिए}} ।",
        "expand_templates_preview_fail_html": "<em>किनकि {{SITENAME}} सिधै एचटिएमयल सक्षम छ र तमीले लग इन गर्या छैनौ, पूर्वावलोकन लुकाइयाको छ ताकि सम्भावित जाभास्क्रिप्ट आक्रमणलाई रोक्द सकियोस् ।</em>\n\n<strong>यदि यो मान्य पूर्ववावलोकन प्रयास हो भण्या पुन प्रयास गर ।</strong>\nयदि यसले कार्य पूर्ण भएन भण्या [[Special:UserLogout|लग आउट गरिबर]] फेरी लग इन गर्या ।",
        "expand_templates_preview_fail_html_anon": "<em>किनकि {{SITENAME}} सिधै एचटिएमयल सक्षम छ र तमीले लग इन गर्या छैनौ, पूर्वावलोकन लुकाइयाको छ ताकि सम्भावित जाभास्क्रिप्ट आक्रमणलाई रोक्द सकियोस् ।</em>\n\n<strong>यदि यो मान्य पूर्वावलोकन प्रयास हो भण्या कृपया [[Special:UserLogin|लग इन गरिबर]] पुनः प्रयास गर्या ।</strong>",
        "default-skin-not-found": "ओह! तमरो विकिको पूर्व निर्धारित खोल जस्तो कि <code dir=\"ltr\">$wgDefaultSkin</code> मी बताइयाको<code>$1</code>, उपलब्ध नाईथिन् ।\n\nतमरो इन्स्टलेसन यी खोलहरूलाई सम्मिलित गर्दछ {{PLURAL:$4|खोल|खोलहरू}}। हेर [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: खोललाई सम्मिलित गर्नु] ताकि तमीलाई जानकारी होस् कि कसरि {{PLURAL:$4|उसलाई|उसलाई सम्मिलित गर्न सकियोस् र निर्धारितलाई तय गद्दे}}।\n\n$2\n\n; यदि तमीले अहिले मीडियाविकि इन्स्टाल गर्याका छौ:\n: तमीले सम्भवत गिटबठे इन्स्टाल गर्याका छौ, वा सिधै स्रोत कोडबठे गर्याका छौ जैको लागि कुनै अर्कै तारिका प्रयोग गरियाको छ । यो आशा अनुरूप छ । कोशिश गर केहि खोलहरू\n[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's मीडियाविकिको खोल डाइरेक्ट्रीबाट डाउनलोड गद्या], जैको लागि तमी:\n:* डाउनलोड गर [https://www.mediawiki.org/wiki/Download टरबल इन्स्टालर], जुन कयौं खोलहरू र विस्तारमी उपलब्ध छन्। तमी खोलहरूको कोड <code>skins/</code> त्यसको डाइरेक्ट्रीबाट कपी-पेस्ट गद्द सक्द्या हौ। \n:* व्यक्तिगत खोलहरू टरबलबठे डाउनलोड गर\n[https://www.mediawiki.org/wiki/Special:SkinDistributor मीडिया विकि] बठे।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins गिटको प्रयोग गरेर डाउनलोड गद्द सकन्छौ]।\n: यदि तमी विकासकर्ता हौ भण्या यसो गद्दा तमरो गिट-रिपजिटरीमी केहि हुनुहुँदैन । \n; यदि तमीले अहिले मीडियाविकिलाई अपग्रेड गर्याका छौ:\n: मीडियाविकि १.२४ र यैको नवीन रूप स्वतः रूपले खोलहरूलाई सक्षम गद्दैनन् (हेर [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual:खोलहरूको स्वतः खोज])। तमी निम्नलिखितलाई पेस्ट गद्द सकन्छौ: {{PLURAL:$5|लाइन|लाइनहरू}}  <code>LocalSettings.php</code> मी ताकि {{PLURAL:$5|उसले|सबै}} सक्षम होस् जस्तो कि तमीले इन्स्टाल गर्याको {{PLURAL:$5|खोल|खोलहरू}}को मामिलामी:\n\n<pre dir=\"ltr\">$3</pre>\n\n; यदि तमीले अहिले परिवर्तन गर्याका छौ<code>LocalSettings.php</code>:\n: खोल नामहरूको अगाडी डबल-क्लिक गर जसले तमलाई विभिन्न प्रकारहरूको विकल्प दिन्छ।"
index 6c2ff8a..e79ad80 100644 (file)
        "passwordreset-emailtitle": "Particulêr ed l'utèint só {{SITENAME}}",
        "passwordreset-emailtext-ip": "Quelchidûn (prubabilmèint té, cun l'indirés IP $1) l'à dmandê de spidîregh 'na nōva cêva 'd ingrès per andêr dèinter a {{SITENAME}} ($4). {{PLURAL:$3|L'utèint inscrét| J utèint inscrét}} a sté indirés ed pôsta eletrônica în:\n \n$2 \n\n{{PLURAL:$3|Cla cêva 'd ingrès pruvişôria la scadrà| St' al cêvi 'd ingrès pruvişôri ché scadrân}} dôp {{PLURAL:$5|ûn dé|$5 dé}}. Ét duvrés andêr dèinter e sernîr 'na cêva 'd ingrès nōva adès. \n\nSe t'é mìa stê té a fêr la dmânda, o s' ét t'é ricurdê la cêva 'd ingrès uriginêla e an 't vō mia pió cambiêrla, ét pō scanşlêr cól mesâg ché e cuntinvêr a druvêr la tó cêva 'd ingrès vècia.",
        "passwordreset-emailtext-user": "L'utèint $1 ed {{SITENAME}} l'à dmandê de spidîregh 'na nōva cêva 'd ingrès per andêr dèinter a {{SITENAME}} ($4). {{PLURAL:$3|L'utèint inscrét| J utèint inscrét}} a sté indirés ed pôsta eletrônica în:\n\n$2 \n\n{{PLURAL:$3|Cla cêva 'd ingrès pruvişôria ché la scadrà| St' al cêvi 'd ingrès pruvişôri ché scadrân}} dôp {{PLURAL:$5|ûn dé|$5 dé}}. Ét duvrés andêr dèinter e sernîr 'na cêva 'd ingrès nōva adès. \n\nSe t'é mìa stê té a fêr la dmânda, o s' ét t'é ricurdê la cêva 'd ingrès uriginêla e an 't vō mia pió cambiêrla, ét pō scanşlêr cól mesâg ché e cuntinvêr a druvêr la tó cêva 'd ingrès vècia",
-       "passwordreset-emailelement": "Nòm utèint: $1.\nCêva 'd ingrès pruvişôria: $2",
+       "passwordreset-emailelement": "Nòm utèint: \n$1\n.\nCêva 'd ingrès pruvişôria: \n$2",
        "passwordreset-emailsent": "É stê spidî un mesâg ed pôsta eletrônica per turnêr a impustêr la cêva 'd ingrès.",
        "passwordreset-emailsent-capture": "É stê spidî un mesâg ed pôsta eletrônica per turnêr a impustêr la cêva 'd ingrès, ché sòta a gh'é al tèst che gh'é scrét.",
        "passwordreset-emailerror-capture": "É stê fât un mesâg ed pôsta eletrônica per turnêr a impustêr la cêva 'd ingrès, scréta ché 'd sègvit. La spedisiòun {{GENDER:$2|a l'utèint}} an n'é mia 'riusîda:$1",
index cdaf655..9620918 100644 (file)
        "passwordreset-emailtitle": "Λεπτομέρειες λογαριασμού για {{SITENAME}}",
        "passwordreset-emailtext-ip": "Κάποιος (πιθανώς εσείς, από την διεύθυνση IP $1) ζήτησε την επαναφορά του κωδικού σας σε {{SITENAME}} ($4).  {{PLURAL:$3|Ο ακόλουθος λογαριασμός|Οι ακόλουθοι λογαριασμοί}} χρήστη συνδέονται με αυτή τη διεύθυνση e-mail:\n\n$2\n\n{{PLURAL:$3|Αυτός ο προσωρινός κωδικός πρόσβασης θα λήξει|Αυτοί οι προσωρινοί κωδικοί πρόσβασης θα λήξουν}} σε {{PLURAL:$5|μία ημέρα|$5 ημέρες}}.\nΘα πρέπει να συνδεθείτε τώρα και να επιλέξετε ένα νέο κωδικό. Αν κάποιος άλλος έκανε αυτό το αίτημα ή αν έχετε θυμηθεί τον αρχικό κωδικό πρόσβασής σας, και δεν επιθυμείτε πια να τον αλλάξετε, μπορείτε να αγνοήσετε αυτό το μήνυμα και να συνεχίσετε να χρησιμοποιείτε τον παλιό σας κωδικό πρόσβασης.",
        "passwordreset-emailtext-user": "Ο χρήστης $1 στη {{SITENAME}} ζήτησε μια επαναφορά του κωδικού πρόσβασης σας σε {{SITENAME}} ($4). {{PLURAL:$3|Ο ακόλουθος λογαριασμός|Οι ακόλουθοι λογαριασμοί}} χρήστη συνδέονται με αυτή τη διεύθυνση e-mail:\n\n$2\n\n{{PLURAL:$3|Αυτός ο προσωρινός κωδικός πρόσβασης θα λήξει| Αυτοί οι προσωρινοί κωδικοί πρόσβασης θα λήξουν}} σε {{PLURAL:$5| μία ημέρα| $5 ημέρες}}.\nΘα πρέπει να συνδεθείτε τώρα και να επιλέξετε ένα νέο κωδικό. Αν κάποιος άλλος έκανε αυτό το αίτημα ή αν έχετε θυμηθεί τον αρχικό κωδικό πρόσβασής σας, και δεν επιθυμείτε πια να τον αλλάξετε, μπορείτε να αγνοήσετε αυτό το μήνυμα και να συνεχίσετε να χρησιμοποιείτε τον παλιό σας κωδικό πρόσβασης.",
-       "passwordreset-emailelement": "Όνομα χρήστη: $1\nΠροσωρινός κωδικός πρόσβασης:$2",
+       "passwordreset-emailelement": "Όνομα χρήστη: \n$1\n\nΠροσωρινός κωδικός πρόσβασης:\n$2",
        "passwordreset-emailsent": "Έχει αποσταλεί email επαναφοράς κωδικού.",
        "passwordreset-emailsent-capture": "Έχει αποσταλεί email επαναφοράς κωδικού, το οποίο φαίνεται πιο κάτω.",
        "passwordreset-emailerror-capture": "Ένα email επαναφοράς κωδικού έχει δημιουργηθεί, το οποίο φαίνεται πιο κάτω, αλλά απέτυχε η αποστολή του στο  {{GENDER:$2|χρήστη}}: $1",
        "spam_blanking": "Όλες οι αναθεωρήσεις περιείχαν συνδέσμους προς το $1, εξάλειψη",
        "spam_deleting": "Διαγραφή όλων των αναθεωρήσεων που περιείχαν συνδέσμους προς το $1",
        "simpleantispam-label": "Έλεγχος για spam.\n<strong>Μην</strong> το συμπληρώσετε αυτό!",
-       "pageinfo-title": "Πληροφορίες για \"$1\"",
+       "pageinfo-title": "Πληροφορίες για «$1»",
        "pageinfo-not-current": "Μας συγχωρείτε, είναι αδύνατο να παράσχουμε αυτή την πληροφορία για παλιές αναθεωρήσεις.",
        "pageinfo-header-basic": "Βασικές πληροφορίες",
        "pageinfo-header-edits": "Ιστορικό επεξεργασίας",
        "pageinfo-recent-authors": "Πρόσφατος αριθμός μοναδικών συντακτών",
        "pageinfo-magic-words": "{{PLURAL:$1|Μαγική λέξη|Μαγικές λέξεις}} ($1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Κρυφή κατηγορία|Κρυφές κατηγορίες}} ($1)",
-       "pageinfo-templates": "Ενσωματωμένα {{PLURAL:$1|πρότυπο|πρότυπα}} ($1)",
-       "pageinfo-transclusions": "{{PLURAL:$1|Î\97 Ï\83ελίδα ÎµÎ½Ï\83Ï\89μαÏ\84Ï\8eνεÏ\84αι|Î\9fι Ï\83ελίδεÏ\82 ÎµÎ½Ï\83Ï\89μαÏ\84Ï\8eνονÏ\84αι}} Ï\83ε ($1)",
+       "pageinfo-templates": "{{PLURAL:$1|Ενσωματωμένο πρότυπο|Ενσωματωμένα πρότυπα}} ($1)",
+       "pageinfo-transclusions": "{{PLURAL:$1|Σελίδα Ï\83Ï\84ην Î¿Ï\80οία|ΣελίδεÏ\82 Ï\83Ï\84ιÏ\82 Î¿Ï\80οίεÏ\82}} ÎµÎ½Ï\83Ï\89μαÏ\84Ï\8eνεÏ\84αι ($1)",
        "pageinfo-toolboxlink": "Πληροφορίες σελίδας",
-       "pageinfo-redirectsto": "Ανακατευθύνσεις σε",
+       "pageinfo-redirectsto": "Ανακατευθύνει σε",
        "pageinfo-redirectsto-info": "πληροφορίες",
-       "pageinfo-contentpage": "Î¥Ï\80ολογίζονÏ\84αι Ï\89Ï\82 Ï\83ελίδεÏ\82 περιεχομένου",
+       "pageinfo-contentpage": "Î\9aαÏ\84αμεÏ\84Ï\81άÏ\84αι Ï\89Ï\82 Ï\83ελίδα περιεχομένου",
        "pageinfo-contentpage-yes": "Ναι",
        "pageinfo-protect-cascading": "Οι προστασίες ξεκινούν τη διαδοχή τους από εδώ",
        "pageinfo-protect-cascading-yes": "Ναι",
        "patrol-log-page": "Αρχείο καταγραφής περιπολιών",
        "patrol-log-header": "Αυτός είναι ένας κατάλογος περιπολούμενων αναθεωρήσεων.",
        "log-show-hide-patrol": "$1 καταγραφή επιτήρησης",
+       "log-show-hide-tag": "$1 ετικέττα καταγραφής",
        "deletedrevision": "Η παλιά έκδοση της $1 διαγράφτηκε",
        "filedeleteerror-short": "Σφάλμα κατά τη διαγραφή του αρχείου: $1",
        "filedeleteerror-long": "Αντιμετωπίστηκαν προβλήματα κατά τη διαγραφή του αρχείου:\n\n$1",
        "api-error-badtoken": "Εσωτερικό σφάλμα: εσφαλμένο διακριτικό.",
        "api-error-copyuploaddisabled": "Η επιφόρτωση από URL είναι απενεργοποιημένη σε αυτόν το διακομιστή.",
        "api-error-duplicate": "{{PLURAL:$1|Υπάρχει  [$2 άλλο αρχείο]|Υπάρχουν [$2 άλλα αρχεία]}} ήδη στον ιστότοπο με το ίδιο περιεχόμενο.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Υπήρχε ήδη [$2 άλλο αρχείο] |Υπήρχαν ήδη [$2 άλλα αρχεία]}} στον ιστότοπο με το ίδιο περιεχόμενο, αλλά {{PLURAL:$1|διαγράφηκε|διαγράφηκαν}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Διπλότυπο αρχείο που έχει|Διπλότυπα αρχεία που έχουν}}  ήδη διαγραφεί",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Διπλότυπο αρχείο|Διπλότυπα αρχεία}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Υπήρχε ήδη άλλο αρχείο|Υπήρχαν ήδη άλλα αρχεία}} στον ιστότοπο με το ίδιο περιεχόμενο, αλλά {{PLURAL:$1|διαγράφηκε|διαγράφηκαν}}.",
        "api-error-empty-file": "Το αρχείο που υποβάλλατε ήταν κενό.",
        "api-error-emptypage": "Η δημιουργία νέων, κενών σελιδών δεν επιτρέπετε.",
        "api-error-fetchfileerror": "Εσωτερικό σφάλμα: κάτι πήγε στραβά κατά την ανάκτηση του αρχείου.",
        "special-characters-title-endash": "παύλα",
        "special-characters-title-emdash": "διπλή παύλα",
        "special-characters-title-minus": "σύμβολο πλην",
+       "mw-widgets-dateinput-no-date": "Καμία ημερομηνία δεν επιλέχθηκε",
        "mw-widgets-dateinput-placeholder-day": "ΕΕΕΕ-ΜΜ-ΗΗ",
        "mw-widgets-dateinput-placeholder-month": "ΕΕΕΕ-ΜΜ",
+       "mw-widgets-titleinput-description-new-page": "η σελίδα που δεν υπάρχει ακόμα",
        "mw-widgets-titleinput-description-redirect": "ανακατεύθυνση στο $1"
 }
index 22f1815..a33517c 100644 (file)
        "nstab-template": "Template",
        "nstab-help": "Help page",
        "nstab-category": "Category",
-       "mainpage-nstab": "",
+       "mainpage-nstab": "Main page",
        "nosuchaction": "No such action",
        "nosuchactiontext": "The action specified by the URL is invalid.\nYou might have mistyped the URL, or followed an incorrect link.\nThis might also indicate a bug in the software used by {{SITENAME}}.",
        "nosuchspecialpage": "No such special page",
        "passwordreset-emailtitle": "Account details on {{SITENAME}}",
        "passwordreset-emailtext-ip": "Someone (probably you, from IP address $1) requested a reset of your\npassword for {{SITENAME}} ($4). The following user {{PLURAL:$3|account is|accounts are}}\nassociated with this email address:\n\n$2\n\n{{PLURAL:$3|This temporary password|These temporary passwords}} will expire in {{PLURAL:$5|one day|$5 days}}.\nYou should log in and choose a new password now. If someone else made this\nrequest, or if you have remembered your original password, and you no longer\nwish to change it, you may ignore this message and continue using your old\npassword.",
        "passwordreset-emailtext-user": "User $1 on {{SITENAME}} requested a reset of your password for {{SITENAME}}\n($4). The following user {{PLURAL:$3|account is|accounts are}} associated with this email address:\n\n$2\n\n{{PLURAL:$3|This temporary password|These temporary passwords}} will expire in {{PLURAL:$5|one day|$5 days}}.\nYou should log in and choose a new password now. If someone else made this\nrequest, or if you have remembered your original password, and you no longer\nwish to change it, you may ignore this message and continue using your old\npassword.",
-       "passwordreset-emailelement": "Username: $1\nTemporary password: $2",
+       "passwordreset-emailelement": "Username:\n$1\n\nTemporary password:\n$2",
        "passwordreset-emailsent": "A password reset email has been sent.",
        "passwordreset-emailsent-capture": "A password reset email has been sent, which is shown below.",
        "passwordreset-emailerror-capture": "A password reset email was generated, which is shown below, but sending it to the {{GENDER:$2|user}} failed: $1",
        "changeemail-password": "Your {{SITENAME}} password:",
        "changeemail-submit": "Change email",
        "changeemail-throttled": "You have made too many login attempts.\nPlease wait $1 before trying again.",
+       "changeemail-nochange": "Please enter a different new email address.",
        "resettokens": "Reset tokens",
        "resettokens-summary": "",
        "resettokens-text": "You can reset tokens which allow access to certain private data associated with your account here.\n\nYou should do it if you accidentally shared them with someone or if your account has been compromised.",
        "permissionserrorstext-withaction": "You do not have permission to $2, for the following {{PLURAL:$1|reason|reasons}}:",
        "recreate-moveddeleted-warn": "<strong>Warning: You are recreating a page that was previously deleted.</strong>\n\nYou should consider whether it is appropriate to continue editing this page.\nThe deletion and move log for this page are provided here for convenience:",
        "moveddeleted-notice": "This page has been deleted.\nThe deletion and move log for the page are provided below for reference.",
+       "moveddeleted-notice-recent": "Sorry, this page was recently deleted (within the last 24 hours).\nThe deletion and move log for the page are provided below for reference.",
        "log-fulllog": "View full log",
        "edit-hook-aborted": "Edit aborted by hook.\nIt gave no explanation.",
        "edit-gone-missing": "Could not update the page.\nIt appears to have been deleted.",
        "group-bot": "Bots",
        "group-sysop": "Administrators",
        "group-bureaucrat": "Bureaucrats",
-       "group-suppress": "Oversights",
+       "group-suppress": "Suppressors",
        "group-all": "(all)",
        "group-user-member": "{{GENDER:$1|user}}",
        "group-autoconfirmed-member": "{{GENDER:$1|autoconfirmed user}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|administrator}}",
        "group-bureaucrat-member": "{{GENDER:$1|bureaucrat}}",
-       "group-suppress-member": "{{GENDER:$1|oversight}}",
+       "group-suppress-member": "{{GENDER:$1|suppressor}}",
        "grouppage-user": "{{ns:project}}:Users",
        "grouppage-autoconfirmed": "{{ns:project}}:Autoconfirmed users",
        "grouppage-bot": "{{ns:project}}:Bots",
        "grouppage-sysop": "{{ns:project}}:Administrators",
        "grouppage-bureaucrat": "{{ns:project}}:Bureaucrats",
-       "grouppage-suppress": "{{ns:project}}:Oversight",
+       "grouppage-suppress": "{{ns:project}}:Suppress",
        "right-read": "Read pages",
        "right-edit": "Edit pages",
        "right-createpage": "Create pages (which are not discussion pages)",
        "filerevert-legend": "Revert file",
        "filerevert-intro": "You are about to revert the file <strong>[[Media:$1|$1]]</strong> to the [$4 version as of $3, $2].",
        "filerevert-comment": "Reason:",
-       "filerevert-defaultcomment": "Reverted to version as of $2, $1",
+       "filerevert-defaultcomment": "Reverted to version as of $2, $1 ($3)",
        "filerevert-submit": "Revert",
        "filerevert-success": "<strong>[[Media:$1|$1]]</strong> has been reverted to the [$4 version as of $3, $2].",
        "filerevert-badversion": "There is no previous local version of this file with the provided timestamp.",
        "nopagetext": "The target page you have specified does not exist.",
        "pager-newer-n": "{{PLURAL:$1|newer 1|newer $1}}",
        "pager-older-n": "{{PLURAL:$1|older 1|older $1}}",
-       "suppress": "Oversight",
+       "suppress": "Suppress",
        "querypage-disabled": "This special page is disabled for performance reasons.",
        "apihelp": "API help",
        "apihelp-summary": "",
        "api-error-badaccess-groups": "You are not permitted to upload files to this wiki.",
        "api-error-badtoken": "Internal error: Bad token.",
        "api-error-copyuploaddisabled": "Uploading by URL is disabled on this server.",
-       "api-error-duplicate": "There {{PLURAL:$1|is [$2 another file]|are [$2 some other files]}} already on the site with the same content.",
-       "api-error-duplicate-archive": "There {{PLURAL:$1|was [$2 another file]|were [$2 some other files]}} already on the site with the same content, but {{PLURAL:$1|it was|they were}} deleted.",
-       "api-error-duplicate-archive-popup-title": "Duplicate {{PLURAL:$1|file that has|files that have}} already been deleted.",
-       "api-error-duplicate-popup-title": "Duplicate {{PLURAL:$1|file|files}}.",
+       "api-error-duplicate": "There {{PLURAL:$1|is another file|are some other files}} already on the site with the same content.",
+       "api-error-duplicate-archive": "There {{PLURAL:$1|was another file|were some other files}} already on the site with the same content, but {{PLURAL:$1|it was|they were}} deleted.",
        "api-error-empty-file": "The file you submitted was empty.",
        "api-error-emptypage": "Creating new, empty pages is not allowed.",
        "api-error-fetchfileerror": "Internal error: Something went wrong while fetching the file.",
index e89a289..37fcc46 100644 (file)
@@ -40,7 +40,8 @@
                        "아라",
                        "Fitoschido",
                        "Sudastelaro",
-                       "Ochilov"
+                       "Ochilov",
+                       "Macofe"
                ]
        },
        "tog-underline": "Substreki ligilojn",
        "passwordreset-emailtitle": "Kontaj detaloj en {{SITENAME}}",
        "passwordreset-emailtext-ip": "Iu (verŝajne vi, de IP-adreso $1) petis restarigon de via pasvorto por {{SITENAME}} ($4). La {{PLURAL:$3|jena uzanto-konto estas asociita|jenaj uzanto-kontoj estas asociitaj}} kun ĉi tiu retpoŝtadreso:\n\n$2\n\nĈi {{PLURAL:$3|tiu provizora pasvorto|tiuj provizoraj pasvortoj}} findatiĝos {{PLURAL:$5|unu tagon|$5 tagojn}}.\nVi ensalutu kaj elektu novan pasvorton nun. Se iu alia petis ĉi tion,\naŭ se vi memoris vian originalan pasvorton, kaj vi ne plu volas\nŝanĝi ĝin, vi povas ignori ĉi tiun mesaĝon kaj plu uzi vian \nmalnovan pasvorton.",
        "passwordreset-emailtext-user": "Uzanto $1 de {{SITENAME}} petis restarigo de via pasvorto por {{SITENAME}}\n($4). La {{PLURAL:$3|jena uzanto-konto estas asociita|jenaj uzanto-kontoj estas asociitaj}} kun ĉi tiu retpoŝtadreso:\n\n$2\n\nĈi {{PLURAL:$3|tiu provizora pasvorto|tiuj provizoraj pasvortoj}} findatiĝos {{PLURAL:$5|unu tagon|$5 tagojn}}.\nVi devas ensaluti kaj elekti novan pasvorton nun. Se iu alia petis ĉi tion,\naŭ se vi memoris vian originalan pasvorton, kaj vi ne plu volas ŝanĝi\nĝin, vi povas ignori ĉi tiun mesaĝon kaj uzi vian malnovan pasvorton.",
-       "passwordreset-emailelement": "Salutnomo: $1\nProvizora pasvorto: $2",
+       "passwordreset-emailelement": "Salutnomo: \n$1\n\nProvizora pasvorto: \n$2",
        "passwordreset-emailsent": "Renovigita pasvorto estis retpoŝte sendita.",
        "passwordreset-emailsent-capture": "Retpoŝto kun renovigita pasvorto estis sendita, kiu estas montrata malsupre.",
        "passwordreset-emailerror-capture": "Retpoŝto kun renovigita pasvorto estis generita, montrata sube, sed sendado al la {{GENDER:$2|uzanto}} malsukcesis: $1",
        "tooltip-ca-nstab-main": "Vidi la artikolon",
        "tooltip-ca-nstab-user": "Vidi la personan paĝon de la uzanto",
        "tooltip-ca-nstab-media": "Vidi la paĝon de la dosiero",
-       "tooltip-ca-nstab-special": "Estas speciala paĝo, vi ne rajtas redakti ĝin.",
+       "tooltip-ca-nstab-special": "Tio ĉi estas speciala paĝo kaj ĝi ne povas esti redaktita",
        "tooltip-ca-nstab-project": "Rigardi la paĝon de la projekto",
        "tooltip-ca-nstab-image": "Rigardi la dosierpaĝon",
        "tooltip-ca-nstab-mediawiki": "Rigardi la sisteman mesaĝon",
        "api-error-badtoken": "Interna eraro: fuŝaĵo.",
        "api-error-copyuploaddisabled": "Alŝuto per URL-adreso estas malebligata en tiu ĉi servilo.",
        "api-error-duplicate": "Jam estas {{PLURAL:$1|[$2 alia dosiero]|[$2 pluraj aliaj dosieroj]}} de sama enhavo en la retejo.",
-       "api-error-duplicate-archive": "Jam estis {{PLURAL:$1|[$2 alia dosiero]|[$2 pluraj aliaj dosieroj]}} de sama enhavo en la retejo, sed {{PLURAL:$1|ĝi estis forigita|ili estis forigitaj}}.",
-       "api-error-duplicate-archive-popup-title": "Duoblaj {{PLURAL:$1|dosiero|dosieroj}} kiuj jam estas forigitaj",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Duobla dosiero|Duoblaj dosieroj}}",
+       "api-error-duplicate-archive": "Jam estis {{PLURAL:$1|alia dosiero|pluraj aliaj dosieroj}} de sama enhavo en la retejo, sed {{PLURAL:$1|ĝi estis forigita|ili estis forigitaj}}.",
        "api-error-empty-file": "La dosiero kiun vi sendis estis malplena.",
        "api-error-emptypage": "Kreo de novaj malplenaj paĝoj ne estas permesita.",
        "api-error-fetchfileerror": "Interna eraro: io misfunkciis dum la dosiera prenado.",
index 7168260..2dd6ab0 100644 (file)
        "tog-underline": "Subrayar los enlaces:",
        "tog-hideminor": "Ocultar las ediciones menores de los cambios recientes",
        "tog-hidepatrolled": "Ocultar las ediciones verificadas de los cambios recientes",
-       "tog-newpageshidepatrolled": "Ocultar las páginas patrulladas en la lista de páginas nuevas",
+       "tog-newpageshidepatrolled": "Ocultar las páginas verificadas de la lista de páginas nuevas",
        "tog-extendwatchlist": "Mostrar todos los cambios en la lista de seguimiento, no solo los más recientes",
        "tog-usenewrc": "Agrupar los cambios por página en los cambios recientes y en la lista de seguimiento",
        "tog-numberheadings": "Numerar automáticamente los encabezados",
        "badaccess": "Error de permisos",
        "badaccess-group0": "No estás autorizado a ejecutar la acción solicitada.",
        "badaccess-groups": "La acción que has solicitado está restringida a los usuarios {{PLURAL:$2|del grupo|de uno de estos $2 grupos}}: $1.",
-       "versionrequired": "Se requiere la versión $1 de MediaWiki.",
+       "versionrequired": "Se requiere la versión $1 de MediaWiki",
        "versionrequiredtext": "Se necesita la versión $1 de MediaWiki para utilizar esta página. Para más información, consulta [[Special:Version|la página de versión]].",
        "ok": "Aceptar",
        "retrievedfrom": "Obtenido de «$1»",
        "nstab-template": "Plantilla",
        "nstab-help": "Ayuda",
        "nstab-category": "Categoría",
+       "mainpage-nstab": "Página principal",
        "nosuchaction": "No existe esa acción",
        "nosuchactiontext": "La acción especificada en la URL no es válida.\nEs posible que hayas escrito mal la URL o que hayas seguido un enlace incorrecto.\nEsto también podría indicar un error en el software utilizado por {{SITENAME}}.",
        "nosuchspecialpage": "No existe esa página especial",
        "userlogin-resetlink": "¿Olvidaste tus datos de acceso?",
        "userlogin-resetpassword-link": "¿Has olvidado tu contraseña?",
        "userlogin-helplink2": "Ayuda con el acceso",
-       "userlogin-loggedin": "Ya estás conectado como {{GENDER:$1|$1}}.\nUsa el formulario de abajo para iniciar sesión como otro usuario.",
+       "userlogin-loggedin": "Ya estás {{GENDER:$1|conectado|conectada}} como $1.\nUsa el formulario de abajo para iniciar sesión como otro usuario.",
        "userlogin-createanother": "Crear otra cuenta",
        "createacct-emailrequired": "Dirección de correo electrónico",
        "createacct-emailoptional": "Dirección de correo electrónico (opcional)",
        "passwordreset-emailtitle": "Detalles de la cuenta en {{SITENAME}}",
        "passwordreset-emailtext-ip": "Alguien (probablemente tú, desde la dirección IP $1) ha solicitado el restablecimiento de tu contraseña en {{SITENAME}} ($4). {{PLURAL:$3|La siguiente cuenta está asociada|Las siguientes cuentas están asociadas}}\na esta dirección de correo electrónico:\n\n$2\n\n{{PLURAL:$3|Esta contraseña temporal|Estas contraseñas temporales}} caducarán en {{PLURAL:$5|un día|$5 días}}.\nAhora puedes iniciar sesión y establecer una nueva contraseña. Si fue otra persona la que realizó esta solicitud, o si ya recuerdas tu contraseña original y, por tanto, no deseas cambiarla, puedes ignorar este mensaje y continuar usando tu contraseña anterior.",
        "passwordreset-emailtext-user": "El usuario $1 de {{SITENAME}} solicitó el restablecimiento de tu contraseña en {{SITENAME}}\n($4). {{PLURAL:$3|La siguiente cuenta está asociada|Las siguientes cuentas están asociadas}} a esta dirección de correo electrónico:\n\n$2\n\n{{PLURAL:$3|Esta contraseña temporal|Estas contraseñas temporales}} caducarán en {{PLURAL:$5|un día|$5 días}}.\nAhora puedes iniciar sesión y establecer una nueva contraseña. Si fue otra persona la que realizó esta solicitud, o si ya recuerdas tu contraseña original y, por tanto, no deseas cambiarla, puedes ignorar este mensaje y continuar usando tu contraseña anterior.",
-       "passwordreset-emailelement": "Nombre de {{GENDER:$1|usuario|usuaria}}: $1\nContraseña temporal: $2",
+       "passwordreset-emailelement": "Nombre de {{GENDER:$1|usuario|usuaria}}: \n$1\n\nContraseña temporal: \n$2",
        "passwordreset-emailsent": "Se ha enviado un correo electrónico para el restablecimiento de tu contraseña.",
        "passwordreset-emailsent-capture": "Se ha enviado un correo para el restablecimiento de la contraseña, el cual se muestra a continuación.",
        "passwordreset-emailerror-capture": "Se ha generado un correo electrónico de restablecimiento de contraseña, que se muestra a continuación, pero ha fallado el envío {{GENDER:$2|al usuario|a la usuaria}}: $1",
        "changeemail-password": "Tu contraseña en {{SITENAME}}:",
        "changeemail-submit": "Cambiar correo electrónico",
        "changeemail-throttled": "Has intentado acceder demasiadas veces.\nEspera $1 antes de intentarlo de nuevo.",
+       "changeemail-nochange": "Escribe una dirección de correo electrónico nueva diferente.",
        "resettokens": "Restablecer claves",
        "resettokens-text": "Aquí puedes restablecer las claves que permiten el acceso a ciertos datos privados asociados a tu cuenta.\n\nDeberías hacerlo si los has compartido por accidente, o si ha habido intrusiones en tu cuenta.",
        "resettokens-no-tokens": "No hay claves para restablecer.",
        "permissionserrorstext-withaction": "No tienes permiso para $2, por {{PLURAL:$1|el siguiente motivo|los siguientes motivos}}:",
        "recreate-moveddeleted-warn": "<strong>Atención: estás volviendo a crear una página que ha sido borrada anteriormente.</strong>\n\nPiensa si es adecuado continuar editando la página.\nA continuación, se proporciona el registro de borrado y traslados de esta página para más información:",
        "moveddeleted-notice": "Esta página ha sido borrada.\nA continuación, se proporciona el registro de borrados y traslados de la página para más información.",
+       "moveddeleted-notice-recent": "Esta página se ha eliminado recientemente (dentro de las últimas 24 horas).\nEl registro de eliminación y traslado de la página se muestran a continuación como referencia.",
        "log-fulllog": "Ver el registro completo",
        "edit-hook-aborted": "Una extensión ha evitado la edición.\nNo hay explicación disponible.",
        "edit-gone-missing": "No se ha podido actualizar la página.\nParece haber sido borrada.",
        "textmatches": "Resultados por texto de página",
        "notextmatches": "No hay resultados por texto de página",
        "prevn": "$1 {{PLURAL:$1|anterior|anteriores}}",
-       "nextn": "{{PLURAL:$1|$1}} siguientes",
+       "nextn": "{{PLURAL:$1|siguiente|siguientes $1}}",
        "prev-page": "página anterior",
        "next-page": "página siguiente",
        "prevn-title": "$1 {{PLURAL:$1|resultado anterior|resultados anteriores}}",
        "right-import": "Importar páginas desde otras wikis",
        "right-importupload": "Importar páginas desde un archivo",
        "right-patrol": "Marcar ediciones de otros como verificadas",
-       "right-autopatrol": "Marcar tus ediciones automáticamente como verificadas",
+       "right-autopatrol": "Marcar sus ediciones automáticamente como verificadas",
        "right-patrolmarks": "Ver las marcas de verificación de cambios recientes",
        "right-unwatchedpages": "Ver una lista de páginas no vigiladas",
        "right-mergehistory": "Fusionar historiales de páginas",
        "upload-permitted": "{{PLURAL:$2|Tipo de archivo permitido|Tipos de archivo permitidos}}: $1.",
        "upload-preferred": "{{PLURAL:$2|Tipo de archivo preferido|Tipos de archivo preferidos}}: $1.",
        "upload-prohibited": "{{PLURAL:$2|Tipo de archivo prohibido|Tipos de archivo prohibidos}}: $1.",
-       "uploadlogpage": "Subidas de archivos",
+       "uploadlogpage": "Registro de subidas",
        "uploadlogpagetext": "Debajo se muestra una lista de los últimos archivos subidos.\nVéase la [[Special:NewFiles|galería de archivos nuevos]] para una vista más estilizada",
        "filename": "Nombre del archivo",
        "filedesc": "Resumen",
        "uploaddisabled": "Se desactivó la subida de archivos.",
        "copyuploaddisabled": "Se desactivó la subida de archivos mediante URL.",
        "uploaddisabledtext": "Se desactivó la subida de archivos.",
-       "php-uploaddisabledtext": "La subida de archivos está deshabilitada en PHP. Por favor compruebe <code>file_uploads</code> en php.ini.",
+       "php-uploaddisabledtext": "La subida de archivos está deshabilitada en PHP.\nComprueba la opción <code>file_uploads</code>.",
        "uploadscripted": "Este archivo contiene script o código HTML que puede ser interpretado erróneamente por un navegador web.",
        "upload-scripted-pi-callback": "No se pueden cargar archivos que contengan instrucciones de procesamiento en forma de hojas de estilo XML.",
        "uploaded-script-svg": "Se encontró el elemento habilitado para secuencias de órdenes «$1» en el archivo SVG cargado.",
        "uploadjava": "El archivo es un ZIP que contiene un archivo .class de Java.\nNo se permite subir archivos Java, porque pueden causar que se puedan saltar restricciones de seguridad.",
        "upload-source": "Archivo origen",
        "sourcefilename": "Nombre del archivo origen:",
-       "sourceurl": "Dirección original:",
+       "sourceurl": "URL de origen:",
        "destfilename": "Nombre del archivo de destino:",
        "upload-maxfilesize": "Tamaño máximo del archivo: $1",
        "upload-description": "Descripción de archivo",
        "upload-warning-msg": "Hubo un problema con tu subida desde [$2]. Puedes regresar al [[Special:Upload/stash/$1|formulario de subida]] para corregir este problema.",
        "upload-proto-error": "Protocolo incorrecto",
        "upload-proto-error-text": "Para subir archivos desde otra página la URL debe comenzar por <code>http://</code> o <code>ftp://</code>.",
-       "upload-file-error": "Error interno al subir el archivo",
+       "upload-file-error": "Error interno",
        "upload-file-error-text": "Ha ocurrido un error interno mientras se intentaba crear un archivo temporal en el servidor. Contacta con un [[Special:ListUsers/sysop|administrador]].",
        "upload-misc-error": "Error desconocido en la subida",
        "upload-misc-error-text": "Ha ocurrido un error durante la subida.\nVerifica que la URL es válida y accesible e inténtalo de nuevo.\nSi el problema persiste, contacta con un [[Special:ListUsers/sysop|administrador]].",
        "upload-dialog-label-usage-title": "Uso",
        "upload-dialog-label-usage-filename": "Nombre del archivo",
        "backend-fail-stream": "No se pudo transmitir el archivo «$1».",
-       "backend-fail-backup": "No pudo hacer copia de seguridad del archivo «$1».",
+       "backend-fail-backup": "No se pudo hacer copia de seguridad del archivo «$1».",
        "backend-fail-notexists": "El archivo  $1  no existe.",
        "backend-fail-hashes": "No se pudieron obtener los \"hashes\" de los archivos para compararlos.",
        "backend-fail-notsame": "Ya existe un archivo distinto en \"$1\".",
        "pageswithprop-prophidden-binary": "valor de la propiedad binaria oculta ($1)",
        "doubleredirects": "Redirecciones dobles",
        "doubleredirectstext": "Esta página contiene una lista de páginas que redirigen a otras páginas de redirección.\nCada fila contiene enlaces a la segunda y tercera redirección, así como la primera línea de la segunda redirección, en la que usualmente se encontrará el artículo «real» al que la primera redirección debería apuntar.\nLas entradas <del>tachadas</del> han sido resueltas.",
-       "double-redirect-fixed-move": "[[$1]] ha sido movido.\nEste fue automáticamente actualizado y ahora es una redirección a [[$2]].",
+       "double-redirect-fixed-move": "[[$1]] se ha trasladado.\nSe actualizó automáticamente y ahora redirecciona a [[$2]].",
        "double-redirect-fixed-maintenance": "Corrigiendo automáticamente la doble redirección desde [[$1]] a [[$2]] en un trabajo de mantenimiento.",
        "double-redirect-fixer": "Corrector de redirecciones",
        "brokenredirects": "Redirecciones incorrectas",
        "deletedcontributions": "Contribuciones borradas de usuario",
        "deletedcontributions-title": "Contribuciones borradas de usuario",
        "sp-deletedcontributions-contribs": "contribuciones",
-       "linksearch": "Enlaces externos",
+       "linksearch": "Búsqueda de enlaces externos",
        "linksearch-pat": "Patrón de búsqueda:",
        "linksearch-ns": "Espacio de nombres:",
        "linksearch-ok": "Buscar",
        "deletecomment": "Motivo:",
        "deleteotherreason": "Otro motivo:",
        "deletereasonotherlist": "Otro motivo",
-       "deletereason-dropdown": "*Razones comunes de borrado\n** Spam\n** Vandalismo\n** Violación de copyright\n** A petición del mismo autor\n** Redirección incorrecta",
+       "deletereason-dropdown": "* Razones comunes de borrado\n** Spam\n** Vandalismo\n** Violación de derechos de autor\n** Petición del autor\n** Redirección incorrecta",
        "delete-edit-reasonlist": "Editar razones de borrado",
        "delete-toobig": "Esta página tiene un historial muy grande, con más de $1 {{PLURAL:$1|revisión|revisiones}}. Borrar este tipo de páginas ha sido restringido para prevenir posibles problemas en {{SITENAME}}.",
        "delete-warning-toobig": "Esta página tiene un historial de más de $1 {{PLURAL:$1|revisión|revisiones}}.\nEliminarla puede perturbar las operaciones de la base de datos de {{SITENAME}}.\nProcede con cautela.",
        "alreadyrolled": "No se puede revertir la última edición de [[:$1]] hecha por [[User:$2|$2]] ([[User talk:$2|discusión]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nalguien más ya ha editado o revertido esa página.\n\nLa última edición fue hecha por [[User:$3|$3]] ([[User talk:$3|discusión]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "El resumen de la edición fue: ''«$1»''.",
        "revertpage": "Revertidos los cambios de [[Special:Contributions/$2|$2]] ([[User talk:$2|disc.]]) a la última edición de [[User:$1|$1]]",
-       "revertpage-nouser": "Revertidas las ediciones hechas por un usuario oculto a la última revisión hecha por [[User:$1|$1]]",
+       "revertpage-nouser": "Revertidas las ediciones hechas por un usuario oculto a la última revisión hecha por {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Revertidas las ediciones de $1; recuperada la última versión de $2.",
        "sessionfailure-title": "Error de sesión",
        "sessionfailure": "Parece que hay un problema con tu sesión;\nesta acción ha sido cancelada como medida de precaución contra secuestros de sesión.\nPor favor, pulsa «Atrás», recarga la página de la que viniste e inténtalo de nuevo.",
        "unlockconfirm": "Sí, realmente quiero desbloquear la base de datos.",
        "lockbtn": "Bloquear la base de datos",
        "unlockbtn": "Desbloquear la base de datos",
-       "locknoconfirm": "No ha confirmado lo que desea hacer.",
+       "locknoconfirm": "No has confirmado lo que quieres hacer.",
        "lockdbsuccesssub": "El bloqueo se ha realizado con éxito",
        "unlockdbsuccesssub": "El desbloqueo se ha realizado con éxito",
        "lockdbsuccesstext": "La base de datos de {{SITENAME}} ha sido bloqueada.\n<br />Recuerde retirar el bloqueo después de completar las tareas de mantenimiento.",
        "move-page-legend": "Renombrar página",
        "movepagetext": "Mediante el siguiente formulario puedes renombrar una página, moviendo todo su historial al nombre nuevo.\nEl título anterior redirigirá al nuevo.\nPuedes actualizar automáticamente las redirecciones que apuntan al título original.\nSi eliges no hacerlo, asegúrate de revisar posibles redirecciones [[Special:DoubleRedirects|dobles]] o [[Special:BrokenRedirects|rotas]].\nTú eres responsable de asegurar que los enlaces continúen funcionando correctamente.\n\nNota que la página <strong>no</strong> se moverá si ya hay una página con el título nuevo, a menos de que ésta sea una redirección y no tenga historial de ediciones pasadas.\nEsto significa que puedes deshacer el renombrado en caso de un error, y que no puedes sobreescribir una página existente.\n\n<strong>Aviso</strong>\nEsto puede representar un cambio drástico e inesperado para una página popular;\nasegúrate de entender las consecuencias de esta acción antes de proceder.",
        "movepagetext-noredirectfixer": "Usando el siguiente formulario se renombrará una página, trasladando todo su historial al nuevo nombre.\nEl título anterior se convertirá en una redirección al nuevo título.\nAsegúrate de no dejar [[Special:DoubleRedirects|redirecciones dobles]] o [[Special:BrokenRedirects|rotas]].\nTú eres responsable de hacer que los enlaces sigan apuntando adonde se supone que deberían hacerlo.\n\nRecuerda que la página '''no''' será renombrada si ya existe una página con el nuevo título, a no ser que sea una página vacía o una redirección sin historial.\nEsto significa que podrás renombrar una página a su título original si has cometido un error, pero que no podrás sobrescribir una página existente.\n\n'''¡Aviso!'''\nEste puede ser un cambio drástico e inesperado para una página popular;\npor favor, asegúrate de entender las consecuencias del procedimiento antes de seguir adelante.",
-       "movepagetalktext": "La página de discusión asociada, si existe, será renombrada automáticamente '''a menos que:'''\n*Estés trasladando la página entre espacios de nombres diferentes,\n*Una página de discusión no vacía ya exista con el nombre nuevo, o\n*No marques el recuadro «Renombrar la página de discusión asociada».\n\nEn estos casos, deberás trasladar manualmente el contenido de la página de discusión.",
+       "movepagetalktext": "La página de discusión asociada se trasladará automáticamente con ella <strong>a menos que:</strong>\n*Una página de discusión no vacía ya exista con el nombre nuevo, o\n*Desmarques la casilla debajo.\n\nEn esos casos, deberás trasladar o fusionar manualmente la página si así lo quieres.",
        "movearticle": "Renombrar página",
        "moveuserpage-warning": "<strong>Advertencia:</strong> estás a punto de trasladar una página de usuario. Ten en cuenta que solo se trasladará la página; el usuario <em>no</em> se renombrará.",
        "movecategorypage-warning": "<strong>Advertencia:</strong> estás a punto de trasladar una página de categoría. Ten en cuenta que se trasladará sólo la página, y las páginas en la antigua categoría <em>no</em> se recategorizarán en la nueva.",
        "delete_and_move": "Borrar y trasladar",
        "delete_and_move_text": "==Se necesita borrado==\n\nLa página de destino (\"[[:$1]]\") ya existe. ¿Quiere borrarla para permitir al traslado?",
        "delete_and_move_confirm": "Sí, borrar la página",
-       "delete_and_move_reason": "Borrada para trasladar [[$1]]",
+       "delete_and_move_reason": "Borrada para permitir el traslado de \"[[$1]]\"",
        "selfmove": "Los títulos de origen y destino son los mismos;\nno se puede trasladar una página sobre sí misma.",
        "immobile-source-namespace": "No se pueden trasladar páginas en el espacio de nombres «$1»",
        "immobile-target-namespace": "No se puede trasladar páginas al espacio de nombres «$1»",
        "thumbnail-more": "Aumentar",
        "filemissing": "Falta archivo",
        "thumbnail_error": "Error al crear miniatura: $1",
-       "thumbnail_error_remote": "Mensaje de error de  $1 :\n$2",
+       "thumbnail_error_remote": "Mensaje de error de $1:\n$2",
        "djvu_page_error": "Página DjVu fuera de rango",
        "djvu_no_xml": "Imposible obtener XML para el archivo DjVu",
        "thumbnail-temp-create": "No se ha podido crear el archivo temporal de la miniatura",
        "markedaspatrolledtext": "La revisión seleccionada de [[:$1|$1]] ha sido marcada como verificada.",
        "rcpatroldisabled": "Se ha desactivado la supervisión de cambios recientes",
        "rcpatroldisabledtext": "La capacidad de verificar los cambios recientes está deshabilitada en este momento.",
-       "markedaspatrollederror": "No se puede marcar como patrullada",
+       "markedaspatrollederror": "No se puede marcar como verificada",
        "markedaspatrollederrortext": "Debes especificar una revisión para marcarla como verificada.",
        "markedaspatrollederror-noautopatrol": "No tienes permisos para marcar tus propios cambios como verificados.",
        "markedaspatrollednotify": "Este cambio realizado en $1 se ha marcado como verificado.",
        "confirmemail_sent": "Confirmación de correo enviada.",
        "confirmemail_oncreate": "Se ha enviado un código de confirmación a tu dirección de correo electrónico.\nEste código no es necesario para iniciar sesión, pero necesitarás proporcionarlo antes de activar cualquier función basada en correo electrónico en el wiki.",
        "confirmemail_sendfailed": "No fue posible enviar el correo de confirmación. Por favor, comprueba la validez de la dirección de correo.\n\nEl servidor indicó el error: $1",
-       "confirmemail_invalid": "Código de confirmación incorrecto. El código debe haber expirado.",
+       "confirmemail_invalid": "Código de confirmación incorrecto.\nEl código debe haber expirado.",
        "confirmemail_needlogin": "Necesitas $1 para confirmar tu dirección electrónica.",
        "confirmemail_success": "Su dirección de correo ha sido confirmada\nAhora puedes [[Special:UserLogin|identificarte]] y colaborar en el wiki.",
        "confirmemail_loggedin": "Tu dirección de correo electrónico ha sido confirmada.",
        "watchlistedit-raw-done": "Tu lista de seguimiento se ha actualizado.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Se ha añadido una página|Se han añadido $1 páginas}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Una página ha sido borrada|$1 páginas han sido borradas}}:",
-       "watchlistedit-clear-title": "Lista de seguimiento limpiada",
-       "watchlistedit-clear-legend": "Limpiar lista de seguimiento",
+       "watchlistedit-clear-title": "Lista de seguimiento vaciada",
+       "watchlistedit-clear-legend": "Vaciar la lista de seguimiento",
        "watchlistedit-clear-explain": "Todos los títulos serán eliminados de tu lista de seguimiento",
        "watchlistedit-clear-titles": "Títulos:",
        "watchlistedit-clear-submit": "Vaciar la lista de seguimiento (¡permanente!)",
        "watchlistedit-clear-done": "Se ha vaciado tu lista de seguimiento.",
-       "watchlistedit-clear-removed": "{{PLURAL:$1|un título fue removido|Los títulos $1 fueron removidos}}:",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|un título fue eliminado|$1 títulos fueron eliminados}}:",
        "watchlistedit-too-many": "Hay demasiadas páginas para mostrar aquí.",
-       "watchlisttools-clear": "Limpiar la lista de seguimiento",
+       "watchlisttools-clear": "Vaciar la lista de seguimiento",
        "watchlisttools-view": "Ver cambios relevantes",
        "watchlisttools-edit": "Ver y editar tu lista de seguimiento",
        "watchlisttools-raw": "Editar lista de seguimiento en crudo",
        "tags-create-warnings-below": "¿Continuar con la creación de la etiqueta?",
        "tags-delete-title": "Eliminar etiqueta",
        "tags-delete-explanation-initial": "Estás a punto de eliminar la etiqueta «$1» de la base de datos.",
-       "tags-delete-explanation-in-use": "Se removerá de {{PLURAL:$2|$2 revisión o entrada ingresada|todas las $2 revisiones y/o entradas ingresadas}} a la que actualmente es aplicada.",
+       "tags-delete-explanation-in-use": "Se eliminará de {{PLURAL:$2|$2 revisión o entrada de registro|todas las $2 revisiones y/o entradas de registro}} donde actualmente se aplica.",
        "tags-delete-explanation-warning": "Esta acción es <strong>irreversible</strong> y ni siquiera los administradores de la base de datos podrán deshacerla. Confirma que esta es la etiqueta que se eliminará.",
        "tags-delete-explanation-active": "<strong>La etiqueta \"$1\" aún está activa y se seguirá utilizándo en el futuro.</strong> Para que esto no ocurra, deshabilítala desde el lugar donde se configuró para ser utilizada.",
        "tags-delete-reason": "Motivo:",
        "logentry-delete-restore": "$1 restauró la página «$3»",
        "logentry-delete-event": "$1 {{GENDER:$2|modificó}} la visibilidad de {{PLURAL:$5|un evento|$5 eventos}} del registro en $3: $4",
        "logentry-delete-revision": "$1 {{GENDER:$2|modificó}} la visibilidad de {{PLURAL:$5|una revisión |$5 revisiones}} en la página  $3: $4",
-       "logentry-delete-event-legacy": "$1 ha {{GENDER:$2|cambiado}} la visibilidad de registro de eventos en $3",
+       "logentry-delete-event-legacy": "$1 ha {{GENDER:$2|cambiado}} la visibilidad de eventos del registro en $3",
        "logentry-delete-revision-legacy": "$1 ha {{GENDER:$2|cambiado}} la visibilidad de las revisiones en la página $3",
        "logentry-suppress-delete": "$1 {{GENDER:$2|borró}} la página $3",
-       "logentry-suppress-event": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de {{PLURAL:$5|una edición|$5 ediciones}} en la página $3: $4",
+       "logentry-suppress-event": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de {{PLURAL:$5|un evento|$5 eventos}} del registro en $3: $4",
        "logentry-suppress-revision": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de {{PLURAL:$5|una edición|$5 ediciones}} en la página $3: $4",
        "logentry-suppress-event-legacy": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de los eventos del registro en $3",
-       "logentry-suppress-revision-legacy": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de varias ediciones en la página $3",
+       "logentry-suppress-revision-legacy": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de las revisiones en la página $3",
        "revdelete-content-hid": "contenido ocultado",
        "revdelete-summary-hid": "resumen de edición oculto",
        "revdelete-uname-hid": "nombre de usuario ocultado",
        "feedback-back": "Volver",
        "feedback-bugcheck": "¡Perfecto! Únicamente comprueba que no sea un [$1 fallo conocido].",
        "feedback-bugnew": "Lo he comprobado. Informar de un nuevo fallo.",
-       "feedback-bugornote": "Si estás preparado para describir en detalle un problema técnico, [$1 informa de un bug] por favor.\n\nEn otro caso, puedes usar el siguiente formulario. Tu comentario será añadido a la página [$3 $2], junto con tu nombre de usuario y el navegador que usas.",
+       "feedback-bugornote": "Si estás preparado para describir en detalle un problema técnico, [$1 informa de un error].\nEn otro caso, puedes usar el siguiente formulario. Tu comentario se añadirá a la página \"[$3 $2]\", junto con tu nombre de usuario.",
        "feedback-cancel": "Cancelar",
        "feedback-close": "Hecho",
        "feedback-external-bug-report-button": "Enviar una tarea técnica",
        "feedback-submit": "Enviar",
        "feedback-terms": "Entiendo que la información de mi agente de usuario incluye información sobre la versión exacta de mi navegador y mi sistema operativo y serán compartidos públicamente junto a mis comentarios.",
        "feedback-termsofuse": "Acepto proporcionar comentarios de acuerdo con los Términos de uso.",
-       "feedback-thanks": "¡Gracias! Su comentario ha sido anotado en la página [$2  $1].",
+       "feedback-thanks": "¡Gracias! Tus comentarios se han publicado en la página \"[$2 $1]\".",
        "feedback-thanks-title": "¡Muchas gracias!",
        "feedback-useragent": "Agente de usuario:",
        "searchsuggest-search": "Buscar",
        "api-error-badaccess-groups": "No puedes cargar archivos en este wiki.",
        "api-error-badtoken": "Error interno: Símbolo incorrecto.",
        "api-error-copyuploaddisabled": "La subida por URL está desactivada en este servidor.",
-       "api-error-duplicate": "Ya existe{{PLURAL:$1| [$2 otro archivo]|[$2 n otros archivos]}} en el sitio con el mismo contenido.",
-       "api-error-duplicate-archive": "Ya {{PLURAL:$1|existía [$2 otro archivo]|existían [$2 otros archivos]}} en el sitio con el mismo contenido, pero {{PLURAL:$1|fue|fueron}} {{PLURAL:$1|eliminado|eliminados}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Archivo|Archivos}} {{PLURAL:$1|duplicado|duplicados}} que ya se han eliminado",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Archivo|Archivos}} {{PLURAL:$1|duplicado|duplicados}}",
+       "api-error-duplicate": "Ya {{PLURAL:$1|existe otro archivo|existen otros archivos}} en el sitio con el mismo contenido.",
+       "api-error-duplicate-archive": "Ya {{PLURAL:$1|existía otro archivo|existían otros archivos}} en el sitio con el mismo contenido, pero {{PLURAL:$1|fue eliminado|fueron eliminados}}.",
        "api-error-empty-file": "El archivo que enviaste estaba vacío.",
        "api-error-emptypage": "No se pueden crear páginas nuevas que estén vacías.",
        "api-error-fetchfileerror": "Error interno: Algo salió mal mientras se obtenía el archivo.",
        "limitreport-templateargumentsize": "Argumento del tamaño de la plantilla",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|byte|bytes}}",
        "limitreport-expansiondepth": "Profundidad máxima de expansión",
-       "limitreport-expensivefunctioncount": "Cuenta de la funcion expansiva del analizador",
+       "limitreport-expensivefunctioncount": "Cuenta de la función expansiva del analizador",
        "expandtemplates": "Expandir plantillas",
        "expand_templates_intro": "Esta página especial toma un texto wiki y expande todas sus plantillas recursivamente.\nTambién expande las funciones sintácticas como <code><nowiki>{{</nowiki>#language:…}}</code>, y variables como\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>. De hecho, expande casi cualquier cosa que esté entre llaves dobles.",
        "expand_templates_title": "Título de la página, útil para expandir {{FULLPAGENAME}} o similares:",
index d419556..65dd24f 100644 (file)
@@ -25,7 +25,8 @@
                        "Boxmein",
                        "Roland",
                        "Postituvi",
-                       "Purodha"
+                       "Purodha",
+                       "Macofe"
                ]
        },
        "tog-underline": "Linkide allakriipsutus:",
        "passwordreset-emailtitle": "{{GRAMMAR:genitive|{{SITENAME}}}} konto andmed",
        "passwordreset-emailtext-ip": "Keegi, arvatavasti sina ise, IP-aadressilt $1 palus lähtestada sinu {{GRAMMAR:genitive|{{SITENAME}}}} ($4) parooli. Selle e-posti aadressiga on seotud {{PLURAL:$3|järgmine konto|järgmised kontod}}:\n\n$2\n\n{{PLURAL:$3|See ajutine parool aegub|Need ajutised paroolid aeguvad}} {{PLURAL:$5|ühe|$5}} päeva pärast.\nPeaksid nüüd sisse logima ja uue parooli valima. Kui selle palve esitas keegi teine või kui sulle meenus su parool ja sa ei soovi seda enam muuta, võid teadet eirata ja jätkata vana parooli kasutamist.",
        "passwordreset-emailtext-user": "{{GRAMMAR:genitive|{{SITENAME}}}} kasutaja $1 palus lähtestada sinu {{GRAMMAR:genitive|{{SITENAME}}}} ($4) parooli. Selle e-posti aadressiga on seotud {{PLURAL:$3|järgmine konto|järgmised kontod}}:\n\n$2\n\n{{PLURAL:$3|See ajutine parool aegub|Need ajutised paroolid aeguvad}} {{PLURAL:$5|ühe|$5}} päeva pärast.\nPeaksid nüüd sisse logima ja uue parooli valima. Kui selle palve esitas keegi teine või kui sulle meenus su parool ja sa ei soovi seda enam muuta, võid teadet eirata ja jätkata vana parooli kasutamist.",
-       "passwordreset-emailelement": "Kasutajanimi: $1\nAjutine parool: $2",
+       "passwordreset-emailelement": "Kasutajanimi: \n$1\n\nAjutine parool: \n$2",
        "passwordreset-emailsent": "Parooli lähtestamise e-kiri on saadetud.",
        "passwordreset-emailsent-capture": "E-kirjatsi on saadetud allpool näidatav parooli lähtestuskiri.",
        "passwordreset-emailerror-capture": "Koostati allpool näidatav parooli lähtestuskiri, aga selle e-kirjatsi {{GENDER:$2|kasutajale}} saatmine ebaõnnestus: $1",
        "allpagesbadtitle": "Lehekülje pealkiri oli vigane või sisaldas teise viki või keele eesliidet.\nSee võib sisaldada üht või enamat märki, mida ei saa pealkirjades kasutada.",
        "allpages-bad-ns": "{{GRAMMAR:inessive|{{SITENAME}}}} ei ole nimeruumi \"$1\".",
        "allpages-hide-redirects": "Peida ümbersuunamised",
-       "cachedspecial-viewing-cached-ttl": "Vaata vahemälus olevat lehekülje versiooni, mis võib olla kuni $1 vanune.",
+       "cachedspecial-viewing-cached-ttl": "Vaata vahemälus olevat lehekülje versiooni, mis võib olla kuni $1 vana.",
        "cachedspecial-viewing-cached-ts": "Vaatad vahemälus olevat lehekülje versiooni, mis ei pruugi olla täiesti ajakohane.",
        "cachedspecial-refresh-now": "Vaata uusimat versiooni.",
        "categories": "Kategooriad",
        "allmessages-prefix": "Eesliitefilter:",
        "allmessages-language": "Keel:",
        "allmessages-filter-submit": "Mine",
-       "allmessages-filter-translate": "Tõlgi",
+       "allmessages-filter-translate": "tõlgi",
        "thumbnail-more": "Suurenda",
        "filemissing": "Fail puudub",
        "thumbnail_error": "Viga pisipildi loomisel: $1",
        "sp-newimages-showfrom": "Näita uusi faile alates kuupäevast $2, kell $1",
        "hours-abbrev": "$1 t",
        "days-abbrev": "$1 p",
-       "seconds": "{{PLURAL:$1|üks sekund|$1 sekundit}}",
-       "minutes": "{{PLURAL:$1|üks minut|$1 minutit}}",
-       "hours": "{{PLURAL:$1|üks tund|$1 tundi}}",
-       "days": "{{PLURAL:$1|üks päev|$1 päeva}}",
+       "seconds": "{{PLURAL:$1|$1 sekund|$1 sekundit}}",
+       "minutes": "{{PLURAL:$1|$1 minut|$1 minutit}}",
+       "hours": "{{PLURAL:$1|$1 tund|$1 tundi}}",
+       "days": "{{PLURAL:$1|$1 päev|$1 päeva}}",
        "weeks": "{{PLURAL:$1|$1 nädal|$1 nädalat}}",
-       "months": "{{PLURAL:$1|Üks kuu|$1 kuud}}",
-       "years": "{{PLURAL:$1|Üks aasta|$1 aastat}}",
+       "months": "{{PLURAL:$1|1 kuu|$1 kuud}}",
+       "years": "{{PLURAL:$1|1 aasta|$1 aastat}}",
        "ago": "$1 tagasi",
        "just-now": "just nüüd",
        "hours-ago": "$1 {{PLURAL:$1|tund|tundi}} tagasi",
        "api-error-badtoken": "Sisemine tõrge: Sobimatu nimi.",
        "api-error-copyuploaddisabled": "URLi kaudu üleslaadimine on selles serveris keelatud.",
        "api-error-duplicate": "Siin on {{PLURAL:$1|[$2 teine samasisuline fail]|[$2 mõned teised samasisulised failid]}} juba olemas.",
-       "api-error-duplicate-archive": "Siin {{PLURAL:$1|on [$2 teine samasisuline fail]|olid [$2 mõned teised samasisulised failid]}} juba olemas, aga {{PLURAL:$1|see|need}} kustutati.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Duplikaatfail|Duplikaatfailid}}, mis on juba kustutatud",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Duplikaatfail|Duplikaatfailid}}",
+       "api-error-duplicate-archive": "Siin {{PLURAL:$1|on teine samasisuline fail|olid mõned teised samasisulised failid}} juba olemas, aga {{PLURAL:$1|see|need}} kustutati.",
        "api-error-empty-file": "Üleslaaditav fail on tühi.",
        "api-error-emptypage": "Uute tühjade lehekülgede loomine pole lubatud.",
        "api-error-fetchfileerror": "Sisemine tõrge: Midagi läks faili kättesaamisel valesti.",
index bc6514a..79fbcbe 100644 (file)
        "nstab-template": "Txantiloi",
        "nstab-help": "Laguntza orrialdea",
        "nstab-category": "Kategoria",
+       "mainpage-nstab": "Azala",
        "nosuchaction": "Ekintza hori ez da existitizen",
        "nosuchactiontext": "URL bidez zehaztutako ekintza okerra da.\nURLa gaizki idatzi duzu, edo hautsitako lotura jarraitu duzu.\nHonek akatsa indikatzen du {{SITENAME}}-(e)n.",
        "nosuchspecialpage": "Ez da aparteko orrialde hori existitzen",
        "passwordreset-capture-help": "Kutxa hau hautatzen baduzu behin-behineko pasahitza duen e-posta erakutsiko zatzaizu, eta erabiltzaileari bidaliko zaio.",
        "passwordreset-email": "E-mail helbidea:",
        "passwordreset-emailtitle": "{{SITENAME}}-rako kontuaren xehetasunak",
-       "passwordreset-emailelement": "Erabiltzaile izena: $1\nBehin-behineko pasahitza: $2",
+       "passwordreset-emailelement": "Erabiltzaile izena: \n$1\n\nBehin-behineko pasahitza: \n$2",
        "passwordreset-emailsent": "Pasahitza berrezartzeko e-posta bidali da.",
        "passwordreset-emailsent-capture": "Pasahitza berrezartzeko e-posta bat bidali dizugu, behean erakusten dena.",
        "changeemail": "Aldatu e-mail helbidea",
        "revdelete-legend": "Berrikuspen mugapenak ezarri:",
        "revdelete-hide-text": "Berrikuspenaren testua ezkutatu",
        "revdelete-hide-image": "Fitxategiaren edukia ezkutatu",
-       "revdelete-hide-name": "Ezkutatu ekintza eta helburua",
+       "revdelete-hide-name": "Ezkutatu helburua eta parametroak",
        "revdelete-hide-comment": "Aldaketaren iruzkina ezkutatu",
        "revdelete-hide-user": "Egilearen erabiltzaile izena/IPa ezkutatu",
        "revdelete-hide-restricted": "Mugapen hauek administratzaileei zein besteei aplikatu",
        "duplicate-defaultsort": "Adi: Berezko \"$2\" antolatzeak aurreko berezko \"$1\" antolatzea gainditzen du.",
        "version": "Bertsioa",
        "version-extensions": "Instalatutako luzapenak",
-       "version-skins": "Itxurak",
+       "version-skins": "Instalatutako itxurak",
        "version-specialpages": "Aparteko orrialdeak",
        "version-parserhooks": "Parser estentsioak",
        "version-variables": "Aldagaiak",
        "tags-activate-submit": "Aktibatu",
        "tags-deactivate-reason": "Arrazoia:",
        "tags-deactivate-submit": "Desaktibatu",
+       "tags-edit-existing-tags": "Existitzen diren etiketak:",
        "tags-edit-new-tags": "Etiketa berriak:",
        "tags-edit-add": "Gehitu etiketa hauek:",
        "tags-edit-remove": "Kendu etiketa hauek:",
        "htmlform-chosen-placeholder": "Aukeratu",
        "htmlform-cloner-create": "Gehitu gehiago",
        "htmlform-cloner-delete": "Kendu",
+       "htmlform-title-not-exists": "[[:$1]] ez da existitzen.",
        "sqlite-has-fts": "$1 testu osoan bilatzeko laguntzarekin",
        "sqlite-no-fts": "$1 testu osoan bilatzeko laguntzarik gabe",
        "logentry-delete-delete": "$1 {{GENDER:$2|wikilariak}} «$3» orria ezabatu du",
        "searchsuggest-containing": "edukian...",
        "api-error-badaccess-groups": "Ez duzu baimendik fitxategi hauek wiki honetara igotzeko.",
        "api-error-badtoken": "Barne akatsa: token okerra.",
-       "api-error-duplicate-popup-title": "Fitxategi {{PLURAL:$1|bikoiztua|bikoiztuak}}.",
        "api-error-empty-file": "Bidali duzun fitxategia hutsik dago.",
        "api-error-emptypage": "Berria sortzerako garaian orrialde hutsak ezin dira erabili.",
        "api-error-fetchfileerror": "Barne akatsa: zerbait gaizki joan da fitxategia eskuratzerakoan.",
index ccbbf75..e94a443 100644 (file)
        "nstab-template": "الگو",
        "nstab-help": "صفحهٔ راهنما",
        "nstab-category": "رده",
+       "mainpage-nstab": "صفحه اصلی",
        "nosuchaction": "چنین عملی وجود ندارد",
        "nosuchactiontext": "عمل مشخص‌شده در نشانی اینترنتی نامجاز است.\nممکن است نشانی اینترنتی را اشتباه وارد کرده باشید یا پیوند مشکل‌داری را دنبال کرده باشید.\nهمچنین ممکن است ایرادی در نرم‌افزار استفاده‌شده در {{SITENAME}} وجود داشته باشد.",
        "nosuchspecialpage": "چنین صفحهٔ ویژه‌ای وجود ندارد",
        "passwordreset-emailtitle": "جزئیات حساب در {{SITENAME}}",
        "passwordreset-emailtext-ip": "یک نفر (احتمالاً شما، با نشانی آی‌پی $1) درخواست بازنشانی گذرواژه‌تان در {{SITENAME}} ($4) را کرده‌است. {{PLURAL:$3|حساب|حساب‌های}} کاربری زیر با این آدرس ایمیل مرتبط هستند:\n\n$2\n\n{{PLURAL:$3|این گذرواژهٔ موقت|این گذرواژه‌های موقت}} پس از {{PLURAL:$5|یک روز|$5 روز}} باطل خواهند شد.\nشما باید هم‌اکنون ثبت ورود کنید و گذرواژه‌ای جدید برگزینید. اگر فکر می‌کنید شخص دیگری این درخواست را داده است یا اگر گذرواژهٔ اصلی‌تان را به یاد آوردید و دیگر نمی‌خواهید آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.",
        "passwordreset-emailtext-user": "کاربر $1 از {{SITENAME}} درخواست بازنشانی گذرواژهٔ شما در {{SITENAME}} ($4) را کرده است. {{PLURAL:$3|حساب|حساب‌های}} کاربری زیر با این آدرس ایمیل مرتبط است:\n\n$2\n\n{{PLURAL:$3|این گذرواژهٔ موقت|این گذرواژه‌های موقت}} تا {{PLURAL:$5|یک روز|$5 روز}} باطل می‌شود.\nشما باید هم‌اکنون وارد شده و یک گذرواژهٔ جدید برگزینید. اگر شخص دیگری این درخواست را داده است، یا اگر گذرواژهٔ اصلی‌تان را به خاطر آوردید و دیگر نمی‌خواهید آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.",
-       "passwordreset-emailelement": "نام کاربری: $1\nگذرواژهٔ موقت: $2",
+       "passwordreset-emailelement": "نام کاربری: \n$1\n\nگذرواژهٔ موقت: \n$2",
        "passwordreset-emailsent": "یک نامهٔ بازنشانی گذرواژه فرستاده شده‌است.",
        "passwordreset-emailsent-capture": "یک ایمیل بازنشانی که در پایین نمایش داده شده، فرستاده شده است.",
        "passwordreset-emailerror-capture": "ایمیل بازنشانی، که در زیر نمایش داده شده، ایجاد شد، ولی ارسال آن به {{GENDER:$2|کاربر}} موفقیت‌آمیز نبود: $1",
        "changeemail-password": "گذرواژهٔ {{SITENAME}} شما:",
        "changeemail-submit": "تغییر ایمیل",
        "changeemail-throttled": "شما به مراتب برای ورود تلاش کرده‌اید.\nلطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.",
+       "changeemail-nochange": "لطفاً رایانامهٔ جدید و متفاوتی وارد کنید.",
        "resettokens": "بازنشانی شناساننده‌ها",
        "resettokens-text": "شما می توانید شناساننده‌ها که اجازهٔ دسترسی به برخی داده‌های خصوصی مرتبط با حسابتان را می‌دهد بازنشانی کنید.\nدر صورتی باید این کار را انجام دهید که تصادقاً آن‌ها را با کسی در میان گذاشته‌اید یا به حسابتان نفوذ شده است.",
        "resettokens-no-tokens": "هیچ شناساننده‌ای برای بازنشانی وجود ندارد.",
        "permissionserrorstext-withaction": "شما اجازهٔ $2 را به این {{PLURAL:$1|دلیل|دلایل}} ندارید:",
        "recreate-moveddeleted-warn": "<strong>هشدار: شما در حال ایجاد صفحه‌ای هستید که قبلاً حذف شده‌است.</strong>\n\nدر نظر داشته باشید که آیا ادامهٔ ویرایش این صفحه کار درستی‌است یا نه.\nسیاههٔ حذف و انتقال این صفحه در زیر نشان داده شده‌است:",
        "moveddeleted-notice": "این صفحه حذف شده‌است.\nدر زیر سیاههٔ حذف و انتقال این صفحه نمایش داده شده‌است.",
+       "moveddeleted-notice-recent": "متاسفانه صفحه قبلا حذف شده‌است (در ۲۴ ساعت اخیر) \nدلیل حذف و سیاههٔ انتقال در پائین موجود است.",
        "log-fulllog": "مشاهدهٔ سیاههٔ کامل",
        "edit-hook-aborted": "ویرایش توسط قلاب لغو شد.\nتوضیحی در این مورد داده نشد.",
        "edit-gone-missing": "امکان به‌روز کردن صفحه وجود ندارد.\nبه نظرمی‌رسد که صفحه حذف شده باشد.",
        "api-error-badaccess-groups": "شما اجازهٔ بارگذاری پرونده‌ها را در این ویکی ندارید.",
        "api-error-badtoken": "خطای داخلی: کد امنیتی اشتباه (Bad token).",
        "api-error-copyuploaddisabled": "بارگذاری با استفاده از نشانی اینترنتی در این کارساز غیرفعال است.",
-       "api-error-duplicate": "{{PLURAL:$1|[$2 پروندهٔ دیگری]|[$2 چند پروندهٔ دیگر]}} در تارنما با محتوای یکسان وجود داشت.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|[$2 پروندهٔ دیگری]|[$2 چند پروندهٔ دیگر]}} در تارنما با محتوای یکسان وجود داشت، ولی حذف {{PLURAL:$1|شده است|شده‌اند}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|پروندهٔ|پرونده‌های}} تکراری که در حال حاضر حذف شده‌اند",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|پرونده|پرونده‌های}} تکراری",
+       "api-error-duplicate": "{{PLURAL:$1|پروندهٔ دیگری|چند پروندهٔ دیگر}} در تارنما با محتوای یکسان وجود داشت.",
+       "api-error-duplicate-archive": "{{PLURAL:$1| پروندهٔ دیگری|چند پروندهٔ دیگر}} در تارنما با محتوای یکسان وجود داشت، ولی حذف {{PLURAL:$1|شده است|شده‌اند}}.",
        "api-error-empty-file": "پرونده‌ای که شما ارسال کردید خالی بود.",
        "api-error-emptypage": "ایجاد صفحه‌های خالی مجاز نیست.",
        "api-error-fetchfileerror": "خطای داخلی: در هنگام گرفتن پرونده، یک چیزی درست پیش نرفت.",
index efe544f..3966983 100644 (file)
        "passwordreset-emailtitle": "Tunnuksen tiedot {{GRAMMAR:inessive|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "Joku (todennäköisesti sinä, IP-osoitteesta $1) pyysi salasanasi\nvaihtamista sivustolla {{SITENAME}} ($4). {{PLURAL:$3|Seuraava käyttäjätunnus on|Seuraavat käyttäjätunnukset ovat}}\nyhdistettynä tähän sähköpostiosoitteeseen:\n\n$2\n\n{{PLURAL:$3|Tämä väliaikainen salasana vanhentuu|Nämä väliaikaiset salasanat vanhentuvat}} {{PLURAL:$5|yhden päivän|$5 päivän}} kuluttua.\nKirjaudu sisään nyt ja valitse uusi salasana heti. Jos joku toinen teki tämän pyynnön \ntai jos muistitkin vanhan salasanasi etkä halua enää muuttaa sitä,\nvoit jättää tämän viestin huomiotta ja jatkaa vanhan salasanasi käyttämistä.",
        "passwordreset-emailtext-user": "Käyttäjä $1 pyysi muistutusta tunnuksesi tiedoista sivustolla {{SITENAME}} ($4).\n{{PLURAL:$3|Seuraava käyttäjätunnus on|Seuraavat käyttäjätunnukset ovat}} liitetty tähän sähköpostiosoitteeseen:\n\n$2\n\n{{PLURAL:$3|Tämä väliaikainen salasana vanhentuu|Nämä väliaikaiset salasanat vanhentuvat}} {{PLURAL:$5|yhden päivän|$5 päivän}} kuluttua.\nSinun kannattaa kirjautua sisään ja valita uusi salasana. Jos joku toinen teki tämän\npyynnön, tai muistat sittenkin vanhan salasanasi, etkä halua muuttaa sitä,\nvoit jättää tämän viestin huomiotta ja jatkaa vanhan salasanan käyttöä.",
-       "passwordreset-emailelement": "Käyttäjätunnus: $1\nVäliaikainen salasana: $2",
+       "passwordreset-emailelement": "Käyttäjätunnus: \n$1\n\nVäliaikainen salasana: \n$2",
        "passwordreset-emailsent": "Salasanan uudistamisesta kertova viesti on lähetetty sähköpostitse.",
        "passwordreset-emailsent-capture": "Salasanan uudistamisesta kertova sähköpostiviesti on lähetetty, ja se näkyy myös alla.",
        "passwordreset-emailerror-capture": "Allaoleva sähköpostiviesti luotiin, mutta sen lähettäminen {{GENDER:$2|käyttäjälle}} epäonnistui: $1",
        "booksources-text": "Alla linkkejä ulkopuolisiin sivustoihin, joilla myydään uusia ja käytettyjä kirjoja. Sivuilla voi myös olla lisätietoa kirjoista.",
        "booksources-invalid-isbn": "Annettu ISBN-numero ei ole kelvollinen. Tarkista alkuperäisestä lähteestä kirjoitusvirheiden varalta.",
        "specialloguserlabel": "Suorittaja:",
-       "speciallogtitlelabel": "Kohde (sivu tai {{ns:user}}:käyttäjänimi käyttäjää varten):",
+       "speciallogtitlelabel": "Kohde (sivu tai {{ns:user}}:käyttäjänimi):",
        "log": "Lokit",
        "all-logs-page": "Kaikki julkiset lokit",
        "alllogstext": "Tämä on yhdistetty lokien näyttö.\nVoit rajoittaa listaa valitsemalla lokityypin, käyttäjän tai sivun johon muutos on kohdistunut. Jälkimmäiset ovat kirjainkokoherkkiä.",
        "api-error-badtoken": "Sisäinen virhe: virheellinen tarkistussumma.",
        "api-error-copyuploaddisabled": "Tallentaminen URL-osoitteesta ei ole käytössä.",
        "api-error-duplicate": "Samansisältöisiä tiedostoja löytyi {{PLURAL:$1|[$2 yksi kappale]|[$2 useampia kappaleita]}}.",
-       "api-error-duplicate-archive": "Sivustolla oli aiemmin {{PLURAL:$1|[$2 toinen samansisältöinen tiedosto]|[$2 toisia samansisältöisiä tiedostoja]}}, mutta {{PLURAL:$1|se|ne}} poistettiin.",
-       "api-error-duplicate-archive-popup-title": "Tiedostolla on {{PLURAL:$1|poistettu kaksoiskappale|poistettuja kaksoiskappaleita}}",
-       "api-error-duplicate-popup-title": "Tiedoston {{PLURAL:$1|kaksoiskappale|kaksoiskappaleet}}",
+       "api-error-duplicate-archive": "Sivustolla oli aiemmin {{PLURAL:$1|toinen samansisältöinen tiedosto|toisia samansisältöisiä tiedostoja}}, mutta {{PLURAL:$1|se|ne}} poistettiin.",
        "api-error-empty-file": "Määrittämäsi tiedosto on tyhjä.",
        "api-error-emptypage": "Ei ole sallittua luoda uutta, tyhjää sivua.",
        "api-error-fetchfileerror": "Sisäinen virhe: Jotakin meni pieleen kun tiedostoa haettiin.",
index 058248d..7ef64c9 100644 (file)
        "passwordreset-emailtitle": "konto upplýsingar á {{SITENAME}}",
        "passwordreset-emailtext-ip": "Onkur (óiva tú, frá IP adressu $1) hevur biðið um nullstillan av tínum loyniorði til {{SITENAME}} ($4). Fylgjandi brúkara {{PLURAL:$3|konta er|kontur eru}}\nsettar í samband við hesa t-post adressu:\n\n$2\n\n{{PLURAL:$3|Hetta fyribils loyniorðið|Hesi fyribils loyniorðini}} ganga út um {{PLURAL:$5|ein dag|$5 dagar}}.\nTú eigur at rita inn og velja eitt nýtt loyniorð nú. Um onkur annar hevur gjørt hesa umbønina, ella um tú ert komin í tankar um títt uppruna loyniorð, og tú ikki longur ynskir at broyta tað, so kanst tú síggja burtur frá hesum boðum og halda fram at brúka títt gamla loyniorð.",
        "passwordreset-emailtext-user": "Brúkari $1 á {{SITENAME}} hevur biðið um eina nullstillan av tínum loyniorði til {{SITENAME}} \n($4). Fylgjandi brúkara {{PLURAL:$3|konta er|kontur eru}} settar í samband við hesa t-post adressuna:\n\n$2\n\n{{PLURAL:$3|Hetta fyribils loyniorðið|Hesi fyribils loyniorðini}} ganga út um {{PLURAL:$5|ein dag|$5 dagar}}.\nTú eigur at rita inn og velja eitt nýtt loyniorð nú. Um onkur annar hevur gjørt hesa umbøn, ella um tú ert komin í tankar um títt uppruna loyniorð, og tú ikki longur ynskir at broyta tað, so kanst tú síggja burtur frá hesum boðum og halda fram at brúka títt gamla loyniorð.",
-       "passwordreset-emailelement": "Brúkaranavn: $1\nFyribils loyniorð: $2",
+       "passwordreset-emailelement": "Brúkaranavn: \n$1\n\nFyribils loyniorð: \n$2",
        "passwordreset-emailsent": "Ein teldupostur har tú kanst nullstillað loyniorðið er blivin sendur.",
        "passwordreset-emailsent-capture": "Ein teldupostur, har ið tú kanst nullstilla loyniorðið, er blivin sendur, sum víst niðanfyri.",
        "passwordreset-emailerror-capture": "Ein teldupostur við nullstillaðum loyniorði var gjørdur, sum víst niðanfyri, men tað miseydnaðist at senda til {{GENDER:$2|brúkaran}}: $1",
        "emailuser": "Send t-post til brúkara",
        "emailuser-title-target": "Send teldupost til henda {{GENDER:$1|brúkaran}}",
        "emailuser-title-notarget": "Send t-post til brúkara",
-       "emailpage": "Send t-post til brúkara",
        "emailpagetext": "Tú kanst brúka skjalið niðanfyri til at senda ein teldupost til henda {{GENDER:$1|brúkara}}.\nTeldupost adressan sum tú skrivaði í [[Special:Preferences|tíni brúkara ynskir]] kemur síðan fram sum \"Frá\" adressan í teldupostinum, soleiðis at móttakarin kann svara beinleiðis til tín.",
        "defemailsubject": "{{SITENAME}} t-postur frá brúkara $1",
        "usermaildisabled": "Brúkara t-postur er óvirkin",
index 8114837..7eb3b97 100644 (file)
        "nstab-template": "Modèle",
        "nstab-help": "Aide",
        "nstab-category": "Catégorie",
+       "mainpage-nstab": "Accueil",
        "nosuchaction": "Action inconnue",
        "nosuchactiontext": "L'action spécifiée dans l'URL est invalide.\nVous avez peut-être mal entré l'URL ou suivi un lien erroné.\nIl peut également s'agir d'un bug dans le logiciel utilisé par {{SITENAME}}.",
        "nosuchspecialpage": "Page spéciale inexistante",
        "passwordreset-emailtitle": "Détails du compte sur {{SITENAME}}",
        "passwordreset-emailtext-ip": "Quelqu'un (probablement vous, depuis l'adresse IP $1) a demandé un réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
        "passwordreset-emailtext-user": "L'utilisateur $1 sur {{SITENAME}} a demandé un réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
-       "passwordreset-emailelement": "Nom d'utilisateur : $1\nMot de passe temporaire : $2",
+       "passwordreset-emailelement": "Nom d'utilisateur : \n$1\n\nMot de passe temporaire : \n$2",
        "passwordreset-emailsent": "Un courriel de réinitialisation de mot de passe a été envoyé.",
        "passwordreset-emailsent-capture": "Un courriel de réinitialisation de mot de passe a été envoyé, qui est affiché ci-dessous.",
        "passwordreset-emailerror-capture": "Un courriel de réinitialisation de mot de passe a été généré, qui est affiché ci-dessous, mais l'envoi à l'{{GENDER:$2|utilisateur|utilisatrice}} a échoué : $1",
        "changeemail-password": "Votre mot de passe sur {{SITENAME}} :",
        "changeemail-submit": "Changer l’adresse de courriel",
        "changeemail-throttled": "Vous avez fait trop de tentatives de connexion.\nVeuillez attendre $1 avant de réessayer.",
+       "changeemail-nochange": "Veuillez saisir une nouvelle adresse de courriel différente de la précédente.",
        "resettokens": "Réinitialiser les jetons",
        "resettokens-text": "Ici, vous pouvez réinitialiser les jetons qui permettent d’accéder à certaines données privées associées à votre compte.\n\nVous devriez le faire si vous les avez partagés accidentellement avec quelqu'un ou si votre compte a été compromis.",
        "resettokens-no-tokens": "Il n’y a aucun jeton à réinitialiser.",
        "permissionserrorstext-withaction": "Vous ne pouvez pas $2, pour {{PLURAL:$1|la raison suivante|les raisons suivantes}} :",
        "recreate-moveddeleted-warn": "'''Attention : vous êtes en train de recréer une page qui a été précédemment supprimée.'''\n\nAssurez-vous qu'il est pertinent de poursuivre les modifications sur cette page. Le journal des suppressions et des déplacements est affiché ci-dessous :",
        "moveddeleted-notice": "Cette page a été supprimée. Le journal des suppressions et des déplacements est affiché ci-dessous pour référence.",
+       "moveddeleted-notice-recent": "Désolé, cette page a été récemment supprimée (dans les dernières 24 heures).\nLes journaux des suppressions et des renommages pour la page sont fournis ci-dessous à titre d’information.",
        "log-fulllog": "Voir le journal complet",
        "edit-hook-aborted": "Échec de la modification par une extension.\nCause inconnue",
        "edit-gone-missing": "N'a pas pu mettre à jour la page.\nIl semble qu'elle ait été supprimée.",
        "api-error-badaccess-groups": "Vous n'êtes pas autorisé à verser des fichiers sur ce wiki.",
        "api-error-badtoken": "Erreur interne : mauvais « jeton ».",
        "api-error-copyuploaddisabled": "Les versements via URL sont désactivés sur ce serveur.",
-       "api-error-duplicate": "Il y a déjà {{PLURAL:$1|[$2 un autre fichier présent]|[$2 d'autres fichiers présents]}} sur le site avec le même contenu.",
-       "api-error-duplicate-archive": "Il y avait déjà {{PLURAL:$1|[$2 un autre fichier présent]|[$2 d'autres fichiers présents]}} sur le site avec le même contenu, mais {{PLURAL:$1|il a été supprimé|ils ont été supprimés}}.",
-       "api-error-duplicate-archive-popup-title": "Dupliquer {{PLURAL:$1|le fichier|les fichiers}} qui {{PLURAL:$1|a déjà été supprimé|ont déjà été supprimés}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|fichier|fichiers}} en double",
+       "api-error-duplicate": "Il y a déjà {{PLURAL:$1|un autre fichier présent|d'autres fichiers présents}} sur le site avec le même contenu.",
+       "api-error-duplicate-archive": "Il y avait déjà {{PLURAL:$1|un autre fichier présent|d'autres fichiers présents}} sur le site avec le même contenu, mais {{PLURAL:$1|il a été supprimé|ils ont été supprimés}}.",
        "api-error-empty-file": "Le fichier que vous avez soumis était vide.",
        "api-error-emptypage": "Création de pages vide n'est pas autorisée.",
        "api-error-fetchfileerror": "Erreur interne : Quelque chose s'est mal passé lors de la récupération du fichier.",
index 7f61067..96f3927 100644 (file)
        "passwordreset-emailtitle": "Dètalys du compto dessus {{SITENAME}}",
        "passwordreset-emailtext-ip": "Yon (probâblament vos, dês l’adrèce IP $1) at demandâ na remês’a zérô de voutron\ncontresegno por {{SITENAME}} ($4). {{PLURAL:$3|Ceti compto utilisator est associyê|Cetos comptos utilisators sont associyês}}\na cel’adrèce èlèctronica :\n\n$2\n\n{{PLURAL:$3|Cél contresegno temporèro èxpirerat|Celos contresegnos temporèros èxpireront}} dens {{PLURAL:$5|un jorn|$5 jorns}}.\nOra vos vos dête branchiér et pués chouèsir un contresegno novél. Se cela demanda vint pas de vos\nou ben que vos vos éte rapelâ de voutron contresegno originâl et que vos souhètâd pas més lo changiér,\nvos pouede ignorar ceti mèssâjo et continuar a empleyér voutron viely contresegno.",
        "passwordreset-emailtext-user": "L’utilisator $1 dessus {{SITENAME}} at demandâ na remês’a zérô de voutron contresegno por {{SITENAME}}\n($4). {{PLURAL:$3|Ceti compto utilisator est associyê|Cetos comptos utilisators sont associyês}}\na cel’adrèce èlèctronica :\n\n$2\n\n{{PLURAL:$3|Cél contresegno temporèro èxpirerat|Celos contresegnos temporèros èxpireront}} dens {{PLURAL:$5|un jorn|$5 jorns}}.\nOra vos vos dête branchiér et pués chouèsir un contresegno novél. Se cela demanda vint pas de vos\nou ben que vos vos éte rapelâ de voutron contresegno originâl et que vos souhètâd pas més lo changiér,\nvos pouede ignorar ceti mèssâjo et continuar a empleyér voutron viely contresegno.",
-       "passwordreset-emailelement": "Nom d’utilisator : $1\nContresegno temporèro : $2",
+       "passwordreset-emailelement": "Nom d’utilisator : \n$1\n\nContresegno temporèro : \n$2",
        "passwordreset-emailsent": "Un mèssâjo de remês’a zérô de contresegno est étâ mandâ.",
        "passwordreset-emailsent-capture": "Un mèssâjo de remês’a zérô de contresegno est étâ mandâ, qu’est montrâ ce-desot.",
        "passwordreset-emailerror-capture": "Un mèssâjo de remês’a zérô de contresegno est étâ fêt, qu’est montrâ ce-desot, mas l’èxpèdicion a l’utilisat{{GENDER:$2|or|rice}} at pas reussi : $1",
        "emailuser": "Lui mandar un mèssâjo",
        "emailuser-title-target": "Mandar un mèssâjo a cet’utilisat{{GENDER:$1|or|rice}}",
        "emailuser-title-notarget": "Mandar un mèssâjo a l’utilisator",
-       "emailpage": "Mandar un mèssâjo a l’utilisator",
        "emailpagetext": "Vos pouede empleyér lo formulèro ce-desot por mandar un mèssâjo a cet’utilisat{{GENDER:$1|or|rice}}.\nL’adrèce èlèctronica que vos éd buchiêe dens voutres [[Special:Preferences|prèferences]] aparêtrat dedens lo champ « Èxpèdior » de voutron mèssâjo ; d’ense, lo dèstinatèro vos porrat rèpondre tot drêt.",
        "defemailsubject": "Mèssâjo de {{SITENAME}} de l’utilisator « $1 »",
        "usermaildisabled": "L’èxpèdicion de mèssâjos entre utilisators est dèsactivâye",
        "api-error-badtoken": "Èrror de dedens : crouyo « jeton ».",
        "api-error-copyuploaddisabled": "Los tèlèchargements per URL sont dèsactivâs sur cél sèrvor.",
        "api-error-duplicate": "Y at {{PLURAL:$1|[$2 un ôtro fichiér]|[$2 d’ôtros fichiérs]}} ja sur lo seto avouéc lo mémo contegnu.",
-       "api-error-duplicate-archive": "Y avéve {{PLURAL:$1|[$2 un ôtro fichiér]|[$2 d’ôtros fichiérs]}} ja sur lo seto avouéc lo mémo contegnu, mas {{PLURAL:$1|il at étâ suprimâ|ils ont étâ suprimâs}}.",
-       "api-error-duplicate-archive-popup-title": "Duplicar {{PLURAL:$1|lo fichiér|los fichiérs}} qu’{{PLURAL:$1|at ja étâ suprimâ|ont ja étâ suprimâs}}",
-       "api-error-duplicate-popup-title": "Fichiér{{PLURAL:$1||s}} en doblo",
+       "api-error-duplicate-archive": "Y avéve {{PLURAL:$1|un ôtro fichiér|d’ôtros fichiérs}} ja sur lo seto avouéc lo mémo contegnu, mas {{PLURAL:$1|il at étâ suprimâ|ils ont étâ suprimâs}}.",
        "api-error-empty-file": "Lo fichiér que vos éd somês ére vouedo.",
        "api-error-emptypage": "La crèacion de pâges novèles vouedes est pas ôtorisâ.",
        "api-error-fetchfileerror": "Èrror de dedens : quârque-ren s’est mâl passâ pendent la rècupèracion du fichiér.",
index d367e8a..5b6b18c 100644 (file)
@@ -8,7 +8,8 @@
                        "Murma174",
                        "Pyt",
                        "아라",
-                       "Purodha"
+                       "Purodha",
+                       "Macofe"
                ]
        },
        "tog-underline": "Ferwisangen onerstrik:",
        "passwordreset-emailtitle": "Brükerkonto aw {{SITENAME}}",
        "passwordreset-emailtext-ip": "Hoker mä det IP-Adres $1, woorskiinelk dü salew, wul hal brükerinformatsjuunen för {{SITENAME}} tusjüürd fu ($4). {{PLURAL:$3|Detdiar brükerkonto as|Jodiar brükerkontos san}} mä detdiar E-Mail-adres ferbünjen:\n\n$2\n\n{{PLURAL:$3|Detheer tidjwiis paaswurd lääpt|Joheer tidjwiis paaswurden luup}} efter {{PLURAL:$5|ään dai|$5 daar}} uf. \nDü skulst di uunmelde an en nei paaswurd iinracht. Wan hoker ööders detheer uunfraag steld hää an dü din ual paaswurd käänst, do säärst dü niks widjer onernem. Melde di ianfach widjerhen mä din ual paaswurd uun.",
        "passwordreset-emailtext-user": "Di brüker $1 üüb {{SITENAME}} hää am brükerinformatsjuunen för {{SITENAME}} uunfraaget ($4). {{PLURAL:$3|Detdiar brükerkonto as|Jodiar brükerkontos san}} mä detdiar E-Mail-Adres ferbünjen:\n\n$2\n\n{{PLURAL:$3|Detheer tidjwiis paaswurd lääpt|Joheer tidjwiis paaswurden luup}} efter {{PLURAL:$5|ään dai|$5 daar}} uf. Dü skulst di uunmelde an en nei paaswurd iinracht. Wan hoker ööders detheer uunfraag steld hää of dü din ual paaswurd käänst, säärst dü niks widjer onernem. Melde di ianfach mä din ual paaswurd uun.",
-       "passwordreset-emailelement": "Brükernööm: $1\nTidjwiis paaswurd: $2",
+       "passwordreset-emailelement": "Brükernööm: \n$1\n\nTidjwiis paaswurd: \n$2",
        "passwordreset-emailsent": "Diar as en E-Mail tu di onerwais.",
        "passwordreset-emailsent-capture": "Detdiar E-Mail, wat oner uunwiset woort, as tu di onerwais.",
        "passwordreset-emailerror-capture": "Detdiar E-Mail, wat oner uunwiset woort, wiar tu di onerwais, oober küd ei tu di {{GENDER:$2|brüker}} ufsjüürd wurd: $1",
        "api-error-badtoken": "Intern feeler: Token as ferkiard.",
        "api-error-copyuploaddisabled": "Det huuchschüüren auer URL as üüb didiar server ei aktiif.",
        "api-error-duplicate": "Uun det Wiki {{PLURAL:$1|as al [$2 en ööder datei]|san al [$2 muar datein]}} mä detsalew banen.",
-       "api-error-duplicate-archive": "Diar wiar al {{PLURAL:$1|[$2 ööder datei]|[$2 ööder datein]}} mä detsalew banen. {{PLURAL:$1|Hat as |Jo san}} oober stregen wurden.",
-       "api-error-duplicate-archive-popup-title": "Dobelt {{PLURAL:$1|datei, diar al stregen wurden as|datein, diar al stregen wurden san}}.",
-       "api-error-duplicate-popup-title": "Dobelt {{PLURAL:$1|datei|datein}}",
+       "api-error-duplicate-archive": "Diar wiar al {{PLURAL:$1|ööder datei|ööder datein}} mä detsalew banen. {{PLURAL:$1|Hat as |Jo san}} oober stregen wurden.",
        "api-error-empty-file": "Det datei, wat dü huuchschüürd heest, as leesag.",
        "api-error-emptypage": "Dü mutst nian leesag sidjen nei iinstel.",
        "api-error-fetchfileerror": "Intern feeler: Bi't ufrepen faan det datei as wat skiaf gingen.",
index be4fc89..cbe879b 100644 (file)
        "passwordreset-domain": "Domein:",
        "passwordreset-email": "E-mailadres:",
        "passwordreset-emailtitle": "Akkountdetails op {{SITENAME}}",
-       "passwordreset-emailelement": "Brûkersnamme: $1\nTydlik wachtwurd: $2",
+       "passwordreset-emailelement": "Brûkersnamme: \n$1\n\nTydlik wachtwurd: \n$2",
        "changeemail": "Feroarje e-mailadres",
        "changeemail-newemail": "Nij e-mailadres:",
        "changeemail-none": "(gjin)",
index fe95271..7d652a2 100644 (file)
        "passwordreset-emailtitle": "Dàta a' chunntais air {{SITENAME}}",
        "passwordreset-emailtext-ip": "Dh'iarr cuideigin (thu fhèin, 's mathaid, on t-seòladh IP $1) am facal-faire airson {{SITENAME}} ($4) ath-shuidheachadh. Tha {{PLURAL:$3|an cunntas|na cunntasan}} a leanas co-cheangailte ris a' phost-d seo:\n\n$2\n\nFalbhaidh an ùine air {{PLURAL:$3|an fhacal-fhaire shealach|na faclan-faire sealach}} seo an ceann $5 {{PLURAL:$5|latha|latha|làithean|latha}}.\nBu chòir dhut logadh a-steach agus facal-faire ùr a thaghadh an-dràsta. Ma dh'iarr cuideigin eile seo no ma chuimhnich thu air an fhacal-fhaire agad 's mur eil thu airson atharrachadh tuilleadh, leig seachad an teachdaireachd seo 's lean ort leis an t-seann fhacal-fhaire.",
        "passwordreset-emailtext-user": "Dh'iarr an cleachdaiche $1 air {{SITENAME}} ath-shuidheachadh an fhacail-fhaire air {{SITENAME}} ($4). Tha {{PLURAL:$3|an cunntas-cleachdaiche|na cunntasan-cleachdaiche}} a leanas co-cheangailte ris an t-seòladh puist-d seo:\n\n$2\n\nFalbhaidh an ùine air {{PLURAL:$3|an fhacal-fhaire shealach|na faclan-faire sealach}} seo an ceann $5 {{PLURAL:$5|latha|latha|làithean|latha}}.\nBu chòir dhut logadh a-steach agus facal-faire ùr a thaghadh an-dràsta. Ma dh'iarr cuideigin eile seo no ma chuimhnich thu air an fhacal-fhaire agad 's mur eil thu airson atharrachadh tuilleadh, leig seachad an teachdaireachd seo 's lean ort leis an t-seann fhacal-fhaire.",
-       "passwordreset-emailelement": "Ainm-cleachdaiche: $1\nFacal-faire sealach: $2",
+       "passwordreset-emailelement": "Ainm-cleachdaiche: \n$1\n\nFacal-faire sealach: \n$2",
        "passwordreset-emailsent": "Chaidh post-d airson ath-shuidheachadh an fhacail-fhaire a chur.",
        "passwordreset-emailsent-capture": "Chaidh post-d a chum ath-shuidheachadh an fhacail-fhaire a chur agus chì thu sin gu h-ìosal.",
        "passwordreset-emailerror-capture": "Chaidh post-d a chum ath-shuidheachadh an fhacail-fhaire a ghintinn agus chì thu sin gu h-ìosal ach cha b' urrainn dhuinn a chur dhan chleachdaiche: $1",
        "emailuser": "Cuir post-dealain dhan chleachdaiche seo",
        "emailuser-title-target": "Cuir post-d dhan chleachdaiche seo",
        "emailuser-title-notarget": "Cuir post-d gu cleachdaiche",
-       "emailpage": "Cuir post-d gun chleachdaiche",
        "emailpagetext": "'S urrainn dhut am foirm gu h-ìosal a chleachdadh gus post-d a chur dhan chleachdaiche seo.\nNochdaidh an seòladh a chuir thu a-steach [[Special:Preferences|sna roghainnean agad]] mar an seòladh \"O\" sa post-d, mar sin 's urrainn dhan fhaightear freagairt a chur thugad gu dìreach.",
        "defemailsubject": "Post-d on chleachdaiche \"$1\" air {{SITENAME}}",
        "usermaildisabled": "Chaidh post-d nan cleachdaichean a chur à comas.",
        "api-error-badtoken": "Mearachd taobh a-staigh: Droch thòcan.",
        "api-error-copyuploaddisabled": "Tha luchdadh suas le URL à comas air an fhrithealaiche seo.",
        "api-error-duplicate": "Tha {{PLURAL:$1|[$2 faidhle eile]|are [$2 faidhlichean eile]}} air an làrach seo mar-thà sa bheil an aon susbaint.",
-       "api-error-duplicate-archive": "Tha {{PLURAL:$1|[$2 faidhle eile]|are [$2 faidhlichean eile]}} air an làrach seo mar-thà sa bheil an aon susbaint ach chaidh {{PLURAL:$1|a sguabadh|an sguabadh}} às.",
-       "api-error-duplicate-archive-popup-title": "Bha {{PLURAL:$1|am faidhle|na faidhlichean}} dùblaichte air {{PLURAL:$1|a|an}} sguabadh às mar-thà.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Faidhle|Faidhlichean}} dùblaichte.",
+       "api-error-duplicate-archive": "Tha {{PLURAL:$1|faidhle eile|faidhlichean eile}} air an làrach seo mar-thà sa bheil an aon susbaint ach chaidh {{PLURAL:$1|a sguabadh|an sguabadh}} às.",
        "api-error-empty-file": "Tha am faidhle a chuir thu a-null falamh.",
        "api-error-emptypage": "Chan fhaodar duilleagan falamh ùra a chruthachadh.",
        "api-error-fetchfileerror": "Mearachd taobh a-staigh: Chaidh rudeigin cearr le faighinn an fhaidhle.",
index ae7f1c9..bb52e39 100644 (file)
        "nstab-template": "Modelo",
        "nstab-help": "Páxina de axuda",
        "nstab-category": "Categoría",
+       "mainpage-nstab": "Páxina principal",
        "nosuchaction": "Non existe esa acción",
        "nosuchactiontext": "A acción especificada polo enderezo URL é inválida.\nPode que non o escribise ben ou que seguise unha ligazón incorrecta.\nIsto tamén podería indicar un erro en {{SITENAME}}.",
        "nosuchspecialpage": "Non existe esa páxina especial",
        "passwordreset-emailtitle": "Detalles da conta de {{SITENAME}}",
        "passwordreset-emailtext-ip": "Alguén (probablemente vostede, desde o enderezo IP $1) solicitou o restablecemento do seu\ncontrasinal de {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta de usuario está asociada|As seguintes contas de usuarios están asociadas}}\na este enderezo de correo electrónico:\n\n$2\n\n{{PLURAL:$3|Este contrasinal temporal caducará|Estes contrasinais temporais caducarán}} {{PLURAL:$5|nun día|en $5 días}}.\nDebería acceder ao sistema e elixir un novo contrasinal agora. Se outra persoa fixo esta\nsolicitude ou se lembrou o seu contrasinal orixinal e xa non o quere cambiar,\nignore esta mensaxe e continúe empregando o seu contrasinal vello.",
        "passwordreset-emailtext-user": "O usuario $1 solicitou o restablecemento do contrasinal de {{SITENAME}}\n($4). {{PLURAL:$3|A seguinte conta de usuario está asociada|As seguintes contas de usuarios están asociadas}}\na este enderezo de correo electrónico:\n\n$2\n\n{{PLURAL:$3|Este contrasinal temporal caducará|Estes contrasinais temporais caducarán}} {{PLURAL:$5|nun día|en $5 días}}.\nDebería acceder ao sistema e elixir un novo contrasinal agora. Se outra persoa fixo esta\nsolicitude ou se lembrou o seu contrasinal orixinal e xa non o quere cambiar,\nignore esta mensaxe e continúe empregando o seu contrasinal vello.",
-       "passwordreset-emailelement": "Nome de usuario: $1\nContrasinal temporal: $2",
+       "passwordreset-emailelement": "Nome de usuario: \n$1\n\nContrasinal temporal: \n$2",
        "passwordreset-emailsent": "Enviouse o correo electrónico de restablecemento do contrasinal.",
        "passwordreset-emailsent-capture": "Enviouse un correo electrónico de restablecemento do contrasinal, mostrado a continuación.",
        "passwordreset-emailerror-capture": "Xerouse un correo electrónico de restablecemento do contrasinal, mostrado a continuación, pero o envío {{GENDER:$2|ao usuario|á usuaria}} fallou: $1",
        "changeemail-password": "O seu contrasinal en {{SITENAME}}:",
        "changeemail-submit": "Cambiar o correo electrónico",
        "changeemail-throttled": "Fixo demasiados intentos de acceder ao sistema.\nPor favor, agarde $1 antes de probar outra vez.",
+       "changeemail-nochange": "Por favor, indique unha nova dirección de correo diferente.",
        "resettokens": "Restablecer os pases",
        "resettokens-text": "Aquí pode restablecer os pases que permiten acceder a certos datos privados asociados á súa conta.\n\nDebería facelo se os compartiu accidentalmente con alguén ou se a súa conta foi comprometida.",
        "resettokens-no-tokens": "Non hai ningún pase que restablecer.",
        "api-error-badaccess-groups": "Non ten os permisos necesarios para cargar ficheiros neste wiki.",
        "api-error-badtoken": "Erro interno: Pase incorrecto.",
        "api-error-copyuploaddisabled": "As cargas mediante URL están desactivadas neste servidor.",
-       "api-error-duplicate": "Xa hai {{PLURAL:$1|[$2 outro ficheiro]|[$2 outros ficheiros]}} no wiki co mesmo contido",
-       "api-error-duplicate-archive": "Había {{PLURAL:$1|[$2 outro ficheiro]|[$2 outros ficheiros]}} no sitio co mesmo contido, pero {{PLURAL:$1|foi borrado|foron borrados}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Ficheiro duplicado|Ficheiros duplicados}} que xa {{PLURAL:$1|foi borrado|foron borrados}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Ficheiro duplicado|Ficheiros duplicados}}",
+       "api-error-duplicate": "Xa hai {{PLURAL:$1|outro ficheiro| outros ficheiros}} no wiki co mesmo contido.",
+       "api-error-duplicate-archive": "Había {{PLURAL:$1|outro ficheiro|outros ficheiros}} no sitio co mesmo contido, pero {{PLURAL:$1|foi borrado|foron borrados}}.",
        "api-error-empty-file": "O ficheiro que enviou estaba baleiro.",
        "api-error-emptypage": "Non está permitida a creación de páxinas novas que estean baleiras.",
        "api-error-fetchfileerror": "Erro interno: Houbo un problema ao buscar o ficheiro.",
index 0d56f44..15b9156 100644 (file)
        "passwordreset-username": "वापरप्याचे नांव",
        "passwordreset-domain": "डोमेन:",
        "passwordreset-email": "ईमेल नामो:",
-       "passwordreset-emailelement": "वापरप्याचें नांव: $1\nतात्पुरतें गुपीत उतर: $2",
+       "passwordreset-emailelement": "वापरप्याचें नांव: \n$1\n\nतात्पुरतें गुपीत उतर: \n$2",
        "passwordreset-emailsent": "गुपीत उतर परतून तयार करपाचो ईमेल धाडला",
        "changeemail": "ईमेल संदेश बदल्ला",
        "changeemail-oldemail": "सद्याचो ईमेल नामो:",
index 1c1652d..b38176e 100644 (file)
        "passwordreset-username": "Vapurpeache nanv:",
        "passwordreset-domain": "Domain:",
        "passwordreset-email": "Email potto:",
-       "passwordreset-emailelement": "Vapurpeachem nanv: $1\nTatpurtem gupitutor: $2",
+       "passwordreset-emailelement": "Vapurpeachem nanv: \n$1\n\nTatpurtem gupitutor: \n$2",
        "passwordreset-emailsent": "Gupitutor portun tharaipacho email dhadla.",
        "changeemail": "Email potto bodol",
        "changeemail-oldemail": "Sodhyacho email potto:",
index 29a474e..f0a9a4e 100644 (file)
@@ -19,7 +19,8 @@
                        "Urhixidur",
                        "לערי ריינהארט",
                        "80686",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Links unterstryche:",
        "passwordreset-emailtitle": "Benutzerkontoinformationen uf {{SITENAME}}",
        "passwordreset-emailtext-ip": "Eber mit dr IP-Adresse $1, wahrschyns Du sälber, het e Erinnerig an Dyyni Benutzerkonteninformatione fir {{SITENAME}} aagforderet ($4). \n\n{{PLURAL:$3|Des Benutzerkonto isch|Die Benutzerkonte sin}} mit däre E-Mail-Adräss verchnipft: \n\n$2 \n\n{{PLURAL:$3|Des temporär Passwort lauft|Die temporäre Passwerter laufe}} in {{PLURAL:$5|eim Tag|$5 Täg}} ab.\nDu sottsch di aamälden un e nej Passwort vergee. Wänn eber ander die Aafrog gstellt het oder Du di wider an Dyy alt Passwort chasch erinnere un s nimi wettsch ändere, chasch die Nochricht ignorieren un alsfurt Dyy alt Passwort bruche.",
        "passwordreset-emailtext-user": "Dr Benutzer $1 bi {{SITENAME}} het e Zrucksetzig vu Dym Passwort bi {{SITENAME}} aagforderet ($4). \n\n{{PLURAL:$3|Des Benutzerkonto isch|Die Benutzerkonte sin}} mit däre E-Mail-Adräss verchnipft: \n\n$2 \n\n{{PLURAL:$3|Des temporär Passwort lauft|Die temporäre Passwerter laufe}} in {{PLURAL:$5|eim Tag|$5 Täg}} ab.\nDu sottsch di aamälden un e nej Passwort vergee. Wänn eber ander die Aafrog gstellt het oder Du di wider an Dyy alt Passwort chasch erinnere un s nimi wettsch ändere, chasch die Nochricht ignorieren un alsfurt Dyy alt Passwort bruche.",
-       "passwordreset-emailelement": "Benutzername: $1\nTemporär Passwort: $2",
+       "passwordreset-emailelement": "Benutzername: \n$1\n\nTemporär Passwort: \n$2",
        "passwordreset-emailsent": "E Passwort-Zrucksetzig isch per E-Mail verschickt wore.",
        "passwordreset-emailsent-capture": "E Passwort-Zrucksetzigs-Mail isch vergschickt worde, un isch unte aazeigt.",
        "passwordreset-emailerror-capture": "Die unten angezeigte Passwortzrucksetzigsmail, wu unten aazeigt wird, isch generiert wore, aber dr Versand an {{GENDER:$2|dr Benutzer|d Benutzeri}} het nit funktioniert: $1",
        "page_last": "Ändi",
        "histlegend": "Du chasch zwei Versionen uswähle und verglyche.<br />\nErklärig: (aktuell) = Underschid zu jetz,\n(vorane) = Underschid zur alte Version, <strong>K</strong> = chlyni Änderig",
        "history-fieldset-title": "Suech in dr Versionsgschicht",
-       "history-show-deleted": "nume gleschti Versione",
+       "history-show-deleted": "Nume gleschti Versione",
        "histfirst": "eltischti",
        "histlast": "neischti",
        "historysize": "({{PLURAL:$1|1 Byte|$1 Bytes}})",
        "changecontentmodel-title-label": "Sytetitel",
        "changecontentmodel-model-label": "Nöüs Inhaltsmodäll",
        "changecontentmodel-reason-label": "Grund:",
+       "changecontentmodel-success-title": "Ds Inhaltsmodäll het g’änderet",
+       "changecontentmodel-success-text": "Der Inhaltstyp vo [[:$1]] het g’änderet.",
+       "changecontentmodel-cannot-convert": "Der Inhalt vo [[:$1]] lat sech nid zum Typ $2 la konvertiere.",
+       "changecontentmodel-nodirectediting": "Ds Inhaltsmodäll «$1» lat ds diräkte Bearbeite nid zue",
+       "log-name-contentmodel": "Protokoll vo Inhaltsmodälländerige",
+       "log-description-contentmodel": "Ereignis, wo mit em Inhaltsmodäll von ere Syte z tüe hei",
+       "logentry-contentmodel-change": "{{GENDER:$2|Der $1|D $1|$1}} het ds Inhaltsmodäll vor Syte $3 g’änderet vo «$4» uf «$5»",
+       "logentry-contentmodel-change-revertlink": "zrüggsetze",
+       "logentry-contentmodel-change-revert": "zrüggsetze",
        "protectlogpage": "Syteschutz-Logbuech",
        "protectlogtext": "Des isch s Syteschutz-Logbuech.\nLueg d [[Special:ProtectedPages|Lischt vu dr gschitzte Syte]] fir alli zurzyt gschitzte Syte.",
        "protectedarticle": "het „[[$1]]“ gschitzt",
        "protect-locked-blocked": "Du chasch dr Syteschutz nit ändere, wel Dyy Benutzerkonto gsperrt isch. Do sin di aktuälle Syteschutz-Yystellige fir d Syte '''„$1“:'''",
        "protect-locked-dblock": "D Datebank isch gsperrt, dr Syteschutz cha wäge däm nit gänderet wäre. Doo sin di aktuälle Syteschutz-Yystellige fir d Syte '''„$1“:'''",
        "protect-locked-access": "Dys Konto het nid di nötige Rächt, für der Schutzstatus z ändere.\nHie sy di aktuelle Schutzystellige vor Syte '''$1''':",
-       "protect-cascadeon": "Die Syten isch gschützt, wil si {{PLURAL:$1|zur folgende Syte|zu de folgende Syte}} ghört, wo derfür e Kaskadesperrig gilt.\nDer Schutzstatus vo dere Syte lat sech la ändere, aber das het kei Yfluss uf d Kaskadesperrig.",
+       "protect-cascadeon": "Die Syten isch gschützt, wil si i {{PLURAL:$1|der|de}} folgende Syten y’bunden isch, wo derfür e Kaskadesperrig gilt.\nÄnderigen am Schutzstatus vo dere Syte hei kei Yfluss uf d Kaskadesperrig.",
        "protect-default": "Alle Benutzer",
        "protect-fallback": "Nume Benutzer mit dr „$1“-Berächtigung erlaube.",
        "protect-level-autoconfirmed": "Nume automatisch bstetigte Benutzer erlaube",
        "protect-othertime": "Anderi Sperrduur:",
        "protect-othertime-op": "anderi Sperrduur",
        "protect-existing-expiry": "Aktuälls Syteschutzänd: $2, $3 Uhr",
+       "protect-existing-expiry-infinity": "Momentani Ablouffzyt: unbeschränkt",
        "protect-otherreason": "Andere/zuesätzlige Grund:",
        "protect-otherreason-op": "Andere Grund",
        "protect-dropdown": "*Allgmeini Schutzgrind\n** Link-Spam\n** Editwar\n** Vylmol yybundeni Vorlag\n** Syte mit ere hoche Bsuecherzahl",
        "undeletepagetext": "Die {{PLURAL:$1|Syte isch glescht wore un cha|$1 Syte sin glescht wore un chenne}} vu Ammanne widerhärgstellt wäre:",
        "undelete-fieldset-title": "Widerhärstelle",
        "undeleteextrahelp": "* Go d Syte ganz mit allene Versione widerhärzstelle, wehl kei Version us, gib e Begrindig aa un druck uf „{{int:undeletebtn}}“.\n* Mechtsch nume bstimmti Versione widerhärstelle, no wehl die bitte einzeln no dr Markierige us, gib e Begrindig aa un druck derno uf „{{int:undeletebtn}}“..",
-       "undeleterevisions": "{{PLURAL:$1|1 Version|$1 Versione}} archiviert",
+       "undeleterevisions": "$1 {{PLURAL:$1|Version|Versione}} glöscht",
        "undeletehistory": "Wänn Du die Syte widerhärstellsch, wäre au alli alte Versione widerhärgstellt.\nWänn syt dr Leschig e neiji Syte mit em glyche Name aagleit woren isch, no wäre di widerhärgstellte Versione chronologisch in d Versionsgschicht yygordnet.",
        "undeleterevdel": "D Widerhärstellig wird nit durgfiert, wänn di neijscht Version versteckt isch oder s versteckti Teil dinne het.\nIn däm Fall darf di neijscht Version nit markiert wäre oder ihre Status muess uf normali Version gänderet wäre.",
        "undeletehistorynoadmin": "Dä Artikel isch glescht wore. Dr Grund fir d Leschig isch in dr Zämmefassig aagee, derzue au Aagaabe zum letschte Benutzer, wu dä Artikel bearbeitet het vor dr Leschig. Dr aktuäll Täxt vum gleschte Artikel isch nume zuegängli fir Ammanne.",
        "namespace": "Namensruum:",
        "invert": "Uswahl umkehre",
        "tooltip-invert": "Des Chäschtli aaklicke go Änderige im gwehlte Namensruum un, wänn uusgwehlt, im zuegherige Namensruum uusblände",
+       "tooltip-whatlinkshere-invert": "Tue das Chästli abhääggle, für kener Links vo Syten us em usgwählte Namensruum z zeige.",
        "namespace_association": "Zuegordnete Namensruum",
        "tooltip-namespace_association": "Des Chäschtli aaklicke go dr Diskussionsnamensruum oder dr Namesnruum zuesätzlig mityybezie, wu zue Dyre Uuswahl derzue ghert.",
        "blanknamespace": "(Haupt-)",
        "contributions-title": "Benutzerbyytreg vu „$1“",
        "mycontris": "Myyni Byyträg",
        "contribsub2": "Vu {{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "Ds Benutzerkonto «$1» isch nid registriert.",
        "nocontribs": "S sin keini Benutzerbyytreg mit däne Kriterie gfunde wore.",
        "uctop": "(aktuell)",
        "month": "u Monet:",
        "sp-contributions-newbies-sub": "vo nöji Benützer",
        "sp-contributions-newbies-title": "Benutzerbyytreg vu neije Benutzer",
        "sp-contributions-blocklog": "Sperrlogbuech",
+       "sp-contributions-suppresslog": "underdrückti Benutzerbyträg",
        "sp-contributions-deleted": "gleschti Bytreg",
        "sp-contributions-uploads": "Uffegladeni Dateie",
        "sp-contributions-logs": "Logbiecher",
        "sp-contributions-blocked-notice-anon": "Die IP-Adräss isch zur Zyt gsperrt.\nDo chunnt dr aktuäll Yytrag us em Benutzersperr-Logbuech:",
        "sp-contributions-search": "Suech no Benutzerbiträg",
        "sp-contributions-username": "IP-Adress oder Benutzername:",
-       "sp-contributions-toponly": "Nume aktuälli Versione zeige",
+       "sp-contributions-toponly": "Nume Byträg zeige, won en aktuelli Version sy",
+       "sp-contributions-newonly": "Nume Byträg zeige, wo e nöüi Syte hei agleit",
        "sp-contributions-submit": "Sueche",
        "whatlinkshere": "Was verwyst do druff?",
        "whatlinkshere-title": "Sytene, wo uf „$1“ verlinke",
        "autoblockid": "Automatischi Sperrig #$1",
        "block": "Benutzer sperre",
        "unblock": "Benutzer frejgee",
-       "blockip": "Däm Binutzer d Bearbeitigsrächt furtnee",
+       "blockip": "{{GENDER:$1|Benutzer|Benutzerin}} sperre",
        "blockip-legend": "IP-Adräss/Benutzer sperre",
        "blockiptext": "Nimm des Formular go ne Benutzer oder e IP-Adräss sperre.\nDes sott numme erfolge go Vandalismus verhindere un in Ibereinstimmig mit in dr [[{{MediaWiki:Policy-url}}|Leitlinie]]. Bitte gib au ne Grund fi d Sperri aa (z. B. indäm du einzel ni Syte zitiersch, wu vandaliert wore sin).",
        "ipaddressorusername": "IP-Adräss oder Benutzername:",
        "blockipsuccesstext": "Dr Benutzer/d IP-Adräss [[Special:Contributions/$1|$1]] isch gsperrt wore.<br />\nGo d Sperri ufhebe lueg d [[Special:BlockList|Lisch vu allene aktive Sperrine]].",
        "ipb-blockingself": "Du bist grad am Sperre vu Dir sälber! Wettsch des wirkli mache?",
        "ipb-confirmhideuser": "Du bist grad am Sperre vun eme Benutzer im Modus „Benutzer verstecke“. Des fiert derzue, ass dr Benutzername in allne Lischten un Logbiecher unterdruckt wird. Wettsch des wirkli mache?",
+       "ipb-confirmaction": "We du dir sicher bisch, das d’s würklech wosch mache, de tue bitte unde ds Fäld «{{int:ipb-confirm}}» achrüzle.",
        "ipb-edit-dropdown": "Sperrgrind bearbeite",
        "ipb-unblock-addr": "„$1“ frejgee",
        "ipb-unblock": "IP-Adräss/Benutzer frejgee",
        "ipb-blocklist": "Alli aktuälle Sperrine aazeige",
-       "ipb-blocklist-contribs": "Benutzerbyytreg fir „$1“",
+       "ipb-blocklist-contribs": "Benutzerbyträg {{GENDER:$1|vom|vor|vo}} $1",
        "unblockip": "IP-Adräss frejgee",
        "unblockiptext": "Mit däm Formular chasch e IP-Adräss oder e Benutzer frejgee.",
        "ipusubmit": "Die Sperri useneh",
        "unblocked": "[[User:$1|$1]] isch frejgee wore",
        "unblocked-range": "D Sperri fir $1 isch ufghobe",
        "unblocked-id": "Sperr-ID $1 isch freijgee wore",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] isch nümm gsperrt.",
        "blocklist": "Gsperrti Benutzer",
        "ipblocklist": "Gsperrti Benutzer",
        "ipblocklist-legend": "Suech no eme gsperrte Benutzer",
        "change-blocklink": "Sperri ändere",
        "contribslink": "Byträg",
        "emaillink": "E-Mail abschicke",
-       "autoblocker": "Automatischi Sperri, wel Du e gmeinsami IP-Adräss mit [[User:$1|Benutzer:$1]] bruchsch. Grund: „$2“.",
+       "autoblocker": "Automatischi Sperrig, wil dyni IP-Adrässe chürzlech vo [[User:$1|Benutzer:$1]] isch ’bruucht worde. Grund für d Sperrig vo $1: «$2».",
        "blocklogpage": "Sperrigs-Protokoll",
        "blocklog-showlog": "Dää Benutzer isch schon emol gsperrt wore. S Sperrine-Logbuech git s do as Referänz:",
        "blocklog-showsuppresslog": "Dää Benutzer isch schon emol gsperrt wore un syyni Bearbeitige sin uusblädet wore. S Uusbländigs-Logbuech git s do as Referänz:",
        "proxyblockreason": "Dyni IP-Adrässe isch gsperrt wore, wel si ne ufige Proxy isch. Bitte kontaktier Dyyn Internet-Provider oder Dyni Systemadministratore un informier si iber des Sicherheitsproblem.",
        "sorbsreason": "D IP-Adräss isch in dr DNSBL vu {{SITENAME}} as uffige PROXY glischtet.",
        "sorbs_create_account_reason": "D IP-Adräss isch in dr DNSBL vu {{SITENAME}} as uffige PROXY glischtet. S Aalege vu neije Benutzer isch nit megli.",
+       "xffblockreason": "En IP-Adrässen im Header «X-Forwarded-For» isch gsperrt worde, entweder dyni oder die vomene Proxy-Server, wo du bruuchsch. Der ursprünglechi Grund für d Sperrig isch: $1",
        "cant-see-hidden-user": "Dr Benutzer, wu Du versuechsch z sperre, isch scho gsperrt un versteckt wore. Du chasch d Sperri vu däm Benutzer nit säh oder bearbeite, wel du s „hideuser“-Rächt nit hesch.",
        "ipbblocked": "Du chasch keini andere Benutzer sperre oder entsperre, wel Du sälber gsperrt bisch",
        "ipbnounblockself": "Du derfsch di nit sälber entsperre",
        "movepagetalktext": "D Diskussionssyte wird mitverschobe, '''ussert:'''\n*Du verschiebsch d Syten i nen andere Namensruum, oder\n*es git scho ne Diskussionssyte mit däm Namen oder\n*du wählsch unte d Option, se nid z verschiebe.\n\nI söttigne Fäll müessti d Diskussionssyten allefalls vo Hand kopiert wärde.",
        "movearticle": "Artikel verschiebe",
        "moveuserpage-warning": "'''Warnig:''' Du bis am Verschiebe vun ere Benutzersyte. Bitte gib Achtig, ass doderdur nume die Syte verschobe wird, aber dr Benutzer '''nit''' umgnännt wird.",
+       "movecategorypage-warning": "<strong>Obacht:</strong> Du bisch e Kategoriesyten am Verschiebe. Bitte dänk dra, das nume die Syte verschobe wird. D Syte, wo zur alte Kategorie ghöre, wärde <strong>nid</strong> i di nöüi Kategorie verschobe.",
        "movenologintext": "Du muesch e regischtrierte Benutzer syy un Di [[Special:UserLogin|aamälde]] go die Syte verschiebe.",
        "movenotallowed": "Du derfsch kei Syte verschiebe.",
        "movenotallowedfile": "Du derfsch kei Dateie verschiebe.",
        "cant-move-user-page": "Du derfsch kei Benutzersyte verschiebe (mit Usnaam vo Untersyte).",
        "cant-move-to-user-page": "Du derfsch kei Syte uf e Benutzersyte verschiebe (mit Usnaam vo Untersyte).",
+       "cant-move-category-page": "Du hesch nid ds Rächt, Kategoriesyte z verschiebe.",
+       "cant-move-to-category-page": "Du hesch nid ds Rächt, e Syte zunere Kategoriesyte z verschiebe.",
        "newtitle": "Zum nöie Titel",
        "move-watch": "Die Syte beobachte",
        "movepagebtn": "Artikel verschiebe",
        "allmessages-prefix": "Präfixfilter:",
        "allmessages-language": "Sproch:",
        "allmessages-filter-submit": "Gang",
+       "allmessages-filter-translate": "Übersetze",
        "thumbnail-more": "Vergreßere",
        "filemissing": "D Datei fäält",
        "thumbnail_error": "Fähler bir Härstellig vo re Vorschou: $1",
+       "thumbnail_error_remote": "Fälermäldig vo $1:\n$2",
        "djvu_page_error": "DjVu-Syte isch uusserhalb vum Sytebereich",
        "djvu_no_xml": "XML-Date chönne für d DjVu-Datei nüt abgruefe werde",
        "thumbnail-temp-create": "D Datei fir di temporär Miniaturaasicht het nit chenne aagleit wäre.",
        "thumbnail-dest-create": "D Miniaturaasicht het nit chenne an däm Ort gspycheret wäre.",
        "thumbnail_invalid_params": "Ungültigs Thumbnail-Parameter",
+       "thumbnail_toobigimagearea": "Dateiabmässig überschrytet $1",
        "thumbnail_dest_directory": "S Ziilverzeichnis cha nüt erstellt werde",
        "thumbnail_image-type": "Bildtyp wird nit unterstitzt",
        "thumbnail_gd-library": "Uuvollständigi GD-Library-Konfiguration: Funktion $1 fählt",
        "thumbnail_image-missing": "Datei fählt schyns: $1",
+       "thumbnail_image-failure-limit": "Ir letsti het’s z vil misslungnigi Versüech ’gä (mindistens $1), das Vorschoubild z rendere. Bitte versuech’s später wider.",
        "import": "Sytene importiere",
-       "importinterwiki": "Transwiki-Import",
-       "import-interwiki-text": "Wääl e Wiki un e Syte zum Importiere us.\nS Datum vo dr Bearbeitig un dr Benutzername blybe erhalte.\nAlli Transwiki-Import-Aktione werde im [[Special:Log/import|Import-Logbuech]] protokolliert.",
+       "importinterwiki": "Us emnen andere Wiki importiere",
+       "import-interwiki-text": "Wääl e Wiki un e Syte zum Importiere us.\nS Datum vo de Bearbeitige un d Benutzernäme blybe erhalte.\nAlli Import-Aktione us anderne Wiki werde im [[Special:Log/import|Import-Logbuech]] protokolliert.",
+       "import-interwiki-sourcewiki": "Ursprünglechs Wiki:",
+       "import-interwiki-sourcepage": "Ursprünglechi Syte:",
        "import-interwiki-history": "Alli früeneri Versione vo dere Syte importiere",
        "import-interwiki-templates": "Mit allene Vorlage",
        "import-interwiki-submit": "Import",
+       "import-mapping-default": "Zu de Standard-Orten importiere",
+       "import-mapping-namespace": "In e Namensruum importiere:",
+       "import-mapping-subpage": "Als Undersyte vor folgende Syten importiere:",
        "import-upload-filename": "Dateiname:",
        "import-comment": "Grund:",
        "importtext": "Datei iber d Spezialsyte [[Special:Export|Exportfunktion]] us em Quellwiki exportiere.\nDie uf em lokale Rächner spychere un derno do uffelade.",
        "importcantopen": "D Importdatei het nit chenne ufgmacht wäre.",
        "importbadinterwiki": "Falscher Interwiki-Link",
        "importsuccess": "Dr Import isch abgschlosse.",
-       "importnosources": "Für de Transwiki-Import sin kei Quelle definiert worde. Wege dem isch s direkte Ufelade vo Gschichtsversione gsperrt.",
+       "importnosources": "Es isch kes Wiki a’gä worde, wo druus söll importiert wärde, u ds diräkten Ufelade vo Versionsgschichten isch deaktiviert.",
        "importnofile": "Es isch kei Importdatei ufeglade worde.",
        "importuploaderrorsize": "S Ufelade vo dr Importdatei isch misslunge. D Datei isch grösser als erlaubt isch.",
        "importuploaderrorpartial": "S Ufelade vo dr Importdatei isch misslunge. D Datei het numme zum Deil chönne ufeglade werde.",
        "importuploaderrortemp": "S Ufelade vo dr Importdatei isch misslunge. E temporärs Verzeichnis fäält.",
        "import-parse-failure": "Fääler bim XML-Import:",
        "import-noarticle": "Du hesch kei Syte zum importiere aagää!",
-       "import-nonewrevisions": "Es sin scho alli früeneri Versione importiert worde.",
+       "import-nonewrevisions": "Es sy kener Versionen importiert worde (entweder sy si scho alli da gsy oder es het e Fähler ’gä).",
        "xml-error-string": "$1 Zeile $2, Spalte $3, (Byte $4): $5",
        "import-upload": "XML-Date ufelade",
        "import-token-mismatch": "D Sitzigsdate sin verlore gange. Bitte versuech es noo emool.",
        "import-error-create": "Die Syte „$1“ isch nit importiert worde, wyl du nit dezue berächtigt bisch, si z erstelle.",
        "import-error-interwiki": "D Syte „$1“ isch nit importiert wore, wel dr Name vun ere fir externi Link (Interwiki) reserviert isch.",
        "import-error-special": "D Syte „$1“ isch nit importiert wore, wel si zuen eme bsundere Namensruum ghert, wu kei Syte megli sin.",
-       "import-error-invalid": "Syte „$1“ isch nit importiert wore, wel dr Name vun ere nit giltig isch.",
+       "import-error-invalid": "D Syte «$1» isch nid importiert worde, wil der Name, wo si hätt söllen übercho, i däm Wiki nid gültig isch.",
        "import-error-unserialize": "D Version $2 vu dr Syte „$1“ het nit chenne deserialisiert wäre. D Version isch fir d Verwändig vum Inhaltsmodäll $3 gmäldet wore, wu as $4 serialisiert isch.",
+       "import-error-bad-location": "D Version $2 mit em Inhaltsmodäll $3 lat sech i däm Wiki nid under «$1» la spychere, wil das Inhaltsmodäll uf dere Syte nid understützt isch.",
        "import-options-wrong": "Falschi {{PLURAL:$2|Option|Optione}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "Dää Stammsytename isch nit giltig.",
        "import-rootpage-nosubpage": "Im Namensruum „$1“ vu dr Stammsyte sin kei Untersyte erlaubt.",
        "importlogpage": "Import-Logbuech",
        "importlogpagetext": "Adminischtrativer Import vo Sytene mit Versionsgschichte us anderi Wikis.",
-       "import-logentry-upload-detail": "$1 {{PLURAL:$1|Vérsion|Vérsiona}}",
-       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Version|Versione}} vo $2",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|Version|Versionen}} importiert",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Version|Versione}} us $2 importiert",
        "javascripttest": "JavaScript-Tescht",
        "javascripttest-pagetext-noframework": "Die Syte isch reserviert fir JavaSkript-Tescht.",
        "javascripttest-pagetext-unknownframework": "Nit bekannt Framework „$1“.",
+       "javascripttest-pagetext-unknownaction": "Unbekannti Aktion «$1».",
        "javascripttest-pagetext-frameworks": "Bitte eis vu däne Framework uuswehle: $1",
        "javascripttest-pagetext-skins": "Wehl e Benutzeroberflechi uus fir d Durfierig vu dr Tescht:",
        "javascripttest-qunit-intro": "Lueg d [$1 Dokumentation zue Tescht] uf mediawiki.org",
        "tooltip-feed-atom": "Atom-Feed für selli Syte",
        "tooltip-t-contributions": "Lischte vo de Byträg vo däm Benutzer",
        "tooltip-t-emailuser": "Schick däm Benutzer e E-Bost",
+       "tooltip-t-info": "Meh Informationen über die Syte",
        "tooltip-t-upload": "Dateien ufelade",
        "tooltip-t-specialpages": "Lischte vo allne Spezialsyte",
        "tooltip-t-print": "E Version vo dere Syte zum Usdrugge.",
        "pageinfo-length": "Sytelengi (in Byte)",
        "pageinfo-article-id": "Syten-ID",
        "pageinfo-language": "Syteninhaltssproch",
+       "pageinfo-content-model": "Syteninhaltsmodäll",
        "pageinfo-robot-policy": "Indexierig dur Suechmaschine",
        "pageinfo-robot-index": "Erlaubt",
        "pageinfo-robot-noindex": "Nit erlaubt",
        "pageinfo-watchers": "Aazahl vu Beobachter",
+       "pageinfo-visiting-watchers": "Azahl vo dene, wo d Syte beobachten und di letste Bearbeitige hei agluegt",
        "pageinfo-few-watchers": "Weniger wie {{PLURAL:$1|ei|$1}} Beobachter",
+       "pageinfo-few-visiting-watchers": "Es chönnt öpper gä oder ou nid, wo beobachtet und di letste Bearbeitigen am aluegen isch",
        "pageinfo-redirects-name": "Zahl vu dr Wyterleitige zue däre Syte",
        "pageinfo-subpages-name": "Untersyte vu däre Syte",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|Wyterleitig|Wyterleitige}}; $3 {{PLURAL:$3|anderi Syte}})",
        "pageinfo-protect-cascading-yes": "Jo",
        "pageinfo-protect-cascading-from": "Syte mit Kaskadeschutz vu",
        "pageinfo-category-info": "Kategoriinformatione",
+       "pageinfo-category-total": "Gsamti Azahl Mitglider",
        "pageinfo-category-pages": "Aazahl vu dr Syte",
        "pageinfo-category-subcats": "Aazahl vu dr Unterkategorie",
        "pageinfo-category-files": "Aazahl vu dr Dateie",
        "markedaspatrollederrortext": "Du muesch e Syteänderig uswehle.",
        "markedaspatrollederror-noautopatrol": "S isch nit erlaubt, eigeni Bearbeitige as kontrolliert z markiere.",
        "markedaspatrollednotify": "Die Änderig an $1 isch as kontrolliert markiert wore.",
+       "markedaspatrollederrornotify": "D Markierig als kontrolliert isch nid glunge.",
        "patrol-log-page": "Kontroll-Logbuech",
        "patrol-log-header": "Des isch s Kontroll-Logbuech.",
        "log-show-hide-patrol": "Kontroll-Logbuech $1",
+       "log-show-hide-tag": "Markierigs-Logbuech $1",
        "deletedrevision": "alti Version: $1",
        "filedeleteerror-short": "Fähler bi dr Datei-Leschig: $1",
        "filedeleteerror-long": "Bi dr Datei-Leschig sin Fähler feschtgstellt wore:\n\n$1",
        "file-nohires": "Kei höcheri Uflösig verfüegbar.",
        "svg-long-desc": "SVG-Datei, Basisgrößi: $1 × $2 Pixel, Dateigrößi: $3",
        "svg-long-desc-animated": "Animierti SVG-Datei, Basisgreßi $1 × $2 Pixel, Dateigreßi: $3",
+       "svg-long-error": "Ungültigi SVG-Datei: $1",
        "show-big-image": "Originaldatei",
        "show-big-image-preview": "Greßi vu däre Vorschau: $1.",
        "show-big-image-other": "Wyteri {{PLURAL:$2|Ufflösig|Ufflösige}}: $1.",
        "newimages-summary": "Die Spezialsyte zeigt di zletscht uffegladene Dateie aa.",
        "newimages-legend": "Filter",
        "newimages-label": "Dateiname (oder e Teil devu):",
+       "newimages-showbots": "Ufelade vo Bots azeige",
        "noimages": "Kei Dateie gfunde.",
        "ilsubmit": "Suech",
        "bydate": "noch Datum",
        "minutes": "{{PLURAL:$1|1 Minut|$1 Minute}}",
        "hours": "{{PLURAL:$1|1 Stund|$1 Stunde}}",
        "days": "{{PLURAL:$1|1 Tag|$1 Täg}}",
+       "weeks": "{{PLURAL:$1|$1 Wuche}}",
+       "months": "{{PLURAL:$1|$1 Monet|$1 Mönet}}",
+       "years": "{{PLURAL:$1|$1 Jahr}}",
        "ago": "vor $1",
+       "just-now": "grad ersch",
+       "hours-ago": "vor {{PLURAL:$1|eire Stund|$1 Stund}}",
+       "minutes-ago": "vor {{PLURAL:$1|eire Minute|$1 Minute}}",
+       "seconds-ago": "vor {{PLURAL:$1|eire Sekunde|$1 Sekunde}}",
+       "monday-at": "Mäntig um $1",
+       "tuesday-at": "Zystig um $1",
+       "wednesday-at": "Midwuch um $1",
+       "thursday-at": "Donnstig um $1",
+       "friday-at": "Frytig um $1",
+       "saturday-at": "Samstig um $1",
        "sunday-at": "Sunntig am $1",
        "yesterday-at": "Geschtert am $1",
        "bad_image_list": "Format:\n\nNume Zylene, wo mit emne * afö, wärde berücksichtigt.\nNach em * mues zersch e Link zuren Unerwünschte Datei cho.\nWyteri Links uf der glyche Zyle wärden als Usnahme behandlet, wo die Datei trotzdäm darff vorcho.",
        "confirm-watch-top": "Tue die Syten uf dyni Beobachtigslischte.",
        "confirm-unwatch-button": "In Ornig",
        "confirm-unwatch-top": "Nim die Syte us dyre Beobachtungslischte furt.",
+       "quotation-marks": "«$1»",
        "imgmultipageprev": "← vorderi Syte",
        "imgmultipagenext": "nächschti Syte →",
        "imgmultigo": "Gang!",
        "autosumm-replace": "Dr Inhalt vo dr Syte isch ersetzt worde: '$1'",
        "autoredircomment": "E Wyterleitig uf [[$1]] isch erstellt worde",
        "autosumm-new": "Het Syte aagleit mit '$1'",
+       "autosumm-newblank": "Lääri Syten agleit",
        "lag-warn-normal": "Bearbeitige in dr letschte {{PLURAL:$1|Sekund|$1 Sekunde}} wäre in däre Lischt nonig aazeigt.",
        "lag-warn-high": "Wäg ere hoche Datebank-Uslaschtig wäre d Bearbeitige in dr letschte {{PLURAL:$1|Sekund|$1 Sekunde}} in däre Lischt nonig aazeigt.",
        "watchlistedit-normal-title": "D Beobachtigslischt bearbeite",
        "watchlistedit-raw-done": "Dyni Beobachtigslischt isch aktualisiert worde.",
        "watchlistedit-raw-added": "{{PLURAL:$1|ei Ytrag isch|$1 Yträg sin}} dezuedüü worde:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|ei Ytrag isch|$1 Yträg sin}} usegnoo worde:",
+       "watchlistedit-clear-title": "Beobachtigsliste lääre",
+       "watchlistedit-clear-legend": "Beobachtigsliste lääre",
+       "watchlistedit-clear-explain": "Jeden einzel Ytrag wird us der Beobachtigsliste gstriche",
+       "watchlistedit-clear-titles": "Sytenäme:",
+       "watchlistedit-clear-submit": "Beobachtigsliste lääre (Das lat sech nid la rückgängig mache!)",
+       "watchlistedit-clear-done": "Dyni Beobachtigslisten isch gläärt.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|$1 Syten isch|$1 Syte sy}} nümm uf der Beobachtigsliste:",
+       "watchlistedit-too-many": "Es het z vil Syte, für se hie azzeige.",
        "watchlisttools-clear": "Beobachtigsliste lääre",
        "watchlisttools-view": "Beobachtigsliste: Änderige",
        "watchlisttools-edit": "normal bearbeite",
        "watchlisttools-raw": "imene große Textfäld bearbeite",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|Diskussion]])",
        "duplicate-defaultsort": "Obacht: Dr Sortierigsschlüssel „$2“ iberschrybt dr vorig brucht Schlüssel „$1“.",
+       "duplicate-displaytitle": "<strong>Obacht:</strong> Der Azeigtitel «$2» überschrybt der früecher Azeigtitel «$1».",
+       "invalid-indicator-name": "<strong>Fähler:</strong> Ds Attribut <code>name</code> vom Sytestatusindikator darf nid läär sy.",
        "version": "Version",
        "version-extensions": "Installierti Erwyterige",
-       "version-skins": "Benutzeroberflechine",
+       "version-skins": "Installierti Benutzeroberflechine",
        "version-specialpages": "Spezialsyte",
        "version-parserhooks": "Parser-Schnittstelle",
        "version-variables": "Variable",
        "version-hook-name": "Schnittstellename",
        "version-hook-subscribedby": "Ufruef vu",
        "version-version": "($1)",
+       "version-no-ext-name": "[kei Name]",
        "version-license": "Lizänz",
        "version-ext-license": "Lizänz",
        "version-ext-colheader-name": "Erwyterig",
+       "version-skin-colheader-name": "Name",
+       "version-ext-colheader-version": "Version",
        "version-ext-colheader-license": "Lizänz",
        "version-ext-colheader-description": "Bschryybig",
        "version-ext-colheader-credits": "Autore",
        "version-entrypoints": "Yygangspunkt-URL",
        "version-entrypoints-header-entrypoint": "Yygangspunkt",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Installierti Bibliotheke",
+       "version-libraries-library": "Bibliothek",
+       "version-libraries-version": "Version",
+       "version-libraries-license": "Lizänz",
+       "version-libraries-description": "Beschrybig",
+       "version-libraries-authors": "Autor/inne",
        "redirect": "Wyterleitig uf Benutzersyte, Syte, Syteversion oder Datei",
        "redirect-legend": "Wyterleitig uf e Datei oder e Syte",
        "redirect-summary": "Die Spezialsyte leitet wyter uf e Benutzersyte (numerischi Benutzerkännig aagee), Syte (Sytekännig aagee), Syteversion (Versionskännig aagee) oder Datei (Dateiname aagee). Benutzig: [[{{#Special:Redirect}}/user/101]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] oder [[{{#Special:Redirect}}/file/Example.jpg]].",
        "tags-tag": "Markierigsname",
        "tags-display-header": "Benännig uf dr Änderigslischte",
        "tags-description-header": "Vollständigi Bschryybig",
+       "tags-source-header": "Ursprung",
+       "tags-active-header": "Aktiv?",
        "tags-hitcount-header": "Markierti Änderige",
+       "tags-actions-header": "Aktione",
        "tags-active-yes": "Jo",
        "tags-active-no": "Nei",
+       "tags-source-extension": "Von eren Erwyterig definiert",
+       "tags-source-manual": "Manuell vo Benutzer/innen oder Bots ygsetzt",
+       "tags-source-none": "Nümm ’bruucht",
        "tags-edit": "bearbeite",
+       "tags-delete": "lösche",
+       "tags-activate": "aktiviere",
+       "tags-deactivate": "deaktiviere",
        "tags-hitcount": "$1 {{PLURAL:$1|Änderig|Änderige}}",
+       "tags-manage-no-permission": "Du hesch nid ds Rächt, Änderigsmarkierige z verwalte.",
+       "tags-create-heading": "Nöüi Markierig alege",
+       "tags-create-explanation": "Standardmäässig wärde nöüi Markierige zur Verfüegig gstellt, so das se Benutzer/innen und Bots chöü bruuche.",
+       "tags-create-tag-name": "Markierigsname:",
+       "tags-create-reason": "Grund:",
+       "tags-create-submit": "Alege",
+       "tags-create-no-name": "Du muesch e Markierigsnamen agä.",
+       "tags-create-invalid-chars": "Markierigsnäme dörffe kei Kommas (<code>,</code>) oder Schregstriche (<code>/</code>) ha.",
+       "tags-create-invalid-title-chars": "Markierigsnäme dörffe kei Zeiche ha, wo me nid i Sytenäme cha bruuche.",
+       "tags-create-already-exists": "D Markierig «$1» git’s scho.",
+       "tags-create-warnings-above": "Bim Versuech, d Markierig «$1» azlege, het’s di {{PLURAL:$2|folgendi Warnig|folgende Warnige}} ’gä:",
+       "tags-create-warnings-below": "Möchtsch mit em Alege vor Markierig wytermache?",
+       "tags-delete-title": "Markierig lösche",
+       "tags-delete-explanation-initial": "Du bisch drann, d Markierig «$1» us der Datebank z lösche.",
+       "tags-delete-explanation-in-use": "Si wird vo {{PLURAL:$2|eire Version oder eim Logbuechytrag|allne $2 Versionen oder Logbuechyträg}} furtgnoh, wo momentan dermit markiert sy.",
+       "tags-delete-explanation-warning": "Die Aktion isch <strong>für immer</strong> und <strong>lat sech nid la rückgängig mache</strong>, nid emal vo Datebank-Administrator/inne. Bis dir ganz sicher, das es die Markierig isch, wo du wosch lösche.",
+       "tags-delete-explanation-active": "<strong>D Markierig «$1» isch immer no aktiv und blybt ou zuekünftig im Ysatz.</strong> We du das wosch verhindere, de gang die Markierig dört ga deaktiviere, wo si ygsetzt isch.",
+       "tags-delete-reason": "Grund:",
+       "tags-delete-submit": "Markierig für immer lösche",
+       "tags-delete-not-allowed": "Von eren Erwyterig definierti Markierige lö sech nid la lösche, ussert d Erwyterig erloubt’s usdrücklech.",
+       "tags-delete-not-found": "D Markierig «$1» git’s nid.",
+       "tags-delete-too-many-uses": "D Markierig «$1» isch by meh als {{PLURAL:$2|eire Version|$2 Versionen}} ygsetzt. Drum lat si sech nid la lösche.",
+       "tags-delete-warnings-after-delete": "D Markierig «$1» isch erfolgrych glöscht, aber es het di {{PLURAL:$2|folgendi Warnig|folgende Warnige}} ’gä:",
+       "tags-activate-title": "Markierig aktiviere",
+       "tags-activate-question": "Du bisch drann, d Markierig «$1» z aktiviere.",
+       "tags-activate-reason": "Grund:",
+       "tags-activate-not-allowed": "D Markierig «$1» lat sech nid la aktiviere.",
+       "tags-activate-not-found": "D Markierig «$1» git’s nid.",
+       "tags-activate-submit": "Aktiviere",
+       "tags-deactivate-title": "Markierig deaktiviere",
+       "tags-deactivate-question": "Du bisch drann, d Markierig «$1» z deaktiviere.",
+       "tags-deactivate-reason": "Grund:",
+       "tags-deactivate-not-allowed": "D Markierig «$1» lat sech nid la deaktiviere.",
+       "tags-deactivate-submit": "Deaktiviere",
+       "tags-apply-no-permission": "Du hesch nid ds Rächt, Änderige mit Änderigsmarkierige z mache.",
+       "tags-apply-not-allowed-one": "D Markierig «$1» darf me nid vo Hand ysetze.",
+       "tags-apply-not-allowed-multi": "Di {{PLURAL:$2|folgendi Markierig|folgende Markierige}} darf me nid vo Hand ysetze: $1",
+       "tags-update-no-permission": "Du hesch nid ds Rächt, Änderigsmarkierige by einzelne Versionen oder Logbuechyträg yzsetzen oder furtznäh.",
+       "tags-update-add-not-allowed-one": "D Markierig «$1» darf me nid vo Hand ysetze.",
+       "tags-update-add-not-allowed-multi": "Di {{PLURAL:$2|folgendi Markierig|folgende Markierige}} darf me nid vo Hand derzuetue: $1",
+       "tags-update-remove-not-allowed-one": "D Markierig «$1» darf me nid furtnäh.",
+       "tags-update-remove-not-allowed-multi": "Di {{PLURAL:$2|folgendi Markierig|folgende Markierige}} darf me nid vo Hand furtnäh: $1",
+       "tags-edit-title": "Markierige bearbeite",
+       "tags-edit-manage-link": "Markierige verwalte",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Usgwählti Version|Usgwählti Versione}} vo [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Usgwählte Logbuechytrag|Usgwählti Logbuechyträg}}:",
+       "tags-edit-revision-legend": "Markierige by {{PLURAL:$1|dere Versione|allne $1 Versione}} derzuetue oder furtnäh.",
+       "tags-edit-logentry-legend": "Markierige by {{PLURAL:$1|däm Logbuechytrag|allne $1 Logbuechyträg}} derzuetue oder furtnäh.",
+       "tags-edit-existing-tags": "Ygsetzti Markierige:",
+       "tags-edit-existing-tags-none": "''Keini''",
+       "tags-edit-new-tags": "Nöüi Markierige:",
+       "tags-edit-add": "Die Markierige derzuetue:",
+       "tags-edit-remove": "Die Markierige furtnäh:",
+       "tags-edit-remove-all-tags": "(alli Markierige furtnäh)",
+       "tags-edit-chosen-placeholder": "Markierigen ussueche",
+       "tags-edit-chosen-no-results": "Es git ke Markierige, wo passe",
+       "tags-edit-reason": "Grund:",
+       "tags-edit-revision-submit": "Änderige by {{PLURAL:$1|dere Version|$1 Versionen}} usfüere",
+       "tags-edit-logentry-submit": "Änderige by {{PLURAL:$1|däm Logbuechytrag|$1 Logbuechyträg}} usfüere",
+       "tags-edit-success": "D Änderige sy erfolgrych usgfüert.",
+       "tags-edit-failure": "D Änderige hei sech nid la usfüere: $1",
+       "tags-edit-nooldid-title": "Ungültigi Zilversion",
+       "tags-edit-nooldid-text": "Entweder hesch du kei Zilversion a’gä, für die Funktion dermit uszfüere, oder es git di a’gänigi Zilversion nid.",
+       "tags-edit-none-selected": "Bitte suech mindistens ei Markierig uus zum Derzuetue oder Furtnäh.",
        "comparepages": "Syte verglyyche",
        "compare-page1": "Syte 1",
        "compare-page2": "Syte 2",
        "compare-revision-not-exists": "Die Version, wu Du aagee hesch, git s nit.",
        "dberr-problems": "Excusez! Die Seite het im Momänt tächnischi Schwirigkeite.",
        "dberr-again": "Wart e paar Minute un lad derno nej.",
-       "dberr-info": "(Cha kei Verbindig zum Datebank-Server härstelle: $1)",
-       "dberr-info-hidden": "(Cha kei Verbindig zum Datebank-Server härstelle)",
+       "dberr-info": "(Kei Zuegriff uf d Datebank: $1)",
+       "dberr-info-hidden": "(Kei Zuegriff uf d Datebank)",
        "dberr-usegoogle": "Du chenntsch in dr Zwischezyt mit Google sueche.",
        "dberr-outofdate": "Obacht: Dr Suechindex vu unsere Syte chennt veraltet syy.",
        "dberr-cachederror": "Des isch e Kopii vum Cache vu dr Syte, wu Du aagforderet hesch, un chennt veraltet syy.",
        "htmlform-no": "Nei",
        "htmlform-yes": "Jo",
        "htmlform-chosen-placeholder": "Wehl en Option",
+       "htmlform-cloner-create": "Wyteri derzuetue",
+       "htmlform-cloner-delete": "Furtnäh",
+       "htmlform-cloner-required": "Es bruucht mindistens ei Wärt.",
+       "htmlform-title-badnamespace": "[[:$1]] isch nid im Namensruum «{{ns:$2}}».",
+       "htmlform-title-not-creatable": "«$1» isch kei Sytename, wo sech lat la alege",
+       "htmlform-title-not-exists": "[[:$1]] git’s nid.",
+       "htmlform-user-not-exists": "<strong>$1</strong> git’s nid.",
+       "htmlform-user-not-valid": "<strong>$1</strong> isch ke gültige Name.",
        "sqlite-has-fts": "$1 mit Unterstitzig vu dr Volltextsuechi",
        "sqlite-no-fts": "$1 ohni Unterstitzig vu dr Volltextsuechi",
        "logentry-delete-delete": "{{GENDER:$2|Dr|D|}} $1 het d Syte $3 glöscht",
-       "logentry-delete-restore": "$1 het d Syte $3 wiiderhergstellt",
-       "logentry-delete-event": "$1 het die Sichtbarkeit {{PLURAL:$5|vumene Logbuechyytrag|vo $5 Logbuechyyträg}} uff $3: $4 gänderet",
-       "logentry-delete-revision": "$1 het die Sichtbarkeit {{PLURAL:$5|vunere Version|vo $5 Versione}} uff $3: $4 gänderet",
-       "logentry-delete-event-legacy": "$1 het d Sichtbarkeit vo Logbuechyyträg uff $3 gänderet",
-       "logentry-delete-revision-legacy": "$1 het d Sichtbarkeit vo Versione uff $3 gänderet",
-       "logentry-suppress-delete": "$1 het d Syte $3 unterdrückt",
-       "logentry-suppress-event": "$1 het diskret d Sichtbarkeit {{PLURAL:$5|vumene Logbuechyytrag|vo $5 Logbuechyyträg}} uff $3: $4 gänderet",
-       "logentry-suppress-revision": "$1 het diskret d Sichtbarkeit {{PLURAL:$5|vunere Version|vo $5 Versione}} uff $3: $4 gänderet",
-       "logentry-suppress-event-legacy": "$1 het d Sichtbarkeit vo Logbuechyyträg diskret uff $3 gänderet",
-       "logentry-suppress-revision-legacy": "$1 het diskret d Sichtbarkeit vo Versione uff $3 gänderet",
+       "logentry-delete-restore": "{{GENDER:$2|Der $1|D $1|$1}} het d Syte $3 wider härgstellt",
+       "logentry-delete-event": "{{GENDER:$2|Der $1|D $1|$1}} het d Sichtbarkeit {{PLURAL:$5|vumene Logbuechyytrag|vo $5 Logbuechyyträg}} gänderet uff $3: $4",
+       "logentry-delete-revision": "{{GENDER:$2|Der $1|D $1|$1}} het d Sichtbarkeit {{PLURAL:$5|vunere Version|vo $5 Versione}} gänderet uff $3: $4",
+       "logentry-delete-event-legacy": "{{GENDER:$2|Der $1|D $1|$1}} het d Sichtbarkeit vo Logbuechyyträg uff $3 gänderet",
+       "logentry-delete-revision-legacy": "{{GENDER:$2|Der $1|D $1|$1}} het d Sichtbarkeit vo Versione uff $3 gänderet",
+       "logentry-suppress-delete": "{{GENDER:$2|Der $1|D $1|$1}} het d Syte $3 unterdrückt",
+       "logentry-suppress-event": "{{GENDER:$2|Der $1|D $1|$1}} het diskret d Sichtbarkeit {{PLURAL:$5|vumene Logbuechyytrag|vo $5 Logbuechyyträg}} gänderet uff $3: $4",
+       "logentry-suppress-revision": "{{GENDER:$2|Der $1|D $1|$1}} het diskret d Sichtbarkeit {{PLURAL:$5|vunere Version|vo $5 Versione}} gänderet uff $3: $4",
+       "logentry-suppress-event-legacy": "{{GENDER:$2|Der $1|D $1|$1}} het d Sichtbarkeit vo Logbuechyyträg diskret uff $3 gänderet",
+       "logentry-suppress-revision-legacy": "{{GENDER:$2|Der $1|D $1|$1}} het diskret d Sichtbarkeit vo Versione uff $3 gänderet",
        "revdelete-content-hid": "Inhalt versteckt",
        "revdelete-summary-hid": "Bearbeitigszämmefassig versteckt",
        "revdelete-uname-hid": "Benutzername versteckt",
        "revdelete-uname-unhid": "Benutzername freigee",
        "revdelete-restricted": "Yyschränkige gälte au fir Ammanne",
        "revdelete-unrestricted": "Yyschränkige fir Ammanne ufghobe",
+       "logentry-block-block": "{{GENDER:$2|Der $1|D $1|$1}} het {{GENDER:$4|der $3|d $3|$3}} bis $5 gsperrt $6",
+       "logentry-block-unblock": "{{GENDER:$2|Der $1|D $1|$1}} het {{GENDER:$4|der $3|d $3|$3}} entsperrt",
+       "logentry-block-reblock": "{{GENDER:$2|Der $1|D $1|$1}} het {{GENDER:$4|der $3|d $3|$3}} bis $5 gsperrt $6",
+       "logentry-suppress-block": "{{GENDER:$2|Der $1|D $1|$1}} het {{GENDER:$4|der $3|d $3|$3}} bis $5 gsperrt $6",
+       "logentry-suppress-reblock": "{{GENDER:$2|Der $1|D $1|$1}} het d Sperrystellige {{GENDER:$4|füre $3|für d $3|für $3}} bis $5 g’änderet $6",
+       "logentry-import-upload": "{{GENDER:$2|Der $1|D $1|$1}} het $3 importiert per Datei-Ufelade",
+       "logentry-import-interwiki": "{{GENDER:$2|Der $1|D $1|$1}} het $3 vomenen andere Wiki importiert",
+       "logentry-merge-merge": "{{GENDER:$2|Der $1|D $1|$1}} het $3 i $4 zämegfüert (Versione bis $5)",
        "logentry-move-move": "{{GENDER:$2|Dr|D}} $1 het d Seite $3 uf $4 verschobe",
-       "logentry-move-move-noredirect": "$1 het d Syte $3 nooch $4 verschobe ohni e Wyterleitig aazlege",
-       "logentry-move-move_redir": "$1 het d Syte $3 nooch $4 verschobe un het debi e Wyterleitig überschrybe",
-       "logentry-move-move_redir-noredirect": "$1 het d Syte $3 nooch $4 verschobe un het debi e Wyterleitig überschrybe, ohni sälber eini aazlege",
-       "logentry-patrol-patrol": "$1 het Version $4 vo Syte $3 als kontrolliert markiert",
-       "logentry-patrol-patrol-auto": "$1 het Version $4 vo Syte $3 automatisch als kontrolliert markiert",
-       "logentry-newusers-newusers": "Benutzerkonto $1 isch aagleit wore.",
+       "logentry-move-move-noredirect": "{{GENDER:$2|Der $1|D $1|$1}} het d Syte $3 nooch $4 verschobe ohni e Wyterleitig aazlege",
+       "logentry-move-move_redir": "{{GENDER:$2|Der $1|D $1|$1}} het d Syte $3 nooch $4 verschobe un het debi e Wyterleitig überschrybe",
+       "logentry-move-move_redir-noredirect": "{{GENDER:$2|Der $1|D $1|$1}} het d Syte $3 nooch $4 verschobe un het debi e Wyterleitig überschrybe, ohni sälber eini aazlege",
+       "logentry-patrol-patrol": "{{GENDER:$2|Der $1|D $1|$1}} het Version $4 vo Syte $3 als kontrolliert markiert",
+       "logentry-patrol-patrol-auto": "{{GENDER:$2|Der $1|D $1|$1}} het Version $4 vor Syte $3 automatisch als kontrolliert markiert",
+       "logentry-newusers-newusers": "{{GENDER:$2|Benutzerkonto}} $1 isch aagleit wore.",
        "logentry-newusers-create": "Benutzerkonto $1 {{GENDER:$2|isch aagleit wore}}",
-       "logentry-newusers-create2": "Benutzerkonto $3 isch aalgeit wore vu $1",
-       "logentry-newusers-autocreate": "S Benutzerchonto $1 isch automatisch erstellt worde",
-       "logentry-rights-rights": "$1 het d Gruppezuegherigkeit fir $3 vu $4 uf $5 gänderet",
-       "logentry-rights-rights-legacy": "$1 het d Gruppezuegherigkeit fir $3 gänderet",
-       "logentry-rights-autopromote": "$1 isch automatisch vu $4 zue $5 zuegordnet wore",
+       "logentry-newusers-create2": "{{GENDER:$2|Der $1|D $1|$1}} het ds Benutzerkonto $3 agleit",
+       "logentry-newusers-byemail": "{{GENDER:$2|Der $1|D $1|$1}} het ds Benutzerkonto $3 agleit und ds Passwort isch per E-Mail verschickt worde",
+       "logentry-newusers-autocreate": "Ds {{GENDER:$2|Benutzerkonto}} $1 isch automatisch agleit worde",
+       "logentry-protect-move_prot": "{{GENDER:$2|Der $1|D $1|$1}} het d Schutzystellige vo $4 uf $3 verschobe",
+       "logentry-rights-rights": "{{GENDER:$2|Der $1|D $1|$1}} het d Gruppezuegherigkeit fir $3 vu $4 uf $5 gänderet",
+       "logentry-rights-rights-legacy": "{{GENDER:$2|Der $1|D $1|$1}} het d Gruppezuegherigkeit fir $3 gänderet",
+       "logentry-rights-autopromote": "{{GENDER:$2|Der $1|D $1|$1}} isch automatisch vo $4 uf $5 beförderet worde",
        "logentry-upload-upload": "{{GENDER:$2|Dr|D}} $1 het $3 uffeglade",
+       "logentry-upload-overwrite": "{{GENDER:$2|Der $1|D $1|$1}} het e nöüi Version vo $3 ufeglade",
+       "logentry-upload-revert": "{{GENDER:$2|Der $1|D $1|$1}} het $3 ufeglade",
+       "log-name-managetags": "Markierigsverwaltigs-Logbuech",
+       "log-description-managetags": "Uf dere Syte het’s Verwaltigsufgabe für [[Special:Tags|Markierige]]. Ds Logbuech zeigt numen Aktione, wo manuell von ere/emen Administrator/in sy usgfüert worde. D Wiki-Software cha Markierigen alegen oder lösche, ohni das es i däm Logbuech verzeichnet wird.",
+       "logentry-managetags-create": "{{GENDER:$2|Der $1|D $1|$1}} het d Markierig «$4» agleit",
+       "logentry-managetags-delete": "{{GENDER:$2|Der $1|D $1|$1}} het d Markierig «$4» glöscht (us {{PLURAL:$5|eire Version oder eim Logbuechytrag|$5 Versionen oder Logbuechyträg}} furtgnoh)",
+       "logentry-managetags-activate": "{{GENDER:$2|Der $1|D $1|$1}} het d Markierig $4 zum Gebruuch vo Benutzer/innen oder Bots aktiviert",
+       "logentry-managetags-deactivate": "{{GENDER:$2|Der $1|D $1|$1}} het d Markierig $4 zum Gebruuch vo Benutzer/innen oder Bots deaktiviert",
+       "log-name-tag": "Markierigs-Logbuech",
+       "log-description-tag": "Die Syte zeigt [[Special:Tags|Markierige]], wo by einzelne Versionen oder Logbuechyträg äxtra sy derzueta oder furtgnoh worde. Markierige als Teil von ere Bearbeitig, Löschig oder ähnlechen Aktion sy nid ufgfüert.",
+       "logentry-tag-update-add-revision": "{{GENDER:$2|Der $1|D $1|$1}} het d {{PLURAL:$7|Markierig|Markierige}} $6 zur Version $4 vor Syte $3 derzueta.",
+       "logentry-tag-update-add-logentry": "{{GENDER:$2|Der $1|D $1|$1}} het d {{PLURAL:$7|Markierig|Markierige}} $6 zum Logbuechytrag $5 vor Syte $3 derzueta.",
+       "logentry-tag-update-remove-revision": "{{GENDER:$2|Der $1|D $1|$1}} het d {{PLURAL:$9|Markierig|Markierige}} $8 vor Version $4 vor Syte $3 furtgnoh.",
+       "logentry-tag-update-remove-logentry": "{{GENDER:$2|Der $1|D $1|$1}} het d {{PLURAL:$9|Markierig|Markierige}} $8 vom Logbuechytrag $5 vor Syte $3 furtgnoh.",
+       "logentry-tag-update-revision": "{{GENDER:$2|Der $1|D $1|$1}} het d Markierige bir Version $4 vor Syte $3 aktualisiert ({{PLURAL:$7|eini|$6}} derzueta, {{PLURAL:$9|eini|$8}} furtgnoh).",
+       "logentry-tag-update-logentry": "{{GENDER:$2|Der $1|D $1|$1}} het d Markierige bim Logbuechytrag $5 vor Syte $3 aktualisiert ({{PLURAL:$7|eini|$6}} derzueta, {{PLURAL:$9|eini|$8}} furtgnoh).",
        "rightsnone": "(keini)",
        "revdelete-summary": "Zämmefassig",
        "feedback-adding": "Ruggmäldig wird zur Syte dezuegfiegt …",
+       "feedback-back": "Zrügg",
        "feedback-bugcheck": "Schen! Bitte iberprief no, eb s sich doderby nit um e scho [$1 bekannte Fähler] handlet.",
        "feedback-bugnew": "Ich haa s iberprieft. Dr nej Fähler mälde.",
        "feedback-bugornote": "Wän Du detailliert e tächnisch Probläm witt bschryybe, no mäld bitte [$1 ne Fähler].\nSunscht chasch au s eifach Formular unte nutze. Dyy Kommentar wird, zämme mit Dyym Benutzername un dr Version vu Dyym Webbrowser un em Betribssyschtem, uf dr Syte „[$3 $2]“ zuegfiegt.",
        "feedback-cancel": "Abbräche",
        "feedback-close": "Isch gmacht",
+       "feedback-external-bug-report-button": "E technischi Ufgab yreiche",
+       "feedback-dialog-title": "Rückmäldig gä",
+       "feedback-dialog-intro": "Du chasch ds eifache Formular unde bruuche, für’ne Rückmäldig z gä. Dy Kommentar chunt zäme mit dym Benutzernamen uf d Syte «$1».",
+       "feedback-error-title": "Fähler",
        "feedback-error1": "Fäälermäldig: Unbekannts Ergebniss vo de API",
        "feedback-error2": "Fääler: Bearbeitig fehlgschlo",
        "feedback-error3": "Fäälermäldig: Kei Antwort vo de API",
+       "feedback-error4": "Fähler: Der Fähler het sech nid under em a’gänige Titel la spychere",
        "feedback-message": "Noochricht:",
        "feedback-subject": "Beträff:",
        "feedback-submit": "Ruggmäldig abschigge",
+       "feedback-terms": "I bi mer bewusst, das my User Agent exakti Versionen über my Browser und mys Betribssystem enthaltet und zäme mit der Rückmäldig veröffentlecht wird.",
+       "feedback-termsofuse": "I stimme zue, Rückmäldig z liferen i Überystimmig mit de Nutzigsbedingige.",
        "feedback-thanks": "Dankschen. Dyy Ruckmäldig isch uf dr Syte „[$2 $1]“ gspycheret wore.",
+       "feedback-thanks-title": "Merci!",
+       "feedback-useragent": "User Agent:",
        "searchsuggest-search": "Suechi",
        "searchsuggest-containing": "din het s …",
        "api-error-badaccess-groups": "Du derfsch keini Dateie in des Wiki uffelade.",
        "api-error-badtoken": "Intärne Fähler: Dr Token isch fählerhaft.",
        "api-error-copyuploaddisabled": "S Uffelade iber e URL isch uf däm Server deaktiviert.",
        "api-error-duplicate": "S git im Wiki scho {{PLURAL:$1|[$2 ei anderi Datei]|[$2 anderi Dateie]}} mit em glyche Inhalt.",
-       "api-error-duplicate-archive": "Es {{PLURAL:$1|isch scho [$2 e andri Datei]|sin scho [$2 anderi Dateie]}} mit em glyche Inhalt vorhande gsi. {{PLURAL:$1|Si isch|Si sin}} allerdings glöscht worde.",
-       "api-error-duplicate-archive-popup-title": "Doppelti {{PLURAL:$1|Datei, wo scho worde isch|Dateie, wo scho glöscht worde sin}}",
-       "api-error-duplicate-popup-title": "Dopplet vorhandeni {{PLURAL:$1|Datei|Dateie}}",
+       "api-error-duplicate-archive": "Es {{PLURAL:$1|isch scho e andri Datei|sin scho anderi Dateie}} mit em glyche Inhalt vorhande gsi. {{PLURAL:$1|Si isch|Si sin}} allerdings glöscht worde.",
        "api-error-empty-file": "D Datei, wu Du uffeglade hesch, isch läär.",
        "api-error-emptypage": "S isch nit erlaubt, neji lääri Syte aazlege.",
        "api-error-fetchfileerror": "Intärne Fähler: Bim Abruefe vu dr Datei isch e Fähler ufträtte.",
        "api-error-ok-but-empty": "Intärne Fähler: Dr Server reagiert nit.",
        "api-error-overwrite": "S Iberschryybe vun ere Datei, wu s scho git, isch nit erlaubt.",
        "api-error-stashfailed": "Intärne Fähler: Dr Server het kei temporäri Datei chenne spychere.",
+       "api-error-publishfailed": "Interne Fähler: Der Server het di temporäri Datei nid chönne veröffentleche.",
+       "api-error-stasherror": "Bim Ufelade vor Datei het’s e Fähler ’gä.",
+       "api-error-stashedfilenotfound": "Di gspychereti Datei het sech nümm la finde bim Versuech, se vom Spycher ufezlade.",
+       "api-error-stashpathinvalid": "Der Pfad isch ungültig, wo di gspychereti Datei hätt sölle sy.",
+       "api-error-stashfilestorage": "Bim Spychere vor Datei het’s e Fähler ’gä.",
+       "api-error-stashzerolength": "Der Server het d Datei nid chönne spychere, wil si e Lengi vo Null het.",
+       "api-error-stashnotloggedin": "Du muesch di ylogge, für Dateie zum Ufelade chönne z spychere.",
+       "api-error-stashwrongowner": "D Datei ghört nid dir, wo du probiert hesch im Spycher druf zuezgryffe.",
+       "api-error-stashnosuchfilekey": "Der Dateischlüssel git’s nid, wo du probiert hesch im Spycher druf zuezgryffe.",
        "api-error-timeout": "Dr Server het kei antwort gee in dr erwartete Zyt.",
        "api-error-unclassified": "S het e nit bekannte Fähler gee.",
        "api-error-unknown-code": "Nit bekannte Fähler: „$1“",
        "duration-decades": "$1 {{PLURAL:$1|Johrzehnt|Johrzeht}}",
        "duration-centuries": "$1 {{PLURAL:$1|Johrhundert|Johrhundert}}",
        "duration-millennia": "$1 {{PLURAL:$1|Jahrtöusert|Jahrtöusert}}",
+       "rotate-comment": "Bild um $1 {{PLURAL:$1|Grad}} im Uhrzeigersinn ’drähjt.",
+       "limitreport-title": "Parser-Profilingdate:",
+       "limitreport-cputime": "Beaspruchti CPU-Zyt",
+       "limitreport-cputime-value": "{{PLURAL:$1|Ei|$1}} Sekunde",
+       "limitreport-walltime": "Beaspruchti Zyt",
+       "limitreport-walltime-value": "{{PLURAL:$1|Ei|$1}} Sekunde",
+       "limitreport-ppvisitednodes": "Azahl vom Präprozässer bsuechti Chnote",
+       "limitreport-ppgeneratednodes": "Azahl vom Präprozässer generierti Chnote",
+       "limitreport-postexpandincludesize": "Ybindigsgröössi nach em Expandiere",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|Byte}}",
+       "limitreport-templateargumentsize": "Vorlagenargumäntgröössi",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|Byte}}",
+       "limitreport-expansiondepth": "Grösti Expansionstieffi",
+       "limitreport-expensivefunctioncount": "Azahl ufwändigi Parserfunktione",
        "expandtemplates": "Vorlage expandiere",
-       "expand_templates_intro": "In däre Spezialsyte cha Täxt yygee wäre und alli Vorlage in ere wäre rekursiv expandiert. Au Parserfunkione wie <nowiki>{{</nowiki>#language:…}} un Variable wie <nowiki>{{</nowiki>CURRENTDAY}} wäre usgwärtet - faktisch alles was in dopplete gschweifte Chlammere din isch. Des gschiht dur dr Ufruef vu dr jewyylige Parser-Phase in MediaWiki.",
+       "expand_templates_intro": "Die Spezialsyte nimt Text und expandiert alli Vorlage rekursiv, wo drinn stöh.\nSi expandiert ou Parserfunkione wi <code><nowiki>{{</nowiki>#language:…}}</code> und Variable wi <code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nEigetlech expandiert si praktisch alles, wo i dopplete gschweiffte Chlammere steit.",
        "expand_templates_title": "Kontexttitel, fir {{FULLPAGENAME}} etc.:",
        "expand_templates_input": "Yygabfäld:",
        "expand_templates_output": "Ergebnis",
        "expand_templates_xml_output": "XML-Usgab",
+       "expand_templates_html_output": "Usgab i rohem HTML",
        "expand_templates_ok": "Uusfiere",
        "expand_templates_remove_comments": "Kommentar useneh",
        "expand_templates_remove_nowiki": "<nowiki>-Befähl im Ergebnis unterdrucke",
        "expand_templates_generate_xml": "Zeig XML-Parser-Baum",
+       "expand_templates_generate_rawhtml": "Rohs HTML azeige",
        "expand_templates_preview": "Vorschou",
+       "expand_templates_preview_fail_html": "<em>Wil uf {{SITENAME}} rohs HTML aktiviert isch und wil Sitzigsdate sy verlore ’gange, isch d Vorschou zum Schutz vor JavaScript-Agriffe versteckt.</em>\n\n<strong>We das e legitime Versuech für’ne Vorschou isch, de versuech’s bitte nomal.</strong>\nWe’s immer no nid geit, probier di [[Special:UserLogout|abzmälden]] und wider azmälde.",
+       "expand_templates_preview_fail_html_anon": "<em>Wil uf {{SITENAME}} rohs HTML aktiviert isch und wil Sitzigsdate sy verlore ’gange, isch d Vorschou zum Schutz vor JavaScript-Agriffe versteckt.</em>\n\n<strong>We das e legitime Versuech für’ne Vorschou isch, de [[Special:UserLogin|mäld di bitte a]] und versuech’s nomal.</strong>",
+       "pagelanguage": "Uswahl vor Sytesprach",
+       "pagelang-name": "Syte",
+       "pagelang-language": "Sprach",
+       "pagelang-use-default": "Standardsprach bruuche",
+       "pagelang-select-lang": "Sprach ussueche",
+       "right-pagelang": "Sytesprach ändere",
+       "action-pagelang": "d Sytesprach z ändere",
+       "log-name-pagelang": "Sprachänderigs-Logbuech",
+       "log-description-pagelang": "Das isch es Logbuech für Änderige vo Sytesprache.",
+       "logentry-pagelang-pagelang": "{{GENDER:$2|Der $1|D $1|$1}} het d Sytesprach vo $3 vo $4 uf $5 g’änderet.",
+       "default-skin-not-found": "He nu so de! Di vorygstellti Benutzeroberflächi für dys Wiki – definiert under <code dir=\"ltr\">$wgDefaultSkin</code> als <code>$1</code> – steit nid zur Verfüegig.\n\nI dyren Installation het’s schynt’s di {{PLURAL:$4|folgendi Benutzeroberflächi|folgende Benutzeroberflächine}}:\n\n$2\n\nLueg under [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] für Information drüber, wie d’se chasch {{PLURAL:$4|aktiviere|aktivieren und eini dervo chasch vorystelle}}.\n\n; Falls du MediaWiki grad installiert hesch:\n: Müglecherwys hesch es ab git installiert oder mit eren andere Methode diräkt ab em Quellcode. De isch es z erwarte. Probier [https://www.mediawiki.org/wiki/Category:All_skins Benutzeroberflächine us em Verzeichnis vo mediawiki.org] z installiere. Es git mehreri Müglechkeite derzue:\n:* Der [https://www.mediawiki.org/wiki/Download Installierer als tar.gz-Datei] abelade. Är het mehreri Benutzeroberflächinen und Erwyterige derby. Du chasch ds Benutzeroberflächine-Verzeichnis <code>skins/</code> druus use kopiere.\n:* tar.gz-Dateie für einzelni Benutzeroberflächine vo [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] abelade.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git zum Abelade vo MediaWiki-Benutzeroberflächine bruuche].\n: We du e MediaWiki-Entwickler/in bisch, söt’s derby nid zu Konflikte mit dym git repository cho.\n\n; Falls du MediaWiki grad ufe nöüst Stand hesch ’bracht:\n: MediaWiki ab 1.24 aktiviert di installierte Benutzeroberflächine nümm automatisch (lueg [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Für di {{PLURAL:$5|installierti Benutzeroberflächi|installierte Benutzeroberflächine}} z aktiviere, chasch di {{PLURAL:$5|folgendi Zyle|folgende Zyle}} i d Datei <code>LocalSettings.php</code> kopiere:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Falls du grad d Datei <code>LocalSettings.php</code> hesch g’änderet:\n: Lueg genau nache, öb’s vilech Tippfähler het i de Näme vo de Benutzeroberflächine.",
+       "default-skin-not-found-no-skins": "He nu so de! Di vorygstellti Benutzeroberflächi für dys Wiki – definiert under <code dir=\"ltr\">$wgDefaultSkin</code> als <code>$1</code> – steit nid zur Verfüegig.\n\nDu hesch kener Benutzeroberflächinen installiert.\n\n; Falls du MediaWiki grad installiert oder ufe nöüst Stand ’bracht hesch:\n: Müglecherwys hesch es ab git installiert oder mit eren andere Methode diräkt ab em Quellcode. De isch es z erwarte. MediaWiki ab 1.24 het kener Benutzeroberflächinen im Houpt-Repository derby. Probier [https://www.mediawiki.org/wiki/Category:All_skins Benutzeroberflächine us em Verzeichnis vo mediawiki.org] z installiere. Es git mehreri Müglechkeite derzue:\n:* Der [https://www.mediawiki.org/wiki/Download Installierer als tar.gz-Datei] abelade. Är het mehreri Benutzeroberflächinen und Erwyterige derby. Du chasch ds Benutzeroberflächine-Verzeichnis <code>skins/</code> druus use kopiere.\n:* tar.gz-Dateie für einzelni Benutzeroberflächine vo [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] abelade.\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git zum Abelade vo MediaWiki-Benutzeroberflächine bruuche].\n: We du e MediaWiki-Entwickler/in bisch, söt’s derby nid zu Konflikte mit dym Git-Repository cho. Lueg under [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] für Information drüber, wie du Benutzeroberflächi chasch aktivieren und vorystelle.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (aktiviert)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''deaktiviert''')",
+       "mediastatistics": "Statistike zu Dateitype",
+       "mediastatistics-summary": "Statistiken über di ufegladnige Dateitype. Berücksichtiget isch jewyle nume di nöüsti Version von ere Datei. Alti oder glöschti Versione sy nid berücksichtiget.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|Eis|$1}} Byte ($2; $3 %)",
+       "mediastatistics-table-mimetype": "MIME-Typ",
+       "mediastatistics-table-extensions": "Müglechi Erwyterige",
+       "mediastatistics-table-count": "Azahl Dateie",
+       "mediastatistics-table-totalbytes": "Gsamtgröössi",
+       "mediastatistics-header-unknown": "Unbekannt",
+       "mediastatistics-header-bitmap": "Bitmap-Bilder",
+       "mediastatistics-header-drawing": "Zeichnige (Vektorbilder)",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Video",
+       "mediastatistics-header-multimedia": "Rich Media",
+       "mediastatistics-header-office": "Office",
+       "mediastatistics-header-text": "Text",
+       "mediastatistics-header-executable": "Usfüerbari Dateie",
+       "mediastatistics-header-archive": "Komprimierti Dateie",
+       "json-warn-trailing-comma": "Us em JSON {{PLURAL:$1|isch eis aghänkts Komma|sy $1 aghänkti Komma}} furtgnoh worde.",
+       "json-error-unknown": "Es het es Problem mit em JSON ’gä. Fähler: $1",
+       "json-error-depth": "Di maximali Tieffi zum Bygelen isch überschritte",
+       "json-error-state-mismatch": "Ungültigs oder fählerhafts JSON",
+       "json-error-ctrl-char": "Stüürzeichefähler, müglecherwys falschi Kodierig",
+       "json-error-syntax": "Syntax-Fähler",
+       "json-error-utf8": "Ungültigi UTF-8-Zeiche, müglecherwys falschi Kodierig",
+       "json-error-recursion": "Eini oder meh rekursivi Referänzen im Wärt sy z kodiere",
+       "json-error-inf-or-nan": "Eine oder meh NAN- oder INF-Wärte sy z kodiere",
+       "json-error-unsupported-type": "Es isch e Wärt für’ne Typ a’gä worde, wo sech nid lat la kodiere",
+       "headline-anchor-title": "Link zu däm Abschnitt",
        "special-characters-group-latin": "Latynisch",
        "special-characters-group-latinextended": "Latin Extended",
        "special-characters-group-ipa": "IPA",
        "special-characters-group-thai": "Thai",
        "special-characters-group-lao": "Lao",
        "special-characters-group-khmer": "Khmer",
+       "special-characters-title-endash": "Halbgviertstrich",
+       "special-characters-title-emdash": "Gviertstrich",
+       "special-characters-title-minus": "Minus-Zeiche",
+       "mw-widgets-dateinput-no-date": "Keis Datum usgsuecht",
        "mw-widgets-dateinput-placeholder-day": "JJJJ-MM-TT",
-       "mw-widgets-dateinput-placeholder-month": "JJJJ-MM"
+       "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
+       "mw-widgets-titleinput-description-new-page": "d Syte git’s no nid",
+       "mw-widgets-titleinput-description-redirect": "Wyterleitig uf $1"
 }
index 979df18..d476e5a 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}} પર ખાતાની માહિતી",
        "passwordreset-emailtext-ip": "કોઈકે (કદાચ તમોએ , $1 IP એડ્રેસ થી) તમારી વેબસાઈટ {{SITENAME}}  ($4) નો પાસવર્ડ રિસેટ કરવાની રજૂઆત કરી છે. આ ઈમેઈલ એડ્રેસ સાથે {{PLURAL:$3|નું ખાતું|ના ખાતા}} જોડાયેલા છે.\n.\n.\n\n$2\n\n{{PLURAL:$3|આ કામચલાઉ પાસવર્ડ|આ બધા કામચલાઉ પાસવર્ડ}} {{PLURAL:$5|એક દિવસ|$5 દિવસો}} માં નષ્ટ થઇ જશે. તમારે અત્યારે જ ખાતું ખોલીને નવો પાસવર્ડ સેટ કરી લેવો જોઈએ .જો કોઈ બીજા એ આ રજૂઆત કરી હોય, અથવા જો તમને પોતાનો અસલ પાસવર્ડ યાદ હોય, અને તેને બદલવા નથી માગતા, તો આ સંદેશાને જતો કરીને પોતાના અસલ પાસવર્ડ ને વાપરી શકો છો.",
        "passwordreset-emailtext-user": "વેબસાઈટ  {{SITENAME}} ના વપરાશકર્તા $1 એ તમારા {{SITENAME}} ($4) નો પાસવર્ડ રિસેટ કરવાની રજૂઆત કરી છે. આ ઈમેઈલ એડ્રેસ સાથે {{PLURAL:$3|નું ખાતું|ના ખાતા}} જોડાયેલ છે.\n\n$2\n\n{{PLURAL:$3|આ કામચલાઉ પાસવર્ડ|આ બધા કામચલાઉ પાસવર્ડ}} {{PLURAL:$5|એક દિવસ|$5 દિવસ}} માં નષ્ટ થઇ જશે. તમારે અત્યારે જ ખાતું ખોલીને નવો પાસવર્ડ સેટ કરી લેવો જોઈએ .જો કોઈ બીજા એ આ રજૂઆત કરી હોય, અથવા જો તમને પોતાનો અસલ પાસવર્ડ યાદ હોય, અને તેને બદલવા નથી માગતા, તો આ સંદેશાને જતો કરીને પોતાના અસલ પાસવર્ડ ને વાપરી શકો છો..",
-       "passwordreset-emailelement": "વપરાશકર્તા નામ: $1\nકામચલાઉ પાસવર્ડ: $2",
+       "passwordreset-emailelement": "વપરાશકર્તા નામ: \n$1\n\nકામચલાઉ પાસવર્ડ: \n$2",
        "passwordreset-emailsent": "પાસવર્ડ બદલવાનો ઇમેલ મોકલવામાં આવ્યો છે.",
        "passwordreset-emailsent-capture": "પાસવર્ડ બદલવાનો ઇમેલ મોકલવામાં આવ્યો છે, જે નીચે પ્રમાણે છે.",
        "passwordreset-emailerror-capture": "પાસવર્ડ ફરી ગોઠવવા માટેનો ઇમેલ બનાવવામાં આવ્યો છે, જે નીચે પ્રમાણે છે, પરંતુ તે {{GENDER:$2|સભ્ય}}ને મોકલવામાં નિષ્ફળ થયો છે: $1",
        "movepagebtn": "પાનું ખસેડો",
        "pagemovedsub": "પાનું સફળતા પૂર્વક ખસેડવામાં આવ્યું છે",
        "movepage-moved": "'''\"$1\" નું નામ બદલીને \"$2\" કરવામાં આવ્યું છે'''",
-       "movepage-moved-redirect": "દિશાનિર્દેશના રચાયું",
+       "movepage-moved-redirect": "દિશાનિર્દેશ રચાયું",
        "movepage-moved-noredirect": "દિશાનિર્દેશન ટાળવામાં આવ્યું છે",
        "articleexists": "આ નામનું પાનું અસ્તિત્વમાં છે, અથવાતો તમે પસંદ કરેલું નામ અસ્વિકાર્ય છો.\nકૃપા કરી અન્ય નામ પસંદ કરો.",
        "cantmove-titleprotected": "આ સ્થાને તમે પાનું નહીં હટાવી શકો કેમ કે નવું શીર્ષક રચના કરવા પહેલેથી આરક્ષીત છે",
        "api-error-copyuploaddisabled": "આ સર્વર પર URL દ્વારા માહિતી ચઢાવવા પર પ્રતિબંધ",
        "api-error-duplicate": "આ {{PLURAL:$1|is [$2 another file]|are [$2 some other files]}} પહેલેથી સાઈટ પર તેજ માહિતી સાથે મોજૂદ છે.",
        "api-error-duplicate-archive": "ત્યાં {{PLURAL:$1|was [$2 another file]|were [$2 some other files]}} તે જ મહિતી સાથે મોજૂદ છે , પણ {{PLURAL:$1|it was|they were}} હટાવી દો.",
-       "api-error-duplicate-archive-popup-title": "ડ્યુપ્લીકેટ {{PLURAL:$1|ફાઈલ|ફાઈલો}} પહેલેથી મોજુદ છે.",
-       "api-error-duplicate-popup-title": "આબેહુબ અન્ય {{PLURAL:$1|ફાઈલ|ફાઈલો}}.",
        "api-error-empty-file": "તમે ચડાવેલ ફાઈલ ખાલી છે",
        "api-error-emptypage": "નવા ખાલી પાનાં બનાવવાની પરવાનગી નથી.",
        "api-error-fetchfileerror": "આંતરીક ત્રુટી: ફાઈલ લાવતી વખતે અમુક ગડબડ થઈ",
index 46b89e1..8c2d845 100644 (file)
        "resetpass-submit-loggedin": "Caghlaa fockle yn arrey",
        "passwordreset-username": "Dt'ennym ymmydeyr:",
        "passwordreset-email": "Enmys post-L:",
-       "passwordreset-emailelement": "Ennym ymmydeyr: $1\nFockle arrey shallidagh: $2",
+       "passwordreset-emailelement": "Ennym ymmydeyr: \n$1\n\nFockle arrey shallidagh: \n$2",
        "passwordreset-emailsent": "Ta post-l cur gys cooinaghtyn er ny chur dhyt.",
        "passwordreset-emailsent-capture": "Ta post-l cur gys cooinaghtyn er ny chur dhyt, as eshyn heese.",
        "passwordreset-emailerror-capture": "Ta post-l cur gys cooinaghtyn er ny chur dhyt, as eshyn heese, agh cha rosh eh yn ymmydeyr: $1",
index 4cdb75e..3a38c7a 100644 (file)
        "nstab-template": "תבנית",
        "nstab-help": "דף עזרה",
        "nstab-category": "קטגוריה",
+       "mainpage-nstab": "עמוד ראשי",
        "nosuchaction": "אין פעולה כזו",
        "nosuchactiontext": "הפעולה שצוינה בכתובת ה־URL אינה תקינה.\nייתכן שטעית בהקלדת ה־URL, או שהשתמשת בקישור לא נכון.\nייתכן גם שהבעיה נוצרה כתוצאה מבאג בתוכנה המשמשת את {{SITENAME}}.",
        "nosuchspecialpage": "אין דף מיוחד בשם זה",
        "passwordreset-emailtitle": "פרטי חשבון ב{{grammar:תחילית|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "מישהו (ככל הנראה אתם, מכתובת ה־IP מספר $1) ביקש איפוס של\nהסיסמה שלכם ב{{grammar:תחילית|{{SITENAME}}}} ($4). {{PLURAL:$3|חשבון המשתמש הבא שייך|חשבונות המשתמש הבאים שייכים}}\nלכתובת הדואר האלקטרוני הזאת:\n\n$2\n\n{{PLURAL:$3|סיסמה זמנית זו תפקע|סיסמאות זמניות אלה יפקעו}} תוך {{PLURAL:$5|יום|יומיים|$5 ימים}}.\nעליכם להיכנס ולבחור סיסמה חדשה עכשיו. אם מישהו אחר ביצע בקשה זו, או שנזכרתם בסיסמתכם\nהמקורית ואינכם רוצים עוד לשנות אותה, באפשרותכם להתעלם מהודעה זו ולהמשיך להשתמש בסיסמה\nהישנה.",
        "passwordreset-emailtext-user": "{{GENDER:$1|המשתמש|המשתמשת}} $1 ב{{GRAMMAR:תחילית|{{SITENAME}}}} {{GENDER:$1|ביקש|ביקשה}} איפוס של הסיסמה שלכם ב{{GRAMMAR:תחילית|{{SITENAME}}}}\n($4). {{PLURAL:$3|חשבון המשתמש הבא שייך|חשבונות המשתמש הבאים שייכים}} לכתובת הדואר האלקטרוני הזאת:\n\n$2\n\n{{PLURAL:$3|סיסמה זמנית זו תפקע|סיסמאות זמניות אלה יפקעו}} תוך {{PLURAL:$5|יום|יומיים|$5 ימים}}.\nעליכם להיכנס ולבחור סיסמה חדשה עכשיו. אם מישהו אחר ביצע בקשה זו, או שנזכרתם בסיסמתכם\nהמקורית ואינכם רוצים עוד לשנות אותה, באפשרותכם להתעלם מהודעה זו ולהמשיך להשתמש בסיסמה\nהישנה.",
-       "passwordreset-emailelement": "שם משתמש: $1\nסיסמה זמנית: $2",
+       "passwordreset-emailelement": "שם משתמש:\n$1\n\nסיסמה זמנית:\n$2",
        "passwordreset-emailsent": "נשלח דואר אלקטרוני לאיפוס הסיסמה.",
        "passwordreset-emailsent-capture": "נשלח דואר אלקטרוני לאיפוס הסיסמה, והוא מוצג להלן.",
        "passwordreset-emailerror-capture": "נוצר דואר אלקטרוני לאיפוס הסיסמה, והוא מוצג להלן, אך שליחתו ל{{GENDER:$2|משתמש|משתמשת}} נכשלה: $1",
        "changeemail-password": "סיסמה ב{{grammar:תחילית|{{SITENAME}}}}:",
        "changeemail-submit": "שינוי כתובת הדוא\"ל",
        "changeemail-throttled": "ביצעתם ניסיונות רבים מדי להיכנס לחשבון זה.\nאנא המתינו $1 לפני שתנסו שוב.",
+       "changeemail-nochange": "נא להזין כתובת דוא\"ל שונה.",
        "resettokens": "איפוס אסימונים",
        "resettokens-text": "בעמוד זה ניתן לאפס אסימונים שמאפשרים גישה לנתונים פרטיים של החשבון שלך.\n\nרצוי לעשות זאת אם שיתפת אותם בטעות עם אחרים או אם חשבונך נפרץ.",
        "resettokens-no-tokens": "אין אסימונים לאיפוס.",
        "permissionserrorstext-withaction": "אינך מורשה $2, מה{{PLURAL:$1|סיבה הבאה|סיבות הבאות}}:",
        "recreate-moveddeleted-warn": "'''אזהרה: הנכם יוצרים דף חדש שנמחק בעבר.'''\n\nכדאי לשקול אם יהיה זה נכון להמשיך לערוך את הדף.\nיומני המחיקות וההעברות של הדף מוצגים להלן:",
        "moveddeleted-notice": "דף זה נמחק.\nיומני המחיקות וההעברות של הדף מוצגים להלן.",
+       "moveddeleted-notice-recent": "סליחה, הדף הזה נמחק לאחרונה (ב־24 השעות האחרונות).\nיומני המחיקה וההעברה של הדף מוצגים להלן לעיון.",
        "log-fulllog": "הצגת היומן המלא",
        "edit-hook-aborted": "העריכה בוטלה על־ידי Hook.\nלא ניתן הסבר לביטול.",
        "edit-gone-missing": "לא ניתן לעדכן את הדף.\nנראה שהוא נמחק.",
        "api-error-badaccess-groups": "אינך מורשה להעלות קבצים לאתר הוויקי הזה.",
        "api-error-badtoken": "שגיאה פנימית: אסימון שבור.",
        "api-error-copyuploaddisabled": "העלאה לפי כתובת כובתה בשרת זה.",
-       "api-error-duplicate": "כבר יש באתר הוויקי {{PLURAL:$1|[$2 קובץ אחר] בעל|[$2 קבצים אחרים] בעלי}} אותו תוכן.",
-       "api-error-duplicate-archive": "באתר כבר {{PLURAL:$1|היה [$2 קובץ אחר]|היו [$2 קבצים אחרים]}} עם אותו תוכן, אבל {{PLURAL:$1|הוא נמחק|הם נמחקו}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|קובץ כפול שכבר נמחק|קבצים כפולים שכבר נמחקו}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|קובץ כפול|קבצים כפולים}}",
+       "api-error-duplicate": "כבר יש באתר הזה {{PLURAL:$1|קובץ אחר|קבצים אחרים}} עם אותו תוכן.",
+       "api-error-duplicate-archive": "כבר {{PLURAL:$1|היה|היו}} באתר הזה {{PLURAL:$1|קובץ|קבצים}} עם אותו תוכן, אבל {{PLURAL:$1|הוא נמחק|הם נמחקו}}.",
        "api-error-empty-file": "הקובץ ששלחת היה ריק.",
        "api-error-emptypage": "יצירת דפים חדשים ריקים אינה אפשרית.",
        "api-error-fetchfileerror": "שגיאה פנימית: משהו השתבש בזמן אחזור הקובץ.",
index a007245..baf854a 100644 (file)
        "nstab-template": "साँचा",
        "nstab-help": "सहायता पृष्ठ",
        "nstab-category": "श्रेणी",
+       "mainpage-nstab": "मुखपृष्ठ",
        "nosuchaction": "ऐसा कोई कार्य नहीं है",
        "nosuchactiontext": "इस यू॰आर॰एल द्वारा निर्दिष्ट क्रिया अवैध है।\nआपने यू॰आर॰एल गलत लिखा होगा, या किसी गलत कड़ी का प्रयोग किया होगा।\nयह {{SITENAME}} के सॉफ़्टवेयर में त्रुटि भी हो सकती है।",
        "nosuchspecialpage": "ऐसा कोई विशेष पृष्ठ नहीं है",
        "passwordreset-emailtitle": "{{SITENAME}} पर खाते का विवरण",
        "passwordreset-emailtext-ip": "किसी ने (शायद आपने ही, $1 आइ॰पी पते से) {{SITENAME}} ($4) पर अपने {{PLURAL:$3|कूटशब्द|कूटशब्दों}} को रीसेट करने का अनुरोध किया है। इस ई-मेल पते से निम्न {{PLURAL:$3|खाता जुड़ा है|खाते जुड़े हैं}}:\n\n$2\n\n{{PLURAL:$3|यह|ये}} अस्थायी कूटशब्द {{PLURAL:$5|एक दिन|$5 दिनों}} के बाद काम नहीं करेंगे। आपको लॉग इन करके एक नया कूटशब्द अभी चुन लेना चाहिए। यदि यह अनुरोध किसी और ने किया है, या फिर आपको अपना मूल कूटशब्द याद आ गया है, और आप {{PLURAL:$3|अपना|अपने}} कूटशब्द नहीं बदलना चाहते, आप इस संदेश को अनदेखा कर के अपने पुराने कूटशब्द का प्रयोग जारी रख सकते हैं।",
        "passwordreset-emailtext-user": "{{SITENAME}} ($4) पर सदस्य $1 ने आपके {{PLURAL:$3|खाते|खातों}} के कूटशब्द को रीसेट करने का अनुरोध किया है। इस ई-मेल पते से निम्न {{PLURAL:$3|खाता जुड़ा है|खाते जुड़े हैं}}:\n\n$2\n\n{{PLURAL:$3|यह|ये}} अस्थायी कूटशब्द {{PLURAL:$5|एक दिन|$5 दिनों}} के बाद काम नहीं करेंगे।\nआपको लॉग इन करके एक नया कूटशब्द अभी चुन लेना चाहिए। यदि यह अनुरोध किसी और ने किया है, या फिर आपको अपना मूल कूटशब्द याद आ गया है, और आप {{PLURAL:$3|अपना|अपने}} कूटशब्द नहीं बदलना चाहते, आप इस संदेश को अनदेखा कर के अपने पुराने कूटशब्द का प्रयोग जारी रख सकते हैं।",
-       "passwordreset-emailelement": "सदस्यनाम: $1\nअस्थायी कूटशब्द: $2",
+       "passwordreset-emailelement": "सदस्यनाम: \n$1\n\nअस्थायी कूटशब्द: \n$2",
        "passwordreset-emailsent": "एक कूटशब्द रीसेट ई-मेल भेज दिया गया है।",
        "passwordreset-emailsent-capture": "नीचे दिखाया गया कूटशब्द रीसेट ई-मेल भेज दिया गया है।",
        "passwordreset-emailerror-capture": "नीचे दृष्टित कूटशब्द रीसेट ई-मेल उत्पन्न किया गया था, परंतु उसे {{GENDER:$2|सदस्य}} को भेजना असफल रहा।\nत्रुटि: $1",
        "api-error-copyuploaddisabled": "URL द्वारा इस सर्वर पर अपलोड अक्षम है।",
        "api-error-duplicate": "वहाँ {{PLURAL:$1| [ $2 अन्य फ़ाइल] | रहे हैं [ $2 कुछ अन्य फ़ाइलों]}} एक ही सामग्री के साथ साइट पर पहले से ही है.",
        "api-error-duplicate-archive": "वहाँ {{PLURAL:$1|था [$2 कुछ अन्य फ़ाइल] |were [$2 कुछ अन्य फ़ाइलें]}}, पहले से ही {{PLURAL:$1|यह was|they थे}} परन्तु  हटा दिये गये",
-       "api-error-duplicate-archive-popup-title": "डुप्लिकेट {{PLURAL:$1| फ़ाइल | फ़ाइलें}} है कि पहले से ही हटा दिया गया है",
-       "api-error-duplicate-popup-title": "डुप्लिकेट {{PLURAL:$1| फ़ाइल | फ़ाइलें}}",
        "api-error-empty-file": "प्रस्तुत फ़ाइल खाली था।",
        "api-error-emptypage": "नए खाली पृष्ठ बनाने की अनुमति नहीं है।",
        "api-error-fetchfileerror": "आंतरिक त्रुटि: जब फ़ाइल लाया जा रहा तो कुछ गलत हो गया था।",
index 6291572..f5c4f10 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}} me account ke jaankari",
        "passwordreset-emailtext-ip": "Koi (hoe sake aap, IP address $1 se) {{SITENAME}} ($4) pe aap ke account ke baare me jaankari maanga hae. Niche likha gias sadasya ii e-mail se associated hae.  {{PLURAL:$3|account hae|accounts hae}}\n\n$2\n\n{{PLURAL:$3|Ii temporary password|Ii sab temporary passwords}}  {{PLURAL:$5|ek din|$5 din}} me khalaas hoi.\nAap ke chaahi ki aap login kar ke ek nawaa password banao.  Agar aur koi ii request karis hae, nai to agae aap aapan purana paasword ke yaad kar liya hae, tab ii sandes ke baare me bhuul jaao aur purana password use karte raho.",
        "passwordreset-emailtext-user": "\nSadasya $1 {{SITENAME}} pe aap ke account details ke {{SITENAME}} $4 ke khaatir  reminder maagis hae\n NIche ke sadasya {{PLURAL:$3|account hae|accounts hae}} ii e-mail address: $2 se associatied hae\n\n{{PLURAL:$3|Ii temporary password|Ii sab temporary passwords}}  {{PLURAL:$5|ek din|$5 din}} me khalaas hoi.\nAap ke chaahi ki aap login kar ke ek nawaa password banao.  Agar aur koi ii request karis hae, nai to agae aap aapan purana paasword ke yaad kar liya hae, tab ii sandes ke baare me bhuul jaao aur purana password use karte raho.",
-       "passwordreset-emailelement": "Sadasya ke naam: $1\nKuchh din ke khatir password: $2",
+       "passwordreset-emailelement": "Sadasya ke naam: \n$1\n\nKuchh din ke khatir password: \n$2",
        "passwordreset-emailsent": "Aap ke password yaad karae ke khatir ek e-mail ke bhej dewa gais hae.",
        "passwordreset-emailsent-capture": "Ek password yaad karae waala e-mail, jiske niche dekhawa jaawe hae, ke bhej dewa gais hae.",
        "passwordreset-emailerror-capture": "Ek password yaad karae waala e-mail ke banawa gais hae, jiske niche dekhawa jaawe hae, lekin jiske {{GENDER:$2|user}} ke lage bheje nai jawa sake hae: $1",
        "emailuser": "Ii user ke E-mail karo",
        "emailuser-title-target": "Ii {{GENDER:$1|sadasya}} ke E-mail karo",
        "emailuser-title-notarget": "Sadasya ke E-mail karo",
-       "emailpage": "User ke e-mail karo",
        "emailpagetext": "Aap niche ke form ke kaam me laae ke ii {{GENDER:$1|sadasya}} ke e-mail bheje saktaa hae.\nJon e-mail address aap [[Special:Preferences|your user preferences]] me enter karaa rahaa, \"From\" ke e-mail rahii, jisse ki e-mail ke mile waala jan aap ke sidha jawaab de sake hae.",
        "defemailsubject": "{{SITENAME}} e-mail sadasya \"$1\" se",
        "usermaildisabled": "Sadasya ke e-mail ke rok dewa gais hae",
        "api-error-copyuploaddisabled": "Uploading by URL ke ii server me disable kar dewa gais hae.",
        "api-error-duplicate": "There {{PLURAL:$1|is [$2 another file]|are [$2 some other files]}} already on the site with the same content.",
        "api-error-duplicate-archive": "There {{PLURAL:$1|was [$2 another file]|were [$2 some other files]}} already on the site with the same content, but {{PLURAL:$1|it was|they were}} deleted.",
-       "api-error-duplicate-archive-popup-title": "Duplicate {{PLURAL:$1|file that has|files that have}} already been deleted.",
-       "api-error-duplicate-popup-title": "Duplicate {{PLURAL:$1|file|files}}.",
        "api-error-empty-file": "Jon file ke aap submit karaa rahaa, khaali hae.",
        "api-error-emptypage": "Nawaa, khaali panna ke banae ke ijajat nai hae.",
        "api-error-fetchfileerror": "Internal error: File khoje ke time kuch wrong hoe gais hae.",
index ddb95b4..872f935 100644 (file)
        "passwordreset-emailtitle": "Ang mga detalye sang akawnt sa {{SITENAME}}",
        "passwordreset-emailtext-ip": "May tawo nga (mahimo ikaw, halin sa IP adres nga $1) nagpangabay sang pahanumdom sang mga detalye\nsang imo akawnt para sa {{SITENAME}} ($4). Ang masunod nga {{PLURAL:$3|akawnt|mga akawnt}} sang manuggamit\nmay kabahin sa sini nga adres sang e-mail:\n\n$2\n\n{{PLURAL:$3|Ang ini nga temporaryo nga pasword|Ang mga ini nga temporaryo nga pasword}} indi na magamit sa {{PLURAL:$5|isa ka adlaw|$5 ka adlaw}}.\nKinahanglan mo nga magsulod kag magpili sang bag-o nga pasword subong. Kon lain nga tawo ang nagbuhat sini\nnga pagpangabay, ukon nadumduman mo na ang imo pasword, kag indi mo na kinahanglan nga ini\npaga-ilisan, mahimo mo nga pabay-an ang ini nga pahanumdom kag magpadayon sa paggamit sang imo daan nga pasword.",
        "passwordreset-emailtext-user": "Ang manuggamit nga si $1 sa {{SITENAME}} nagpangabay sang pahanumdom sang mga detalye sang imo akawnt para sa {{SITENAME}} \n($4). Ang masunod nga {{PLURAL:$3|akawnt|mga akawnt}} sang manuggamit may kabahin sa sini nga adres sang e-mail:\n\n$2\n\n{{PLURAL:$3|Ang ini nga temporaryo nga pasword|Ang mga ini nga temporaryo nga pasword}} indi na magamit sa {{PLURAL:$5|isa ka adlaw|$5 ka adlaw}}.\nKinahanglan mo nga magsulod kag magpili sang bag-o nga pasword subong. Kon lain nga tawo ang nagbuhat sini\nnga pagpangabay, ukon nadumduman mo na ang imo pasword, kag indi mo na kinahanglan nga ini\npaga-ilisan, mahimo mo nga pabay-an ang ini nga pahanumdom kag magpadayon sa paggamit sang imo daan nga pasword.",
-       "passwordreset-emailelement": "Gamit-pangalan: $1\nTemporaryo nga pasword: $2",
+       "passwordreset-emailelement": "Gamit-pangalan: \n$1\n\nTemporaryo nga pasword: \n$2",
        "passwordreset-emailsent": "May pahanumdom nga e-mail nga ginpadala.",
        "passwordreset-emailsent-capture": "May e-mail nga nagapahanumdum, nga ginapakita sa idalom.",
        "passwordreset-emailerror-capture": "May e-mail nga nagapahanumdom nga ginbuhat, nga ginapakita sa idalom, apang ang pagpadala sa manuggamit indi madinalag-on: $1",
        "uploadnewversion-linktext": "Uplod sang bag-o nga bersiyon sang sini nga file",
        "filedelete-submit": "Panason",
        "randompage": "Bisan ano nga panid",
+       "randomincategory-submit": "Lakat",
        "statistics": "Mga Statistik",
        "brokenredirects-edit": "ilisan",
        "brokenredirects-delete": "panason",
index 104e2f2..b197805 100644 (file)
        "passwordreset-emailtitle": "Pojedinosti o računu na {{SITENAME}}",
        "passwordreset-emailtext-ip": "Netko (vjerojatno Vi, s IP adrese $1) zatražio je podsjetnik za Vaše detalje računa\nza {{SITENAME}} ($4). Sljedeći {{PLURAL:$3|račun suradnika je|računi suradnika su}}\npovezani s ovom e-mail adresom:\n\n$2\n\n{{PLURAL:$3|Ova privremena lozinka|Ove privremene lozinke}} će isteći u {{PLURAL:$5|jedan dan|$5 dana}}.\nTrebate se prijaviti i odabrati novu lozinku. Ukoliko je netko drugi napravio ovaj\nzahtjev, ili ako ste sjeti Vaše izvorne lozinke, a vi je više ne želite promijeniti, \nmožete zanemariti ovu poruku i nastavite koristiti staru lozinku.",
        "passwordreset-emailtext-user": "Suradnik $1 na {{SITENAME}} zatražio podsjetnik o pojedinostima vašeg računa za {{SITENAME}}\n($4). Sljedeći {{PLURAL:$3|račun suradnika je|računi suradnika su}} povezani s ovom e-mail adresom:\n\n$2\n\n{{PLURAL:$3|Ova privremena lozinka|Ove privremene lozinke}} će isteći u {{PLURAL:$5|jedan dan|$5 dana}}.\nTrebate se prijaviti i odabrati novu lozinku. Ukoliko je netko drugi napravio ovaj\nzahtjev, ili ako ste sjeti Vaše izvorne lozinke, a vi je više ne želite promijeniti, \nmožete zanemariti ovu poruku i nastavite koristiti staru lozinku.",
-       "passwordreset-emailelement": "Suradničko ime: $1\nPrivremena lozinka: $2",
+       "passwordreset-emailelement": "Suradničko ime: \n$1\n\nPrivremena lozinka: \n$2",
        "passwordreset-emailsent": "E-mail podsjetnik zaporke je poslan.",
        "passwordreset-emailsent-capture": "Poslan Vam je podsjetnik kao e-pošta (tekst je prikazan dolje).",
        "passwordreset-emailerror-capture": "Napravljena je e-poruka za ponovno postavljanje zaporke (prikazana ispod), ali njeno slanje suradniku nije uspjelo: $1",
        "rows": "Redova",
        "columns": "Stupaca",
        "searchresultshead": "Prikaz rezultata pretrage",
-       "stub-threshold": "Prag za formatiranje poput <a href=\"#\" class=\"stub\">poveznice mrve</a>:",
+       "stub-threshold": "Prag za formatiranje poveznice na mrve ($1):",
        "stub-threshold-disabled": "Onemogućeno",
        "recentchangesdays": "Broj dana prikazanih u nedavnim promjenama:",
        "recentchangesdays-max": "(maksimalno $1 {{PLURAL:$1|dan|dana}})",
        "emailuser": "Pošalji mu e-poruku",
        "emailuser-title-target": "Pošalji poruku {{GENDER:$1|suradniku|suradnici|suradniku}}",
        "emailuser-title-notarget": "Pošalji e-poštu suradniku",
-       "emailpage": "Pošalji e-poštu suradniku",
        "emailpagetext": "Možete koristiti ovaj obrazac za slanje elektroničke pošte {{GENDER:$1|suradniku|suradnici}}.\nE-mail adresa iz Vaših [[Special:Preferences|postavki]] nalazit će se u \"From\" polju poruke i primatelj će Vam moći izravno odgovoriti.",
        "defemailsubject": "{{SITENAME}} e-mail od suradnika \"$1\"",
        "usermaildisabled": "Suradnička e-pošta je onemogućena",
        "api-error-copyuploaddisabled": "Postavljanje datoteka putem URL-a nije omogućeno na ovom projektu.",
        "api-error-duplicate": "{{PLURAL:$1|Postoji [$2 druga datoteka]|Postoje $1 [$2 druge datoteke]|Postoji $1 [$2 drugih datoteka]}} istog sadržaja.",
        "api-error-duplicate-archive": "{{PLURAL:$1|Postojala je [$2 druga datoteka]|Postojale su [$2 neke druge datoteke]|Postojalo je [$2 nekih drugih datoteka]}} na projektu s istim sadržajem, ali {{PLURAL:$1|je obrisana|su obrisane}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Dupla datoteka|Duple datoteke}} koje su ranije obrisane.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|$1 dupla datoteka|$1 duple datoteke|$1 duplih datoteka}}.",
        "api-error-empty-file": "Datoteka koju ste poslali je prazna.",
        "api-error-emptypage": "Stvaranje praznih novih stranica nije dopušteno.",
        "api-error-fetchfileerror": "Interna pogrješka: Pojavio se neki problem pri dobivanju podataka o datoteci.",
index 5a2d9f3..d447208 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Paul Beppler",
-                       "Midnight Gambler"
+                       "Midnight Gambler",
+                       "Macofe"
                ]
        },
        "tog-underline": "Links (Verbinnunge) unnerstreiche:",
        "passwordreset-emailtitle": "Benutzerkontoinformatione uff {{SITENAME}}",
        "passwordreset-emailtext-ip": "Jemand mit der IP-Adress $1, wahrscheinlich du sellebst, hot en Zurücksetzung von dein Passworts bei {{SITENAME}} oongefordert ($4). {{PLURAL:$3|Das follichend Benutzerkonto ist|Die follichende Benutzerkonte sind}}\nmit der E-Mail-Adress verknüpft:\n\n$2\n\n{{PLURAL:$3|Das temporär Passwort looft|Die temporäre Passwörter loofe}} innerhalb von {{PLURAL:$5|em Tooch|$5 Tooche}} ab.\nDu sollst dich oonmelde und en neies Passwort vergewe. Falls jemand annres die Oonfroch getätigt hot orrer du dich wieder an dein ursprüngliches Passwort erinnre kannst und das netmeh\nännre möchst, kannst du die Nachricht ignoriere und weiterhin dein altes\nPasswort benutze.",
        "passwordreset-emailtext-user": "Benutzer $1 bei {{SITENAME}} hot en Zurücksetzung von dein Passwort bei {{SITENAME}} oongefordert ($4). {{PLURAL:$3|Das follichend Benutzerkonto ist|Die follichend Benutzerkonte sind}} mit der E-Mail-Adress verknüpft:\n\n$2\n\n{{PLURAL:$3|Das temporär Passwort looft|Die temporäre Passwörter loofe}} innerhalb von {{PLURAL:$5|em Tooch|$5 Tooche}} ab. Du sollst dich oonmelde und en neies Passwort vergewe. Falls jemand annres die Oonfroch getäticht hot orrer du dich wieder an den ursprüngliches Passwort erinnre kannst und das net ännre möchst, kannst du die Nachricht ignoriere und weiterhin dein altes Passwort benutze.",
-       "passwordreset-emailelement": "Benutzernoome: $1\nTemporäres Passwort: $2",
+       "passwordreset-emailelement": "Benutzernoome: \n$1\n\nTemporäres Passwort: \n$2",
        "passwordreset-emailsent": "En Passwortzurücksetzung-E-Mail woard versandt.",
        "passwordreset-emailsent-capture": "En Passwortzurücksetzung-E-Mail woard versandt, die unne oongezeicht weard.",
        "passwordreset-emailerror-capture": "Die unne oongezeichte Passwortzurücksetzungs-E-Mail woard generiert, awer der Versand an {{GENDER:$2|den Benutzer|die Benutzrin}} ist gescheitert: $1",
        "emailuser": "E-Mail an den Benutzer",
        "emailuser-title-target": "E-Mail an {{GENDER:$1|den Benutzer|die Benutzrin}} schicke",
        "emailuser-title-notarget": "E-Mail an Benutzer",
-       "emailpage": "E-Mail an Benutzer",
        "emailpagetext": "Du kannst {{GENDER:$1|dem Benutzer|der Benutzrin}} mit dem do unne stehnde Formular en E-Mail schicke.\nAls Absender weard die E-Mail-Adress aus deine [[Special:Preferences|Einstellunge]] ingetrooht, damit {{GENDER:$1|der Benutzer|die Benutzrin}} dir direkt antworte kann.",
        "defemailsubject": "{{SITENAME}} – E-Mail von Benutzer \"$1\"",
        "usermaildisabled": "E-Mail-Empfang deaktiviert",
        "api-error-badtoken": "Interner Fehler: Der Token ist fehlerhaft.",
        "api-error-copyuploaddisabled": "Das Hochloode doorrich URL woard uff dem Server deaktiviert.",
        "api-error-duplicate": "Do gebts im Wiki schon {{PLURAL:$1|[$2 en anner Datei]|[$2 mehrre andere Dateie]}} mit dem gleiche Inhalt.",
-       "api-error-duplicate-archive": "Es {{PLURAL:$1|war schon [$2 annre Datei]|woore schon [$2 annre Dateie]}} mit dem gleiche Inhalt voarhand. {{PLURAL:$1|Sie woard|Sie woorre}} awer abgewischt.",
-       "api-error-duplicate-archive-popup-title": "Doppelt {{PLURAL:$1|Datei, wo schon abgewischt woard|Dateie, wo sochon abgewischt worre}}",
-       "api-error-duplicate-popup-title": "Doppelt vorhandne {{PLURAL:$1|Datei|Dateie}}",
+       "api-error-duplicate-archive": "Es {{PLURAL:$1|war schon annre Datei|woore schon annre Dateie}} mit dem gleiche Inhalt voarhand. {{PLURAL:$1|Sie woard|Sie woorre}} awer abgewischt.",
        "api-error-empty-file": "Die hochgeloodne Datei woor leer.",
        "api-error-emptypage": "Es ist net erlaubt, neie leere Seite erstelle.",
        "api-error-fetchfileerror": "Interner Fehler: Bei dem Datei abrufe ist en Fehler uffgetret.",
index fa9ce16..359b2a4 100644 (file)
        "passwordreset-emailtitle": "Kontowe podrobnosće na {{GRAMMAR:lokatiw|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "Něchtó (najskerje ty, z IP-adresu $1) je anulowanje hesła za {{GRAMMAR:akuzatiw|{{SITENAME}}}} požadał ($4).  {{PLURAL:$3|Slědowace wužiwarske konto je|Slědowacej wužiwarskej konće stej|Slědowace wužiwarske konta su}} z tutej e-mejlowej adresu {{PLURAL:$3|zwjazane|zwjazanej|zwjazane}}:\n\n$2\n\n{{PLURAL:$3|Tute nachwilne hesło spadnje|Tutej nachwilnej hesle spadnjetej|Tute nachwilne hesła spadnu}} za {{PLURAL:$5|jedyn dźeń|$5 dnjej|$5 dny|$5 dnjow}}.\nTy měł so nětko přizjewić a nowe hesło wubrać. Jeli něchtó druhi je tute naprašowanje pósłał, abo jeli sy so zaso na prěnjotne hesło dopomnił a wjace nochceš jo změnić, móžeš tutu zdźělenku ignorować a swoje stare hesło dale wužiwać.",
        "passwordreset-emailtext-user": "Wužiwar $1 na {{GRAMMAR:lokatiw|{{SITENAME}}}} je anulowanje twojeho hesła za {{GRAMMAR:akuzatiw|{{SITENAME}}}} požadał ($4).  {{PLURAL:$3|Slědowace wužiwarske konto je|Slědowacej wužiwarskej konće stej|Slědowace wužiwarske konta su}} z tutej e-mejlowej adresu {{PLURAL:$3|zwjazane|zwjazanej|zwjazane}}:\n\n$2\n\n{{PLURAL:$3|Tute nachwilne hesło spadnje|Tutej nachwilnej hesle spadnjetej|Tute nachwilne hesła spadnu}} za {{PLURAL:$5|jedyn dźeń|$5 dnjej|$5 dny|$5 dnjow}}.\nTy měł so nětko přizjewić a nowe hesło wubrać. Jeli něchtó druhi je tute naprašowanje pósłał, abo jeli sy so zaso na prěnjotne hesło dopomnił a wjace nochceš jo změnić, móžeš tutu zdźělenku ignorować a swoje stare hesło dale wužiwać.",
-       "passwordreset-emailelement": "Wužiwarske mjeno: $1\nNachwilne hesło: $2",
+       "passwordreset-emailelement": "Wužiwarske mjeno: \n$1\n\nNachwilne hesło: \n$2",
        "passwordreset-emailsent": "E-mejl za anulowanje hesło je so pósłała.",
        "passwordreset-emailsent-capture": "E-mejl za anulowanje hesła je so pósłała, kotraž so deleka pokazuje.",
        "passwordreset-emailerror-capture": "E-mejl za anulowanje hesła je so wutworiła, kotraž so deleka pokazuje, ale słanje {{GENDER:$2|wužiwarjej|wužiwarce}} je so njeporadźiło: $1",
        "api-error-copyuploaddisabled": "Nahrawanje přez URL je na tutym serwerje znjemóžnjene.",
        "api-error-duplicate": "{{PLURAL:$1|Je|Stej|Su|Je}} hižo {{PLURAL:$1|[$2 druha dataja]|[$2 druhej dataji]|[$2 druhe dataje]|[$2 druhich datajow]}} ze samsnym wobsahom na sydle",
        "api-error-duplicate-archive": "{{PLURAL:$1|Bě [$2 druha dataja]|Běštej [$2 druhej dataji]|Běchu [$2 druhe dataje]|Bě [$2 druhich datajow]}} hižo na websydle ze samsnym wobsahom, ale {{PLURAL:$1|je so zhašała|stej so zhašałoj|su so zhašeli|je so zhašało}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Dwójna dataja, kotraž je|Dwójnej dataji, kotrejž stej|Dwójne dataje, kotrež su|Dwójne dataje, kotrež su}} so hižo {{PLURAL:$1|zhašała|zhašałoj|zhašeli|zhašeli}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Dwójna dataja|Dwójnej dataji|Dwójne dataje|Dwójne dataje}}",
        "api-error-empty-file": "Dataja, kotruž sy nahrał, je prózdna.",
        "api-error-emptypage": "Wutworjenje nowych, prózdnych stronow njeje dowolene.",
        "api-error-fetchfileerror": "Nutřkowny zmylk: při wobstarowanju dataje je so něšto nimokuliło.",
index ab23553..8779d9c 100644 (file)
@@ -38,7 +38,8 @@
                        "ViDam",
                        "Adam78",
                        "Grin",
-                       "Macofe"
+                       "Macofe",
+                       "Nyuszika7H"
                ]
        },
        "tog-underline": "Hivatkozások aláhúzása:",
        "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-emailtext-user": "$1 felhasználó jelszó-visszaállítást kért 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: $1\nIdeiglenes jelszó: $2",
+       "passwordreset-emailelement": "Felhasználónév: \n$1\n\nIdeiglenes jelszó: \n$2",
        "passwordreset-emailsent": "Jelszó-visszaállító e-mail elküldve.",
        "passwordreset-emailsent-capture": "Az alább látható jelszó-visszaállító e-mail lett elküldve.",
        "passwordreset-emailerror-capture": "A jelszó-visszaállító e-mail generálása megtörtént, mint az alább látszik, de elküldése a {{GENDER:$2|szerkesztőnek}} nem sikerült: $1",
        "spam_reverting": "Visszatérés a $1 lapra mutató hivatkozásokat nem tartalmazó utolsó változathoz",
        "spam_blanking": "Az összes változat tartalmazott a $1 lapra mutató hivatkozásokat, kiürítés",
        "spam_deleting": "Minden változat tartalmazott $1-re mutató hivatkozást, törlöm",
-       "simpleantispam-label": "Spam elleni ellenőrzés.\n'''NE''' töltsd ezt ki!",
+       "simpleantispam-label": "Spam elleni ellenőrzés.\n<strong>NE</strong> töltsd ezt ki!",
        "pageinfo-title": "Információk a(z) „$1” lapról",
        "pageinfo-not-current": "Sajnáljuk, de lehetetlen információt nyújtani a régi verziókhoz.",
        "pageinfo-header-basic": "Alapinformációk",
        "api-error-badtoken": "Belső hiba: hibás token.",
        "api-error-copyuploaddisabled": "Az URL-címes feltöltés nem engedélyezett ezen a kiszolgálón.",
        "api-error-duplicate": "Már van {{PLURAL:$1|egy|néhány}} [$2 másik fájl] az oldalon ugyanilyen tartalommal",
-       "api-error-duplicate-archive": "Az oldalon {{PLURAL:$1|szerepelt|szerepeltek}} [$2 más {{PLURAL:$1|fájl|fájlok}}] is ugyanezzel a tartalommal, de törölve {{PLURAL:$1|lett|lettek}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Az azonos fájl, ami törölve lett|Azonos fájlok, amik törölve lettek}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Duplikátum|Duplikátumok}}",
+       "api-error-duplicate-archive": "Az oldalon {{PLURAL:$1|szerepelt|szerepeltek}} más {{PLURAL:$1|fájl|fájlok}} is ugyanezzel a tartalommal, de törölve {{PLURAL:$1|lett|lettek}}.",
        "api-error-empty-file": "Az általad elküldött fájl üres volt.",
        "api-error-emptypage": "Új, üres lap létrehozása nem engedélyezett.",
        "api-error-fetchfileerror": "Belső hiba: valami baj történt a fájl beolvasása közben.",
index da0f648..45da113 100644 (file)
        "passwordreset-domain": "Դոմեն՝",
        "passwordreset-email": "Էլ-փոստի հասցեն՝",
        "passwordreset-emailtitle": "{{SITENAME}} հաշվի մանրամասները",
-       "passwordreset-emailelement": "Մասնակցային անունը՝ $1\nԺամանակավոր գաղտնաբառը՝ $2",
+       "passwordreset-emailelement": "Մասնակցային անունը՝ \n$1\n\nԺամանակավոր գաղտնաբառը՝ \n$2",
        "passwordreset-emailsent": "Ուղարկվեց հիշեցնող էլ․ նամակ։",
        "passwordreset-emailsent-capture": "Ուղարկվեց հիշեցնող էլ․ նամակ։ Այն ներկայացված է ստորև։",
        "passwordreset-emailerror-capture": "Ուղարկվեց հիշեցնող էլ․ նամակ։ Այն ներկայացված է ստորև։ Սակայն մասնակցին ուղարկելը չհաջողվեց․",
        "deletereasonotherlist": "Ուրիշ պատճառ",
        "deletereason-dropdown": "*Ջնջման տարածված պատճառներ\n** Հեղինակի խնդրանքով\n** Հեղինակային իրավունքների խախտում\n** Վանդալություն",
        "delete-edit-reasonlist": "Խմբագրել ջնջման պատճառները",
+       "deleting-backlinks-warning": "'''Զգուշացում''', ձեր կողմից ջնջվող էջին հղվում են [[Special:WhatLinksHere/{{FULLPAGENAME}}|այլ հոդվածներ]]:",
        "rollback": "Հետ գլորել խմբագրումները",
        "rollbacklink": "հետ գլորել",
        "rollbacklinkcount": "հետ գլորել $1 {{PLURAL:$1|խմբագրում}}",
index 70d8aa0..de0be0e 100644 (file)
        "nstab-template": "Patrono",
        "nstab-help": "Pagina de adjuta",
        "nstab-category": "Categoria",
+       "mainpage-nstab": "Pagina principal",
        "nosuchaction": "Non existe tal action",
        "nosuchactiontext": "Le action specificate in le adresse URL non es valide.\nEs possibile que tu ha mal entrate le URL o sequite un ligamine incorrecte.\nIsto poterea equalmente indicar un defecto in le software usate per {{SITENAME}}.",
        "nosuchspecialpage": "Pagina special invalide",
        "passwordreset-emailtitle": "Detalios del conto in {{SITENAME}}",
        "passwordreset-emailtext-ip": "Un persona (probabilemente tu, ab le adresse IP $1) requestava le reinitialisation de tu\ncontrasigno de {{SITENAME}} ($4). Le {{PLURAL:$3|conto|contos}} de usator sequente es\nassociate con iste adresse de e-mail:\n\n$2\n\nIste {{PLURAL:$3|contrasigno|contrasignos}} temporari expirara post {{PLURAL:$5|un die|$5 dies}}.\nTu deberea ora aperir session e eliger un nove contrasigno. Si un altere persona faceva iste\nrequesta, o si tu te ha rememorate tu contrasigno original e non plus\nvole cambiar lo, tu pote ignorar iste message e continuar a usar le ancian\ncontrasigno.",
        "passwordreset-emailtext-user": "Le usator $1 in {{SITENAME}} requestava un reinitialisation de tu contrasigno in {{SITENAME}}\n($4). Le {{PLURAL:$3|conto|contos}} de usator sequente es associate con iste adresse de e-mail:\n\n$2\n\nIste {{PLURAL:$3|contrasigno|contrasignos}} temporari expirara post {{PLURAL:$5|un die|$5 dies}}.\nTu deberea ora aperir session e eliger un nove contrasigno. Si un altere persona faceva iste\nrequesta, o si tu te ha rememorate tu contrasigno original e non plus\nvole cambiar lo, tu pote ignorar iste message e continuar a usar le ancian\ncontrasigno.",
-       "passwordreset-emailelement": "Nomine de usator: $1\nContrasigno temporari: $2",
+       "passwordreset-emailelement": "Nomine de usator: \n$1\n\nContrasigno temporari: \n$2",
        "passwordreset-emailsent": "Un message de e-mail pro le reinitialisation del contrasigno ha essite inviate.",
        "passwordreset-emailsent-capture": "Un message de e-mail pro le reinitialisation del contrasigno ha essite inviate; iste message es monstrate hic infra.",
        "passwordreset-emailerror-capture": "Un e-mail pro le reinitialisation del contrasigno ha essite generate; iste message es monstrate hic infra, ma le invio al {{GENDER:$2|usator}} ha fallite: $1",
        "changeemail-password": "Contrasigno de {{SITENAME}}:",
        "changeemail-submit": "Cambiar e-mail",
        "changeemail-throttled": "Tu ha facite troppo de tentativas de aperir session.\nPer favor attende $1 ante de probar lo novemente.",
+       "changeemail-nochange": "Per favor entra un altere nove adresse de e-mail.",
        "resettokens": "Reinitialisar indicios",
        "resettokens-text": "Hic tu pote reinitialisar le indicios que permitte le accesso a certe datos private associate a tu conto.\n\nTu deberea facer lo si tu los ha accidentalmente dividite con un altere persona o si tu conto ha essite compromittite.",
        "resettokens-no-tokens": "Il non ha indicios a reinitialisar.",
        "permissionserrorstext-withaction": "Tu non ha le permission de $2, pro le sequente {{PLURAL:$1|motivo|motivos}}:",
        "recreate-moveddeleted-warn": "'''Attention: Tu es sur le puncto de recrear un pagina que ha essite delite anteriormente.'''\n\nTu deberea considerar si il es appropriate continuar a modificar iste pagina.\nEcce le registro de deletiones e de renominationes pro iste pagina:",
        "moveddeleted-notice": "Iste pagina ha essite delite.\nIn basso se revela le registro de deletiones e de modificationes del pagina pro ulterior informationes.",
+       "moveddeleted-notice-recent": "Regrettabilemente iste pagina ha essite delite (in le ultime 24 horas).\nLe registro de deletion e renomination pro le pagina es fornite hic infra pro vostre information.",
        "log-fulllog": "Vider le registro complete",
        "edit-hook-aborted": "Modification abortate per un extension.\nNulle explication disponibile.",
        "edit-gone-missing": "Impossibile actualisar le pagina.\nPare que illo ha essite delite.",
        "booksources-text": "Infra es un lista de ligamines a altere sitos que vende libros nove e usate, e pote etiam haber altere informationes super libros que tu cerca:",
        "booksources-invalid-isbn": "Le ISBN date non pare esser valide; verifica que tu non ha facite errores copiante lo del fonte original.",
        "specialloguserlabel": "Executor:",
-       "speciallogtitlelabel": "Objectivo (titulo o usator):",
+       "speciallogtitlelabel": "Objectivo (titulo o {{ns:user}}:nomine de usator):",
        "log": "Registros",
        "all-logs-page": "Tote le registros public",
        "alllogstext": "Presentation combinate de tote le registros disponibile de {{SITENAME}}.\nPro restringer le presentation, selige un typo de registro, le nomine de usator (sensibile al majusculas e minusculas), o le pagina in question (etiam sensibile al majusculas e minusculas).",
        "tooltip-ca-nstab-main": "Vider le pagina de contento",
        "tooltip-ca-nstab-user": "Vider le pagina de usator",
        "tooltip-ca-nstab-media": "Vider le pagina de media",
-       "tooltip-ca-nstab-special": "Isto es un pagina special, tu non pote modificar le pagina mesme",
+       "tooltip-ca-nstab-special": "Isto es un pagina special e non pote esser modificate",
        "tooltip-ca-nstab-project": "Vider le pagina de projecto",
        "tooltip-ca-nstab-image": "Vider le pagina del file",
        "tooltip-ca-nstab-mediawiki": "Vider le message del systema",
        "api-error-badaccess-groups": "Tu non ha le permission de incargar files in iste wiki.",
        "api-error-badtoken": "Error interne: indicio invalide.",
        "api-error-copyuploaddisabled": "Le incargamentos per URL es disactivate in iste servitor.",
-       "api-error-duplicate": "Existe jam [$2 {{PLURAL:$1|un altere file|altere files}}] in le wiki con le mesme contento.",
-       "api-error-duplicate-archive": "Il habeva jam {{PLURAL:$1|[$2 un altere file]|[$2 altere files]}} in le sito con le mesme contento, ma {{PLURAL:$1|illo|illos}} ha essite delite.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|File|Files}} duplicate que ha jam essite delite",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|File|Files}} duplicate",
+       "api-error-duplicate": "Existe jam {{PLURAL:$1|un altere file|altere files}} in le wiki con le mesme contento.",
+       "api-error-duplicate-archive": "Il habeva jam {{PLURAL:$1|un altere file|altere files}} in le sito con le mesme contento, ma {{PLURAL:$1|illo|illos}} ha essite delite.",
        "api-error-empty-file": "Le file que tu submitteva es vacue.",
        "api-error-emptypage": "Le creation de nove paginas vacue non es permittite.",
        "api-error-fetchfileerror": "Error interne: qualcosa errava durante le obtention del file.",
index 2c0aa8d..6c9cedf 100644 (file)
        "passwordreset-emailtitle": "Detail akun di {{SITENAME}}",
        "passwordreset-emailtext-ip": "Seseorang (mungkin Anda, dari alamat IP $1) meminta pengingat\ndetail akun untuk {{SITENAME}} ($4). {{PLURAL:$3|Akun|Akun-akun}} berikut\nterkait dengan alamat surel ini:\n\n$2\n\n{{PLURAL:$3|Sandi sementara}} berikut akan kedaluwarsa dalam {{PLURAL:$5|$5 hari}}.\nAnda harus masuk dan memilih sandi baru sekarang. Jika orang lain membuat\npermintaan ini atau jika Anda ingat sandi asli dan tidak lagi\ningin mengubahnya, Anda dapat mengabaikan pesan ini dan terus menggunakan sandi lama.",
        "passwordreset-emailtext-user": "Seseorang (mungkin Anda, dari alamat IP $1) meminta pengingat detail akun untuk {{SITENAME}} ($4).\n{{PLURAL:$3|Akun|Akun-akun}} berikut terkait dengan alamat surel ini:\n\n$2\n\n{{PLURAL:$3|Sandi sementara}} berikut akan kedaluwarsa dalam {{PLURAL:$5|$5 hari}}.\nAnda harus masuk dan memilih sandi baru sekarang. Jika orang lain membuat\npermintaan ini atau jika Anda ingat sandi asli dan tidak lagi\ningin mengubahnya, Anda dapat mengabaikan pesan ini dan terus menggunakan sandi lama.",
-       "passwordreset-emailelement": "Nama pengguna: $1\nSandi sementara: $2",
+       "passwordreset-emailelement": "Nama pengguna: \n$1\n\nSandi sementara: \n$2",
        "passwordreset-emailsent": "Surel setel ulang kata sandi telah dikirimkan.",
        "passwordreset-emailsent-capture": "Surel setel ulang kata sandi telah dikirim, yang ditampilkan di bawah.",
        "passwordreset-emailerror-capture": "Surel setel ulang kata sandi telah dibuat, yang ditampilkan di bawah, namun pengiriman pada {{GENDER:$2|pengguna}} gagal: $1",
        "api-error-copyuploaddisabled": "Mengunggah melalui URL dilarang pada peladen ini.",
        "api-error-duplicate": "Sudah ada {{PLURAL:$1|[$2 berkas lain]}} dengan konten yang sama di situs ini.",
        "api-error-duplicate-archive": "Ada {{PLURAL:$1|[$2 berkas]}} lain di situs dengan konten yang sama, namun {{PLURAL:$1|berkas|berkas-berkas}} itu telah dihapus.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Berkas|Berkas-berkas}} duplikat yang telah dihapus.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Berkas}} duplikat.",
        "api-error-empty-file": "Berkas yang Anda kirim kosong.",
        "api-error-emptypage": "Pembuatan halaman baru yang kosong tidak diizinkan.",
        "api-error-fetchfileerror": "Kesalahan internal: terjadi kesalahan saat memperoleh berkas ini.",
index 293b656..d8dae89 100644 (file)
        "resetpass-submit-cancel": "Kàchá",
        "resetpass-temp-password": "mkpurụ okwu ejị a gafẹ I gi kushi ngwa ngwa:",
        "passwordreset": "Nkuwaria okwúngáfè",
-       "passwordreset-emailelement": "Áhà Ọ'banife: $1\nPasswod nke gi gbanwe: $2",
+       "passwordreset-emailelement": "Áhà Ọ'banife: \n$1\n\nPasswod nke gi gbanwe: \n$2",
        "changeemail-none": "(efù)",
        "bold_sample": "Mkpúrù èdè íke",
        "bold_tip": "Mkpúrù èdè íke",
        "unusedtemplates": "Àtụ hè jí gị",
        "unusedtemplateswlh": "jikodo ndi ozor",
        "randompage": "Edemede nkeówúlạ",
+       "randomincategory-submit": "Gá",
        "statistics": "Olìlé ọtụ ihe dị",
        "statistics-header-pages": "Ọmúmú-nà-ńlé ihü",
        "statistics-header-edits": "Rüwá ọmúmú-nà-ńlé",
        "nlinks": "{{PLURAL:$1|jikodo|jikodo}} $1",
        "nmembers": "{{PLURAL:$1|ọ'bànifé|Ndi n'bànifé}} $1",
        "nrevisions": "{{PLURAL:$1|orübà|orübà}} $1",
-       "nviews": "{{PLURAL:$1|he lèrè nke|he lèrè nke}} $1",
        "lonelypages": "Ihü nke ogbènyè",
        "wantedpages": "Ihü há chọrọ",
        "prefixindex": "Ihü nílé jírí mkpụrụ édémédé nke mbu",
        "listgrouprights-addgroup": "Gbàkọ {{PLURAL:$2|ọtú|ọtú}}: $1",
        "listgrouprights-addgroup-all": "Tìnyé ọtú nílé",
        "emailuser": "Zi onye á ózí-nsónùsòrò",
-       "emailpage": "Mé ọ'bànifé e-mailù",
        "defemailsubject": "e-mail {{SITENAME}}",
        "emailfrom": "Onye banyere ya:",
        "emailto": "Onye o gi ru:",
index 41d53e0..a633533 100644 (file)
        "passwordreset-emailtitle": "Dagiti salaysay ti pakabilangan iti {{SITENAME}}",
        "passwordreset-emailtext-ip": "Adda (baka sika, ti naggapuan ti IP a pagtaengan $1) a nagkiddaw ti maysa a panangisaad manen ti kontrasenias para iti {{SITNAME}} ($4) . {{PLURAL:$3|Ti |Dagiti}} sumaganad a pakabilangan ti agar-aramat ket\nmainaig iti daytoy nga esurat a pagtaengan:\n\n$2\n\n{{PLURAL:$3|Daytoy temporario a kontrasenias|Dagitoy temporario a kontrasenias}} ket agpaso {{PLURAL:$5|iti maysa nga aldaw|kadagiti $5 nga aldaw}}.\nSumrekka koman tapno agpilika ti baro a kontraseniasmo tattan. No adda met sabali a nagaramid daytoy a \npanagkiddaw, wenno malagipmo ti dati a kontraseniasmo, ket saanmo a kayaten a sukatan, saanmo nga ikaskaso daytoy a mensahe ken \nagtuloyka nga agusar ti daan a kontrasenias.",
        "passwordreset-emailtext-user": "Daytoy nga agar-aramat $1 iti {{SITENAME}} ket nagkiddaw ti maysa a panangisaad manen ti bukod a kontrasenias para iti {{SITENAME}}\n($4) . {{PLURAL:$3|Ti|Dagiti}} sumaganad a pakabilangan ti agar-aramat ket\nmainaig iti daytoy nga esurat a pagtaengan:\n\n$2\n\n{{PLURAL:$3|Daytoy temporario a kontrasenias|Dagitoy temporario a kontrasenias}} ket agpaso {{PLURAL:$5|iti maysa nga aldaw|kadagiti $5 nga aldaw}}.\nSumrekka koman tapno agpilika ti baro a kontraseniasmo tattan. No adda met sabali a nagaramid daytoy a \npanagkiddaw, wenno malagipmo ti dati a kontraseniasmo, ken saanmo a kayaten a sukatan, saanmo nga ikaskaso daytoy a mensahe ken \nagtuloykan nga agusar ti daan a kontraseniasmo.",
-       "passwordreset-emailelement": "Nagan ti agar-aramat: $1\nTemporario a kontrasenias: $2",
+       "passwordreset-emailelement": "Nagan ti agar-aramat: \n$1\n\nTemporario a kontrasenias: \n$2",
        "passwordreset-emailsent": "Ti maysa nga esurat ti panangisaad manen ti kontrasenias ket naipatuloden.",
        "passwordreset-emailsent-capture": "Ti maysa nga esurat ti panangisaad manen ti kontrasenias ket naipatuloden, a naipakita dita baba.",
        "passwordreset-emailerror-capture": "Naaramid ti maysa nga esurat a panangisaad manen ti kontrasenias, a napaikita dita baba, ngem ti panangitulod kenni {{GENDER:$2|agar-aramat}} ket napaay: $1",
        "rows": "Ar-aray:",
        "columns": "Dagiti batong:",
        "searchresultshead": "Biruken",
-       "stub-threshold": "Pagpatinggaan para iti panagpormat iti <a href=\"#\" class=\"stub\">pungol a silpo</a> (dagiti byte):",
+       "stub-threshold": "Pagpatinggaan para iti panagpormat iti silpo ti pungol ($1):",
+       "stub-threshold-sample-link": "wadan",
        "stub-threshold-disabled": "Nabaldado",
        "recentchangesdays": "Al-aldaw nga ipakita iti kaudian a balbaliw:",
        "recentchangesdays-max": "Kapaut nga $1 {{PLURAL:$1|nga aldaw|nga al-aldaw}}",
        "booksources-text": "Dita baba ket listaan dagiti silpo ti sabali a sitio nga aglaklako ti baro ken saan a nausar a liblibro, ken mabalin nga addaan pay iti adu a pakaammo a maipanggep kadagiti libro a birbirukem:",
        "booksources-invalid-isbn": "Ti naited nga ISBN ket kasla saan nga umisu; kitaen dagiti biddut ti panagtulad manipud ti kasisigud a taudan.",
        "specialloguserlabel": "Nangitungpal:",
-       "speciallogtitlelabel": "Puntaan (titulo wenno agar-aramat):",
+       "speciallogtitlelabel": "Puntaan (titulo wenno {{ns:user}}:nagan ti agar-aramat para iti agar-aramat):",
        "log": "Dagiti listaan",
        "all-logs-page": "Amin a listaan a publiko",
        "alllogstext": "Naikaykaysa a panagiparang kadagiti amin a magun-od a listaan iti {{SITENAME}}.\nMapabassitmo ti panagkita babaen ti panagpili ti kita ti listaan, ti nagan ti agar-aramat (sensitibo ti kadakkel ti letra), wenno ti naapektaran a panid (sensitibo pay ti kadakkel ti letra).",
        "tooltip-ca-nstab-main": "Kitaen ti naglaon a panid",
        "tooltip-ca-nstab-user": "Kitaen ti panid ti agar-aramat",
        "tooltip-ca-nstab-media": "Kitaen ti panid ti midia",
-       "tooltip-ca-nstab-special": "Daytoy ket espesial a panid, saanmo a mismo a maurnos daytoy a panid",
+       "tooltip-ca-nstab-special": "Daytoy ket espesial a panid, ken saan a mabalin a maurnos",
        "tooltip-ca-nstab-project": "Kitaen ti panid ti proyekto",
        "tooltip-ca-nstab-image": "Kitaen ti panid ti papeles",
        "tooltip-ca-nstab-mediawiki": "Kitaen ti mensahe ti sistema",
        "api-error-badtoken": "Akin-uneg a biddut: Dakes a tandaan.",
        "api-error-copyuploaddisabled": "Ti panagikarga babaen ti URL ket nabaldado iti daytoy server.",
        "api-error-duplicate": "Adda {{PLURAL:$1|ket [$2 a sabali a papeles] |dagiti [$2 sabsabali a papeles]}} nga addaan ditoy a sitio nga agpada ti linaon.",
-       "api-error-duplicate-archive": "Adda {{PLURAL:$1|idi [$2 sabali a papeles]|dagidi [$2 sabali a papeles]}} nga addaan ditoy a sitio nga agpada ti linaonda, ngem {{PLURAL:$1|daytoy|dagitoy}} ket naikkat.",
-       "api-error-duplicate-archive-popup-title": "Duplikado {{PLURAL:$1|ti papeles|dagiti papeles}} a naikkaten.",
-       "api-error-duplicate-popup-title": "Duplikado {{PLURAL:$1|ti papeles|dagiti papeles}}.",
+       "api-error-duplicate-archive": "Adda {{PLURAL:$1|idi sabali a papeles|dagidi sabali a papeles}} nga addaan ditoy a sitio nga agpada ti linaonda, ngem {{PLURAL:$1|daytoy|dagitoy}} ket naikkat.",
        "api-error-empty-file": "Ti papeles nga intedmo ket awan linaon.",
        "api-error-emptypage": "Agparprtuat ti baro, dagiti awan ti linaon a panid ket saan a maipalubos.",
        "api-error-fetchfileerror": "Akin-uneg a biddut: Addaan ti dakes a napasamak bayat nga agal-ala ti papeles.",
index 5ec43fe..d23e57a 100644 (file)
        "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|notendum eru}} 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 villt ekki lengur breyta því, skaltu hunsa þessi skilaboð og halda áfram að nota gamla lykilorðið.",
        "passwordreset-emailtext-user": "Notandinn $1 á {{SITENAME}} hefur beðið um endursetningu lykilorðsins þíns fyrir {{SITENAME}} ($4). Aðgangur eftirfarandi {{PLURAL:$3|notanda er|notendum eru}} 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 aftur lykilorðið þitt, og vilt ekki lengur breyta því, skaltu hunsa þessi skilaboð og halda áfram að nota gamla lykilorðið.",
-       "passwordreset-emailelement": "Notendanafn: $1\nTímabundið lykilorð: $2",
+       "passwordreset-emailelement": "Notendanafn: \n$1\n\nTímabundið lykilorð: \n$2",
        "passwordreset-emailsent": "Töluvpóstur til að endursetja lykilorðið hefur verið sendur.",
        "passwordreset-emailsent-capture": "Tölvupóstur til að endursetja lykilorðið hefur verið sendur í tölvupósti, sem er sýndur hér fyrir neðan.",
        "passwordreset-emailerror-capture": "Tölvupóstur til að endursetja lykilorðið var búinn til, sem er sýndur hér fyrir neðan, en ekki tókst að senda hana til {{GENDER:$2|notandans}}: $1",
        "api-error-badtoken": "Innri villa: Skemmdur tóki.",
        "api-error-copyuploaddisabled": "Ekki er hægt að hlaða upp með vefslóð á þessum vefþjón.",
        "api-error-duplicate": "Það {{PLURAL:$1|er [$2 önnur skrá]|eru [$2 aðrar skrár]}} þegar til á vefsvæðinu sem hafa sama innihald.",
-       "api-error-duplicate-archive": "Það {{PLURAL:$1|var [$2 önnur skrá]|voru [$2 aðrar skrár]}} þegar á síðunni með sama innihald, en {{PLURAL:$1|henni|þeim}} var eytt.",
-       "api-error-duplicate-archive-popup-title": "Eins {{PLURAL:$1|skrá|skrár}} sem {{PLURAL:$1|hefur|hafa}} þegar verið eytt.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Afrituð skrá|Afritaðar skrár}}",
+       "api-error-duplicate-archive": "Það {{PLURAL:$1|var önnur skrá|voru aðrar skrár}} þegar á síðunni með sama innihald, en {{PLURAL:$1|henni|þeim}} var eytt.",
        "api-error-empty-file": "Skráin sem þú valdir er tóm.",
        "api-error-emptypage": "Stofnun nýrra, tómra síðna er óheimil.",
        "api-error-fetchfileerror": "Innri villa: Mistókst að sækja skránna.",
index a0b2391..27bd8af 100644 (file)
@@ -89,7 +89,8 @@
                        "Fringio",
                        "Aquatech",
                        "Statix64",
-                       "CassiodoroVicinetti"
+                       "CassiodoroVicinetti",
+                       "Bultro"
                ]
        },
        "tog-underline": "Sottolinea i collegamenti:",
        "nstab-template": "Template",
        "nstab-help": "Aiuto",
        "nstab-category": "Categoria",
+       "mainpage-nstab": "Pagina principale",
        "nosuchaction": "Operazione non riconosciuta",
        "nosuchactiontext": "L'azione specificata nella URL non è valida.\nÈ possibile che la URL sia stata digitata in modo errato o che sia stato seguito un collegamento non valido.\nCiò potrebbe anche indicare un bug in {{SITENAME}}.",
        "nosuchspecialpage": "Pagina speciale non disponibile",
        "passwordreset-emailtitle": "Dettagli dell'utente su {{SITENAME}}",
        "passwordreset-emailtext-ip": "Qualcuno (probabilmente tu, con indirizzo IP $1) ha richiesto l'invio di una nuova password per l'accesso a {{SITENAME}} ($4). {{PLURAL:$3|L'utente associato|Gli utenti associati}} a questo indirizzo email sono:\n\n$2\n\n{{PLURAL:$3|Questa password temporanea scadrà|Queste password temporanee scadranno}} dopo {{PLURAL:$5|un giorno|$5 giorni}}.\nDovresti accedere e scegliere una nuova password ora. \n\nSe non sei stato tu a fare la richiesta, o se ti sei ricordato la password originale e non vuoi più cambiarla, puoi ignorare questo messaggio e continuare al utilizzare la tua vecchia password.",
        "passwordreset-emailtext-user": "L'utente $1 di {{SITENAME}} ha richiesto l'invio di una nuova password per l'accesso a {{SITENAME}} ($4). {{PLURAL:$3|L'utente associato|Gli utenti associati}} a questo indirizzo email sono:\n\n$2\n\n{{PLURAL:$3|Questa password temporanea scadrà|Queste password temporanee scadranno}} dopo {{PLURAL:$5|un giorno|$5 giorni}}.\nDovresti accedere e scegliere una nuova password ora. \n\nSe non sei stato tu a fare la richiesta, o se ti sei ricordato la password originale e non vuoi più cambiarla, puoi ignorare questo messaggio e continuare al utilizzare la tua vecchia password.",
-       "passwordreset-emailelement": "Nome utente: $1\nPassword temporanea: $2",
+       "passwordreset-emailelement": "Nome utente: \n$1\n\nPassword temporanea: \n$2",
        "passwordreset-emailsent": "È stata inviata una email di reimpostazione della password.",
        "passwordreset-emailsent-capture": "È stata inviata una email di reimpostazione della password, il contenuto è riportato di seguito.",
        "passwordreset-emailerror-capture": "È stata generata una email di reimpostazione della password, riportata di seguito. L'invio {{GENDER:$2|all'utente}} non è riuscito: $1",
        "changeemail-password": "La password su {{SITENAME}}:",
        "changeemail-submit": "Modifica email",
        "changeemail-throttled": "Sono stati effettuati troppi tentativi di accesso.\nAttendi $1 e riprova in seguito.",
+       "changeemail-nochange": "Per favore inserisci un nuovo indirizzo e-mail.",
        "resettokens": "Reimposta token",
        "resettokens-text": "Qui puoi reimpostare le chiavi che permettono l'accesso a determinati dati privati associati alla tua utenza.\n\nDovresti farlo se le hai accidentalmente condivise con qualcuno o se la tua utenza è stato compromessa.",
        "resettokens-no-tokens": "Non ci sono token da reimpostare.",
        "permissionserrorstext-withaction": "Non si dispone dei permessi necessari per $2, per {{PLURAL:$1|il seguente motivo|i seguenti motivi}}:",
        "recreate-moveddeleted-warn": "<strong>Attenzione: si sta per ricreare una pagina già cancellata in passato.</strong>\n\nAccertarsi che sia davvero opportuno continuare a modificare questa pagina.\nL'elenco delle relative cancellazioni e degli spostamenti viene riportato di seguito per comodità:",
        "moveddeleted-notice": "Questa pagina è stata cancellata. L'elenco delle relative cancellazioni e degli spostamenti viene riportato di seguito per informazione.",
+       "moveddeleted-notice-recent": "Spiacenti, questa pagina è stata cancellata recentemente (nelle ultime 24 ore).\n\nLe azioni di cancellazione e spostamento per questa pagina sono disponibili di seguito per completezza.",
        "log-fulllog": "Visualizza log completo",
        "edit-hook-aborted": "La modifica è stata annullata dall'hook.\nNon è stata restituita alcuna spiegazione.",
        "edit-gone-missing": "Impossibile aggiornare la pagina.\nSembra che sia stata cancellata.",
        "recentchanges-label-unpatrolled": "Modifica non ancora verificata",
        "recentchanges-label-plusminus": "Variazione della pagina in numero di byte",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vedi [[Special:NewPages|le nuove pagine]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vedi le [[Special:NewPages|nuove pagine]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "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",
        "booksources-text": "Di seguito sono elencati alcuni collegamenti verso siti esterni che vendono libri nuovi e usati, attraverso i quali è possibile ottenere maggiori informazioni sul testo cercato.",
        "booksources-invalid-isbn": "L'ISBN inserito sembra non essere valido; verificare che non siano stati commessi errori nel copiarlo dalla fonte originale.",
        "specialloguserlabel": "Azione effettuata da:",
-       "speciallogtitlelabel": "Azione effettuata su:",
+       "speciallogtitlelabel": "Azione effettuata su (titolo della pagina o {{ns:user}}:Nome utente):",
        "log": "Registri",
        "all-logs-page": "Tutti i registri pubblici",
        "alllogstext": "Presentazione unificata di tutti i registri di {{SITENAME}}.\nÈ possibile restringere i criteri di ricerca selezionando il tipo di registro, l'utente che ha eseguito l'azione, e/o la pagina interessata (entrambi i campi sono sensibili al maiuscolo/minuscolo).",
        "logentry-newusers-create2": "L'utenza $3 è stata {{GENDER:$2|creata}} da $1",
        "logentry-newusers-byemail": "L'utenza $3 è stata {{GENDER:$2|creata}} da $1 e la password è stata inviata via email",
        "logentry-newusers-autocreate": "L'utenza $1 è stata {{GENDER:$2|creata}} automaticamente",
+       "logentry-protect-move_prot": "$1 {{GENDER:$2|ha spostato}} le impostazioni di protezione da $4 a $3",
        "logentry-rights-rights": "$1 {{GENDER:$2|ha modificato}} l'appartenenza di $3 dal gruppo $4 al gruppo $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|ha modificato}} l'appartenenza a gruppi di $3",
        "logentry-rights-autopromote": "$1 è {{GENDER:$2|stato promosso|stata promossa|stato/a promosso/a}} automaticamente da $4 a $5",
        "api-error-badtoken": "Errore interno: token errato.",
        "api-error-copyuploaddisabled": "Il caricamento tramite URL è disabilitato su questo server.",
        "api-error-duplicate": "Sul sito {{PLURAL:$1|c'è già [$2 un altro documento]|ci sono già [$2 altri documenti]}} con lo stesso contenuto.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|C'era [$2 un altro file]|C'erano [$2 altri file]}} già nel sito con lo stesso contenuto, ma {{PLURAL:$1|è stato cancellato|sono stati cancellati}}.",
-       "api-error-duplicate-archive-popup-title": "File duplicat{{PLURAL:$1|o che è già stato cancellato|i che sono già stati cancellati}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|documento duplicato|documenti duplicati}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|C'era un altro file|C'erano altri file}} già nel sito con lo stesso contenuto, ma {{PLURAL:$1|è stato cancellato|sono stati cancellati}}.",
        "api-error-empty-file": "Il file selezionato era vuoto.",
        "api-error-emptypage": "La creazione di nuove pagine vuote non è consentita.",
        "api-error-fetchfileerror": "Errore interno: c'è stato un problema durante il recupero del documento.",
index 33a4652..ead03df 100644 (file)
        "nstab-template": "テンプレート",
        "nstab-help": "ヘルプページ",
        "nstab-category": "カテゴリ",
+       "mainpage-nstab": "メインページ",
        "nosuchaction": "そのような操作はありません",
        "nosuchactiontext": "この URL で指定された操作は正しくありません。\nURL を間違って入力したか、正しくないリンクをたどった可能性があります。\n{{SITENAME}}が利用するソフトウェアのバグの可能性もあります。",
        "nosuchspecialpage": "そのような特別ページはありません",
        "passwordreset-emailtitle": "{{SITENAME}}上のアカウントの詳細",
        "passwordreset-emailtext-ip": "誰か (おそらくあなた、IP アドレス $1) が {{SITENAME}} ($4)\nでのパスワードを再設定するよう申請しました。\n以下の利用者{{PLURAL:$3|アカウント|アカウント群}}がこのメールアドレスと紐付けられています。\n\n$2\n\n{{PLURAL:$3|この仮パスワード|これらの仮パスワード}}は {{PLURAL:$5|$5 日|$5 日間}}で有効期限が切れます。\nあなたはすぐにログインして新しいパスワードを設定する必要があります。\nこれが他の誰かによる申請である場合、あるいはあなたが自分の元のパスワードを\n覚えていてそれを変更したくない場合には、このメッセージを無視して以前のパスワードを\n使用し続けることができます。",
        "passwordreset-emailtext-user": "{{SITENAME}} の利用者 $1 があなたの {{SITENAME}} ($4)\nでのパスワードを再設定するよう申請しました。\n以下の利用者{{PLURAL:$3|アカウント|アカウント群}}がこのメールアドレスと紐付けられています。\n\n$2\n\n{{PLURAL:$3|この仮パスワード|これらの仮パスワード}}は{{PLURAL:$5|$5日}}で有効期限が切れます。\nあなたは、すぐにログインして新しいパスワードを設定する必要があります。\nこの申請が他の誰かによるものの場合、あるいはあなたが自分の元のパスワードを\n覚えていて、変更したくない場合は、このメッセージを無視して\n以前のパスワードを使い続けることができます。",
-       "passwordreset-emailelement": "利用者名: $1\n仮パスワード: $2",
+       "passwordreset-emailelement": "利用者名: \n$1\n\n仮パスワード: \n$2",
        "passwordreset-emailsent": "パスワード再設定メールをお送りしました。",
        "passwordreset-emailsent-capture": "下記の内容の、パスワード再設定メールをお送りしました。",
        "passwordreset-emailerror-capture": "以下の内容のパスワード再設定メールを生成しましたが、{{GENDER:$2|利用者}}への送信に失敗しました: $1",
        "changeemail-password": "{{SITENAME}}のパスワード:",
        "changeemail-submit": "メールアドレスを変更",
        "changeemail-throttled": "ログインの試行回数が多すぎます。\n$1、待ってから再度試してください。",
+       "changeemail-nochange": "異なる新しいメールアドレスを入力してください。",
        "resettokens": "トークンの再設定",
        "resettokens-text": "ここでは、アカウントに関連付けられた特定の非公開データにアクセスするためのトークンを再設定できます。\n\nトークンを誤って他人に教えてしまった場合やあなたのアカウントが侵害された場合は、必ず再設定してください。",
        "resettokens-no-tokens": "再設定できるトークンはありません。",
        "permissionserrorstext-withaction": "あなたには「$2」を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:",
        "recreate-moveddeleted-warn": "<strong>警告: 以前削除されたページを再作成しようとしています。</strong>\n\nこのページの編集を続行するのが適切かどうかご確認ください。\n参考までに、このページの削除と移動の記録を以下に示します:",
        "moveddeleted-notice": "このページは削除されています。\n参考のため、このページの削除と移動の記録を以下に表示します。",
+       "moveddeleted-notice-recent": "ごめんなさい、このページは最近に削除されました (過去24時間以内)。このページについての削除と移動のログが、参考のため、以下にて提供されています。",
        "log-fulllog": "完全な記録を閲覧",
        "edit-hook-aborted": "フックによって編集が破棄されました。\n理由は不明です。",
        "edit-gone-missing": "ページを更新できませんでした。\n既に削除されているようです。",
        "api-error-badaccess-groups": "このウィキへのファイルのアップロードが許可されていません。",
        "api-error-badtoken": "内部エラー: トークンが正しくありません。",
        "api-error-copyuploaddisabled": "URLによるアップロードはこのサーバーでは無効になっています。",
-       "api-error-duplicate": "当ウェブサイト上には、既に同じ内容の{{PLURAL:$1|[$2 他のファイル]が|[$2 他のファイルがいくつか]}}存在しています。",
-       "api-error-duplicate-archive": "サイト上に同じ内容の{{PLURAL:$1|[$2 別のファイル]が|[$2 他のファイルがいくつか]}}既にありましたが、{{PLURAL:$1|それは|それらは}}削除されました。",
-       "api-error-duplicate-archive-popup-title": "重複した{{PLURAL:$1|ファイル|ファイル群}}は削除済みです。",
-       "api-error-duplicate-popup-title": "重複した{{PLURAL:$1|ファイル|ファイル群}}です。",
+       "api-error-duplicate": "当ウェブサイト上には、既に同じ内容の{{PLURAL:$1|他のファイルが|他のファイルがいくつか}}存在しています。",
+       "api-error-duplicate-archive": "サイト上に同じ内容の{{PLURAL:$1|別のファイルが|他のファイルがいくつか}}既にありましたが、{{PLURAL:$1|それは|それらは}}削除されました。",
        "api-error-empty-file": "送信されたファイルは空でした。",
        "api-error-emptypage": "内容がないページの新規作成は許可されていません。",
        "api-error-fetchfileerror": "内部エラー: ファイルを取得する際に問題が発生しました。",
index 9ebdaa0..575e43f 100644 (file)
                        "Xabier Armendaritz",
                        "Ælsån",
                        "Midnight Gambler",
-                       "아라"
+                       "아라",
+                       "Jyllanj"
                ]
        },
-       "tog-underline": "Understreg henvesnenger",
-       "tog-hideminor": "Skjul mendre ændrenger i'n liste åver seneste ændrenger",
-       "tog-extendwatchlist": "Udvedet liste ve seneste ændrenger",
-       "tog-usenewrc": "Førbedret liste åver seneste ændrenger (JavaScript)",
-       "tog-numberheadings": "Åtåmatisk nåmererenge åf åverskrefter",
-       "tog-showtoolbar": "Ves værktøjslenje til redigærenge",
-       "tog-editondblclick": "Redigær sider ve dåbeltklik",
-       "tog-editsectiononrightclick": "Redigær åfsnet ve at klikke på deres titler",
-       "tog-watchcreations": "Tilføj sider a åpretter til miin åvervågnengsliste",
-       "tog-watchdefault": "Tilføj sider a redigærer til miin åvervågnengsliste",
-       "tog-watchmoves": "Tilføj sider a flytter til miin åvervågnengsliste",
-       "tog-watchdeletion": "Tilføj sider a sletter til miin åvervågnengsliste",
-       "tog-minordefault": "Markær søm standård ål redigærenge søm mendre",
-       "tog-previewontop": "Ves førhåndsvesnenge åver æ rædigerengsboks",
-       "tog-previewonfirst": "Ves førhåndsvesnenge når du stårtst ve at redigære",
-       "tog-enotifwatchlistpages": "Send mig en e-mail ve sideændrenger",
-       "tog-enotifusertalkpages": "Send mig en e-mail når miin brugerdiskusjeside ændres",
-       "tog-enotifminoredits": "Send mig også en e-mail ve mendre ændrenger åf åvervågede sider",
-       "tog-enotifrevealaddr": "Ves miin e-mail-adresse i mails ve besked ændrenger'm",
-       "tog-shownumberswatching": "Ves åntal brugere, der åvervåger",
-       "tog-fancysig": "Signaturer uden åtåmatisk henvesnenge",
-       "tog-uselivepreview": "Brug åtåmatisk førhåndsvesnenge (eksperimentel)",
-       "tog-forceeditsummary": "Advar, hves sammenfatnenge mangler ve gemnenge",
-       "tog-watchlisthideown": "Skjul egne ændrenger i'n åvervågnengsliste",
-       "tog-watchlisthidebots": "Skjul ændrenger frå bots i'n åvervågnengsliste",
-       "tog-watchlisthideminor": "Skjul mendre ændrenger i'n åvervågnengsliste",
-       "tog-ccmeonemails": "Send mig kopier åf e-mails, søm a sender til andre brugere.",
-       "tog-diffonly": "Ves ve versjesammenlegnenger kun førskelle, ekke'n hele side",
-       "tog-showhiddencats": "Ves skjulte klynger",
-       "underline-always": "åltid",
-       "underline-never": "åldreg",
-       "underline-default": "æfter brovserendstellenge",
-       "sunday": "søndåg",
-       "monday": "måndåg",
-       "tuesday": "tirsdåg",
-       "wednesday": "ønsdåg",
-       "thursday": "tårsdåg",
-       "friday": "fredåg",
-       "saturday": "lørsdåg",
+       "tog-underline": "Unjestreg henwisnenge:",
+       "tog-hideminor": "Sjul lie øndrenge i listen öwe siensti øndrenge",
+       "tog-hidepatrolled": "Sjul patruljiirtje redigiirenge i siensti øndrenge",
+       "tog-newpageshidepatrolled": "Sjul patruljiirtje side på listen öwe nyj side",
+       "tog-extendwatchlist": "Utwiid öwewågnengslisten te å wis åll øndrenge å ett kons di nysti",
+       "tog-usenewrc": "Gruppiir øndrenge pro siid i listen öwe siensti øndrenge å i öwewågnengslisten",
+       "tog-numberheadings": "Automatisk nummeriireng å öweskrifte",
+       "tog-showtoolbar": "Wis wærktyeslinje te redigiireng",
+       "tog-editondblclick": "Redigiir side mä doppeltklikk",
+       "tog-editsectiononrightclick": "Redigiir åsnit we å højaklikk på dæes title",
+       "tog-watchcreations": "Tilfye side, æ oprette, å fili, æ lägge op, te min öwewågnengslist",
+       "tog-watchdefault": "Tilfye side å file, æ redigiire, te min öwewågnengslist",
+       "tog-watchmoves": "Tilfye side å file, æ flytte, te min öwewågnengslist",
+       "tog-watchdeletion": "Tilfye side å file, æ slette, te min öwewågnengslist",
+       "tog-watchrollback": "Tilfye side, hwor æ hår utförtj en tebagrullneng te min öwewågnengslist",
+       "tog-minordefault": "Markiir som standard åll redigiirenge som lie",
+       "tog-previewontop": "Wis forhånjswisneng öwe redigiirengsboksi",
+       "tog-previewonfirst": "Wis forhånjswisneng we fösjti redigiireng",
+       "tog-enotifwatchlistpages": "Senj mej i e-mail we øndrenge te en siid elle i fil på min öwewågnengslist",
+       "tog-enotifusertalkpages": "Senj mej i e-mail nær min brugediskusjonssiid øndas",
+       "tog-enotifminoredits": "Senj mej åsså i e-mail we lie øndrenge å side å file på min öwewågnengslist",
+       "tog-enotifrevealaddr": "Wis min e-mailadress i e-mails mä besked om øndrenge",
+       "tog-shownumberswatching": "Wis åntal bruga som öwewåge",
+       "tog-oldsig": "Nuwærenje signatur:",
+       "tog-fancysig": "Behånjl signatur som wikitekst uen automatisk henwisneng",
+       "tog-uselivepreview": "Benøtt løbenje forhånjswisneng",
+       "tog-forceeditsummary": "Adwar mej hwes æ ett utfylle beskriiwelsfeltje",
+       "tog-watchlisthideown": "Sjul ejne øndrenge i öwewågnengslisten",
+       "tog-watchlisthidebots": "Sjul øndrenge fra bots i öwewågnengslisten",
+       "tog-watchlisthideminor": "Sjul lie øndrenge i öwewågningslisten",
+       "tog-watchlisthideliu": "Sjul inloggtje brugas redigiirenge i öwewågnengslist",
+       "tog-watchlisthideanons": "Sjul anonym brugas redigiirenge i öwewågnengslist",
+       "tog-watchlisthidepatrolled": "Sjul patruljiirtje øndrenge fra öwewågnengslist",
+       "tog-ccmeonemails": "Senj mej kopie å e-mails som æ senje te anjer bruga",
+       "tog-diffonly": "Wis ett sidinholj nier unje versjonssammelliiknenge",
+       "tog-showhiddencats": "Wis sjulen kategorie",
+       "tog-norollbackdiff": "Wis ett forskell ette tebagrullneng",
+       "tog-useeditwarning": "Adwar mej, hwes æ forlade en redigiirengssiid mä øndrenge, som ett ä djiemen",
+       "tog-prefershttps": "Brug ålltins en siker forbinjels, nær du ä loggen in",
+       "underline-always": "Åltid",
+       "underline-never": "Åller",
+       "underline-default": "Brug dej browserens instelleng elle standarden for walgtje utsienje",
+       "editfont-style": "Skriftstil we redigiireng:",
+       "editfont-default": "Brug browseris instelleng",
+       "editfont-monospace": "Fästbrieddeskrift",
+       "editfont-sansserif": "Skrift uen fyed",
+       "editfont-serif": "Skrift mä fyed",
+       "sunday": "søndaw",
+       "monday": "måndaw",
+       "tuesday": "tirsdaw",
+       "wednesday": "onsdaw",
+       "thursday": "tårsdaw",
+       "friday": "friedaw",
+       "saturday": "lørsdaw",
        "sun": "søn",
        "mon": "mån",
        "tue": "tir",
-       "wed": "øns",
+       "wed": "ons",
        "thu": "tår",
-       "fri": "fre",
+       "fri": "fri",
        "sat": "lør",
        "january": "januar",
        "february": "februar",
        "march": "mårts",
        "april": "åpril",
-       "may_long": "mæ",
+       "may_long": "maj",
        "june": "juni",
        "july": "juli",
        "august": "ågust",
        "september": "september",
        "october": "oktober",
        "november": "november",
-       "december": "desember",
+       "december": "december",
        "january-gen": "januars",
        "february-gen": "februars",
-       "march-gen": "mårtses",
+       "march-gen": "mårts'",
        "april-gen": "åprils",
-       "may-gen": "mæs",
-       "june-gen": "juniis",
-       "july-gen": "juliis",
+       "may-gen": "majs",
+       "june-gen": "junis",
+       "july-gen": "julis",
        "august-gen": "ågusts",
        "september-gen": "septembers",
        "october-gen": "oktobers",
        "november-gen": "novembers",
-       "december-gen": "desembers",
+       "december-gen": "decembers",
        "jan": "jan",
        "feb": "feb",
-       "mar": "mår",
-       "apr": "åpr",
-       "may": "mæ",
+       "mar": "mar",
+       "apr": "apr",
+       "may": "maj",
        "jun": "jun",
        "jul": "jul",
-       "aug": "ågu",
+       "aug": "aug",
        "sep": "sep",
        "oct": "okt",
        "nov": "nov",
-       "dec": "des",
-       "pagecategories": "{{PLURAL:$1|Klynge|Klynger}}",
-       "category_header": "Ertikler i'n klynge \"$1\"",
-       "subcategories": "Underklynger",
-       "category-media-header": "Medier i'n klynge „$1“",
-       "category-empty": "''Denne klynge endeholter før øjeblikket æ verke sider æller medie-gøret.''",
-       "hidden-categories": "{{PLURAL:$1|Skjult klynge|Skjulte klynger}}",
-       "hidden-category-category": "Skjulte klynger",
-       "listingcontinuesabbrev": "førtgøte",
-       "about": "Åm",
-       "article": "Ertikel",
-       "newwindow": "(åbner i et nyt vendue)",
-       "cancel": "Åfbryd",
-       "moredotdotdot": "Mære...",
-       "mypage": "Miin side",
-       "mytalk": "Min diskusje",
-       "anontalk": "Diskusjeside før denne IP-adresse",
-       "navigation": "Navigasje",
-       "and": "&#32;og",
-       "qbfind": "Søĝ",
-       "qbbrowse": "Gennemse",
-       "qbedit": "Redigær",
-       "qbpageoptions": "Endstellenger før side",
-       "qbmyoptions": "Miine endstellenger",
-       "faq": "VSF",
-       "faqpage": "Project:Vøl stellen fråĝer (VSF)",
+       "dec": "dec",
+       "january-date": "$1. januar",
+       "february-date": "$1. februar",
+       "march-date": "$1. mårts",
+       "april-date": "$1. åpril",
+       "may-date": "$1. maj",
+       "june-date": "$1. juni",
+       "july-date": "$1. juli",
+       "august-date": "$1. ågust",
+       "september-date": "$1. september",
+       "october-date": "$1. oktober",
+       "november-date": "$1. november",
+       "december-date": "$1. december",
+       "pagecategories": "{{PLURAL:$1|Kategori|Kategorie}}",
+       "category_header": "Side i kategorien \"$1\"",
+       "subcategories": "Unjekategorie",
+       "category-media-header": "Medie i kategorien „$1“",
+       "category-empty": "''Kategorien inholje for yeblikke hverken side elle mediefile.''",
+       "hidden-categories": "{{PLURAL:$1|Sjultj kategori|Sjultj kategorie}}",
+       "hidden-category-category": "Sjulen kategorie",
+       "category-subcat-count": "{{PLURAL:$2|Kategorien hår en unjekategori.|Kategorien inholje nierstoenje {{PLURAL:$1|unjerkategori|$1 unjerkategorie}}, å i ållt $2.}}",
+       "category-subcat-count-limited": "Kategorien inholje {{PLURAL:$1|nästi unjekategorien|di nästi unjekategorie}}.",
+       "category-article-count": "Kategorien inholje {{PLURAL:$2|kons den nierstoenje siid|{{PLURAL:$1|den nierstoenje siid|di nierstoenje $1 side}} å i ållt $2.}}",
+       "category-article-count-limited": "Kategorien inholje {{PLURAL:$1|nierstoenje siid|di nierstoenje $1 side}}.",
+       "category-file-count": "Kategorien inholje {{PLURAL:$2|kons den nierstoenje siid|{{PLURAL:$1|i nierstoenje fil|di nierstoenje $1 file}} å i ållt $2.}}",
+       "category-file-count-limited": "Kategorien inholje {{PLURAL:$1|nierstoenje fili|di nierstoenje $1 file}}.",
+       "listingcontinuesabbrev": "forts.",
+       "index-category": "Indeksiirtje side",
+       "noindex-category": "Intj-indeksiirtje side",
+       "broken-file-category": "Side mä bruden filhenwisnenge",
+       "about": "Om",
+       "article": "Artikel",
+       "newwindow": "(åbne i e ny winjye)",
+       "cancel": "Åbryd",
+       "moredotdotdot": "Mier...",
+       "morenotlisted": "Listen ä ett komplett.",
+       "mypage": "Siid",
+       "mytalk": "Diskusjon",
+       "anontalk": "Diskusjonssiid for denn IP-adress",
+       "navigation": "Navigasjon",
+       "and": "&#32;å",
+       "qbfind": "Syeg",
+       "qbbrowse": "Djennemsie",
+       "qbedit": "Redigiir",
+       "qbpageoptions": "Instellenge for siid",
+       "qbmyoptions": "Min instellenge",
+       "faq": "OSS",
+       "faqpage": "Project:OSS",
+       "actions": "Hånjlenge",
+       "namespaces": "Naunrum",
+       "variants": "Variantje",
+       "navigation-heading": "Navigasjonsmenu",
        "errorpagetitle": "Fejl",
-       "returnto": "Tilbage til $1.",
-       "tagline": "Frå {{SITENAME}}",
-       "help": "Hjælp",
-       "search": "Søĝ",
-       "searchbutton": "Søĝ",
-       "go": "Gå til",
-       "searcharticle": "Gå til",
-       "history": "Skigt",
-       "history_short": "Skigte",
-       "updatedmarker": "(ændret)",
-       "printableversion": "Utskreftsvelig utgåf",
-       "permalink": "Permanent henvesnenge",
-       "print": "Udskrev",
-       "edit": "Redigær",
-       "create": "Skep",
-       "editthispage": "Redigær side",
-       "create-this-page": "Skep denne side",
-       "delete": "Slet",
-       "deletethispage": "Slet side",
-       "undelete_short": "Førtryd sletnenge åf {{PLURAL:$1|$1 versje|$1 versje}}",
-       "protect": "Beskyt",
-       "protect_change": "Ændret beskyttelse",
-       "protectthispage": "Beskyt side",
-       "unprotect": "Fjern beskyttelse",
-       "unprotectthispage": "Frigæv side",
-       "newpage": "Ny side",
-       "talkpage": "Diskusje",
-       "talkpagelinktext": "diskusje",
-       "specialpage": "Sonst side",
-       "personaltools": "Personlige værktø'r",
-       "articlepage": "Se'n ertikel",
-       "talk": "Diskusje",
-       "views": "Vesnenger",
-       "toolbox": "Værktø'r",
-       "userpage": "Se'n brugerside",
-       "projectpage": "Se'n projektside",
-       "imagepage": "Se'n billetside",
-       "mediawikipage": "Vese endholtsside",
-       "templatepage": "Vese skablånside",
-       "viewhelppage": "Vese hjælpeside",
-       "categorypage": "Vese klyngeside",
-       "viewtalkpage": "Se'n diskusje",
-       "otherlanguages": "Andre språĝ",
-       "redirectedfrom": "(Åmstyret frå $1)",
-       "redirectpagesub": "Åmstyrenge",
-       "lastmodifiedat": "Denne side blev senest ændret den $2, $1.",
-       "viewcount": "Æ side er vest i alt $1 {{PLURAL:$1|geng|genger}}.",
-       "protectedpage": "Beskyttet side",
-       "jumpto": "Skeft til:",
-       "jumptonavigation": "navigasje",
-       "jumptosearch": "Søĝnenge",
-       "aboutsite": "{{SITENAME}}'m",
-       "aboutpage": "Project:Åm",
-       "copyright": "Endholtet er udgævet under $1.",
-       "copyrightpage": "{{ns:project}}:Åphavsret",
-       "currentevents": "Nænte begevenheder",
-       "currentevents-url": "Project:Nænte begevenheder",
-       "disclaimers": "Førbeholt",
-       "disclaimerpage": "Project:Huses førbeholt",
-       "edithelp": "Hjælp til redigærenge",
-       "mainpage": "Førsit",
-       "mainpage-description": "Førsit",
+       "returnto": "Tebag te $1.",
+       "tagline": "Fra {{SITENAME}}",
+       "help": "Hjälp",
+       "search": "Syeg",
+       "searchbutton": "Syeg",
+       "go": "Go te",
+       "searcharticle": "Go te",
+       "history": "Historik",
+       "history_short": "Historik",
+       "updatedmarker": "opdatiirtj sien siensti besyeg",
+       "printableversion": "Utskriftswenli utgaw",
+       "permalink": "Permanentj henvisneng",
+       "print": "Utskriiw",
+       "view": "Wis",
+       "view-foreign": "Wis på $1",
+       "edit": "Redigiir",
+       "edit-local": "Redigiir lokal beskriiwels",
+       "create": "Oprett",
+       "create-local": "Tilfye lokal beskriiwels",
+       "editthispage": "Redigiir siid",
+       "create-this-page": "Oprett siden",
+       "delete": "Slett",
+       "deletethispage": "Slett siid",
+       "undeletethispage": "Djenta siden",
+       "undelete_short": "Fortryd slettneng å {{PLURAL:$1|jen versjon|$1 versjone}}",
+       "viewdeleted_short": "Wis {{PLURAL:$1|en sletten redigiireng|$1 sletten redigiirenge}}",
+       "protect": "Beskøtt",
+       "protect_change": "ønda",
+       "protectthispage": "Beskøtt siid",
+       "unprotect": "Ønda beskøttels",
+       "unprotectthispage": "Ønda beskøttelsen å siden",
+       "newpage": "Ny siid",
+       "talkpage": "Diskusjon",
+       "talkpagelinktext": "diskusjon",
+       "specialpage": "Specialsiid",
+       "personaltools": "Personli wærktya",
+       "articlepage": "Sie artikli",
+       "talk": "Diskusjon",
+       "views": "Wisnenge",
+       "toolbox": "Wærktya",
+       "userpage": "Sie brugesiden",
+       "projectpage": "Sie projektsiden",
+       "imagepage": "Sie filsiden",
+       "mediawikipage": "Wis inholjssiid",
+       "templatepage": "Wis skabelonsiid",
+       "viewhelppage": "Wis hjälpsiid",
+       "categorypage": "Wis kategorisiid",
+       "viewtalkpage": "Sie diskusjon",
+       "otherlanguages": "Anjer spraw",
+       "redirectedfrom": "(Omdirigiirtj fra $1)",
+       "redirectpagesub": "Omdirigiirengssiid",
+       "redirectto": "Omdirigiir te:",
+       "lastmodifiedat": "Siden bløw sienst øndatj $1 kl. $2.",
+       "viewcount": "Siden ä wisen {{PLURAL:$1|jen gång|$1 gång}}.",
+       "protectedpage": "Beskøttetj siid",
+       "jumpto": "Skift te:",
+       "jumptonavigation": "navigasjon",
+       "jumptosearch": "Syegneng",
+       "aboutsite": "Om {{SITENAME}}",
+       "aboutpage": "Project:Om",
+       "copyright": "Inholje ä utdjøwen unje $1 mämenna ånj ä åndjøwen.",
+       "copyrightpage": "{{ns:project}}:Ophawsrett",
+       "currentevents": "Aktuell bedjøwenhede",
+       "currentevents-url": "Project:Aktuell bedjøwenhede",
+       "disclaimers": "Forbeholj",
+       "disclaimerpage": "Project:Generell forbeholj",
+       "edithelp": "Hjälp te redigiireng",
+       "helppage-top-gethelp": "Hjälp",
+       "mainpage": "Forsiid",
+       "mainpage-description": "Forsiid",
        "policy-url": "Project:Politik",
-       "portal": "Førside før skrebenter",
-       "portal-url": "Project:Førside før skrebenter",
-       "privacy": "Behandlenge åf personlige åplysnenger",
-       "privacypage": "Project:Behandlinge åf personlige åplysnenger",
-       "badaccess": "Manglende rettigheder",
-       "badaccess-group0": "Du harst ekke de nødvendege rettegheder til denne håndlenge.",
-       "badaccess-groups": "Denne håndlenge ken kun udføres åf brugere, søm tilhører en åf grupperne „$1“.",
-       "versionrequired": "Kræver versje $1 åf MediaWiki",
-       "versionrequiredtext": "Versje $1 åf MediaWiki er påkrævet, før at bruge denne side. Se'n [[Special:Version|versjeside]]",
-       "ok": "Er åkæ",
-       "retrievedfrom": "Hæntet frå \"$1\"",
-       "youhavenewmessages": "Du har $1 ($2).",
-       "youhavenewmessagesmulti": "Der er nye meddelelser til dig: $1",
-       "editsection": "redigær",
-       "editold": "redigær",
-       "viewsourceold": "ves æ kelde",
-       "editsectionhint": "Redigær åfsnet: $1",
-       "toc": "Endholtsførtegnelse",
-       "showtoc": "ves",
-       "hidetoc": "skjul",
-       "thisisdeleted": "Se æller gendan $1?",
-       "viewdeleted": "Ves $1?",
-       "restorelink": "{{PLURAL:$1|en slettet ændrenge|$1 slettede ændrenger}}",
-       "feedlinks": "Fiid:",
-       "feed-invalid": "Ugyldeg abånmentstype.",
-       "feed-unavailable": "RSS og Atåm fiid er ekke tilgængelege på {{SITENAME}}",
-       "site-rss-feed": "$1 RSS-fiid",
-       "site-atom-feed": "$1 Atom-fiid",
-       "page-rss-feed": "\"$1\" RSS-fiid",
-       "page-atom-feed": "\"$1\" Atom-fiid",
-       "red-link-title": "$1 (ekke skrevet endnu)",
-       "nstab-main": "ertikel",
-       "nstab-user": "brugerside",
-       "nstab-media": "medie",
-       "nstab-special": "sonst",
-       "nstab-project": "åm",
-       "nstab-image": "billet",
-       "nstab-mediawiki": "besked",
-       "nstab-template": "skablån",
-       "nstab-help": "hjælp",
-       "nstab-category": "Klynge",
-       "nosuchaction": "Æ funksje fendes ekke",
+       "portal": "Forsiid for skribentje",
+       "portal-url": "Project:Forsiid for skribentje",
+       "privacy": "Behånjleng å personli opløsnenge",
+       "privacypage": "Project:Behånjleng å personli opløsnenge",
+       "badaccess": "Månglenje rettighede",
+       "badaccess-group0": "Du hår ett di nødwenji rettighede te hånjlengen.",
+       "badaccess-groups": "Handlingen kan kons utförs å bruga som tilhör {{PLURAL:$2|gruppen|jen å grupper:}} $1.",
+       "versionrequired": "Kräwe versjon $1 å MediaWiki",
+       "versionrequiredtext": "Versjon $1 å MediaWiki ä påkräwen, for å brug siden. Sie [[Special:Version|versjonssiden]]",
+       "ok": "OK",
+       "retrievedfrom": "Hentjen fra \"$1\"",
+       "youhavenewmessages": "{{PLURAL:$3|Du hår}} $1 ($2).",
+       "youhavenewmessagesmulti": "Du hår nyj beskede på $1",
+       "editsection": "redigiir",
+       "editold": "redigiir",
+       "viewsourceold": "wis tjeljkode",
+       "editlink": "redigiir",
+       "viewsourcelink": "wis tjeljtekst",
+       "editsectionhint": "Redigiir åsnit: $1",
+       "toc": "Inholjsfortejnels",
+       "showtoc": "wis",
+       "hidetoc": "sjul",
+       "collapsible-collapse": "Folj sammel",
+       "collapsible-expand": "Folj ut",
+       "confirmable-confirm": "Ä {{GENDER:$1|du}} siker?",
+       "confirmable-yes": "Ja",
+       "confirmable-no": "Nej",
+       "thisisdeleted": "Sie elle djensätt $1?",
+       "viewdeleted": "Wis $1?",
+       "restorelink": "{{PLURAL:$1|en sletten øndreng|$1 sletten øndrenge}}",
+       "feedlinks": "Feed:",
+       "feed-invalid": "Udjylji abonnementjstyp.",
+       "feed-unavailable": "Där ä in syndikiirengsfeeds tildjængeli",
+       "site-rss-feed": "$1 RSS-feed",
+       "site-atom-feed": "$1 Atom-feed",
+       "page-rss-feed": "\"$1\" RSS-feed",
+       "page-atom-feed": "\"$1\" Atom-feed",
+       "red-link-title": "$1 (siden ä ett skrøwen ennu)",
+       "nstab-main": "Siid",
+       "nstab-user": "Brugesiid",
+       "nstab-media": "Mediesiid",
+       "nstab-special": "Specialsiid",
+       "nstab-project": "Projektsiid",
+       "nstab-image": "Fil",
+       "nstab-mediawiki": "Besked",
+       "nstab-template": "Skabelon",
+       "nstab-help": "Hjælp",
+       "nstab-category": "Kategori",
+       "mainpage-nstab": "Forsiid",
+       "nosuchaction": "Funksjonen finjs ett",
        "nosuchactiontext": "Funksje ångævet i'n URL ken ekke genkendes åf æ MediaWiki-softwær",
-       "nosuchspecialpage": "En sådan sonstside fendes ekke",
+       "nosuchspecialpage": "En sån specialsiid finjs ett",
        "nospecialpagetext": "Du harst bedt en sonstside'm, der ekke ken genkendes åf æ MediaWiki-softwær.",
        "error": "Fejl",
        "databaseerror": "Databasefejl",
-       "laggedslavemode": "Bemærk: Den veste side endholter mulegves ekke de nyeste ændrenger.",
-       "readonly": "Æ database er skrevebeskyttet",
-       "enterlockreason": "Skrev en begrundelse før æ skrevebeskyttelse, ve samt en vurderenge åf, hvornår æ skrevebeskyttelse åphæves ig'n",
-       "readonlytext": "Æ database er midlertedegt skrevebeskyttet. Førsøĝ venlegst senere.\n\nÅrsag til æ spærrenge: $1",
-       "readonly_lag": "Æ database er åtåmatisk blevet låst mens slæfdatabaseserverne synkroniserer ve'n master database",
+       "databaseerror-query": "Forspöyrgsel: $1",
+       "databaseerror-function": "Funksjon: $1",
+       "databaseerror-error": "Fejl: $1",
+       "laggedslavemode": "'''Bemærk:''' Den wisen siid inholje muliwis ett di nysti øndrenge.",
+       "readonly": "Databasi ä skriiwbeskøtten",
+       "enterlockreason": "Skriiw en begrunjels for skriiwbeskøttelsen, mä samt en wurdiireng å, nær skriiwbeskøttelsen ophäws idjen",
+       "readonlytext": "Databasi ä i yeblikke låsen for nyj poste å anje øndrenge, sånnsynliwis for rutinmæssi databaseweliholjels, hworette den will wær tebag te normal.\n\nAdministratori som hår låsen, djij forklarengen: $1",
+       "readonly_lag": "Databasi ä automatisk bløwen låsen mens slejvdatabaseserveren synkronisiir mä masterdatabasi",
        "internalerror": "Intern fejl",
        "internalerror_info": "Intern fejl: $1",
-       "filecopyerror": "Kan ekke kopiere'n file \"$1\" til \"$2\".",
-       "filerenameerror": "Kan ekke omdøbe'n file \"$1\" til \"$2\".",
-       "filedeleteerror": "Kan ekke slette'n file \"$1\".",
-       "directorycreateerror": "Kan ekke åprette katalåget \"$1\".",
-       "filenotfound": "Kan ekke finde'n file \"$1\".",
-       "unexpected": "Uventet værdi: \"$1\"=\"$2\".",
-       "formerror": "Fejl: Kan ekke åfsende formulær",
-       "badtitle": "Førkert skrevselenger",
-       "badtitletext": "Den ønskede sides nav var ekke tilladt, tøm æller æ side er førkert henvest frå en {{SITENAME}} på et andet språĝ.",
-       "viewsource": "Ves æ kelde",
+       "filecopyerror": "Ku ett kopiiir fili \"$1\" te \"$2\".",
+       "filerenameerror": "Ku ett omdøb fili \"$1\" te \"$2\".",
+       "filedeleteerror": "Ku ett slett fili \"$1\".",
+       "directorycreateerror": "Ku ett oprett mappen \"$1\".",
+       "filenotfound": "Ku ett finj fili \"$1\".",
+       "unexpected": "Uwentjen wärdi: \"$1\"=\"$2\".",
+       "formerror": "Fejl: Ku ett åsenj formular",
+       "badtitle": "Udjylji titel",
+       "badtitletext": "Titelen å onske siden war ett tillæt, tomm elle siden ä fortjiertj henwistj fra {{SITENAME}} på e ånj spraw.\nDen kan inholj iet elle flier tejn, som ett ma ånwenjs i title.",
+       "viewsource": "Wis tjeljtekst",
+       "viewsource-title": "Sie tjeljkoden te $1",
+       "actionthrottled": "Begrænsneng å hånjleng",
        "viewsourcetext": "Du ken dog se og åfskreve'n keldekode til æ side:",
-       "yourname": "Dit brugernav",
-       "yourpassword": "Din adgangskode",
-       "remembermypassword": "Husk min adgangskode til næste gang (for a maximum of $1 {{PLURAL:$1|day|days}})",
-       "login": "Loĝ på",
-       "nav-login-createaccount": "Åpret æ konto æller loĝ på",
-       "userlogin": "Åpret æ konto æller loĝ på",
-       "logout": "Loĝ åf",
-       "userlogout": "Loĝ åf",
-       "nologin": "Du har engen brugerkonto? $1.",
-       "nologinlink": "Åpret ny brugerkonto",
-       "createaccount": "Åpret en ny konto",
-       "gotaccount": "Du har ålerede en brugerkonto? '''$1'''.",
-       "gotaccountlink": "Loĝ på",
-       "loginsuccesstitle": "Du er nu loĝget på",
-       "loginsuccess": "Du er nu loĝget på {{SITENAME}} søm \"$1\".",
+       "welcomeuser": "Wælkomen, $1!",
+       "welcomecreation-msg": "Det konto ä bløwen opretten.\nGlæmm ett å ønda din [[Special:Preferences|instellenge for {{SITENAME}}]].",
+       "yourname": "Det brugenaun:",
+       "userlogin-yourname": "Brugenaun",
+       "userlogin-yourname-ph": "Intast det brugenaun",
+       "createacct-another-username-ph": "Intast brugenaun",
+       "yourpassword": "Din adgångskode",
+       "userlogin-yourpassword": "Adgångskode",
+       "userlogin-yourpassword-ph": "Intast din adgångskode",
+       "createacct-yourpassword-ph": "Intast en adgångskode",
+       "yourpasswordagain": "Djentast adgångskode:",
+       "createacct-yourpasswordagain": "Bekräft adgångskode",
+       "createacct-yourpasswordagain-ph": "Intast adgångskode idjen",
+       "remembermypassword": "Husk min brugenaun i denn browser (hyest $1 {{PLURAL:$1|daw}})",
+       "userlogin-remembermypassword": "Husk mej",
+       "userlogin-signwithsecure": "Brug siker forbinjels",
+       "yourdomainname": "Det domænnaun:",
+       "password-change-forbidden": "Du kan ett ønda adgångskoder på wikien.",
+       "externaldberror": "Där ä opstotj en fejl i i ekstern adgångsdatabase, elle du hår ett rettihede te å opdatiir denn.",
+       "login": "Logg på",
+       "nav-login-createaccount": "Oprett e konto ellerlogg på",
+       "userlogin": "Oprett e konto elle logg på",
+       "userloginnocreate": "Logg på",
+       "logout": "Logg å",
+       "userlogout": "Logg å",
+       "notloggedin": "Ikke loggen på",
+       "userlogin-noaccount": "Hår du ett e konto?",
+       "userlogin-joinproject": "Slut dej te {{SITENAME}}",
+       "nologin": "Du hår iet kronto? $1.",
+       "nologinlink": "Oprett e ny brugekonto",
+       "createaccount": "Oprett e ny brugekonto",
+       "gotaccount": "Hår du ållried e konto? '''$1'''.",
+       "gotaccountlink": "Logg på",
+       "userlogin-resetlink": "Hår du glommen din login-oplysnenge?",
+       "userlogin-resetpassword-link": "Glommen din adgångskode?",
+       "userlogin-helplink2": "Hjälp mä å logg på",
+       "userlogin-loggedin": "Du ä ållried loggen på som {{GENDER:$1|$1}}. Brug formulari nierfor te å logg på som i ånj bruge.",
+       "userlogin-createanother": "Oprett e ånj konto",
+       "createacct-emailrequired": "E-mailadress",
+       "createacct-emailoptional": "E-mailadress (walgfri)",
+       "createacct-email-ph": "Intast dej e-mailadress",
+       "createacct-another-email-ph": "Intast e-mailadress",
+       "createacct-captcha": "Sikerhedskontroll",
+       "createacct-imgcaptcha-ph": "Intast wenlist öwestoenje tekst",
+       "createacct-submit": "Oprett det konto",
+       "createacct-benefit-heading": "{{SITENAME}} laws å menske som du.",
+       "createacct-benefit-body1": "{{PLURAL:$1|redigiireng|redigiirenge}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|siid|side}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|nyli bidrawye|nyli bidrawya}}",
+       "loginsuccesstitle": "Du ä nu loggen på",
+       "loginsuccess": "'''Du ä nu loggen på {{SITENAME}} som \"$1\".'''",
        "nosuchuser": "Der er ig'n bruger ve navnet \"$1\". Kontrollér æ stavemåde ig'n, æller brug æ formulår herunder til at åprette en ny brugerkonto.",
-       "nosuchusershort": "Der er ig'n bruger ve navn \"$1\". Tjek din stavnenge.",
-       "nouserspecified": "Angæv venlegst et brugernavn.",
-       "wrongpassword": "Den endtastede adgangskode var førkert. Prøv ig'n.",
-       "wrongpasswordempty": "Du glemte at endtaste password. Prøv ig'n.",
+       "nosuchusershort": "Där är ien bruge we naun \"$1\". Tjekk din stawneng.",
+       "nouserspecified": "Åndjie wenlist e brugenaun.",
+       "wrongpassword": "Den intasten adgångskode war forkiertj. Forsyeg idjen.",
+       "wrongpasswordempty": "Du glomm å intast adgångskode. Forsyeg idjen.",
        "passwordtooshort": "Dit kodeort er før kårt. Det skal være mendst $1 tegn langt.",
        "mailmypassword": "Send et nyt adgangskode til min e-mail-adresse",
-       "passwordremindertitle": "Nyt password til {{SITENAME}}",
+       "passwordremindertitle": "Ny midletidi adgångskode te {{SITENAME}}",
        "passwordremindertext": "Nogen (sandsynlegves dig, frå'n IP-addresse $1)\nhar bedt at vi sender dig en ny adgangskode til at loĝge på {{SITENAME}} ($4)'m.\nÆ adgangskode før bruger \"$2\" er nu \"$3\".\nDu bør loĝge på nu og ændre din adgangskode.,\n\nHves en anden har bestilt den nye adgangskode æller hves du er kåmet i tanke dit gamle password og ekke mære vil ændre det'm,\nkenst du bare ignorere denne mail og førtsætte ve at bruge dit gamle password.",
-       "noemail": "Der er ekke åplyst en e-mail-adresse før bruger \"$1\".",
-       "passwordsent": "En ny adgangskode er sendt til æ e-mail-adresse,\nsøm er registræret før \"$1\".\nDu bør loĝge på og ændre din adgangskode straks æfter du harst modtaget æ e-mail.",
+       "noemail": "Där ä ett opløstj en e-mailadress for bruge \"$1\".",
+       "passwordsent": "En ny adgångskode ä senjen te e-mailadressen, som ä registriirtj for \"$1\".\nDu bör logg på å ønda din adgangskode ette du hår modtan e-maili.",
        "eauthentsent": "En bekrftelsesmail er sendt til den angævne e-mail-adresse.\n\nFør en e-mail ken modtages åf andre brugere åf æ {{SITENAME}}-mailfunksje, skel æ adresse og dens tilhørsførholt til denne bruger bekræftes. Følg venlegst anvesnengerne i denne mail.",
-       "retypenew": "Gentag ny adgangskode",
-       "bold_sample": "Fed skrevselenger",
-       "bold_tip": "Fed skrevselenger",
-       "italic_sample": "Skyn skrevselenger",
-       "italic_tip": "Skyn skrevselenger",
-       "link_sample": "Henvesnenge",
-       "link_tip": "Ensende henvesnenge",
-       "extlink_sample": "http://www.example.com Skrevselenger på henvesnenge",
-       "extlink_tip": "Utsende henvesnenge (husk http:// førgøret)",
-       "headline_sample": "Skrevselenger til åverskreft",
-       "headline_tip": "Skå 2 åverskreft",
-       "nowiki_sample": "Endsæt skrevselenger her søm ekke skal redigær påke wikiskrevselenger",
-       "nowiki_tip": "Ekke wikiskrevselenger utse",
-       "image_tip": "Endlejret billet",
-       "media_tip": "Henvesnenge til multimediagøret",
-       "sig_tip": "Din håndstep ve tidsstep",
-       "hr_tip": "Plat lenje (brug den sparsåmt)",
-       "summary": "Beskrevelse:",
-       "subject": "Emne/åverskreft:",
-       "minoredit": "Dette'r en mendre æller lile ændrenge.",
-       "watchthis": "Åvervåg denne ertikel",
-       "savearticle": "Gem side",
-       "preview": "Førhåndsvesnenge",
-       "showpreview": "Førhåndsvesnenge",
-       "showdiff": "Ves ændrenger",
-       "anoneditwarning": "Du arbejder uden at være loĝget på. Estedet før brugernav veses så'n IP-adresse i'n hersenengerskigt.",
-       "summary-preview": "Førhåndsvesnenge åf beskrevelselejne:",
+       "loginlanguagelabel": "Spraw: $1",
+       "pt-login": "Logg på",
+       "pt-login-button": "Logg på",
+       "pt-createaccount": "Oprett konto",
+       "pt-userlogout": "Logg å",
+       "retypenew": "Djentast ny adgångskode",
+       "passwordreset": "Nullstell adgångskode",
+       "bold_sample": "Fied tekst",
+       "bold_tip": "Fied tekst",
+       "italic_sample": "Kursiw tekst",
+       "italic_tip": "Kursiw tekst",
+       "link_sample": "Henwisneng",
+       "link_tip": "Intern henwisneng",
+       "extlink_sample": "http://www.example.com titel på henwisneng",
+       "extlink_tip": "Ekstern henwisneng (husk http:// præfiks)",
+       "headline_sample": "Tekst te öweskrift",
+       "headline_tip": "Typ 2-øweskrift",
+       "nowiki_sample": "Insätt tekst her som ett skal wikiformatiirs",
+       "nowiki_tip": "Ignoriir wikiformatiireng",
+       "image_tip": "Inlejretj fil",
+       "media_tip": "Henwisneng te fil",
+       "sig_tip": "Din signatur mä tidsstempel",
+       "hr_tip": "Horisontal linje (brug den spårsom)",
+       "summary": "Sammelfattneng:",
+       "subject": "Emn/öweskrift:",
+       "minoredit": "Detj ä en lie øndreng",
+       "watchthis": "Öwewåg siden",
+       "savearticle": "Slo siid op",
+       "preview": "Forhånjswisneng",
+       "showpreview": "Forhånjswisneng",
+       "showdiff": "Wis øndrenge",
+       "anoneditwarning": "<strong>Advarsel:</strong> Du ä ett loggen på. Din IP-adress will blyw offentjlien tedjängli, hwes du foretår noe øndrenge. Hwes du <strong>[$1 logge på]</strong> elle <strong>[$2 oprette e konto]</strong> will din redigiirenge blyw tilskrøwen det brugenaun, å du will få flier anjer fordiel.",
+       "summary-preview": "Forhånjswisneng å beskriiwelsen:",
        "blockedtext": "'''Dit brugernav æller din IP-adresse er blevet blokeret.'''\n\nÆ blokerenge er lavet åf $1. Æ begrundelse er ''$2''.\n\nÆ blokerenge starter: $8\nÆ blokerenge udløber: $6\nÆ blokerenge er rettet mod: $7\n\nDu ken kåle $1 æller en åf de andre [[{{MediaWiki:Grouppage-sysop}}|administratårer]] før at diskutere æ blokerenge.\nDu ken ekke bruge æ funksje 'e-mail til denne bruger' vemendre der er ångevet en gyldig email-addresse i dine\n[[Special:Preferences|kontoendstellenger]]. Din nuværende IP-addresse er $3, og blokerengs-ID er #$5. Ångev venlegst en æller begge i åle henvendelser.",
+       "loginreqlink": "logg på",
        "newarticle": "(Ny)",
-       "newarticletext": "'''{{SITENAME}} har endnu ekke nogen {{NAMESPACE}}-side ve nav {{PAGENAME}}.'''<br /> Du ken begynde en side ve at skreve i'n boks herunder. (se'n [$1 hjælp] før yderligere åplysnenger).<br /> Æller du ken [[Special:Search/{{PAGENAME}}|søĝe æfter {{PAGENAME}} i {{SITENAME}}].<br /> Ves det ekke var din meneng, så tryk på æ '''Tilbage'''- æller æ '''Back'''-knåp.",
-       "noarticletext": "'''{{SITENAME}} har ekke nogen side ve prånt dette nav.'''\n* Du ken '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} starte æ side {{PAGENAME}}]'''\n* Æller [[Special:Search/{{PAGENAME}}|søĝe æfter {{PAGENAME}}]] i andre ertikler\n----\n* Ves du har åprettet denne ertikel endenfør de sedste få minutter, så ken de skyldes at der er ledt førsenkelse i'n åpdaterenge åf {{SITENAME}}s cache. Vent venligst og tjek igen senere'n ertikel'm dukker åp, enden du førsøĝer at åprette'n ertikel igen.",
+       "newarticletext": "Du hår fuljtj en henwisneng te en siid som ennu ett finjs.\nFor å oprett siden skal du bedjynn å skriiw i boksi nierfor\n(sie [$1 hjälpsiden] for ytelia informasjon).\nHwes du ä her we en fejl, så trykk på '''tebag'''-knappi å dej browser.",
+       "noarticletext": "Där ä i yeblikke ett noe tekst på siden.\nDu kan [[Special:Search/{{PAGENAME}}|syeg ette sidenaune]] på anjer side,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} syeg i relatiirtje logge]\nelle [{{fullurl:{{FULLPAGENAME}}|action=edit}} oprett siden]</span>.",
+       "noarticletext-nopermission": "Där ä i yeblikke ett no tekst på siden.\nDu kan [[Special:Search/{{PAGENAME}}|syeg ette sidenaune]] på anje side,\nelle <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} syeg i relatiirtje loggliste]</span>,\nmen du hår ett tillædels te å oprett siden.",
        "previewnote": "'''Husk at dette er kun en førhåndsvesnenge, æ side er ekke gemt endnu!'''",
-       "editing": "Redigærer $1",
-       "editingsection": "Redigærer $1 (åfsnet)",
-       "copyrightwarning": "'''Husk: åpskrev engen websider, søm ekke tilhører dig selv, brug engen åphavsretsligt beskyttede værker uden tilladelse frå'n ejer!'''<br />\nDu lover os hermed, at du selv '''har skrevet skrevselenger''', at skrevselenger tilhører ålmenheden, er ('''åpværer hus'''), æller at æ '''åphavsrets-endehaver''' har gevet sen '''tilladelse'''. Ves denne skrevselenger ålerede er åfentliggkort andre steder, skrev det venligst på æ diskusjesside.\n<i>Bemærk venligst, at ål {{SITENAME}}-ertikler åtomatisk står under „$2“ (se $1 før lileskrevselenger). Ves du ekke vel, at dit arbejde her ændres og udbredes åf andre, så tryk ekke på „Gem“.</i>",
-       "templatesused": "Skablåner der er brugt på denne side:",
+       "editing": "Redigiire $1",
+       "creating": "Oprette $1",
+       "editingsection": "Redigiire $1 (åsnit)",
+       "copyrightwarning": "Bemærk wenlist å åll bidraw te {{SITENAME}} ä å betrakt som utdjøwen unje $2 (se $1 for detalje).\nHwes du ett onske å din tekst skal utsätts for nådesløs redigiirenge å å den kan blyw kopiiirtj ette forgodtbefinjenje, så skal du ett placiir den her.<br />\nDu låwe os åsså, å du siel hår forfatten teksten elle hår kopiiirtj den fra en public domain-tjelj elle en tilswarenje fri tjelj.\n'''Lägg åller material her som ä beskøttetj å anjas ophawsrett uen dæes tillædels!'''",
+       "templatesused": "{{PLURAL:$1|Skabelon|Skabelone}} som ä brugtj på siden:",
        "templatesusedpreview": "Følgende skablåner bruges åf denne ertikelførhåndsvesnenge:",
-       "template-protected": "(skrevebeskyttet)",
-       "template-semiprotected": "(skrevebeskyttet før ekke ånmeldte og nye brugere)",
-       "nocreatetext": "Æ'n åpdiin har begrænset åprettelse åf nye sider. Bestående sider ken ændres æller [[Special:UserLogin|loĝge på]].",
-       "recreate-moveddeleted-warn": "'''Advarsel: Du er ve at genskabe en tidligere slettet side.'''\n\nÅvervej det'm er passende at genåprette'n side. De slettede hersenenger før\ndenne side er vest nedenfør:",
-       "viewpagelogs": "Ves loglister før denne side",
-       "currentrev": "Nuværende hersenenge",
-       "revisionasof": "Hersenenger frå $1",
-       "revision-info": "Hersenenge frå $1 til $2",
-       "previousrevision": "←Ældre hersenenge",
-       "nextrevision": "Nyere hersenenge→",
-       "currentrevisionlink": "se nuværende hersenenge",
-       "cur": "nuværende",
-       "last": "forrige",
-       "page_first": "Startem",
-       "page_last": "Enden",
-       "histlegend": "Førklårenge: (nuværende) = førskel til den nuværende\nhersenenge, (førge) = førskel til den førge hersenenge, l = lile til mendre ændrenge",
-       "histfirst": "Ældste",
-       "histlast": "Nyeste",
-       "history-feed-item-nocomment": "$1 ve $2",
-       "history-title": "Hersengsskigte før \"$1\"",
-       "lineno": "Lenje $1:",
-       "compareselectedversions": "Sammenlign valgte hersenenger",
-       "editundo": "baĝgøt",
-       "prevn": "førge {{PLURAL:$1|$1}}",
-       "nextn": "nægste {{PLURAL:$1|$1}}",
-       "viewprevnext": "Ves ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchall": "ål",
-       "preferences": "Endstellenger",
-       "mypreferences": "Endstellenger",
-       "skin-preview": "Førhåndsvesnenge",
+       "template-protected": "(skriiwbeskøttetj)",
+       "template-semiprotected": "(dielwis beskyttetj)",
+       "hiddencategories": "Siden ä i {{PLURAL:$1|en sjulen kategori|$1 sjulen kategorie}}:",
+       "nocreatetext": "Serveri hår begrænstj oprettels å nyj side. Bestoenje side kan øndas elle [[Special:UserLogin|logg på]].",
+       "permissionserrorstext-withaction": "Du hår ett rettihede te å $2 å följenje {{PLURAL:$1|grunj}}:",
+       "recreate-moveddeleted-warn": "'''Advarsel: Du ä we å djenskab en tidlia sletten siid.'''\n\nÖwewæj om dä ä passenje å djenoprett siden. Slettnengs- å flyttlogger for siden ä wisen nierfor.",
+       "moveddeleted-notice": "Siden ä bløwen sletten.\nSlettnengs- å flyttlogger for siden ä wisen nierfor.",
+       "postedit-confirmation-saved": "Din redigiireng ä djiemen.",
+       "content-model-wikitext": "wikitekst",
+       "content-model-text": "ållminneli tekst",
+       "content-model-javascript": "JavaScript",
+       "content-json-empty-object": "Tomm objekt",
+       "content-json-empty-array": "Tomm array",
+       "viewpagelogs": "Wis loggliste for denn siid",
+       "currentrev": "Nuwærenje versjon",
+       "currentrev-asof": "Nuwærenje versjon fra $1",
+       "revisionasof": "Versjonen fra $1",
+       "revision-info": "Versjon fra $1 å $2 {{GENDER:$6|$2}}$7",
+       "previousrevision": "←Äälja versjon",
+       "nextrevision": "Nya versjon→",
+       "currentrevisionlink": "sie nuwærenje versjon",
+       "cur": "nuwærenje",
+       "last": "förri",
+       "page_first": "fösjt",
+       "page_last": "sist",
+       "histlegend": "Selektiir forskell: Markiir radiobokser å versjone som du will jämnför å trykk på enter elle knappi på bueni.<br />\n\nForklareng: <strong>({{int:cur}})</strong> = forskell te den nuwærenje versjon, <strong>({{int:last}})</strong> = forskell te den förri versjon, <strong>{{int:minoreditletter}}</strong> = lie øndreng.",
+       "histfirst": "älsti",
+       "histlast": "nysti",
+       "historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
+       "history-feed-item-nocomment": "$1 mä $2",
+       "rev-delundel": "ønda sijtbarhed",
+       "history-title": "$1: Versjonshistorik",
+       "difference-title": "Forskell mellem versjone å \"$1\"",
+       "lineno": "Linje $1:",
+       "compareselectedversions": "Djenför walgtje versjone",
+       "editundo": "fjän redigiireng",
+       "diff-multi-sameuser": "({{PLURAL:$1|En mellemliggenje versjon|$1 mellemliggenje versjone}} å sam brugari wises ett)",
+       "searchresults": "Syegresultate",
+       "searchresults-title": "Syegresultate for \"$1\"",
+       "prevn": "förri {{PLURAL:$1|$1}}",
+       "nextn": "nästi {{PLURAL:$1|$1}}",
+       "nextn-title": "Nästi {{PLURAL:$1|resultat|$1 resultate}}",
+       "shown-title": "Wis $1 {{PLURAL:$1|resultat|resultate}} pro siid",
+       "viewprevnext": "Wis ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-new": "<strong>Oprett siden \"[[:$1]]\" på wikien!</strong> {{PLURAL:$2|0=|Sie åsså siden som bløw funjen for din syegneng.|Sie åsså syegresultater som bløw funjen.}}",
+       "searchprofile-articles": "Inholjsside",
+       "searchprofile-images": "Multimedia",
+       "searchprofile-everything": "Ållt",
+       "searchprofile-advanced": "Avanciirtj",
+       "searchprofile-articles-tooltip": "Syeg i $1",
+       "searchprofile-images-tooltip": "Syeg ett file",
+       "searchprofile-everything-tooltip": "Syeg i ållt inholj (inklusiw diskusjonsside)",
+       "searchprofile-advanced-tooltip": "Syeg i bestemtje naunrum",
+       "search-result-size": "$1 ({{PLURAL:$2|1 uerd|$2 uerd}})",
+       "search-redirect": "(omdirigiireng $1)",
+       "search-section": "(åsnit $1)",
+       "search-suggest": "Mientje du: $1",
+       "searchall": "åll",
+       "search-showingresults": "{{PLURAL:$4|Resultat <strong>$1</strong> å <strong>$3</strong>|Resultat <strong>$1 - $2</strong> å <strong>$3</strong>}}",
+       "search-nonefound": "Syegnengen djij ien resultate.",
+       "powersearch-ns": "Syeg i naunrummen:",
+       "preferences": "Instellenge",
+       "mypreferences": "Instellenge",
+       "prefs-skin": "Utsienje",
+       "skin-preview": "Forhånjswisneng",
+       "prefs-rendering": "Utsienje",
        "youremail": "E-mail:",
-       "yourrealname": "Dit rigtege navn*",
-       "prefs-help-realname": "* <strong>Dit rigtege navn</strong> (valgfrit): Hves du vælger at åplyse dit navn hvil dette bleve brugt til at tilskreve dig dit arbejde.",
-       "grouppage-sysop": "{{ns:project}}:Administråtorer",
-       "newuserlogpage": "Brugeråprettelseslog",
-       "newuserlogpagetext": "Dett'er en log åver de senest åprettede brugere.",
-       "rightslog": "Rettigheds-logbåĝ",
-       "nchanges": "$1 {{PLURAL:$1|ændrenge|ændrenger}}",
-       "recentchanges": "Seneste ændrenger",
-       "recentchanges-feed-description": "Ve dette fiid ken du følge de seneste ændrenger på {{SITENAME}}.",
-       "rcnotefrom": "Nedenfør ses ændrengerne frå '''$2''' til '''$1''' vest.",
-       "rclistfrom": "Ves nye ændrenger startende frå $3 $2",
-       "rcshowhideminor": "$1 lile ændrenger",
-       "rcshowhidebots": "$1 råbotter",
-       "rcshowhideliu": "$1 regestrerede brugere",
-       "rcshowhideanons": "$1 anonyme brugere",
-       "rcshowhidepatr": "$1 bekiiknurede ændrenger",
-       "rcshowhidemine": "$1 egne bidråg",
-       "rclinks": "Ves seneste $1 ændrenger i de sedste $2 dåg<br />$3",
-       "diff": "førskel",
-       "hist": "skigte",
-       "hide": "skjul",
-       "show": "ves",
+       "yourrealname": "Det rijti naun:",
+       "prefs-help-realname": "Åndjiels å rijti naun ä walgfritj.\nHwes du wælge å oplys det naun, wil dä blyw brugtj te å tilskriiw dej det arbejt.",
+       "grouppage-sysop": "{{ns:project}}:Administrore",
+       "right-writeapi": "Brug redigiirengsdieli å API",
+       "newuserlogpage": "Brugeoprettelslogg",
+       "newuserlogpagetext": "Detj ä i logg öwe di siensti opretten bruga.",
+       "rightslog": "Rettihedslogg",
+       "action-history": "sie historik for siden",
+       "nchanges": "$1 {{PLURAL:$1|øndreng|øndrenge}}",
+       "enhancedrc-history": "historik",
+       "recentchanges": "Siensti øndrenge",
+       "recentchanges-legend": "Instellenge for siensti øndrenge",
+       "recentchanges-summary": "På denn siid kan du följ di siensti øndrenge på '''{{SITENAME}}'''.",
+       "recentchanges-feed-description": "Mä denn feed kan du följ di siensti øndrenge på {{SITENAME}}.",
+       "recentchanges-label-newpage": "Redigiirengen oprettje en ny siid",
+       "recentchanges-label-minor": "Detj ä en lie øndreng",
+       "recentchanges-label-bot": "Denn redigiireng bløw utförtj å i robott",
+       "recentchanges-label-unpatrolled": "Redigiireng ä ennu ett bløwen patruljiirtj.",
+       "recentchanges-label-plusminus": "Störrelsen på siden bløw øndan mä detj åntal bytes",
+       "recentchanges-legend-heading": "'''Forklareng:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sie åsså [[Special:NewPages|listen öwe nyj side]])",
+       "rcnotefrom": "Nierfor ä op te '''$1''' {{PLURAL:$5|øndreng|øndrenge}} sien '''$2''' wisen.",
+       "rclistfrom": "Wis nyj øndrenge startenje fra $3 kl. $2",
+       "rcshowhideminor": "$1 lie øndrenge",
+       "rcshowhideminor-show": "Wis",
+       "rcshowhideminor-hide": "Sjul",
+       "rcshowhidebots": "$1 robotte",
+       "rcshowhidebots-show": "Sjul",
+       "rcshowhidebots-hide": "Sjul",
+       "rcshowhideliu": "$1 registriirtje bruga",
+       "rcshowhideliu-show": "Wis",
+       "rcshowhideliu-hide": "Sjul",
+       "rcshowhideanons": "$1 anonym bruga",
+       "rcshowhideanons-show": "Wis",
+       "rcshowhideanons-hide": "Sjul",
+       "rcshowhidepatr": "$1 kontrolliirtje øndrenge",
+       "rcshowhidepatr-show": "Wis",
+       "rcshowhidepatr-hide": "Sjul",
+       "rcshowhidemine": "$1 ejne bidraw",
+       "rcshowhidemine-show": "Wis",
+       "rcshowhidemine-hide": "Sjul",
+       "rclinks": "Wis siensti $1 øndrenge i di sisti $2 daw<br />$3",
+       "diff": "forskell",
+       "hist": "historik",
+       "hide": "Sjul",
+       "show": "Wis",
        "minoreditletter": "l",
        "newpageletter": "N",
        "boteditletter": "b",
-       "recentchangeslinked": "Relaterede ændrenger",
-       "recentchangeslinked-feed": "Relaterede ændrenger",
-       "recentchangeslinked-toolbox": "Relaterede ændrenger",
-       "recentchangeslinked-title": "Ændrenger der vegånde til \"$1\"",
-       "recentchangeslinked-summary": "Denne sonstside beser de seneste ændrenger på de sider der henveses til. Sider på din åvervågnengsliste er vest ve '''fed''' skreft.",
-       "upload": "Læĝ æ billet åp",
-       "uploadbtn": "Læĝ æ gøret åp",
-       "uploadlogpage": "Åplægnengslog",
-       "listfiles": "Billetliste",
-       "file-anchor-link": "Billet",
-       "filehist": "Billetskigt",
-       "filehist-help": "Klik på'n dato/tid før at se den hersenenge åf gøret.",
-       "filehist-current": "nuværende",
-       "filehist-datetime": "Dato/tid",
-       "filehist-user": "Bruger",
-       "filehist-dimensions": "Treflåksjener",
-       "filehist-filesize": "Gøretstørrelse",
-       "filehist-comment": "Biskrevselenge",
-       "imagelinks": "Billethenvesnenger",
-       "linkstoimage": "De følgende sider henveser til dette billet:",
-       "nolinkstoimage": "Der er engen sider der henveser til dette billet.",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ette øndrengen",
+       "recentchangeslinked": "Relatiirtje øndrenge",
+       "recentchangeslinked-feed": "Relatiirtje øndrenge",
+       "recentchangeslinked-toolbox": "Relatiirtje øndrenge",
+       "recentchangeslinked-title": "Øndrenge som relatiire te \"$1\"",
+       "recentchangeslinked-summary": "Detj ä en list owe di siensti øndrenge å side, där links til fra en bestemtj siid (elle mälemme å en bestemtj kategori).\nSide på [[Special:Watchlist|din owewågnengslist]] ä wistj mä \"fied skrift\".",
+       "recentchangeslinked-page": "Sidenaun:",
+       "recentchangeslinked-to": "Wis øndrenge i side som henwise te åndjøwen siden i stæj",
+       "upload": "Lägg i fil op",
+       "uploadbtn": "Lägg i fil op",
+       "uploadlogpage": "Opläggnengslogg",
+       "filedesc": "Beskriiwels",
+       "license-header": "Licensiireng",
+       "imgfile": "fil",
+       "listfiles": "Fillist",
+       "file-anchor-link": "Fil",
+       "filehist": "Filhistorik",
+       "filehist-help": "Klikk på e dato/tid for å sietj versjonen å fili.",
+       "filehist-current": "nuwærenje",
+       "filehist-datetime": "Dato/tiid",
+       "filehist-thumb": "Thumbnail",
+       "filehist-thumbtext": "Thumbnail å versjonen fra $1",
+       "filehist-user": "Bruge",
+       "filehist-dimensions": "Dimensjone",
+       "filehist-filesize": "Filstörrels",
+       "filehist-comment": "Kommentar",
+       "imagelinks": "Filånwenjels",
+       "linkstoimage": "{{PLURAL:$1|Den följenje siid|Di följenje $1 side}} henwise te denn fil:",
+       "nolinkstoimage": "Där ä ien side som henwise te filen.",
        "sharedupload": "Denne gøret er en fælles læĝenge og ken bruges åf andre projekter.",
-       "uploadnewversion-linktext": "Læĝ en ny hersenenge åf denne gøret åp",
-       "mimesearch": "Søĝe æfter MIME-sårt",
-       "listredirects": "Henvesnengsliste",
-       "unusedtemplates": "Ekke brugte skablåner",
-       "randompage": "Tilfældig ertikel",
-       "randomredirect": "Tilfældige henvesnenger",
-       "statistics": "Sensje",
-       "doubleredirects": "Dåbbelte åmstyrenger",
-       "brokenredirects": "Bråken åmstyrenger",
-       "withoutinterwiki": "Sider uden henvesnenger til andre språĝ",
-       "fewestrevisions": "Sider ve de færreste hersenenger",
-       "nbytes": "$1 {{PLURAL:$1|åg|åger}}",
-       "nlinks": "{{PLURAL:$1|1 henvesnenge|$1 henvesnenger}}",
-       "nmembers": "- {{PLURAL:$1|1 ertikel|$1 ertikler}}",
-       "lonelypages": "Førældreløse ertikler",
-       "uncategorizedpages": "Uklyngede sider",
-       "uncategorizedcategories": "Uklyngede klynger",
-       "uncategorizedimages": "Ekke klyngede gøret",
-       "uncategorizedtemplates": "Ekke klyngede skablåner",
-       "unusedcategories": "Ubrugte klynger",
-       "unusedimages": "Ubrugte billeter",
-       "wantedcategories": "Brugte men ekke ånlagte klynger",
-       "wantedpages": "Ønskede ertikler",
-       "mostlinked": "Sider ve flest henvesnenger",
-       "mostlinkedcategories": "Mest brugte klynger",
-       "mostlinkedtemplates": "Hyppigst brugte skablåner",
-       "mostcategories": "Mest brugte sider",
-       "mostimages": "Mest brugte gøret",
-       "mostrevisions": "Sider ve de fleste ændrenger",
-       "prefixindex": "Åle sider (ve førgøret)",
-       "shortpages": "Kårte ertikler",
-       "longpages": "Långe ertikler",
-       "deadendpages": "Blendgydesider",
-       "protectedpages": "Skrevebeskyttede sider",
-       "listusers": "Brugerliste",
-       "newpages": "Nyeste ertikler",
-       "ancientpages": "Ældste ertikler",
-       "move": "Flyt",
-       "movethispage": "Flyt side",
-       "booksources": "Boĝkelder",
-       "specialloguserlabel": "Bruger:",
-       "speciallogtitlelabel": "Skrevselenge:",
-       "log": "Loglister",
-       "all-logs-page": "Åle loglister",
-       "allpages": "Åle ertikler",
-       "nextpage": "Næste side ($1)",
-       "prevpage": "Førge side ($1)",
-       "allpagesfrom": "Ves sider startende frå:",
-       "allarticles": "Åle ertikler",
-       "allpagessubmit": "Ves",
-       "allpagesprefix": "Ves sider ve førgøret:",
-       "categories": "Klynger",
-       "deletedcontributions": "Slettede brugerbidråg",
-       "deletedcontributions-title": "Slettede brugerbidråg",
-       "linksearch": "Søĝ i weblinks",
-       "linksearch-pat": "Søĝ æfter links til:",
-       "linksearch-ns": "Navnerum:",
-       "linksearch-ok": "Søĝ",
-       "linksearch-text": "Wildkårter søm \"*.wikipedia.org\" ken benyttes.<br />Understøttede pråtåkoller: <code>$1</code>",
-       "linksearch-line": "$2 linker til $1",
-       "linksearch-error": "Wildkårter må ken benyttes i'n stårt åf håstnavnet.",
-       "emailuser": "E-mail til denne bruger",
-       "watchlist": "Åvervågnengsliste",
-       "mywatchlist": "Åvervågnengsliste",
+       "sharedupload-desc-here": "Fili ä fra $1 å kan brugs på anje projekte. \nInholje på dens [$2 filbeskriiwelssiid] där ä wisen herunje.",
+       "uploadnewversion-linktext": "Lägg en ny versjon å fili op",
+       "upload-disallowed-here": "Du kan ett öweskriiw fili.",
+       "mimesearch": "Syeg ette MIME-typ",
+       "listredirects": "Henwisnengslist",
+       "unusedtemplates": "Ubrugtje skabelone",
+       "randompage": "Tefælji siid",
+       "randomredirect": "Tefælji henwisnenge",
+       "statistics": "Statistik",
+       "doubleredirects": "Doppelt omdirigiirenge",
+       "brokenredirects": "Defekt omdirigiirenge",
+       "withoutinterwiki": "Side uen henwisnenge te anjer spraw",
+       "fewestrevisions": "Sider mä di færsti versjone",
+       "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
+       "nlinks": "{{PLURAL:$1|1 henwisneng|$1 henwisnenge}}",
+       "nmembers": "- {{PLURAL:$1|1 mälemm|$1 mälemme}}",
+       "lonelypages": "Forääljaløs side",
+       "uncategorizedpages": "Ukategorisiirtje side",
+       "uncategorizedcategories": "Ukategorisiirtje kategorie",
+       "uncategorizedimages": "Ukategorisiirtje file",
+       "uncategorizedtemplates": "Ukategorisiirtje skabelone",
+       "unusedcategories": "Ubrugtje kategorie",
+       "unusedimages": "Ubrugtje file",
+       "wantedcategories": "Onske kategorie",
+       "wantedpages": "Onske side",
+       "mostlinked": "Side mä fliest henwisnenge",
+       "mostlinkedcategories": "Miest-brugtje kategorie",
+       "mostlinkedtemplates": "Miest-brugtje side",
+       "mostcategories": "Side mä di fliesti kategorie",
+       "mostimages": "Miest-brugtje file",
+       "mostrevisions": "Side mä di fliesti versjone",
+       "prefixindex": "Åll side som bedjynne mä",
+       "shortpages": "Kort side",
+       "longpages": "Lång side",
+       "deadendpages": "Blinjenjside",
+       "protectedpages": "Skriiwbeskøttetj side",
+       "listusers": "Brugelist",
+       "newpages": "Nysti side",
+       "ancientpages": "Älsti side",
+       "move": "Flytt",
+       "movethispage": "Flytt siden",
+       "pager-older-n": "{{PLURAL:$1|1 äälja|$1 äälja}}",
+       "booksources": "Buegtjilje",
+       "booksources-search-legend": "Syegneng ette byeg",
+       "booksources-search": "Syeg",
+       "specialloguserlabel": "Utförtj å:",
+       "speciallogtitlelabel": "Mol (titel elle {{ns:user}}:brugenaun til bruge):",
+       "log": "Loggliste",
+       "all-logs-page": "Åll offentjli logge",
+       "allpages": "Åll side",
+       "nextpage": "Nästi siid ($1)",
+       "prevpage": "Förri siid ($1)",
+       "allpagesfrom": "Wis side fra å mä:",
+       "allarticles": "Åll side",
+       "allpagessubmit": "Wis",
+       "allpagesprefix": "Wis side som bedjynne mä:",
+       "categories": "Kategorie",
+       "deletedcontributions": "Sletten brugebidraw",
+       "deletedcontributions-title": "Sletten brugebidraw",
+       "linksearch": "Syegneng i ekstern henwisnenge",
+       "linksearch-pat": "Syeg ette links te:",
+       "linksearch-ns": "Naunrum:",
+       "linksearch-ok": "Syeg",
+       "linksearch-text": "Wildcards som \"*.wikipedia.org\" kan benøtts.\nDär skal som minimum åndjies e topnivå-domæn som f. eks. \"*.org\".<br />\n{{PLURAL:$2|Unjestötten protokol|Unjestötten protokolle}}: $1 (bruge automatisk http:// hwes där ett ä åndjøwen no protokol).",
+       "linksearch-line": "$2 linke te $1",
+       "linksearch-error": "Wildcards ma kons benøtts i starti å hostnaune.",
+       "emailuser": "E-mail te bruge",
+       "watchlist": "Öwewågnengslist",
+       "mywatchlist": "Öwewågnengslist",
        "addedwatchtext": "Æ side \"[[:$1]]\" er blevet tilføjet til din [[Special:Watchlist|åvervågningsliste]]. Fremtidige ændrenger til denne side og den tilhørende diskusjeside hvil bleve listet der, og æ side hvil fremstå '''fremhævet''' i'n [[Special:RecentChanges|liste ve de seneste ændrenger]] før at gøre det lettere at finde den. Hves du senere hvilst fjerne'n side frå din åvervågningsliste, så klik \"Fjern åvervågnenge\".",
        "removedwatchtext": "Æ side \"[[:$1]]\" er blevet fjernet frå din åvervågnengsliste.",
-       "watch": "Ã\85vervåg",
-       "watchthispage": "Ã\85vervÃ¥g side",
-       "unwatch": "Fjern åvervågnenge",
+       "watch": "Ã\96wewåg",
+       "watchthispage": "Ã\96wewÃ¥g siden",
+       "unwatch": "Fjän öwewågneng",
        "watchlist-details": "Du har $1 {{PLURAL:$1|side|sider}} på din åvervågnengsliste (øn diskusjesider).",
        "wlshowlast": "Ves de seneste $1 têmer $2 dåg",
-       "watching": "Åvervåge …",
-       "unwatching": "Ekke åvervåge …",
-       "deletepage": "Slet side",
+       "watching": "Tilfye öwewågneng...",
+       "unwatching": "Fjäne öwewågneng...",
+       "deletepage": "Slett siid",
        "historywarning": "Advarsel: Æ side du erst ve at slette har en skigte:",
-       "confirmdeletetext": "Du erst ve permanent at slette en side\næller et billet sammen ve hæle den tilhørende skigte frå'n database. Bekræft venlegst at du virkelg hvilst gøre dette, at du førstårst konsekvenserne, og at du gør dette i åverensstemmelse ve\n[[{{MediaWiki:Policy-url}}]].",
-       "actioncomplete": "Gennemført",
-       "deletedtext": "\"$1\" er slettet. Sæg $2 før en førtegnelse åver de nyeste sletnenger.",
-       "dellogpage": "Sletnengslog",
-       "deletecomment": "Begrundelse:",
-       "deleteotherreason": "Anden/uddybende begrundelse:",
-       "deletereasonotherlist": "Anden begrundelse",
-       "rollbacklink": "fjern redigærenge",
-       "protectlogpage": "Liste åver beskyttede sider",
-       "prot_1movedto2": "[[$1]] flyttet til [[$2]]",
-       "protectcomment": "Begrundelse:",
-       "protectexpiry": "Udløb:",
-       "protect_expiry_invalid": "Æ udløbstiid er ugyldeg.",
-       "protect_expiry_old": "Æ udløbstiid legger i'n førtiid.",
-       "protect-text": "Her ken beskyttelsesståt før æ side '''$1''' ses og ændres.",
-       "protect-locked-access": "Den brugerkonto har ekke de nødvendege rettegheder til at æ ændre sidebeskyttelse. Her er de aktuelle beskyttelsesendstellenger før æ side '''„$1“:'''",
+       "confirmdeletetext": "Du ä we å slett en siid sammel mä hiel dens tilhörenje historik.\nBekräft wenlist å du wirkeli will djör detj, å du forstor konsekvenser, å å du djör dä i öwe-iensstæmmels mä [[{{MediaWiki:Policy-url}}|rettnengslinjer]].",
+       "actioncomplete": "Djennemförtj",
+       "deletedtext": "\"$1\" ä sletten. Sie $2 for en fortejnels öwe di nysti slettnenge.",
+       "dellogpage": "Slettnengslogg",
+       "deletecomment": "Begrunjels:",
+       "deleteotherreason": "Ånj/utdybenje begrunjels:",
+       "deletereasonotherlist": "Ånj begrunjels",
+       "rollbacklink": "roll tebag",
+       "rollbacklinkcount": "tebagför $1 {{PLURAL:$1|redigiireng|redigiirenge}}",
+       "protectlogpage": "Skriiwbeskøttelslogg",
+       "prot_1movedto2": "[[$1]] flytten te [[$2]]",
+       "protectcomment": "Begrunjels:",
+       "protectexpiry": "Utløb:",
+       "protect_expiry_invalid": "Utløbstiden ä udjylji.",
+       "protect_expiry_old": "Utløbstiden ligge i fortiden.",
+       "protect-text": "Her kan beskøttelsstatus for siden '''$1''' sies å øndas.",
+       "protect-locked-access": "Det brugekonto hår ett di nødwenji rettihede te å ønda sidebeskøttelsen. Her ä di aktuell beskøttelsinstellenge for siden '''„$1“:'''",
        "protect-cascadeon": "Denne side er del åf en nedarvet skrevebeskyttelse. Wen er endeholt i nedenstående {{PLURAL:$1|side|sider}}, søm er skrevebeskyttet ve tilvalg åf \"nedarvende sidebeskyttelse\" Æ sidebeskyttelse ken ændres før denne side, det påverker dog ekke'n kaskadespærrenge:",
        "protect-default": "Ål (standård)",
        "protect-fallback": "Kræv \"$1\"-tilladelse",
        "protect-level-autoconfirmed": "Spærrenge før ekke registrærede brugere",
        "protect-level-sysop": "Kan administratårer",
-       "protect-summary-cascade": "nedarvende",
-       "protect-expiring": "til $1 (UTC)",
-       "protect-cascade": "Nedarvende spærrenge – ål skabelåner, søm er endbundet i denne side spærres også.",
-       "protect-cantedit": "Du kenst ekke ændre beskyttelsesnivå før denne side, da du ekke kenst redigære føden.",
-       "protect-expiry-options": "1 tême:1 hour,1 dåĝ:1 day,1 uge:1 week,2 uger:2 weeks,1 måned:1 month,3 måneder:3 months,6 måneder:6 months,1 år:1 year,ubegrænset:indefinite",
-       "restriction-type": "Beskyttelsesståt",
-       "restriction-level": "Beskyttelseshøjde",
-       "undeletebtn": "Gendan!",
-       "namespace": "Naverum:",
-       "invert": "Næbiiner udvalg",
-       "blanknamespace": "(Ertikler)",
-       "contributions": "Brugerbidråg",
-       "mycontris": "Mine bidråg",
-       "contribsub2": "Før $1 ($2)",
-       "uctop": "(seneste)",
-       "month": "Måned:",
-       "year": "År:",
-       "sp-contributions-newbies-sub": "Før nybegyndere",
-       "sp-contributions-blocklog": "Blokerengslog",
-       "sp-contributions-deleted": "Slettede brugerbidråg",
-       "sp-contributions-talk": "diskusje",
-       "whatlinkshere": "Vat henveser hertil",
-       "whatlinkshere-title": "Sider der henveser til $1",
-       "linkshere": "De følgende sider henveser til '''„[[:$1]]“''':",
-       "nolinkshere": "Engen sider henveser til '''„[[:$1]]“'''.",
-       "isredirect": "åmstyrsside",
-       "istemplate": "Skablånvetagnenge",
-       "whatlinkshere-prev": "{{PLURAL:$1|førge|førge $1}}",
-       "whatlinkshere-next": "{{PLURAL:$1|nægste|nægste $1}}",
-       "whatlinkshere-links": "← henvesnenger",
-       "blockip": "Bloker bruger",
-       "ipboptions": "1 tême:1 hour,2 têmer:2 hours,6 têmer:6 hours,1 dåĝ:1 day,3 dåĝ:3 days,1 uge:1 week,2 uger:2 weeks,1 måned:1 month,3 måneder:3 months,1 år:1 year,ubegrænset:indefinite",
-       "ipblocklist": "Blokerede IP-adresser og brugernave",
-       "blocklink": "blåker",
-       "unblocklink": "åphæv blokerenge",
-       "contribslink": "bidråĝ",
-       "blocklogpage": "Blokerengslog",
-       "blocklogentry": "blokerede \"[[$1]]\" ve'n udløbstid på $2 $3",
+       "protect-summary-cascade": "nierarwenje",
+       "protect-expiring": "te $1 (UTC)",
+       "protect-cascade": "Beskøtt side som ä inkludiirtj på siden (nierarwenje beskøttels)",
+       "protect-cantedit": "Du kan ett ønda beskøttelsnivå for siden, fodä du ett hår tillædels te å redigiir den.",
+       "protect-expiry-options": "1 tiem:1 hour,1 daw:1 day,1 ug:1 week,2 uge:2 weeks,1 månj:1 month,3 månje:3 months,6 månje:6 months,1 or:1 year,ubegrænstj:infinite",
+       "restriction-type": "Beskøttelsstatus",
+       "restriction-level": "Beskøttelsnivå:",
+       "undeletebtn": "Djiensatt!",
+       "namespace": "Naunrum:",
+       "invert": "Utlokk walgtj naunrum",
+       "tooltip-invert": "Åkryds feltje for å sjul øndrenge te side i valgtje naunrume (å tilknøtten naunrume, hwes feltje åsså ä åkrydsen)",
+       "namespace_association": "Tilknøtten naunrum",
+       "tooltip-namespace_association": "Åkryds feltje for åsså å inkludiir diskusjons- elle emnnaunrume, som ä tilknøtten valgtje naunrume",
+       "blanknamespace": "(Hwoet)",
+       "contributions": "{{GENDER:$1|Brugebidraw}}",
+       "mycontris": "Bidraw",
+       "contribsub2": "For {{GENDER:$3|$1}} ($2)",
+       "uctop": "(siensti)",
+       "month": "Månj:",
+       "year": "Or:",
+       "sp-contributions-newbies-sub": "Fra nyj konto",
+       "sp-contributions-blocklog": "blokiirengslogg",
+       "sp-contributions-deleted": "sletten brugebidraw",
+       "sp-contributions-talk": "diskusjon",
+       "whatlinkshere": "Hwa henwise hertil",
+       "whatlinkshere-title": "Side som linke te $1",
+       "whatlinkshere-page": "Siid:",
+       "linkshere": "Di följenje side henwise te '''„[[:$1]]“''':",
+       "nolinkshere": "Ien side henwise te '''„[[:$1]]“'''.",
+       "isredirect": "omdirigiirengssiid",
+       "istemplate": "inlejreng",
+       "isimage": "filhenwisneng",
+       "whatlinkshere-prev": "{{PLURAL:$1|förri|förri $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|nästi|nästi $1}}",
+       "whatlinkshere-links": "← henwisnenge",
+       "whatlinkshere-hideredirs": "$1 omdirigiirenge",
+       "whatlinkshere-hidetrans": "$1 inkludiirenge",
+       "whatlinkshere-hidelinks": "$1 henwisnenge",
+       "whatlinkshere-filters": "Filtjre",
+       "blockip": "Blokiir {{GENDER:$1|bruge}}",
+       "ipboptions": "2 tiem:2 hours,1 daw:1 day,3 daw:3 days,1 ug:1 week,2 uge:2 weeks,1 månj:1 month,3 månje:3 months,6 månje:6 months,1 or:1 year,ubegrænstj:infinite",
+       "ipblocklist": "Blokiirtje bruga",
+       "blocklink": "blokiir",
+       "unblocklink": "ophäw blokiireng",
+       "contribslink": "bidraw",
+       "blocklogpage": "Blokiirengslogg",
+       "blocklogentry": "blokiirtje [[$1]] mä $2 som utløbstiid $3",
        "movepagetext": "Når du brugerst æ formulær herunder hvilst du få omdøbt en side og flyttet æ hæle side han skigte til det nye navn.\nDen gamle titel hvil bleve en omdirigærengsside til den nye titel.\nHenvesnenger til den gamle titel hvil ekke bleve ændret.\nSørg før at tjekke før dåbelte æller dårlege omdirigærenger.\nDu erst ansvarleg før, at ål henvesnenger stadeg pæger derhen, hvår det er æ mænenge de skal pæge.\n\nBemærk at æ side '''ekke''' ken flyttes hves der ålrede er en side ve den nye titel, medmendre den side er tøm æller er en omdirigærenge uden nogen skigte.\nDet betyder at du kenst flytte en side tilbåge hvår den kåm frå, hves du kåmer til at lave en fejl.\n\n'''ADVARSEL!'''\nDette ken være en drastisk og uventet ændrenge før en populær side; vær sekker på, at du førstår konsekvenserne åf dette før du førtsætter.",
-       "movepagetalktext": "Den tilhørende diskusjeside, hves der er en, hvil åtåmatisk bleve flyttet ve'n side '''medmendre:'''\n*Du flytter æ side til et andet navnerum,\n*En ekke-tøm diskusjeside ålrede eksisterer under det nye navn, æller\n*Du fjerner æ markærenge i'n boks nedenunder.\n\nI disse tilfælde er du nødt til at flytte æller sammenflette'n side manuelt.",
-       "movearticle": "Flyt side:",
-       "newtitle": "Til ny titel:",
-       "move-watch": "Denne side åvervåges",
-       "movepagebtn": "Flyt side",
-       "pagemovedsub": "Flytnenge gennemført",
-       "movepage-moved": "Æ side '''\"$1\" er flyttet til \"$2\"'''",
-       "articleexists": "En side ve det navn eksisterer ålrede, æller det\nnavn du harst valgt er ekke gyldegt. Vælg et andet navn.",
-       "movetalk": "Flyt også'n \"diskusjeside\", hves den eksisterer.",
-       "movelogpage": "Flyttelog",
-       "movereason": "Begrundelse:",
-       "revertmove": "gendan",
-       "export": "Utgøter sider",
-       "allmessages": "Åle beskeder",
-       "thumbnail-more": "Førstør",
-       "thumbnail_error": "Fejl ve åprettelse åf thumbnail: $1",
-       "importlogpage": "Importlog",
-       "tooltip-pt-userpage": "Min brugersside",
-       "tooltip-pt-mytalk": "Min diskusjesside",
-       "tooltip-pt-preferences": "Min endstellenger",
-       "tooltip-pt-watchlist": "Æ liste åver sider du åvervåger før ændrenger.",
-       "tooltip-pt-mycontris": "Æ liste åver dine bidråg",
-       "tooltip-pt-login": "Du åpførdres til at loĝge på, men dat er ekke plechnenge.",
-       "tooltip-pt-logout": "Loĝ åf",
-       "tooltip-ca-talk": "Diskusje æ indholt'm på'n side",
-       "tooltip-ca-edit": "Du ken redigære denne side. Brug venligst førhåndsvesnenge før du gemmer.",
-       "tooltip-ca-addsection": "Tilføj en biskrevselenge til denne diskusje.",
-       "tooltip-ca-viewsource": "Denne side er beskyttet. Du ken kegge på'n keldekode.",
-       "tooltip-ca-protect": "Beskyt denne side",
-       "tooltip-ca-delete": "Slet denne side",
-       "tooltip-ca-move": "Flyt denne side",
-       "tooltip-ca-watch": "Sæt denne side på din åvervågnengsliste",
-       "tooltip-ca-unwatch": "Fjern denne side frå din åvervågnengsliste",
-       "tooltip-search": "Søĝ på {{SITENAME}}",
-       "tooltip-n-mainpage": "Besøĝ æ Førsit",
-       "tooltip-n-portal": "Æ projekt'm, vat du ken gøre, vår tenger fendes",
-       "tooltip-n-currentevents": "Find baĝgrundsinformasje nessende begivenheder'm",
-       "tooltip-n-recentchanges": "Æ liste åver de seneste ændrenger æ'n wiki.",
-       "tooltip-n-randompage": "Gå til æ tilfældig ertikel",
-       "tooltip-n-help": "Vordan gør a ...",
-       "tooltip-t-whatlinkshere": "Liste ve ål sider søm henveser hertil",
-       "tooltip-t-contributions": "Se denne brugers bidråg",
-       "tooltip-t-emailuser": "Send en e-mail til denne bruger",
-       "tooltip-t-upload": "Læĝ æ billet, æ sunnåm æller anden mediagøret åp",
-       "tooltip-t-specialpages": "Liste ve ål sonst sider",
-       "tooltip-ca-nstab-user": "Se'n brugerside",
-       "tooltip-ca-nstab-project": "Vese'n wiki'mside",
-       "tooltip-ca-nstab-image": "Se'n billetside",
-       "tooltip-ca-nstab-template": "Se'n skablån",
-       "tooltip-ca-nstab-help": "Se'n hjælpeside",
-       "tooltip-ca-nstab-category": "Se'n klyngeside",
-       "tooltip-minoredit": "Marker dette søm en mendre ændrenge",
-       "tooltip-save": "Gem dine ændrenger",
-       "tooltip-preview": "Førhånds dine ændrenger, brug venligst denne funksje enden du gemmer!",
-       "tooltip-diff": "Ves velke ændrenger du har lavet i æ skrevselenger.",
-       "tooltip-compareselectedversions": "Se førskellene imellem de to valgte hersenenger åf denne side.",
-       "tooltip-watch": "Tilføj denne side til din åvervågnengsliste",
-       "previousdiff": "← Gå til førge førskel",
-       "nextdiff": "Gå til næste førskel →",
-       "file-info-size": "$1 × $2 pixel, gøretstørrelse: $3, MIME-senenge: $4",
-       "file-nohires": "Engen højere åpløsnenge fundet.",
-       "svg-long-desc": "SVG gøret, wønetstørrelse $1 × $2 pixel, gøretstørrelse: $3",
-       "show-big-image": "Hersenenge i større åpløsnenge",
-       "newimages": "Liste ve de nyeste billeter",
-       "bad_image_list": "Æ førmåt er:\n\nKun endholtet åf æ liste (lenjer startende ve *) bliver brugt. Den første henvesnenge på'n lenje er til det uønskede billet. Æfterfølgende lenker på samme lenjer er undtagelser, dvs. sider vår æ billet må åptræde.",
+       "movepagetalktext": "Den tilhørenje diskusjonssiid, hwes där ä jen, will automatisk blyw flytten mä siden '''mämenja:''' \n*En intj-tomm diskusjonssiid ållried eksistiire unje ny naune, elle\n*Du fjäne markiirengen i boksi nierunje.\n\nI dyss tilfåll ä du nød til å flytt elle sammelflætt siden manuellt.",
+       "movearticle": "Flytt siid:",
+       "newtitle": "Te ny titel:",
+       "move-watch": "Öwewåg siden",
+       "movepagebtn": "Flytt siid",
+       "pagemovedsub": "Flyttneng djennemførtj",
+       "movepage-moved": "Siden '''\"$1\" ä flytten te \"$2\"'''",
+       "articleexists": "En siid mä detj naun eksistiire ållried, elle naune du hår valgtj ä ett djylji. Välg e ånj naun.",
+       "movetalk": "Flytt åsså \"diskusjonssiden\", hwes den eksistiire.",
+       "movelogpage": "Flyttlogg",
+       "movereason": "Begrunjels:",
+       "revertmove": "djensätt",
+       "export": "Eksportiir side",
+       "allmessages": "Åll beskede",
+       "thumbnail-more": "Forstör",
+       "thumbnail_error": "Fejl we oprettels å thumbnail: $1",
+       "importlogpage": "Importlogg",
+       "tooltip-pt-userpage": "Din brugesiid",
+       "tooltip-pt-mytalk": "Din diskusjonssiid",
+       "tooltip-pt-preferences": "Din instellenge",
+       "tooltip-pt-watchlist": "Listen öwe side som du öwewåge for øndrenge",
+       "tooltip-pt-mycontris": "List öwe din bidraw",
+       "tooltip-pt-login": "Du opfordas te å logg på, men dä ä ett obligatorisk.",
+       "tooltip-pt-logout": "Logg å",
+       "tooltip-pt-createaccount": "Du opfordas te å oprett e konto å logg på, men dä ä ett obligatorisk",
+       "tooltip-ca-talk": "Diskusjon om inholje på siden",
+       "tooltip-ca-edit": "Redigiir siden",
+       "tooltip-ca-addsection": "Tilfye e ny åsnit",
+       "tooltip-ca-viewsource": "Siden ä beskyttetj.\nDu kan sietj på tjeljteksten.",
+       "tooltip-ca-history": "Tiidlia versjone å siden",
+       "tooltip-ca-protect": "Beskøtt siden",
+       "tooltip-ca-delete": "Slett siden",
+       "tooltip-ca-move": "Flytt siden",
+       "tooltip-ca-watch": "Sätt siden på din öwewågnengslist",
+       "tooltip-ca-unwatch": "Fjän siden fra din öwewågnengslist",
+       "tooltip-search": "Syeg på {{SITENAME}}",
+       "tooltip-search-go": "Wis en siid mä præcis naune, hwes den finjs",
+       "tooltip-search-fulltext": "Syeg ette side som inholje teksten",
+       "tooltip-p-logo": "Besyeg forsiden",
+       "tooltip-n-mainpage": "Besyeg forsiden",
+       "tooltip-n-mainpage-description": "Besyeg forsiden",
+       "tooltip-n-portal": "Om projekte, hwa du kan djör, hwor tingen finjs",
+       "tooltip-n-currentevents": "Finj bawgrunjsinformasjon om aktuell bedjøwenhede",
+       "tooltip-n-recentchanges": "En list öwe di siensti øndrenge i wikien.",
+       "tooltip-n-randompage": "Go te en tefælji siid",
+       "tooltip-n-help": "Stæjje hwor du finje hjälp",
+       "tooltip-t-whatlinkshere": "En list mä åll side som henwise hertil",
+       "tooltip-t-recentchangeslinked": "Siensti øndrenge i side som denn siid henwise til",
+       "tooltip-feed-atom": "Atom-feed for siden",
+       "tooltip-t-contributions": "Sie bidrawen te brugari",
+       "tooltip-t-emailuser": "Senj i e-mail te brugari",
+       "tooltip-t-upload": "Lägg e bilj elle i ånj mediafil op",
+       "tooltip-t-specialpages": "List öwe åll specialside",
+       "tooltip-t-print": "Printjerwenli utgaw å siden",
+       "tooltip-t-permalink": "Permanentj henwisneng te denn versjon å siden",
+       "tooltip-ca-nstab-main": "Sie inholjssiden",
+       "tooltip-ca-nstab-user": "Sie brugesiden",
+       "tooltip-ca-nstab-special": "Detj ä en specialsiid å kan ett redigiirs",
+       "tooltip-ca-nstab-project": "Wis projektsiden",
+       "tooltip-ca-nstab-image": "Sie filsiden",
+       "tooltip-ca-nstab-template": "Sie skabeloni",
+       "tooltip-ca-nstab-help": "Sie hjälpsiden",
+       "tooltip-ca-nstab-category": "Sie kategorisiden",
+       "tooltip-minoredit": "Markiir detj som en lie øndreng",
+       "tooltip-save": "Djiem din øndrenge",
+       "tooltip-preview": "Forhånjswis din øndrenge, brug wenlist funktionen ien du djieme!",
+       "tooltip-diff": "Wis hwelk øndrenge du hår lawen i teksten.",
+       "tooltip-compareselectedversions": "Sie forskellen imellem di twå walgtje versjone å siden.",
+       "tooltip-watch": "Tilfye siden te din öwewågnengslist",
+       "tooltip-rollback": "\"Rull tebag\" fjäne den sisti bidrawsyes redigiireng(e) å siden mä jet klikk",
+       "tooltip-undo": "\"Fjän redigiireng\" fjän denn redigiireng å åbner redigiirengssiden mä forhånjswisneng.\nDä djie mulihed for å tilfye en begrunjels i beskriiwelsen.",
+       "tooltip-summary": "Intast en kort opsummiireng",
+       "simpleantispam-label": "Anti-spamtjekk.\nUtfyll <strong>ETT</strong> detj!",
+       "pageinfo-toolboxlink": "Opløsnenge om siden",
+       "previousdiff": "← Go te förri øndreng",
+       "nextdiff": "Go te nästi øndreng →",
+       "file-info-size": "$1 × $2 puntje, filstörrels: $3, MIME-typ: $4",
+       "file-nohires": "Ien hya oplösneng funjen.",
+       "svg-long-desc": "SVG fil, basisstörrels $1 × $2 puntjer, störrels: $3",
+       "show-big-image": "Oprinneli fil",
+       "show-big-image-preview": "Störrels å forhånjswisnengen: $1.",
+       "show-big-image-other": "{{PLURAL:$2|Ånj  oplösneng|Anje oplösnenge}}: $1.",
+       "show-big-image-size": "$1 × $2 pixels",
+       "newimages": "Galleri mä di nysti bilje",
+       "bad_image_list": "Formate ä:\n\nKons inholje å liste (linje startenje mä *) blywe brugtj. Den fösjti henwisneng på en linje ä te uonske bilje. Etteföljenje links på sam linje ä unjtalse, dws. side hwor bilje ma opträ.",
        "metadata": "Metadata",
-       "metadata-help": "Denne gøret endeholder yderligere informasje, der søm regel stammer frå lysnåmer æller den brugte skænner. Ve'n æfterføgende bearbejdnenge ken nogle data være ændret.",
-       "metadata-expand": "Ves udvedede data",
-       "metadata-collapse": "Skjul udvedede data",
-       "metadata-fields": "Æ følgende felter frå EXIF-metadata i denne MediaWiki-beskedskrevselenger veses på billetbeskrevelsessider; yderligere lileskrevselenger ken veses.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
-       "namespacesall": "åle",
-       "monthsall": "åle",
-       "watchlisttools-view": "Se ændrede sider i'n åvervågnengsliste",
-       "watchlisttools-edit": "Redigær åvervågnengsliste",
-       "watchlisttools-raw": "Redigær rå åvervågnengsliste",
-       "version": "Informasje MediaWiki'm",
-       "specialpages": "Sonst sider",
-       "expandtemplates": "Engråt templater",
-       "expand_templates_title": "Context titel, før {{SITENAME}}:",
-       "expand_templates_input": "Input skrevselenger:",
-       "expand_templates_output": "Resultåt",
-       "expand_templates_xml_output": "XML output",
-       "expand_templates_ok": "OK",
-       "expand_templates_remove_comments": "Slet kommentår",
-       "expand_templates_generate_xml": "Se XML parse træ",
-       "expand_templates_preview": "Førhåndsvesnenge"
+       "metadata-help": "Denn fil inholje yelia informasjone, di som regel stamme fra digitalkamera elle brugtje scanneri. We en etteföljenje bearbejtneng kan noe data wær øndatj.",
+       "metadata-expand": "Wis utwiiden data",
+       "metadata-collapse": "Sjul utwiiden data",
+       "metadata-fields": "Metadatafeltje inkludiirtj i MediaWiki-systemtekste wises på biljbeskriwelsside nær metadatatabellen ä slotj sammel.\nÖwrije feltje will wær sjultj som standard.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-orientation": "Kamerarettneng",
+       "exif-xresolution": "Horisontal oplösneng",
+       "exif-yresolution": "Vertikal oplösneng",
+       "exif-datetime": "Lawrengstidspuntj",
+       "exif-make": "Kameraproducentj",
+       "exif-model": "Kameramodell",
+       "exif-software": "Brugtj software",
+       "exif-exifversion": "Exif-versjon",
+       "exif-colorspace": "Farwrum",
+       "exif-datetimeoriginal": "Optalstidspuntj",
+       "exif-datetimedigitized": "Digitalisiirengstidspuntj.",
+       "exif-orientation-1": "Normal",
+       "namespacesall": "åll",
+       "monthsall": "åll",
+       "watchlisttools-view": "Sie øndan side i öwewågnengslist",
+       "watchlisttools-edit": "Redigiir öwewågnengslist",
+       "watchlisttools-raw": "Redigiir row öwewågnengslist",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskusjon]])",
+       "version": "Informasjon om MediaWiki",
+       "specialpages": "Specialside",
+       "tag-filter": "[[Special:Tags|Tag]]filtjer:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
+       "logentry-delete-delete": "$1 {{GENDER:$2|slettetj}} siden $3",
+       "logentry-move-move": "$1 {{GENDER:$2|flyttje}} siden $3 te $4",
+       "logentry-newusers-create": "Brugekontoe $1 bløw {{GENDER:$2|opretten}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|lagtj}} $3 op",
+       "searchsuggest-search": "Syeg",
+       "expandtemplates": "Utfolj skabelone",
+       "expand_templates_title": "Sammelhängstitel, for {{FULLPAGENAME}} åsw.:",
+       "expand_templates_input": "Inputtekst:",
+       "expand_templates_output": "Resultat",
+       "expand_templates_xml_output": "XML-kode",
+       "expand_templates_ok": "Utfolj",
+       "expand_templates_remove_comments": "Slett kommentare",
+       "expand_templates_generate_xml": "Wis analysträj som XML",
+       "expand_templates_preview": "Forhånjswisneng"
 }
index bc12e9a..527cf04 100644 (file)
        "passwordreset-emailtitle": "Rincian akun nèng {{SITENAME}}",
        "passwordreset-emailtext-ip": "Ana uwong (mbok menawa Sampéyan, mawa angka IP $1) njaluk ganti tembung sandhiné Sampéyan ana ing {{SITENAME}} ($4). {{PLURAL:$3|Rèkèning|Rèkèning-rèkèning}} ngisor iki magepokan karo padunungané layang èlèktronik iki:\n\n$2\n\n{{PLURAL:$3|Tembung sandhi sawetara iki}} bakal kedaluwarsa ing {{PLURAL:$5|sak dina|$5 dina}}.\nSampéyan kudu mlebu log lan milih siji tembung sandhi anyar saiki. Yèn wong liya sing njaluk iki, utawa yèn Sampéyan jebul wis kèlingan tembung sandhiné sing lawas saéngga ora ana niyat kanggo ngganti, Sampéyan bisa ngejaraké wara-wara iki lan bacutaké nganggo tembung sandhiné lawas Sampéyan.",
        "passwordreset-emailtext-user": "Panganggo $1 seka {{SITENAME}} njaluk ganti tembung sandhiné Sampéyan ana ing {{SITENAME}} ($4). {{PLURAL:$3|Rèkèning|Rèkèning-rèkèning}} ngisor iki magepokan karo padunungané layang èlèktronik iki:\n\n$2\n\n{{PLURAL:$3|Tembung sandhi sawetara iki}} bakal kedaluwarsa ing {{PLURAL:$5|sak dina|$5 dina}}.\nSampéyan kudu mlebu log lan milih siji tembung sandhi anyar saiki. Yèn wong liya sing njaluk iki, utawa yèn Sampéyan jebul wis kèlingan tembung sandhiné sing lawas saéngga ora ana niyat kanggo ngganti, Sampéyan bisa ngejaraké wara-wara iki lan bacutaké nganggo tembung sandhiné lawas Sampéyan.",
-       "passwordreset-emailelement": "Jeneng panganggo: $1\nTembung sandhi sawetara: $2",
+       "passwordreset-emailelement": "Jeneng panganggo: \n$1\n\nTembung sandhi sawetara: \n$2",
        "passwordreset-emailsent": "Layang èlèktronik kanggo mbalèkaké tembung sandhi wis dikirim.",
        "passwordreset-emailsent-capture": "Layang èlèktronik kanggo mbalèkaké tembung sandhi wis dikirim, bisa didelok ngisor iki.",
        "passwordreset-emailerror-capture": "Layang èlèktronik pangèling tembung sandhi wis digawe, yaiku sing ditampilaké nèng ngisor iki, nanging ora kasil dikirim ing {{GENDER:$2|panganggo}}: $1",
        "emailuser": "Kirim e-mail panganggo iki",
        "emailuser-title-target": "Kirim surel ke {{GENDER:$1|pengguna}} ini",
        "emailuser-title-notarget": "Kirimi panganggo iki layang e-mail",
-       "emailpage": "Kirimi panganggo iki layang e-mail",
        "emailpagetext": "Panjenengan bisa migunakaké formulir ing ngisor kanggo ngirim layang-e marang {{GENDER:$1|panganggo}} iki.\nAlamat layang-e sing panjenengan lebokaké ing [[Special:Preferences|préferèsi panjenengan]] bakal dadi alamat \"Saka\" jroning layang-e kasebut, mula panampa layang-e bakal bisa mbalesi langsung menyang panjenengan.",
        "defemailsubject": "{{SITENAME}} layang èlèktronik saka panganggo \"$1\"",
        "usermaildisabled": "E-mail panganggo dinonaktifaké",
        "api-error-badtoken": "Kasalahan njero: Token èlèk.",
        "api-error-copyuploaddisabled": "Ngunggah saka URL dipatèni nèng sasana iki.",
        "api-error-duplicate": "Ana {{PLURAL:$1|[$2 berkas liya]|[$2 pirang-pirang berkas liya]}} sing wis ana nèng situsé saha isiné padha.",
-       "api-error-duplicate-archive": "Ana {{PLURAL:$1|[$2 berkas liya]|[$2 pirang-pirang berkas liya]}} sing wis ana nèng situsé saha isiné padha, nanging {{PLURAL:$1|kuwi|kuwi kabèh}} wis dibusak.",
-       "api-error-duplicate-archive-popup-title": "Gandhakaké {{PLURAL:$1berkas sing wis|berkas sing wis}} dibusak.",
-       "api-error-duplicate-popup-title": "Gandhakaké {{PLURAL:$1berkas|berkas}}.",
+       "api-error-duplicate-archive": "Ana {{PLURAL:$1|berkas liya|pirang-pirang berkas liya}} sing wis ana nèng situsé saha isiné padha, nanging {{PLURAL:$1|kuwi|kuwi kabèh}} wis dibusak.",
        "api-error-empty-file": "Berkas sing Sampéyan kirim kosong.",
        "api-error-emptypage": "Nggawé kaca kosong anyar ora dilikaké.",
        "api-error-fetchfileerror": "Kasalahan njero: Ana sing salah nalika ngètukaké berkas iki.",
index 58c5ed7..61a3382 100644 (file)
        "passwordreset-emailtitle": "ანგარიშის მონაცემები {{SITENAME}}-თვის",
        "passwordreset-emailtext-ip": "ვიღაცამ (შესაძლოა თქვენ, ამ IP-მისამართიდან $1) მოითხოვა თქვენი \nპაროლის თავიდან დაყენება საიტისათვის {{SITENAME}} ($4).\n{{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:\n\n$2\n\n{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.\nთქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.\nთუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი\nდა აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას\nდა გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.",
        "passwordreset-emailtext-user": "მომხმარებელმა $1 პროექტიდან {{SITENAME}} მოითხოვა თქვენი \nპაროლის თავიდან დაყენება საიტისათვის {{SITENAME}} ($4).\n{{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:\n\n$2\n\n{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.\nთქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.\nთუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი\nდა აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას\nდა გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.",
-       "passwordreset-emailelement": "მომხმარებლის სახელი: $1\nდროებითი პაროლი: $2",
+       "passwordreset-emailelement": "მომხმარებლის სახელი: \n$1\n\nდროებითი პაროლი: \n$2",
        "passwordreset-emailsent": "პაროლის თავიდან დასაყენებელი ელ.ფოსტა გაიგზავნა.",
        "passwordreset-emailsent-capture": "ქვემოთ ნაჩვენები პაროლის თავიდან დასაყენებელი წერილი გაიგზავნა.",
        "passwordreset-emailerror-capture": "ქვემოთ მოცემულია შექმნილი პაროლის დასაყენებელი წერილი, რომლის გაგზავნაც {{GENDER:$2|მომხმარებელთან}} ვერ მოხერხდა: $1 გამო",
        "emailuser": "გაუგზავნეთ იმეილი ამ მომხმარებელს",
        "emailuser-title-target": "ელ. ფოსტის მიწერა {{GENDER:$1|მომხმარებელთან}}",
        "emailuser-title-notarget": "ელ. ფოსტის გაგზავნა მომხმარებელთან",
-       "emailpage": "ელ. ფოსტა მომხმარებელს",
        "emailpagetext": "თუ ამ მომხმარებელმა თავის პარამეტრებში ელ. ფოსტის მოქმედი მისამართი მიუთითა, ქვემოთ მოყვანილი ფორმის შევსებისას შეგიძლიათ {{GENDER:$1|მისთვის}} შეტყობინების გაგზავნა. ელ. ფოსტის მისამართი, რომელიც [[Special:Preferences|თქვენს პარამეტრებში]] მიუთითეთ, დაფიქსირდება „გამომგზავნის“ ველში, რათა ადრესატმა პასუხის გაცემა შეძლოს.",
        "defemailsubject": "ელ-ფოსტა საიტის {{SITENAME}} მომხმარებლისგან „$1“",
        "usermaildisabled": "მომხმარებლის e-mail გათიშულია",
        "api-error-badtoken": "შიდა შეცდომა: ცუდი ტოკენი.",
        "api-error-copyuploaddisabled": "ამ სერვერზე URL-მისამართის საშუალებით ატვირთვა გამორთულია.",
        "api-error-duplicate": "უკვე {{PLURAL:$1|არსებობს [$2 სხვა ფაილი]|არსებობს [$2 სხვა მსგავსი ფაილი]}} ანალოგიური შინაარსით.",
-       "api-error-duplicate-archive": "საიტზე ადრე {{PLURAL:$1|უკვე იყო [$2 ფაილი]}} ანალოგიური შინაარსით, მაგრამ {{PLURAL:$1|ის წაიშალა|ისინი წაიშალა}}.",
-       "api-error-duplicate-archive-popup-title": "უკვე წაშლილი {{PLURAL:$1|ფაილის|ფაილის}} დუბლიკატი.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|ფაილის|ფაილის}} დუბლიკატი.",
+       "api-error-duplicate-archive": "საიტზე ადრე {{PLURAL:$1|უკვე იყო ფაილი}} ანალოგიური შინაარსით, მაგრამ {{PLURAL:$1|ის წაიშალა|ისინი წაიშალა}}.",
        "api-error-empty-file": "არჩეული ფაილი ცარიელია.",
        "api-error-emptypage": "ახალი, ცარიელი გვერდების შექმნა აკრძალულია.",
        "api-error-fetchfileerror": "შიდა შეცდომა: ფაილის მიღებისას მოხდა რაღაც შეცდომა.",
index 8b1a04d..d2ef3e0 100644 (file)
@@ -12,7 +12,8 @@
                        "Urhixidur",
                        "아라",
                        "SalemB",
-                       "Mezgoug"
+                       "Mezgoug",
+                       "Macofe"
                ]
        },
        "tog-underline": "Aderrer n yezdayen:",
        "passwordreset-emailtitle": "Tilɣa n umiḍan ɣef {{SITENAME}}",
        "passwordreset-emailtext-ip": "Yiwen (Ahat kečč/kem, seg tansa IP $1) yessutered awennez n awal n uɛaddi i {{SITENAME}} ($4). {{PLURAL:$3|Amiḍan n useqdac agi yeqqen|imiḍanen n iseqdacen agi qqenen}} s tansa e-mail agi :\n\n$2\n\n{{PLURAL:$3|Awal n uɛaddi uɛḍil agi ad i aff tasewti-s|Awalen n uɛaddi uɛḍilen agi ad affen taseweti nsen}} deg {{PLURAL:$5|yiwen ass|$5 ussan}}. Ilaq tura ad qqeneḍ dɣa ad freneḍ awal n uɛaddi amaynut. Lukan mačči d kečč/kem i xedmen asuter agi, naɣ tecfiḍ tura i awal n uɛaddi inek/inem, tzemreḍ ad eǧǧeḍ izen agi.",
        "passwordreset-emailtext-user": "Aseqdac $1 ɣef {{SITENAME}} yessutered awennez n awal n uɛaddi i {{SITENAME}} ($4). {{PLURAL:$3|Amiḍan n useqdac agi yeqqen|imiḍanen n iseqdacen agi qqenen}} s tansa e-mail agi :\n\n$2\n\n{{PLURAL:$3|Awal n uɛaddi uɛḍil agi ad i aff tasewti-s|Awalen n uɛaddi uɛḍilen agi ad affen taseweti nsen}} deg {{PLURAL:$5|yiwen ass|$5 ussan}}. Ilaq tura ad qqeneḍ dɣa ad freneḍ awal n uɛaddi amaynut. Lukan mačči d kečč/kem i xedmen asuter agi, naɣ tecfiḍ tura i awal n uɛaddi inek/inem, tzemreḍ ad eǧǧeḍ izen agi.",
-       "passwordreset-emailelement": "Isem n useqdac : $1\nAwal n uɛddi akudan : $2",
+       "passwordreset-emailelement": "Isem n useqdac : \n$1\n\nAwal n uɛddi akudan : \n$2",
        "passwordreset-emailsent": "Tirawt n uwennez n awal n uɛaddi tetwaceggaɛ.",
        "passwordreset-emailsent-capture": "Tirawt n uwennez n awal n uɛaddi tetwaceggaɛ, ẓeṛ-itt ddaw agi.",
        "passwordreset-emailerror-capture": "Tirawt n uwennez n awal n uɛaddi t-arewed, ẓeṛ-itt ddaw agi, lamaɛna aceggaɛ i {{GENDER:$2|umseqdac}} yefkad anezri : $1",
        "api-error-badtoken": "Tuccḍa tagensit : yir « tiddest ».",
        "api-error-copyuploaddisabled": "Issenɣal seg URL nsan ɣef aqeddac agi.",
        "api-error-duplicate": "{{PLURAL:$1|[Yella yakan $2 afaylu nniḍen]|[Llan yakan $2 ifuyla nniḍen]}} ɣef asmel agi s ugbur am winna.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|[Yella yakan $2 afaylu nniḍen]|[Llan yakan $2 ifuyla nniḍen]}} ɣef asmel agi s ugbur am winna, maca {{PLURAL:$1|yetwekkes|tetwekksen}}.",
-       "api-error-duplicate-archive-popup-title": "Sleg {{PLURAL:$1|afaylu|ifuyla}} yetwekksen yakan.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Afaylu|Ifuyla}} islagen.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Yella yakan afaylu nniḍen|Llan yakan ifuyla nniḍen}} ɣef asmel agi s ugbur am winna, maca {{PLURAL:$1|yetwekkes|tetwekksen}}.",
        "api-error-empty-file": "Afaylu id ceggɛeḍ d-ilem.",
        "api-error-emptypage": "Asnulfu n isebtar ilemawen ur yareg ara.",
        "api-error-fetchfileerror": "Tuccḍa tagensit : Yella kra ur yaɛeddan ara s luwqem deg tiririt n ufaylu.",
index a70f42d..5d881be 100644 (file)
        "nstab-template": "Үлгі",
        "nstab-help": "Анықтама беті",
        "nstab-category": "Санат",
+       "mainpage-nstab": "Басты бет",
        "nosuchaction": "Мұндай әрекет жоқ",
        "nosuchactiontext": "URL-дегі көрсетілген әрекет жарамсыз.\nМүмкін сіз URL теру барысында қате жібердіңіз немесе дұрыс емес сілтеме бойынша өттіңіз.\nБұл сондай-ақ {{SITENAME}} жобасында қолданылатын бағдарламалық жасақтама қатесін көрсетуі мүмкін.",
        "nosuchspecialpage": "Мұндай арнайы бет жоқ",
        "passwordreset-emailtitle": "{{SITENAME}} тіркелгісі туралы анықтама",
        "passwordreset-emailtext-ip": "Әлде кім (мүмкін сіз болуыңыз, $1 IP адресінен) {{SITENAME}} сайтында ($4) құпия сөзді өзгертуге өтініш білдірді. Мына қатысушы {{PLURAL:$3|аккаунты|аккаунттары}} осы электронды почта қатысты:\n\n$2\n\n{{PLURAL:$3|Бұл уақытша құпия сөз|Бұл уақытша құпия сөздер}} {{PLURAL:$5|бір күнде|$5 күнде}}уақыты аяқталады.\nСіз кіруіңіз және жаңа құпия сөзді таңдауыңыз керек. Егер бұл өтінішті басқа біреу жасаса, немесе сіз  бұрынғы құпия сөзіңізді еске түсірсеңіз және құпия сөзді ауыстыруды қаламасаңыз, сіз бұл хабарламаны ескермей және бұрынғы құпия сөзді қолдана беруіңізге болады.",
        "passwordreset-emailtext-user": "$1 есімді қатысушы {{SITENAME}} сайтында ($4) құпия сөзді өзгертуге өтініш білдірді. Мына қатысушы {{PLURAL:$3|аккаунт|аккаунттар}} осы електронды почта қатысты:\n\n$2\n\n{{PLURAL:$3|Бұл уақытша құпия сөз|Бұл уақытша құпия сөздер}} {{PLURAL:$5|бір күнде|$5 күнде}}уақыты аяқталады.\nСіз кіруіңіз және жаңа құпия сөзді таңдауыңыз керек. Егер бұл өтінішті басқа біреу жасаса, немесе сіз  бұрынғы құпия сөзіңізді еске түсірсеңіз, және құпия сөзді ауыстыруды қаламасаңыз, сіз бұл хабарламаны ескермей және бұрыңғы құпия сөзді қолдана беруіңізге болады.",
-       "passwordreset-emailelement": "Қатысушы есімі: $1\nУақытша құпия сөз: $2",
+       "passwordreset-emailelement": "Қатысушы есімі: \n$1\n\nУақытша құпия сөз: \n$2",
        "passwordreset-emailsent": "Құпия сөзді өзгерту электронды пошта арқылы жөнелтілді.",
        "passwordreset-emailsent-capture": "Құпия сөзді өзгерту электронды пошта арқылы жөнелтілді, ол төменде көрсетілген.",
        "passwordreset-emailerror-capture": "Құпиясөзді өзгерту электрон хаты жасалды, ол төменде көрсетілген, бірақ ол {{GENDER:$2|қатысушыға}} жөнелтілмеді: $1",
        "api-error-badtoken": "Ішкі қате: Жаман байрақша",
        "api-error-copyuploaddisabled": "URL бойынша жүктеу бұл серверде өшірілген",
        "api-error-duplicate": "{{PLURAL:$1|[$2 басқа файл]|[$2 кейбір басқа файл]}} әлеқашан сайтта басқа мазмұнда бар.",
-       "api-error-duplicate-archive-popup-title": "Бұл {{PLURAL:$1|файл|файл}} телнұсқасы әлдеқашан жойылған.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|file|files}} телнұсқасы.",
        "api-error-empty-file": "Сіз жіберген файл бос.",
        "api-error-emptypage": "Бос бетті жаңадан бастау рұқсат етілмейді.",
        "api-error-fetchfileerror": "Ішкі қателік: Файлды алу барысында қате кетті.",
index 6acf87f..0cc83c4 100644 (file)
        "passwordreset-emailtitle": "ព័ត៌មានលំអិតពីគណនីនៅលើ {{SITENAME}}",
        "passwordreset-emailtext-ip": "មាននរណាម្នាក់ (ប្រហែលជាខ្លួនអ្នកផ្ទាល់, មកពីអាស័យដ្ឋាន IP $1) បានស្នើសុំស្ដារពាក្យសម្ងាត់របស់អ្នកសម្រាប់ {{SITENAME}} ($4)។ {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះ\nមានជាប់ទាក់ទិននឹងអាសយដ្ឋានអ៊ីមែលនេះ៖\n\n$2\n\n{{PLURAL:$3|ពាក្យសម្ងាត់បណ្ដោះអាសន្ននេះ|ពាក្យសម្ងាត់បណ្ដោះអាសន្នទាំងនេះ}} និងហួសសុពលភាពក្នុងរយៈពេល {{PLURAL:$5|មួយថ្ងៃ|$5 ថ្ងៃ}}។\nយកល្អអ្នកគួរតែកត់ឈ្មោះចូលរួចជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយ។ ប្រសិនបើមាននរណាម្នាក់ផ្សេងធ្វើការស្នើសុំនេះ \nឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នក ហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ\nបំភ្លេចអំពីសារមួយនេះ ហើយបន្តប្រើប្រាស់ពាក្យសម្ងាត់ចាស់របស់អ្នកទៅបានហើយ។",
        "passwordreset-emailtext-user": "អ្នកប្រើប្រាស់ $1 នៅក្នុង {{SITENAME}} បានស្នើសុំស្ដារពាក្យសម្ងាត់របស់អ្នកនៅក្នុង {{SITENAME}} ($4)។\n {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះមានជាប់ទាក់ទិននឹងអាសយដ្ឋានអ៊ីមែលនេះ៖\n\n$2\n\n{{PLURAL:$3|ពាក្យសម្ងាត់បណ្ដោះអាសន្ននេះ|ពាក្យសម្ងាត់បណ្ដោះអាសន្នទាំងនេះ}} និងហួសសុពលភាពក្នុងរយៈពេល {{PLURAL:$5|មួយថ្ងៃ|$5 ថ្ងៃ}}។\nយកល្អអ្នកគួរតែកត់ឈ្មោះចូលរួចជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយ។ ប្រសិនបើមាននរណាម្នាក់ផ្សេងធ្វើការស្នើសុំនេះ \nឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នក ហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ\nបំភ្លេចអំពីសារមួយនេះ ហើយបន្តប្រើប្រាស់ពាក្យសម្ងាត់ចាស់របស់អ្នកទៅបានហើយ។",
-       "passwordreset-emailelement": "អត្តនាម៖ $1\nពាក្យសម្ងាត់បណ្ដោះអាសន្ន៖ $2",
+       "passwordreset-emailelement": "អត្តនាម៖ \n$1\n\nពាក្យសម្ងាត់បណ្ដោះអាសន្ន៖ \n$2",
        "passwordreset-emailsent": "អ៊ីមែលស្ដារពាក្យសម្ងាត់មួយត្រូវបានផ្ញើទៅហើយ។",
        "passwordreset-emailsent-capture": "អ៊ីមែលស្ដារពាក្យសម្ងាត់មួយដូចបង្ហាញខាងក្រោមត្រូវបានផ្ញើទៅហើយ។",
        "passwordreset-emailerror-capture": "អ៊ីមែលស្ដារពាក្យសម្ងាត់មួយដូចបង្ហាញខាងក្រោមត្រូវបានបង្កើតហើយ ប៉ុន្តែការផ្ញើទៅកាន់ {{GENDER:$2|អ្នកប្រើប្រាស់}}មិនបានសំរេចទេ៖ $1",
index fcd116d..b45065c 100644 (file)
@@ -52,7 +52,8 @@
                        "Lefion",
                        "Leeheonjin",
                        "Hwangjy9",
-                       "Kurousagi"
+                       "Kurousagi",
+                       "Macofe"
                ]
        },
        "tog-underline": "링크에 밑줄:",
        "passwordreset-emailtitle": "{{SITENAME}} 계정에 대한 자세한 정보",
        "passwordreset-emailtext-ip": "$1 IP 주소를 사용하는 누군가가 아마 자신이 {{SITENAME}} ($4)의 비밀번호 재설정을 요청하였습니다.\n이 이메일 주소와 연관된 {{PLURAL:$3|계정}}의 목록입니다:\n\n$2\n\n{{PLURAL:$3|이 임시 비밀번호}}는 {{PLURAL:$5|$5일}} 후에 만료됩니다.\n이 비밀번호로 로그인한 후 비밀번호를 바꾸십시오. 만약 당신이 아닌 다른 사람이 요청하였거나,\n원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고\n이전의 비밀번호를 계속 사용할 수 있습니다.",
        "passwordreset-emailtext-user": "{{SITENAME}} ($4)의 사용자 $1이 비밀번호 재설정을 요청하였습니다.\n이 이메일 주소와 연관된 {{PLURAL:$3|계정}}의 목록입니다:\n\n$2\n\n{{PLURAL:$3|이 임시 비밀번호}}는 {{PLURAL:$5|$5일}} 후에 만료됩니다.\n이 비밀번호로 로그인한 후 비밀번호를 바꾸십시오. 만약 당신이 아닌 다른 사람이 요청하였거나,\n원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고\n이전의 비밀번호를 계속 사용할 수 있습니다.",
-       "passwordreset-emailelement": "사용자 이름: $1\n임시 비밀번호: $2",
+       "passwordreset-emailelement": "사용자 이름: \n$1\n\n임시 비밀번호: \n$2",
        "passwordreset-emailsent": "비밀번호 재설정 이메일을 보냈습니다.",
        "passwordreset-emailsent-capture": "비밀번호 재설정 이메일이 발송되었으며, 아래에 나타나 있습니다.",
        "passwordreset-emailerror-capture": "비밀번호 재설정 이메일이 생성되어 아래에 보여져 있지만, {{GENDER:$2|사용자}}에게 발송하는 데에는 실패했습니다: $1",
        "tooltip-ca-nstab-main": "본문 보기",
        "tooltip-ca-nstab-user": "사용자 문서 보기",
        "tooltip-ca-nstab-media": "미디어 문서 보기",
-       "tooltip-ca-nstab-special": "이 문서는 특수 문서로, 문서 자체를 편집할 수 없습니다",
+       "tooltip-ca-nstab-special": "이 문서는 특수 문서로, 편집할 수 없습니다",
        "tooltip-ca-nstab-project": "프로젝트 문서 보기",
        "tooltip-ca-nstab-image": "파일 문서 보기",
        "tooltip-ca-nstab-mediawiki": "시스템 메시지 보기",
        "pageinfo-robot-index": "허용됨",
        "pageinfo-robot-noindex": "불허됨",
        "pageinfo-watchers": "문서를 주시하는 사용자 수",
+       "pageinfo-visiting-watchers": "이 문서를 최근에 방문한 주시하는 사용자 수",
        "pageinfo-few-watchers": "{{PLURAL:$1|주시하는 사용자}} $1명보다 적음",
        "pageinfo-redirects-name": "이 문서의 넘겨주기 수",
        "pageinfo-redirects-value": "$1개",
        "api-error-badtoken": "내부 오류: 토큰이 잘못되었습니다.",
        "api-error-copyuploaddisabled": "이 서버에서 URL을 통해 파일 올리기가 비활성화되어 있습니다.",
        "api-error-duplicate": "이 위키에 내용이 똑같은 {{PLURAL:$1|[$2 다른 파일]}}이 있습니다.",
-       "api-error-duplicate-archive": "같은 내용을 담고 있던 {{PLURAL:$1|[$2 다른 파일]}}이 있었지만 이 {{PLURAL:$1|파일}}은 삭제되었습니다.",
-       "api-error-duplicate-archive-popup-title": "중복된 {{PLURAL:$1|파일}}이 이미 삭제되었습니다.",
-       "api-error-duplicate-popup-title": "중복된 {{PLURAL:$1|파일}}입니다.",
+       "api-error-duplicate-archive": "같은 내용을 담고 있던 {{PLURAL:$1|다른 파일}}이 있었지만 이 {{PLURAL:$1|파일}}은 삭제되었습니다.",
        "api-error-empty-file": "올리려는 파일이 비어 있습니다.",
        "api-error-emptypage": "새 문서로 빈 문서를 만들 수 없습니다.",
        "api-error-fetchfileerror": "내부 오류: 파일을 불러오는 중 문제가 발생했습니다.",
index ee0c69e..e4bfd06 100644 (file)
@@ -8,7 +8,8 @@
                        "Reedy",
                        "Къарачайлы",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Ernác"
                ]
        },
        "tog-underline": "Джибериулени черт:",
        "passwordreset-capture-help": "Бу белгини салсагъыз, къошулуучугъа ийилген болджаллы пароль бла билдириу сизге кёргюзюллюкдю.",
        "passwordreset-email": "Электрон почтаны адреси:",
        "passwordreset-emailtitle": "{{SITENAME}} сайтдагъы тергеу джазыуну юсюнден билгиле",
-       "passwordreset-emailelement": "Къошулуучуну аты: $1\nБолджаллы пароль: $2",
+       "passwordreset-emailelement": "Къошулуучуну аты: \n$1\n\nБолджаллы пароль: \n$2",
        "passwordreset-emailsent": "Пароль бла e-mail ийилди.",
        "passwordreset-emailsent-capture": "Ийилген пароль эсгертиу e-mail тюбюрекде берилибди.",
        "passwordreset-emailerror-capture": "Пароль эсгертиу e-mail генерация этилди (тюбюрекде берилибди), аны {{GENDER:$2|къошулуучугъа}} ашырыу джетишимсиз болду, чурум: $1",
        "emailuser": "Къошулуучугъа письмо",
        "emailuser-title-target": "{{GENDER:$1|Къошулуучугъа}} электрон джазма джазыу",
        "emailuser-title-notarget": "Электрон джазма джазыу",
-       "emailpage": "Къошулуучугъа письмо джибер",
        "emailpagetext": "Бу къошулуучуну почтасына письмо джиберир ючюн бу форманы толтурургъа боллукъсуз.\nЫзына адрес болуб, сиз [[Special:Preferences|джарашдырыуларыгъызда]] джазгъан адрес белгиленникди, ол себебден сизни письмогъузну аллыкъ сизге тюз джууаб берирге мадарлы боллукъду.",
        "defemailsubject": "{{SITENAME}} — $1 къошулуучудан билдириу",
        "usermaildisabled": "Къошулуучуну электрон почтасы джукъланыбды",
        "searchsuggest-search": "Излеу",
        "searchsuggest-containing": "ичиндегиси…",
        "api-error-badtoken": "Ич халат: терс токен.",
-       "api-error-duplicate-popup-title": "Дубликат {{PLURAL:$1|файл|файлла}}",
        "api-error-empty-file": "Сиз ийген файлны ичи бошду.",
        "api-error-emptypage": "Ичи бош болгъан джангы бетле къураргъа болмайды.",
        "api-error-file-too-large": "Сиз ийген файл асыры уллуду.",
index a0881dd..8269b09 100644 (file)
        "disclaimerpage": "Project:Impressum",
        "edithelp": "Hölp för et Beärbeijde",
        "helppage-top-gethelp": "Hölp",
-       "mainpage": "Haupsigg",
-       "mainpage-description": "Haupsigg",
+       "mainpage": "Houpsigg",
+       "mainpage-description": "Houpsigg",
        "policy-url": "Project:Rejelle",
        "portal": "Övver {{GRAMMAR:Akkusativ|{{ucfirst:{{SITENAME}}}}}} för Metmaacher",
        "portal-url": "Project:Metmaacher Pooz",
        "nstab-template": "Schablohn",
        "nstab-help": "Hölp",
        "nstab-category": "Saachjropp",
+       "mainpage-nstab": "Houpsigg",
        "nosuchaction": "Di Aufgab („<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">action</code>“) känne mer nit",
        "nosuchactiontext": "<strong>Na su jet:</strong> De Aufgab us däm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i>, di do hinger „<code>action=</code>“ dren steiht, joh, di kennt heh dat Wiki jar nit.\nDo künns Desch vertipp han, udder ene verkeehte Lengk hät Desch noh heh jebraat.\nEt künnt sesch och öm ene Fäähler en dä Sofware fum Wiki handelle.",
        "nosuchspecialpage": "Esu en {{int:nstab-special}} ha'mer nit",
        "passwordreset-emailtitle": "Einzelheite för der Zohjang op {{GRAMMAR:Akkusativ|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "Do künns et sällver jewääse sin, öhnswää em Internet hät vun dä IP-Adräß $1 öm\ne neu Paßwoot jefrooch, för Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}\n$4\nHeh {{PLURAL:$3|dä Metmaacher hät|di Metmaacher han|hät keine Metmaacher}} Ding e-mail Addräß:\n\n$2\n\n{{PLURAL:$3|Dat Zweschepaßwoot leuf|Di Zweschepaßwööter loufe|Kein Zweschepaßwoot leuf}} en {{PLURAL:$5|enem Daach|$5 Dääsch|keinem Daach}} uß.\nDonn Desch jäz enlogge, un e neu Paßwoot faßlääje. Wann ene Andere wi\nDo dat heh aanjestüßße hät, udder wann De Desch widder aan Ding Paßwoot\nentsenne kanns, un et nimmih ändere wells, udder es suwwisu weiß, dann\nmoß De jäz jaa nix donn, un kanns Ding Paßwoot wigger bruche.",
        "passwordreset-emailtext-user": "Dä Metmaacher $1 vun {{GRAMMAR:Dativ|{{SITENAME}}}} hät öm e neu Paßwoot jefrooch,\nför Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}\n$4\nHeh {{PLURAL:$3|dä Metmaacher hät|di Metmaacher han|hät keine Metmaacher}} Ding e-mail Addräß:\n\n$2\n\n{{PLURAL:$3|Dat Zweschepaßwoot leuf|Di Zweschepaßwööter loufe|Kein Zweschepaßwoot leuf}} en {{PLURAL:$5|enem Daach|$5 Dääsch|keinem Daach}} uß.\nDonn Desch jäz enlogge, un e neu Paßwoot faßlääje. Wann ene Andere wi\nDo dat heh aanjestüßße hät, udder wann De Desch widder aan Ding Paßwoot\nentsenne kanns, un et nimmih ändere wells, udder es suwwisu weiß, dann\nmoß De jäz jaa nix donn, un kanns Ding Paßwoot wigger bruche.",
-       "passwordreset-emailelement": "Metmaacher Name: $1\nEijmohl-Paßwoot: $2",
+       "passwordreset-emailelement": "Metmaacher Name: \n$1\n\nEijmohl-Paßwoot: \n$2",
        "passwordreset-emailsent": "En <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> met Aanjahbe zom neue Paßwoot för der Zohjang heh es verschek.",
        "passwordreset-emailsent-capture": "En <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> met Aanjahbe zom neue Paßwoot för der Zohjang heh es verschek woode. Heh dronger kanns De se lässe.",
        "passwordreset-emailerror-capture": "En <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> met Aanjahbe zom neue Paßwoot för der Zohjang heh sullt verschek wääde, ävver dat Verscheke aan {{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} $2 hät nit jeflup: $1",
        "changeemail-password": "Ding Passwoot {{GRAMMAR:en 3|{{ucfirst:{{SITENAME}}}}}}:",
        "changeemail-submit": "Lohß jonn!",
        "changeemail-throttled": "Do häs zoh öff versöhk, enzelogge. Waat $1 Ih dat De es widder probeers.",
+       "changeemail-nochange": "Jivv_en ander neuje Adräß fö_de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>",
        "resettokens": "Neue Schlößel maache",
        "resettokens-text": "Do kanns neue Schlößel maache lohße för op beschtemmpte päsöhnlesche Daate uohjriife ze künne, di met Dingem Zohjang heh ze donn han.\n\nDonn dat op jeede Fall, wann se enem Andere bikannt jewoode sin, udder wann Dinge Zohjang jeknack woode es.",
        "resettokens-no-tokens": "Et sin kein Schlößele doh, för neu ze maache.",
        "uploadjava": "Dat es en Sammel_Dattei em ZIP-Fommaat, woh en Java-.class-Datei dren shtich.\nJava-Datteie huhlaade es nit zohjelohße, weil mer domet de Enshtellunge ömjonn kann, di der ẞörver schöze un däm sing Sescherheit jarranteere.",
        "upload-source": "Wo de Daate herkumme",
        "sourcefilename": "Dattei zem huhlahde:",
-       "sourceurl": "<i lang=\"en\">URL</i> för vun eronger ze laade",
+       "sourceurl": "<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Uniform Ressource Locator\">URL</i>  för vun eronger ze lahde",
        "destfilename": "Unger däm Datteinahme avschpeijschere:",
        "upload-maxfilesize": "Der jrühtßte müjjelesche Ömfang för en Dattei es $1.",
        "upload-description": "Övver di Dattei",
        "booksources-text": "Hee noh küdd_en Leßß met Websigge,\nwo mir {{GRAMMAR:Dative fun|{{SITENAME}}}} nix wigger med ze donn hänn,\nwo mer jät övver Böösher erfaare\nun zom Dëijl och Böösher koufe kann.\nDoför moßß De Desh mannshmool allodengs eetß ennß aanmällde,\nwat Koßte un Jefaare met sesh brenge künndt.\nWo_t jëijdt,\njonn di Lengkß hee tirrägg_op dat Booch,\nwadd_Er am Sööke sidt.",
        "booksources-invalid-isbn": "De ISBNummer schingk verkeeht ze sin. Loohr ens donoh, woh se häe kütt.",
        "specialloguserlabel": "Dä Metmaacher, dä et jedonn hät:",
-       "speciallogtitlelabel": "Betroffe wohr: (dä Tittel vun ener Sigg udder enem Metmaacher singe Name)",
+       "speciallogtitlelabel": "Betroffe wohr: (dä Tittel vun ener Sigg udder enem Metmaacher singe Nahme)",
        "log": "Logböcher ehr Opzeichnunge (all)",
        "all-logs-page": "All de öffentlich Logböcher",
        "alllogstext": "Dat heh es en jesampte Less us all dä Logböhscher {{GRAMMAR:en|{{SITENAME}}}}.\nDä Logböhscher ehre Enhald kam_mer all noh de Aat, de Metmaacher,\noder de Sigge ehr Name, un esu, einzel zoteht aanluhre.\nBei dä Name moß mer op Jruß- un Kleinschreff aachjävve.",
        "tooltip-ca-nstab-main": "Don dä Enhallt vun dä Sigg aanzeije",
        "tooltip-ca-nstab-user": "Donn di Metmaachersigg aanzeije",
        "tooltip-ca-nstab-media": "Don de Sigg övver en Mediendatei aanzeije",
-       "tooltip-ca-nstab-special": "Dat is en {{int:nstab-special}}. Do kam'mer nix draan verändere.",
+       "tooltip-ca-nstab-special": "Dat is en {{int:nstab-special}}. Do kam_mer nix draan verändere.",
        "tooltip-ca-nstab-project": "Donn di Projäksigg aanzeije",
        "tooltip-ca-nstab-image": "Don di Sigg övver heh di Dattei aanzeije",
        "tooltip-ca-nstab-mediawiki": "En Täx vum MehdijaWikki-System aanzeije",
        "version-entrypoints-header-entrypoint": "Enschteesch",
        "version-entrypoints-header-url": "<i lang=\"en\">URL</i>",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Der Pad noh de Atikele]",
-       "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Der Pad noh de Skrepte]",
+       "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Der Pahd noh de Skrepte]",
        "version-libraries": "Enschtallehrte Projrammsammlonge",
        "version-libraries-library": "Projrammsammlong",
        "version-libraries-version": "Väsjohn",
        "api-error-badaccess-groups": "Do häs nit et Rääsch, Datteije en heh dat Wiki huhzelaade.",
        "api-error-badtoken": "Fähler: et Kännzeijsche (<i lang=\"en\">token</i>) es kappott.",
        "api-error-copyuploaddisabled": "Et Huhlaade vun enem <i lang=\"en\">URL</i> es op däm ẞööver heh nit zohjelohße.",
-       "api-error-duplicate": "Mer han em Wiki ald {{PLURAL:$1|[$2 en Dattei]|[$2 $1 andere Datteije]|[$2 kein Dattei]}} mem akeraat sellve Enhalldt.",
-       "api-error-duplicate-archive": "Mer hatte {{PLURAL:$1|[$2 en ander Dattei]|[$2 ander Datteije]|[$2 kein ander Dattei]}} heh em Wiki mem sellve Enhalt, ävver se {{PLURAL:$1|es|sen|es}} ald fottjeschmeße woode.",
-       "api-error-duplicate-archive-popup-title": "Ald fottjeschmeße {{PLURAL:$1|es de dubbelte Datei:|sen de dubbelte Dateije:|es kein dubbelte Datteije woode.}}",
-       "api-error-duplicate-popup-title": "Di {{PLURAL:$1|Dattei es|Datteie sen|Dattei es}} ald doh.",
+       "api-error-duplicate": "Mer han em Wiki ald {{PLURAL:$1|[en Dattei]|[$1 andere Datteije]|[kein Dattei]}} mem akeraat sellve Enhalldt.",
+       "api-error-duplicate-archive": "Mer hatte {{PLURAL:$1|[en ander Dattei]|[ander Datteije]|[kein ander Dattei]}} heh em Wiki mem sellve Enhalt, ävver se {{PLURAL:$1|es|sen|es}} ald fottjeschmeße woode.",
        "api-error-empty-file": "En dä huhjelaade Dattei wohr jaa_nix dren.",
        "api-error-emptypage": "Neu läddijje Sigge aanzelääje es verbodde.",
-       "api-error-fetchfileerror": "Fähler: Beim eronger Laade hät jät nit jeflupp.",
+       "api-error-fetchfileerror": "Fähler: Beim eronger Lahde hät jät nit jeflupp.",
        "api-error-fileexists-forbidden": "En Dattei mem Name „$1“ es ald doh un mer künne se nit övverschriive.",
        "api-error-fileexists-shared-forbidden": "En Dattei mem Name „$1“ es ald en ene jemeinsamme Sammlong, un mer künne se nit övverschriive.",
        "api-error-file-too-large": "De huhjelaade Dattei wohr ze jruß.",
index ddf03c9..b877a61 100644 (file)
        "passwordreset-domain": "Domain:",
        "passwordreset-email": "Navnîşana e-nameyê:",
        "passwordreset-emailtitle": "Hûragahiyên hesab li ser {{SITENAME}}",
-       "passwordreset-emailelement": "Navê bikarhêner:$1\nŞîfreya niha:$2",
+       "passwordreset-emailelement": "Navê bikarhêner:\n$1\n\nŞîfreya niha:\n$2",
        "passwordreset-emailsent": "E-nameyeke bibîrxistinê hate şandin.",
        "changeemail": "E-nameyê biguherîne",
        "changeemail-oldemail": "Navnîşana E-nameya niha:",
        "mailnologintext": "Te gireke xwe [[Special:UserLogin|qeydbikê]] û adrêsa e-nameyan di [[Special:Preferences|tercihên xwe]] da nivîsandibe ji bo şandina e-nameyan ji bikarhênerên din ra.",
        "emailuser": "Ji bikarhêner re e-name bişîne",
        "emailuser-title-notarget": "E-nameyekê ji bikarhêner re bişîne",
-       "emailpage": "E-nameya bikarhêner",
        "defemailsubject": "{{SITENAME}} e-name",
        "noemailtitle": "Navnîşana e-name tune",
        "emailusername": "Navê bikarhêner:",
index 0dec0a0..8c5fa95 100644 (file)
@@ -22,7 +22,6 @@
        "tog-hideminor": "Соңку өзгөрүүлөрдүн тизмесинен майда өзгөрүүлөрдү жашыруу",
        "tog-hidepatrolled": "Соңку өзгөрүүлөрдүн тизмесинен күзөттөлгөн оңдоолорду жашыруу",
        "tog-newpageshidepatrolled": "Жаңы барактар тизмесинен күзөттөлгөн барактарды жашыруу",
-       "tog-hidecategorization": "Барактардын категорияларын жашыруу",
        "tog-extendwatchlist": "Бүт өзгөртүүлөрдү камтыган кеңири көзөмөл тизмеси, эң соңкуларды гана эмес",
        "tog-usenewrc": "Өзгөртүүлөрдү соңку өзгөрүүлөргө жана көзөмөл тизмеме топтоо (JavaScript талап кылынат)",
        "tog-numberheadings": "Башжазууларды автоматтык түрдө номердөө",
        "passwordreset-capture": "Чыккан катты көрүү?",
        "passwordreset-email": "E-mail дарек:",
        "passwordreset-emailtitle": "{{SITENAME}} сайтындагы эсеп жазуусу жөнүндөгү маалымат",
-       "passwordreset-emailelement": "Колдонуучу аты: $1\nУбактылуу сырсөз: $2",
+       "passwordreset-emailelement": "Колдонуучу аты: \n$1\n\nУбактылуу сырсөз: \n$2",
        "passwordreset-emailsent": "Сырсөздү алмаштыруу эмейлге жөнөтүлдү.",
        "passwordreset-emailsent-capture": "Төмөндө көрсөтүлгөн эмейлге сырсөздү алмаштыруучу кат жөнөтүлдү.",
        "passwordreset-emailerror-capture": "Төмөндө көрсөтүлгөн дарекке сырсөздү алмаштыруу кат түзүлдү,бирок аны  {{GENDER:$2|катышуучуга}} жөнөтүү оңунан чыккан жок: $1",
index aac336c..63bb0b3 100644 (file)
        "resetpass-temp-password": "Tessera temporaria:",
        "passwordreset-username": "Nomen usoris:",
        "passwordreset-email": "Inscriptio electronica:",
-       "passwordreset-emailelement": "Nomen usoris: $1\nMomentarius Tessera: $2",
+       "passwordreset-emailelement": "Nomen usoris: \n$1\n\nMomentarius Tessera: \n$2",
        "changeemail-none": "(nulla)",
        "changeemail-submit": "Inscriptionem electronicam mutare",
        "bold_sample": "Litterae pingues",
        "unusedtemplateswlh": "nexus alii",
        "randompage": "Pagina fortuita",
        "randompage-nopages": "Non est ulla pagina {{PLURAL:$2|hoc in spatio nominale|in his spatiis nominalibus}}: $1.",
+       "randomincategory-submit": "Ire",
        "randomredirect": "Redirectio fortuita",
        "randomredirect-nopages": "Non est ulla redirectio in spatio nominali \"$1\".",
        "statistics": "Census",
        "listgrouprights-addgroup-self-all": "Addere omnes greges ad rationem propriam",
        "listgrouprights-removegroup-self-all": "Removere omnes greges ex ratione propria",
        "emailuser": "Litteras electronicas usori mittere",
-       "emailpage": "Mittere litteras electronicas huic usori",
        "emailpagetext": "Forma subter nuntium ad usorem mittet.\nInscriptio electronica quam in [[Special:Preferences|praeferentiis tuis]] dedis ut \"Ab\" inscriptione apparebit. Hoc modo usor tibi directe respondere poterit.",
        "defemailsubject": "{{SITENAME}} - Litterae electronicae ab usore \"$1\"",
        "noemailtitle": "Nulla inscriptio electronica",
index 12a3699..d0d98b4 100644 (file)
        "passwordreset-username": "Nombre de usador:",
        "passwordreset-domain": "Dominio:",
        "passwordreset-email": "Adresso de letral:",
-       "passwordreset-emailelement": "Usuario: $1\nKontrasenya temporal: $2",
+       "passwordreset-emailelement": "Usuario: \n$1\n\nKontrasenya temporal: \n$2",
        "changeemail": "Kambiar adreso de korreo elektroniko",
        "changeemail-oldemail": "Adreso de korreo elektroniko aktual:",
        "changeemail-newemail": "Muevo adreso de korreo elektroniko:",
index a2ac898..b1a78f5 100644 (file)
        "nstab-template": "Schabloun",
        "nstab-help": "Hëllef-Säit",
        "nstab-category": "Kategorie",
+       "mainpage-nstab": "Haaptsäit",
        "nosuchaction": "Dës Aktioun gëtt et net",
        "nosuchactiontext": "Déi Aktioun, déi an der URL ugi war, ass net valabel.\nMéiglecherweis hutt dir Iech bei der URL vertippt, oder Dir hutt op en net korrekte Link geklickt.\nEt kann awer och sinn datt et e Bug a(n) der Software op {{SITENAME}} gëtt.",
        "nosuchspecialpage": "Spezialsäit gëtt et net",
        "passwordreset-emailtitle": "Detailer vum Benotzerkont op{{SITENAME}}",
        "passwordreset-emailtext-ip": "Iergendee mat der IP-Adress $1, wahrscheinlech Dir selwer, huet d'Zrécksetze vun Ärem Passwuert op {{SITENAME}} gefrot ($4). {{PLURAL:$3|De Benotzerkont ass|D'Benutzerkonte si}} mat dëser E-Mail-Adress verbonn:\n\n$2\n\n{{PLURAL:$3|Dëst temporärt Passwuert leeft|Dës temporär Passwierder lafe}} bannent {{PLURAL:$5|engem Dag|$5 Deeg}} of.\nDir sollt Iech aloggen an een neit Passwuert festleeën. Wann een Aneren déi Ufro gemaach huet oder Dir Iech erëm un Äert Passwuert erënnere kënnt an et net ännere wëllt, kënnt Dir dës Noriicht ignoréieren an Äert aalt Passwuert weider benotzen.",
        "passwordreset-emailtext-user": "De Benotzer $1 vu(n) {{SITENAME}} huet d'Zrécksetze vun Ärem Passwuert op {{SITENAME}} gefrot ($4). {{PLURAL:$3|De Benotzerkont|D'Benutzerkonte}} \n\n$2\n\n{{PLURAL:$3|ass|si}} mat dëser E-Mail-Adress verbonn.\n\n{{PLURAL:$3|Dëst temporärt Passwuert leeft|Dës temporär Passwierder lafe}} bannent {{PLURAL:$5|engem Dag|$5 Deeg}} of.\nDir sollt Iech aloggen an een neit Passwuert festleeën. Wann een Aneren déi Ufro gemaach huet oder Dir Iech erëm un Äert Passwuert erënnere kënnt an et net ännere wëllt, kënnt Dir dës Noriicht ignoréieren an Äert aalt Passwuert weider benotzen.",
-       "passwordreset-emailelement": "Benotzernumm: $1\nTemporärt Passwuert: $2",
+       "passwordreset-emailelement": "Benotzernumm: \n$1\n\nTemporärt Passwuert: \n$2",
        "passwordreset-emailsent": "Eng Mail fir d'Passwuert zréckzesetze gouf geschéckt.",
        "passwordreset-emailsent-capture": "Eng Mail fir d'Passwuert zréckzesetze gouf geschéckt, Dir gesitt se hei drënner.",
        "passwordreset-emailerror-capture": "Eng Mail fir d'Passwuert zréckzesetze gouf geschéckt, Dir gesitt se hei drënner, awer de {{GENDER:$2|Benotzer}} konnt se net kréien: $1",
        "changeemail-password": "Äert {{SITENAME}}-Passwuert:",
        "changeemail-submit": "Mailadress änneren",
        "changeemail-throttled": "Dir hutt zevill dacks versicht Iech anzeloggen.\nWaart w.e.g. $1 ier Dir et nach eng Kéier probéiert.",
+       "changeemail-nochange": "Gitt w.e.g. eng aner nei E-Mail-Adress an.",
        "resettokens": "Token zrécksetzen",
        "resettokens-no-tokens": "Et gëtt keng Tokens fir zréck ze setzen.",
        "resettokens-tokens": "Token:",
        "api-error-badaccess-groups": "Et ass Iech net erlaabt fir Fichieren op dës Wiki eropzelueden.",
        "api-error-badtoken": "Interne Feeler: falschen Token.",
        "api-error-copyuploaddisabled": "D'Eroplueden iwwer eng URL ass op dësem Server desaktivéiert.",
-       "api-error-duplicate": "Et gëtt schonn {{PLURAL:$1|[$2 en anere Fichier]|[$2 aner Fichiere]}} mat dem selwechten Inhalt op dem Site",
-       "api-error-duplicate-archive": "Et gouf schonn {{PLURAL:$1| [een anere Fichier]|[$2 aner Fichieren]}} op dem Site mat deemselwechten Inhalt, {{PLURAL:$1|e gouf was|se goufen}} awer geläscht.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Duebele Fichier, dee scho geläscht gouf|Duebel Fichieren, déi scho geläscht goufen}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Duebele Fichier|Duebel Fichieren}}",
+       "api-error-duplicate": "Et gëtt schonn {{PLURAL:$1|en anere Fichier|e puer aner Fichiere}} mat dem selwechten Inhalt op dem Site",
+       "api-error-duplicate-archive": "Et gouf schonn {{PLURAL:$1| een anere Fichier|e puer aner Fichieren}} op dem Site mat deemselwechten Inhalt, {{PLURAL:$1|e gouf|se goufen}} awer geläscht.",
        "api-error-empty-file": "De Fichier deen Dir geschéckt hutt war eidel.",
        "api-error-emptypage": "Et ass net erlaabt nei, eidel Säiten unzeleeën.",
        "api-error-fetchfileerror": "Interne Feeler: beim Opruffe vum Fichier huet eppes net funktionéiert.",
index 61899f6..5b8c07d 100644 (file)
        "resetpass-submit-loggedin": "Парол дегишарун",
        "resetpass-submit-cancel": "Гьич авун",
        "passwordreset": "Парол алудна гадрун",
-       "passwordreset-legend": "Парол алудна гадрун",
        "passwordreset-username": "Уртахдин тlвар:",
        "passwordreset-domain": "Домен:",
        "passwordreset-email": "E-mail адрес",
-       "passwordreset-emailelement": "Уртахдин тIвар: $1\nВахтуналди тир пароль: $2",
+       "passwordreset-emailelement": "Уртахдин тIвар: \n$1\n\nВахтуналди тир пароль: \n$2",
        "changeemail": "Э-почта дегишарун",
        "changeemail-none": "(садни)",
        "changeemail-submit": "E-адрес дегишун",
index 192cba7..fe50952 100644 (file)
        "resetpass-wrong-oldpass": "Okozesezza ekyama eky'ekiseerabuseera oba ekyaddala ekitakola.<br />\nOyinz'okuba nga wamaze okutegeka ekya ddala ekipya oba nga wakasabayo eky'ekiseerabuseera.",
        "resetpass-temp-password": "Ekyama kyo eky'ekiseerabuseera:",
        "passwordreset": "Damu okutegeka ekyama",
-       "passwordreset-legend": "Damu okutegeka ekyama",
        "passwordreset-disabled": "Eby'okuddamu okutegeka ebyama biymirizidwa ku wiki eno.",
        "passwordreset-username": "Ery'obwa memba:",
        "passwordreset-email": "Endagiriro eya 'email':",
        "passwordreset-emailtitle": "Ebya akawunti ey'oku {{SITENAME}}",
-       "passwordreset-emailelement": "Ery'obwa memba: $1 <br />\nEkyama kyo eky'ekiseerabuseera: $2",
+       "passwordreset-emailelement": "Ery'obwa memba: \n$1\n <br />\nEkyama kyo eky'ekiseerabuseera: \n$2",
        "bold_sample": "Ennukuta z'owandika wano zonna ziba nziggumivu",
        "bold_tip": "Bw'onyiga kano, ofuna w'oyinza okuwandikira ennukuta ezo ne zivaamu nga nziggumivu",
        "italic_sample": "Ennukuta z'owandika wano zonna ziba za italiki",
        "deleteotherreason": "Nsonga ndala:",
        "deletereasonotherlist": "Nsonga ndala",
        "rollback": "Jjululako ku bikyusidwamu",
-       "rollback_short": "Jjulula nkyukakyuka",
        "rollbacklink": "julula nkyukakyuka",
        "rollbackfailed": "Okujjulula tekusobose",
        "protectlogpage": "Olukalala lw'ebifa ku mpapula ezisibidwa",
index 896496b..e435a01 100644 (file)
        "passwordreset-emailtitle": "Gebroekersgegaeves óp {{SITENAME}}",
        "passwordreset-emailtext-ip": "Emes, wersjienlik doe, vanaaf 't IP-adres $1, haet dien gebroekersgegaeves veur {{SITENAME}} ($4) ópgevraog.\nDe volgende {{PLURAL:$3|gebroeker is|gebroekers zint}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tiedelik wachwaord vervilt|Dees tiedelike wachweurd vervallen}} euver {{PLURAL:$5|einen daag|$5 daag}}.\nMel dich aan en veranger 't wachwaord noe. Es se dit verzeuk neet zelf hes gedaon, of es se 't oorspronkelik wachwaord nog kins en 't neet anges wils, laot dit berich den en blief dien aad wachwaord gebroeke.",
        "passwordreset-emailtext-user": "Gebroeker $1 op de site {{SITENAME}} haet dien gebroekersgegaeves veur {{SITENAME}} ($4) ópgevraog.\nDe volgende {{PLURAL:$3|gebroeker is|gebroekers zint}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tiedelik wachwaord vervilt|Dees tiedelike wachweurd vervallen}} euver {{PLURAL:$5|einen daag|$5 daag}}.\nMel dich aan en veranger 't wachwaord noe. Es se dit verzeuk neet zelf hes gedaon, of es se 't oorspronkelik wachwaord nog kins en 't neet anges wils, laot dit berich den en blief dien aad wachwaord gebroeke.",
-       "passwordreset-emailelement": "Gebroekersnaam: $1\nTiedelik wachwaord: $2",
+       "passwordreset-emailelement": "Gebroekersnaam: \n$1\n\nTiedelik wachwaord: \n$2",
        "passwordreset-emailsent": "d'r Is per mail 'n herinnering versjik.",
        "passwordreset-emailsent-capture": "d'r Is 'ne herinneringse-mail versjik. Deze weurt hieónger getuind.",
        "passwordreset-emailerror-capture": "d'r Is 'ne herinneringse-mail aangemaak. Deze weurt hieónger getuind. 't Verzènje nao de gebroeker is mislök óm de volgende raeje: $1",
        "mailnologin": "Gein e-mailadres bekènd veur deze gebroeker",
        "mailnologintext": "De mos zien [[Special:UserLogin|aangemèld]] en 'n gèldig e-mailadres in bie dien [[Special:Preferences|veurkäöre]] höbbe ingevuld om mail nao anger gebroekers te sjture.",
        "emailuser": "Sjik deze gebroeker 'nen e-mail",
-       "emailpage": "Sjik gebroeker 'nen e-mail",
        "emailpagetext": "Es deze gebroeker e geljig e-mailadres haet opgegaeve den kint g'r via dit formuleer e berich sjikke. 't E-mailadres wat geer heet opgegeve bie eur [[Special:Preferences|veurkäöre]] zal es versjikker aangegaeve waere.\nDae kin dös drek reazjere.",
        "defemailsubject": "E-mail van {{SITENAME}}-gebroeker \"$1\"",
        "usermaildisabled": "Gebroeker e-mail oetgezatj.",
        "api-error-copyuploaddisabled": "Uploade via URL steit óp deze server oet.",
        "api-error-duplicate": "d'r {{PLURAL:$1|steit al [$2 e bestandj]|staon al [$2 bestenj]}} mit dezelfden inhawd oppe wiki.",
        "api-error-duplicate-archive": "d'r {{PLURAL:$1|Waar al [$2 'n anger bestandj]|woren al [$2 $1 anger bestenj]}} óppe site mitte zelfdjen inhawd, meh {{PLURAL:$1|det is|die zeen}} gewösj.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Duplicaatbestandj det al gewösj is|Duplicaatbestenj die al gewösj zeen}}",
-       "api-error-duplicate-popup-title": "Zelfde {{PLURAL:$1|bestandj|bestenj}}",
        "api-error-empty-file": "t Bestandj det se perbeers te uploade had gein inhald.",
        "api-error-emptypage": "Doe maags gein nuuj, laeg pagina's aanmake.",
        "api-error-fetchfileerror": "Intern fout: d'r is get fout gegange bie 't óphaole van 't bestandj.",
index 3a1d771..34241d1 100644 (file)
        "passwordreset-username": "Nomme utente",
        "passwordreset-email": "Addresso e-mail:",
        "passwordreset-emailtitle": "Dettaggi account sciu {{SITENAME}}",
-       "passwordreset-emailelement": "Nomme utente: $1\nPoula segretta temporannia: $2",
+       "passwordreset-emailelement": "Nomme utente: \n$1\n\nPoula segretta temporannia: \n$2",
        "changeemail": "Cangia l'adresso e-mail",
        "changeemail-newemail": "Noeuvo adresso e-mail",
        "changeemail-none": "(nisciun)",
        "listusers-noresult": "Utente non trovöo.",
        "listgrouprights-members": "(Elenco di membri)",
        "emailuser": "Invia 'na email a st'utente chi",
-       "emailpage": "Mandighe 'na léttia elettronega",
        "defemailsubject": "{{SITENAME}} posta elettronega",
        "noemailtitle": "Nisciûn conto e-mail",
        "emailfrom": "Da",
index 264bb81..100aaaf 100644 (file)
        "resetpass-validity-soft": "La tò password l'è mìa bùna: $1\n\nTe g'harèset de catà fò 'n ótra password o clicà sö \"{{int:resetpass-submit-cancel}}\" per turnà a definìla piö tàrde.",
        "passwordreset": "Tùrna a defenéser la password",
        "passwordreset-text-one": "Empenés chèsto mòdulo per turnà a defenéser la tò password.",
-       "passwordreset-legend": "Tùrna a defenéser la password",
        "passwordreset-disabled": "La ridefinisiù de la password l'è mìa atìva sö chèsta wiki",
        "passwordreset-emaildisabled": "Le funsiù de pòsta eletrònica i è stàde disativàde sö chèsta wiki.",
        "passwordreset-username": "Nòm de ütènt",
        "passwordreset-domain": "Domini:",
        "passwordreset-email": "Indirìs e-mail:",
        "passwordreset-emailtitle": "Detài de l'ütènsa sö {{SITENAME}}",
-       "passwordreset-emailelement": "Nòm ütènt: $1\nPassword temporànea: $2",
+       "passwordreset-emailelement": "Nòm ütènt: \n$1\n\nPassword temporànea: \n$2",
        "passwordreset-emailsent": "Gh'è stat mandàt vià 'na e-mail de redefinisiù de la password.",
        "passwordreset-emailsent-capture": "Gh'è stat mandàt vià chèsta e-mail de redefinisiù de la password:",
        "changeemail": "Càmbia l'indirìs e-mail",
        "changeemail-throttled": "Te g'hét fat tròp tacc tentatìf de autenticàt, adès te g'hét de spetà $1 per püdì turnà a pröà.",
        "resettokens": "Redefenés i tokens",
        "resettokens-no-tokens": "Gh'è nisü token de redefenéser.",
-       "resettokens-legend": "Redefenés i tokens",
        "resettokens-tokens": "Token:",
        "resettokens-token-label": "$1 (valùr de adès: $2)",
        "resettokens-done": "Tokens redefinìcc.",
        "nmembers": "$1 {{PLURAL:$1|element|element}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|elemènt|elemèncc}}",
        "nrevisions": "$1 {{PLURAL:$1|reviziù}}",
-       "nviews": "$1 {{PLURAL:$1|vìzita|vìzite}}",
        "nimagelinks": "Dopràt sö $1 {{PLURAL:$1|pàgina|pàgine}}",
        "ntransclusions": "dopràt sö $1 {{PLURAL:$1|pàgina|pàgine}}",
        "specialpage-empty": "Chèsta pàgina speciàl al momènt l'è öda.",
index 90ccf3f..fe1fe64 100644 (file)
        "passwordreset-emailtitle": "جوزئیات حئساڤ ها د {{نوم مالگە}}",
        "passwordreset-emailtext-ip": "یە کئسی(گاسی خوتوٙ، ڤا تیرنئشوٙن آی پی $1) د نۊ زئنە کئردئن رازینە گوڤاردئنئتوٙ د {{SITENAME}} حاستیتە($4).\nسی کاریار «$2» یئ گئل رازینە گوڤاردئن موڤأقتی رأڤأندیاری بییە و هومبأراڤأر «$3» ە.\nأر دالئتوٙ یە بییە ئیسئ ڤاس بیائیت ڤامین ساموٙنە و یئ گئل رازینە گوڤاردئن هأنی بئهایت.\n رازینە گوڤاردئن {{PLURAL:$3|ئی رازینە یا گوڤاردئن موڤأقأتی|ئی رازینە یا گوڤاردئن موڤأقأتی}} شوما د گات {{PLURAL:$5|یئ روٙ|$5 روٙ}} باطئل بوٙە.\n\nأر کأسی هأنی چئن حاستی داشتە یا یە کئ رازینە گوڤاردئن دئمایی شوما د ڤیرئتوٙ ئوٙما و دە نئمیهایت ڤئنە آلئشت کاری بأکیت، می توٙنیت د ئی پئیغوم تیە پوٙشی بأکیت و هأموٙ رازینە گوڤاردئن دئمایی نە بونیت د کار.",
        "passwordreset-emailtext-user": "کاریار $1 د {{SITENAME}} د نۊ زئنە کئردئن رازینە گوڤاردئن شومانە د{{SITENAME}} ($4) حاستە. {{PLURAL:$3|حئساڤ|حئساڤیا}} کاریاری کئ هان د هار و ڤا ئی تیرنئشوٙن أنجومانامە هان د ئرتئڤاط:\n\n$2\n\n رازینە گوڤاردئن {{PLURAL:$3|ئی رازینە یا گوڤاردئن موڤأقأتی|ئی رازینە یا گوڤاردئن موڤأقأتی}} شوما د گات {{PLURAL:$5|یئ روٙ|$5 روٙ}} باطئل بوٙە.\nأر کأسی هأنی چئن حاستی داشتە یا یە کئ رازینە گوڤاردئن دئمایی شوما د ڤیرئتوٙ ئوٙما و دە نئمیهایت ڤئنە آلئشت کاری بأکیت، می توٙنیت د ئی پئیغوم تیە پوٙشی بأکیت و هأموٙ رازینە گوڤاردئن دئمایی نە بونیت د کار.",
-       "passwordreset-emailelement": "نوم کاریاری: $1\nرازینە گوڤاردئن موڤأقتی: $2",
+       "passwordreset-emailelement": "نوم کاریاری: \n$1\n\nرازینە گوڤاردئن موڤأقتی: \n$2",
        "passwordreset-emailsent": "یئ گئل رازینە گوڤاردئن هأنی سی أنجومانامە کئل بییە.",
        "passwordreset-emailsent-capture": "رازینە گوڤاردئن تازە توٙ سی أنجومانامە توٙ کئ ها د هار کئل بییە.",
        "passwordreset-emailerror-capture": "رازینە گوڤاردئن د أنجومانامە د نۊ زئنە کون کئل بییە،و ڤئ د هار دیاری میکە، ڤألی کئل بییئن ڤئ سی {{GENDER:$2|کاریار}} ناخوش سأرنجوم بییە:$1",
        "api-error-copyuploaddisabled": "سوار کردن وا یو آر ال دی ای سرور غیرفعال بیه.",
        "api-error-duplicate": "{{PLURAL:$1|[$2 یه گل جانیا هنی]|[$2 چن گل جانیا هنی]}} د دیارگه وا مینونه هومبراور بی.",
        "api-error-duplicate-archive": "{{PLURAL:$1|[$2 یه گل جانیا هنی]|[$2 چن گل جانیا هنی]}} د دیارگه وا مینونه هومبراور بی.ولی پاکسا {{PLURAL:$1|بیه|بینه}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|جانیا|جانیایا}} تکراری یی که ایسه پاکسا بیینه",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|جانیا|جانیایا}} تکراری",
        "api-error-empty-file": "جانیایی که دئی ته حالی بی.",
        "api-error-emptypage": "یه گل بلگه تازه راس بکیت،بلگه یا حالی صلادار کاری نیئن.",
        "api-error-fetchfileerror": "خطا مین کار: د گات گرتن جانیا، یه چی یی خو پیش نرت.",
index 5544747..29dad5a 100644 (file)
@@ -31,7 +31,8 @@
                        "아라",
                        "Aswanas",
                        "Pofka",
-                       "Albertas"
+                       "Albertas",
+                       "Macofe"
                ]
        },
        "tog-underline": "Pabraukti nuorodas:",
        "nstab-template": "Šablonas",
        "nstab-help": "Pagalbos puslapis",
        "nstab-category": "Kategorija",
+       "mainpage-nstab": "Pagrindinis puslapis",
        "nosuchaction": "Nėra tokio veiksmo",
        "nosuchactiontext": "Veiksmas, nurodytas adrese, neatpažintas.\nGalbūt Jūs padarėte klaidą adrese ar paspaudėte ant neteisingos nuorodos.\nŠios problemos priežastis taip pat gali būti klaida programinėje įrangoje, kurią naudoja {{SITENAME}}.",
        "nosuchspecialpage": "Nėra tokio specialiojo puslapio",
        "passwordreset-emailtitle": "Paskyros informacija apie {{sitename}}",
        "passwordreset-emailtext-ip": "Kažkas (tikriausiai jūs, IP adresu $1) paprašė priminti jūsų slaptažodį svetainėje {{SITENAME}} ($4). Šio naudotojo {PLURAL:$3|paskyra|paskyros}} yra susietos su šiuo elektroninio pašto adresu:\n\n$2\n\n{{PLURAL:$3|Šis laikinas slaptažodis |Šie laikini slaptažodžiai}} baigs galiot po {{PLURAL:$5|vienos dienos|$5 dienų}}. \n\nJūs turėtumėte prisijungti ir pasirinkti naują slaptažodį. Jei kažkas kitas padarė šį prašymą arba jūs prisiminėte savo pirminį slaptažodį, ir jums nebereikia jo pakeisti, galite ignoruoti šį pranešimą ir toliau naudotis savo senuoju slaptažodžiu.",
        "passwordreset-emailtext-user": "Naudotojas $1 svetainėje {{SITENAME}} sukūrė užklausą slaptažodžio priminimui svetainėje {{SITENAME}}\n($4). Šio naudotojo {{PLURAL:$3|paskyra|paskyros}} susieto su šiuo elektroniniu paštu $2. \n\n{{PLURAL:$3|Šis laikinas slaptažodis|Šie laikini slaptažodžiai}} baigs galioti po {{PLURAL:$5|vienos dienos|$5 dienų}}. Jūs turėtumėte prisijungti ir pasirinkti naują slaptažodį. Jei kažkas padarė tai be jūsų žinios arba jūs prisiminėte savo pirminį slaptažodį, ir jūs nebenorite jo pakeisti, galite ignoruoti šį pranešimą ir toliau naudotis savo senuoju slaptažodžiu.",
-       "passwordreset-emailelement": "Naudotojo vardas: $1\nLaikinas slaptažodis: $2",
+       "passwordreset-emailelement": "Naudotojo vardas: \n$1\n\nLaikinas slaptažodis: \n$2",
        "passwordreset-emailsent": "Slaptažodžio priminimo laiškas buvo išsiųstas.",
        "passwordreset-emailsent-capture": "Slaptažodžio priminimo laiškas bus išsiųstas, toks koks parodytas.",
        "passwordreset-emailerror-capture": "Priminimo elektroninis laiškas buvo sukurtas, toks, koks parodytas žemiau, bet pasiuntimas naudotojui buvo nesėkmingas: $1",
        "changeemail-password": "Jūsų {{SITENAME}} slaptažodis:",
        "changeemail-submit": "Keisti el. pašto adresą",
        "changeemail-throttled": "Jūs atlikote pernelyg daug bandymų prisijungti.\nLuktelėkite $1 prieš bandant vėl.",
+       "changeemail-nochange": "Prašome įvesti kitą naują el. pašto adresą.",
        "resettokens": "Atnaujinti žetonus",
        "resettokens-text": "Jūs galite atnaujinti žetonus, kurie suteikia prieigą prie tam tikros privačios informacijos susijusios su jūsų paskyra čia.\n\nJūs turėtumėte tai padaryti jei netyčia jais pasidalinote su kuo nors arba jei jūsų paskyra buvo pavojuje.",
        "resettokens-no-tokens": "Nėra žetonų, kuriuos galima atnaujinti.",
        "booksources-text": "Žemiau yra nuorodų sąrašas į kitas svetaines, kurios parduoda naujas ar naudotas knygas, bei galbūt turinčias daugiau informacijos apie knygas, kurių ieškote:",
        "booksources-invalid-isbn": "Duotas ISBN atrodo neteisingas; patikrinkite, ar nepadarėte kopijavimo klaidų.",
        "specialloguserlabel": "Naudotojas:",
-       "speciallogtitlelabel": "Pavadinimas:",
+       "speciallogtitlelabel": "Tikslas (pavadinimas arba {{ns:user}}:naudotojo vardas naudotojui):",
        "log": "Specialiųjų veiksmų sąrašas",
        "all-logs-page": "Visi viešieji sąrašai",
        "alllogstext": "Bendrai pateikiamas visų galimų „{{SITENAME}}“ specialiųjų veiksmų sąrašas.\nGalima sumažinti rezultatų skaičių, patikslinant veiksmo rūšį, naudotoją ar susijusį puslapį.",
        "tooltip-ca-nstab-main": "Rodyti puslapio turinį",
        "tooltip-ca-nstab-user": "Rodyti naudotojo puslapį",
        "tooltip-ca-nstab-media": "Rodyti media puslapį",
-       "tooltip-ca-nstab-special": "Šis puslapis yra specialusis - jo negalima redaguoti",
+       "tooltip-ca-nstab-special": "Šis puslapis yra specialusis ir jo negalima redaguoti",
        "tooltip-ca-nstab-project": "Rodyti projekto puslapį",
        "tooltip-ca-nstab-image": "Rodyti rinkmenos puslapį",
        "tooltip-ca-nstab-mediawiki": "Rodyti sisteminį pranešimą",
        "api-error-badtoken": "Vidinė klaida: blogai atpažinimo ženklas.",
        "api-error-copyuploaddisabled": "Siuntimas pagal URL yra išjungtas šiame serveryje.",
        "api-error-duplicate": "Jau {{PLURAL:$1|yra [$2 kitas failas]|yra [$2 kiti failai]}} puslapyje su tuo pačiu turiniu..",
-       "api-error-duplicate-archive": "Jau {{PLURAL:$1|buvo [$2 kitas failas]|buvo [$2 kitų failų]}} puslapyje su tuo pačiu turiniu, bet {{PLURAL:$1|buvo|buvo}} ištrinti.",
-       "api-error-duplicate-archive-popup-title": "Dubliuoti {{PLURAL:$1|failą kuris buvo|failus kurie buvo}} jau buvo ištrinti.",
-       "api-error-duplicate-popup-title": "Dubliuoti  {{PLURAL:$1|failą|failus}}",
+       "api-error-duplicate-archive": "Jau {{PLURAL:$1|buvo kitas failas|buvo kitų failų}} puslapyje su tuo pačiu turiniu, bet {{PLURAL:$1|buvo|buvo}} ištrinti.",
        "api-error-empty-file": "Pateikta failas buvo tuščias.",
        "api-error-emptypage": "Kurti naujus, tuščius puslapius neleidžiama.",
        "api-error-fetchfileerror": "Vidinė klaida: Kažkas nutiko gaunant failą.",
index 1513f00..fa8e3aa 100644 (file)
        "passwordreset-domain": "Huamchin:",
        "passwordreset-email": "E-chenhmun:",
        "passwordreset-emailtitle": "{{SITENAME}}-a siangchan chanchin kim",
-       "passwordreset-emailelement": "Hmangtuhming: $1\nThurûk lailâwk: $2",
+       "passwordreset-emailelement": "Hmangtuhming: \n$1\n\nThurûk lailâwk: \n$2",
        "passwordreset-emailsent": "Hriat nawntirna e-lehkha thawn fel a ni.",
        "passwordreset-emailsent-capture": "Hriat nawntirna e-lehkha thawn a ni, a hnuaia tarlan ang khuan.",
        "passwordreset-emailerror-capture": "Hriat nawntirna e-lehkha siam chhuah a ni a, a hnuaia tarlan ang khuan; mahsé thawn hlawhchham a ni: $1",
index c9d491e..1d8f185 100644 (file)
        "passwordreset-capture": "Apskatīt izveidoto e-pastu?",
        "passwordreset-email": "E-pasta adrese:",
        "passwordreset-emailtitle": "Konta informācija {{SITENAME}}",
-       "passwordreset-emailelement": "Lietotājvārds: $1\nPagaidu parole: $2",
+       "passwordreset-emailelement": "Lietotājvārds: \n$1\n\nPagaidu parole: \n$2",
        "passwordreset-emailsent": "Paroles atiestatīšanas e-pasts ir nosūtīts.",
        "passwordreset-emailsent-capture": "Atgādinājuma e-pasta ziņojums ir nosūtīts, tas parādīts zemāk.",
        "passwordreset-emailerror-capture": "Atgādinājuma e-pasta ziņojums tika izveidots, tas parādīts zemāk, bet nosūtīšana lietotājam neizdevās: $1",
        "categoriesfrom": "Parādīt kategorijas sākot ar:",
        "special-categories-sort-count": "kārtot pēc skaita",
        "special-categories-sort-abc": "kārtot alfabētiskā secībā",
-       "deletedcontributions": "Izdzēstais lietotāju devums",
-       "deletedcontributions-title": "Izdzēstais lietotāju devums",
+       "deletedcontributions": "Dzēstais dalībnieka devums",
+       "deletedcontributions-title": "Dzēstais dalībnieka devums",
        "sp-deletedcontributions-contribs": "devums",
        "linksearch": "Ārējo saišu meklēšana",
        "linksearch-pat": "Meklēt:",
        "enotif_impersonal_salutation": "{{SITENAME}} lietotājs",
        "enotif_lastvisited": "$1 lai apskatītos visas izmaiņas kopš tava pēdējā apmeklējuma.",
        "enotif_lastdiff": "$1 lai apskatītos šo izmaiņu.",
-       "enotif_anon_editor": "anonīms lietotājs $1",
+       "enotif_anon_editor": "anonīms dalībnieks $1",
        "enotif_body": "$WATCHINGUSERNAME,\n\n\n{{grammar:ģenitīvs|{{SITENAME}}}} lapu $PAGETITLE $CHANGEDORCREATED $PAGEEDITOR, $PAGEEDITDATE, pašreizējā versja ir $PAGETITLE_URL.\n\n$NEWPAGE\n\nIzmaiņu kopsavilkums bija: $PAGESUMMARY $PAGEMINOREDIT\n\nSazināties ar attiecīgo lietotāju:\ne-pasts: $PAGEEDITOR_EMAIL\nwiki: $PAGEEDITOR_WIKI\n\nJa šo uzraugāmo lapu izmainīs vēl, turpmāku paziņojumu par to nebūs, kamēr tu to neatvērsi.\nTu arī vari atstatīt visu uzraugāmo lapu paziņojumu statusus uzraugāmo lapu sarakstā.\n\n             {{grammar:ģenitīvs|{{SITENAME}}}} paziņojumu sistēma\n\n--\nLai izmainītu uzraugāmo lapu saraksta uzstādījumus:\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nLai dzēstu lapu no uzraugāmo lapu saraksta:\n$UNWATCHURL\n\nPapildinformācija:\n$HELPPAGE",
        "created": "izveidoja",
        "changed": "izmainīja",
        "invert": "Izvēlēties pretēji",
        "namespace_association": "Saistītā vārdtelpa",
        "blanknamespace": "(Pamatlapa)",
-       "contributions": "{{GENDER:$1|Lietotāja|Lietotājas|Lietotāja}} devums",
-       "contributions-title": "Lietotāja $1 devums",
+       "contributions": "{{GENDER:$1|Dalībnieka|Dalībnieces|Dalībnieka}} devums",
+       "contributions-title": "Dalībnieka $1 devums",
        "mycontris": "Devums",
        "contribsub2": "Lietotājs: $1 ($2)",
        "nocontribs": "Netika atrastas izmaiņas, kas atbilstu šiem kritērijiem.",
        "sp-contributions-newbies": "Rādīt jauno lietotāju devumu",
        "sp-contributions-newbies-sub": "Jaunie lietotāji",
        "sp-contributions-blocklog": "Bloķēšanas reģistrs",
-       "sp-contributions-deleted": "Izdzēstais lietotāja devums",
+       "sp-contributions-deleted": "dzēstais dalībnieka devums",
        "sp-contributions-uploads": "augšupielādes",
        "sp-contributions-logs": "reģistri",
        "sp-contributions-talk": "diskusija",
        "lastmodifiedatby": "Šo lapu pēdējoreiz izmainīja $3, $2, $1.",
        "othercontribs": "Balstototies uz $1 darbu.",
        "others": "citi",
-       "siteusers": "{{SITENAME}} {{PLURAL:$2|lietotāju|lietotāja|lietotāju}} $1",
-       "anonusers": "{{SITENAME}} anonīma {{PLURAL:$2|lietotāju|lietotāja|lietotāju}} $1",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|dalībnieku|dalībnieka|dalībnieku}} $1",
+       "anonusers": "{{SITENAME}} anonīma {{PLURAL:$2|dalībnieku|dalībnieka|dalībnieku}} $1",
        "creditspage": "Lapas autori",
        "nocredits": "Šai lapa nav pieejama informācija par autoriem.",
        "spamprotectiontitle": "Spama filtrs",
index 6802243..784fb94 100644 (file)
        "passwordreset-emailtitle": "लेखा विवरण {{अन्तर्जालक नाम}}",
        "passwordreset-emailtext-ip": "कियो (सम्भवतः अहाँ, अन्तर्जाल सेवा कल्पक $1 सँ) अपन लेखा विवरणक पुनःस्मरणक लेल अनुरोध केलहुँ ऐ लेल {{ अन्तर्जालक नाम}} ($4). ई प्रयोक्ता {{PLURAL:$3|लेखा अछि| लेखा सभ अछि}}\nऐ ई-पत्र संकेतसँ सम्बन्धित:\n\n$2\n\n{{PLURAL:$3|ई अल्पकालक कूटशब्द| ई सभ अल्पकालक कूटशब्द}} खतम भऽ जाएत {{PLURAL:$5|एक दिन|$5 पाँच दिन}}.\nअहाँ सम्प्रवेश करू आ एकटा नव कूटशब्द चुनू।. जौं कियो आन ई आग्रह केने अछि, वा अहाँकेँ अपन पुरान कूटशब्द मोन पड़ि गेल अछि , आ आब एकरा बदलबाक इच्छा नै राखै छी तँ अहाँ ऐ संदेशकेँ बिसरि जाउ आ अपन पुरान कूटशब्दक प्रयोग करैत रहू।",
        "passwordreset-emailtext-user": "प्रयोक्ता $1 {{अन्तर्जाल}} पर अहाँक खाता विवरणक {{SITENAME}} लेल फेरसँ ($4) आग्रह केने छथि। ई प्रयोक्ता {{PLURAL:$3|खाता अछि|खाता सभ अछि}} ऐ ई-पत्र संकेतसँ जुड़ल: $2\n{{PLURAL:$3| ई अस्थायी कूटशब्द|ई सभ अस्थायी कूटशब्द}} खतम भऽ जाएत {{PLURAL:$5|एक दिन|$5 दिन}} मे।\nअहाँ सम्प्रवेश करू आ एकटा नव कूटशब्द आब चुनू। जँ कियो दोसर ई आग्रह केने छथि, वा जँ अहाँकेँ अपन मूल कूटशब्द मोन पड़ि गेल अछि, आ अहाँ आब ओइ कूटशब्दकेँ नै बदलऽ चाहै छी, अहाँ ऐ संदेशकेँ बिसरि सकै छी आ अपन पुरान कूटशब्दक प्रयोग जारी राखि सकै छी।",
-       "passwordreset-emailelement": "प्रयोक्ता: $1\nअस्थायी कूटशब्द: $2",
+       "passwordreset-emailelement": "प्रयोक्ता: \n$1\n\nअस्थायी कूटशब्द: \n$2",
        "passwordreset-emailsent": "एकटा ई-पत्र मोन पाड़बा लेल पठाओल गेल अछि।",
        "passwordreset-emailsent-capture": "एकटा स्मरण ई-पत्र पठाएल गेल अछि, जे नीचाँ देखाएल अछि।",
        "passwordreset-emailerror-capture": "एकटा स्मरण ई-पत्र बनाएल गेल अछि, जे नीचाँ देखाएल अछि, मुदा प्र्योक्ताकेँ एकरा पठेबाक प्रयास विफल भेल: $1",
        "emailuser": "ऐ प्रयोक्ताकेँ ई-पत्र पठाउ",
        "emailuser-title-target": "इ {{GENDER:$1|प्रयोक्ता}} के ई-पत्र भेजु।",
        "emailuser-title-notarget": "ई-पत्र प्रयोक्ता",
-       "emailpage": "ई-पत्र प्रयोक्ता",
        "emailpagetext": "अहाँक नीचाँक आवेदन-पत्र ऐ प्रयोक्ताकेँ ई-पत्र संदेश पठेबा लेल प्रयोग कऽ सकै छी।\nई-पत्र जे अहाँ [[Special:Preferences|your user preferences]] मे देलहुँ से ई-पत्र\"एतएसँ\" पतासँ देखाएत, से प्राप्तकर्ता सोझे अहाँकेँ उत्तर देबामे समर्थ हेताह।",
        "defemailsubject": "{{जालस्थल}} प्रयोक्ता \"$1\" सँ ई-पत्र",
        "usermaildisabled": "प्रयोक्ता ई-पत्र अशक्त",
index 17aafd7..ac5cb5b 100644 (file)
        "passwordreset": "Tembung sandhi di-''reset''",
        "passwordreset-text-one": "Kumpliti formulir kiye kanggo nyetel maning tembung sandhine Rika.",
        "passwordreset-text-many": "{{PLURAL:$1|Isi salah siji kotak kanggo nyetel maning tembung sandhine Rika.}}",
-       "passwordreset-legend": "Tembung sandhi di-''reset''",
        "passwordreset-disabled": "''Reset'' tembung sandhi wis dipateni nang wiki kiye.",
        "passwordreset-emaildisabled": "Fitur imel wis dinonaktifna nang wiki kiye.",
        "passwordreset-username": "Jeneng panganggo:",
        "passwordreset-capture-help": "Angger Rika nyonteng kotak kiye, imel (sing isi tembung sandhi sauntara) bakal ditidokna maring Rika barengan karo dikirimna maring panganggo.",
        "passwordreset-email": "Alamat imel:",
        "passwordreset-emailtitle": "Detil akun nang {{SITENAME}}",
-       "passwordreset-emailelement": "Jeneng panganggo: $1\nTembung sandhi sauntara: $2",
+       "passwordreset-emailelement": "Jeneng panganggo: \n$1\n\nTembung sandhi sauntara: \n$2",
        "passwordreset-emailsent": "Imel nggo nyetel maning tembung sandhi uwis dikirim.",
        "passwordreset-emailsent-capture": "Imel kanggo nyetel maning tembung sandhi uwis dikirim, kaya sing ditidokna nang ngisor kiye.",
        "passwordreset-emailerror-capture": "Imel nggo nyetel maning tembung sandhi uwis digawe, kaya sing ditidokna nang ngisor kiye, ningen gole ngirim maring {{GENDER:$2|panganggo}} ora teyeng: $1",
        "changeemail-password": "Tembung sandhi {{SITENAME}} Rika:",
        "changeemail-submit": "Ganti imel",
        "resettokens-no-tokens": "Ora ana token sing arep disetel maning.",
-       "resettokens-legend": "Nyetel maning token",
        "resettokens-token-label": "$1 (biji sekiye:$2)",
        "resettokens-done": "Token wis disetel maning.",
        "resettokens-resetbutton": "Nyetel maning token sing dipilih",
        "nlinks": "$1 {{PLURAL:$1|pranala|pranala}}",
        "nmembers": "$1 {{PLURAL:$1|isi|isi}}",
        "nrevisions": "$1 {{PLURAL:$1|revisi|revisi}}",
-       "nviews": "Wis ping $1 {{PLURAL:$1|dideleng|dideleng}}",
        "nimagelinks": "Digunakna nang $1 {{PLURAL:$1|kaca|kaca}}",
        "ntransclusions": "digunakna nang $1 {{PLURAL:$1|kaca|kaca}}",
        "specialpage-empty": "Ora ana sing perlu dilaporna.",
index 37ca9f5..f427852 100644 (file)
        "hidden-categories": "{{PLURAL:$1|Sokajy misitrika|Sokajy misitrika}} $1",
        "hidden-category-category": "Sokajy misitrika",
        "category-subcat-count": "{{PLURAL:$2|Ity sokajy ity|Ireo sokajy ireo}} dia manana {{PLURAL:$1|zana-tsokajy|zana-tsokajy}} $1 . Ny taotaliny dia $2",
-       "category-subcat-count-limited": "Misy zana-tsokajy $1 ity sokajy ity.{{PLURAL:}}",
-       "category-article-count": "{{PLURAL:$2|Misy pejy $1 ity sokajy ity|Misy pejy $1 ity sokajy ity}}. Pejy $2 no anatin'ity sokajy ity",
+       "category-subcat-count-limited": "Misy zana-tsokajy $1 ato amin'ity sokajy ity.{{PLURAL:}}",
+       "category-article-count": "Misy pejy $2 ato amin'ity ity sokajy ity. Pejy $1 no aseho ato.{{PLURAL:$2|}}",
        "category-article-count-limited": "Anatin'ity sokajy ity ireo pejy ireo pejy ireo ($1 ny tontaliny){{PLURAL:}}",
        "category-file-count": "Misy rakitra $1 (tontaliny : rakitra $2) ireo ity sokajy ity{{PLURAL:}}",
        "category-file-count-limited": "Anatin'ity sokajy ity ireo rakitra ireo. ($1 no aseho) {{PLURAL:}}",
        "viewdeleted_short": "Hijery fanovana voafafa {{PLURAL:$1|tokana|$1}}",
        "protect": "Hiaro",
        "protect_change": "ovaina",
-       "protectthispage": "Hiaro ity pejy ity",
+       "protectthispage": "Hiaro an'ity pejy ity",
        "unprotect": "Hanala ny fiarovana",
        "unprotectthispage": "Hanala idy an'ity pejy ity",
        "newpage": "Pejy vaovao",
        "passwordreset-emailtitle": "Antsipirihan'ny kaonty eo amin'i {{SITENAME}}",
        "passwordreset-emailtext-ip": "Nisy olona (izay mety ianao, avy amin'ny adiresy IP $1) nangataka ny hamerina ny tenimiafin'ny kaontim-pikambany ho an'i {{SITENAME}} ($4). Mampiasa ity adiresy mailaka ity {{PLURAL:$3|ity kaontim-pikambana mpikambana io|ireo kaontim-mpikambana ireo}}:\n\n$2\n\nHitsahatra afaka $5 andro {{PLURAL:$3|io tenimiafina io|ireo tenimiafina ireo}}.\nTokony miditra ianao ary mifidy tenimiafina vaovao. Raha misy olon-kafa nanao ity hataka ity, na efa tadidinao indray ilay tenimiafinao taloha, ary raha tsy tia hanova azy intsony, azonao tsy raharahiana ity hafatra ity ary mitohy mampiasa ny tenimiafinao taloha.",
        "passwordreset-emailtext-user": "Nisy mpikambana mitondra anarana $1 eo amin'i {{SITENAME}} nangataka fampatsiahivana mikasika ny kaontinao eo amin'i {{SITENAME}} ($4). Manana io adiresy imailaka {{PLURAL:$3|io kaontim-pikambana io|ireo kaontim-pikambana ireo}} :\n\n$2\n\nHitsahatra afaka {{PLURAL:$5|iray|$5}} andro {{PLURAL:$3|io|ireo}} tenimiafina {{PLURAL:$3|io|ireo}}. Mila miditra dien'izao ianao izao ary mifidy tenimiafina vaovao. Raha tsy avy aminao ity hataka ity na efa nahatadidy ny tenimiafinao taloha ianao, ary raha tsy tianao hovaina intsony ilay tenimiafinao, dia azonao tsy raharahiana ity hafatra ity ary mampiasa ny tenimiafinao taloha.",
-       "passwordreset-emailelement": "Anaram-pikambana : $1\nTenimiafina miserana : $2",
+       "passwordreset-emailelement": "Anaram-pikambana : \n$1\n\nTenimiafina miserana : \n$2",
        "passwordreset-emailsent": "Lasa ny mailaka famerenana tenimiafina.",
        "passwordreset-emailsent-capture": "Lasa ilay mailaka famerenana tenimiafina, izay aseho eo ambany.",
        "passwordreset-emailerror-capture": "Nosoratana ilay mailaka famerenana tenimiafina, izay aseho eo ambany, fa tsy tafalefa tany amin'ilay mpikambana ilay izy : $1{{GENDER:$2}}",
        "filehist-comment": "resaka",
        "imagelinks": "Fampiasana an'io rakitra io",
        "linkstoimage": "Ireto avy no {{PLURAL:$1|pejy mirohy|pejy mirohy}} ($1) amin'io rakitra io:",
-       "nolinkstoimage": "Tsy misy pejy mirohy amin'ity sary ity.",
+       "nolinkstoimage": "Tsy misy pejy mirohy amin'ity rakitra ity.",
        "morelinkstoimage": "Hijery [[Special:WhatLinksHere/$1|rohy fanampiny]] makany amin'io rakitra io.",
        "linkstoimage-redirect": "$1 (fihodinana) $2",
        "sharedupload": "Mety ho rakitra itambarana amin'ny tetikasa hafa ny rakitra $1.",
        "protectlogpage": "Laogim-piarovana",
        "protectlogtext": "Eto ambany ny lisitry ny fiarovana/fanalana hidy ny pejy. \nHo ann'y fanazavana fanampiny, jereo [[Special:ProtectedPages|ny lisitry ny pejy voaaro]] ho an'ny pejy fiarovana amin'izao fotoana izao.",
        "protectedarticle": "voaaro ny pejy \"[[$1]]\"",
-       "modifiedarticleprotection": "nanova ny haabo ny fiarovana ho an'ny « [[$1]] »",
+       "modifiedarticleprotection": "dia nanova ny haavom-piarovan'i « [[$1]] »",
        "unprotectedarticle": "nanala ny fiarovana an'i « [[$1]] »",
        "movedarticleprotection": "nanova ny safidim-piarovana : « [[$2]] » lasa « [[$1]] »",
        "protect-title": "Hanova ny lentam-piarovana ho an'i « $1 »",
        "protect-locked-blocked": "Tsy afaka ovanao ny sokajy ny fiarovana raha tsy mahazo manoratra ianao.\nIty ny sokajy ny pejy '''$1''' :",
        "protect-locked-dblock": "Tsy afaka solona ny sokajy ny fiarovana satria ny voatohana ny fotom-pandraisana.\nIty ny reglajy ny pejy  '''$1'''",
        "protect-locked-access": "Tsy manana alalana manova ny fiarovana ny pejy ianao.\nIty ny réglage ny pejy '''$1''' :",
-       "protect-cascadeon": "Voaaro ity pejy ity ankehitriny noho ny fisiany anatin'{{PLURAL:$1|ity pejy voaaro ity|ireo pejy voaaro ireo}} miaraka amin'ny « fiarovana an-driana » (protection en cascade). Azonareo ovaina ny fiarovan'ity pejy ity fa tsy ho voakasika ny fiarovana an-driana.",
+       "protect-cascadeon": "Voaaro ity pejy ity satria ampiasaina anatin'{{PLURAL:$1|ity pejy ity|ireo pejy ireo}} izay mampiasa fiarovana miitatra.\nTsy hanam-piantraika amin'ny fiarovana miitatra ny fanovana haavom-piarovana.",
        "protect-default": "Avela daholo ny mpikambana",
        "protect-fallback": "Hanome alalana ny mpikambana manana ny zo \"$1\"",
        "protect-level-autoconfirmed": "Hanome alalana ny mpikambana voamarina",
        "tooltip-ca-nstab-main": "Jereo ny takelaka",
        "tooltip-ca-nstab-user": "Jereo ny pejin'ny mpikambana",
        "tooltip-ca-nstab-media": "Hijery ny pejin'ny Media",
-       "tooltip-ca-nstab-special": "Pejy manokana ity pejy ity, ny rindrankajy wiki no mitantana ity pejy ity",
+       "tooltip-ca-nstab-special": "Pejy manokana ity ka tsy azo ovaina",
        "tooltip-ca-nstab-project": "Hijery ny pejin-tetikasa",
        "tooltip-ca-nstab-image": "jereo ny pejy an'io rakitra io",
        "tooltip-ca-nstab-mediawiki": "Hijery ny hafatra ampiasain'ny rindrankajy",
        "spambot_username": "Fanadiovana ny spam amin'i MediaWiki.",
        "spam_reverting": "Famerenana an'ilay versiona farany tsy misy ny rohy mankany amin'ny $1",
        "spam_blanking": "Voafotsy ny versiona misy ny rohy mankany amin'ny $1",
-       "simpleantispam-label": "Fanamarinana anoherana ny spam.\n<strong>AZA</strong> fenoina ity!",
+       "simpleantispam-label": "Fanamarinana anoherana ny spam.\n<strong>Aza</strong> fenoina ity!",
        "pageinfo-title": "Fampahalalana ho an'i \"$1\"",
        "pageinfo-header-basic": "Fampahalalana fototra",
        "pageinfo-header-edits": "Tantaran'ny fanovana",
        "logentry-newusers-create": "{{GENDER:$2|Noforonina}} ny kaontim-pikambana $1",
        "logentry-newusers-create2": "{{GENDER:$2|Noforonin}}'i $1 ny kaomtim-pikambana $3",
        "logentry-newusers-autocreate": "{{GENDER:$2|Noforonina}} ho azy ny kaontim-pikambana $1",
+       "logentry-protect-move_prot": "Nanova ny parameta-piarovan'i avy amin'ny $4 ho $3 i $1{{GENDER:$2|}}",
        "logentry-rights-rights": "$1 dia nanova ny sokajim-pikambana isian'i $3 avy amin'ny $4 lasa $5{{GENDER:$2}}",
        "logentry-rights-rights-legacy": "{{GENDER:$2}}$1 nanova ny vonodrom-pikambana isian'i $3",
        "logentry-rights-autopromote": "{{GENDER:$2}}Lasa $5 ho azy i $1 izay $4 taloha",
index 018e415..fa670f5 100644 (file)
        "passwordreset": "Setel ulang kato sandi",
        "passwordreset-text-one": "Lengkapkan formulir ko untuak manuka baliak kato sandi Sanak.",
        "passwordreset-text-many": "{{PLURAL:$1|Masuakan data di bawah ko untuak manuka baliak kato sandi Sanak.}}",
-       "passwordreset-legend": "Tuka baliak kato sandi",
        "passwordreset-disabled": "Pangubahan kato sandi alah dimatian di wiki iko.",
        "passwordreset-emaildisabled": "Fitur surel alah dimatian pado wiki iko.",
        "passwordreset-username": "Namo pangguno:",
        "passwordreset-emailtitle": "Detail akun di {{SITENAME}}",
        "passwordreset-emailtext-ip": "Sasaurang (mungkin Sanak, dari alamaik IP $1) mamintak parubahan kato sandi untuak {{SITENAME}} ($4). {{PLURAL:$3|Akun}} barikuik takaik jo alamaik surel ko:\n\n$2\n\n{{PLURAL:$3|Sandi samantaro}} barikuik akan habih masonyo dalam {{PLURAL:$5|$5 ari}}.\nSanak harus masuak dan mamiliah sandi baru. Jikok urang lain mambuek pamintaan ko atau jikok Sanak ingek sandi awal dan indak nio maubahnyo, Sanak dapek mangacuahkan pasan ko dan taruih manggunoan kato sandi lamo.",
        "passwordreset-emailtext-user": "Sasaurang (mungkin Sanak, dari alamaik IP $1) mamintak parubahan kato sandi untuak {{SITENAME}} ($4).\n{{PLURAL:$3|Akun}} barikuik takaik jo alamaik surel ko:\n\n$2\n\n{{PLURAL:$3|Sandi samantaro}} barikuik akan habih masonyo dalam {{PLURAL:$5|$5 ari}}.\nSanak harus masuak dan mamiliah sandi baru. Jikok urang lain mambuek pamintaan ko atau jikok Sanak ingek sandi awal dan indak nio maubahnyo, Sanak dapek mangacuahkan pasan ko dan taruih manggunoan kato sandi lamo.",
-       "passwordreset-emailelement": "Namo pangguno: $1\nSandi samantaro: $2",
+       "passwordreset-emailelement": "Namo pangguno: \n$1\n\nSandi samantaro: \n$2",
        "passwordreset-emailsent": "Surel parubahan kato sandi alah dikirim.",
        "passwordreset-emailsent-capture": "Surel parubahan kato sandi alah dikirim, nan nampak di bawah ko.",
        "passwordreset-emailerror-capture": "Surel parubahan kato sandi nan ditampilan di bawah, alah dibuek, tapi pangirimannyo ka {{GENDER:$2|pangguno}} gagal: $1",
        "unusedtemplatestext": "Daftar barikuik adolah kasado laman pado ruangnamo {{ns:template}} nan indak dipakai di laman manopun.\nPariso dulu \"pautan baliak\" ka templat tasabuik sabalun manghapuihnyo.",
        "unusedtemplateswlh": "pautan baliak",
        "randompage": "Laman sumbarang",
+       "randomincategory-submit": "Tuju",
        "randomredirect": "Pangaliahan sumbarang",
        "statistics": "Statistik",
        "statistics-header-pages": "Statistik laman",
        "nlinks": "$1 {{PLURAL:$1|pautan}}",
        "nmembers": "$1 {{PLURAL:$1|anggota}}",
        "nrevisions": "$1 {{PLURAL:$1|revisi}}",
-       "nviews": "dilihek $1 {{PLURAL:$1|kali}}",
        "nimagelinks": "Digunoan pado $1 {{PLURAL:$1|laman}}",
        "ntransclusions": "digunoan pado $1 {{PLURAL:$1|laman}}",
        "specialpage-empty": "Indak ado nan paralu dilaporan.",
        "emailuser": "Surel pangguno",
        "emailuser-title-target": "Kirim surel ka {{GENDER:$1|panggun}} ko",
        "emailuser-title-notarget": "Kirim surel",
-       "emailpage": "Kirim surel ka pangguno ko",
        "emailpagetext": "Sanak dapek manggunoan formulir di bawah ko untuak mangirimkan surel ka {{GENDER:$1|pangguna}} ko.\nAlamaik surel nan Sanak masuakkan di [[Special:Preferences|pangaturan akun]] akan kalua sabagai alamaik \"Dari\" pado surel tasabuik, jadi panarimo dapek langsuang mambalehnyo.",
        "usermaildisabled": "Surel pangguno non-aktif",
        "emailtarget": "Masuakan namo pangguno nan ka manarimo surel",
index 6f9da7d..a7628ba 100644 (file)
        "november-date": "$1 ноември",
        "december-date": "$1 декември",
        "pagecategories": "{{PLURAL:$1|Категорија|Категории}}",
-       "category_header": "Статии во категоријата „$1“",
+       "category_header": "Страници во категоријата „$1“",
        "subcategories": "Поткатегории",
        "category-media-header": "Податотеки во категоријата „$1“",
        "category-empty": "''Оваа категорија моментално не содржи страници или податотеки.''",
        "nstab-template": "Шаблон",
        "nstab-help": "Страница за помош",
        "nstab-category": "Категорија",
+       "mainpage-nstab": "Главна страница",
        "nosuchaction": "Нема такво дејство",
        "nosuchactiontext": "Дејството укажано во URL-адресата е погрешно.\nМожеби имате грешка во пишувањето на адресата, или пак имате проследено погрешна врска.\nОва може да се должи и на грешка во програмската опрема на {{SITENAME}}.",
        "nosuchspecialpage": "Не постои таква службена страница",
        "passwordreset-emailtitle": "Најавни податоци за {{SITENAME}}",
        "passwordreset-emailtext-ip": "Некој (веројатно вие, од IP-адресата $1) побара измена на вашата\nлозинка за {{SITENAME}} ($4). Оваа е-поштенска адреса е наведена во\n{{PLURAL:$3|следнава корисничка сметка|следниве кориснички сметки}}:\n\n$2\n\n{{PLURAL:$3|Оваа привремена лозинка ќе истече|Овие привремени лозинки ќе истечат}} во рок од {{PLURAL:$5|еден ден|$5 дена}}.\nСега треба да се најавите и да внесете нова лозинка. Ако ова барање го\nпоставил некој друг, или пак во меѓувреме сте се сетиле на лозинката, и не сакате\nда ја менувате, тогаш слободно занемарете ја поракава и продолжете да ја користите старата.",
        "passwordreset-emailtext-user": "Корисникот $1 на {{SITENAME}} побара измена на вашата лозинка на {{SITENAME}}\n($4). Оваа е-поштенска адреса е наведена во {{PLURAL:$3|следнава корисничка сметка|следниве кориснички сметки}}:\n\n$2\n\n{{PLURAL:$3|Оваа привремена лозинка ќе истече|Овие привремени лозинки ќе истечат}} во рок од {{PLURAL:$5|еден ден|$5 дена}}.\nСега треба да се најавите и да внесете нова лозинка. Ако ова барање го\nпоставил некој друг, или пак во меѓувреме сте се сетиле на лозинката, и не сакате\nда ја менувате, тогаш слободно занемарете ја поракава и продолжете да ја користите старата.",
-       "passwordreset-emailelement": "Корисничко име: $1\nПривремена лозинка: $2",
+       "passwordreset-emailelement": "Корисничко име: \n$1\n\nПривремена лозинка: \n$2",
        "passwordreset-emailsent": "Испратено е писмо за измена на лозинката.",
        "passwordreset-emailsent-capture": "Испратено е писмо за измена на лозинката (прикажано подолу).",
        "passwordreset-emailerror-capture": "Создадено е писмо за измена на лозинката (прикажано подолу), но не успеав да го испратам на {{GENDER:$2|корисникот}}: $1",
        "changeemail-password": "Вашата лозинка на {{SITENAME}}:",
        "changeemail-submit": "Смени е-пошта",
        "changeemail-throttled": "Имате премногу обиди за најава за кратко време.\nПочекајте $1 пред да се обидете повторно.",
+       "changeemail-nochange": "Внесете поинаква нова е-пошта.",
        "resettokens": "Врати одново шифри",
        "resettokens-text": "Можете шифрите да ги вратите одново што овозможува пристап до извесни лични податоци што се однесуваат на вашата овдешна сметка.\n\nОва треба да се направи ако по грешка сте споделиле нешто со некого или ако сметката ви е изложена на опасност.",
        "resettokens-no-tokens": "Нема шифри за враќање.",
        "permissionserrorstext-withaction": "Немате дозвола за $2, од {{PLURAL:$1|следнава причина|следниве причини}}:",
        "recreate-moveddeleted-warn": "Внимание: Повторно создавате страница што претходно била бришена.'''\n\nРазмислете дали е правилно да продолжите со уредување на оваа страница.\nПодолу е прикажан дневникот на бришења и преместувања на оваа страница:",
        "moveddeleted-notice": "Оваа страница била претходно бришена.\nДневникот на бришења и преместувања за оваа страница е прикажан подолу за ваше дополнително информирање.",
+       "moveddeleted-notice-recent": "За жал, страницава беше неодамна избришана (во последниве 24 часа).\nПодолу можете да го погледате дневникот на бришење и преместување.",
        "log-fulllog": "Преглед на целиот дневник",
        "edit-hook-aborted": "Уредувањето е прекинато со кука.\nНе е дадено никакво образложение.",
        "edit-gone-missing": "Не можев да ја подновам страницата.\nВеројатно е избришана.",
        "prefs-help-signature": "Коментарите на страниците за разговор треба да се потпишуваат со „<nowiki>~~~~</nowiki>“ кое ќе се претвори во вашиот потпис и време.",
        "badsig": "Грешка во потписот.\nПроверете ги HTML ознаките.",
        "badsiglength": "Вашиот потпис е премногу долг.\nМора да биде со помалку од $1 {{PLURAL:$1|знак|знаци}}.",
-       "yourgender": "Ð\9aако Ð±Ð¸ Ñ\81акале Ð´Ð° Ð²Ðµ Ð¾Ð¿Ð¸Ñ\88Ñ\83ваме?",
-       "gender-unknown": "Ð\9aога Ñ\9cе Ð²Ðµ Ñ\81помнÑ\83ва, Ð¿Ñ\80огÑ\80амоÑ\82 Ñ\9cе ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ñ\80одово Ð½ÐµÑ\83Ñ\82Ñ\80ални Ð·Ð±Ð¾Ñ\80ови Ñ\81екаде ÐºÐ°Ñ\98Ñ\88Ñ\82о Ð¼Ð¾Ð¶Ðµ",
-       "gender-male": "ТоÑ\98 Ñ\83Ñ\80едÑ\83ва Ð²Ð¸ÐºÐ¸Ñ\81Ñ\82Ñ\80аниÑ\86и",
-       "gender-female": "Таа Ñ\83Ñ\80едÑ\83ва Ð²Ð¸ÐºÐ¸Ñ\81Ñ\82Ñ\80аниÑ\86и",
+       "yourgender": "Ð\9fол",
+       "gender-unknown": "непоÑ\81оÑ\87ено",
+       "gender-male": "маÑ\88ки",
+       "gender-female": "женÑ\81ки",
        "prefs-help-gender": "Оваа поставка е незадолжителна.\nПрограмот го користи посочениот род за да ве опишува согласно вашиот пол.\nИнформацијата ќе биде јавна.",
        "email": "Е-пошта",
        "prefs-help-realname": "Вистинското име е незадолжително.\nДоколку изберете да го внесете, тоа може да се искористи за оддавање на заслуги за Вашата работа.",
        "api-error-badaccess-groups": "Не ви е дозволено да подигате податотеки на ова вики.",
        "api-error-badtoken": "Внатрешна грешка: неисправна шифра.",
        "api-error-copyuploaddisabled": "Подигањата со URL се оневозможени на овој опслужувач.",
-       "api-error-duplicate": "Веќе {{PLURAL:$1|постои [$2 друга податотека]|постојат [$2 други податотеки]}} со истата содржина",
-       "api-error-duplicate-archive": "На мрежното место веќе {{PLURAL:$1|постоела [$2 друга податотека]|постоеле [$2 други податотеки]}} со истата содржина, но во меѓувреме {{PLURAL:$1|е избришана|се избришани}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Дуплирана податотека што е веќе избришана|Дуплирани податотеки што се веќе избришани}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Дуплирана податотека|Дуплирани податотеки}}",
+       "api-error-duplicate": "Веќе {{PLURAL:$1|постои друга податотека|постојат други податотеки}} со истата содржина.",
+       "api-error-duplicate-archive": "На мрежното место веќе {{PLURAL:$1|постоела друга податотека|постоеле други податотеки}} со истата содржина, но во меѓувреме {{PLURAL:$1|била избришана|биле избришани}}.",
        "api-error-empty-file": "Поднесената податотека е празна.",
        "api-error-emptypage": "Создавањето на нови празни страници не е дозволено.",
        "api-error-fetchfileerror": "Внатрешна грешка: нешто тргна наопаку при добивањето на податотеката.",
index 2835270..791ce8b 100644 (file)
@@ -29,7 +29,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Viswaprabha",
-                       "Nesi"
+                       "Nesi",
+                       "Macofe"
                ]
        },
        "tog-underline": "കണ്ണികൾക്ക് അടിവരയിടുക:",
        "passwordreset-emailtitle": "{{SITENAME}} സംരംഭത്തിലെ അംഗത്വവിവരങ്ങൾ",
        "passwordreset-emailtext-ip": "ആരോ ഒരാൾ (മിക്കവാറും താങ്കളായിരിക്കും, $1 എന്ന ഐ.പി. വിലാസത്തിൽ നിന്നും) {{SITENAME}} സംരംഭത്തിലെ ($4) താങ്കളുടെ രഹസ്യവാക്ക് പുനർസജ്ജീകരിക്കാൻ അഭ്യർത്ഥിച്ചിരിക്കുന്നു. ഈ ഇമെയിൽ വിലാസവുമായി ബന്ധപ്പെട്ടിരിക്കുന്ന {{PLURAL:$3|അംഗത്വം|അംഗത്വങ്ങൾ}} താഴെക്കൊടുത്തിരിക്കുന്നു:\n\n$2\n\n\nഈ {{PLURAL:$3|താത്കാലിക രഹസ്യവാക്ക്|താത്കാലിക രഹസ്യവാക്കുകൾ}} {{PLURAL:$5|ഒരു ദിവസം|$5 ദിവസങ്ങൾ}} കൊണ്ട് കാലഹരണപ്പെട്ട് പോകുന്നവയാണ്.\nതാങ്കൾ ഇപ്പോൾ തന്നെ പ്രവേശിച്ച് രഹസ്യവാക്ക് മാറ്റുന്നതാണ് ഉചിതം. ഈ അഭ്യർത്ഥന മറ്റാരോ ആണ് നടത്തിയത് അല്ലെങ്കിൽ, യഥാർത്ഥ രഹസ്യവാക്ക് താങ്കൾ ഓർമ്മിക്കുകയും അത് മാറ്റാൻ ആഗ്രഹിക്കാതിരിക്കുകയും ആണെങ്കിൽ, ഈ സന്ദേശം അവഗണിച്ച് താങ്കളുടെ പഴയ രഹസ്യവാക്ക് തുടർന്നും ഉപയോഗിക്കാവുന്നതാണ്.",
        "passwordreset-emailtext-user": "{{SITENAME}} സംരംഭത്തിലെ ഉപയോക്താവായ $1 {{SITENAME}} സംരംഭത്തിലെ ($4) രഹസ്യവാക്ക് പുനർസജ്ജീകരിക്കാൻ അഭ്യർത്ഥിച്ചിരിക്കുന്നു. ഈ ഇമെയിൽ വിലാസവുമായി ബന്ധപ്പെട്ടിരിക്കുന്ന {{PLURAL:$3|അംഗത്വം|അംഗത്വങ്ങൾ}} താഴെക്കൊടുത്തിരിക്കുന്നു:\n\n$2\n\n\nഈ {{PLURAL:$3|താത്കാലിക രഹസ്യവാക്ക്|താത്കാലിക രഹസ്യവാക്കുകൾ}} {{PLURAL:$5|ഒരു ദിവസം|$5 ദിവസങ്ങൾ}} കൊണ്ട് കാലഹരണപ്പെട്ട് പോകുന്നവയാണ്.\nതാങ്കൾ ഇപ്പോൾ തന്നെ പ്രവേശിച്ച് രഹസ്യവാക്ക് മാറ്റുന്നതാണ് ഉചിതം. ഈ അഭ്യർത്ഥന മറ്റാരോ ആണ് നടത്തിയത് അല്ലെങ്കിൽ, യഥാർത്ഥ രഹസ്യവാക്ക് താങ്കൾ ഓർമ്മിക്കുകയും അത് മാറ്റാൻ ആഗ്രഹിക്കാതിരിക്കുകയും ആണെങ്കിൽ, ഈ സന്ദേശം അവഗണിച്ച് താങ്കളുടെ പഴയ രഹസ്യവാക്ക് തുടർന്നും ഉപയോഗിക്കാവുന്നതാണ്.",
-       "passwordreset-emailelement": "ഉപയോക്തൃനാമം: $1\nതാത്കാലിക രഹസ്യവാക്ക്: $2",
+       "passwordreset-emailelement": "ഉപയോക്തൃനാമം: \n$1\n\nതാത്കാലിക രഹസ്യവാക്ക്: \n$2",
        "passwordreset-emailsent": "ഒരു രഹസ്യവാക്ക് പുനർസജ്ജീകരണ ഇമെയിൽ അയച്ചിട്ടുണ്ട്.",
        "passwordreset-emailsent-capture": "രഹസ്യവാക്ക് പുനർസജ്ജീകരണ ഇമെയിൽ അയച്ചിട്ടുണ്ട്, അത് താഴെക്കൊടുക്കുന്നു.",
        "passwordreset-emailerror-capture": "താഴെക്കൊടുത്തിരിക്കുന്ന, രഹസ്യവാക്ക് പുനർസജ്ജീകരണ ഇമെയിൽ സൃഷ്ടിക്കാനായെങ്കിലും, അത് {{GENDER:$2|ഉപയോക്താവിന്}} അയയ്ക്കുന്നത് പരാജയപ്പെട്ടു: $1",
        "booksources-text": "പുതിയതും ഉപയോഗിച്ചതുമായ പുസ്തകങ്ങൾ വിൽക്കുന്ന സൈറ്റുകളിലേക്കുള്ള ലിങ്കുകളുടെ പട്ടിക ആണ്‌ താഴെ. താങ്കൾ തിരയുന്ന പുസ്തകത്തെ പറ്റിയുള്ള കൂടുതൽ വിവരങ്ങൾ ഈ പട്ടികയിൽ നിന്നു ലഭിച്ചേക്കാം:",
        "booksources-invalid-isbn": "തന്നിരിക്കുന്ന ഐ.എസ്.ബി.എൻ. സാധുവാണെന്നു തോന്നുന്നില്ല; യഥാർത്ഥ സ്രോതസ്സിൽ നിന്നും പകർത്തിയപ്പോൾ തെറ്റുപറ്റിയോ എന്നു പരിശോധിക്കുക",
        "specialloguserlabel": "നടപ്പിലാക്കിയയാൾ:",
-       "speciallogtitlelabel": "à´²à´\95àµ\8dà´·àµ\8dà´¯à´\82 (തലà´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\8d à´\85à´²àµ\8dà´²àµ\86à´\99àµ\8dà´\95ിൽ à´\89പയàµ\8bà´\95àµ\8dതാവàµ\8d) :",
+       "speciallogtitlelabel": "à´²à´\95àµ\8dà´·àµ\8dà´¯à´\82 (തലà´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\8d à´\85à´²àµ\8dà´²àµ\86à´\99àµ\8dà´\95ിൽ à´\89പയàµ\8bà´\95àµ\8dതാവിനàµ\86 à´¤à´¿à´°à´¯à´¾à´¨àµ\81à´³àµ\8dà´³ {{ns:user}}:à´\89പയàµ\8bà´\95àµ\8dà´¤àµ\83നാമà´\82) :",
        "log": "പ്രവർത്തനരേഖകൾ",
        "all-logs-page": "എല്ലാ പൊതുരേഖകളും",
        "alllogstext": "{{SITENAME}} സംരംഭത്തിൽ ലഭ്യമായ വിവിധ പ്രവർത്തന രേഖകൾ ഈ താളിൽ ഒരുമിച്ച് കാണാം. താങ്കൾക്ക് രേഖകളുടെ സ്വഭാവം, ഉപയോക്തൃനാമം (കേസ് സെൻസിറ്റീവ്), ബന്ധപ്പെട്ട താൾ (കേസ് സെൻസിറ്റീവ്) മുതലായവ തിരഞ്ഞെടുത്ത് അന്വേഷണം കൂടുതൽ ക്ഌപ്തപ്പെടുത്താവുന്നതാണ്.",
        "tooltip-ca-nstab-main": "വിവരദായക താൾ കാണുക",
        "tooltip-ca-nstab-user": "ഉപയോക്താവിന്റെ താൾ കാണുക",
        "tooltip-ca-nstab-media": "മീഡിയ താൾ കാണുക",
-       "tooltip-ca-nstab-special": "ഇതൊരു '''പ്രത്യേക''' താളാണ്‌. ഇത് തിരുത്തുക സാധ്യമല്ല.",
+       "tooltip-ca-nstab-special": "ഇതൊരു പ്രത്യേക താളാണ്‌. ഇത് തിരുത്തുക സാധ്യമല്ല.",
        "tooltip-ca-nstab-project": "പദ്ധതി താൾ കാണുക",
        "tooltip-ca-nstab-image": "പ്രമാണ താൾ കാണുക",
        "tooltip-ca-nstab-mediawiki": "വ്യവസ്ഥാസന്ദേശം കാണുക",
        "api-error-badtoken": "ആന്തരിക പിഴവ്: ഗുണകരമല്ലാത്ത ചീട്ട്.",
        "api-error-copyuploaddisabled": "യൂ.ആർ.എൽ. ഉപയോഗിച്ചുള്ള അപ്‌ലോഡ് ഈ സെർവറിൽ പ്രവർത്തനസജ്ജമാക്കിയിട്ടില്ല.",
        "api-error-duplicate": "വിക്കിയിൽ ഇതേ ഉള്ളടക്കമുള്ള {{PLURAL:$1|[$2 മറ്റൊരു പ്രമാണം]|[$2 മറ്റ് പ്രമാണങ്ങൾ]}} മുമ്പേയുണ്ട്.",
-       "api-error-duplicate-archive": "സൈറ്റിൽ ഇതേ ഉള്ളടക്കമുള്ള {{PLURAL:$1|[$2 മറ്റൊരു പ്രമാണം]|[$2 മറ്റ് പ്രമാണങ്ങൾ]}} ഉണ്ടായിരുന്നു, പക്ഷേ {{PLURAL:$1|അത്|അവ}} മായ്ക്കപ്പെട്ടിട്ടുണ്ട്.",
-       "api-error-duplicate-archive-popup-title": "പകർപ്പ് {{PLURAL:$1|പ്രമാണം|പ്രമാണങ്ങൾ}} മുമ്പേതന്നെ മായ്ക്കപ്പെട്ടു",
-       "api-error-duplicate-popup-title": "പകർപ്പ് {{PLURAL:$1|പ്രമാണം|പ്രമാണങ്ങൾ}}",
+       "api-error-duplicate-archive": "സൈറ്റിൽ ഇതേ ഉള്ളടക്കമുള്ള {{PLURAL:$1|മറ്റൊരു പ്രമാണം|മറ്റ് പ്രമാണങ്ങൾ}} ഉണ്ടായിരുന്നു, പക്ഷേ {{PLURAL:$1|അത്|അവ}} മായ്ക്കപ്പെട്ടിട്ടുണ്ട്.",
        "api-error-empty-file": "താങ്കൾ സമർപ്പിച്ച പ്രമാണം ശൂന്യമാണ്.",
        "api-error-emptypage": "ശൂന്യമായ പുതിയ താളുകൾ സൃഷ്ടിക്കുന്നത് അനുവദിക്കുന്നില്ല.",
        "api-error-fetchfileerror": "ആന്തരിക പിഴവ്: പ്രമാണം ശേഖരിച്ചുകൊണ്ടിരുന്നപ്പോൾ എന്തോ പിഴവുണ്ടായി.",
index 60f05c0..3c380d9 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}}-н бүртгэлийн мэдээлэл",
        "passwordreset-emailtext-ip": "Хэн нэгэн ($1 гэсэн IP хаягаас) {{SITENAME}} ($4) дээр таны бүртгэлийн сануулга авахаар хүссэн байна. Дараах {{PLURAL:$3|бүртгэл|бүртгэл}}\nуг е-шуудантай холбоотой:\n\n$2\n\n{{PLURAL:$3|Уг түр хэрэглэх нууц үг|Уг түр хэрэглэх нууц үгүүд}} нь {{PLURAL:$5|нэг өдрийн|$5 өдрийн}} дотор устах болно.\nТа уг нууц үгээр нэвтэрч, түүнийг шинэчлэх хэрэгтэй. Хэрэв өөр нэгэн уг хүсэлтийг явуулсан бол \nэсвэл өөрийн ориг нууц үгээ санаж байгаад түүнийгээ өөрчлөхийг хүсэхгүй байгаа бол энэ захиаг үл ойшоож \nэнгийнээр нэвтэрч болно.",
        "passwordreset-emailtext-user": "{{SITENAME}} дээрх $1 хэрэглэгч {{SITENAME}} ($4) дээр өөрийн тань бүртгэл дээр сануулга хүссэн байна. \nДараах {{PLURAL:$3|бүртгэл|бүртгэлүүд}} уг е-шуудантай холбоотой байна:\n\n$2\n\nЭнэ {{PLURAL:$3|түр нууц үг|түр нууц үгс}} {{PLURAL:$5|нэг өдрийн дараа|$5 өдрийн дараа}} устах болно.\nТүүгээр нэвтэрч ороод нууц үгээ шинэчилнэ үү. Энэ сануулгыг өөр хэн нэгэн хийсэн, эсвэл та\nнууц үгээ санаж байгаа бол энэ захиаг анхааралгүйгээр хуучнаараа ороход болно.",
-       "passwordreset-emailelement": "Хэрэглэгчийн нэр: $1\nТүр зуурын нууц үг: $2",
+       "passwordreset-emailelement": "Хэрэглэгчийн нэр: \n$1\n\nТүр зуурын нууц үг: \n$2",
        "passwordreset-emailsent": "Нууц үг солин емайл илгээсэн.",
        "passwordreset-emailsent-capture": "Доор харагдаж байгаа нь танируу илгээсэн нууц үг ресет хийх емайл.",
        "passwordreset-emailerror-capture": "Доор харагдаж байгаа нууц үг ресет хийх емайл үүссэх боловч {{GENDER:$2|хэрэглэгчид}} илгээхэд алдаа гарлаа : $1",
        "emailuser": "Энэ хэрэглэгчид мэйл илгээх",
        "emailuser-title-target": "Энэ {{GENDER:$1|хэрэглэгчийг}} и-мейлээр явуулах",
        "emailuser-title-notarget": "И-мейл хэрэглэгч",
-       "emailpage": "Хэрэглэгчид мэйл илгээх",
        "emailpagetext": "Энэ хэрэглэгч рүү мэйл илгээхэд доорхийг бөглөнө.\nТаны өөрийн [[Special:Preferences|хэрэглэгчийн тохиргоонд]] оруулсан мэйл хаяг нь \"Хэнээс\" гэсэн хэсэгт гарах тул хүлээн авагч хариугаа тань руу шууд илгээх боломжтой.",
        "defemailsubject": "{{SITENAME}} дахь \"$1\" хэрэглэгчийн и-мэйл хаяг",
        "usermaildisabled": "Хэрэглэгчийн и-мэйлийг идэвхигүйжүүлэв",
index 88e10c1..e4c8ca5 100644 (file)
        "view-foreign": "$1 वर पहा",
        "edit": "संपादन",
        "create": "तयार करा",
+       "create-local": "स्थानिक वर्णन जोडा",
        "editthispage": "हे पृष्ठ संपादित करा",
        "create-this-page": "हे पान तयार करा",
        "delete": "वगळा",
        "pool-timeout": "ताळ्यासाठी वाट पाहण्याची वेळ संपली",
        "pool-queuefull": "सर्व्हरवर ताण आहे.",
        "pool-errorunknown": "अपरिचित त्रुटी",
-       "poolcounter-usage-error": "वापर à¤\95रताà¤\82ना à¤¤à¥\8dरà¥\82à¤\9fà¥\80 $1",
+       "poolcounter-usage-error": "वापर à¤¤à¥\8dरà¥\82à¤\9fà¥\80:$1",
        "aboutsite": "{{SITENAME}}बद्दल",
        "aboutpage": "Project:माहितीपृष्ठ",
        "copyright": "येथील मजकूर $1च्या अंतर्गत उपलब्ध आहे जोपर्यंत इतर नोंदी केलेल्या नाहीत.",
        "hidetoc": "लपवा",
        "collapsible-collapse": "निपात करा",
        "collapsible-expand": "विस्तार",
-       "confirmable-confirm": " {{GENDER:$1|तिम्हाला}} खात्रिआहे का ?",
+       "confirmable-confirm": "{{GENDER:$1|आपणास}}खात्री आहे काय?",
        "confirmable-yes": "होय",
        "confirmable-no": "नाही",
        "thisisdeleted": "$1चे अवलोकन किंवा पुनर्स्थापन करायचे ?",
        "filerenameerror": "\"$1\" संचिकेचे \"$2\" असे नामांतर करता आले नाही.",
        "filedeleteerror": "\"$1\" संचिका वगळता आली नाही.",
        "directorycreateerror": "\"$1\" कार्यधारीका (डिरेक्टरी) तयार केली जाऊ शकली नाही.",
-       "directoryreadonlyerror": " \"$1\" हा कोश फक्त वाचण्या साठि आहे.",
-       "directorynotreadableerror": " \"$1\" ह्या कोशाला वाचता आणी लिहिता येते.",
+       "directoryreadonlyerror": "कोश \"$1\" ला फक्त वाचता येऊ शकते.",
+       "directorynotreadableerror": "कोश \"$1\" ला वाचता येऊ शकत नाही.",
        "filenotfound": "\"$1\" ही संचिका सापडत नाही.",
        "unexpected": "अनपेक्षित मूल्य: \"$1\"=\"$2\"",
        "formerror": "त्रुटी: आवेदन सादर करता आले नाही.",
        "no-null-revision": "\"$1\" या पानाची नविन रिक्त आवृत्ती निर्मिता आली नाही.",
        "badtitle": "खराब शीर्षक",
        "badtitletext": "आपण विनंती केलेले पानाचे शीर्षक अयोग्य, रिकामे अथवा चुकिने जोडलेले आंतर-भाषिय किंवा आंतर-विकि शीर्षक आहे. त्यात,शीर्षकास अयोग्य अशी एक किंवा अधिक चिन्हे आहेत.",
-       "title-invalid-empty": "आपण विनंति केलेले पान हे रिकामे आहे किंवा त्यास केवळ नामविश्वाचे नाव दिलेले आहे.",
-       "title-invalid-utf8": "à¤\86पण à¤µà¤¿à¤¨à¤\82ति à¤\95à¥\87लà¥\87लà¥\87 à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\8dया à¤¨à¤µà¤¾à¤¤ à¤\85वà¥\88ध à¤¯à¥\81 à¤\9fि à¤\90फ à¤\85à¤\95à¥\8dषरà¥\87 à¤\86हà¥\87त",
-       "title-invalid-interwiki": "à¤\86पण à¤µà¤¿à¤¨à¤\82ति à¤\95à¥\87लà¥\87लà¥\87 à¤ªà¤¾à¤¨à¤¾ à¤®à¤§à¥\8dयà¥\87 à¤\86नà¥\8dतर à¤µà¤¿à¤\95ि à¤¦à¥\81वà¥\87 à¤\86हà¥\87त à¤\9cà¥\87 à¤·à¤¿à¤°à¥\8dशà¤\95ात à¤µà¤ªà¤°à¤£à¥\8dयास à¤®à¤¨à¤¾à¤\87 à¤\86हà¥\87",
+       "title-invalid-empty": "आपण विनंति केलेले पान-शिर्षक एकतर रिकामे आहे किंवा त्यात एखाद्या नामविश्वाचे नाव आहे.",
+       "title-invalid-utf8": "à¤\86पण à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95à¥\87लà¥\87लà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\8dया à¤¶à¤¿à¤°à¥\8dषà¤\95ात à¤\85वà¥\88ध à¤¯à¥\82à¤\9fिà¤\8fफ-८ à¤\95à¥\8dरमवारà¥\80 à¤\86हà¥\87त.",
+       "title-invalid-interwiki": "à¤\86पण à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95à¥\87लà¥\87लà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤¤ à¤\86à¤\82तरविà¤\95ि à¤¦à¥\81वà¥\87 à¤\86हà¥\87त à¤\9cà¥\87 à¤¶à¤¿à¤°à¥\8dषà¤\95ात à¤µà¤¾à¤ªà¤°à¤¤à¤¾ à¤¯à¥\87à¤\89 à¤¶à¤\95त à¤¨à¤¾à¤¹à¥\80त.",
        "title-invalid-talk-namespace": "आपण विनंति केलेले पान उपलब्ध नसलेल्या चर्च्या पानास संबोधित करते",
        "perfcached": "खालील माहिती सयीमधील (कॅशे) असल्यामुळे ती अद्ययावत् नाही.जास्तीतजास्त {{PLURAL:$1|एक प्रतिफळ |$1 प्रतिफळे }} सयीमध्ये असतात.",
        "perfcachedts": "खालील माहिती सयीमधील (कॅशे) आहे व ती  $1 पर्यंत अद्ययावत् आहे. जास्तीतजास्त {{PLURAL:$4|एक प्रतिफळ |$4 प्रतिफळे}} सयीमध्ये असतात.",
        "passwordreset-emailtitle": "{{SITENAME}} वरील खात्याची माहिती",
        "passwordreset-emailtext-ip": "कुणीतरी (कदाचित तुम्ही, अंकपत्ता $1 वरुन) {{SITENAME}}($4) करिता नविन 'परवलीचा शब्द' पुनर्स्थापनेबद्दल विनंती केली आहे.\nखालील{{PLURAL:$3|सदस्यखाते}}या विपत्रपत्त्याशी निगडीत आहे: \n\"$2\"\n{{PLURAL:$3|हा तात्पुरता परवलीचा शब्द|हे तात्पुरते परवलीचे शब्द}}{{PLURAL:$5|एक दिवस|$5 दिवसात}} मुदतबाह्य होतील.आता आपण लॉग-ईन करून  नविन परवलीचा शब्द निवडा.जर ईतर कोणी ही विनंती केली असेल,किंवा जर आपणास परवलीच शब्द आठवला असेल तर,व जर आपण तो बदलु इच्छित नसाल तर आपण हा संदेश टाळा व आपला जुना परवलीचा शब्द वापरणे सुरू ठेवा.",
        "passwordreset-emailtext-user": " {{SITENAME}}वरील सदस्य $1ने {{SITENAME}}($4) करिता नविन 'परवलीचा शब्द' पुनर्स्थापनेबद्दल विनंती केली आहे.\nखालील{{PLURAL:$3|सदस्यखाते}}या विपत्रपत्त्याशी निगडीत आहे: \n\n\"$2\"\n\n{{PLURAL:$3|हा तात्पुरता परवलीचा शब्द|हे तात्पुरते परवलीचे शब्द}}{{PLURAL:$5|एक दिवस|$5 दिवसात}} मुदतबाह्य होतील.आता आपण लॉग-ईन करून  नविन परवलीचा शब्द निवडा.जर ईतर कोणी ही विनंती केली असेल,किंवा जर आपणास परवलीच शब्द आठवला असेल तर,व, जर आपण तो बदलु इच्छित नसाल तर आपण हा संदेश टाळा व आपला जुना परवलीचा शब्द वापरणे सुरू ठेवा.",
-       "passwordreset-emailelement": "सदस्यनाव: $1\nअस्थायी परवलीचा शब्द: $2",
+       "passwordreset-emailelement": "सदस्यनाव: \n$1\n\nअस्थायी परवलीचा शब्द: \n$2",
        "passwordreset-emailsent": "'परवलीचा शब्द' पुनर्स्थापनेबाबत एक विपत्र पाठवण्यात आले आहे.",
        "passwordreset-emailsent-capture": "'परवलीचा शब्द' पुनर्स्थापनेबाबत एक विपत्र पाठवण्यात आले आहे जे खाली दर्शविण्यात आले आहे.",
        "passwordreset-emailerror-capture": "'परवलीचा शब्द' पुनर्स्थापनेबाबत एक विपत्र निर्माण करण्यात आले, जे खाली दर्शविण्यात आले आहे.परंतु,{{GENDER:$2|सदस्य}}ला पाठविणे असफल झाले: $1",
        "showhideselectedversions": "निवडलेल्या आवृत्त्या दाखवा / लपवा",
        "editundo": "उलटवा",
        "diff-empty": "(काही फरक नाही)",
+       "diff-multi-sameuser": "({{PLURAL:$1|याच सदस्याची एक माध्यमिक आवृत्ती|$1 याच सदस्याच्या माध्यमिक आवृत्त्या}} दर्श्यविण्यात आलेल्या नाहीत)",
        "diff-multi-manyusers": "{{PLURAL:$2|सदस्याची|$2 सदस्यांच्या}} ({{PLURAL:$1|आवृत्ती|$1 आवृत्त्या}} दाखवल्या नाहीत)",
        "difference-missing-revision": "या लेखाचे/ची  ($1) हे {{PLURAL:$2|संस्करण|$2 संस्करणे}} {{PLURAL:$2|सापडले नाही|सापडली नाहीत}}.वगळल्या गेलेल्या लेखपानाच्या जुन्या इतिहास-दुव्याचे अनुसरण केल्यामुळे, शक्यतोवर,असे घडु शकते.याबाबत अधिक तपशील  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} वगळलेल्या नोंदी] येथे बघता येईल.",
        "searchresults": "शोध निकाल",
        "tooltip-ca-nstab-main": "आशयाचे पान पहा",
        "tooltip-ca-nstab-user": "सदस्य पान पहा",
        "tooltip-ca-nstab-media": "माध्यम पान पहा",
-       "tooltip-ca-nstab-special": "हे विशेष पान आहे; तुम्ही ते बदलू शकत नाही.",
+       "tooltip-ca-nstab-special": "हे विशेष पान आहे,व त्याचे संपादन होउ शकत नाही.",
        "tooltip-ca-nstab-project": "प्रकल्प पान पहा",
        "tooltip-ca-nstab-image": "संचिका पान पहा",
        "tooltip-ca-nstab-mediawiki": "सिस्टीम संदेश पहा",
        "logentry-rights-rights": "$1 ने $3 साठी $4 वरुन $5 ला गट सदस्यता{{GENDER:$2|बदलली}}",
        "logentry-rights-rights-legacy": "$1 ने $3 साठी गट सदस्यता {{GENDER:$2|बदलली}}",
        "logentry-rights-autopromote": "$1 ला स्वयंचलितरित्या $4 वरुन $5 ला {{GENDER:$2|बढती दिल्या गेली}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|अपभारीत केली}} $3",
        "rightsnone": "(काहीही नाही)",
        "revdelete-summary": "संपादन माहिती",
        "feedback-adding": "आपला पश्चप्रदाय (फिडबॅक)  जोडत आहोत या पानास.......",
        "api-error-copyuploaddisabled": "या विदागारावर 'संकेतस्थळावरील संचिका चढविणे' अक्षम करण्यात आले आहे.",
        "api-error-duplicate": "या संकेतस्थळावर यासारखाच आशय असलेली {{PLURAL:$1|संचिका आहे [$2 दुसरी संचिका]| [$2 दुसऱ्या संचिका]}} आहेत.",
        "api-error-duplicate-archive": "{{PLURAL:$1| [$2 another file]| [$2 some other files]}} हे याच नावाने साईट वर आहे आणि   पान {{PLURAL:$1|it was|they were}} वगळले गेले आहे",
-       "api-error-duplicate-archive-popup-title": "नक्कल {{PLURAL:$1|संचिका|संचिका}} ज्या पूर्वीच वगळल्या आहेत",
-       "api-error-duplicate-popup-title": "प्रतिरूपक {{PLURAL:$1|संचिका|संचिका}}",
        "api-error-empty-file": "तुम्ही प्रस्तुत केलेली संचिका रिकामी होती.",
        "api-error-emptypage": "नवीन आणि मोकळी पाने बनवायला परवानगी नाही",
        "api-error-fetchfileerror": "अंतर्गत चूक: फाइल मिळवतांना काहीतरी चूक झाली आहे",
index e27a3f4..4ee0e12 100644 (file)
        "passwordreset-emailtitle": "Butiran akaun di {{SITENAME}}",
        "passwordreset-emailtext-ip": "Seseorang (mungkin anda, dari alamat IP $1) telah memohon supaya kata laluan diset semula untuk {{SITENAME}} anda ($4). {{PLURAL:$3|Akaun|Akaun-akaun}} pengguna yang berikut\ndikaitkan dengan alamat e-mel ini:\n\n$2\n\n{{PLURAL:$3|Kata|Kata-kata}} laluan sementara ini akan luput dalam masa $5 hari. Anda harus log masuk dan membuat kata laluan yang baru sekarang. Jika permohonan ini dibuat oleh orang lain, atau jika anda teringat kembali kata laluan asal anda dan anda tidak lagi berhasrat untuk mengubahnya, anda boleh mengabaikan pesanan ini dan terus menggunakan kata laluan lama anda.",
        "passwordreset-emailtext-user": "Pengguna $1 telah memohon supaya kata laluan diset semula untuk {{SITENAME}} anda ($4). {{PLURAL:$3|Akaun|Akaun-akaun}} pengguna yang berikut\ndikaitkan dengan alamat e-mel ini:\n\n$2\n\n{{PLURAL:$3|Kata|Kata-kata}} laluan sementara ini akan luput dalam masa $5 hari. Anda harus log masuk dan membuat kata laluan yang baru sekarang. Jika permohonan ini dibuat oleh orang lain, atau jika anda teringat kembali kata laluan asal anda dan anda tidak lagi berhasrat untuk mengubahnya, anda boleh mengabaikan pesanan ini dan terus menggunakan kata laluan lama anda.",
-       "passwordreset-emailelement": "Nama pengguna: $1\nKata laluan sementara: $2",
+       "passwordreset-emailelement": "Nama pengguna: \n$1\n\nKata laluan sementara: \n$2",
        "passwordreset-emailsent": "E-mel set semula kata laluan telah dihantar.",
        "passwordreset-emailsent-capture": "E-mel set semula kata laluan telah dihantar, seperti yang dipaparkan di bawah.",
        "passwordreset-emailerror-capture": "E-mel set semula kata laluan telah dihasilkan, seperti yang dipaparkan di bawah, tetapi tidak berjaya dihantar kepada {{GENDER:$2|pengguna}} berkenaan: $1",
        "api-error-badtoken": "Ralat dalaman: token tak elok.",
        "api-error-copyuploaddisabled": "Ciri memuat naik melalui URL dimatikan di pelayan ini.",
        "api-error-duplicate": "Di tapak ini sudah ada {{PLURAL:$1|[$2 satu fail lain]|[$2 fail-fail lain]}} yang sama kandungannya.",
-       "api-error-duplicate-archive": "Di tapak ini pernah ada {{PLURAL:$1|[$2 satu fail lain]|[$2 fail-fail lain]}} yang sama kandungannya, tetapi telah dihapuskan.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Fail|Fail-fail}} pendua yang sudah dihapuskan",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Fail|Fail-fail}} pendua",
+       "api-error-duplicate-archive": "Di tapak ini pernah ada {{PLURAL:$1|satu fail lain|fail-fail lain}} yang sama kandungannya, tetapi telah dihapuskan.",
        "api-error-empty-file": "Fail yang anda serahkan adalah kosong.",
        "api-error-emptypage": "Anda tidak dibenarkan membuat laman baru yang kosong.",
        "api-error-fetchfileerror": "Ralat dalaman: ada malasah ketika mengambil fail itu.",
index 3fcfbff..9c05e0d 100644 (file)
        "passwordreset-emailtitle": "Dettalji tal-kont fuq {{SITENAME}}",
        "passwordreset-emailtext-ip": "Xi ħadd (probabbilment int, mill-indirizz IP $1) għamel rikjesta sabiex jingħata password ġdida sabiex jaċċessa l-{{SITENAME}} ($4). L-{{PLURAL:$3|utent assoċjat|utenti assoċjati}} ma' dan l-indirizz elettroniku {{PLURAL:$3|huwa|huma}}:\n\n$2\n\n{{PLURAL:$3|Din il-password temporanja se tiskadi|Dawn il-passwords temporanji se jiskadu}} fi żmien {{PLURAL:$5|ġurnata|$5 jum}}. Inti għadek tidħol fil-kont tiegħek u tagħżel password ġdida issa. Jekk xi ħadd ieħor għamel din ir-rikjesta, jew jekk ftakart il-password oriġinali, u m'għadekx trid tbiddilha, inti tista' tinjora dan il-messaġġ u tibqa' tuża' l-password il-qadima.",
        "passwordreset-emailtext-user": "{{PLURAL:$3|Din il-password temporanja se tiskadi|Dawn il-passwords temporanji se jiskadu}} fi żmien {{PLURAL:$5|ġurnata|$5 jum}}. Inti għadek tidħol fil-kont tiegħek u tagħżel password ġdida issa. Jekk xi ħadd ieħor għamel din ir-rikjesta, jew jekk ftakart il-password oriġinali, u m'għadikx trid tbiddilha, inti tista' tinjora dan il-messaġġ u tibqa' tuża' l-password il-qadima.",
-       "passwordreset-emailelement": "Isem tal-utent: $1\nPassword temporanja: $2",
+       "passwordreset-emailelement": "Isem tal-utent: \n$1\n\nPassword temporanja: \n$2",
        "passwordreset-emailsent": "Intbagħtet ittra-e għall-issettjar mill-ġdid tal-password.",
        "passwordreset-emailsent-capture": "Intbagħtet ittra-e għall-ssettjar mill-ġdid tal-password u l-kontenut jidher hawn taħt.",
        "passwordreset-emailerror-capture": "Ġiet ġenerata ittra-e ta' tfakkira, li l-kontenut tagħha jidher hawn taħt. Madanakollu, il-posta ma ntbagħtitx lill-utent: $1",
        "api-error-badtoken": "Żball intern: <em>Token</em> ħażin.",
        "api-error-copyuploaddisabled": "It-tlugħ ta' fajls bl-użu tal-URL mhuwiex permess fuq dan is-server.",
        "api-error-duplicate": "Hemm {{PLURAL:$1|[$2 fajl ieħor]|[$2 xi fajls oħra]}} diġà fuq dan is-sit bl-istess kontenut.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Fajl duplikat li diġà ġie mħassar|Fajls duplikat li diġà ġew imħassra}}.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Fajl duplikat|Fajls duplikati}}.",
        "api-error-empty-file": "Il-fajl li bgħatt kien vojt.",
        "api-error-emptypage": "Mhuwiex permess il-ħolqien ta' paġna ġdida vojta.",
        "api-error-fetchfileerror": "Żball intern: Kien hemm problema waqt il-kisba tal-fajl.",
index 71ff9d3..9898372 100644 (file)
        "passwordreset": "Одов ладямс салававал",
        "passwordreset-username": "Теиця леметь:",
        "passwordreset-email": "Е-сёрмапаргот:",
-       "passwordreset-emailelement": "Теицянь леметь: $1\nНурькине шкань салававалот: $2",
+       "passwordreset-emailelement": "Теицянь леметь: \n$1\n\nНурькине шкань салававалот: \n$2",
        "changeemail-oldemail": "Неень е-сёрмапаргот:",
        "changeemail-newemail": "Од е-сёрмапаргот:",
        "changeemail-none": "(арась мезе невтемс)",
index e20b385..8ecf7ba 100644 (file)
@@ -10,7 +10,8 @@
                        "Spacebirdy",
                        "محک",
                        "아라",
-                       "Alirezaaa"
+                       "Alirezaaa",
+                       "Macofe"
                ]
        },
        "tog-underline": "پیوندون زیر خط دکشی بواشه",
        "listgrouprights-members": "(کارورون لیست)",
        "mailnologintext": "برای برسنی‌ین پوست الکترونیکی به کارورون دیگه ونه [[Special:UserLogin|بورین سامانه دله]] و نشونی پوست الکترونیکی معتبری تو [[Special:Preferences|ترجیحات]] خادت ره داشته بایی.",
        "emailuser": "این کارور وسّه ایمیل بَرسِن",
-       "emailpage": "ئـی-مه‌یـل ای کـارور وه‌سه",
        "watchlist": "مه دمبال‌هاکرده‌‌ئون ِلیست",
        "mywatchlist": "دمبال‌هاکرده‌ئون فهرست",
        "watchnologin": "سیستم ره دله نی ئه موئین",
        "tooltip-n-portal": "اینجه بتونّی بقیه جه کومک بَیرین یا سؤال هاکنین",
        "tooltip-n-currentevents": "تازه اخبار ره بخوندِستن",
        "tooltip-n-recentchanges": "تازه دچی‌یه‌ئون ره لیست",
-       "tooltip-n-randompage": "اتت شانسی صفحه بَدی‌ین",
+       "tooltip-n-randompage": "اتا شانسی صفحه بَدی‌ین",
        "tooltip-n-help": "أتـا جـا کـه...",
        "tooltip-t-whatlinkshere": "هأمو ولـگ‌ئونی که ایجه ره لینک هه‌دانه",
        "tooltip-t-recentchangeslinked": "اِسایی دِگاردسته‌ئون ِصفحه‌ئون که این صفحه جه لینک دارنه",
        "tooltip-ca-nstab-main": "بدی‌ین ِصفحه",
        "tooltip-ca-nstab-user": "کاروری صفحه ره بَدی‌ین",
        "tooltip-ca-nstab-media": "مدیا صفحه هارشی‌ین",
-       "tooltip-ca-nstab-special": "اینتا اتا شا صفحه هسته که شِما نتوندی وه ره دچینی",
+       "tooltip-ca-nstab-special": "اینتا اتا شا صفحه هسته که شِما نتوندی وه ره دچینین",
        "tooltip-ca-nstab-project": "پروژه‌ی ِصفحه ره بدی‌ین",
        "tooltip-ca-nstab-image": "عکس ِصفحه ره بدی‌ین",
        "tooltip-ca-nstab-template": "شـابـلـون بـأویـنـه‌ن",
        "tooltip-undo": "«واچی‌ین» این دچی‌یه ره خنثی کانده و دچی‌ین ِجعبه ره پیش-پیش سِراق هِدائِن ِحالت دله وا کانده تا شه دچی‌یه‌ئون ِدلیل ره اضافه هاکنین.",
        "tooltip-summary": "خلاصه بنویسین",
        "siteusers": "$1، {{PLURAL:$2|کارور|کارورون}} {{SITENAME}}",
-       "simpleantispam-label": "!آنتی‌اسپم ِچک‌هاکردن.\nاین قسمت ره پـِر <strong>نکان!</strong>",
+       "simpleantispam-label": "آنتی‌اسپم ره چک‌هاکردن.\nاین قسمت ره پـِر <strong>نکان!</strong>",
        "pageinfo-toolboxlink": "صفحه‌ی ِاطلاعات",
        "previousdiff": "کوهنه‌تر دچی‌ین ←",
        "nextdiff": "ته‌رنه دأچیه‌ن ←",
        "api-error-badtoken": "خطای داخلی: کد امنیتی اشتبائه (Bad token).",
        "api-error-copyuploaddisabled": "باربی‌یشتن با استفاده از نشونی اینترنتی این کارساز دله غیرفعاله.",
        "api-error-duplicate": "{{PLURAL:$1|[$2 پروندهٔ دیگه‌یی]|[$2 چن پروندهٔ دیگه]}} وب‌گاه دله با محتوای ات‌تی دیی‌یه.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|[$2 پروندهٔ دیگه‌یی]|[$2 چن پروندهٔ دیگه]}} وب‌گاه دله با محتوای اتجور وجود داشته، ولی حذف {{PLURAL:$1|بیی‌یه|بیی‌نه}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|پروندهٔ|پرونده‌ئون}} تکراری که اسا حذف بیی‌نه",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|پرونده|پرونده‌ئون}} تکراری",
+       "api-error-duplicate-archive": "{{PLURAL:$1|پروندهٔ دیگه‌یی|چن پروندهٔ دیگه}} وب‌گاه دله با محتوای اتجور وجود داشته، ولی حذف {{PLURAL:$1|بیی‌یه|بیی‌نه}}.",
        "api-error-empty-file": "پرونده‌ای که شما برسنینی خالی بی‌یه.",
        "api-error-fetchfileerror": "خطای داخلی: زمون بییتن پرونده، اتا چی درست پیش نشی‌یه.",
        "api-error-file-too-large": "پرونده‌ای که شما برسنینی خله خله گت بی‌یه.",
index 17a4858..df571ba 100644 (file)
@@ -9,7 +9,8 @@
                        "Shirayuki",
                        "Teòtlalili",
                        "아라",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Taresi"
                ]
        },
        "tog-underline": "Mokìnxòîkuilòtzàswis tzòwilistìn:",
@@ -32,6 +33,8 @@
        "tog-enotifminoredits": "Notech moēhualtia cē maltzinteyōtl netitlaniztli nō ihcuāc mopatla tepitōn zāzanilli in notlachiyaliz.",
        "tog-enotifrevealaddr": "Ticnēxtīz mo e-mailcān āxcāncayōtechcopa āmatlacuilizpan",
        "tog-shownumberswatching": "Tiquinttāz tlatequitiltilīlli tlein tlachiyacateh",
+       "tog-oldsig": "Nicān tōcāyoh:",
+       "tog-fancysig": "Wikitext īpan ticmatiz tōcāyoh (in ahtleh auto-link)",
        "tog-forceeditsummary": "Xinēchnōtzāz ihcuāc ahmo niquihtōz inōn ōnitlapatlac",
        "tog-watchlisthideown": "Tiquintlātīz mopatlaliz motlachiyalizpan",
        "tog-watchlisthidebots": "Tiquintlātīz tepozpatlaliztli motlachiyalizpan",
        "oct": "ic mahtlāc",
        "nov": "ic mahtlāctli oncē",
        "dec": "ic mahtlāctli omōme",
+       "january-date": "Īccēmētztli $1",
+       "february-date": "Īcōmemētztli $1",
+       "march-date": "Īquēyimētztli $1",
+       "april-date": "Īcnāhuimētztli $1",
+       "may-date": "Īcmācuīllimētztli $1",
+       "june-date": "Īcchicuacemmētztli $1",
+       "july-date": "Īcchicōmemētztli $1",
+       "august-date": "Īcchicuēyimētztli $1",
+       "september-date": "Īcchiucnāhuimētztli $1",
+       "october-date": "Īcmahtlactlimētztli $1",
+       "november-date": "Īcmahtlactlioncēmētztli $1",
+       "december-date": "Īcmahtlactliomōmemētztli $1",
        "pagecategories": "{{PLURAL:$1|Tlaìxmatkàtlàlilòtl|Tlaìxmatkàtlàlilòmë}}",
        "category_header": "Tlâkuilòlpiltin ìpan tlaìxmatkàtlàlilòtl \"$1\"",
        "subcategories": "Tlaìxmatkàtlàlilòpilòmë",
        "permalink": "Mochipa tzonhuiliztli",
        "print": "Tictepoztlahcuilōz",
        "view": "Mà mỏta",
-       "edit": "Ticpatlāz",
-       "create": "Ticchīhuāz",
-       "editthispage": "Ticpatlāz inīn zāzanilli",
-       "create-this-page": "Ticchīhuāz inīn zāzanilli",
+       "edit": "Ticpatlaz",
+       "edit-local": "Ticpatlaz nicān tlahtōlli",
+       "create": "Ticchīhuaz",
+       "create-local": "Ticahxiltīz nicān tlahtōlli",
+       "editthispage": "Ticpatlaz inīn zāzanilli",
+       "create-this-page": "Ticchīhuaz inīn zāzanilli",
        "delete": "Ticpolōz",
        "deletethispage": "Ticpolōz inīn zāzanilli",
        "undelete_short": "Ahticpolōz {{PLURAL:$1|cē tlapatlaliztli|$1 tlapatlaliztli}}",
        "viewdeleted_short": "Mà mỏta {{PLURAL:$1|se tlatlaìxpôpolòlli tlayèktlàlilistli|$1 tlatlaìxpôpolòltin tlayèktlàlilistin}}",
        "protect": "Ticquīxtīz",
-       "protect_change": "ticpatlāz",
+       "protect_change": "ticpatlaz",
        "protectthispage": "Ticquīxtiāz inīn zāzanilli",
        "unprotect": "Ticpatlaz in tlaquīxtīliztli",
        "unprotectthispage": "Ticpatlaz inīn āmatl ītlaquīxtīliz",
        "retrievedfrom": "Ōquīzqui ītech  \"$1\"",
        "youhavenewmessages": "Tiquimpiya $1 ($2).",
        "youhavenewmessagesmulti": "Tiquimpiya yancuīc tlahcuilōlli īpan $1",
-       "editsection": "ticpatlāz",
-       "editold": "ticpatlāz",
+       "editsection": "ticpatlaz",
+       "editold": "ticpatlaz",
        "viewsourceold": "xiquitta tlahtōlcaquiliztilōni",
-       "editlink": "ticpatlāz",
-       "viewsourcelink": "tiquittāz tlahtōlcaquiliztilōni",
+       "editlink": "ticpatlaz",
+       "viewsourcelink": "tiquittaz tlahtōlcaquiliztilōni",
        "editsectionhint": "Ticpatlacah: $1",
        "toc": "Inīn tlahcuilōlco",
        "showtoc": "xiquitta",
        "hidetoc": "tictlātīz",
        "collapsible-collapse": "Motlàtìs",
        "collapsible-expand": "Monèxtìs",
-       "thisisdeleted": "¿Tiquittāz nozo ahticpolōz $1?",
+       "confirmable-yes": "Quēmah",
+       "confirmable-no": "Ahmō",
+       "thisisdeleted": "¿Tiquittaz nozo ahticpolōz $1?",
        "viewdeleted": "¿Tiquiēlēhuia tiquitta $1?",
        "restorelink": "{{PLURAL:$1|cē tlapatlaliztli polotic|$1 tlapatlaliztli polotic}}",
        "feedlinks": "Olōlpōl:",
        "site-atom-feed": "$1 Atom huelītiliztli",
        "page-rss-feed": "\"$1\" RSS huelītiliztli",
        "page-atom-feed": "\"$1\" RSS huelītiliztli",
-       "red-link-title": "$1 (ayàk in tlaìxtlapalli)",
-       "nstab-main": "Tlaìxtlapalli",
+       "red-link-title": "$1 (ayāc in centlaīxtli)",
+       "nstab-main": "Centlaīxtli",
        "nstab-user": "Tlatequitiltilīlli",
        "nstab-media": "Mēdiatl",
        "nstab-special": "Nònkuâkìskàtlaìxtlapalli",
        "nstab-template": "Nemachiòtl",
        "nstab-help": "Tèpalèwilistli",
        "nstab-category": "Tlaìxmatkàtlàlilòtl",
+       "mainpage-nstab": "Huēyitlaīxtli",
        "nosuchaction": "Ahmo ia tlachīhualiztli",
        "nosuchspecialpage": "Âmò ka inòn nònkuâkìskàtlaìxtlapalli",
        "nospecialpagetext": "<strong>Tiknẻki sè nònkuâkìskàtlaìxtlapalli tlèn âmò kä.</strong>\n\nKualli tikỉtas sè ìntlapòpòwaltekpànal in nònkuâkìskàtlaìxtlapaltìn ìpan [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Ahcuallōtl",
        "databaseerror": "Tlahcuilōltzintlān īahcuallo",
+       "databaseerror-query": "Tlahtlanilli: $1",
        "laggedslavemode": "Xiquitta: huel ahmo ia achi yancuīc in tlapatlaliztli inīn zāzanilco.",
+       "readonly": "Mactzīntlantli tzahtzacticah",
        "missingarticle-rev": "(tlachiyaliztli ītlapōhual: $1)",
        "missingarticle-diff": "(Ahneneuh.: $1, $2)",
        "internalerror": "Ahcuallōtl tlahtic",
        "internalerror_info": "Ahcuallōtl tlahtic: $1",
-       "filecopyerror": "Ahmo ōmohuelītic tlacopīna \"$1\" īhuīc \"$2\".",
-       "filerenameerror": "Ahmo ōmohuelītic tlazaca \"$1\" īhuīc \"$2\".",
-       "filedeleteerror": "Ahmo ōmohuelītic tlapoloa \"$1\".",
-       "filenotfound": "Ahmo ōmohuelītic tlanāmiqui \"$1\".",
-       "cannotdelete": "Ahmo ōhuelītic mopoloa in zāzanilli \"$1\".\nHueli tlein āquin ōquipolo achtopa.",
+       "filecopyerror": "Ahmō ōmohuelītic tlacopīna \"$1\" īhuīc \"$2\".",
+       "filerenameerror": "Ahmō ōmohuelītic tlazaca \"$1\" īhuīc \"$2\".",
+       "filedeleteerror": "Ahmō ōmohuelītic tlapoloa \"$1\".",
+       "filenotfound": "Ahmō ōmohuelītic tlanāmiqui \"$1\".",
+       "cannotdelete": "Ahmō ōhuelītic mopoloa in zāzanilli \"$1\".\nHueli tlein āquin ōquipolo achtopa.",
        "badtitle": "Ahcualli tōcāitl",
        "badtitletext": "Zāzanilli ticnequi in ītōca cah ahcualli, ahtlein quipiya nozo ahcualtzonhuiliztli interwiki tōcāhuicpa.\nHueliz quimpiya tlahtōl tlein ahmo mohuelītih motequitiltia tōcāpan.",
-       "viewsource": "Tiquittāz tlahtōlcaquiliztilōni",
+       "viewsource": "Tiquittaz tlahtōlcaquiliztilōni",
        "actionthrottled": "Tlachīhualiztli ōmotzacuili",
        "viewsourcetext": "Tihuelīti tiquitta auh ticcopīna inīn zāzanilli ītlahtōlcaquiliztilōni:",
        "namespaceprotected": "Ahmo tiquihuelīti tiquimpatla zāzaniltin īpan '''$1'''.",
        "ns-specialprotected": "In nònkuâkìskàtlaìxtlapaltìn awel ìmpan nemàtilòs mokinyèktlàlis.",
        "titleprotected": "Inīn zāzanilli ōmoquīxti ic tlachīhualiztli ic [[User:$1|$1]].\nŌquihto: ''$2''",
+       "exception-nologin": "Ahmō timocalac",
        "virus-unknownscanner": "ahmatic antivirus:",
+       "welcomeuser": "Ximopanōltih, $1!",
        "yourname": "Motlatequitiltilīltōca:",
        "yourpassword": "Motlahtōlichtacāyo",
        "yourpasswordagain": "Motlahtōlichtacāyo occeppa",
        "nav-login-createaccount": "Ximocalaqui / ximomachiyōmaca",
        "userlogin": "Ximomachiyōmaca/Ximocalaqui",
        "userloginnocreate": "Ximocalaqui",
-       "logout": "Tiquīzāz",
-       "userlogout": "Tiquīzāz",
-       "notloggedin": "Ahmo ōtimocalac",
-       "nologin": "¿Ahmo ticpiya cuentah? '''$1'''.",
-       "nologinlink": "Ticchīhuāz cē cuentah",
-       "createaccount": "Ticchīhuāz cē cuentah",
-       "gotaccount": "¿Ye ticpiya cē cuentah? '''$1'''.",
+       "logout": "Tiquīzaz",
+       "userlogout": "Tiquīzaz",
+       "notloggedin": "Ahmō ōtimocalac",
+       "nologin": "¿Ahmō ticpiya cuentah? '''$1'''.",
+       "nologinlink": "Ticchīhuaz cē cuentah",
+       "createaccount": "Ticchīhuaz cuentah",
+       "gotaccount": "¿Ye ticpiya cē tlapōhualli? '''$1'''.",
        "gotaccountlink": "Ximocalaqui",
        "createaccountmail": "Ticnemītīz ahmo cemihcac zāzoichtacātlahtōlli nō in tiquēhualtīz in maltzinteyōtl monetitlanizyeyān",
-       "createaccountreason": "Tlèka:",
+       "createaccountreason": "Tleīpampa:",
+       "createacct-reason": "Tleīpampa",
+       "createacct-submit": "Ticchīhuaz in motlapōhual",
        "badretype": "Ahneneuhqui motlahtōlichtacāyo.",
        "userexists": "In tlatequitiltilīltōcāitl in ōquipehpen ye ia.\nTimitztlātlauhtiah xicpehpena occē.",
        "loginerror": "Ahcuallōtl tlacalaquiliztechcopa",
        "passwordsent": "Ōmoihuah yancuīc motlahtōlichtacāyo īhuīc mo e-mail (\"$1\").\nOcceppa xicalaqui niman ticmatīz.",
        "mailerror": "Ahcuallōtl e-mailcopa: $1",
        "emailconfirmlink": "Ticchicāhua mo e-mail",
-       "accountcreated": "Cuentah ōmochīuh",
+       "accountcreated": "Tlapōhualli ōmochīuh",
        "accountcreatedtext": "In ītlatequitiltilīllapōhual in [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) ōquiyōcoyalo.",
        "createaccount-title": "Cuentah ītlachīhualiz ic {{SITENAME}}",
        "loginlanguagelabel": "Tlâtòlli: $1",
+       "pt-createaccount": "Ticchīhuaz motlapōhual",
        "changepassword": "Ticpatlāz motlahtōlichtacāyo",
        "resetpass_header": "Xicpatlāz motlahtōlichtacāyo",
        "oldpassword": "Huēhueh motlahtōlichtacayo:",
        "note": "'''Tlahtōlcaquiliztilōni:'''",
        "previewnote": "'''Xiquilnamiqui tein inīn zan tlaachtopaittaliztli.'''\n¡Motlapatlaliz ayamo ōquinpix!",
        "editing": "Ticpatlacah $1",
+       "creating": "Ticchīhua $1",
        "editingsection": "Ticpatlacah $1 (tlahtōltzintli)",
        "editingcomment": "Ticpatlacah $1 (tlahtōltzintli)",
        "editconflict": "Tlapatlaliztli yāōyōtōn: $1",
        "edit-gone-missing": "Ahmo huelīti yancuīya zāzanilli.\nHueliz ōmopolo.",
        "edit-conflict": "Tlapatlaliztli yāōyōtōn",
        "edit-already-exists": "Ahmo mohuelīti mochīhua yancuīc zāzanilli.\nYe ia.",
+       "content-model-javascript": "JavaScript",
        "cantcreateaccounttitle": "Ahmo huelītih mochīhua cuentah",
        "cantcreateaccount-text": "[[User:$3|$3]] ōcquīxti cuentah tlachīhualiztli īpal inīn IP ('''$1''').\n\nĪxtlamatiliztli īpal $3 cah ''$2''",
        "viewpagelogs": "Tiquinttāz tlahcuilōlloh inīn zāzaniltechcopa",
        "history-feed-item-nocomment": "$1 īpan $2",
        "history-feed-empty": "In zāzanilli tiquiēlēhuia ahmo ia.\nHueliz ōmopolo huiqui nozo ōmozacac.\n[[Special:Search|Xitēmoa huiquipan]] yancuīc huēyi zāzaniltin.",
        "rev-delundel": "tiquittāz/tictlātīz",
+       "rev-showdeleted": "ticnēxtīz",
        "revisiondelete": "Tiquimpolōz/ahtiquimpolōz tlachiyaliztli",
        "revdelete-show-file-submit": "Quēmah",
        "revdelete-hide-text": "In tlahtlachiyaliztli ītlahcuilōl",
        "revdelete-hide-image": "Tictlātīz tlahcuilōlli ītlapiyaliz",
        "revdelete-radio-set": "Tlaīnāyalli",
        "revdelete-radio-unset": "Ittalōni",
+       "revdelete-log": "Tleīpampa:",
        "revdel-restore": "Ticpatlāz tlattaliztli",
        "pagehist": "Zāzanilli tlahcuilōlloh",
        "deletedhist": "Ōtlapolo tlahcuilōlloh",
        "mergehistory-no-destination": "Zāzanilhuīc $1 ahmo ia.",
        "mergehistory-autocomment": "Ōmocēntili [[:$1]] īpan [[:$2]]",
        "mergehistory-comment": "Ōmocēntili [[:$1]] īpan [[:$2]]: $3",
+       "mergehistory-reason": "Tleīpampa:",
        "revertmerge": "Tiquīxipehuaz",
        "history-title": "«$1» tlahcuilōlloh ītlaihittaliz",
        "lineno": "Pāntli $1:",
        "preferences": "Tlaēlēhuiliztli",
        "mypreferences": "Notlaēlēhuiliz",
        "prefs-edits": "Tlapatlaliztli tlapōhualli:",
+       "prefs-skin": "Ēhuatl",
        "skin-preview": "Xiquitta quemeh yez",
        "datedefault": "Ayāc tlanequiliztli",
        "prefs-labs": "Ìntlâtlamảtilis in tlayêyẻkòyàntìn",
        "email": "E-mail",
        "prefs-help-realname": "Melāhuac motōca.\nIntlā ticnequi, tlācah quimatīzqueh motequi.",
        "prefs-help-email-required": "Tihuīquilia quihcuiloa mo e-mailcān.",
+       "prefs-signature": "Motōcā",
        "userrights-user-editname": "Xihcuiloa cē tlatequitiltilīltōcāitl:",
        "editusergroup": "Tiquimpatlāz tlatequitiltilīlli olōlli",
        "userrights-editusergroup": "Tiquimpatlāz tlatequitiltilīlli olōlli",
        "right-edit": "Tiquimpatlāz zāzaniltin",
        "right-createpage": "Ticchīhuāz zāzaniltin (ahmo tēixnāmiquiliztli zāzaniltin)",
        "right-createtalk": "Ticchīhuāz tēixnāmiquiliztli zāzaniltin",
-       "right-createaccount": "Tiquinchīhuāz yancuīc cuentah",
+       "right-createaccount": "Ticchīhuaz yancuic tlapōhualli",
        "right-minoredit": "Ticpatlāz quemeh tlapatlalitzintli",
        "right-move": "Tiquinzacāz zāzaniltin",
        "right-move-subpages": "Tiquinzacāz zāzaniltin auh īzāzaniltōn",
        "action-block": "tiquitzacuilīz inīn tlatequitiltilīlli",
        "action-userrights": "tiquimpatlāz mochi tlatequitiltilīlli huelītiliztli",
        "nchanges": "$1 {{PLURAL:$1|tlapatlaliztli}}",
+       "enhancedrc-history": "tlahtōllōtl",
        "recentchanges": "Yancuīc tlapatlaliztli",
        "recentchanges-legend": "Yancuīc tlapatlaliztechcopa tlanequiliztli",
        "recentchanges-summary": "Xiquinttāz in achi yancuīc ahmo occequīntīn tlapatlaliztli huiquipan inīn zāzanilpan.",
        "recentchanges-label-minor": "Inīn tlapatlaliztli tepitōn",
        "rclistfrom": "Xiquinttāz yancuīc tlapatlaliztli īhuīcpa $3 $2",
        "rcshowhideminor": "$1 tlapatlalitzintli",
+       "rcshowhideminor-show": "Ticnēxtīz",
        "rcshowhidebots": "$1 tepoztlācah",
+       "rcshowhidebots-hide": "Tiquihyānaz",
        "rcshowhideliu": "$1 tēmachiyōmacalli tlatequitiltilīltin",
        "rcshowhideanons": "$1 ahtōcā tlatequitiltilīlli",
+       "rcshowhideanons-show": "Ticnēxtīz",
        "rcshowhidepatr": "$1 tlapatlaliztli mochiyahua",
        "rcshowhidemine": "$1 notlahcuilōl",
+       "rcshowhidemine-show": "Ticnēxtīz",
        "rclinks": "Xiquintta xōcoyōc $1 tlapatlaliztli xōcoyōc $2 tōnalpan.<br />$3",
        "diff": "ahneneuh",
        "hist": "tlahcuil",
        "savefile": "Quipiyāz tlahcuilōlli",
        "uploaddisabled": "Ahmo mohuelīti tlahcuilōlquetzā",
        "uploaddisabledtext": "Ahmo huelīti moquetzazqueh tlahcuilōlli.",
+       "upload-source": "Mēyalihcuilōlli",
        "sourcefilename": "Tōcāhuīcpa:",
+       "sourceurl": "Mēyal-URL:",
        "destfilename": "Tōcāhuīc:",
        "watchthisupload": "Tictlachiyāz inīn zāzanilli",
        "upload-success-subj": "Cualli quetzaliztli",
+       "upload-dialog-label-infoform-name": "Tōcāitl",
+       "upload-dialog-label-usage-filename": "Ihcuilōlli ītōcā",
        "upload_source_file": " (cē tlahcuilōlli mochīuhpōhualhuazco)",
        "listfiles_search_for": "Tlatēmōz mēdiatl tōcācopa:",
        "imgfile": "īxiptli",
        "listfiles_name": "Tōcāitl",
        "listfiles_user": "Tlatequitiltilīlli",
        "listfiles_size": "Octacayōtl (bytes)",
+       "listfiles_count": "Cuepaliztli",
+       "listfiles-latestversion-yes": "Quēmah",
+       "listfiles-latestversion-no": "Ahmō",
        "file-anchor-link": "Īxiptli",
        "filehist": "Tlahcuilōlli tlahcuilōlloh",
        "filehist-deleteall": "tiquimpolōz mochīntīn",
        "unusedtemplateswlh": "occequīntīn tzonhuiliztli",
        "randompage": "Zāzozāzanilli",
        "randompage-nopages": "Ahmo oncah zāzanilli īpan inīn {{PLURAL:$2|tōcāitl}}: $1.",
+       "randomincategory-submit": "Yāuh",
        "randomredirect": "Zāzotlacuepaliztli",
        "statistics": "Tlapōhualiztli",
        "statistics-header-pages": "Zāzaniltin tlapōhualli",
        "deadendpages": "Ahtlaquīzaliztli zāzaniltin",
        "protectedpages": "Zāzaniltin ōmoquīxti",
        "protectedpages-indef": "Zan ahcāhuitl tlaquīxtiliztli",
+       "protectedpages-page": "Tlaīxtli",
+       "protectedpages-reason": "Tleīpampa",
        "protectedtitles": "Tōcāitl ōmoquīxtih",
        "listusers": "Tlatequitiltilīlli",
        "newpages": "Yancuīc zāzaniltin",
        "pager-newer-n": "{{PLURAL:$1|1 yancuīc|$1 yancuīc}}",
        "pager-older-n": "{{PLURAL:$1|1 huēhuetl|$1 huēhueh}}",
        "booksources": "āmoxmēyalli",
+       "booksources-search-legend": "Tiquīxtēmōz āmoxmēyalli",
+       "booksources-search": "Tiquīxtēmōz",
        "specialloguserlabel": "Tlatequitiltilīlli:",
        "speciallogtitlelabel": "Tōcāitl:",
        "log": "Tlahcuilōlloh",
        "delete-edit-reasonlist": "Tiquimpatlāz īxtlamatiliztli tlapoloaliztechcopa",
        "rollbacklink": "tlacuepāz",
        "rollback-success": "Ōmotlacuep $1 ītlahcuilōl; āxcān achto $2 ītlahcuilōl.",
+       "changecontentmodel-title-label": "Tlaīxtōcāitl",
+       "changecontentmodel-reason-label": "Tleīpampa:",
        "protectedarticle": "ōmoquīxti \"[[$1]]\"",
        "unprotectedarticle": "ōahmoquīxtih «[[$1]]»",
        "prot_1movedto2": "[[$1]] ōmozacac īhuīc [[$2]]",
+       "protectcomment": "Tleīpampa:",
        "protectexpiry": "Tlamiliztli:",
        "protect_expiry_invalid": "Ahcualli tlamiliztli cāhuitl.",
        "protect-default": "Ticmācāhuaz mochintin in tlatequitiltilīltin",
        "undeletebtn": "Ahticpolōz",
        "undeletelink": "tiquittaz/ticpahtīz",
        "undeleteviewlink": "tiquittāz",
+       "undeletecomment": "Tleīpampa:",
        "undelete-search-box": "Tiquintlatēmōz zāzaniltin ōmopolōz",
        "undelete-search-prefix": "Tiquittāz zāzaniltin mopēhua īca:",
        "undelete-search-submit": "Tlatēmōz",
        "ipb-unblock": "Ahtiquitzacuilīz IP nozo tlatequitiltilīlli",
        "unblockip": "Ahtiquitzacuilīz tlatequitiltilīlli",
        "ipblocklist": "Tlatequitiltilīltzacualli",
+       "blocklist-reason": "Tleīpampa",
        "ipblocklist-submit": "Tlatēmōz",
        "infiniteblock": "ahtlamic",
        "expiringblock": "tlami īpan $1 īpan $2",
        "thumbnail-more": "Tiquihuēyiyāz",
        "thumbnail_error": "Aiuhcāyōtl ihcuāc mochīhuaya tepitōntli: $1",
        "import": "Tiquincōhuāz zāzaniltin",
+       "import-interwiki-sourcewiki": "Mēyalhuiqui:",
+       "import-interwiki-sourcepage": "Mēyallaīxtli:",
        "import-interwiki-submit": "Tiquicōhuāz",
        "import-upload-filename": "Tlahcuilōltōcāitl:",
        "importstart": "Motlacōhua zāzaniltin...",
        "siteusers": "$1 {{PLURAL:$2|tlatequitiltilīlli}} īpan {{SITENAME}}",
        "spam_reverting": "Mocuepacah īhuīc xōcoyōc tlapatlaliztli ahmo tzonhuilizca īhuīc $1",
        "spam_blanking": "Mochi tlapatlaliztli quimpiyah tzonhuiliztli īhuīc $1, iztāctiliacah",
+       "pageinfo-firstuser": "Tlaīxchīuhqui",
+       "pageinfo-contentpage-yes": "Quēmah",
+       "pageinfo-protect-cascading-yes": "Quēmah",
        "previousdiff": "← Achtopa",
        "nextdiff": "Oc ye cencah yancuīc tlapatlaliztli →",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:|zāzanilli|zāzanilli}}",
        "file-info-size": "$1 × $2 pixel; zāzanilli octacayōtl: $3; machiyōtl MIME: $4",
        "file-nohires": "Ahmo ia achi cualli ahmo occē īxiptli.",
-       "show-big-image": "Mochi cuallōtl",
+       "show-big-image": "Tzīntilicihcuilōlli",
        "newimages": "Yancuīc īxipcān",
        "imagelisttext": "Nicān {{PLURAL:$1|mopiya|mopiyah}} '''$1''' īxiptli $2 iuhcopa.",
        "noimages": "Ahtlein ic tlatta.",
index bec75f5..2373ab7 100644 (file)
        "passwordreset": "Têng siat bi̍t-bé",
        "passwordreset-username": "Lí ê iōng-chiá miâ-chheng:",
        "passwordreset-email": "Tiān-chú-phoe tē-chí:",
-       "passwordreset-emailelement": "Iōng-chiá: $1\nLîm-sî ê bi̍t-bé: $2",
+       "passwordreset-emailelement": "Iōng-chiá: \n$1\n\nLîm-sî ê bi̍t-bé: \n$2",
        "passwordreset-emailsent": "Têng siat bi̍t-bé ê tiān-chú-phoe í-keng kià chhut-khì ah.",
        "changeemail": "Kái tiān-chú-phoe ê tē-chí",
        "changeemail-oldemail": "Chit-má ê E-mail tē-chí:",
index ef0f3f7..213135f 100644 (file)
        "nstab-template": "Modello",
        "nstab-help": "Ajùto",
        "nstab-category": "Categurìa",
+       "mainpage-nstab": "Paggena prencepale",
        "nosuchaction": "Operazione nun ricanusciuta",
        "nosuchactiontext": "L'azione specificata dint'a l'URL nun è bbona.\nPuò darse ca l'URL fosse stata digitata 'n modo sbagliàto o che fosse stato seguito nu link sbagliàto.\nChesto putesse innecà pùre nu bug dint'a {{SITENAME}}.",
        "nosuchspecialpage": "Chista paggena speciale nun ce sta",
        "passwordreset-emailtitle": "Dettaglie d' 'o cunto pe' {{SITENAME}}",
        "passwordreset-emailtext-ip": "Coccherun (può darse ca sì tu, cu n'indirizzo IP $1) ha addimannato na mmasciata c' 'a password nova pe' putè trasì a {{SITENAME}} ($4). {{PLURAL:$3|L'utente associato|L'utente associate}} a st'indirizze e-mail songo:\n\n$2\n\n{{PLURAL:$3|Sta password temporanea ammaturarrà|Sti password temporanee ammaturarranno}} aropp'a {{PLURAL:$5|nu juorno|$5 ghiuorne}}.\nHè 'a trasì e scegliere na password nova mò. \n\nSi nun sì stato tu a fà sta richiesta, o te sì scurdat' 'a password origginale e nun 'a buò cagnà cchiù, lassa perde sta mmasciata e usa 'a password viecchia.",
        "passwordreset-emailtext-user": "L'utente $1 di {{SITENAME}} ha addimannato na mmasciata c' 'a password nova pe' putè trasì a {{SITENAME}} ($4). {{PLURAL:$3|L'utente associato|L'utente associate}} a st'indirizze e-mail songo:\n\n$2\n\n{{PLURAL:$3|Sta password temporanea ammaturarrà|Sti password temporanee ammaturarranno}} aropp'a {{PLURAL:$5|nu juorno|$5 ghiuorne}}.\nHè 'a trasì e scegliere na password nova mò. \n\nSi nun sì stato tu a fà sta richiesta, o te sì scurdat' 'a password origginale e nun 'a buò cagnà cchiù, lassa perde sta mmasciata e usa 'a password viecchia.",
-       "passwordreset-emailelement": "Nomme utente: $1\nPassword temporanea: $2",
+       "passwordreset-emailelement": "Nomme utente: \n$1\n\nPassword temporanea: \n$2",
        "passwordreset-emailsent": "Na mmasciata e-mail pe' riabbià 'a password è stata mannata.",
        "passwordreset-emailsent-capture": "Na mmasciata e-mail pe' riabbià 'a password è stata mannata, chista mmasciata 'a putite vedé ccà abbascio.",
        "passwordreset-emailerror-capture": "Na mmasciata e-mail pe' riabbià 'a password è stata mannata, 'a putite vedé ccà abbascio, ma aita sapé ca nun s'è mannata a {{GENDER:$2|l'utente}} pecché c'è stato cocch'errore: $1",
        "changeemail-password": "'A password vosta pe' {{SITENAME}}:",
        "changeemail-submit": "Cagna e-mail",
        "changeemail-throttled": "Avite fatto troppe tentative 'a trasì.\nAspettate nu $1 apprimma 'e pruvà n'ata vota.",
+       "changeemail-nochange": "Pe' piacere mettite n'indirizzo e-mail differente",
        "resettokens": "Riabbìa 'e token",
        "resettokens-text": "Ccà se ponno riabbià 'e chiave ca permetessero l'acciesso a determinate date private associate a 'o cunto vuosto.\n\nL'aviste 'e ffà quanno l'avete spartuto pe' sbaglio cu cocche perzona o pure quanno 'o cunto d' 'o vuosto è stato compromesso.",
        "resettokens-no-tokens": "Nun ce stanno token 'a riabbià.",
        "permissionserrorstext-withaction": "Nun haje premmesse abbastante pe' $2, {{PLURAL:$1|'o mutivo è chesto|'e mutive so' chiste}}:",
        "recreate-moveddeleted-warn": "'''Attenziò: staje a crià na paggena scancellata già.'''\n\nVire si è bbuono 'e cuntinuà a cagnà sta paggena. L'elenco ch' 'e relative scancellamiente e spustamente s'è scritto ccà abbascio pe' ffà comodo:",
        "moveddeleted-notice": "Sta paggena è stata scancellata.\nL'elenco d' 'e relative scancellamiente e spustamente s'è scritto ccà abbascio pe' n'avé nfurmazione.",
+       "moveddeleted-notice-recent": "Scusate, sta mmasciata è stata scancellata mo mo (dint'a sti 24 ore).\n\nL'aziune 'e scancellazione e spustamento pe' sta paggena so dispunibbele ccà p' 'a cumpretezza.",
        "log-fulllog": "Vide log sano",
        "edit-hook-aborted": "'O cagnamiento è stato annullato 'a 'o «hook».\nNun dette spiegazione nisciuna.",
        "edit-gone-missing": "Nun se può agghiurnà 'a paggena.\nPare ch' 'è stata scancellata.",
        "rows": "Righe:",
        "columns": "Culonne:",
        "searchresultshead": "Truova",
-       "stub-threshold": "Valore minimo p' 'e <a href=\"#\" class=\"stub\">cullegamiente a 'e stub</a>, 'n byte:",
+       "stub-threshold": "Valore lemmeto p' 'o furmato d' 'o cullegamento stub ($1):",
        "stub-threshold-sample-link": "mostra",
        "stub-threshold-disabled": "Stutato",
        "recentchangesdays": "Nummero 'e juorne a mmustà dint'a l'urdeme cagnamiente:",
        "booksources-text": "Ccà abbascio ce sta na lista 'e cullegamiente a l'ati site ca venneno libbre nuove e viecchie, ca putessero pure avé cchiù nfurmaziune ncopp' 'e libbre ca jate ascianno:",
        "booksources-invalid-isbn": "L'ISBN c'avete miso nun pare bbuono; cuntrolla si ce sta cocch'errore quanno stavate cupianno stu nummero d' 'a fonte origginale.",
        "specialloguserlabel": "Mplementatore:",
-       "speciallogtitlelabel": "Destinazione (titolo o utente):",
+       "speciallogtitlelabel": "Destinazione (titolo o {{ns:user}}:cunto utente pe' ll'utente):",
        "log": "Logs",
        "all-logs-page": "Tutte l'archivie pubbleche",
        "alllogstext": "Visualizzazione mmescata 'e tutte 'e riggistre a disposizione ncopp'a {{SITENAME}}.\nPutite restringere 'a vista a sicondo 'o tipo 'e riggistro, 'o nomme utente (sensibbele a 'e maiuscole), o 'e paggene coinvolte (pure chiste songo sensibbele a 'e maiuscole).",
        "api-error-badaccess-groups": "Tun putite carrecà file ncopp' 'a sta wiki.",
        "api-error-badtoken": "Errore interno: 'O token nun è buono.",
        "api-error-copyuploaddisabled": "'A funzione carrcà 'e n'URL nun è appicciata dint'a stu server.",
-       "api-error-duplicate": "Nce {{PLURAL:$1|stà [$2 n'atu file]|stanno [$2 ati file]}} ncopp' 'o sito ch' 'e stisse cuntenute.",
-       "api-error-duplicate-archive": "Nce {{PLURAL:$1|steva [$2 n'atu file]|stevano [$2 ati file]}} già ncopp' 'o sito ch' 'e stisse cuntenute, però {{PLURAL:$1|è stato|so' state}} scancellate.",
-       "api-error-duplicate-archive-popup-title": "File duprecat{{PLURAL:$1|o che è già stato scancellato|e che songo già state scancellati}}",
-       "api-error-duplicate-popup-title": "Dupreche {{PLURAL:$1|file|file}}",
+       "api-error-duplicate": "Nce {{PLURAL:$1|sta è n'atu file|stanno ati file}} ncopp' 'o sito ch' 'e cuntenute eguale eguale.",
+       "api-error-duplicate-archive": "Nce {{PLURAL:$1|steva n'atu file|stevano ati file}} già ncopp' 'o sito ch' 'e stisse cuntenute, però {{PLURAL:$1|è stato|so' state}} scancellate.",
        "api-error-empty-file": "'O file ch'avite mannato è abbacante.",
        "api-error-emptypage": "'A criazione 'e paggene nuove abbacante nun è permessa.",
        "api-error-fetchfileerror": "Errore interno: Coccosa ascette stuorta quanno se steva 'analizzà stu file.",
        "log-description-pagelang": "Chest'è nu riggistro 'e cagnamiente 'e lengua d' 'e paggene.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ave cagnato}} 'a lengua d' 'a paggena $3 'a $4 a $5.",
        "default-skin-not-found": "Oops! 'A skin predefinta ' 'o wiki vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\n'A installazione pare ca tenesse {{PLURAL:$4|'a skin|'e skin}} ccà abbascio. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: configurazione skin] pe' n'avè cchiù nfurmaziune ncopp' 'a manera {{PLURAL:$4|'e ll'abbià}} o scegliere chilla predefinita.\n\n$2\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanno 'o [https://www.mediawiki.org/wiki/Download programma 'e installazione tarball], ca venesse fornito ch' 'e diverze skin ed estenziune. Putite fare copia-azzecca d' 'a directory <code dir=\"ltr\">skins/</code>.\n:* Scarrecanne 'e tarballs individuale 'e skin 'a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Ausanno Git pe' scarrecà skin].\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki.\n\n; Si avite MediaWiki agghiurnato MediaWiki mò mò:\n: MediaWiki 1.24 e verziune appriesso nun abbìa automatecamente 'e skin installate (vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]). Putite copià {{PLURAL:$5|'a linea|'e linee}} ccà abbascio dint' 'o <code>LocalSettings.php</code> pe' putè appiccià {{PLURAL:$5|'o|tutt' 'e}} {{PLURAL:$5|skin}} installate mò mò:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si avite cagnato mò mò <code>LocalSettings.php</code>:\n: Cuntrullate 'e nomme d' 'e skin n'ata vota pe' ve sparagnà cocch'errore 'e battitura.",
-       "default-skin-not-found-no-skins": "Oops! 'A skin predefinita p' 'o wiki vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\nNun avite installato nisciuno skin.\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanne 'e tarballs individuale 'e skin 'a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]) pe n'avè nfurmaziune ncopp' 'a maniera d'appiccià e scegliere chella predefinita.",
+       "default-skin-not-found-no-skins": "oops! 'O skin predefinito p' 'a wiki vuosta, definito int'a <code>$wgDefaultSkin</code> comm'a <code>$1</code>, nun è a disposizione.\n\nVuje nun tenite nisciuno skin installato.\n\n; Si avite installato o agghiurnato MediaWiki mo' mo':\n: È possibbele ca l'avite installato 'a git, o direttamente d' 'o codece sorgente ausanno n'atu metodo. Chesto s'aspettava. Mediawiki 1.24 o cchiù nuova nun include nisciuno skin dint' 'o repositorio prencepale. Tentate 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins sta cartella 'e mediawiki.org], facenno:\n:* Scarreca 'e [https://www.mediawiki.org/wiki/Download tarball installer], ca venesse cu nu cuofeno 'e skin e estensiune. Vuje putite cupià e azzeccà 'a cartella <code>skins/</code> 'a chiste.\n:* Scarrecanno tarball 'e skin individuale 'a [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Ausanno Git pe' puté scarrecà skin].\n: A ffà chesto nun avesse nteferì c' 'o repositorio d' 'o git vuosto, si vuje site sviluppatore MediaWiki. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: Mpustaziona skin] pe' n'avé nfurmaziune ncopp'a comme s'avesser'appiccià skin e scegliere 'o valore predefinito.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (funzione appicciata)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''funzione stutata''')",
        "mediastatistics": "Statistiche d' 'e media",
index 2f6fedc..3dad7af 100644 (file)
        "passwordreset-emailtitle": "Kontodetaljer på {{SITENAME}}",
        "passwordreset-emailtext-ip": "Noen (sannsynligvis deg fra IP-adressen $1) ba om en tilbakestilling av ditt passord for {{SITENAME}} ($4). {{PLURAL:$3|Den følgende brukerkontoen|De følgende brukerkontoene}} er\ntilknyttet denne e-postadressen:\n\n$2\n\n{{PLURAL:$3|Dette midlertidige passordet|Disse midlertidige passordene}} utløper om {{PLURAL:$5|én dag|$5 dager}}.\nDu bør logge på og velge et nytt passord nå. Dersom noen andre kom med denne\nforespørselen, eller du har kommet på ditt opprinnelige passord, og ikke lenger\nønsker å endre det, kan du ignorere denne meldingen og fortsette å bruke ditt gamle\npassord.",
        "passwordreset-emailtext-user": "Brukeren $1 på {{SITENAME}} ba om en tilbakestilling av passordet ditt for {{SITENAME}}\n($4). {{PLURAL:$3|Den følgende brukerkontoen|De følgende brukerkontoene}} er tilknyttet denne e-postadressen:\n\n$2\n\n{{PLURAL:$3|Dette midlertidige passordet|Disse midlertidige passordene}} utløper om {{én dag|$5 dager}}.\nDu bør logge på og velge et nytt passord nå. Dersom noen andre kom med denne\nforespørselen, eller du har kommet på ditt opprinnelige passord, og ikke lenger\nønsker å endre det, kan du ignorere denne meldingen og fortsette å bruke ditt gamle\npassord.",
-       "passwordreset-emailelement": "Brukernavn: $1\nMidlertidig passord: $2",
+       "passwordreset-emailelement": "Brukernavn: \n$1\n\nMidlertidig passord: \n$2",
        "passwordreset-emailsent": "En passordtilbakestillingslenke har blitt sendt per e-post.",
        "passwordreset-emailsent-capture": "Passordtilbakestillingseposten vist under har blitt sendt ut.",
        "passwordreset-emailerror-capture": "En passordtilbakestillingsepost ble laget, men det lyktes ikke å sende denne til {{GENDER:$2|brukeren}}: $1",
        "userrights-lookup-user": "Ordne brukergrupper",
        "userrights-user-editname": "Skriv inn et brukernavn:",
        "editusergroup": "Endre brukergrupper",
-       "editinguser": "Endrer brukerrettighetene for {{GENDER:$1|bruker}} <strong>[[Bruker:$1|$1]]</strong> $2",
+       "editinguser": "Endrer brukerrettighetene for {{GENDER:$1|bruker}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Rediger brukergrupper",
        "saveusergroups": "Lagre brukergrupper",
        "userrights-groupsmember": "Medlem av:",
        "unwatchthispage": "Fjerner overvåkning",
        "notanarticle": "Ikke en artikkel",
        "notvisiblerev": "Revisjonen er slettet",
-       "watchlist-details": "Du har {{PLURAL:$1|én side|'''$1''' sider}} på [[Hjelp:Overvåke sider|overvåkningslisten]] din (pluss tilhørende [[Hjelp:Diskusjonsside|diskusjonssider]]).",
+       "watchlist-details": "Du har {{PLURAL:$1|én side|$1 sider}} på overvåkningslisten din (med tilhørende diskusjonssider).",
        "wlheader-enotif": "E-postvarsling er slått på.",
        "wlheader-showupdated": "Sider som har blitt endret siden du besøkte dem sist vises med '''fet skrift'''.",
        "wlnote": "Nedenfor er {{PLURAL:$1|den siste endringen|de siste <strong>$1</strong> endringene}} {{PLURAL:$2|den siste timen|de siste <strong>$2</strong> timene}}, per $3 kl. $4",
        "api-error-badtoken": "Intern feil: Ugyldig nøkkel.",
        "api-error-copyuploaddisabled": "Opplasting ved URL er deaktivert på denne tjeneren.",
        "api-error-duplicate": "Det er allerede {{PLURAL:$1|en [$2 annen fil]|flere [$2 andre filer]}} på denne siden med samme innhold.",
-       "api-error-duplicate-archive": "Det fantes {{PLURAL:$1|[$2 en annen fil]|[$2 noen andre filer]}} på siden som hadde samme innhold, men {{PLURAL:$1|den|de}} ble slettet.",
-       "api-error-duplicate-archive-popup-title": "Duplikat-{{PLURAL:$1|fil|filer}} som allerede har blitt slettet",
-       "api-error-duplicate-popup-title": "Duplikat {{PLURAL:$1|fil|filer}}",
+       "api-error-duplicate-archive": "Det fantes {{PLURAL:$1|en annen fil|noen andre filer}} på siden som hadde samme innhold, men {{PLURAL:$1|den|de}} ble slettet.",
        "api-error-empty-file": "Filen du sendte inn var tom.",
        "api-error-emptypage": "Det er ikke tillatt å opprette nye, tomme sider.",
        "api-error-fetchfileerror": "Intern feil: Noe gikk galt ved henting av denne filen.",
index e5cdad2..08b8e2a 100644 (file)
        "passwordreset-emailtitle": "Gebrukersgegevens op {{SITENAME}}",
        "passwordreset-emailtext-ip": "Der hef der ene, waorschienlik jie zelf vanaof t IP-adres $1, n anvraag edaon um joew wachtwoord veur {{SITENAME}} ($4) opniej in te stellen.\nDe volgende {{PLURAL:$3|gebruker is|gebrukers bin}} ekoppeld an dit netpostadres:\n\n$2\n\n{{PLURAL:$3|Dit tiejelike wachtwoord vervölt|Disse tiejelike wachtwoorden vervallen}} over {{PLURAL:$5|één dag|$5 dagen}}.\nMeld je eigen noen an en wiezig t wachtwoord. A'j dit verzeuk niet zelf edaon hebben, of a'j t oorspronkelike wachtwoord nog kennen en t niet wiezigen willen, negeer dit bericht dan en blief joew ouwe wachtwoord gebruken.",
        "passwordreset-emailtext-user": "De gebruker $1 van {{SITENAME}} hef n anvraag edaon um joew wachtwoord veur {{SITENAME}} ($4) opniej in te stellen. \nDe volgende {{PLURAL:$3|gebruker is|gebrukers bin}} ekoppeld an dit netpostadres:\n\n$2\n\n{{PLURAL:$3|Dit tiejelike wachtwoord vervölt|Disse tiejelike wachtwoorden vervallen}} over {{PLURAL:$5|één dag|$5 dagen}}.\nMeld je eigen noen an en wiezig t wachtwoord. A'j dit verzeuk niet zelf edaon hebben, of a'j t oorspronkelike wachtwoord nog kennen en t niet wiezigen willen, negeer dit bericht dan en blief joew ouwe wachtwoord gebruken.",
-       "passwordreset-emailelement": "Gebrukersnaam: $1\nTiedelik wachtwoord: $2",
+       "passwordreset-emailelement": "Gebrukersnaam: \n$1\n\nTiedelik wachtwoord: \n$2",
        "passwordreset-emailsent": "Der is n bericht verstuurd um t wachtwoord opniej in te stellen.",
        "passwordreset-emailsent-capture": "Der is n bericht verstuurd um joew wachtwoord opniej in te stellen. Dit ku'j hieronder lezen.",
        "passwordreset-emailerror-capture": "Der is n bericht veur t opniej opstellen van joew wachwoord an-emaakt, dit ku'j hieronder lezen. t Versturen naor de {{GENDER:$2|gebruker}} is mislokt um de volgende reden: $1",
        "emailuser": "n Bericht sturen",
        "emailuser-title-target": "Disse {{GENDER:$1|gebruker}} n bericht sturen",
        "emailuser-title-notarget": "Gebruker n bericht sturen",
-       "emailpage": "Gebruker n bericht sturen",
        "emailpagetext": "Deur middel van dit formulier ku'j n bericht sturen naor disse {{GENDER:$1|gebruker}}.\nt Adres da'j op-egeven hebben bie [[Special:Preferences|joew veurkeuren]] zal as aofzender gebruukt wörden.\nDe ontvanger kan dus drek beantwoorden.",
        "defemailsubject": "Bericht van {{SITENAME}}-gebruker \"$1\"",
        "usermaildisabled": "n Persoonlik berichjen sturen geet niet.",
        "api-error-badtoken": "Interne fout: t token klopt niet.",
        "api-error-copyuploaddisabled": "Bestaanden opsturen via n webadres is uutezet op disse server.",
        "api-error-duplicate": "Der {{PLURAL:$1|steet al [$2 n bestaand]|staon al [$2 bestaanden]}} mit de zelfde inhoud in de wiki.",
-       "api-error-duplicate-archive": "Der {{PLURAL:$1|was al [$2 n aander bestaand]|waren al [$2 $1 aandere bestaanden]}}  op de webstee mit de zelfde inhoud, mer {{PLURAL:$1|dat is|die bin}} vortedaon.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Duplikaotbestaand dat al vortedaon is|Duplikaotbestaanden die al vortedaon bin}}",
-       "api-error-duplicate-popup-title": "Zelfde {{PLURAL:$1|bestaand|bestaanden}}",
+       "api-error-duplicate-archive": "Der {{PLURAL:$1|was al n aander bestaand|waren al $1 aandere bestaanden}}  op de webstee mit de zelfde inhoud, mer {{PLURAL:$1|dat is|die bin}} vortedaon.",
        "api-error-empty-file": "t Bestaand da'j op-estuurd hebben is leeg.",
        "api-error-emptypage": "Je maggen gien lege nieje ziejen anmaken.",
        "api-error-fetchfileerror": "Interne fout: der is iets verkeerd egaon mit t ophaolen van t bestaand.",
index 1468b4e..f2a09bb 100644 (file)
        "viewhelppage": "सहायता पृष्ठ हेर्ने",
        "categorypage": "श्रेणी पृष्ठ हेर्नुहोस्",
        "viewtalkpage": "छलफल हेर्नुहोस्",
-       "otherlanguages": "à¤\85रà¥\81 à¤­à¤¾à¤·à¤¾मा",
+       "otherlanguages": "à¤\85रà¥\82 à¤­à¤¾à¤·à¤¾à¤¹à¤°à¥\82मा",
        "redirectedfrom": "($1बाट अनुप्रेषित)",
        "redirectpagesub": "अनुप्रेषित पृष्ठ",
        "redirectto": "अनुप्रेषित पृष्ठ:",
        "nstab-template": "ढाँचा (टेम्प्लेट)",
        "nstab-help": "सहायता पृष्ठ",
        "nstab-category": "श्रेणी",
+       "mainpage-nstab": "मुख्य पृष्ठ",
        "nosuchaction": "यस्तो कार्य हैन",
        "nosuchactiontext": "URL ले खुलाएको कार्य मान्य छैन ।\nतपाईंले URL गलत टाइपगर्नु भएको , वा गलत लिंक पछ्याउनु भएको हुनसक्छ ।\nयो{{SITENAME}}ले सफ्टवेयरमा भएको गल्ति देखाएको पनि हुनसक्छ ।",
        "nosuchspecialpage": "त्यस्तो विशेष पृष्ठ छैन",
        "passwordreset-emailtitle": "{{SITENAME}}मा खाता विवरण",
        "passwordreset-emailtext-ip": "कसैले (सायद तपाईंले, $1 आईपि ठेगानाबाट) {{SITENAME}} ($4)मा तपाईंको खाता विवरणको निम्ति एउटा अनुस्मारकको अनुरोध गरेको छ। निम्न प्रयोगकर्ता {{PLURAL:$3|खाता यस इमेल ठेगानासित सम्बन्धित छ|खाताहरू यस इमेल ठेगानासित सम्बन्धित छन्}}:\n\n$2\n\n{{PLURAL:$3|यो अस्थाई पासवर्डको|यी अस्थाई पासवर्डहरुको}} समय {{PLURAL:$5|एक दिन|$5 दिन}}मा सकिनेछ।\nतपाईंले प्रवेश गरेर अहिले नैं नयाँ पासवर्ड छान्नुहोस्। यदि अरु कसैले अनुरोध गरेको भए अथवा यदि तपाईंलाई मूल पासवर्ड याद भए अनि यसलाई परिवर्तन गर्न चाहनुहुन्न भनें, तपाईंले यस सन्देशलाई अनदेखा गर्नुहोस् र पुरानै पासवर्डलाई चालू राख्नुहोस्।",
        "passwordreset-emailtext-user": "{{SITENAME}} को $1 प्रयोगकर्ताले  {{SITENAME}} ($4)को लागि खाता विवरणको निम्ति एउटा अनुस्मारकको अनुरोध गरेको छ। निम्न प्रयोगकर्ता {{PLURAL:$3|खाता यस इमेल ठेगानासित सम्बन्धित छ|खाताहरू यस इमेल ठेगानासित सम्बन्धित छन्}}:\n\n$2\n\n{{PLURAL:$3|यो अस्थाई पासवर्डको|यी अस्थाई पासवर्डहरूको}} समय {{PLURAL:$5|एक दिन|$5 दिन}}मा सकिनेछ।\nतपाईंले प्रवेश गरेर अहिले नैं नयाँ पासवर्ड छान्नुहोस्। यदि अरु कसैले अनुरोध गरेको भए अथवा यदि तपाईंलाई मूल पासवर्ड याद भए अनि यसलाई परिवर्तन गर्न चाहनुहुन्न भनें, तपाईंले यस सन्देशलाई अनदेखा गर्नुहोस् र पुरानै पासवर्डलाई चालू राख्नुहोस्।",
-       "passwordreset-emailelement": "प्रयोगकर्ताको नाम: $1\nअस्थाई पासवर्ड: $2",
+       "passwordreset-emailelement": "प्रयोगकर्ताको नाम: \n$1\n\nअस्थाई पासवर्ड: \n$2",
        "passwordreset-emailsent": "पासवर्ड परिवर्तनको लागि इमेल पठाइएको छ।",
        "passwordreset-emailsent-capture": "पासवर्ड परिवर्तनको लागि इमेल पठाइयो, जुन तल देखाइएकोछ।",
        "passwordreset-emailerror-capture": "पासवर्ड रिसेट इमेल जारि गरिएको छ, जुन तल देखाइएको छ, तर यसलाई {{GENDER:$2|प्रयोगकर्ता}}मा पठाउन विफल भयो: $1",
        "searchprofile-advanced": "उन्नत",
        "searchprofile-articles-tooltip": "$1 मा खोज्ने",
        "searchprofile-images-tooltip": "फाइलहरू खोज्ने",
-       "searchprofile-everything-tooltip": "सबै सामग्री खोज्ने (वार्तालाप समेत )",
+       "searchprofile-everything-tooltip": "सबै सामग्री खोज्ने (वार्तालाप समेत)",
        "searchprofile-advanced-tooltip": "अनुकुल नेमस्पेसमा खोज्ने",
        "search-result-size": "$1 ({{PLURAL:$2|1 शब्द|$2 शब्दहरू}})",
        "search-result-category-size": "{{PLURAL:$1|एक सदस्य|$1 सदस्यहरू}} ({{PLURAL:$2|1 उपश्रेणी|$2  उपश्रेणीहरू}}, {{PLURAL:$3|एउटा फाइल|$3 फाइलहरू}})",
        "powersearch-togglelabel": "जाँच्ने :",
        "powersearch-toggleall": "सबै",
        "powersearch-togglenone": "कुनै पनि होइन",
-       "powersearch-remember": "चयन गरिएको लाई भविष्यमा गरिने खोजहरूको लागि सम्झिने",
+       "powersearch-remember": "चयन गरिएकोलाई भविष्यमा गरिने खोजहरूको लागि सम्झिने",
        "search-external": "बाह्य खोज",
        "searchdisabled": "{{SITENAME}} खोज निस्क्रिय पारिएको छ ।\nहाललाई तपाईं गूगलद्वारा खोज्न सक्नुहुन्छ ।\nयाद गर्नुहोस् उनीहरूको {{SITENAME}}को सूची सामग्री पुरानो भएको हुनसक्छ ।",
        "search-error": "खोज्ने क्रममा समस्या देखियोः $1",
        "tooltip-pt-logout": "निर्गमन (लग आउट) गर्नुहोस्",
        "tooltip-pt-createaccount": "तपाईंलाई खाता बनाउन र लग इन गर्न हामि प्रोत्साहित गर्छौ; तथापि, यो अनिवार्य भने छैन।",
        "tooltip-ca-talk": "सामग्री पृष्ठबारेमा छलफल",
-       "tooltip-ca-edit": "तपाà¤\88à¤\81लà¥\87 à¤¯à¥\8b à¤ªà¥\83षà¥\8dठ à¤¸à¤®à¥\8dपादन à¤\97रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b à¥¤ à¤\95à¥\83पया à¤¸à¤\99à¥\8dà¤\97à¥\8dरह â\80\8dà¤\97रà¥\8dनà¥\81 à¤ªà¥\82रà¥\8dव à¤ªà¥\82रà¥\8dवावलà¥\8bà¤\95न à¤¬à¤\9fन à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रà¥\8dनà¥\81हà¥\8bला à¥¤",
+       "tooltip-ca-edit": "यà¥\8b à¤ªà¥\83षà¥\8dठ à¤¸à¤®à¥\8dपादन à¤\97रà¥\8dनà¥\87",
        "tooltip-ca-addsection": "नयाँ खण्ड सुरु गर्नुहोस्",
        "tooltip-ca-viewsource": "यो पृष्ठ सुरक्षित गरिएको छ। यसको श्रोत हेर्न सक्नुहुन्छ।",
        "tooltip-ca-history": "यस पृष्ठको पहिलेका पुनरावलोकनहरु",
        "tooltip-p-logo": "मुख्य पृष्ठ",
        "tooltip-n-mainpage": "मुख्य पृष्ठमा जाने",
        "tooltip-n-mainpage-description": "मुख्य पृष्ठमा जानुहो्स्",
-       "tooltip-n-portal": "आयोजनाका बारेमा , तपाईँ के गर्न सक्नुहुन्छ , सामग्री कहाँ भेट्टाउने",
+       "tooltip-n-portal": "आयोजनाका बारेमा, तपाईँ के गर्न सक्नुहुन्छ, सामग्री कहाँ भेट्टाउने",
        "tooltip-n-currentevents": "हालैको घटनाको बारेमा पृष्ठभूमि जानकारी पत्ता लगाउनुहोस्",
        "tooltip-n-recentchanges": "विकिमा गरिएका हालैका परिवर्तनहरुको सूची",
        "tooltip-n-randompage": "जुन कुनै पृष्ठ खोल्ने",
        "tooltip-ca-nstab-main": "सामग्री पृष्ठ हेर्नुहोस",
        "tooltip-ca-nstab-user": "प्रयोगकर्ता पृष्ठ हेर्नुहोस्",
        "tooltip-ca-nstab-media": "मिडिया पृष्ठ हेर्नुहोस्",
-       "tooltip-ca-nstab-special": "यो विशेष पृष्ठ हो , तपाईँले आफै सम्पादन गर्न सक्नुहुन्न",
+       "tooltip-ca-nstab-special": "यो विशेष पृष्ठ हो, यो सम्पादन गर्न सकिदैन",
        "tooltip-ca-nstab-project": "आयोजान पृष्ठ हेर्नुहोस्",
        "tooltip-ca-nstab-image": "फाइल पृष्ठ हेर्नुहोस्",
        "tooltip-ca-nstab-mediawiki": "प्रणाली सन्देश हेर्नुहोस्",
        "spam_reverting": "$1 मा कडीहरू  नभएका पुरानो अवतरणमा पुनर्स्थापित गर्दै",
        "spam_blanking": "$1 का सबै अवतरणहरूमा कडीहरू  भेटिए, मेटाएर खालि गर्दै",
        "spam_deleting": "$1 भएको सम्पूर्ण संशोधन कडीहरू मेटाइदै",
-       "simpleantispam-label": "ऐन्टी-स्प्याम जाँच।\nयसलाई <strong>नहीं</strong> भर्ने!",
+       "simpleantispam-label": "ऐन्टी-स्प्याम जाँच।\nयसलाई <strong>न</strong> भर्ने!",
        "pageinfo-title": " \"$1\"को लागि जाकारी",
        "pageinfo-not-current": "माफ गर्नुहोस्, यो जानकारी पूरानो संस्करणमा उपलब्ध गराउन असम्भव छ ।",
        "pageinfo-header-basic": "साधारण जानकारी",
        "api-error-badtoken": "आन्तरिक समस्याः खराब टोकन ।",
        "api-error-copyuploaddisabled": "यस सर्वरमा URL द्वारा अपलोड गर्ने व्यवस्था निस्क्रिय गरिएकोछ।",
        "api-error-duplicate": "यस साइटमा पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भएको [$2 अर्को फाइल छ]|भएका  [$2 केहि अरु फाइलहरू छन्]}} ।",
-       "api-error-duplicate-archive": "यस साइटमा पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भएको [$2 अर्को फाइल थियो]|भएका  [$2 केहि अरु फाइलहरू थिए]}} ।\nतर {{PLURAL:$1|यो मेटाइएको थियो|यी मेटाइएका थिए}} ।",
-       "api-error-duplicate-archive-popup-title": "पहिले  {{PLURAL:$1|मेटाइएको फाइलको|मेटाइएका फाइलहरूको}} नकल प्रति बनाउने।",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|फाइल|फाइलहरू}} नकल प्रति बनाउने",
+       "api-error-duplicate-archive": "यस साइटमा पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भएको अर्को फाइल थियो|भएका  केहि अरु फाइलहरू थिए}} ।\nतर {{PLURAL:$1|यो मेटाइएको थियो|यी मेटाइएका थिए}} ।",
        "api-error-empty-file": "तपाईंले बुझाएको फाइल खालि छ।",
        "api-error-emptypage": "नयाँ तयार गर्दै, खाली पृष्ठ तयार गर्न अनुमति छैन ।",
        "api-error-fetchfileerror": "आन्तरिक समस्याः फाइल तान्दा केही कुरा गलत भएछ ।",
index 4438a4f..6e3d661 100644 (file)
        "disclaimers": "Voorbehoud",
        "disclaimerpage": "Project:Algemeen voorbehoud",
        "edithelp": "Hulp bij bewerken",
-       "helppage-top-gethelp": "Help",
+       "helppage-top-gethelp": "Hulp",
        "mainpage": "Hoofdpagina",
        "mainpage-description": "Hoofdpagina",
        "policy-url": "Project:Beleid",
        "versionrequiredtext": "Versie $1 van MediaWiki is vereist om deze pagina te gebruiken.\nMeer informatie is beschikbaar op de pagina [[Special:Version|softwareversie]].",
        "ok": "OK",
        "retrievedfrom": "Overgenomen van \"$1\"",
-       "youhavenewmessages": "{{PLURAL:$3|U hebt|Jullie hebben}} $1 ($2).",
-       "youhavenewmessagesfromusers": "{{PLURAL:$4|U hebt|Jullie hebben}} $1 van {{PLURAL:$3|een andere gebruiker|$3 gebruikers}} ($2).",
+       "youhavenewmessages": "{{PLURAL:$3|U hebt}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|U hebt}} $1 van {{PLURAL:$3|een andere gebruiker|$3 gebruikers}} ($2).",
        "youhavenewmessagesmanyusers": "U heeft $1 van een groot aantal gebruikers ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|een nieuw bericht|999=nieuwe berichten}}",
        "newmessagesdifflinkplural": "laatste {{PLURAL:$1|wijziging|999=wijzigingen}}",
        "title-invalid-leading-colon": "De opgevraagde paginanaam bevat een ongeldige dubbele punt aan het begin.",
        "perfcached": "Deze gegevens komen uit een cache en zijn mogelijk niet actueel. Er {{PLURAL:$1|is maximaal één resultaat|zijn maximaal $1 resultaten}} beschikbaar in de cache.",
        "perfcachedts": "Deze gegevens komen uit een cache die voor het laatst is bijgewerkt op $2 om $3. Er {{PLURAL:$4|is maximaal één resultaat|zijn maximaal $4 resultaten}} beschikbaar in de cache.",
-       "querypage-no-updates": "Het bijwerken van deze pagina is momenteel uitgeschakeld.\nGegevens op deze pagina worden niet ververst.",
+       "querypage-no-updates": "Deze pagina wordt niet bijgewerkt.\nGegevens op deze pagina worden niet ververst.",
        "viewsource": "Brontekst bekijken",
        "viewsource-title": "Brontekst bekijken van $1",
        "actionthrottled": "Handeling tegengehouden",
        "exception-nologin": "Niet aangemeld",
        "exception-nologin-text": "Meld u aan om deze pagina te bekijken of deze handeling uit te voeren.",
        "exception-nologin-text-manual": "U moet $1 om deze pagina te kunnen bekijken of de handeling uit te voeren.",
-       "virus-badscanner": "Onjuiste configuratie: Onbekende virusscanner: <em>$1</em>.",
+       "virus-badscanner": "Onjuiste configuratie: onbekende virusscanner: <em>$1</em>.",
        "virus-scanfailed": "scannen is mislukt (code $1)",
        "virus-unknownscanner": "onbekend antivirusprogramma:",
        "logouttext": "<strong>U bent nu afgemeld.</strong>\n\nSommige pagina's kunnen blijven weergegeven alsof u nog aangemeld bent, totdat u uw browsercache leegt.",
        "createacct-reason-ph": "Waarom u een andere gebruiker aanmaakt",
        "createacct-captcha": "Veiligheidscontrole",
        "createacct-imgcaptcha-ph": "Geef de tekst in die u hierboven ziet",
-       "createacct-submit": "Gebruiker registreren",
+       "createacct-submit": "Account aanmaken",
        "createacct-another-submit": "Gebruiker aanmaken",
        "createacct-benefit-heading": "{{SITENAME}} wordt gemaakt door mensen zoals u.",
        "createacct-benefit-body1": "bewerking{{PLURAL:$1||en}}",
        "noname": "U hebt geen geldige gebruikersnaam opgegeven.",
        "loginsuccesstitle": "Aanmelden geslaagd",
        "loginsuccess": "<strong>U bent nu aangemeld bij {{SITENAME}} als \"$1\".</strong>",
-       "nosuchuser": "De gebruiker \"$1\" bestaat niet.\nGebruikersnamen zijn hoofdlettergevoelig.\nControleer de schrijfwijze of [[Special:UserLogin/signup|registreer een nieuw gebruiker]].",
+       "nosuchuser": "De gebruiker \"$1\" bestaat niet.\nGebruikersnamen zijn hoofdlettergevoelig.\nControleer de schrijfwijze of [[Special:UserLogin/signup|maak een nieuw gebruiker aan]].",
        "nosuchusershort": "De gebruiker \"$1\" bestaat niet.\nControleer de schrijfwijze.",
        "nouserspecified": "Geef een gebruikersnaam op.",
        "login-userblocked": "Deze gebruiker is geblokkeerd.\nAanmelden is niet mogelijk.",
        "passwordreset-emailtitle": "Gebruikersgegevens op {{SITENAME}}",
        "passwordreset-emailtext-ip": "Iemand, waarschijnlijk u, heeft vanaf het IP-adres $1 een aanvraag gedaan om uw wachtwoord voor {{SITENAME}} ($4) opnieuw in te stellen. De volgende {{PLURAL:$3|gebruiker is|gebruikers zijn}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tijdelijke wachtwoord vervalt|Deze tijdelijke wachtwoorden vervallen}} over {{PLURAL:$5|een dag|$5 dagen}}. Meld u aan en wijzig het wachtwoord nu. Als u dit verzoek niet zelf heeft gedaan, of als u het oorspronkelijke wachtwoord nog kent en het niet wilt wijzigen, negeer dit bericht dan en blijf uw oude wachtwoord gebruiken.",
        "passwordreset-emailtext-user": "Gebruiker $1 op de site {{SITENAME}} heeft een aanvraag gedaan om uw wachtwoord voor {{SITENAME}} ($4) opnieuw in te stellen. De volgende {{PLURAL:$3|gebruiker is|gebruikers zijn}} gekoppeld aan dit e-mailadres:\n\n$2\n\n{{PLURAL:$3|Dit tijdelijke wachtwoord vervalt|Deze tijdelijke wachtwoorden vervallen}} over {{PLURAL:$5|een dag|$5 dagen}}.\nMeld u aan en wijzig het wachtwoord nu. Als u dit verzoek niet zelf heeft gedaan, of als u het oorspronkelijke wachtwoord nog kent en het niet wilt wijzigen, negeer dit bericht dan en blijf uw oude wachtwoord gebruiken.",
-       "passwordreset-emailelement": "Gebruikersnaam: $1\nTijdelijk wachtwoord: $2",
+       "passwordreset-emailelement": "Gebruikersnaam: \n$1\n\nTijdelijk wachtwoord: \n$2",
        "passwordreset-emailsent": "Er is een e-mail voor het opnieuw instellen van een wachtwoord verzonden.",
        "passwordreset-emailsent-capture": "Er is een e-mail voor het opnieuw instellen van een wachtwoord verzonden. Deze wordt hieronder weergegeven.",
        "passwordreset-emailerror-capture": "Er is een e-mail voor het opnieuw instellen van een wachtwoord aangemaakt. Deze wordt hieronder weergegeven. Het verzenden naar de {{GENDER:$2|gebruiker}} is mislukt om de volgende reden: $1",
        "showpreview": "Bewerking ter controle bekijken",
        "showdiff": "Wijzigingen bekijken",
        "blankarticle": "<strong>Waarschuwing:</strong> de pagina die u wilt aanmaken is leeg.\nAls u opnieuw op \"{{int:savearticle}}\" klikt, wordt de pagina aangemaakt zonder enige inhoud.",
-       "anoneditwarning": "<strong>Waarschuwing:</strong> u bent niet aangemeld.\nUw IP-adres wordt opgeslagen als u wijzigingen op deze pagina maakt. Wanneer u <strong>[$1 aanmeldt]</strong> of <strong>[$2 een gebruiker aanmaakt]</strong verschijnen uw bewerkingen onder uw gebruikersnaam, naast andere voordelen.",
+       "anoneditwarning": "<strong>Waarschuwing:</strong> u bent niet aangemeld.\nUw IP-adres wordt opgeslagen als u wijzigingen op deze pagina maakt. Wanneer u <strong>[$1 aanmeldt]</strong> of <strong>[$2 een gebruiker aanmaakt]</strong> verschijnen uw bewerkingen onder uw gebruikersnaam, naast andere voordelen.",
        "anonpreviewwarning": "''U bent niet aangemeld.''\n''Door uw bewerking op te slaan wordt uw IP-adres opgeslagen in de paginageschiedenis.''",
        "missingsummary": "'''Let op:''' u hebt geen bewerkingssamenvatting opgegeven.\nAls u nogmaals op \"{{int:savearticle}}\" klikt wordt de bewerking zonder samenvatting opgeslagen.",
        "selfredirect": "<strong>Waarschuwing:</strong>U heeft een doorverwijzing gemaakt naar dezelfde pagina. Mogelijk heeft u de verkeerde bestemming voor de doorverwijzing gebruikt, of bewerkt u de verkeerde pagina. Door alsnog op \"{{int:savearticle}}\" te klikken word de doorverwijzing alsnog aangemaakt.",
        "missingcommentheader": "'''Let op:''' u hebt geen onderwerp/kop voor deze opmerking opgegeven.\nAls u opnieuw op \"{{int:savearticle}}\" klikt, wordt uw wijziging zonder een onderwerp/kop opgeslagen.",
        "summary-preview": "Bewerkingssamenvatting nakijken:",
        "subject-preview": "Onderwerp/kop nakijken:",
-       "previewerrortext": "Er is een fout opgetreden bij het voorvertonen van je bewerkingen.",
+       "previewerrortext": "Er is een fout opgetreden tijdens het weergeven van uw wijzigingen.",
        "blockedtitle": "Gebruiker is geblokkeerd",
        "blockedtext": "'''Uw gebruiker of IP-adres is geblokkeerd.'''\n\nDe blokkade is uitgevoerd door $1.\nDe opgegeven reden is ''$2''.\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nU kunt contact opnemen met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]] om de blokkade te bespreken.\nU kunt geen gebruik maken van de functie \"Deze gebruiker e-mailen\", tenzij u een geldig e-mailadres hebt opgegeven in uw [[Special:Preferences|voorkeuren]] en het gebruik van deze functie niet geblokkeerd is.\nUw huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als u ergens op deze blokkade reageert.",
        "autoblockedtext": "Uw IP-adres is automatisch geblokkeerd, omdat het is gebruikt door een andere gebruiker, die is geblokkeerd door $1.\nDe opgegeven reden is:\n\n:''$2''\n\n* Aanvang blokkade: $8\n* Einde blokkade: $6\n* Bedoeld te blokkeren: $7\n\nU kunt deze blokkade bespreken met $1 of een andere [[{{MediaWiki:Grouppage-sysop}}|beheerder]].\n\nU kunt geen gebruik maken van de functie \"Deze gebruiker e-mailen\", tenzij u een geldig e-mailadres hebt opgegeven in uw [[Special:Preferences|voorkeuren]] en het gebruik van deze functie niet is geblokkeerd.\n\nUw huidige IP-adres is $3 en het blokkadenummer is #$5.\nVermeld alle bovenstaande gegevens als u ergens op deze blokkade reageert.",
        "action-editmyprivateinfo": "uw eigen privégegevens te bewerken",
        "action-editcontentmodel": "de paginainhoudmodel te bewerken",
        "action-managechangetags": "labels aanmaken en verwijderen",
-       "action-applychangetags": "labels aan je bewerkingen toe te voegen",
+       "action-applychangetags": "labels aan uw bewerkingen toe te voegen",
        "action-changetags": "willekeurige labels toe te voegen aan en te verwijderen van versies en logboekregels",
        "nchanges": "$1 {{PLURAL:$1|bewerking|bewerkingen}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sinds uw laatste bezoek}}",
        "tooltip-pt-preferences": "Mijn voorkeuren",
        "tooltip-pt-watchlist": "Overzicht van pagina's die u volgt",
        "tooltip-pt-mycontris": "Overzicht van uw bijdragen",
-       "tooltip-pt-login": "U wordt van harte uitgenodigd om in te loggen, maar dit is niet verplicht",
+       "tooltip-pt-login": "U wordt van harte uitgenodigd om aan te melden, maar dit is niet verplicht",
        "tooltip-pt-logout": "Afmelden",
        "tooltip-pt-createaccount": "Registreer u vooral en meld u aan. Dit is echter niet vereist.",
        "tooltip-ca-talk": "Overleg over deze pagina",
        "tooltip-p-logo": "Naar de hoofdpagina gaan",
        "tooltip-n-mainpage": "Naar de hoofdpagina gaan",
        "tooltip-n-mainpage-description": "Naar de hoofdpagina gaan",
-       "tooltip-n-portal": "Informatie over het project: wat je kunt doen, waar je dingen kunt vinden",
+       "tooltip-n-portal": "Informatie over het project: wat u kunt doen, waar u dingen kunt vinden",
        "tooltip-n-currentevents": "Achtergrondinformatie over actuele zaken",
        "tooltip-n-recentchanges": "Een lijst met recente wijzigingen in deze wiki.",
        "tooltip-n-randompage": "Een willekeurige pagina bekijken",
        "tooltip-ca-nstab-main": "Inhoudspagina bekijken",
        "tooltip-ca-nstab-user": "Gebruikerspagina bekijken",
        "tooltip-ca-nstab-media": "Mediapagina bekijken",
-       "tooltip-ca-nstab-special": "Dit is een speciale pagina, u kunt de pagina zelf niet bewerken",
+       "tooltip-ca-nstab-special": "Dit is een speciale pagina die niet bewerkt kan worden",
        "tooltip-ca-nstab-project": "Projectpagina bekijken",
        "tooltip-ca-nstab-image": "Bestandspagina bekijken",
        "tooltip-ca-nstab-mediawiki": "Systeembericht bekijken",
        "api-error-badtoken": "Interne fout: het token klopt niet.",
        "api-error-copyuploaddisabled": "Uploaden via URL is uitgeschakeld op deze server.",
        "api-error-duplicate": "Er {{PLURAL:$1|staat al [$2 een bestand]|staan al [$2 bestanden]}} met dezelfde inhoud in de wiki.",
-       "api-error-duplicate-archive": "Er {{PLURAL:$1|was al [$2 een ander bestand]|waren al [$2 $1 andere bestanden]}}  op de site met dezelfde inhoud, maar {{PLURAL:$1|dat is|die zijn}} verwijderd.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Duplicaatbestand dat al verwijderd is|Duplicaatbestanden die al verwijderd zijn}}",
-       "api-error-duplicate-popup-title": "Zelfde {{PLURAL:$1|bestand|bestanden}}",
+       "api-error-duplicate-archive": "Er {{PLURAL:$1|was al een ander bestand|waren al $1 andere bestanden}}  op de site met dezelfde inhoud, maar {{PLURAL:$1|dat is|die zijn}} verwijderd.",
        "api-error-empty-file": "Het bestand dat u hebt geüpload is leeg.",
        "api-error-emptypage": "Het aanmaken van nieuwe, lege pagina's is niet toegestaan.",
        "api-error-fetchfileerror": "Interne fout: er is iets misgegaan bij het ophalen van het bestand.",
index 80ddb30..6a7ea26 100644 (file)
        "passwordreset-emailtitle": "↓Kontodetaljar på {{SITENAME}}",
        "passwordreset-emailtext-ip": "Nokon (sannsynlegvis deg, frå IP-adressa $1) bad om ei påminning for kontodetaljane dine for {{SITENAME}} ($4). {{PLURAL:$3|Den fylgjande brukarkontoen|Dei fylgjande brukarkontoane}} er assosierte med denne e-postadressa:\n\n$2\n\n{{PLURAL:$3|Dette mellombels passordet|Desse mellombels passorda}} vil verta ugilde om {{PLURAL:$5|éin dag|$5 dagar}}.\nDu bør logga inn og velja eit nytt passord no. Om nokon andre enn deg bad om denne påminninga, eller du har kome i hug det opphavlege passordet og ikkje lenger ynskjer å endra det, kan du sjå bort frå denne meldinga og halda fram med å nytta det gamle passordet ditt.",
        "passwordreset-emailtext-user": "Brukaren $1 på {{SITENAME}} bad om ei påminning for kontodetaljane dine for {{SITENAME}} ($4). {{PLURAL:$3|Den fylgjande brukarkontoen|Dei fylgjande brukarkontoane}} er assosierte med denne e-postadressa:\n\n$2\n\n{{PLURAL:$3|Dette mellombels passordet|Desse mellombels passorda}} vil verta ugilde om {{PLURAL:$5|éin dag|$5 dagar}}.\nDu bør logga inn og velja eit nytt passord no. Om nokon andre enn deg bad om denne påminninga, eller du har kome i hug det opphavlege passordet og ikkje lenger ynskjer å endra det, kan du sjå bort frå denne meldinga og halda fram med å nytta det gamle passordet ditt.",
-       "passwordreset-emailelement": "↓Brukarnamn: $1\nMellombels passord: $2",
+       "passwordreset-emailelement": "↓Brukarnamn: \n$1\n\nMellombels passord: \n$2",
        "passwordreset-emailsent": "Ein e-post for attendestilling av passord er vorten send",
        "passwordreset-emailsent-capture": "Ein e-post om attendestilling av passord - vist under - er vorten send",
        "passwordreset-emailerror-capture": "Ein e-post om attendestilling av passord vart oppretta, og er vist nedanfor; men det lukkast ikkje å senda han til {{GENDER:$2|brukaren}}: $1",
        "recentchangeslinked-title": "Endringar relaterte til «$1»",
        "recentchangeslinked-summary": "Dette er ei liste over nylege endringar som er gjorde på sider som vert lenkja til frå ei oppgjeven side (eller på medlemer av ein oppgjeven kategori). Sider på [[Special:Watchlist|overvakingslista di]] er '''utheva'''.",
        "recentchangeslinked-page": "Sidenamn:",
-       "recentchangeslinked-to": "Vis endringar på sider som lenkjer til den gitte sida i staden",
+       "recentchangeslinked-to": "Vis endringar på sider som lenkjar til den gitte sida i staden",
        "upload": "Last opp fil",
        "uploadbtn": "Last opp fil",
        "reuploaddesc": "Attende til opplastingsskjemaet.",
        "filehist-comment": "Kommentar",
        "imagelinks": "Filbruk",
        "linkstoimage": "{{PLURAL:$1|Den følgjande sida|Dei følgjande $1 sidene}} har lenkjer til denne fila:",
-       "linkstoimage-more": "Meir enn $1 {{PLURAL:$1|side|sider}} lenkjer til denne fila.\nFølgjande liste viser {{PLURAL:$1|den første sida|dei $1 første sidene}}.\nEi [[Special:WhatLinksHere/$2|fullstendig liste]] er tilgjengeleg.",
+       "linkstoimage-more": "Meir enn $1 {{PLURAL:$1|side|sider}} lenkjar til denne fila.\nDenne lista viser {{PLURAL:$1|den første sida|dei $1 første sidene}}.\nEi [[Special:WhatLinksHere/$2|fullstendig liste]] er tilgjengeleg.",
        "nolinkstoimage": "Det finst ikkje noka side med lenkje til denne fila.",
        "morelinkstoimage": "Vis [[Special:WhatLinksHere/$1|fleire lenkjer]] til denne fila.",
        "linkstoimage-redirect": "$1 (filomdirigering) $2",
        "linksearch-ns": "Namnerom:",
        "linksearch-ok": "Søk",
        "linksearch-text": "Jokerteikn som «*.wikipedia.org» kan nyttast.\nDet er påkravt med eit toppnivådomene, til dømes «*.org».<br />\n{{PLURAL:$2|Stødd protokoll|Stødde protokollar}}: $1 (nyttar http:// som standard om ingen protokoll er oppgjeven)",
-       "linksearch-line": "$2 lenkjer til $1",
+       "linksearch-line": "$2 lenkjar til $1",
        "linksearch-error": "Jokerteikn kan berre nyttast føre tenarnamnet.",
        "listusersfrom": "Vis brukarnamna frå og med:",
        "listusers-submit": "Vis",
        "delete-edit-reasonlist": "Endre grunnar til sletting",
        "delete-toobig": "Denne sida har ein stor endringsshistorikk, med over {{PLURAL:$1|$1&nbsp;endring|$1&nbsp;endringar}}. Sletting av slike sider er avgrensa for å unngå utilsikta forstyrring av {{SITENAME}}.",
        "delete-warning-toobig": "Denne sida har ein lang endringshistorikk, med meir enn {{PLURAL:$1|$1&nbsp;endring|$1&nbsp;endringar}}. Dersom du slettar henne kan det forstyrre handlingar i databasen til {{SITENAME}}, ver varsam.",
-       "deleting-backlinks-warning": "'''Åtvaring''': Andre sider lenkjer til eller inkluderer sida du er i ferd med å sletta.",
+       "deleting-backlinks-warning": "'''Åtvaring''': [[Special:WhatLinksHere/{{FULLPAGENAME}}|Andre sider]] lenkjar til eller inkluderer sida du er i ferd med å sletta.",
        "rollback": "Rull attende endringar",
        "rollbacklink": "rull attende",
        "rollbacklinkcount": "rull attende {{PLURAL:$1|éi endring|$1 endringar}}",
        "tooltip-n-randompage": "Vis ei tilfeldig side",
        "tooltip-n-help": "Hjelp til å bruke alle funksjonane.",
        "tooltip-t-whatlinkshere": "Liste over alle wikisidene som har lenkjer hit",
-       "tooltip-t-recentchangeslinked": "Siste endringar på sider denne sida lenkjer til",
+       "tooltip-t-recentchangeslinked": "Nylege endringar på sider denne sida lenkjar til",
        "tooltip-feed-rss": "RSS-mating for denne sida",
        "tooltip-feed-atom": "Atom-mating for denne sida",
        "tooltip-t-contributions": "Sjå liste over bidrag frå denne brukaren",
        "api-error-badtoken": "Intern feil: ugild token.",
        "api-error-copyuploaddisabled": "Opplasting etter URL er avslege på tenaren.",
        "api-error-duplicate": "Det finst {{PLURAL:$1|[$2 ei anna fil]|[$2 andre filer]}} på nettstaden med same innhaldet.",
-       "api-error-duplicate-archive": "Det fanst {{PLURAL:$1|[$2 ei anna fil]|[$2 andre filer]}} på nettstaden med det same innhaldet, men {{PLURAL:$1|ho|dei}} vart sletta.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Tvifelt fil|Tvifelte filer}} som alt er sletta",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Tvifelt fil|Tvifelte filer}}",
+       "api-error-duplicate-archive": "Det fanst {{PLURAL:$1|ei anna fi]|andre file]}} på nettstaden med det same innhaldet, men {{PLURAL:$1|ho|dei}} vart sletta.",
        "api-error-empty-file": "Fila du sende var tom.",
        "api-error-emptypage": "Det er ikkje tillate å oppretta nye tomme sider.",
        "api-error-fetchfileerror": "Intern feil: Noko gjekk gale då fila vart henta.",
index 12bf5df..d94e169 100644 (file)
@@ -12,7 +12,8 @@
                        "Spacebirdy",
                        "Горан Анђелковић",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Soslinhar los ligams :",
        "passwordreset-emailtitle": "Detailhs d'un compte per {{SITENAME}}",
        "passwordreset-emailtext-ip": "Qualqu'un (probablament vos, dempuèi l'adreça IP $1) a demandat una reïnicializacion de vòstre senhal per {{SITENAME}} ($4). {{PLURAL:$3|Lo compte d'utilizaire seguent es associat|Los comptes d'utilizaires seguents son associats}} a aquesta adreça de corrièr electronic :\n\n$2\n\n{{PLURAL:$3|Aqueste senhal temporari expirarà|Aquestes senhals temporaris expiraràn}} dins {{PLURAL:$5|un jorn|$5 jorns}}. Ara, vos cal vos connectar e causir un senhal novèl. Se aquesta demanda proven pas de vos, o que vos sètz remembrat de vòstre senhal inicial, e que volètz pas mai lo modificar, podètz ignorar aqueste messatge e contunhar d'utilizar vòstre ancian senhal.",
        "passwordreset-emailtext-user": "L'utilizaire $1 sus {{SITENAME}} a demandat una reïnicializacion de vòstre senhal per {{SITENAME}} ($4). {{PLURAL:$3|Lo compte d'utilizaire seguent es associat|Los comptes d'utilizaires seguents son associats}} a aquesta adreça de corrièr electronic :\n\n$2\n\n{{PLURAL:$3|Aqueste senhal temporari expirarà|Aquestes senhals temporaris expiraràn}} dins {{PLURAL:$5|un jorn|$5 jorns}}. Ara, vos cal vos connectar e causir un senhal novèl. Se aquesta demanda proven pas de vos, o que vos sètz remembrat de vòstre senhal inicial, e que lo volètz pas mai modificar, podètz ignorar aqueste messatge e contunhar d'utilizar vòstre ancian senhal.",
-       "passwordreset-emailelement": "Utilizaire: $1\nSenhal temporari: $2",
+       "passwordreset-emailelement": "Utilizaire: \n$1\n\nSenhal temporari: \n$2",
        "passwordreset-emailsent": "Un corrièr electronic de reïnicializacion de senhal es estat mandat.",
        "passwordreset-emailsent-capture": "Un corrièr electronic de reïnicializacion senhal es estat mandat, qu'es afichat çaijós.",
        "passwordreset-emailerror-capture": "Un corrièr electronic de reïnicializacion de senhal es estat generat, qu'es afichat çaijós, mas lo mandadís a l'{{GENDER:$2|utilizaire}} a fracassat : $1",
        "emailuser": "Mandar un messatge a aqueste utilizaire",
        "emailuser-title-target": "Mandar un corrièl a {{GENDER:$1|aqueste utilizaire|aquesta utilizaira}}",
        "emailuser-title-notarget": "Mandar un corrièr electronic a l’utilizaire",
-       "emailpage": "Mandar un corrièr electronic a l’utilizaire",
        "emailpagetext": "Podètz utilizar lo formulari çaijós per mandar un corrièr electronic a {{GENDER:$1|aqueste utilizaire|aquesta utilizaira}}.\nL'adreça electronica qu'avètz indicada dins [[Special:Preferences|vòstras preferéncias]] apareisserà dins lo camp « Expeditor » de vòstre messatge. E mai, lo destinatari vos poirà respondre dirèctament.",
        "defemailsubject": "{{SITENAME}} Corrièl de l'utilizaire « $1 »",
        "usermaildisabled": "Lo mandadís de corrièrs electronics entre utilizairers es desactivat",
        "api-error-badtoken": "Error intèrna : marrit « geton ».",
        "api-error-copyuploaddisabled": "Los cargaments via URL son desactivats sus aqueste servidor.",
        "api-error-duplicate": "I a ja {{PLURAL:$1|[$2 un autre fichièr present]|[$2 d'autres fichièrs presents]}} sul site amb lo meteis contengut.",
-       "api-error-duplicate-archive": "I aviá ja {{PLURAL:$1|[$2 un autre fichièr present]|[$2 d'autres fichièrs presents]}} sul site amb lo meteis contengut, mas {{PLURAL:$1|es estat suprimit|son estats suprimits}}.",
-       "api-error-duplicate-archive-popup-title": "Duplicar {{PLURAL:$1|lo fichièr|los fichièrs}} que {{PLURAL:$1|ja es estat suprimit|je son estats suprimits}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|fichièr|fichièrs}} en doble",
+       "api-error-duplicate-archive": "I aviá ja {{PLURAL:$1|un autre fichièr present|d'autres fichièrs presents}} sul site amb lo meteis contengut, mas {{PLURAL:$1|es estat suprimit|son estats suprimits}}.",
        "api-error-empty-file": "Lo fichièr qu'avètz somés èra void.",
        "api-error-emptypage": "Creacion de paginas voidas pas autorizada.",
        "api-error-fetchfileerror": "Error intèrna : Quicòm s'es mal passat al moment de la recuperacion del fichièr.",
diff --git a/languages/i18n/olo.json b/languages/i18n/olo.json
new file mode 100644 (file)
index 0000000..f593f3c
--- /dev/null
@@ -0,0 +1,812 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Denö",
+                       "Hiloin Natoi",
+                       "Ilja.mos",
+                       "Mashoi7"
+               ]
+       },
+       "tog-underline": "Linkien alleviivuamine:",
+       "tog-hideminor": "Peittiä pienet muutokset uuvet muutokset -listaspäi",
+       "tog-hidepatrolled": "Peittiä tarkastetut muutokset uvvet muutokset -listaspäi",
+       "tog-newpageshidepatrolled": "Peittiä tarkastetut sivut uuzien sivuloin listalpäi",
+       "tog-extendwatchlist": "Levitä valvonduluvettelo ku ozuttua kai muutokset, ei vaiku jälgimäzii",
+       "tog-editondblclick": "Edituiče sivuloi kaksoispainalduksel",
+       "tog-watchcreations": "Ližiä minun luajitut sivut da ližätyt failat minun valvonduluvetteloh",
+       "tog-watchdefault": "Ližiä minun kohendetut sivut da failat minun valvonduluvetteloh",
+       "tog-watchmoves": "Ližiä minun siirretyt sivut da failat minun valvonduluvetteloh",
+       "tog-watchdeletion": "Ližiä minun iäreotetut sivut da failat minun valvonduluvetteloh",
+       "tog-oldsig": "Nygöine allekirjutus:",
+       "tog-watchlisthideliu": "Peitä kirjutannuhuoloin käyttäjien kohendukset valvondulistalpäi",
+       "tog-watchlisthideanons": "Peitä registriiruičemattomien käyttäjien kohendukset valvondulistalpäi",
+       "tog-watchlisthidepatrolled": "Peitä muutoksientarkistajien hyväksytyt kohendukset valvondulistalpäi",
+       "tog-ccmeonemails": "Työnnä minule koupii MediiWikin kauti työttylöis sähköpoštuviestilöis",
+       "tog-diffonly": "Älä ozuta sivun syväindyö eroverdailun alapuolel",
+       "tog-showhiddencats": "Ozuta peitetyt kategouriet",
+       "tog-norollbackdiff": "Älä ozuta eroloi, konzu olet ottanuh järilleh aijemban versien järilleh tuondu -toimindol",
+       "underline-always": "Ainos",
+       "underline-never": "Nikonzu",
+       "editfont-style": "Edituičendualovehen kirjainstiilu:",
+       "editfont-sansserif": "Sans-serif -fontu",
+       "editfont-serif": "Serif-fontu",
+       "sunday": "Pyhäpäivy",
+       "monday": "Enzimäinargi",
+       "tuesday": "Toinargi",
+       "wednesday": "Kolmaspäivy",
+       "thursday": "Nelläspäivy",
+       "friday": "Piäteniččy",
+       "saturday": "Suovattu",
+       "sun": "Pyh",
+       "mon": "Enzimäinargi",
+       "tue": "Toinargi",
+       "wed": "Kol",
+       "thu": "Nel",
+       "fri": "Piä",
+       "sat": "Suo",
+       "january": "pakkaskuu",
+       "february": "tuhukuu",
+       "march": "kevätkuu",
+       "april": "sulakuu",
+       "may_long": "oraskuu",
+       "june": "kezäkuu",
+       "july": "heinykuu",
+       "august": "elokuu",
+       "september": "syvyskuu",
+       "october": "ligakuu",
+       "november": "kylmykuu",
+       "december": "talvikuu",
+       "january-gen": "pakkaskuudu",
+       "february-gen": "tuhukuudu",
+       "march-gen": "kevätkuudu",
+       "april-gen": "kevätkuudu",
+       "may-gen": "oraskuudu",
+       "june-gen": "kezäkuudu",
+       "july-gen": "heinykuudu",
+       "august-gen": "elokuudu",
+       "september-gen": "syvyskuudu",
+       "october-gen": "ligakuudu",
+       "november-gen": "kylmykuudu",
+       "december-gen": "talvikuudu",
+       "jan": "pakkaskuu",
+       "feb": "tuhu",
+       "mar": "kevätkuu",
+       "apr": "Sula",
+       "may": "Oras",
+       "jun": "Pakkas",
+       "jul": "Heiny",
+       "aug": "Elo",
+       "sep": "Syvys",
+       "oct": "ligakuu",
+       "nov": "kylmykuu",
+       "dec": "talvikuu",
+       "january-date": "$1. pakkaskuudu",
+       "february-date": "$1. tuhukuudu",
+       "march-date": "Kevätkuu $1",
+       "april-date": "Sulakuu $1",
+       "may-date": "Oraskuu $1",
+       "june-date": "Kezäkuu $1",
+       "july-date": "Heinykuu $1",
+       "august-date": "Elokuu $1",
+       "september-date": "Syvyskuu $1",
+       "october-date": "Ligakuu $1",
+       "november-date": "Kylmykuu $1",
+       "december-date": "Talvikuu $1",
+       "pagecategories": "{{PLURAL:$1|Kategourii|Kategouriet}}",
+       "category_header": "Sivut kategouries \"$1\"",
+       "subcategories": "Alikategouriet",
+       "category-media-header": "Medii kategouries \"$1\"",
+       "hidden-categories": "{{PLURAL:$1|Peitetty kategourii|Peitetyt kategouriet}}",
+       "hidden-category-category": "Peitetyt kategouriet",
+       "category-subcat-count": "{{PLURAL:$2|Täs kategouries on vaiku tämä alikategourii.|Täs kategouries on nämmä {{PLURAL:$1|subcategory|$1 alikategouriet}}, kaikkiedah $2.}}",
+       "category-article-count": "{{PLURAL:$2|Täs kategouries on vaiku tämä sivu.|{{PLURAL:$1|Tämä sivu on|$1 Nämmä sivut ollah}} täs kategouries, $2 kaikkiedah.}}",
+       "category-file-count": "{{PLURAL:$2|Täs kategouriis on vaiku tämä failu.| {{PLURAL:$1|Tämä failu on|$1 Nämmä failat ollah}} täs kategouries, $2 kaikkiedah.}}",
+       "listingcontinuesabbrev": "(jatko)",
+       "index-category": "Indeksiruitut sivut",
+       "noindex-category": "Indeksiruičemattomat sivut",
+       "broken-file-category": "Sivut, kudamil on ruadamattomii failulinkilöi",
+       "about": "Tieduo sovellukses",
+       "article": "Yhtevyssivu",
+       "newwindow": "(avata uvves ikkunas)",
+       "cancel": "Hylgiä",
+       "moredotdotdot": "Ližiä...",
+       "morenotlisted": "Tämä listu ei ole valmis.",
+       "mypage": "Sivu",
+       "mytalk": "Pagin",
+       "anontalk": "Paginsivutälle IP-adressile",
+       "navigation": "Navigatsii",
+       "and": "&#32;da",
+       "qbfind": "Eči",
+       "qbbrowse": "Livua",
+       "qbedit": "Korjata",
+       "qbpageoptions": "Tämä sivu",
+       "qbmyoptions": "Minun sivut",
+       "faq": "PKK",
+       "faqpage": "Project:PKK",
+       "actions": "Tevot",
+       "namespaces": "Nimitilat",
+       "variants": "Variantat",
+       "navigation-heading": "Navigatsii",
+       "errorpagetitle": "Haireh",
+       "returnto": "Mene järilleh sivule $1.",
+       "tagline": "Lähteh {{SITENAME}}",
+       "help": "Kyzy abuu",
+       "search": "Eči",
+       "searchbutton": "Eči",
+       "go": "Mennä",
+       "searcharticle": "Mene",
+       "history": "Kačo histourii",
+       "history_short": "Histourii",
+       "printableversion": "Tulostettavu versii",
+       "permalink": "Vagituine linki",
+       "print": "Pane bumuagale",
+       "view": "Kačo",
+       "view-foreign": "Kačo saital $1",
+       "edit": "Korjua",
+       "create": "Luaji",
+       "create-local": "Ližiä paikalline kuvavus",
+       "editthispage": "Korjua tädä sivuu",
+       "create-this-page": "Luaji tämä sivu",
+       "delete": "Ota iäre",
+       "deletethispage": "Ota tämä sivu iäre",
+       "undeletethispage": "Tuo sivu järilleh",
+       "protect": "Suojua",
+       "protect_change": "vaihta",
+       "protectthispage": "Suojua tämä sivu",
+       "unprotect": "Vaihta suojavustu",
+       "unprotectthispage": "Vaihta tämän sivun suojavustu",
+       "newpage": "Uuzi sivu",
+       "talkpage": "Pagize täh sivuh näh",
+       "talkpagelinktext": "Pagin",
+       "specialpage": "Erikoine sivu",
+       "personaltools": "Omat instrumentat",
+       "articlepage": "Ozuta syväindösivu",
+       "talk": "Paginat",
+       "views": "Kaččokerrat",
+       "toolbox": "Instrumentat",
+       "userpage": "Ozuta käyttäisivu",
+       "projectpage": "Ozuta projektusivu",
+       "imagepage": "Ozuta failusivu",
+       "mediawikipage": "Ozuta viestisivu",
+       "templatepage": "Ozuta šablonsivu",
+       "viewhelppage": "Ozuta ohjavosivu",
+       "categorypage": "Ozuta kategouriisivu",
+       "viewtalkpage": "Ozuta paginsivu",
+       "otherlanguages": "Toizil kielil",
+       "redirectedfrom": "(siirretty $1:späi)",
+       "redirectpagesub": "uvvellehohjavussivu",
+       "redirectto": "Uvvellehohjuau sivuh:",
+       "lastmodifiedat": "Tädä sivuu on muutettu jälgimäizen kerran $1, $2 aigah.",
+       "protectedpage": "Suojattu sivu",
+       "jumpto": "Siirry",
+       "jumptonavigation": "navigatsii",
+       "jumptosearch": "eči",
+       "pool-errorunknown": "Tundematoi haireh",
+       "poolcounter-usage-error": "Käyttöhaireh: $1",
+       "aboutsite": "Lähteh {{SITENAME}}",
+       "aboutpage": "Project:Kuvavus",
+       "copyrightpage": "{{ns:project}}:Luadijan oigevukset",
+       "currentevents": "Aijankohtazet tapahtumat",
+       "currentevents-url": "Project:Aijankohtazet tapahtumat",
+       "disclaimers": "Kieldävymine vastuos",
+       "disclaimerpage": "Project:Vastuos kieldävymine",
+       "edithelp": "Abu korjuamizeh",
+       "helppage-top-gethelp": "Kyzyö abuu",
+       "mainpage": "Piäsivu",
+       "mainpage-description": "Piäsivu",
+       "portal": "Yhtevyksen portualu",
+       "portal-url": "Project:Portualu",
+       "privacy": "Luottamuksen periuateh",
+       "privacypage": "Project:Luottamuksen periuateh",
+       "versionrequired": "MediiWikis pidäy vähimyölleh versii $1",
+       "versionrequiredtext": "MediiWikis pidäy vähimyölleh versii $1 tädä sivuu kaččojes. Kačo [[Special:Version|versii]].",
+       "ok": "OK",
+       "retrievedfrom": "Lähteh - \"$1\"",
+       "youhavenewmessages": "{{PLURAL:$3|Sinule on}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Sinule on}} $1 {{PLURAL:$3|toizel käyttäjälpäi|$3 käyttäjältä}} ($2).",
+       "youhavenewmessagesmanyusers": "Sinule on $1 uuzii viestilöi monil käyttäjilpäi ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|uuzi viesti|999=uuzii viestilöi}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|jälgimäine muutos|jälgimästy muutostu}}",
+       "youhavenewmessagesmulti": "Sinul on uuzii viestilöi sivuloil $1",
+       "editsection": "Korjua",
+       "editold": "korjua",
+       "viewsourceold": "Kačo algukoodu",
+       "editlink": "korjua",
+       "viewsourcelink": "Kačo algukoodu",
+       "editsectionhint": "Korjua tädä kohtua: $1",
+       "toc": "Sizäldö",
+       "showtoc": "ozuttua",
+       "hidetoc": "peittiä",
+       "collapsible-expand": "Levitä",
+       "confirmable-confirm": "{{GENDER:$1|Oletgo}} varmu?",
+       "confirmable-yes": "Muga",
+       "confirmable-no": "Ei",
+       "viewdeleted": "Ozuta $1?",
+       "restorelink": "{{PLURAL:$1|yksi iäre otettu edituičendu|$1 iäre otettuu edituičendua}}",
+       "feedlinks": "Syöteh:",
+       "site-rss-feed": "$1 (RSS-syöteh)",
+       "site-atom-feed": "$1 Atom-lentu",
+       "page-rss-feed": "$1 (RsS-syöteh)",
+       "page-atom-feed": "$1 Atom-lentu",
+       "red-link-title": "$1 (sivuu ei lövvy)",
+       "nstab-main": "Sivu",
+       "nstab-user": "Käyttäisivu",
+       "nstab-media": "Mediisivu",
+       "nstab-special": "Erikoine sivu",
+       "nstab-project": "Projektusivu",
+       "nstab-image": "Failu",
+       "nstab-mediawiki": "Viesti",
+       "nstab-template": "Šablon",
+       "nstab-help": "Abusivu",
+       "nstab-category": "Kategourii",
+       "mainpage-nstab": "Piäsivu",
+       "nosuchaction": "Nengostu toiminduo ei ole",
+       "error": "Haireh",
+       "databaseerror": "Tiedokanduhaireh",
+       "databaseerror-query": "Kyzely: $1",
+       "databaseerror-function": "Funkcii:$1",
+       "databaseerror-error": "Haireh: $1",
+       "readonly": "Tiedokandu lukuttu",
+       "missingarticle-rev": "(versii № $1)",
+       "missingarticle-diff": "(Ero: $1, $2)",
+       "internalerror": "Syväindölline haireh",
+       "internalerror_info": "Syväindölline haireh: $1",
+       "filecopyerror": "Failua \"$1\" ei voitu kopiruija failakse \"$2\".",
+       "filerenameerror": "Ei voi uvvellehnimittoä \"$1\"-failua nimele \"$2\".",
+       "filedeleteerror": "Failua \"$1\" ei voitu ottua iäre.",
+       "directorycreateerror": "Ei voi luadie al'bomua \"$1\".",
+       "directoryreadonlyerror": "Al'bom $1 on kirjutussuojattu.",
+       "directorynotreadableerror": "Al'bom $1 ei ole lugiettavis.",
+       "filenotfound": "Failua \"$1\" ei lövvetty.",
+       "badarticleerror": "Tädä toimindua ei voi ruadua täl sivul.",
+       "cannotdelete": "Sivuu libo failua \"$1\" ei voi ottua iäre. Kentah toine on jo toinah ottanuh sen iäre.",
+       "cannotdelete-title": "Ei voi ottua iäre sivuu \"$1\"",
+       "badtitle": "Paha rubriekku",
+       "badtitletext": "Kyzelyn rubriekku oli pädemätöi, tyhjy, libo viärin linkitetty kielienväline libo wikienväline rubriekku. \nSit voibi olla yksi libo enämbi merkii, kudamua ei voi käyttiä rubriekas.",
+       "title-invalid-talk-namespace": "Kyzytyn sivun nimi ohjuau nengozeh paginsivuh, kudamua ei ole olemas.",
+       "title-invalid-characters": "Kyzytyn sivun nimes on pädemättömii merkilöi: ”$1”.",
+       "viewsource": "Kačo",
+       "viewsource-title": "Ozuta sivun $1 lähteh",
+       "viewsourcetext": "Voit kaččuo da kopiruija tämänsivun lähtehen.",
+       "viewyourtext": "Voit kaččuo da kopiruija <strong>sinun kohenduksien</strong> lähtehii täl sivul.",
+       "namespaceprotected": "Sinul ei ole oigevuksii kohendua sivuloi nimitilas <strong>$1</strong>.",
+       "mycustomcssprotected": "Sinul ei ole oigevuksii edituija tädä syväindönhalličendusistieman sivuu.",
+       "mycustomjsprotected": "Sinul ei ole oigevuksii edituija tädä JavaScript-sivuu.",
+       "exception-nologin": "Ei ole kirjutannuhes",
+       "virus-scanfailed": "skanniruičendu ei ozavunnu (koudu $1)",
+       "welcomeuser": "Tule terveh, $1!",
+       "yourname": "Käyttäinimi:",
+       "userlogin-yourname": "Käyttäinimi",
+       "userlogin-yourname-ph": "Kirjuta sinun käyttäinimi",
+       "createacct-another-username-ph": "Kirjuta käyttäitunnus",
+       "yourpassword": "Peittosana:",
+       "userlogin-yourpassword": "Peittosana",
+       "userlogin-yourpassword-ph": "Kirjuta sinun peittosana",
+       "createacct-yourpassword-ph": "Kirjuta peittosana",
+       "yourpasswordagain": "Kirjuta peittosana myös:",
+       "createacct-yourpasswordagain": "Lujenda peittosana",
+       "createacct-yourpasswordagain-ph": "Myös kirjuta peittosana",
+       "userlogin-remembermypassword": "Pie minut kirjutannuhuonnu",
+       "userlogin-signwithsecure": "Käytä suojattuu yhtevytty",
+       "yourdomainname": "Sinun domain:",
+       "password-change-forbidden": "Et voi vaihtua peittosanoi täs wikis.",
+       "login": "Kirjuttai",
+       "nav-login-createaccount": "Kirjuttai libo registriiruiččei",
+       "userlogin": "Kirjuttai libo registriiruiččei",
+       "userloginnocreate": "Kirjuttai",
+       "logout": "Kirjuttai ullos",
+       "userlogout": "Kirjuttai ullos",
+       "notloggedin": "Ei kirjutannuhes",
+       "userlogin-noaccount": "Ei ole tilii?",
+       "userlogin-joinproject": "Yhty {{SITENAME}}",
+       "nologin": "Ei ole tilii? $1",
+       "nologinlink": "Luaji tili",
+       "createaccount": "Registriiruiččei",
+       "gotaccount": "Ollou sinul jo tunnus? $1",
+       "gotaccountlink": "Kirjuttai",
+       "userlogin-resetlink": "Unohtitgo sinun käyttäinimen/peittosanan?",
+       "userlogin-resetpassword-link": "Unohtitgo sinun peittosanan?",
+       "userlogin-helplink2": "Abuu ku kirjuttuakseh",
+       "userlogin-loggedin": "Olet jo kirjutannuhes nimel {{GENDER:$1|$1}}.\nKäytä al olijua ankiettua ku kirjuttuakseh eri käyttäjänny.",
+       "userlogin-createanother": "Luaji toine tili",
+       "createacct-emailrequired": "Sähköpoštuadressu",
+       "createacct-emailoptional": "Sähköpoštuadressu (ei vältämätöi)",
+       "createacct-email-ph": "Kirjuta sinun sähköpoštuadressu",
+       "createacct-another-email-ph": "Kirjuta sinun sähköpoštuadressu",
+       "createacct-realname": "Tovelline nimi (omatahtoine tiedo)",
+       "createacct-reason-ph": "Mindäh olet luadimas tostu käyttäitilii",
+       "createacct-captcha": "Turvallizusvarmistus",
+       "createacct-imgcaptcha-ph": "Kirjuta ylähän olii tekstu",
+       "createacct-submit": "Luaji tili",
+       "createacct-another-submit": "Luaji toine tili",
+       "createacct-benefit-heading": "Sivun {{SITENAME}} ollah luajittu sinunjyttymät rahvas.",
+       "createacct-benefit-body1": "{{PLURAL:$1|kohennus|kohendustu}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|sivu|sivuu}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|Jälgimäime käyttäi|Jälgimäzet käyttäjät}}",
+       "badretype": "Sinun kirjutetut peittosanat ei oldu yhtenjyttymät.",
+       "loginerror": "Kirjuttuanduhaireh",
+       "createacct-error": "Haireh käyttäitunnuksen luadimizes",
+       "createaccounterror": "Ei voinuh luadie tilii: $1",
+       "loginsuccess": "<strong>Olet kirjutannuhes sivule {{SITENAME}} käyttäitunnuksel \"$1\".</strong>",
+       "nosuchusershort": "Ei ole käyttäjiä nimel \"$1\". Tarkista kirjutitgo oigein.",
+       "nouserspecified": "Käyttäinimi pidäy.",
+       "login-userblocked": "Tämä käyttäi on estetty. Ei oigevuttu kirjuttuakseh.",
+       "wrongpassword": "Kirjutit viärän peittosanan. Ole hyvä, opi vie kerdu.",
+       "wrongpasswordempty": "Et voi jättiä peittosanua tyhjäkse. Ole hyvä, opi vie kerdu.",
+       "passwordtooshort": "Peittosanal pidäy olla piduhuttu vähimyölleh {{PLURAL:$1|yksi merki|$1 merkii}}.",
+       "passwordtoolong": "Peittosana ei voi olla pitkembi $1 {{PLURAL:$1|merkii}}.",
+       "password-name-match": "Peittosana pidäy olla eri migu käyttäinimi.",
+       "password-login-forbidden": "Tämän käyttäinimen da peittosanan käyttö on estetty.",
+       "mailmypassword": "Azeta peittosana uvvelleh",
+       "passwordremindertitle": "Uusi väliaigaine peittosana {{SITENAME}}-sivuh niškoi",
+       "passwordremindertext": "Kentah IP-adressispäi $1 kyzyi työndämäh uuttu peittosanua saitale {{SITENAME}} ($4). Väliaigaine peittosana käyttäjäle $2 on nygöi $3. Kirjuttai da vaihta peittosana. Väliaigaine peittosana vahnenou {{PLURAL:$5|yhten päivän|$5 päivän}} jälles.\n\nOllou kentah toine työndänyh tämän pakičuksen, libo ku ollet mustanuh sinun peittosanan da et tahto vaihtua sidä, voit jättiä tämän viestin huomivottah dajatkua vahnan peittosanan käyttyö.",
+       "mailerror": "Haireh työndäjes sähköpoštua: $1",
+       "accountcreated": "Tili luajittu",
+       "loginlanguagelabel": "Kieli: $1",
+       "pt-login": "Kirjuttai",
+       "pt-login-button": "Kirjuttai",
+       "pt-createaccount": "Registriiruiččei",
+       "pt-userlogout": "Kirjuttai ullos",
+       "user-mail-no-addy": "Opit työndiä sähköpoštan sähköpoštuadressittah.",
+       "changepassword": "Vaihta peittosana",
+       "resetpass_header": "Vaihta tilin peittosana",
+       "oldpassword": "Vahnu peittosana:",
+       "newpassword": "Uuzi peittosana:",
+       "changepassword-success": "Sinun peittosana on vaihtettu!",
+       "resetpass_forbidden": "Ei voi vaihtua peittosanua",
+       "resetpass-no-info": "Et voi nähtä tädä sivuu kuni et ole kirjutannuhes.",
+       "resetpass-submit-loggedin": "Vaihta peittosana",
+       "resetpass-submit-cancel": "Hyllätä",
+       "resetpass-recycled": "Ole hyvä, valliče uvvekse peittosanakse eri migu nygöine peittosana.",
+       "resetpass-temp-password": "Väliaigaine peittosana:",
+       "resetpass-expired": "Sinun peittosana on vahnennuh. Ole hyvä, luaji uuzi peittosana ku kirjuttuakseh.",
+       "passwordreset": "Azeta peittosana uvvelleh",
+       "passwordreset-username": "Käyttäinimi:",
+       "passwordreset-domain": "Domain:",
+       "passwordreset-email": "Sähköpoštuadressu:",
+       "passwordreset-emailelement": "Käyttäinimi: \n$1\n\nVäliaigaine peittosana: \n$2",
+       "changeemail": "Vaihta sähköpoštuadressu",
+       "changeemail-oldemail": "Nygöine sähköpoštuadressu:",
+       "changeemail-newemail": "Uuzi sähköpoštuadressu:",
+       "changeemail-none": "(niyhty)",
+       "changeemail-password": "Sinun {{SITENAME}}-peittosana:",
+       "changeemail-submit": "Vaihta sähköpoštu",
+       "changeemail-throttled": "Olet oppinuh kirjuttuakseh liijan moni kerdua. Ole hyvä, vuota $1 enne ku opit uvvelleh.",
+       "resettokens-tokens": "Avaimet:",
+       "bold_sample": "Lihavoitu tekstu",
+       "bold_tip": "Lihavoitu tekstu",
+       "italic_sample": "Kursivoitu tekstu",
+       "italic_tip": "Kursivoitu tekstu",
+       "link_sample": "Linkan nimi",
+       "link_tip": "Sižähine linku",
+       "extlink_sample": "http://www.example.com linkan nimi",
+       "extlink_tip": "Ulgohine linku (musta http:// alguh)",
+       "headline_sample": "Rubriekkutekstu",
+       "headline_tip": "Tazon 2 rubriekku",
+       "nowiki_sample": "Ližiä täh tekstu, kudamua ei pie korjata",
+       "nowiki_tip": "Älä puutu wiki-korjavuksih",
+       "image_tip": "Upotettu failu",
+       "media_tip": "Linki failah",
+       "sig_tip": "Teijän allekirjutus da aigu",
+       "hr_tip": "Horizontualine viivu (älä käytä liijakse)",
+       "summary": "Yhtehvedo:",
+       "subject": "Tiemu/rubriekku:",
+       "minoredit": "Tämä on pieni korjavus",
+       "watchthis": "Tarkaile tädä sivuu",
+       "savearticle": "Tallenda sivu",
+       "preview": "Ezikačo",
+       "showpreview": "Ezikaččo",
+       "showdiff": "Luajitut korjavukset",
+       "anoneditwarning": "<strong>Varaitus:</strong> Et ole kirjutannuhes. Luadinet muutoksii syväindölöih, sinun Ip-adressu tulou nägövih kaikile. Ku <strong>[$1 kirjutannuttos]</strong> libo <strong>[$2 registriiruičettos]</strong>, sinun syväindömuutokset nävytäh sinun käyttäinimel, toizien eduloin ližäkse.",
+       "blockedtitle": "Käyttäi on estetty",
+       "blockednoreason": "ei viärysty annettu",
+       "loginreqlink": "kirjuttai",
+       "accmailtitle": "Peittosana työtty",
+       "newarticle": "(Uuzi)",
+       "newarticletext": "Olet puutunuh sivule, kudamua ei ole vie. Ku luadie sivu, zavodi kirjuttua al olijah juaššiekkah (kačo [$1 help page] ku suaha ližätieduo).\nKu puutuit tänne petties, painalda sinun livaimen <strong>järilleh</strong>-nyblyä.",
+       "noarticletext": "Täl sivul ei ole juuri nygöi tekstua.\nVoit [[Special:Search/{{PAGENAME}}|eččie sivun nimel]] toizis sivuloispäi,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} eččie sidä koskijua logua],\nlibo [{{fullurl:{{FULLPAGENAME}}|action=edit}} korjata tädä sivuu]</span>.",
+       "noarticletext-nopermission": "Täl sivul ei ole tekstua.\nVoit [[Special:Search/{{PAGENAME}}|eččie sivun nimel]] toizis sivuloispäi, libo <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} eččie sivuu koskijua logua]</span>, ga sinul ei ole oigevuksii luadie tädä sivuu.",
+       "updated": "(Päivitetty)",
+       "editing": "Edituijah sivuu $1",
+       "creating": "Luajitah sivuu \"$1\"",
+       "editingsection": "Korjuandu $1 (alalugu)",
+       "yourtext": "Sinun tekstu",
+       "yourdiff": "Erot",
+       "templatesused": "{{PLURAL:$1|Šablon|Šablonat}} käytetty täl sivul:",
+       "template-protected": "(suojattu)",
+       "template-semiprotected": "(puolekse suojattu)",
+       "hiddencategories": "Tämä sivu kuuluu {{PLURAL:$1|1 peitettyh kategourieh|$1 peitettyh kategourieh}}:",
+       "permissionserrorstext-withaction": "Sinul ei ole lubua toimindoh $2 niškoi, {{PLURAL:$1|tämän syyn periä|nämmien syylöin periä}}:",
+       "moveddeleted-notice": "Tämä sivu on otettu iäre. Sivun iäreotandu- da siirdohistourii ollah annettu al viittavuksennu.",
+       "postedit-confirmation-saved": "Sinun kohendus tallendettih.",
+       "content-model-wikitext": "wikitekstu",
+       "content-model-text": "perustekstu",
+       "content-model-javascript": "JavaScript",
+       "content-json-empty-object": "Tyhjy objektu",
+       "viewpagelogs": "Ozuta tämän sivun logat",
+       "currentrev": "Jälgimäzin versii",
+       "currentrev-asof": "Sivun $1 jälgimäzin versii",
+       "revisionasof": "Versii $1",
+       "revision-info": "Versii $1 {{GENDER:$6|$2}}$7",
+       "previousrevision": "← Edelline",
+       "nextrevision": "Uvvembi versii →",
+       "currentrevisionlink": "Jälgimäine versii",
+       "cur": "nygöine",
+       "next": "tulii",
+       "last": "iel",
+       "page_first": "enzimäine",
+       "page_last": "jälgimäine",
+       "histfirst": "vahnin",
+       "histlast": "uuzin",
+       "historyempty": "(tyhjy)",
+       "rev-delundel": "vaihta nägyvys",
+       "rev-showdeleted": "ozuttua",
+       "revdelete-show-file-submit": "Muga",
+       "revdelete-radio-same": "(älä vaihta)",
+       "revdelete-radio-set": "Peitetty",
+       "revdelete-radio-unset": "Nägövil",
+       "pagehist": "Sivuhistourii",
+       "history-title": "Sivun \"$1\" versiihistourii",
+       "difference-title": "Sivun \"$1\" versielöin eroloi",
+       "lineno": "Rivi $1:",
+       "editundo": "Hylgiä",
+       "diff-multi-sameuser": "({{PLURAL:$1|Yksi keskitazon versii |$1 keskitazon versiedy}} samal käyttäjälpäi ei ozutettu)",
+       "searchresults": "Eččimizen tulokset",
+       "searchresults-title": "Eči \"$1\"",
+       "prevn": "ielline {{PLURAL:$1|$1}}",
+       "nextn": "tulii {{PLURAL:$1|$1}}",
+       "prev-page": "ielline sivu",
+       "next-page": "tulii sivu",
+       "nextn-title": "Tulii $1 {{PLURAL:$1|tulos|tulokset}}",
+       "shown-title": "Ozuttua $1 {{PLURAL:$1|tulos|tulostu}} sivul",
+       "viewprevnext": "Ozuta ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-new": "<strong>Luaji sivu \"[[:$1]]\" täh wikih!</strong> {{PLURAL:$2|0=|Kačo sežo sinun eččol löytyt sivut.|Kačo sežo löytyt eččon tulokset.}}",
+       "searchprofile-articles": "Yhtevyssivu",
+       "searchprofile-images": "Multimedii",
+       "searchprofile-everything": "Kaikkiel",
+       "searchprofile-advanced": "Eči tarkembah",
+       "searchprofile-articles-tooltip": "Eči kohtas $1",
+       "searchprofile-images-tooltip": "Eči failat",
+       "searchprofile-everything-tooltip": "Eči kaikil sivuloil (dai paginois)",
+       "searchprofile-advanced-tooltip": "Eči nämmien nimitiloin keskes",
+       "search-result-size": "$1 ({{PLURAL:$2|1 sana|$2 sanua}})",
+       "search-redirect": "(siirretty $1)",
+       "search-section": "(alalugu $1)",
+       "search-suggest": "Tarkoititgo: $1",
+       "search-interwiki-more": "(enämbi)",
+       "search-relatedarticle": "Eči yhtenjyttymii sivuloi",
+       "searchrelated": "yhtenjyttymät",
+       "searchall": "kai",
+       "search-showingresults": "{{PLURAL:$4|Tulos <strong>$1</strong> / <strong>$3</strong>|Tulokset <strong>$1 - $2</strong> / <strong>$3</strong>}}",
+       "search-nonefound": "Kyzelyh ei löydynyh tuloksii.",
+       "powersearch-legend": "Levitetty eččo",
+       "powersearch-togglelabel": "Valliče:",
+       "powersearch-toggleall": "Kai",
+       "powersearch-togglenone": "Nimidä",
+       "mypreferences": "Azetukset",
+       "prefs-edits": "Edituičendoi kaikkiedah:",
+       "prefs-skin": "Kettu",
+       "prefs-user-pages": "Käyttäisivut",
+       "prefs-watchlist": "Valvondulistu",
+       "prefs-resetpass": "Vaihta peittosana",
+       "prefs-changeemail": "Vaihta sähköpoštuadressu",
+       "prefs-setemail": "Kirjuta sähköpoštuadressu",
+       "saveprefs": "Tallenda",
+       "rows": "Riädyy:",
+       "searchresultshead": "Eččie",
+       "timezoneregion-africa": "Afrikku",
+       "timezoneregion-america": "Amerikku",
+       "timezoneregion-antarctica": "Antarktikku",
+       "timezoneregion-arctic": "Artikku",
+       "timezoneregion-asia": "Aazii",
+       "timezoneregion-atlantic": "Atlantine valdumeri",
+       "timezoneregion-australia": "Australii",
+       "timezoneregion-europe": "Jevrouppu",
+       "timezoneregion-indian": "Indien meri",
+       "timezoneregion-pacific": "Tyyni valdumeri",
+       "prefs-searchoptions": "Eččie",
+       "prefs-namespaces": "Nimilöin tilat",
+       "youremail": "Sähköpoštu:",
+       "username": "{{GENDER:$1|Käyttäinimi}}:",
+       "yourlanguage": "Kieli:",
+       "yournick": "Uuzi allekirjutus:",
+       "yourgender": "Sugupuoli:",
+       "gender-unknown": "Jätän valličemattah",
+       "gender-male": "Mies",
+       "gender-female": "Naine",
+       "prefs-help-gender": "Tämän azetuksen valliččemine on omatahtostu.\nProgrammu käyttäy annettuu tieduo, ku viitata sinuh oigiel kieliopillizel terminäl. \nTämä tiedo on julgine.",
+       "email": "Sähköpoštu",
+       "prefs-help-realname": "Oigien nimen andamine on omatahtostu.\nOllou annettu, sidä voijah käyttiä luadijan sanelendah.",
+       "prefs-help-email": "Sähköpoštuadresan andamine on omatahtostu, no se pidäy ku kyzyö uuzi peittosana, ku unohtannet sinun peittosanan.",
+       "prefs-help-email-required": "Sähköpoštuadressu vältämättäh pidäy.",
+       "prefs-info": "Perustiijot",
+       "prefs-signature": "Allekirjutus",
+       "prefs-advancedrc": "Ližäazetukset",
+       "prefs-advancedrendering": "Ližäazetukset",
+       "prefs-advancedsearchoptions": "Ližäazetukset",
+       "prefs-advancedwatchlist": "Ližäazetukset",
+       "prefs-tokenwatchlist": "Avain",
+       "userrights-user-editname": "Kirjuta käyttäitunnus:",
+       "userrights-groupsmember": "Yhtynnyönny joukkoloih:",
+       "group-user": "Käyttäjät",
+       "group-all": "(kai)",
+       "right-read": "Lugie sivuloi",
+       "right-edit": "Edituija sivuloi",
+       "right-createpage": "Luadie sivuloi (kudamat ei olla paginsivuloi)",
+       "right-createtalk": "Luadie paginsivuloi",
+       "right-createaccount": "Luadie uuzii käyttäitunnuksii",
+       "right-minoredit": "Merkitä edituičendoi pienikse",
+       "right-move": "Siirrä sivut",
+       "right-move-subpages": "Siirrä sivut alisivuloinke",
+       "right-move-rootuserpages": "Siirdiä käyttäisivuloi",
+       "right-move-categorypages": "Siirdiä kategouriisivuloi",
+       "right-movefile": "Siirdiä failoi",
+       "right-writeapi": "Käytä API:i",
+       "newuserlogpage": "Uuzien käyttäjien luvettelo",
+       "action-read": "luve tämä sivu",
+       "action-move": "siirrä tämä sivu",
+       "action-move-subpages": "siirrä tämä sivu, da sen alisivut",
+       "action-movefile": "siirrä tämä failu",
+       "enhancedrc-history": "histourii",
+       "recentchanges": "Uvvet korjavukset",
+       "recentchanges-legend": "Tuorehien muutoksien azetukset",
+       "recentchanges-summary": "Jällitä kaikkii jälgimäzet muutokset wikih täl sivul.",
+       "recentchanges-label-newpage": "Tämä korjavus on johtanuh uvven sivun luadimizeh",
+       "recentchanges-label-minor": "Tämä on pieni korjavus",
+       "recentchanges-label-bot": "Tämän muutoksen on luadinuh bot",
+       "recentchanges-label-unpatrolled": "Tädä korjuandua vie ei ole tarkistettu",
+       "recentchanges-label-plusminus": "Sivu on kazvanuh [] baital",
+       "recentchanges-legend-heading": "'''Legendu:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (kačo sežo [[Special:NewPages|uuzien sivuloin listu]])",
+       "rclistfrom": "Ozuta jälgimäzet muutokset algajen $2, $3",
+       "rcshowhideminor": "$1 pienet muutokset",
+       "rcshowhideminor-show": "Ozuta",
+       "rcshowhideminor-hide": "Peitä",
+       "rcshowhidebots": "$1 botat",
+       "rcshowhidebots-show": "Ozuta",
+       "rcshowhidebots-hide": "Peitä",
+       "rcshowhideliu": "$1 registruittuu käyttäjiä",
+       "rcshowhideliu-hide": "Peitä",
+       "rcshowhideanons": "$1 anoniimua käyttäjiä",
+       "rcshowhideanons-show": "Ozuta",
+       "rcshowhideanons-hide": "Peitä",
+       "rcshowhidepatr-show": "Ozuttua",
+       "rcshowhidepatr-hide": "Peittiä",
+       "rcshowhidemine": "$1 minun kohendukset",
+       "rcshowhidemine-show": "Ozuta",
+       "rcshowhidemine-hide": "Peitä",
+       "rclinks": "Ozuta jälgimäzet $1 muutostu jälgimäzen $2 päivän aijannu<br />$3",
+       "diff": "erot",
+       "hist": "Histourii",
+       "hide": "Peitä",
+       "show": "Ozuta",
+       "minoreditletter": "p",
+       "newpageletter": "U",
+       "boteditletter": "b",
+       "rc-change-size-new": "Kogo jälles muutoksii: $1 {{PLURAL:$1|baitu|baitua}}",
+       "recentchangeslinked": "Koskijat muutokset",
+       "recentchangeslinked-toolbox": "Toine toizeh liittyjät korjavukset",
+       "recentchangeslinked-title": "Muutokset koskijen sivuu \"$1\"",
+       "recentchangeslinked-summary": "Tämä on nengomien sivuloin korjavuksien luvettelo, kudamih viittuau tämä sivu (libo sih kategourieh kuulujat).Sivut, kudamat kuulutah [[Special:Watchlist|teijän valvonduluvettelo]], ollah  <strong>bold</strong>.",
+       "recentchangeslinked-page": "Sivun nimi:",
+       "recentchangeslinked-to": "Ozuta linkitetyn sivun muutokset annetun sivun sijah",
+       "upload": "Ližiä tiijosto",
+       "filedesc": "Yhtehvedo",
+       "fileuploadsummary": "Yhtehvedo:",
+       "filereuploadsummary": "Muutokset failah:",
+       "filesource": "Lähteh:",
+       "filename-tooshort": "Failunimi on liijan lyhyt.",
+       "watchthisupload": "Valvo tädä failua",
+       "upload-dialog-button-save": "Tallenda",
+       "upload-dialog-label-infoform-title": "Tiijot",
+       "upload-dialog-label-infoform-name": "Nimi",
+       "upload-dialog-label-infoform-description": "Kuvavus",
+       "upload-dialog-label-usage-title": "Käyttö",
+       "upload-dialog-label-usage-filename": "Failunimi",
+       "license-header": "Licenzii",
+       "imgfile": "tiijosto",
+       "listfiles_name": "Nimi",
+       "listfiles_user": "Käyttäi",
+       "listfiles_size": "Kogo",
+       "listfiles_description": "Kuvavus",
+       "listfiles_count": "Versii",
+       "listfiles-latestversion": "Nygöine versii",
+       "listfiles-latestversion-yes": "Muga",
+       "listfiles-latestversion-no": "Ei",
+       "file-anchor-link": "Failu",
+       "filehist": "Kačo histourii",
+       "filehist-help": "Klikkua päivymiäriä/aigua kaččuo, mittuine failu oli silloi",
+       "filehist-current": "Nygöine",
+       "filehist-datetime": "Päivymiäry/aigu",
+       "filehist-thumb": "Kuvahaine",
+       "filehist-thumbtext": "Pieni kogo versieh $1",
+       "filehist-user": "Käyttäi",
+       "filehist-dimensions": "Kogo",
+       "filehist-comment": "Huomahtus",
+       "imagelinks": "Failan käyttö",
+       "linkstoimage": "{{PLURAL:$1|Tämä sivu linkittähes|$1 Nämmä sivut linkittiäkseh}} täh failah:",
+       "nolinkstoimage": "Täh tiijostoh viittuajua sivuu ei ole.",
+       "sharedupload-desc-here": "Tädä failua $1 ymbäristös voibi sežo käyttiä toizis projektois.\nSen kuvavus [$2 sivun kuvavuksen] on alemba.",
+       "upload-disallowed-here": "Et voi kirjuttua tämän failan piäle.",
+       "randompage": "Sattumanvaraine sivu",
+       "statistics": "Statistiekat",
+       "statistics-header-pages": "Sivustatistiekat",
+       "statistics-header-users": "Käyttäistatistiekat",
+       "statistics-header-hooks": "Toizet statistiekat",
+       "statistics-articles": "Syväindösivut",
+       "statistics-pages": "Sivut",
+       "nbytes": "$1 {{PLURAL:$1|baitu|baitua}}",
+       "nmembers": "$1 {{PLURAL:$1|käyttäi|käyttäjiä}}",
+       "newpages": "Uvvet sivut",
+       "newpages-username": "Käyttäinimi:",
+       "ancientpages": "Vahnimat sivut",
+       "move": "Siirrä",
+       "movethispage": "Siirrä tämä sivu",
+       "pager-older-n": "{{PLURAL:$1|vahnembi 1|vahnembi $1}}",
+       "booksources": "Kniigulähtehet",
+       "booksources-search-legend": "Eči kniigulähtehii",
+       "booksources-search": "Eči",
+       "log": "Logat",
+       "allpages": "Kai sivut",
+       "nextpage": "Tulii sivu ($1)",
+       "prevpage": "Ielline sivu ($1)",
+       "allarticles": "Kai sivut",
+       "allpagessubmit": "Mene",
+       "categories": "Kategouriet",
+       "emailusername": "Käyttäinimi:",
+       "emailfrom": "Kespäi:",
+       "emailto": "Kelle:",
+       "emailsubject": "Teema:",
+       "emailmessage": "Viesti:",
+       "emailsend": "Työnnä",
+       "emailccme": "Työnnä minule koupii viestis.",
+       "watchlist": "Valvonduluvettelo",
+       "mywatchlist": "Valvonduluvettelo",
+       "addwatch": "Ližiä valvondulistah",
+       "watch": "Valvo",
+       "watchthispage": "Valvo tädä sivuu",
+       "unwatch": "Lope valvondu",
+       "unwatchthispage": "Lope valvondu",
+       "watching": "Valvotah...",
+       "unwatching": "Ei valvota...",
+       "dellogpage": "Iäreotanduhistourii",
+       "rollbacklink": "Tuo endine versii",
+       "rollbacklinkcount": "mene järilleh $1 {{PLURAL:$1|edituičendu|edituičendua}}",
+       "protectlogpage": "Suojavushistourii",
+       "undelete-show-file-submit": "Muga",
+       "namespace": "Nimitilat:",
+       "invert": "Piänvastaine valličendu",
+       "tooltip-invert": "Tahtonet peittiä tämän sivun muutokset vallitul nimitilal, valliče tämä kohtu.",
+       "namespace_association": "Liittyjät nimitilat",
+       "tooltip-namespace_association": "Tahtonet kerale sežo vallittuh nimitilah liittyjät pagin- libo tiemunimitilat, valliče tämä kohtu.",
+       "blanknamespace": "(Piä)",
+       "contributions": "{{GENDER:$1|Käyttäi}} kirjutukset",
+       "mycontris": "Kirjutukset",
+       "month": "Täs kuus (libo aijembi)",
+       "year": "Tänävuon (libo aijembi):",
+       "whatlinkshere": "Linkit tänne",
+       "whatlinkshere-title": "Sivut, kudamat kosketah sivuu \"$1\"",
+       "whatlinkshere-page": "Sivu:",
+       "linkshere": "Nämmä sivut linkittiäkseh sivuh <strong>[[:$1]]</strong>:",
+       "isredirect": "uvvellehohjavussivu",
+       "istemplate": "sižällyttämine",
+       "isimage": "failan linku",
+       "whatlinkshere-prev": "{{PLURAL:$1|ielline|ielline $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|tulii|tulii $1}}",
+       "whatlinkshere-links": "← linkat",
+       "whatlinkshere-hideredirs": "$1 uvvellehohjavukset",
+       "whatlinkshere-hidetrans": "$1 sižällyttämizet",
+       "whatlinkshere-hidelinks": "$1 linkat",
+       "whatlinkshere-filters": "Filtrat",
+       "blocklink": "Lukiče",
+       "contribslink": "korjavukset",
+       "movelogpage": "Siirrä loga",
+       "export": "Vie sivut",
+       "allmessages-language": "Kieli:",
+       "allmessages-filter-submit": "Mene",
+       "allmessages-filter-translate": "Kiännä",
+       "thumbnail-more": "Suurendua",
+       "filemissing": "Failua ei ole",
+       "tooltip-pt-userpage": "Sinun käyttäisivu",
+       "tooltip-pt-mytalk": "Sinun paginsivu",
+       "tooltip-pt-preferences": "Sinun azetukset",
+       "tooltip-pt-watchlist": "Listu sivulois kudamien muutoksii valvot",
+       "tooltip-pt-mycontris": "Listu sinun kirjutuksis",
+       "tooltip-pt-login": "Täs voibi registriiruijakseh, ga se ei ole vältämätöi",
+       "tooltip-pt-logout": "Kirjuttai ullos",
+       "tooltip-pt-createaccount": "Voit registriiruijakseh da kirjuttuakseh järjestelmäh, ga se ei ole vältämätöi",
+       "tooltip-ca-talk": "Pagize piäsivun sizäldös",
+       "tooltip-ca-edit": "Korjua tädä sivuu",
+       "tooltip-ca-addsection": "Luaji uuzi alalugu",
+       "tooltip-ca-viewsource": "Tämä sivu on suojattu. Voit kaččuo sen lähtehkoudan",
+       "tooltip-ca-history": "Tämän sivun jälgimäzet muutokset",
+       "tooltip-ca-move": "Siirrä tämä sivu",
+       "tooltip-ca-watch": "Ližiä tämä sivu omah valvonduluvetteloh",
+       "tooltip-search": "Eči {{SITENAME}}",
+       "tooltip-search-go": "Mennä sivule, kudamal on sama nimi",
+       "tooltip-search-fulltext": "Eči sivuloi, kudamis on tädä tekstua",
+       "tooltip-p-logo": "Mene piäsivule",
+       "tooltip-n-mainpage": "Mene piäsivule",
+       "tooltip-n-mainpage-description": "Mene piäsivule",
+       "tooltip-n-portal": "Täs projektas, midä voit ruadua, kus midä on",
+       "tooltip-n-currentevents": "Ližätieduo aijankohtazis tapahtumis",
+       "tooltip-n-recentchanges": "Luvettelo vaste luajittulois wikimuutoksis",
+       "tooltip-n-randompage": "Kačo sattumastu sivuu",
+       "tooltip-n-help": "Täs voit kyzyö abuu",
+       "tooltip-t-whatlinkshere": "Kaikkien sivuloin luvettelo, kudamis on linki täh sivuh",
+       "tooltip-t-recentchangeslinked": "Jälgimäzet muutokset sivuloil, kudamile on linki täl sivul",
+       "tooltip-feed-atom": "Atom-syöttö täh sivuh",
+       "tooltip-t-contributions": "Listu tämän käyttäjän kirjutuksis",
+       "tooltip-t-upload": "Ližiä tiijostot",
+       "tooltip-t-specialpages": "Kaikkien erikozien sivuloin luvettelo",
+       "tooltip-t-print": "Tämän sivun tulostettavu versii",
+       "tooltip-t-permalink": "Pyzyi linki tämän sivun versieh",
+       "tooltip-ca-nstab-main": "Kačo piäsivun sizäldö",
+       "tooltip-ca-nstab-user": "Ozuta käyttäisivu",
+       "tooltip-ca-nstab-special": "Tämä on erikoine sivu, sidä ei voi korjata",
+       "tooltip-ca-nstab-project": "Ozuta projektusivu",
+       "tooltip-ca-nstab-image": "Kačo failan sivu",
+       "tooltip-ca-nstab-template": "Ozuta šablon",
+       "tooltip-ca-nstab-category": "Kategourien sivu",
+       "tooltip-save": "Tallenda muutokset",
+       "tooltip-preview": "Ezikačo muutokset. Ole hyvä, luaji nenga ainos enne tallendamistu!",
+       "tooltip-diff": "Ozuta sinun luajitut muutokset tekstah",
+       "tooltip-rollback": "Yhtel painalluksel poistua jälgimäine korjavus",
+       "tooltip-undo": "\"Kumua\" tuou järilleh aijemban edituičenduversien da avuau edituičenduankietan ezikaččelendutilas. Sen vuoh voi ližätä kumuandumotiivan yhtehvevos.",
+       "tooltip-summary": "Kirjuta lyhyt kuvavus",
+       "simpleantispam-label": "Anti-spam-tarkistus. \n<strong>älä</strong> täytä!",
+       "pageinfo-toolboxlink": "Sivun tiijot",
+       "pageinfo-protect-cascading-yes": "Muga",
+       "previousdiff": "Vahnembi muutos",
+       "nextdiff": "Uvvembi muutos →",
+       "file-info-size": "$1 × $2 pikselii, failan kogo: $3, MIME-laji: $4",
+       "file-nohires": "Ei korgiembua rezoluciedu suadavannu.",
+       "svg-long-desc": "SVG-failu, nimellizesti $1 × $2 pikselua, failan kogo: $3",
+       "show-big-image": "Alguperäine failu",
+       "show-big-image-preview": "Tämän failan kogo: $1.",
+       "show-big-image-other": "Toine {{PLURAL:$2|resolution|resolutions}}: $1.",
+       "show-big-image-size": "$1 × $2 pikselii",
+       "metadata": "Metatiijostot",
+       "metadata-help": "Failah kuulutah ližätiijot, kudamii tavan mugah ližätäh digikameroil libo skanneroil. Gu failua oldaneh korjattu jälles sen enzimästy julguamistu, erähät parametrat voijah erota nygözes kuvas.",
+       "metadata-fields": "Kuvan metatiedoloin kentät, kudamat ollah täs luvettelos, ruvetah nägymäh kuvan sivul, konzu metatiedoloin taulukko ei rodei nägyvis. Toizet kentät roijah sultetut automuattizesti.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-orientation": "Orientacii",
+       "exif-xresolution": "Horizontualine rezolucii",
+       "exif-yresolution": "Vertikualine rezolucii",
+       "exif-datetime": "Tiijoston muutospäivy da -aigu",
+       "exif-make": "Kameran valmistai",
+       "exif-model": "Kamerumodellu",
+       "exif-software": "Käytetty programmu",
+       "exif-exifversion": "Exif-versii",
+       "exif-colorspace": "Väritila",
+       "exif-datetimeoriginal": "Suaduloin tiedoloin päivy da aigu",
+       "exif-datetimedigitized": "Digituimizen päivy da aigu",
+       "exif-orientation-1": "Tavalline",
+       "exif-subjectdistancerange-0": "Tundematoi",
+       "namespacesall": "kai",
+       "monthsall": "kai",
+       "quotation-marks": "\"$1\"",
+       "imgmultipageprev": "← ielline sivu",
+       "imgmultipagenext": "tulii sivu →",
+       "imgmultigo": "Mene!",
+       "imgmultigoto": "Mene sivule $1",
+       "table_pager_first": "Enzimäine sivu",
+       "table_pager_last": "Jälgimäine sivu",
+       "table_pager_limit_submit": "Mene",
+       "table_pager_empty": "Ei tuloksii",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|pagize]])",
+       "specialpages": "Erikozet sivut",
+       "tag-filter": "[[Special:Tags|Tag]] filtru:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Merki|Merkii}}]]: $2)",
+       "tags-edit-existing-tags-none": "\"Nimidä\"",
+       "compare-page1": "Sivu 1",
+       "compare-page2": "Sivu 2",
+       "htmlform-no": "Ei",
+       "htmlform-yes": "Muga",
+       "logentry-delete-delete": "$1 {{GENDER:$2|iäreotettu}} sivu $3",
+       "logentry-move-move": "$1 {{GENDER:$2|siirretty}} sivu $3 kohtah $4",
+       "logentry-newusers-create": "Käyttäi $1 oli perustettu $2",
+       "logentry-upload-upload": "$1 {{GENDER:$2|päivitetty}} $3",
+       "rightsnone": "(nimidä)",
+       "searchsuggest-search": "Eči",
+       "mw-widgets-titleinput-description-new-page": "sivuu ei vie ole"
+}
index cc106dc..75388b1 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}} ର ଖାତା ସବିଶେଷ",
        "passwordreset-emailtext-ip": "କେହିଜଣେ (ବୋଧେ ଆପଣ, $1 IP addressରୁ) {{SITENAME}} ($4)ରେ ପାସୱାର୍ଡ଼ ରି-ସେଟ କରିବା ପାଇଁ ଅନୁରୋଧ କରିଛନ୍ତି । ଉକ୍ତ ଇମେଲ ଠିକଣା ସହିତ ଏହି {{PLURAL:$3|ସଭ୍ୟ ଖାତାଟି|ସଭ୍ୟ ଖାତାମାନ}} ସମ୍ବନ୍ଧିତ:\n\n$2\n\n{{PLURAL:$3|ଏହି ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ଟି|ଏହି ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ମାନ}} {{PLURAL:$5|ଦିନକ|$5 ଦିନ}}ରେ ଅଚଳ ହୋଇଯିବ ।\nଆପଣ ଏବେ ଲଗ ଇନ କରି ନୂଆ ପାସୱାର୍ଡ଼ଟିଏ ବାଛନ୍ତୁ । ଯଦି ଆଉ କେହି ଏହି ଅନୁରୋଧ କରିଥାନ୍ତି କିମ୍ବା ନିଜର ପୁରୁଣା ପାସୱାର୍ଡ଼ଟି ମନେପଡ଼ିଲା, ଏବଂ ଆଉ ପାସୱାର୍ଡ଼ଟି ବଦଳାଇବାକୁ ଚାହୁଁନାହାଁନ୍ତି ତାହେଲେ ଏହି ମେଲଟିକୁ ଅଣଦେଖା କରି ନିଜର ପୁରୁଣା ପାସୱାର୍ଡ଼ ବ୍ୟବହାର କରନ୍ତୁ ।",
        "passwordreset-emailtext-user": "$1 ନାମକ ସଭ୍ୟଜଣକ {{SITENAME}}ରେ {{SITENAME}} ($4) ପାଇଁ ଆପଣଙ୍କ ପାସ ୱାର୍ଡ଼ ରିସେଟ କରିବାର ଅନୁରୋଧ କରିଛନ୍ତି । ତଳ {{PLURAL:$3|ଖାତାଟି|ଖାତାମାନ}} ଉକ୍ତ ଇମେଲ ସହିତ ସମ୍ବନ୍ଧିତ:\n\n$2\n\n{{PLURAL:$3|ଏହି ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ଟି|ଏହି ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ମାନ}} {{PLURAL:$5|ଦିନକ|$5 ଦିନ}}ରେ ଅଚଳ ହୋଇଯିବ ।\nଆପଣ ଲଗ ଇନ କରି ନୂଆ ପାସୱାର୍ଡ଼ଟିଏ ବାଛନ୍ତୁ । ଯଦି ଆଉ କେହି ଏହି ଅନୁରୋଧଟି କରିଥାନ୍ତି କିମ୍ବା ଆପଣଙ୍କର ନିଜ ପୁରୁଣା ପାସୱାର୍ଡ଼ଟି ମନେପଡ଼ିଗଲା ତେବେ ଆପଣଙ୍କୁ ଆଉ ପାସୱାର୍ଡ଼ ବଦଳାଇବାର ଆବଶ୍ୟକତା ନାହିଁ । ଆପଣ ଏହି ମେସେଜଟିକୁ ଅଣଦେଖା କରି ନିଜର ପୁରୁଣା ପାସୱାର୍ଡ଼ ବ୍ୟବହାର କରୁଥାନ୍ତୁ ।",
-       "passwordreset-emailelement": "ଇଉଜର ନାମ: $1\nଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼: $2",
+       "passwordreset-emailelement": "ଇଉଜର ନାମ: \n$1\n\nଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼: \n$2",
        "passwordreset-emailsent": "ଏକ ପାସୱାର୍ଡ଼ ପୁନଃସ୍ଥାପନ ଇମେଲ ପଠାଇଦିଆଯାଇଅଛି ।",
        "passwordreset-emailsent-capture": "ତଳେ ଦେଖାଯାଉଥିବା ଭଳି, ପାସୱାର୍ଡ଼ ପୁନଃସ୍ଥାପନ ଇମେଲଟିଏ ପଠାଇଦିଆଯାଇଛି ।",
        "passwordreset-emailerror-capture": "ପାସୱାର୍ଡ଼ ବଦଳାଇବା ସୂଚନା ସହ ଇମେଲଟିଏ ତିଆରି ହୋଇଛି, ଯାହା ତଳେ ଦେଖିପାରିବେ । କିନ୍ତୁ ଏହାକୁ {{GENDER:$2|ସଭ୍ୟ}}ଙ୍କୁ ପଠାଇବାରେ ବିଫଳ ହେଲୁ, କାରଣ: $1",
        "emailuser": "ଏହି ସଭ୍ୟଙ୍କୁ ଇମେଲ କରିବେ",
        "emailuser-title-target": "{{GENDER:$1|user}}ଙ୍କୁ ଇ-ମେଲ କରନ୍ତୁ",
        "emailuser-title-notarget": "ବ୍ୟବହାରକାରୀଙ୍କୁ ଇ-ମେଲ କରନ୍ତୁ",
-       "emailpage": "ବ୍ୟବହାରକାରୀଙ୍କୁ ଇ-ମେଲ କରନ୍ତୁ",
        "emailpagetext": "ଆପଣ ତଳେ ଥିବା ଫର୍ମ ବ୍ୟବହାର କରି ଏହି {{GENDER:$1|ସଭ୍ୟ}}ଙ୍କୁ ଇମେଲ କରିପାରିବେ । [[Special:Preferences|ଆପଣଙ୍କ ପସନ୍ଦ]]ରେ ଥିବା ଇମେଲ ଠିକଣା \"ପ୍ରେରକ\" ଭାବରେ ଦେଖାଯିବ, ତେଣୁ ଇମେଲ ପାଇଥିବା ସଭ୍ୟ ଆପଣଙ୍କୁ ସିଧା ସଳଖ ଉତ୍ତର ଦେଇପାରିବେ ।",
        "defemailsubject": "{{SITENAME}} \"$1\" ସଭ୍ୟଙ୍କ ଠାରୁ ଇ-ମେଲ କରିବେ",
        "usermaildisabled": "ବ୍ୟବହାରକାରୀଙ୍କ ଈ-ମେଲ ଅଚଳ କରାଗଲା",
        "api-error-badtoken": "ଭିତର ଅସୁବିଧା: ଖରାପ ଟୋକନ ।",
        "api-error-copyuploaddisabled": "URL ଦେଇ ଅପଲୋଡ଼ କରିବା ଏହି ସର୍ଭରରେ ଅଚଳ କରାଯାଇଅଛି ।",
        "api-error-duplicate": "ଏହି ସାଇଟରେ ସେହି ଏକା ତଥ୍ୟ ଥିବା {{PLURAL:$1| [$2 ଆଉ ଏକ ଫାଇଲ] ରହିଅଛି|[$2 ଆଉ କିଛି ଫାଇଲ] ରହି ଅଛନ୍ତି}} ।",
-       "api-error-duplicate-archive": "ସେହି ସାଇଟରେ ସେହି ଏକା ଭିତର ଭାଗ ସହିତ ଆଗରୁ {{PLURAL:$1|[$2 ଆଉ ଫାଇଲଟିଏ] ଥିଲା|[$2 ଆଉ କେତେକ ଫାଇଲ] ଥିଲା}}, କିନ୍ତୁ {{PLURAL:$1|ତାହାକୁ|ସେସବୁକୁ}} ଲିଭାଇ ଦିଆଯାଇଅଛି ।",
-       "api-error-duplicate-archive-popup-title": "ଆଗରୁ ଲିଭାଯାଇଥିବା ନକଲି {{PLURAL:$1|ଗୋଟି ଫାଇଲ|ଗୋଟି ଫାଇଲ}}",
-       "api-error-duplicate-popup-title": "ନକଲି {{PLURAL:$1|ଗୋଟି ଫାଇଲ|ଗୋଟି ଫାଇଲ}}",
+       "api-error-duplicate-archive": "ସେହି ସାଇଟରେ ସେହି ଏକା ଭିତର ଭାଗ ସହିତ ଆଗରୁ {{PLURAL:$1|ଆଉ ଫାଇଲଟିଏ ଥିଲା|ଆଉ କେତେକ ଫାଇଲ ଥିଲା}}, କିନ୍ତୁ {{PLURAL:$1|ତାହାକୁ|ସେସବୁକୁ}} ଲିଭାଇ ଦିଆଯାଇଅଛି ।",
        "api-error-empty-file": "ଆପଣ ପଠାଇଥିବା ଫାଇଲଟି ଖାଲି ଅଟେ ।",
        "api-error-emptypage": "ନୂଆ, ଖାଲି ପୃଷ୍ଠ ତିଆରି କରିବାର ଅନୁମତି ନାହି ।",
        "api-error-fetchfileerror": "ଭିତର ଅସୁବିଧା: ଏହି ଫାଇଲଟି ପାଖରେ ପହଞ୍ଚିବା ବେଳେ କିଛି ଅସୁବିଧା ହେଲା ।",
index 37b8e59..b13db96 100644 (file)
        "resetpass-expired": "Дæ паролы æмгъуыд фæци. Ног пароль сæвæр, дæ хорзæхæй.",
        "passwordreset": "Пароль раппарæн",
        "passwordreset-text-one": "Ацы формæ байдзаг кæн цæмæй дæм барвитæм рæстæгмæ пароль дæ эл. посты адрисмæ.",
-       "passwordreset-legend": "Пароль раппарын",
        "passwordreset-disabled": "Парол фæлварын ацы викийы хицæн у.",
        "passwordreset-emaildisabled": "Электрон пост ацы викийы хицæн у.",
        "passwordreset-username": "Фæсномыг:",
        "passwordreset-emailtitle": "{{grammar:genitive|{{SITENAME}}}} акканты тыххæй",
        "passwordreset-emailtext-ip": "Чидæр (уæццæгæн ды, $1 IP адрисæй) æрдомдта дæ {{grammar:genitive|{{SITENAME}}}} ($4) пароль ногæй сæвæрын. Ацы архайæджы {{PLURAL:$3|аккаунт баст у|аккаунттæ баст сты}} ацы электрон посты адрисимæ:\n\n$2\n\n{{PLURAL:$3|Ацы рæстæгмæ пароль|Ацы рæстæгмæ паролтæ}} кусдзысты {{PLURAL:$5|иу бон|$5 боны}}.\nНыр ды хъуамæ бахизай системæмæ æмæ равзарай ног пароль. Кæд ай æндæр чидæр æрдомдта, кæнæ кæд дæ пароль æрхъуыды кодтай æмæ дæ нал фæды фæивай йæ, уæд дæ бон у мацæмæ дарай ацы фыстæг æмæ дарддæр архайай дæ зæронд паролæй.",
        "passwordreset-emailtext-user": "{{grammar:genitive|{{SITENAME}}}} архайæг $1 æрдомдта дæ {{grammar:genitive|{{SITENAME}}}} ($4) аккаунты пароль ногæй сæвæрын. Ацы архайæджы {{PLURAL:$3|аккаунт баст у|аккаунттæ баст сты}} ацы электрон посты адрисимæ:\n\n$2\n\n{{PLURAL:$3|Ацы рæстæгмæ пароль|Ацы рæстæгмæ паролтæ}} кусдзысты {{PLURAL:$5|иу бон|$5 боны}}.\nНыр ды хъуамæ бахизай системæмæ æмæ равзарай ног пароль. Кæд ай æндæр чидæр æрдомдта, кæнæ кæд дæ пароль æрхъуыды кодтай æмæ дæ нал фæды фæивай йæ, уæд дæ бон у мацæмæ дарай ацы фыстæг æмæ дарддæр архайай дæ зæронд паролæй.",
-       "passwordreset-emailelement": "Фæсномыг: $1\nРæстæгмæ пароль: $2",
+       "passwordreset-emailelement": "Фæсномыг: \n$1\n\nРæстæгмæ пароль: \n$2",
        "passwordreset-emailsent": "Ног пароль сæвæрыны фыстæг æрвыст æрцыд.",
        "passwordreset-emailsent-capture": "Ног пароль сæвæрыны фыстæг æрвыст æрцыд æмæ бындæр æвдыст у.",
        "passwordreset-emailerror-capture": "Ног пароль сæвæрыны фыстæг арæзт æрцыд æмæ бындæр æвдыст у. Фæлæ йæ {{grammar:allative|{{GENDER:$2|user}}}} арвитын нæ бантыстис: $1",
        "changeemail-throttled": "Æгæр бирæ фæлварыс бахизынмæ.\nДæ хорзæхæй, $1 фæлæуу ног фæлвæрды онг.",
        "resettokens": "Токентæ æппарын",
        "resettokens-no-tokens": "Æппаринаг токентæ нæй.",
-       "resettokens-legend": "Токентæ æппарын",
        "resettokens-tokens": "Токентæ:",
        "resettokens-token-label": "$1 (ныры мидис: $2)",
        "resettokens-done": "Токентæ æппæрст æрцыдысты.",
        "nmembers": "$1 {{PLURAL:$1|уæнг|уæнгы}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|уæнг|уæнджы}}",
        "nrevisions": "$1 {{PLURAL:$1|фæлтæр|фæлтæры}}",
-       "nviews": "$1 {{PLURAL:$1|æркаст|æркасты}}",
        "nimagelinks": "Архайд цæуы $1 {{PLURAL:$1|фарсы}}",
        "ntransclusions": "архайд цæуы $1 {{PLURAL:$1|фарсы}}",
        "specialpage-empty": "Нæй фæстиуæг.",
        "mailnologintext": "Фыстæгтæ æрвитынмæ хъуамæ [[Special:UserLogin|системæйæн дæхи бавдисай]] æмæ дæ бæлвырд электронон посты адрис [[Special:Preferences|ныффыссай]].",
        "emailuser": "Ацы архайæгæн электронон фыстæг рарвитт",
        "emailuser-title-notarget": "Архайæгæн фыстæг арвит",
-       "emailpage": "Электронон фыстæг йæм барвит",
        "noemailtitle": "Эл. посты адрис нæй.",
        "emailusername": "Фæсномыг:",
        "emailusernamesubmit": "Афтæ уæд",
index 8225de5..9a2588d 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}} ਤੇ ਖਾਤੇ ਦੀ ਜਾਣਕਾਰੀ",
        "passwordreset-emailtext-ip": "ਕਿਸੇ ਨੇ (ਸ਼ਾਇਦ ਤੁਸੀਂ, IP ਪਤਾ $1 ਤੋਂ) {{SITENAME}}\n($4) ਲਈ ਖਾਤਾ ਤਫ਼ਸੀਲ ਯਾਦ-ਦਹਾਨੀ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ। ਇਹ {{PLURAL:\n$3|ਖਾਤਾ ਇਸ ਈ-ਮੇਲ ਪਤੇ ਨਾਲ਼ ਜੁੜਿਆ ਹੈ|ਖਾਤੇ ਇਸ ਈ-ਮੇਲ ਪਤੇ ਨਾਲ਼ ਜੁੜੇ ਹਨ}}:\n$2\n\nਇਹ ਆਰਜ਼ੀ ਪਾਸਵਰਡ\n{{PLURAL:$5|ਇੱਕ ਦਿਨ|$5 ਦਿਨਾਂ}} ਵਿਚ ਖ਼ਤਮ ਹੋ {{PLURAL:$3|ਜਾਵੇਗਾ|ਜਾਣਗੇ}}।\nਤੁਹਾਨੂੰ ਹੁਣੇ ਲਾਗਇਨ ਕਰਕੇ ਨਵਾਂ ਪਾਸਵਰਡ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇ ਕਿਸੇ ਹੋਰ ਨੇ ਇਹ ਬੇਨਤੀ ਕੀਤੀ ਸੀ ਜਾਂ ਜੇ ਤੁਹਾਨੂੰ ਆਪਣਾ ਪਾਸਵਰਡ ਯਾਦ ਹੈ ਅਤੇ ਤੁਸੀਂ ਇਸਨੂੰ ਬਦਲਣਾ ਨਹੀਂ ਚਾਹੁੰਦੇ ਤਾਂ ਤੁਸੀਂ ਇਸ ਸੁਨੇਹੇ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਕੇ ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਵਰਤਣਾ ਜਾਰੀ ਰੱਖ ਸਕਦੇ ਹੋ।",
        "passwordreset-emailtext-user": "{{SITENAME}} 'ਤੇ User $1 ਨੇ ਤੁਹਾਡੇ {{SITENAME}} ($4) ਉਤਲੇ ਪਛਾਣ-ਸ਼ਬਦ ਨੂੰ ਮੁੜ-ਬਣਾਉਣ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ। ਇਸ ਈਮੇਲ ਪਤੇ ਨਾਲ਼ ਹੇਠ ਲਿਖੇ {{PLURAL:$3|ਖਾਤੇ|ਖਾਤਿਆਂ}} ਦਾ ਵਾਸਤਾ ਹੈ:\n\n$2\n\n{{PLURAL:$3|ਇਸ ਆਰਜ਼ੀ ਪਛਾਣ-ਸ਼ਬਦ|ਇਹਨਾਂ ਆਰਜ਼ੀ ਪਛਾਣ-ਸ਼ਬਦਾਂ}} ਦੀ ਮਿਆਦ {{PLURAL:$5|ਇੱਕ ਦਿਨ|$5 ਦਿਨਾਂ}} 'ਚ ਮੁੱਕ ਜਾਵੇਗੀ।\nਤੁਹਾਨੂੰ ਹੁਣੇ ਦਾਖ਼ਲ ਹੋ ਕੇ ਕੋਈ ਨਵਾਂ ਪਛਾਣ-ਸ਼ਬਦ ਬਣਾ ਲੈਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇਕਰ ਕਿਸੇ ਹੋਰ ਨੇ ਇਹ ਬੇਨਤੀ ਕੀਤੀ ਹੈ ਜਾਂ ਤੁਹਾਨੂੰ ਆਪਣਾ ਪਹਿਲਾ ਪਛਾਣ-ਸ਼ਬਦ ਯਾਦ ਆ ਗਿਆ ਹੈ ਅਤੇ ਹੁਣ ਤੁਸੀਂ ਉਹਨੂੰ ਬਦਲ਼ਨਾ ਨਹੀਂ ਲੋਚਦੇ ਤਾਂ ਤੁਸੀਂ ਇਸ ਸੁਨੇਹੇ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰ ਕੇ ਆਪਣਾ ਪੁਰਾਣਾ ਪਛਾਣ-ਸ਼ਬਦ ਵਰਤਦੇ ਰਹਿ ਸਕਦੇ ਹੋ।",
-       "passwordreset-emailelement": "ਯੂਜ਼ਰ-ਨਾਂ: $1\nਆਰਜ਼ੀ ਪਾਸਵਰਡ: $2",
+       "passwordreset-emailelement": "ਯੂਜ਼ਰ-ਨਾਂ: \n$1\n\nਆਰਜ਼ੀ ਪਾਸਵਰਡ: \n$2",
        "passwordreset-emailsent": "ਇੱਕ ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਈ-ਮੇਲ ਭੇਜੀ ਜਾ ਚੁੱਕੀ ਹੈ।",
        "passwordreset-emailsent-capture": "ਇੱਕ ਯਾਦ-ਦਹਾਨੀ ਈ-ਮੇਲ, ਜਿਹੜੀ ਕਿ ਹੇਠਾਂ ਦਿੱਸ ਰਹੀ ਹੈ, ਭੇਜੀ ਜਾ ਚੁੱਕੀ ਹੈ।",
        "passwordreset-emailerror-capture": "ਪਛਾਣ-ਸ਼ਬਦ ਮੁੜ ਬਣਾਉਣ ਵਾਸਤੇ ਈਮੇਲ ਤਿਆਰ ਹੋ ਗਈ ਸੀ, ਜੋ ਹੇਠਾਂ ਵਿਖਾਈ ਗਈ ਹੈ, ਪਰ ਇਹਨੂੰ {{GENDER:$2|ਵਰਤੋਂਕਾਰ}} ਵੱਲ ਨਹੀਂ ਘੱਲਿਆ ਜਾ ਸਕਿਆ: $1",
        "emailuser": "ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ",
        "emailuser-title-target": "ਇਹ {{GENDER:$1|ਯੂਜ਼ਰ}} ਨੂੰ ਈਮੇਲ ਭੇਜੋ",
        "emailuser-title-notarget": "ਵਰਤੋਂਕਾਰ ਨੂੰ ਈਮੇਲ ਕਰੋ",
-       "emailpage": "ਵਰਤੋਂਕਾਰ ਨੂੰ ਈਮੇਲ ਕਰੋ",
        "defemailsubject": "{{SITENAME}} ਈਮੇਲ",
        "usermaildisabled": "ਵਰਤੋਂਕਾਰ ਦੀ ਈ-ਮੇਲ ਬੰਦ ਹੈ",
        "usermaildisabledtext": "ਇਸ ਵਿਕੀ ’ਤੇ ਤੁਸੀਂ ਦੂਜੇ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਈ-ਮੇਲ ਨਹੀਂ ਭੇਜ ਸਕਦੇ",
index 5e0e4a8..ec42bff 100644 (file)
        "passwordreset": "Paesswatt zerricksetze",
        "passwordreset-username": "Yuuser-Naame:",
        "passwordreset-email": "E-Poschd:",
-       "passwordreset-emailelement": "Yuusernaame: $1\nPaesswatt fer nau: $2",
+       "passwordreset-emailelement": "Yuusernaame: \n$1\n\nPaesswatt fer nau: \n$2",
        "changeemail-none": "(ken)",
        "changeemail-submit": "E-Poschd ennere",
        "bold_sample": "Wadde fett gmarrickt",
index 62a121e..0257dbf 100644 (file)
        "nstab-template": "Szablon",
        "nstab-help": "Strona pomocy",
        "nstab-category": "Kategoria",
+       "mainpage-nstab": "Strona główna",
        "nosuchaction": "Brak takiej operacji",
        "nosuchactiontext": "Działanie określone w adresie URL jest nieprawidłowe.\nMożliwe przyczyny to literówka w adresie, nieprawidłowy link lub błąd w oprogramowaniu {{GRAMMAR:D.lp|{{SITENAME}}}}.",
        "nosuchspecialpage": "Brak takiej strony specjalnej",
        "createacct-benefit-body2": "{{PLURAL:$1|strona|strony|stron}}",
        "createacct-benefit-body3": "{{PLURAL:$1|aktywny użytkownik|aktywnych użytkowników}} w ostatnim miesiącu",
        "badretype": "Wprowadzone hasła różnią się między sobą.",
+       "usernameinprogress": "Tworzenie konta dla tej nazwy użytkownika jest już w toku.\nProszę czekać.",
        "userexists": "Wybrana przez Ciebie nazwa użytkownika jest już zajęta.\nWybierz inną nazwę użytkownika.",
        "loginerror": "Błąd logowania",
        "createacct-error": "Błąd tworzenia konta",
        "passwordreset-emailtitle": "Dane konta w {{GRAMMAR:MS.lp|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "Ktoś (prawdopodobnie Ty, spod adresu IP $1) poprosił o zresetowanie twojego hasła w {{GRAMMAR:MS.lp{{SITENAME}}}} ($4). Z tym adresem e‐mailowym powiązane {{PLURAL:$3|jest konto użytkownika|są następujące konta użytkowników:}}\n\n$2\n\n{{PLURAL:$3|Tymczasowego hasła|Tymczasowych haseł}} można użyć w ciągu {{PLURAL:$5|jednego dnia|$5 dni}}.\nPowinieneś zalogować się i zmienić hasło na nowe. Jeśli to ktoś inny poprosił o wysłanie przypomnienia lub jeśli pamiętasz aktualne hasło i nie chcesz go zmieniać wystarczy, że zignorujesz tę wiadomość i będziesz nadal korzystać ze swojego starego hasła.",
        "passwordreset-emailtext-user": "Użytkownik $1 poprosił o zresetowanie twojego hasła w {{GRAMMAR:MS.lp{{SITENAME}}}} ($4). Z tym adresem e‐mailowym powiązane {{PLURAL:$3|jest konto użytkownika|są następujące konta użytkowników:}}\n\n$2\n\n{{PLURAL:$3|Tymczasowego hasła|Tymczasowych haseł}} można użyć w ciągu {{PLURAL:$5|jednego dnia|$5 dni}}.\nPowinieneś zalogować się i zmienić hasło na nowe. Jeśli to ktoś inny poprosił o wysłanie przypomnienia lub jeśli pamiętasz aktualne hasło i nie chcesz go zmieniać wystarczy, że zignorujesz tę wiadomość i będziesz nadal korzystać ze swojego starego hasła.",
-       "passwordreset-emailelement": "Nazwa użytkownika: $1\nTymczasowe hasło: $2",
+       "passwordreset-emailelement": "Nazwa użytkownika: \n$1\n\nTymczasowe hasło: \n$2",
        "passwordreset-emailsent": "E‐mail resetowania hasła został wysłany.",
        "passwordreset-emailsent-capture": "Wyświetlony poniżej e‐mail pozwalający na zresetowanie hasła został wysłany.",
        "passwordreset-emailerror-capture": "Poniżej wyświetlony e‐mail pozwalający na zresetowanie hasła został wygenerowany, ale nie udało się wysłać go do {{GENDER:$2|użytkownika|użytkowniczki}}: $1",
        "changeemail-password": "Twoje hasło:",
        "changeemail-submit": "Zmień e-mail",
        "changeemail-throttled": "Zbyt wiele razy próbowałeś zalogować się na to konto.\nOdczekaj $1, zanim ponowisz próbę.",
+       "changeemail-nochange": "Proszę wprowadzić inny nowy adres e-mail.",
        "resettokens": "Resetowanie tokenów",
        "resettokens-text": "Na tej stronie możesz zresetować tokeny, które umożliwiają dostęp do pewnych prywatnych danych związanych z Twoim kontem.\n\nNależy to zrobić, jeśli ktoś je poznał lub zdobył hasło do Twojego konta.",
        "resettokens-no-tokens": "Brak tokenów do zresetowania.",
        "undeletepagetext": "{{PLURAL:$1|Następująca strona została usunięta, ale jej kopia wciąż znajduje|Następujące $1 strony zostały usunięte, ale ich kopie wciąż znajdują|Następujące $1 stron zostało usuniętych, ale ich kopie wciąż znajdują}} się w archiwum.\nArchiwum co jakiś czas może być oczyszczane.",
        "undelete-fieldset-title": "Odtwarzanie wersji",
        "undeleteextrahelp": "Jeśli chcesz odtworzyć całą historię edycji strony, pozostaw wszystkie pola niezaznaczone i kliknij '''''{{int:undeletebtn}}'''''.\nWybiórcze odtworzenie możesz wykonać, zaznaczając pola odpowiadające wersjom, które mają zostać odtworzone, a następnie klikając '''''{{int:undeletebtn}}'''''.",
-       "undeleterevisions": "$1 {{PLURAL:$1|zarchiwizowana wersja|zarchiwizowane wersje|zarchiwizowanych wersji}}",
+       "undeleterevisions": "$1 {{PLURAL:$1|usunięta wersja|usunięte wersje|usuniętych wersji}}",
        "undeletehistory": "Odtworzenie strony spowoduje przywrócenie także jej wszystkich poprzednich wersji.\nJeśli od czasu usunięcia ktoś utworzył nową stronę o tej samej nazwie, odtwarzane wersje znajdą się w jej historii, a obecna wersja pozostanie bez zmian.",
        "undeleterevdel": "Odtworzenie nie zostanie przeprowadzone, jeśli mogłoby spowodować częściowe usunięcie aktualnej wersji strony lub pliku.\nW takiej sytuacji należy odznaczyć lub przywrócić widoczność najnowszej usuniętej wersji.",
        "undeletehistorynoadmin": "Ta strona została usunięta.\nPrzyczyna usunięcia podana jest w podsumowaniu poniżej, razem z danymi użytkownika, który edytował stronę przed usunięciem.\nSama treść usuniętych wersji jest dostępna jedynie dla administratorów.",
        "imagetypemismatch": "Nowe rozszerzenie nazwy pliku jest innego typu niż zawartość",
        "imageinvalidfilename": "Nazwa pliku docelowego jest nieprawidłowa",
        "fix-double-redirects": "Zaktualizuj wszystkie przekierowania wskazujące na stary tytuł",
-       "move-leave-redirect": "Pozostaw przekierowanie pod dotychczasowym tytułem",
+       "move-leave-redirect": "Pozostaw przekierowanie pod dotychczasowym tytułem.",
        "protectedpagemovewarning": "'''UWAGA!''' Ponieważ strona została zabezpieczona, tylko użytkownicy z uprawnieniami administratora mogą zmienić jej nazwę.\nOstatni wpis z rejestru jest pokazany poniżej.",
        "semiprotectedpagemovewarning": "'''Uwaga!''' Ponieważ strona została zabezpieczona, tylko zarejestrowani użytkownicy mogą zmienić jej nazwę.\nOstatni wpis z rejestru jest pokazany poniżej.",
        "move-over-sharedrepo": "== Plik istnieje ==\n[[:$1]] istnieje we wspólnym repozytorium. Zmiana nazwy pliku na tę spowoduje przesłonięcie współdzielonego pliku.",
        "api-error-badtoken": "Błąd wewnętrzny – nieprawidłowy kod weryfikacyjny (token).",
        "api-error-copyuploaddisabled": "Przesyłanie poprzez podanie adresu URL zostało na tym serwerze wyłączone.",
        "api-error-duplicate": "{{PLURAL:$1|Jest już [$2 inny plik]|Są już [$2 inne pliki]}} o tej samej zawartości",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Był już [$2 inny plik]|Były już [$2 inne pliki]}} o takiej samej zawartości, ale {{PLURAL:$1|został usunięty|zostały usunięte}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Zdublowany plik, który został już usunięty|Zdublowane pliki, które zostały już usunięte}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Zdublowany plik|Zdublowane pliki}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Był już inny plik|Były już inne pliki}} o takiej samej zawartości, ale {{PLURAL:$1|został usunięty|zostały usunięte}}.",
        "api-error-empty-file": "Przesłany przez Ciebie plik jest pusty.",
        "api-error-emptypage": "Tworzenie nowych, pustych stron jest niedozwolone.",
        "api-error-fetchfileerror": "Błąd wewnętrzny – wystąpił błąd w trakcie pobierania pliku.",
index f42c471..edea055 100644 (file)
@@ -15,7 +15,8 @@
                        "Shirayuki",
                        "아라",
                        "Kolega2357",
-                       "Purodha"
+                       "Purodha",
+                       "Macofe"
                ]
        },
        "tog-underline": "Anliure con la sotliniadura",
        "passwordreset-emailtitle": "Detaj dël cont ansima a {{SITENAME}}",
        "passwordreset-emailtext-ip": "Quaidun (a l'é bel fé ch'a sia chiel, da l'adrëssa IP $1) a l'ha ciamà na riampostassion ëd soa ciav për {{SITENAME}} ($4). {{PLURAL:$3|Ël cont utent sì-sota a l'é|Ij cont utent sì-sota a son}} \nassocià a st'adrëssa ëd pòsta eletrònica:\n\n$2\n\n{{PLURAL:$3|Costa ciav provisòria|Coste ciav provisòrie}} a scadran da-sì {{PLURAL:$5|un di|$5 di}}.\nA dovrìa intré ant ël sistema e serne na ciav neuva adess. Se quaidun d'àutr a l'ha fàit costa arcesta, o s'a l'é arcordasse soa ciav original, e a veul pa pi cangela, a peule ignoré ës mëssagi e continué a dovré soa veja ciav.",
        "passwordreset-emailtext-user": "L'utent $1 ansima a {{SITENAME}} a l'ha ciamà na riampostassion ëd soa ciav për {{SITENAME}} ($4). {{PLURAL:$3|Ël cont utent sì-sota a l'é|Ij cont utent sì-sota a son}} associà a st'adrëssa ëd pòsta eletrònica:\n\n$2\n\n{{PLURAL:$3|Costa ciav provisòria|Coste ciav provisòrie}} a scadran da-sì {{PLURAL:$5|un di|$5 di}}.\nA dovrìa intré ant ël sistema e serne na ciav neuva adess. Se quaidun d'àutr a l'ha fàit costa arcesta, o s'a l'é arcordasse soa ciav original, e a veul pa pi cangela, a peul ignoré ës mëssagi e continué a dovré soa veja ciav.",
-       "passwordreset-emailelement": "Stranòm: $1\nCiav provisòria: $2",
+       "passwordreset-emailelement": "Stranòm: \n$1\n\nCiav provisòria: \n$2",
        "passwordreset-emailsent": "Un mëssagi ëd riampostassion ëd la ciav a l'é stàit spedì.",
        "passwordreset-emailsent-capture": "Un mëssagi ëd riampostassion ëd la ciav a l'é stàit mandà, e a l'é mostrà sì-sota.",
        "passwordreset-emailerror-capture": "Un mëssagi ëd riampostassion ëd la ciav a l'é stàit generà, e a l'é smonù sì-sota, ma la spedission a {{GENDER:$2|l'utent}} a l'é falìa: $1",
        "api-error-badtoken": "Eror antern: sìmbol pa bon.",
        "api-error-copyuploaddisabled": "Le carie a travers ëd liure a son disabilità ansima a cost servent.",
        "api-error-duplicate": "A-i {{PLURAL:$1|é [$2 n'àutr archivi]|son [$2 àutri archivi]}} già an sël sit col ël midem contnù.",
-       "api-error-duplicate-archive": "A-i {{PLURAL:$1|era [$2 n'àutr archivi]|ero [$2 àutri archivi]}} già an sël sit con ël midem contnù, ma {{PLURAL:$1|a l'é stàit|a son ëstàit}} ëscancelà.",
-       "api-error-duplicate-archive-popup-title": "Dupliché {{PLURAL:$1|l'archivi|j'archivi}} ch'a son già stàit ëscancelà",
-       "api-error-duplicate-popup-title": "Dupliché {{PLURAL:$1|l'archivi|j'archivi}}",
+       "api-error-duplicate-archive": "A-i {{PLURAL:$1|era n'àutr archivi|ero àutri archivi}} già an sël sit con ël midem contnù, ma {{PLURAL:$1|a l'é stàit|a son ëstàit}} ëscancelà.",
        "api-error-empty-file": "L'archivi ch'a l'ha mandà a l'era veuid.",
        "api-error-emptypage": "La creassion ëd pàgine neuve veujde a l'é nen përmëttùa.",
        "api-error-fetchfileerror": "Eror antern: quaicòs a l'é andàit mal antramentre ch'as arcuperava l'archivi.",
index 8c10941..125eddf 100644 (file)
@@ -9,7 +9,8 @@
                        "ZaDiak",
                        "아라",
                        "Amire80",
-                       "Obaid Raza"
+                       "Obaid Raza",
+                       "Macofe"
                ]
        },
        "tog-underline": "حوڑ تھلے لین:",
        "passwordreset-emailtitle": "{{SITENAME}} دے اتے کھاتے دی معلومات:",
        "passwordreset-emailtext-ip": "کسے نے (خورے تساں  آئی پی پتے $1) تواڈے کھاتے دا ویروا منگیا اے {{SITENAME}} ($4) لئی۔ تھلے دتا گیا ورتنوالا {{PLURAL:$3|کھاتہ|کھاتے}} ایس ای-میل پتے نال جوڑ رکھدا اے:\n\n$2\n\n{{PLURAL:$3|اے عارضی کنجی|اے عارضی کنجیاں}} {{PLURAL:$5|اک دن|$5 دناں}} چ مک جاوے گی۔ تسیں لاگان ہوو تے اپنی اک نويں کنجی چنو. اگر کسے ہور نے اے کنجی والی چٹھی پیجی اے یا توانوں پرانی کنجی یاد آگئی اے تے تسیں پرانی کنجی نال ای کم چلانا چاندے او تے تسیں ایس سنیعے نوں پل جاؤ تے پرانی کنجی ای ورتو۔",
        "passwordreset-emailtext-user": "ورتنوالے $1 نے {{سائیٹناں}} تے تواڈے کھاتے بارے پچھیا اے {{SITENAME}} لئی ($4)۔ تھلے دتا گیا ورتن {{PLURAL:$3|کھاتہ|کھاتے}} ایس ای-میل نال جڑدا اے۔\n\n$2\n\n{{PLURAL:$3|ایہ عارضی کنجی|اے عارضی کنجیاں}} مک جائیگا {{PLURAL:$5|اک دن|$5 دن}}۔ تسیں ہن لاکان ہوو تے نویں کنجی چنو۔ اگر کسے ہور نے اے چٹھی پیجی یا توانوں اپنی پہلی کنجی یاد آگئی اے تے تسیں اونوں بدلنا نئیں چاندے تے تسیں ایس سنیعے نوں پھل جاؤ تے پرانی کنجی نال ای کم چلاؤ۔",
-       "passwordreset-emailelement": "ورتن ناں: $1\nعارضی کنجی: $2",
+       "passwordreset-emailelement": "ورتن ناں: \n$1\n\nعارضی کنجی: \n$2",
        "passwordreset-emailsent": "یاد کران واسطے اک ای-میل پیج دتی گئی اے۔",
        "passwordreset-emailsent-capture": "اک یاد کران والی ای-میل پیج دتی گئی اے، جیہڑی تھلے دسی گئی اے۔",
        "passwordreset-emailerror-capture": "اک یادکراؤ ای-میل بنائی گئی اے، جیہڑی کہ تھلے دسی گئی اے، پر ورتن والے تک پیجنا نئیں ہوسکیا:$1",
        "api-error-badtoken": "اندر دی غلطی: برا ٹوکن",
        "api-error-copyuploaddisabled": "یو آر ایل نال فائل چڑھانا ایس سرور تے نکام",
        "api-error-duplicate": "ایتھے {{PLURAL:$1|ہے [$2 اک ہور فائل]|ہین [$2 کچ ہور فائلاں]}} ایسے مواد نال ایس تھاں تے پہلے ای ہے۔",
-       "api-error-duplicate-archive": "ایتھے  {{PLURAL:$1|سی [$2 اک ہور فائل]|سن [$2 کج ہور فائلاں]}} پہلے ای ایس تھاں تے اے اکو جے مواد نال پر {{PLURAL:$1|اے سی|اوہ سن}} مٹایا گیا۔",
-       "api-error-duplicate-archive-popup-title": "دوجی {{PLURAL:$1|فائل|فائلاں}} جناں نوں پہلے ای مٹا دتا گیا اے۔",
-       "api-error-duplicate-popup-title": "دوجی {{PLURAL:$1|فائل|فائلاں}}",
+       "api-error-duplicate-archive": "ایتھے  {{PLURAL:$1|سی اک ہور فائل|سن کج ہور فائلاں}} پہلے ای ایس تھاں تے اے اکو جے مواد نال پر {{PLURAL:$1|اے سی|اوہ سن}} مٹایا گیا۔",
        "api-error-empty-file": "جیڑی فائل تسی دسی اے اوہ حالی اے۔",
        "api-error-emptypage": "نواں بناریا آن، خالی صفیاں دی اجازت نئیں۔",
        "api-error-fetchfileerror": "اندر دی غلطی: فائل لیندیاں کوئی غلطی ہوئی۔",
index 0f8da47..6383cfd 100644 (file)
        "versionrequired": "د ميډياويکي $1 بڼې ته اړتيا ده",
        "versionrequiredtext": "د دې مخ په ليدلو کې د مېډياويکي $1 بڼې ته اړتيا ده. \n[[Special:Version|د بڼې مخ وگورۍ]].",
        "ok": "ښه",
+       "pagetitle-view-mainpage": "{{SITENAME}}",
        "retrievedfrom": "\"$1\" نه اخيستل شوی",
        "youhavenewmessages": "تاسې $1 لری  ($2).",
        "youhavenewmessagesfromusers": "تاسې د {{PLURAL:$3|يو بل کارن|$3 کارنانو}} لخوا $1 لرۍ ($2).",
        "passwordreset-capture": "د پايلې برېښليک کتل غواړې؟",
        "passwordreset-email": "برېښليک پته:",
        "passwordreset-emailtitle": "د {{SITENAME}} د گڼون څرگندنې",
-       "passwordreset-emailelement": "کارن-نوم: $1\nلنډمهاله پټنوم: $2",
+       "passwordreset-emailelement": "کارن-نوم: \n$1\n\nلنډمهاله پټنوم: \n$2",
        "passwordreset-emailsent": "د پټنوم بيا پرځای کېدنې لپاره برېښليک درولېږل شو.",
        "passwordreset-emailsent-capture": "د پټنوم بياپرځای کېدنې لپار مو يو برېښليک درولېږه، برېښليک په لاندې توگه ښودل شوی.",
        "changeemail": "برېښليک پته بدلول",
        "feedback-useragent": "کارن پلاوی:",
        "searchsuggest-search": "پلټل",
        "api-error-badaccess-groups": "تاسې دې ويکي کې د دوتونو ورپورته کولو پرېښه نه لرۍ.",
-       "api-error-duplicate-popup-title": "غبرګونې {{PLURAL:$1|دوتنه|دوتنې}}.",
        "api-error-empty-file": "کومه دوتنه چې تاسې دلته سپارلې هغه تشه ده.",
        "api-error-emptypage": "د نوي تشو مخونو جوړولو پرېښنه نه شته.",
        "api-error-file-too-large": "کومه دوتنه چې تاسې دلته سپارلې ډېره لويه ده.",
index 2e42327..457e955 100644 (file)
        "protectedinterface": "Esta página fornece texto de interface ao software deste wiki, se encontrando protegida para prevenir abusos.\n\nPara adicionar ou alterar traduções em todos os wikis, utilize o [//translatewiki.net/ translatewiki.net], projeto de traduções do MediaWiki.",
        "editinginterface": "'''Aviso:''' Você se encontra prestes a editar uma página que é utilizada para fornecer texto de interface ao software.\nAlterações nesta página irão afetar a aparência da interface de usuário para outros usuários deste wiki.\nPara alterar ou adicionar traduções, considere utilizar a [//translatewiki.net/wiki/Main_Page?setlang=pt-br translatewiki.net], um projeto destinado para a tradução do MediaWiki.",
        "translateinterface": "Para adicionar ou modificar traduções para todas as wikis, por favor use  [//translatewiki.net/ translatewiki.net], o projeto de localização do MediaWiki.",
-       "cascadeprotected": "Esta página foi protegida contra edições porque é transcluída na seguinte {{PLURAL: $1, | página, que é | páginas, que estão protegidas}} com a \"cascata\" opção ativada: $2",
+       "cascadeprotected": "Esta página foi protegida contra edições porque é transcluída {{PLURAL:$1| na seguinte página que está protegida|nas seguintes páginas que estão protegidas}} com a opção \"em cascata\" ativada: $2",
        "namespaceprotected": "Você não possui permissão para editar páginas no espaço nominal '''$1'''.",
        "customcssprotected": "Você não tem permissão para editar esta página CSS, porque ele contém configurações pessoais de outro usuário.",
        "customjsprotected": "Você não tem permissão para editar esta página de JavaScript, porque ele contém configurações pessoais de outro usuário.",
        "createacct-benefit-body2": "{{PLURAL:$1|página|páginas}}",
        "createacct-benefit-body3": "{{PLURAL:$1|contribuidor|contribuidores}} recentes",
        "badretype": "As senhas que você digitou não são iguais.",
-       "usernameinprogress": "Uma criação da conta para este nome de usuário já está em andamento. Por favor, aguarde.",
+       "usernameinprogress": "Uma criação da conta para este nome de usuário já está em andamento.\nPor favor, aguarde.",
        "userexists": "O nome de usuário fornecido já está em uso.\nEscolha um nome diferente.",
        "loginerror": "Erro de autenticação",
        "createacct-error": "Erro ao criar a conta",
        "passwordreset-emailtitle": "Detalhes da conta em {{SITENAME}}",
        "passwordreset-emailtext-ip": "Alguém (provavelmente você, a partir do endereço IP $1)\nsolicitou um lembrete dos seus detalhes de conta para {{SITENAME}} ($4).\n{{PLURAL:$3|A seguinte conta está associada|As seguintes contas estão associadas}} a este e-mail:\n\n$2\n\n{{PLURAL:$3|Esta senha temporária vai|Essas senhas temporárias vão}} expirar em {{PLURAL:$5|um dia|$5 dias}}.\nVocê deve efetuar login e escolher uma nova senha agora.\nSe você conseguir lembrar da senha, ignore este e-mail e continue\nusando sua senha anterior. Caso contrário, prossiga com as instruções\ndisponíveis no link.",
        "passwordreset-emailtext-user": "O usuário $1 da {{SITENAME}} pediu a recuperação dos detalhes da sua conta na {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta está associada|As seguintes contas estão associadas}} a este e-mail:\n\n$2\n\n{{PLURAL:$3|Esta senha temporária irá|Estas senhas temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}. Deve autenticar-se e escolher uma senha nova agora. Se este pedido não foi feito por si, ou se entretanto se recordou da sua senha original e já não deseja alterá-la, pode ignorar esta mensagem e continuar a usar a senha antiga.",
-       "passwordreset-emailelement": "Usuário: $1\nSenha temporária: $2",
+       "passwordreset-emailelement": "Usuário: \n$1\n\nSenha temporária: \n$2",
        "passwordreset-emailsent": "Foi enviado um e-mail de lembrete.",
        "passwordreset-emailsent-capture": "Foi enviado um e-mail de lembrete, que é mostrado abaixo.",
        "passwordreset-emailerror-capture": "Foi gerado um e-mail de recuperação da senha, conforme mostrado abaixo, mas o envio {{GENDER:$2|ao usuário|à usuária}} falhou. $1",
        "readonlywarning": "'''Aviso: O banco de dados foi bloqueado para manutenção, por isso você não poderá salvar a sua edição neste momento.'''\nTalvez você queira copiar o seu texto num editor externo e guardá-lo, para posterior envio.\n\nQuem bloqueou o banco de dados forneceu a seguinte explicação: $1",
        "protectedpagewarning": "'''Atenção: Esta página foi protegida para que apenas usuários com privilégios de administrador possam editá-la.'''\nA última entrada no histórico é fornecida abaixo como referência:",
        "semiprotectedpagewarning": "'''Nota:''' Esta página foi protegida, sendo que apenas usuários registrados poderão editá-la.\nA última entrada no histórico é fornecida abaixo para referência:",
-       "cascadeprotectedwarning": "<strong> Aviso: </ strong> Esta página foi protegida para que somente os usuários com privilégios de administrador pode editá-lo porque ele é transcluída na seguinte protegido por cascata {{PLURAL: $1 | página | páginas}}:",
+       "cascadeprotectedwarning": "<strong>Aviso:</strong> Esta página foi protegida para que somente usuários com privilégios de administrador possam editá-la porque ela é transcluída {{PLURAL:$1|na seguinte página protegida|nas seguintes páginas protegidas}} por cascata:",
        "titleprotectedwarning": "'''Atenção: esta página foi protegida; [[Special:ListGroupRights|privilégios específicos]] são necessários para criá-la.'''\nA última entrada no histórico é fornecida abaixo como referência:",
        "templatesused": "{{PLURAL:$1|Predefinição usada|Predefinições usadas}} nesta página:",
        "templatesusedpreview": "{{PLURAL:$1|Predefinição usada|Predefinições usadas}} nesta previsão:",
        "content-model-css": "CSS",
        "content-json-empty-object": "Objeto vazio",
        "content-json-empty-array": "Array vazia",
-       "duplicate-args-warning": "<strong> Aviso: </ strong> [[:$1]] está chamando [[:$2]] com mais de um valor para o parâmetro \"$3\". Será utilizado apenas o último valor fornecido.",
+       "duplicate-args-warning": "<strong> Aviso: </strong> [[:$1]] está chamando [[:$2]] com mais de um valor para o parâmetro \"$3\". Será utilizado apenas o último valor fornecido.",
        "duplicate-args-category": "Páginas que utilizam argumentos duplicados ao chamar predefinições",
        "duplicate-args-category-desc": "A pagina contem modelos que usam argumentos duplicados, como <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ou <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Aviso: Esta página contém muitas chamadas a funções do analisador \"parser\".\n\nDeveria ter menos de $2 {{PLURAL:$2|chamada|chamadas}}. Neste momento {{PLURAL:$1|há $1 chamada|existem $1 chamadas}}.",
        "search-category": "(categoria $1)",
        "search-file-match": "(coincide com o conteúdo do arquivo)",
        "search-suggest": "Você quis dizer: $1?",
-       "search-rewritten": "Mostrando resultados por $1. Pesquisar em vez de $2.",
+       "search-rewritten": "Mostrando resultados para $1. Pesquisar ao invés por $2.",
        "search-interwiki-caption": "Projetos irmãos",
        "search-interwiki-default": "Resultados de $1:",
        "search-interwiki-more": "(mais)",
        "rows": "Linhas:",
        "columns": "Colunas:",
        "searchresultshead": "Pesquisar",
-       "stub-threshold": "Limiar para a formatação ligação stub (US $1):",
+       "stub-threshold": "Limite para a formatação de ligações para esboços ($1):",
        "stub-threshold-sample-link": "amostra",
        "stub-threshold-disabled": "Desabilitado",
        "recentchangesdays": "Dias a apresentar nas mudanças recentes:",
        "newpageletter": "N",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[{{PLURAL:$1|$1 usuário|$1 usuários}} vigiando]",
-       "rc_categories": "Limite para categorias (separar com \"|\"):",
-       "rc_categories_any": "Qualquer dos escolhidos",
+       "rc_categories": "Limitar às categorias (separar com \"|\"):",
+       "rc_categories_any": "Qualquer um dos escolhidos",
        "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} após alterações",
        "newsectionsummary": "/* $1 */ nova seção",
        "rc-enhanced-expand": "Exibir detalhes",
        "uploaddisabledtext": "O envio de arquivos encontra-se desativado.",
        "php-uploaddisabledtext": "O envio de arquivos via PHP está desativado.\nVerifique a configuração file_uploads.",
        "uploadscripted": "Este arquivo contém HTML ou código que pode ser erroneamente interpretado por um navegador web.",
-       "upload-scripted-pi-callback": "Não é possível fazer upload de um arquivo que contém a instrução de processamento XML-estilo.",
-       "uploaded-script-svg": "Elemento encontrado programável \"$1\" no arquivo SVG carregado.",
+       "upload-scripted-pi-callback": "Não é possível fazer upload de um arquivo que contém instruções de processamento de folha de estilo XML.",
+       "uploaded-script-svg": "Encontrado elemento de script \"$1\" no arquivo SVG carregado.",
        "uploaded-hostile-svg": "Encontrado CSS inseguro no elemento de estilo do arquivo SVG carregado.",
-       "uploaded-event-handler-on-svg": "Configuração de manipulador de eventos atribui <code> $1 = \"$2\" </ code> não é permitido em arquivos SVG.",
+       "uploaded-event-handler-on-svg": "Não é permitido configurar atributos que manipulem eventos  <code>$1=\"$2\"</code> em arquivos SVG.",
        "uploadscriptednamespace": "Este aruivo SVG contém um espaço nominal probido \"$1\"",
        "uploadinvalidxml": "O XML no arquivo enviado não pôde ser analisado.",
        "uploadvirus": "O arquivo contém vírus!\nDetalhes: $1",
        "upload-dialog-label-infoform-title": "Detalhes",
        "upload-dialog-label-infoform-name": "Nome",
        "upload-dialog-label-infoform-description": "Descrição",
-       "upload-dialog-label-usage-title": "uso",
+       "upload-dialog-label-usage-title": "Uso",
        "upload-dialog-label-usage-filename": "Nome do arquivo",
        "backend-fail-stream": "Não foi possível transmitir o arquivo  $1.",
        "backend-fail-backup": "Não foi possível fazer backup do arquivo  $1 .",
        "unusedimages": "Arquivos não utilizados",
        "wantedcategories": "Categorias pedidas",
        "wantedpages": "Páginas pedidas",
-       "wantedpages-summary": "Lista de páginas não-existentes com mais links para eles, excluindo páginas que apenas têm redirecionamentos links para eles. Para obter uma lista de páginas não-existentes que têm redirecionamentos links para eles, veja [[{{#special: Brokenredirects}} | lista de redirecionamentos quebrados]].",
+       "wantedpages-summary": "Lista de páginas inexistentes com mais ligações para elas, excluindo páginas que têm apenas redirecionamentos ligando a elas. Para uma lista de páginas inexistentes mas que têm redirecionamentos que ligam a elas, veja [[{{#special:BrokenRedirects}}|a lista de redirecionamentos quebrados]].",
        "wantedpages-badtitle": "Título inválido no conjunto de resultados: $1",
        "wantedfiles": "Arquivos pedidos",
        "wantedfiletext-cat": "Os seguintes arquivos são usados, mas não existem. Arquivos de repositórios externos podem acabar sendo listados apesar de existirem. Esses falsos positivos aparecerão <del>riscados</del>. As páginas que incluem arquivos inexistentes são listadas em [[:$1]].",
        "booksources-text": "É exibida a seguir uma listagem de links para outros sites que vendem livros novos e usados e que possam possuir informações adicionais sobre os livros que você está pesquisando:",
        "booksources-invalid-isbn": "O número ISBN fornecido não parece ser válido; verifique se houve erros ao copiar da fonte original.",
        "specialloguserlabel": "Executor:",
-       "speciallogtitlelabel": "Alvo (título ou {{ns: user}}: nome de usuário para usuário):",
+       "speciallogtitlelabel": "Alvo (título da página ou {{ns:user}}:'nomedeusuário' para usuários):",
        "log": "Registros",
        "all-logs-page": "Todos os registros públicos",
        "alllogstext": "Exibição combinada de todos registros disponíveis para o {{SITENAME}}.\nVocê pode diminuir a lista escolhendo um tipo de registro, um nome de usuário (sensível a maiúsculas e minúsculas), ou uma página afetada (também sensível a maiúsculas e minúsculas).",
        "rollback-success": "Foram revertidas as edições de $1, com o conteúdo passando a estar como na última edição de $2.",
        "sessionfailure-title": "Erro de sessão",
        "sessionfailure": "Foram detetados problemas com a sua sessão;\nEsta ação foi cancelada como medida de proteção contra a intercepção de sessões.\nExperimente usar o botão \"Voltar\" e atualizar a página de onde veio e tente novamente.",
-       "changecontentmodel": "Mudar modelo de conteúdo de uma página",
-       "changecontentmodel-legend": "Mudar modelo de conteúdo",
+       "changecontentmodel": "Alterar o modelo de conteúdo de uma página",
+       "changecontentmodel-legend": "Alterar o modelo de conteúdo",
        "changecontentmodel-title-label": "Título da página",
        "changecontentmodel-reason-label": "Motivo:",
        "logentry-contentmodel-change-revertlink": "reverter",
        "protect-othertime": "Outra duração:",
        "protect-othertime-op": "outra duração",
        "protect-existing-expiry": "A proteção atual expirará às $3 de $2",
-       "protect-existing-expiry-infinity": "Existente tempo de expiração: infinito",
+       "protect-existing-expiry-infinity": "Tempo de expiração existente: infinito",
        "protect-otherreason": "Outro motivo/motivo adicional:",
        "protect-otherreason-op": "Outro motivo",
        "protect-dropdown": "*Motivos comuns para proteção\n** Vandalismo excessivo\n** Inserção excessiva de ''spams''\n** Guerra de edições improdutiva\n** Página bastante acessada",
        "api-error-badtoken": "Erro interno: token inválido.",
        "api-error-copyuploaddisabled": "O upload por URL está desativado neste servidor.",
        "api-error-duplicate": "Já {{PLURAL:$1|há [$2 outro arquivo]|existem [$2 outros arquivos]}} com o mesmo conteúdo",
-       "api-error-duplicate-archive": "Já {{PLURAL:$1|existiu [$2 outro arquivo]|existiram [$2 outros arquivos]}} neste site com o mesmo conteúdo que, no entanto, {{PLURAL:$1|foi removido|foram removidos}}.",
-       "api-error-duplicate-archive-popup-title": "Duplicata de {{PLURAL:$1|arquivo|arquivos}} que já {{PLURAL:$1|foi apagado|foram apagados}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Arquivo|Arquivos}} em duplicata",
+       "api-error-duplicate-archive": "Já {{PLURAL:$1|existiu outro arquivo|existiram outros arquivos}} neste site com o mesmo conteúdo que, no entanto, {{PLURAL:$1|foi removido|foram removidos}}.",
        "api-error-empty-file": "O arquivo que você enviou está vazio.",
        "api-error-emptypage": "Não é permitido criar páginas novas vazias.",
        "api-error-fetchfileerror": "Erro interno: ocorreu um problema indeterminado ao acessar o arquivo.",
        "special-characters-title-minus": "sinal de menos",
        "mw-widgets-dateinput-placeholder-day": "AAAA-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
-       "mw-widgets-titleinput-description-redirect": "Direto para $1"
+       "mw-widgets-titleinput-description-redirect": "redirecionar para $1"
 }
index 47bebf8..5c340e0 100644 (file)
@@ -64,7 +64,8 @@
                        "Leon saudanha",
                        "Macofe",
                        "He7d3r",
-                       "Ti4goc"
+                       "Ti4goc",
+                       "Jkb8"
                ]
        },
        "tog-underline": "Sublinhar ligações:",
        "nstab-template": "Predefinição",
        "nstab-help": "Ajuda",
        "nstab-category": "Categoria",
+       "mainpage-nstab": "Página principal",
        "nosuchaction": "Operação não existe",
        "nosuchactiontext": "A operação especificada pela URL é inválida.\nÉ possível que tenha escrito mal a URL ou seguido uma ligação incorreta.\nIsto pode também indicar um defeito no software da {{SITENAME}}.",
        "nosuchspecialpage": "Esta página especial não existe",
        "passwordreset-emailtitle": "Detalhes da conta na {{SITENAME}}",
        "passwordreset-emailtext-ip": "Alguém (provavelmente você, a partir do endereço IP $1) pediu a recuperação da palavra-passe no projeto {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta de utilizador está associada|As seguintes contas de utilizador estão associadas}} a este correio eletrónico:\n\n$2\n\n{{PLURAL:$3|Esta palavra-passe temporária irá|Estas palavras-passes temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}.\nDeve autenticar-se e escolher uma palavra-passe nova agora. Se outra pessoa fez este pedido, ou se entretanto se recordou da sua palavra-passe original e já não deseja alterá-la, pode ignorar esta mensagem e continuar a usar a palavra-passe antiga.",
        "passwordreset-emailtext-user": "O utilizador $1 do projeto {{SITENAME}} pediu a recuperação da sua palavra-passe no projeto {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta de utilizador está associada|As seguintes contas de utilizador estão associadas}} a este endereço de correio eletrónico:\n\n$2\n\n{{PLURAL:$3|Esta palavra-passe temporária irá|Estas palavras-passes temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}.\nDeve autenticar-se e escolher uma palavra-passe nova agora. Se outra pessoa fez este pedido, ou se entretanto se recordou da sua palavra-passe original e já não deseja alterá-la, pode ignorar esta mensagem e continuar a usar a palavra-passe antiga.",
-       "passwordreset-emailelement": "Utilizador(a): $1\nPalavra-passe temporária: $2",
+       "passwordreset-emailelement": "{{GENDER:$1|Utilizador|Utilizadora}}: \n$1\n\nPalavra-passe temporária: \n$2",
        "passwordreset-emailsent": "Foi enviado um correio eletrónico para recuperação da palavra-passe.",
        "passwordreset-emailsent-capture": "Foi enviado um correio eletrónico para recuperação da palavra-passe, que é mostrado abaixo.",
        "passwordreset-emailerror-capture": "Foi gerado um correio eletrónico para redefinição da palavra-passe, mostrado abaixo, mas o seu envio para {{GENDER:$2|o utilizador|a utilizadora}} falhou: $1",
        "changeemail-password": "A sua palavra-passe em {{SITENAME}}:",
        "changeemail-submit": "Alterar correio eletrónico",
        "changeemail-throttled": "Realizou demasiadas tentativas de início de sessão.\nAguarde $1 antes de tentar novamente, por favor.",
+       "changeemail-nochange": "Por favor insira um novo endereço de e-mail.",
        "resettokens": "Redefinir chaves",
        "resettokens-text": "Pode redefinir as chaves de acesso a certos dados privados associados à sua conta aqui.\n\nDeve fazê-lo se as divulgou acidentalmente a alguém ou se a sua conta tiver sido comprometida.",
        "resettokens-no-tokens": "Não há chaves para redefinir.",
        "unusedimages": "Ficheiros não utilizados",
        "wantedcategories": "Categorias desejadas",
        "wantedpages": "Páginas desejadas",
-       "wantedpages-summary": "Lista de páginas inexistentes com o maior número de ligações à elas, excluindo páginas que possuem apenas redirecionamentos à elas. Para obter uma lista de páginas inexistentes que possuam redirecionamento à elas, veja [[{{#special:BrokenRedirects}}|a lista de redirecionamentos quebrados]].",
+       "wantedpages-summary": "Lista de páginas inexistentes com o maior número de ligações a elas, excluindo páginas que possuem apenas redirecionamentos a elas. Para obter uma lista de páginas inexistentes que possuam redirecionamento a elas, veja [[{{#special:BrokenRedirects}}|a lista de redirecionamentos quebrados]].",
        "wantedpages-badtitle": "Título inválido no conjunto de resultados: $1",
        "wantedfiles": "Ficheiros desejados",
        "wantedfiletext-cat": "Os seguintes ficheiros são usados, mas não existem. Ficheiros de repositórios externos podem ser listados apesar de existirem. Tais falsos positivos aparecerão <del>riscados</del>. Adicionalmente, as páginas que incorporam ficheiros que não existem estão listadas em [[:$1]].",
        "protect-othertime": "Outra duração:",
        "protect-othertime-op": "outra duração",
        "protect-existing-expiry": "A proteção atual expirará às $3 de $2",
-       "protect-existing-expiry-infinity": "Existente tempo de expiração: infinito",
+       "protect-existing-expiry-infinity": "Tempo de expiração existente: infinito",
        "protect-otherreason": "Outro motivo/motivo adicional:",
        "protect-otherreason-op": "Outro motivo",
        "protect-dropdown": "*Motivos comuns para proteção\n** Vandalismo excessivo\n** ''Spam'' excessivo\n** Guerra de edições improdutiva\n** Página muito visitada",
        "blockip-legend": "Bloquear utilizador",
        "blockiptext": "Utilize o formulário abaixo para bloquear o acesso de escrita a um endereço IP específico ou a um nome de utilizador.\nIsto só deve ser feito para prevenir vandalismo e de acordo com a [[{{MediaWiki:Policy-url}}|política]]. Indique a seguir um motivo de bloqueio específico (por exemplo, indicando as páginas que foram alvo de vandalismo).",
        "ipaddressorusername": "Endereço de IP ou utilizador(a):",
-       "ipbexpiry": "Validade:",
+       "ipbexpiry": "Expiração:",
        "ipbreason": "Motivo:",
        "ipbreason-dropdown": "*Razões comuns para um bloqueio\n** Inserção de informações falsas\n** Remoção de conteúdos de páginas\n** Inserção de \"spam\" para sítios externos\n** Inserção de conteúdo sem sentido/incompreensível nas páginas\n** Comportamento intimidador/inoportuno\n** Uso abusivo de contas múltiplas\n** Nome de utilizador inaceitável",
        "ipb-hardblock": "Impedir que utilizadores autenticados editem a partir deste endereço IP",
        "blocklist-rangeblocks": "Ocultar bloqueios de faixas",
        "blocklist-timestamp": "Data e hora",
        "blocklist-target": "Destinatário",
-       "blocklist-expiry": "Duração",
+       "blocklist-expiry": "Expira",
        "blocklist-by": "Administrador que realizou o bloqueio",
        "blocklist-params": "Parâmetros do bloqueio",
        "blocklist-reason": "Motivo",
        "block-log-flags-angry-autoblock": "ativado o bloqueio automático melhorado",
        "block-log-flags-hiddenname": "nome de utilizador oculto",
        "range_block_disabled": "A funcionalidade de administrador para o bloqueio de gamas de IP está desativada.",
-       "ipb_expiry_invalid": "Tempo de validade inválido.",
+       "ipb_expiry_invalid": "Tempo de expiração inválido.",
        "ipb_expiry_temp": "Bloqueios com nome de utilizador oculto devem ser permanentes.",
        "ipb_hide_invalid": "Não foi possível suprimir esta conta; ela possui mais de {{PLURAL:$1|uma edição|$1 edições}}.",
        "ipb_already_blocked": "\"$1\" já se encontra bloqueado",
        "confirmemail_sent": "Correio de confirmação enviado.",
        "confirmemail_oncreate": "Foi enviado um código de confirmação para o seu endereço de correio eletrónico.\nEste código não é necessário para se autenticar no sistema, mas será necessário para ativar qualquer funcionalidade baseada no uso de correio na wiki.",
        "confirmemail_sendfailed": "A {{SITENAME}} não conseguiu enviar a mensagem de confirmação.\nVerifique se o seu endereço de correio eletrónico tem caracteres inválidos.\n\nO sistema de correio devolveu o erro: $1",
-       "confirmemail_invalid": "Código de confirmação inválido. O código pode ter expirado.",
+       "confirmemail_invalid": "Código de confirmação inválido. O código pode ter expirado.",
        "confirmemail_needlogin": "Precisa de $1 para confirmar o seu endereço de correio eletrónico.",
        "confirmemail_success": "O seu endereço de correio eletrónico foi confirmado.\nPode agora [[Special:UserLogin|autenticar-se]] e desfrutar da wiki.",
        "confirmemail_loggedin": "O seu endereço de correio eletrónico foi confirmado.",
        "tags-edit-success": "As alterações foram aplicadas com sucesso.",
        "tags-edit-failure": "As alterações não puderam ser aplicadas:\n$1",
        "tags-edit-nooldid-title": "Revisão de página inválida",
-       "tags-edit-nooldid-text": "Não foi especificada nenhuma revisão na qual será realizada esta acção, ou a revisão especificada não existe.",
+       "tags-edit-nooldid-text": "Não foi especificada nenhuma revisão na qual será realizada esta ação, ou a revisão especificada não existe.",
        "tags-edit-none-selected": "Por favor, selecione pelo menos uma etiqueta para adicionar ou remover.",
        "comparepages": "Comparar páginas",
        "compare-page1": "Página 1",
        "logentry-newusers-create2": "A conta de utilizador $3 foi criada por $1",
        "logentry-newusers-byemail": "A conta de utilizador $3 foi criada por $1 e a palavra-passe foi enviada por correio eletrónico",
        "logentry-newusers-autocreate": "A conta de utilizador $1 foi criada automaticamente",
-       "logentry-protect-move_prot": "$1 {{GENDER:$2|moveu}} as preferências de protecção de $4 para $3",
+       "logentry-protect-move_prot": "$1 {{GENDER:$2|moveu}} as preferências de proteção de $4 para $3",
        "logentry-rights-rights": "$1 modificou os privilégios do utilizador $3 de $4 para $5",
        "logentry-rights-rights-legacy": "$1 alterou os grupos de $3",
        "logentry-rights-autopromote": "$1 foi automaticamente {{GENDER:$2|promovido|promovida}} de $4 a $5",
        "api-error-badaccess-groups": "Não tem permissão para enviar ficheiros para esta wiki.",
        "api-error-badtoken": "Erro interno: Chave incorrecta.",
        "api-error-copyuploaddisabled": "O carregamento de ficheiros por URL não foi possibilitado neste servidor.",
-       "api-error-duplicate": "Já {{PLURAL:$1|existe [$2 outro ficheiro]|existem [$2 outros ficheiros]}} na wiki com o mesmo conteúdo.",
-       "api-error-duplicate-archive": "Já {{PLURAL:$1|existia no site [$2 outro ficheiro]|existiam no site [$2 alguns outros ficheiros]}} com o mesmo conteúdo, mas {{PLURAL:$1|foi|foram}} eliminados.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Ficheiro duplicado que já foi eliminado|Ficheiros duplicados que já foram eliminados}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Ficheiro duplicado|Ficheiros duplicados}}",
+       "api-error-duplicate": "Já {{PLURAL:$1|existia outro ficheiro|existiam outros ficheiro}} na wiki com o mesmo conteúdo.",
+       "api-error-duplicate-archive": "Já {{PLURAL:$1|estava outro ficheiro|estavam outros ficheiros}} no  site com o mesmo conteúdo, mas {{PLURAL:$1|foi|foram}} eliminados.",
        "api-error-empty-file": "O ficheiro que enviou está vazio.",
        "api-error-emptypage": "Não é permitido criar páginas novas vazias.",
        "api-error-fetchfileerror": "Erro interno: Ocorreu um problema indeterminado ao aceder ao ficheiro.",
        "api-error-stashfailed": "Erro interno: O servidor não conseguiu armazenar o ficheiro temporário.",
        "api-error-publishfailed": "Erro interno: Servidor não conseguiu publicar ficheiro temporário.",
        "api-error-stasherror": "Ocorreu um erro no carregamento do ficheiro escondido.",
-       "api-error-stashedfilenotfound": "O escondido ficheiro não foi encontrado ao tentar carregar a pasta do stash.",
+       "api-error-stashedfilenotfound": "O ficheiro do stash não foi encontrado ao tentar carregá-lo.",
        "api-error-stashpathinvalid": "O caminho no qual o ficheiro escondido deveria ter sido encontrado era inválido.",
        "api-error-stashfilestorage": "Ocorreu um erro no carregamento do ficheiro escondido.",
        "api-error-stashzerolength": "O servidor não pôde esconder o ficheiro, porque ele tinha de comprimento zero.",
        "expand_templates_generate_xml": "Mostrar a árvore de análise sintáctica do XML",
        "expand_templates_generate_rawhtml": "Mostrar o HTML puro",
        "expand_templates_preview": "Antevisão do resultado",
-       "expand_templates_preview_fail_html": "<em>Devido ao fato de {{SITENAME}} possuir código HTML puro ativado e de ter havido perda de dados da sessão, a pré-visualização ficará oculta como precaução contra ataques do JavaScript.</em>\n\n<strong>Se esta é uma legítima tentativa de visualização, por favor tente novamente.</strong> Se não resultar, experimente [[Special:UserLogout|sair]] e iniciar sessão de novo.",
+       "expand_templates_preview_fail_html": "<em>Devido ao fato de {{SITENAME}} possuir código HTML puro ativado e de ter havido perda de dados da sessão, a pré-visualização ficará oculta como precaução contra ataques por JavaScript.</em>\n\n<strong>Se esta é uma legítima tentativa de visualização, por favor tente novamente.</strong> Se ainda não funcionar, experimente [[Special:UserLogout|sair]] e iniciar sessão de novo.",
        "expand_templates_preview_fail_html_anon": "<em>Devido ao fato de {{SITENAME}} possuir código HTML puro ativado e de não ter sessão iniciada, a pré-visualização ficará oculta como precaução contra ataques do JavaScript.</em>\n\n<strong>Se esta é uma legítima tentativa de visualização, por favor [[Especial:UserLogin|inicie sessão]] e tente novamente.</strong>",
        "pagelanguage": "Seletor de idioma da página",
        "pagelang-name": "Página",
index 4256930..4474ec4 100644 (file)
        "editfont-monospace": "Option used in [[Special:Preferences]], tab Editing. {{Gender}}",
        "editfont-sansserif": "Option used in [[Special:Preferences]], tab Editing. {{Gender}}",
        "editfont-serif": "Option used in [[Special:Preferences]], tab Editing. {{Gender}}",
-       "sunday": "Name of the day of the week.",
-       "monday": "Name of the day of the week.",
-       "tuesday": "Name of the day of the week.",
-       "wednesday": "Name of the day of the week.",
-       "thursday": "Name of the day of the week.",
-       "friday": "Name of the day of the week.",
-       "saturday": "Name of the day of the week.",
+       "sunday": "Name of the day of the week.\n{{Identical|Sunday}}",
+       "monday": "Name of the day of the week.\n{{Identical|Monday}}",
+       "tuesday": "Name of the day of the week.\n{{Identical|Tuesday}}",
+       "wednesday": "Name of the day of the week.\n{{Identical|Wednesday}}",
+       "thursday": "Name of the day of the week.\n{{Identical|Thursday}}",
+       "friday": "Name of the day of the week.\n{{Identical|Friday}}",
+       "saturday": "Name of the day of the week.\n{{Identical|Saturday}}",
        "sun": "Abbreviation for Sunday, a day of the week.",
        "mon": "Abbreviation for Monday, a day of the week.",
        "tue": "Abbreviation for Tuesday, a day of the week.",
        "nstab-template": "The name for the tab of the template namespace. Example: [[Template:Example]]\n\nSee also:\n* {{msg-mw|Nstab-template}}\n* {{msg-mw|Accesskey-ca-nstab-template}}\n* {{msg-mw|Tooltip-ca-nstab-template}}\n{{Identical|Template}}",
        "nstab-help": "The name for the tab of the help namespace. Example: [[Help:Rollback]]\n\nSee also:\n* {{msg-mw|Nstab-help}}\n* {{msg-mw|Accesskey-ca-nstab-help}}\n* {{msg-mw|Tooltip-ca-nstab-help}}",
        "nstab-category": "The name for the tab of the category namespace. Example: [[:Category:Example]]\n\nSee also:\n* {{msg-mw|Nstab-category}}\n* {{msg-mw|Accesskey-ca-nstab-category}}\n* {{msg-mw|Tooltip-ca-nstab-category}}\n{{Identical|Category}}",
-       "mainpage-nstab": "{{notranslate}}",
+       "mainpage-nstab": "This is the name for Main Page tab shown on the Main Page.\n{{Identical|Main Page}}",
        "nosuchaction": "The title of the error you get when trying to open a page with invalid \"action\" parameter. The text of the warning is the message {{msg-mw|nosuchactiontext}}.\n\nSee example [{{canonicalurl:Main_page|action=x}} action=x].",
        "nosuchactiontext": "This error is shown when trying to open a page with invalid \"action\" parameter, e.g. [{{canonicalurl:Main_page|action=x}} action=x].\n* The title of this error is the message {{msg-mw|nosuchaction}}.",
        "nosuchspecialpage": "The title of the error you get when trying to open a special page which does not exist. The text of the warning is the message {{msg-mw|nospecialpagetext}}. Example: [[Special:Nosuchpage]]",
        "virus-scanfailed": "Used as error message. \"scan\" stands for \"virus scan\". Parameters:\n* $1 - exit code of virus scanner",
        "virus-unknownscanner": "Used as error message. This message is followed by the virus scanner name.",
        "logouttext": "Log out message. Parameters:\n* $1 - (Unused) an URL to [[Special:Userlogin]] containing <code>returnto</code> and <code>returntoquery</code> parameters",
-       "welcomeuser": "Text for a welcome heading that users see after registering a user account.\n\nParameters:\n* $1 - the username of the new user. See [[bugzilla:42215]]",
-       "welcomecreation-msg": "A welcome message users see after registering a user account, following a welcomeuser heading.\n\nParameters:\n* $1 - (Unused) the username of the new user.\n\nReplaces welcomecreation in 1.21wmf5, see [[bugzilla:42215]]",
+       "welcomeuser": "Text for a welcome heading that users see after registering a user account.\n\nParameters:\n* $1 - the username of the new user. See [[phab:T44215]]",
+       "welcomecreation-msg": "A welcome message users see after registering a user account, following a welcomeuser heading.\n\nParameters:\n* $1 - (Unused) the username of the new user.\n\nReplaces [[MediaWiki:welcomecreation|welcomecreation]] in 1.21wmf5, see [[phab:T44215]]",
        "yourname": "Since 1.22 no longer used in core, but used by some extensions.\n{{Identical|Username}}",
        "userlogin-yourname": "In user login & create account forms, label for username field.\n{{doc-important|<nowiki>{{</nowiki>[[Gender|GENDER]]<nowiki>}}</nowiki> is '''NOT''' supported.}}\n\nSee examples: [[Special:UserLogin]] and [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]\n{{Identical|Username}}",
        "userlogin-yourname-ph": "Placeholder text in login & create account form field.\n\nSee example: [[Special:UserLogin]] and [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]",
        "changeemail-password": "Label for password field in [[Special:ChangeEmail]].",
        "changeemail-submit": "Submit button on [[Special:ChangeEmail]]",
        "changeemail-throttled": "Error message shown at [[Special:ChangeEmail]] after the user has tried to login with incorrect password too many times.\n\nThe user has to wait a certain time before trying to log in again.\n\nParameters:\n* $1 - the time to wait before the next login attempt. Automatically formatted using the following duration messages:\n** {{msg-mw|Duration-millennia}}\n** {{msg-mw|Duration-centuries}}\n** {{msg-mw|Duration-decades}}\n** {{msg-mw|Duration-years}}\n** {{msg-mw|Duration-weeks}}\n** {{msg-mw|Duration-days}}\n** {{msg-mw|Duration-hours}}\n** {{msg-mw|Duration-minutes}}\n** {{msg-mw|Duration-seconds}}\n\nThis is a protection against robots trying to find the password by trying lots of them.\nThe number of attempts and waiting time are configured via [[mw:Manual:$wgPasswordAttemptThrottle|$wgPasswordAttemptThrottle]].\nThis message is used in html.\n\nSee also:\n* {{msg-mw|Changepassword-throttled}}",
+       "changeemail-nochange": "Error message shown on [[Special:ChangeEmail]] if the old email address was entered in the new email address field.",
        "resettokens": "{{doc-special|ResetTokens}}\nIn this case \"token\" may be translated as \"key\", or similar.\n{{Identical|Reset token}}",
        "resettokens-summary": "{{ignored}}",
        "resettokens-text": "Text on [[Special:ResetTokens]].",
        "sectioneditnotsupported-text": "I think this is the text of an error message, which presumably appears when someone tries to edit a section, and section editing is disabled. Explanation of section editing on [[meta:Help:Section_editing#Section_editing|meta]].",
        "permissionserrors": "Used as title of error message.\n\nSee also:\n* {{msg-mw|loginreqtitle}}\n{{Identical|Permission error}}",
        "permissionserrorstext": "This message is \"without action\" version of {{msg-mw|Permissionserrorstext-withaction}}.\n\nParameters:\n* $1 - the number of reasons that were found why ''the action'' cannot be performed",
-       "permissionserrorstext-withaction": "This message is \"with action\" version of {{msg-mw|Permissionserrorstext}}.\n\nParameters:\n* $1 - the number of reasons that were found why the action cannot be performed\n* $2 - one of the action-* messages (for example {{msg-mw|action-edit}}) or other such messages tagged with {{tl|doc-action}} in their documentation\n\nPlease report at [[Support]] if you are unable to properly translate this message. Also see [[bugzilla:14246]] (now closed) for background.",
+       "permissionserrorstext-withaction": "This message is \"with action\" version of {{msg-mw|Permissionserrorstext}}.\n\nParameters:\n* $1 - the number of reasons that were found why the action cannot be performed\n* $2 - one of the action-* messages (for example {{msg-mw|action-edit}}) or other such messages tagged with {{tl|doc-action}} in their documentation\n\nPlease report at [[Support]] if you are unable to properly translate this message. Also see [[phab:T16246]] (now closed) for background.",
        "recreate-moveddeleted-warn": "Warning shown when creating a page which has already been deleted. See for example [[Test]].",
        "moveddeleted-notice": "Shown on top of a deleted page in normal view modus ([{{canonicalurl:Test}} example]).",
+       "moveddeleted-notice-recent": "Shown on top of a recently deleted page in normal view modus ([{{canonicalurl:Test}} example]).",
        "log-fulllog": "Used as link text.",
        "edit-hook-aborted": "Used as error message.\n\nSee also:\n* {{msg-mw|edit-gone-missing}}\n* {{msg-mw|edit-conflict}}\n* {{msg-mw|edit-no-change}}\n* {{msg-mw|edit-already-exists}}",
        "edit-gone-missing": "Used as error message.\n\nSee also:\n* {{msg-mw|edit-hook-aborted}}\n* {{msg-mw|edit-conflict}}\n* {{msg-mw|edit-no-change}}\n* {{msg-mw|edit-already-exists}}",
        "rev-suppressed-unhide-diff": "Parameters:\n* $1 - a HTML link to the diff\n{{Related|Rev-deleted-diff}}",
        "rev-deleted-diff-view": "{{Related|Rev-deleted-diff}}",
        "rev-suppressed-diff-view": "{{Related|Rev-deleted-diff}}",
-       "rev-delundel": "Link in page history for oversight (see also {{msg-mw|rev-showdeleted}})",
-       "rev-showdeleted": "Link in page history for oversight (see also {{msg-mw|rev-delundel}})\n{{Identical|Show}}",
+       "rev-delundel": "Link in page history for revdel (see also {{msg-mw|rev-showdeleted}})",
+       "rev-showdeleted": "Link in page history for revdel (see also {{msg-mw|rev-delundel}})\n{{Identical|Show}}",
        "revisiondelete": "{{RevisionDelete}}\n\n{{doc-special|RevisionDelete|unlisted=1}}",
        "revdelete-nooldid-title": "{{RevisionDelete}}",
        "revdelete-nooldid-text": "{{RevisionDelete}}",
        "revdelete-confirm": "This message is a part of the [[mw:RevisionDelete|RevisionDelete]] feature.\n\nRefers to {{msg-mw|Policy-url}}.\n\nSee also:\n* {{msg-mw|Revdelete-suppress}}\n* {{msg-mw|Revdelete-suppress-text}}\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]",
        "revdelete-suppress-text": "Used as usage text in [[Special:RevisionDelete]].\n\nSee also:\n* {{msg-mw|Revdelete-suppress}}\n* {{msg-mw|Revdelete-confirm}}",
        "revdelete-legend": "{{RevisionDelete}}\nUsed as legend for the form.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n\nSee also:\n* {{msg-mw|Revdelete-log|label for dropdown}}\n* {{msg-mw|Revdelete-reason-dropdown|item list for dropdown|notext=1}}\n* {{msg-mw|Revdelete-reasonotherlist|item in dropdown}}\n* {{msg-mw|Revdelete-otherreason|label for input box}}\n* {{msg-mw|Revdelete-submit|submit button}}",
-       "revdelete-hide-text": "Option for oversight. This message is a part of the [[mw:RevisionDelete|RevisionDelete]] feature.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n{{Related|Revdelete-hide}}",
-       "revdelete-hide-image": "Option for <del>oversight</del> [[:mw:RevisionDelete|RevisionDelete]] feature.\n{{Related|Revdelete-hide}}",
-       "revdelete-hide-name": "Option for oversight.\n{{Related|Revdelete-hide}}",
-       "revdelete-hide-comment": "Option for oversight. {{RevisionDelete}}\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n{{Related|Revdelete-hide}}\n{{Identical|Edit summary}}",
-       "revdelete-hide-user": "Option for oversight. {{RevisionDelete}}\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n{{Related|Revdelete-hide}}",
-       "revdelete-hide-restricted": "Option for oversight.\n{{Related|Revdelete-hide}}",
+       "revdelete-hide-text": "Option for revdel. This message is a part of the [[mw:RevisionDelete|RevisionDelete]] feature.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n{{Related|Revdelete-hide}}",
+       "revdelete-hide-image": "Option for revdel.\n{{Related|Revdelete-hide}}",
+       "revdelete-hide-name": "Option for revdel.\n{{Related|Revdelete-hide}}",
+       "revdelete-hide-comment": "Option for revdel. {{RevisionDelete}}\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n{{Related|Revdelete-hide}}\n{{Identical|Edit summary}}",
+       "revdelete-hide-user": "Option for revdel. {{RevisionDelete}}\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n{{Related|Revdelete-hide}}",
+       "revdelete-hide-restricted": "Option for suppression.\n{{Related|Revdelete-hide}}",
        "revdelete-radio-same": "This message is a part of the [[mw:RevisionDelete|RevisionDelete]] feature. The message is a caption for a column of radioboxes inside a box with {{msg-mw|Revdelete-legend}} as a title.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\nThere are three radio buttons in each row, and the captions above each column read:\n* {{msg-mw|Revdelete-radio-same}}\n* {{msg-mw|Revdelete-radio-set}}\n* {{msg-mw|Revdelete-radio-unset}}",
        "revdelete-radio-set": "This message is a part of the [[mw:RevisionDelete|RevisionDelete]] feature. The message is a caption for a column of radioboxes inside a box with {{msg-mw|Revdelete-legend}} as a title.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\nThere are three radio buttons in each row, and the captions above each column read:\n* {{msg-mw|Revdelete-radio-same}}\n* {{msg-mw|Revdelete-radio-set}}\n* {{msg-mw|Revdelete-radio-unset}}\n{{Identical|Hidden}}",
        "revdelete-radio-unset": "This message is a part of the [[mw:RevisionDelete|RevisionDelete]] feature. The message is a caption for a column of radioboxes inside a box with {{msg-mw|Revdelete-legend}} as a title.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\nThere are three radio buttons in each row, and the captions above each column read:\n* {{msg-mw|Revdelete-radio-same}}\n* {{msg-mw|Revdelete-radio-set}}\n* {{msg-mw|Revdelete-radio-unset}}\n{{Identical|Visible}}",
-       "revdelete-suppress": "Option for oversight; used in [[Special:RevisionDelete]].\n\nSee also:\n* {{msg-mw|Revdelete-suppress-text}}\n* {{msg-mw|Revdelete-confirm}}",
+       "revdelete-suppress": "Option for suppression; used in [[Special:RevisionDelete]].\n\nSee also:\n* {{msg-mw|Revdelete-suppress-text}}\n* {{msg-mw|Revdelete-confirm}}",
        "revdelete-unsuppress": "{{RevisionDelete}}",
-       "revdelete-log": "{{Identical|Reason}}\n{{RevisionDelete}}\nUsed as log comment text for oversight.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n\nSee also:\n* {{msg-mw|Revdelete-legend|legend for the form}}\n* {{msg-mw|Revdelete-reason-dropdown|item list for dropdown|notext=1}}\n* {{msg-mw|Revdelete-reasonotherlist|item in dropdown}}\n* {{msg-mw|Revdelete-otherreason|label for input box}}\n* {{msg-mw|Revdelete-submit|submit button}}",
+       "revdelete-log": "{{Identical|Reason}}\n{{RevisionDelete}}\nUsed as log comment text for revdel.\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]\n\nSee also:\n* {{msg-mw|Revdelete-legend|legend for the form}}\n* {{msg-mw|Revdelete-reason-dropdown|item list for dropdown|notext=1}}\n* {{msg-mw|Revdelete-reasonotherlist|item in dropdown}}\n* {{msg-mw|Revdelete-otherreason|label for input box}}\n* {{msg-mw|Revdelete-submit|submit button}}",
        "revdelete-submit": "{{RevisionDelete}}\nThis is the submit button on [[Special:RevisionDelete]]. Parameters:\n* $1 - number of revisions\nSee also:\n* {{msg-mw|Revdelete-legend|legend for the form}}\n* {{msg-mw|Revdelete-log|label for dropdown}}\n* {{msg-mw|Revdelete-reason-dropdown|item list for dropdown|notext=1}}\n* {{msg-mw|Revdelete-reasonotherlist|item in dropdown}}\n* {{msg-mw|Revdelete-otherreason|label for input box}}\n[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]",
        "revdelete-success": "{{RevisionDelete}}\n\nPossible alternative text - 'Restrictions on the revision visibility were successfully changed.'",
        "revdelete-failure": "{{RevisionDelete}}\nPossible alternative text - \"Restrictions on the revision visibility could not be changed\"\n\nParameters:\n* $1 - ...",
        "group-bot": "{{doc-group|bot}}\n{{Identical|Bot}}",
        "group-sysop": "{{doc-group|sysop}}\n{{Identical|Administrator}}",
        "group-bureaucrat": "{{doc-group|bureaucrat}}",
-       "group-suppress": "{{doc-group|suppress}}\nThis is an optional (disabled by default) user group, meant for the [[mw:RevisionDelete|RevisionDelete]] feature, to change the visibility of revisions through [[Special:RevisionDelete]].\n\n{{Identical|Oversight}}",
+       "group-suppress": "{{doc-group|suppress}}\nThis is an optional (disabled by default) user group, meant for the [[mw:RevisionDelete|RevisionDelete]] feature, to change the visibility of revisions through [[Special:RevisionDelete]].\n\n{{Identical|Suppress}}",
        "group-all": "The name of the user group that contains all users, including anonymous users\n\n{{Identical|All}}",
        "group-user-member": "{{doc-group|user|member}}\n{{Identical|User}}",
        "group-autoconfirmed-member": "{{doc-group|autoconfirmed|member}}",
        "group-bot-member": "{{doc-group|bot|member}}",
        "group-sysop-member": "{{doc-group|sysop|member}}\n{{Identical|Administrator}}",
        "group-bureaucrat-member": "{{doc-group|bureaucrat|member}}",
-       "group-suppress-member": "{{doc-group|suppress|member}}\nThis is a member of the optional (disabled by default) user group, meant for the [[mw:RevisionDelete|RevisionDelete]] feature, to change the visibility of revisions through [[Special:RevisionDelete]].\n\n{{Identical|Oversight}}",
+       "group-suppress-member": "{{doc-group|suppress|member}}\nThis is a member of the optional (disabled by default) user group, meant for the [[mw:RevisionDelete|RevisionDelete]] feature, to change the visibility of revisions through [[Special:RevisionDelete]].\n\n{{Identical|Suppress}}",
        "grouppage-user": "{{doc-group|user|page}}\n{{Identical|User}}",
        "grouppage-autoconfirmed": "{{doc-group|autoconfirmed|page}}",
        "grouppage-bot": "{{doc-group|bot|page}}\n{{Identical|Bot}}",
        "grouppage-sysop": "{{doc-group|sysop|page}}",
        "grouppage-bureaucrat": "{{doc-group|bureaucrat|page}}",
-       "grouppage-suppress": "{{doc-group|suppress|page}}\n{{Identical|Oversight}}",
+       "grouppage-suppress": "{{doc-group|suppress|page}}\n{{Identical|Suppress}}",
        "right-read": "{{doc-right|read}}\nBasic right to read any page.",
        "right-edit": "{{doc-right|edit}}\nBasic right to edit pages that are not protected.\n{{Identical|Edit page}}",
        "right-createpage": "{{doc-right|createpage}}\nBasic right to create pages. The right to edit discussion/talk pages is {{msg-mw|right-createtalk}}.",
        "overwroteimage": "{{ignored}}This is a ''logentry'' message only used on IRC. $1 is the name of the file uploaded.",
        "uploaddisabled": "Title of the [[Special:Upload]] page when upload is disabled.\n\nSee also:\n* {{msg-mw|Copyuploaddisabled}}",
        "copyuploaddisabled": "See also:\n* {{msg-mw|Uploaddisabled}}",
-       "uploaddisabledtext": "Parameters:\n* $1 - (Optional) the name of the target file. See r22243 and [[bugzilla:8818|bug 8818]].",
+       "uploaddisabledtext": "Parameters:\n* $1 - (Optional) the name of the target file. See [[mw:Special:Code/MediaWiki/r22243|r22243]] and [[phab:T10818|T10818]].",
        "php-uploaddisabledtext": "This means that file uploading is disabled in PHP, not upload of PHP-files.",
        "uploadscripted": "Used as error message when uploading a file.\n\nSee also:\n* {{msg-mw|zip-wrong-format}}\n* {{msg-mw|uploadjava}}\n* {{msg-mw|uploadvirus}}",
        "upload-scripted-pi-callback": "Used as error message when uploading an SVG file that contains xml-stylesheet processing instruction.",
        "upload-warning-msg": "Used as warning body which is posted on the user talk page. Parameters:\n* $1 - the URL the file was uploaded from, when using upload-by-URL\n* $2 - the session key for the upload\nSee also:\n* {{msg-mw|Upload-warning-subj|subject}}",
        "upload-proto-error": "See also:\n* {{msg-mw|Upload-proto-error|title}}\n* {{msg-mw|Upload-proto-error-text|text}}",
        "upload-proto-error-text": "\"Remote upload\" is explained on [[w:Uploading_and_downloading#Remote_upload|Wikipedia]].\n\nSee also:\n* {{msg-mw|Upload-proto-error|title}}\n* {{msg-mw|Upload-proto-error-text|text}}",
-       "upload-file-error": "Unused on core [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/specials/SpecialUpload.php?r1=53161&r2=53282].\n\nExtensions making use of it:\n*ImportFreeImages\n*SemanticForms\nSee also:\n* {{msg-mw|Upload-file-error|title}}\n* {{msg-mw|Upload-file-error-text|text}}\n{{Identical|Internal error}}",
+       "upload-file-error": "Unused on core [[mw:Special:Code/MediaWiki/53282]].\n\nExtensions making use of it:\n*ImportFreeImages\n*SemanticForms\nSee also:\n* {{msg-mw|Upload-file-error|title}}\n* {{msg-mw|Upload-file-error-text|text}}\n{{Identical|Internal error}}",
        "upload-file-error-text": "See also:\n* {{msg-mw|Upload-file-error|title}}\n* {{msg-mw|Upload-file-error-text|text}}",
        "upload-misc-error": "See also:\n* {{msg-mw|Upload-misc-error|title}}\n* {{msg-mw|Upload-misc-error-text|text}}",
        "upload-misc-error-text": "See also:\n* {{msg-mw|Upload-misc-error|title}}\n* {{msg-mw|Upload-misc-error-text|text}}",
        "filerevert-legend": "{{Identical|Revert}}",
        "filerevert-intro": "Message displayed when you try to revert a version of a file.\n* $1 is the name of the media\n* $2 is a date\n* $3 is a time\n* $4 is a URL and must follow square bracket: [$4\n{{Identical|Revert}}",
        "filerevert-comment": "{{Identical|Reason}}",
-       "filerevert-defaultcomment": "Parameters:\n* $1 - a date\n* $2 - a time\n{{Identical|Revert}}",
+       "filerevert-defaultcomment": "Parameters:\n* $1 - a date\n* $2 - a time\n* $3 - a timezone\n{{Identical|Revert}}",
        "filerevert-submit": "{{Identical|Revert}}",
        "filerevert-success": "Message displayed when you succeed in reverting a version of a file.\n* $1 is the name of the media\n* $2 is a date\n* $3 is a time\n* $4 is an URL and must follow square bracket: [$4\n{{Identical|Revert}}",
        "filerevert-badversion": "Used as error message.",
        "nopagetext": "Used as text on special pages like [[Special:MovePage]] (when the oldtitle does not exist) or [[Special:PermaLink]].\n\nThe title is {{msg-mw|nopagetitle}}.\n\nSee also:\n* {{msg-mw|Nopagetitle|title}}\n* {{msg-mw|Nopagetext|text}}",
        "pager-newer-n": "This is part of the navigation message on the top and bottom of Special pages which are lists of things in date order, e.g. the User's contributions page. It is passed as the second argument of {{msg-mw|Viewprevnext}}. $1 is the number of items shown per page.\n{{Identical|Newer}}",
        "pager-older-n": "This is part of the navigation message on the top and bottom of Special pages which are lists of things in date order, e.g. the User's contributions page. It is passed as the first argument of {{msg-mw|Viewprevnext}}. $1 is the number of items shown per page.",
-       "suppress": "{{Identical|Oversight}}",
+       "suppress": "{{Identical|Suppress}}",
        "querypage-disabled": "On special pages that use expensive database queries but are not cacheable, this message is displayed when 'miser mode' is on (i.e. no expensive queries allowed).",
        "apihelp": "{{doc-special|ApiHelp}}",
        "apihelp-summary": "{{doc-specialpagesummary|ApiHelp}}",
        "api-error-badaccess-groups": "API error message that can be used for client side localisation of API errors.",
        "api-error-badtoken": "API error message that can be used for client side localisation of API errors.",
        "api-error-copyuploaddisabled": "API error message that can be used for client side localisation of API errors.",
-       "api-error-duplicate": "API error message that can be used for client side localisation of API errors. Parameters:\n* $1 - a number of files\n* $2 - a link to a list of duplicate files",
-       "api-error-duplicate-archive": "API error message that can be used for client side localisation of API errors. Parameters:\n* $1 - a number of files\n* $2 - a link to a list of duplicate files",
-       "api-error-duplicate-archive-popup-title": "API error message that can be used for client side localisation of API errors. Parameters:\n* $1 is a number of files.",
-       "api-error-duplicate-popup-title": "This message is a pop-up title shown in case one or more files exactly equal to the one just uploaded are already present.\n\nThe word \"duplicate\" is an adjective.\n\nParameters:\n* $1 - number of files",
+       "api-error-duplicate": "API error message that can be used for client side localisation of API errors. Parameters:\n* $1 - a number of files",
+       "api-error-duplicate-archive": "API error message that can be used for client side localisation of API errors. Parameters:\n* $1 - a number of files",
        "api-error-empty-file": "API error message that can be used for client side localisation of API errors.",
        "api-error-emptypage": "API error message that can be used for client side localisation of API errors.",
        "api-error-fetchfileerror": "API error message that can be used for client side localisation of API errors.",
index 7ec0ccb..800bd77 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}}-paq rakiqunamanta willakuna",
        "passwordreset-emailtext-ip": "Pipas (qamchiki, $1 IP huchhayuq tiyaymanta) {{SITENAME}}-paq ($4)\nrakiqunaykipaq yaykuna rimata kutichinatam mañakurqan. Kay qatiq ruraqpa {{PLURAL:$3|rakiqunanmi|rakiqunankunam}}\nkay e-chaski imamaytayuq kachkan:\n\n$2\n\nKay mit'alla yaykuna {{PLURAL:$3|rimaqa|rimakunaqa}} kunanmanta {{PLURAL:$5|huk p'unchawpi|$5 p'unchawpi}} mawk'ayanqam.\nYaykuspayki musuq yaykuna rimaykitam akllankiman. Pi wakiykipas kayta mañakurqaptinqa,\nicha qam ñawpaq yaykuna rimaykita yuyaspayki manaña wakinchayta munaspaykiqa,\nkay willayta mana qhawaspa mana imatapas ruraspa ñawpaq yaykuna rimaykiwanmi llamk'ayta atinki.",
        "passwordreset-emailtext-user": "{{SITENAME}}-pi kaq $1 sutiyuq ruraqqa {{SITENAME}}-paq ($4)\nrakiqunaykipaq yaykuna rimata kutichinatam mañakurqan. Kay qatiq ruraqpa {{PLURAL:$3|rakiqunanmi|rakiqunankunam}}\nkay e-chaski imamaytayuq kachkan:\n\n$2\n\nKay mit'alla yaykuna {{PLURAL:$3|rimaqa|rimakunaqa}} kunanmanta {{PLURAL:$5|huk p'unchawpi|$5 p'unchawpi}} mawk'ayanqam.\nYaykuspayki musuq yaykuna rimaykitam akllankiman. Pi wakiykipas kayta mañakurqaptinqa,\nicha qam ñawpaq yaykuna rimaykita yuyaspayki manaña wakinchayta munaspaykiqa,\nkay willayta mana qhawaspa mana imatapas ruraspa ñawpaq yaykuna rimaykiwanmi llamk'ayta atinki.",
-       "passwordreset-emailelement": "Ruraqpa sutin: $1\nMit'alla yaykuna rima: $2",
+       "passwordreset-emailelement": "Ruraqpa sutin: \n$1\n\nMit'alla yaykuna rima: \n$2",
        "passwordreset-emailsent": "Yaykuna rimata kutichina e-chaskiqa kachasqañam.",
        "passwordreset-emailsent-capture": "Yaykuna rimata kutichina e-chaskiqa kachasqañam, kay qatiqpi rikunki.",
        "passwordreset-emailerror-capture": "{{GENDER:$2|}}Yaykuna rimata kutichina e-chaskiqa rurasqa karqan, imatachus kay qatiqpi rikunki, ichataq kachasqa kaptin pantasqam tukurqan: $1",
        "emailuser": "Kay ruraqman e-chaskita kachay",
        "emailuser-title-target": "Kay {{GENDER:$1|ruraqman}} e-chaskita kachay",
        "emailuser-title-notarget": "E-chaski kay ruraqman:",
-       "emailpage": "E-chaski kay ruraqman:",
        "emailpagetext": "Kay uranpi kaq hunt'ana p'anqatam llamk'achiyta atinki kay {{GENDER:$1|ruraqman}} e-chaskita kachanaykipaq.\nQampa [[Special:Preferences|allinkachinaykikunapi]] qillqakamachisqayki imamaytaqa paqarinqa kachasqayki e-chaskipi chaskiqpa kutichisunaykita atinanpaq.",
        "defemailsubject": "{{SITENAME}} p'anqamanta chaski \"$1\" sutiyuq ruraqmanta",
        "usermaildisabled": "Ruraqpa e-chaskinqa hark'asqam",
        "api-error-badtoken": "Ukhupi pantasqa: Mana allinta sananchasqa.",
        "api-error-copyuploaddisabled": "URL nisqawanqa kay sirwiqpi manam churkuyta atinki.",
        "api-error-duplicate": "Kay tiyaypiqa huk {{PLURAL:$1|[$2 willañiqim]|[$2 willañiqikunam]}} kachkanñam kaqlla samiqniyuq kaq.",
-       "api-error-duplicate-archive": "Kay tiyaypiqa huk {{PLURAL:$1|[$2 willañiqim]|[$2 willañiqikunam]}} karqanñam kaqlla samiqniyuq kaq, kunantaq qullusqañam.",
-       "api-error-duplicate-archive-popup-title": "Qullusqaña iskaychasqa {{PLURAL:$1|willañiqi|willañiqikuna}}.",
-       "api-error-duplicate-popup-title": "Iskaychasqa {{PLURAL:$1|willañiqi|willañiqikuna}}.",
+       "api-error-duplicate-archive": "Kay tiyaypiqa huk {{PLURAL:$1|willañiqim|willañiqikunam}} karqanñam kaqlla samiqniyuq kaq, kunantaq qullusqañam.",
        "api-error-empty-file": "Kachasqayki willañiqiqa ch'usaqmi.",
        "api-error-emptypage": "Musuq ch'usaq p'anqakunata kamariyqa manam saqillasqachu.",
        "api-error-fetchfileerror": "Ukhupi pantasqa: Willañiqita chaskiykachachkaptiyki ima mana allin kaqpas tukurqan.",
index 3ae9792..3ff8eb3 100644 (file)
        "passwordreset-emailtitle": "Detagls davart il conto sn {{SITENAME}}",
        "passwordreset-emailtext-ip": "Insatgi (probablamain ti, da l'adressa IP $1) ha dumandà da redefinir il pled-clav per la pagina {{SITENAME}} ($4). \n{{PLURAL:$3|Il suandant conto d'utilisader è collià|Ils suandants contos d'utilisader èn colliads}} cun questa adressa d'e-mail:\n\n$2\n\n{{PLURAL:$3|Quest pled-clav temporar|Quests pleds-clav temporars}} èn valids {{PLURAL:$5|in di|$5 dis}}.\nTi duessas t'annunziar ussa e tscherner in nov pled-clav. Sch'enzatgi auter ha empustà quests novs pleds-clav u sche ti ta regordas puspè da tes pled-clav original e na vuls betg pli midar el, pos ti ignorar quest messadi e cuntinuar d'utilisar tes pled-clav original.",
        "passwordreset-emailtext-user": "L'utilisader $1 sin {{SITENAME}} ha dumandà da redefinir il pled-clav per {{SITENAME}} ($4). \n{{PLURAL:$3|Il suandant conto d'utilisader è collià|Ils suandants contos d'utilisader èn colliads}} cun questa adressa dad e-mail:\n\n$2\n\n{{PLURAL:$3|Quest pled-clav temporar|Quests pled-clav temporars}} èn valids {{PLURAL:$5|in di|$5 dis}}.\nTi duessas t'annunziar ussa e tscherner in nov pled-clav. Sche ti na levas betg quests novs pleds-clav u sche ti ta regordas puspè da tes pled-clav original e na vuls betg pli midar il pled-clav pos ti ignorar quest messadi e cuntinuar dad utilisar tes pled-clav original.",
-       "passwordreset-emailelement": "Num d'utilisader: $1\nPled-clav temporar: $2",
+       "passwordreset-emailelement": "Num d'utilisader: \n$1\n\nPled-clav temporar: \n$2",
        "passwordreset-emailsent": "In e-mail per redefinir il pled-clav è vegnì tramess.",
        "passwordreset-emailsent-capture": "In e-mail (sco mussà sutvart) per redefinir il pled-clav è vegnì tramess.",
        "passwordreset-emailerror-capture": "In e-mail (sco mussà sutvart) per redefinir il pled-clav è vegnì generà ma n'ha betg pudì envià a l'{{GENDER:$2|utilisader|utilisadra}}: $1",
        "emailuser": "Trametter in e-mail a quest utilisader",
        "emailuser-title-target": "Trametta in e-mail a {{GENDER:$1|quest utilisader|questa utilisadra}}",
        "emailuser-title-notarget": "Trametter in e-mail a l'utilisader",
-       "emailpage": "Trametter in e-mail a l'utilisader",
        "emailpagetext": "Ti pos utilisar il formular sutvart per trametter in'e-mail a {{GENDER:$1|quest utilisader|questa utilisadra}}.\nL'adressa dad e-mail che ti has endatà en [[Special:Preferences|tias preferenzas]] vegn inditgada sco speditur da l'e-mail, uschia {{GENDER:$1|ch'il retschavider|che la retschavidra}} po rispunder directamain a tai.",
        "defemailsubject": "{{SITENAME}} e-mail da l'utilisader \"$1\"",
        "usermaildisabled": "Trametter e-mails è deactivà",
        "api-error-badtoken": "Errur interna: Token fauss.",
        "api-error-copyuploaddisabled": "La funcziun da transferir dad ina URL è deactivada sin quest server.",
        "api-error-duplicate": "I dat gia {{PLURAL:$1|ina [$2 autra datoteca]|[$2 autras datotecas]}} cun il medem cuntegn.",
-       "api-error-duplicate-archive": "I deva gia {{PLURAL:$1|ina [$2 autra datoteca]|[$2 autras datotecas]}} cun il medem cuntegn, {{PLURAL:$1|quella è dentant vegnida stizzada|quellas èn dentant vegnidas stizzadas}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Datoteca dubla ch'è gia vegnida stizzada|Datotecas dublas ch'èn gia vegnidas stizzadas}}.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Datoteca dubla|Datotecas dublas}}.",
+       "api-error-duplicate-archive": "I deva gia {{PLURAL:$1|ina autra datoteca|autras datotecas}} cun il medem cuntegn, {{PLURAL:$1|quella è dentant vegnida stizzada|quellas èn dentant vegnidas stizzadas}}.",
        "api-error-empty-file": "La datoteca tramessa è vida.",
        "api-error-emptypage": "Crear paginas novas e vidas n'è betg lubì.",
        "api-error-fetchfileerror": "Errur interna: Insatge n'ha betg funcziunà durant retschaiver la datoteca.",
index a71f4d1..284ebe0 100644 (file)
@@ -26,7 +26,8 @@
                        "XXN",
                        "Fitoschido",
                        "Macofe",
-                       "ImGelu"
+                       "ImGelu",
+                       "Wintereu"
                ]
        },
        "tog-underline": "Sublinierea legăturilor:",
        "nstab-template": "Format",
        "nstab-help": "Ajutor",
        "nstab-category": "Categorie",
+       "mainpage-nstab": "Pagina principală",
        "nosuchaction": "Această acțiune nu există",
        "nosuchactiontext": "Acțiunea specificată în URL este invalidă.\nS-ar putea să fi introdus greșit URL-ul, sau să fi urmat o legătură incorectă.\nAceasta s-ar putea să indice și un bug în programul folosit de {{SITENAME}}.",
        "nosuchspecialpage": "Această pagină specială nu există",
        "passwordreset-emailtitle": "Detalii despre cont pe {{SITENAME}}",
        "passwordreset-emailtext-ip": "Cineva (probabil dumneavoastră, de la adresa IP $1) a solicitat resetarea parolei \npentru {{SITENAME}} ($4). {{PLURAL:$3|Următorul cont este asociat|Următoarele conturi sunt asociate}}\ncu această adresă de e-mail:\n\n$2\n\n{{PLURAL:$3|Această parolă temporară va|Aceste parole temporare vor}} expira {{PLURAL:$5|într-o zi|în $5 zile}}.\nAr trebui să vă autentificați și să schimbați parola acum. Dacă altcineva a făcut această cerere \nsau dacă v-ați reamintit parola inițială și nu mai doriți să o schimbați,\nputeți ignora acest mesaj, continuând să utilizați vechea parolă.",
        "passwordreset-emailtext-user": "Utilizatorul $1 de pe {{SITENAME}} a solicitat o resetare a parolei dumneavoastră pentru {{SITENAME}} ($4). Următorul utilizator are {{PLURAL:$3|contul asociat|conturile asociate}} cu această adresă de e-mail:\n\n$2\n\n{{PLURAL:$3|Această parolă temporară va|Aceste parole temporare vor}} expira {{PLURAL:$5|într-o zi|în $5 zile}}.\nAr trebui să vă autentificați și să alegeți acum o nouă parolă. Dacă altcineva a făcut această solicitare, ori dacă v-ați reamintit parola originală și nu mai doriți modificarea ei, puteți ignora acest mesaj, continuând cu vechea parolă.",
-       "passwordreset-emailelement": "Nume de utilizator: $1\nParolă temporară: $2",
+       "passwordreset-emailelement": "Nume de utilizator: \n$1\n\nParolă temporară: \n$2",
        "passwordreset-emailsent": "A fost trimis un e-mail de resetare a parolei.",
        "passwordreset-emailsent-capture": "Un mesaj de resetare a parolei a fost trimis, fiind afișat mai jos.",
        "passwordreset-emailerror-capture": "Un mesaj de resetare a parolei a fost generat (fiind afișat mai jos), dar trimiterea sa către {{GENDER:$2|utilizator}} a eșuat: $1",
        "changeemail-password": "Parola dumneavoastră la {{SITENAME}}:",
        "changeemail-submit": "Modifică adresa de e-mail",
        "changeemail-throttled": "Ați avut prea multe încercări de a vă autentifica.\nVă rugăm să așteptați $1 până să reîncercați.",
+       "changeemail-nochange": "Vă rugăm să introduceți o nouă adresă de e-mail diferită.",
        "resettokens": "Resetare jetoane",
        "resettokens-text": "Puteți reseta, aici, jetoanele care permit accesul la anumite date asociate contului dumneavoastră.\n\nAr trebui să faceți acest lucru numai dacă le-ați partajat accidental cu altcineva ori contul dumneavoastră a fost compromis.",
        "resettokens-no-tokens": "Nu există jetoane de resetat.",
        "permissionserrorstext-withaction": "Nu aveți permisiunea să $2, din {{PLURAL:$1|următorul motivul|următoarele motive}}:",
        "recreate-moveddeleted-warn": "'''Atenție: Recreați o pagină care a fost ștearsă anterior.'''\n\nAsigurați-vă că este oportună recrearea acestei pagini.\nJurnalul ștergerilor și al mutărilor pentru această pagină este disponibil:",
        "moveddeleted-notice": "Această pagină a fost ștearsă.\nJurnalul ștergerilor și al redenumirilor este disponibil mai jos.",
+       "moveddeleted-notice-recent": "Ne cerem scuze, dar această pagină a fost ștearsă recent (în ultimele 24 de ore).\nJurnalele de ștergere și redenumire ale paginii sunt disponibile mai jos cu scop informativ.",
        "log-fulllog": "Vezi tot jurnalul",
        "edit-hook-aborted": "Modificarea a fost abandonată din cauza unui hook.\nNicio explicație furnizată.",
        "edit-gone-missing": "Pagina nu s-a putut actualiza.\nSe pare că a fost ștearsă.",
        "tooltip-t-contributions": "Vezi lista de contribuții ale acestui utilizator",
        "tooltip-t-emailuser": "Trimite un e-mail acestui utilizator",
        "tooltip-t-info": "Mai multe informații despre această pagină",
-       "tooltip-t-upload": "Încărcare de fișiere",
+       "tooltip-t-upload": "Încărcare fișiere",
        "tooltip-t-specialpages": "Lista tuturor paginilor speciale",
        "tooltip-t-print": "Versiunea de tipărit a acestei pagini",
        "tooltip-t-permalink": "Legătura permanentă către această versiune a paginii",
        "api-error-badaccess-groups": "Nu aveți dreptul să încărcați fișiere pe acest wiki.",
        "api-error-badtoken": "Eroare internă: jeton greșit.",
        "api-error-copyuploaddisabled": "Încărcarea prin URL este dezactivată pe acest server.",
-       "api-error-duplicate": "Există {{PLURAL:$1|un [$2 alt fișier]|[$2 alte fișiere]}} deja încărcate cu același conținut.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|A existat [$2 un alt fișier]|Au existat [$2 alte fișiere]}} cu același conținut pe site, dar {{PLURAL:$1|a fost|au fost}} șterse.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Fișierul|Fișierele}} {{PLURAL:$1|duplicat|duplicate}} care {{PLURAL:$1|a|au}} fost deja {{PLURAL:$1|șters|șterse}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Fișier|Fișiere}} {{PLURAL:$1|duplicat|duplicate}}",
+       "api-error-duplicate": "Există {{PLURAL:$1|un alt fișier|alte fișiere}} deja încărcate cu același conținut.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|A existat un alt fișier|Au existat alte fișiere}} cu același conținut pe site, dar {{PLURAL:$1|a fost|au fost}} șterse.",
        "api-error-empty-file": "Fișierul încărcat de dumneavoastră este gol.",
        "api-error-emptypage": "Crearea paginilor noi, goale nu este permisă.",
        "api-error-fetchfileerror": "Eroare internă: ceva nu a funcționat corect la prelucrarea fișierului.",
index 8f3eebb..ad04743 100644 (file)
        "passwordreset-emailtitle": "Dettaglie d'u cunde utende sus a {{SITENAME}}",
        "passwordreset-emailtext-ip": "Quacchedune (pò essere tu, da 'u 'ndirizze IP $1) ha richieste 'na mail pe arrecurdarse de le dettaglie d'u cunde sue pe {{SITENAME}} ($4). {{PLURAL:$3|'U cunde utende seguende jè|le cunde utinde seguende sonde}} associate cu st'indirizze e-mail:\n\n$2\n\n{{PLURAL:$3|Sta passuord temboranèe scade|Ste passuord temboranèe scadene}} 'mbrà {{PLURAL:$5|'nu sciurne|$5 sciurne}}.\nTu avissa trasè e scacchià 'na passuord nova. Ce quacchedun'otre ha fatte sta richieste, o ce tu t'è arrecurdate 'a passuord origgenale toje, e non g'a vuè ccu cange cchiù, tu puè ignorà stu messagge e condinuà ausanne 'a passuord vecchie.",
        "passwordreset-emailtext-user": "L'utende $1 sus a {{SITENAME}} ave richieste 'na mail pe arrecurdarse le dettaglie d'u cunde sue pe {{SITENAME}}\n($4). {{PLURAL:$3|'U cunde utende seguende jè|le cunde utinde seguende sonde}} associate cu st'indirizze e-mail:\n\n$2\n\n{{PLURAL:$3|Sta passuord temboranèe scade|Ste passuord temboranèe scadene}}  'mbrà {{PLURAL:$5|'nu sciurne|$5 sciurne}}.\nTu avissa trasè e scacchià 'na passuord nova. Ce quacchedun'otre ha fatte sta richieste, o ce tu t'è arrecurdate 'a passuord origgenale toje, e non g'a vuè ccu cange cchiù, tu puè ignorà stu messagge e condinuà ausanne 'a passuord vecchie.",
-       "passwordreset-emailelement": "Nome utende: $1<br />\nPassuord temboranèe: $2",
+       "passwordreset-emailelement": "Nome utende: \n$1\n\nPassuord temboranèe: \n$2",
        "passwordreset-emailsent": "'N'e-mail pe arrecurdarte ha state mannate.",
        "passwordreset-emailsent-capture": "'Na e-mail pe azzeramende d'a passuord ha state mannate, ca jè fatte vedè aqquà sotte.",
        "passwordreset-emailerror-capture": "'Na e-mail de azzeramende d'a passuord ha state generate, ca jè fatte vedè aqquà sotte, ma 'u 'nvie a {{GENDER:$2|l'utende}} ha fallite: $1",
        "changeemail-password": "'A passuord tue de {{SITENAME}}:",
        "changeemail-submit": "Cange e-mail",
        "changeemail-throttled": "Tu è pruvate troppe vote a trasè.\nPe piacere aspitte $1 apprime de pruvà arrete.",
+       "changeemail-nochange": "Pe piacere mitte 'n'otre indirizze email.",
        "resettokens": "Azzere le gettone",
        "resettokens-text": "Tu puè azzerà le gettone le quale te donne l'accesse a certe date private collegate cu 'u cunde tune aqquà.\n\nTu avissa farle ce pe sbaglie l'è condivise cu otre o ce 'u cunde tune ha state combromesse.",
        "resettokens-no-tokens": "Non ge stonne gettone de azzerà.",
        "htmlform-cloner-create": "Aggiunge 'n'otre",
        "htmlform-cloner-delete": "Live",
        "htmlform-cloner-required": "Almene 'nu valore l'a mettere.",
+       "htmlform-title-badnamespace": "[[:$1]] non ge stè jndr'à 'u namespace \"{{ns:$2}}\".",
        "htmlform-title-not-exists": "[[:$1]] non g'esiste.",
        "htmlform-user-not-exists": "<strong>$1</strong> non g'esiste.",
        "htmlform-user-not-valid": "<strong>$1</strong> non g'è 'nu nome utende valide.",
        "api-error-badtoken": "Errore inderne: Gettone errate.",
        "api-error-copyuploaddisabled": "'U carecamende da URL jè disabbilitate sus a stu server.",
        "api-error-duplicate": "{{PLURAL:$1|Stè [$2 'n'otre file]|Stonne [$2 otre file]}} sus a 'u site cu 'u stesse condenute.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Stave [$2 'n'otre file]|Stavane [$2 otre file]}} già sus a 'u site cu 'u stesse condenute, ma {{PLURAL:$1|ha state|onne state}} scangellate.",
-       "api-error-duplicate-archive-popup-title": "Dupliche {{PLURAL:$1|'u file ca ha state|le file ca onne state}} scangellate.",
-       "api-error-duplicate-popup-title": "Dupleche {{PLURAL:$1|file|file}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Stave 'n'otre file|Stavane otre file}} già sus a 'u site cu 'u stesse condenute, ma {{PLURAL:$1|ha state|onne state}} scangellate.",
        "api-error-empty-file": "'U file ca tu è confermate ere vacande.",
        "api-error-emptypage": "Quanne se ne ccreje une, le pàggene vacande non ge sò permesse.",
        "api-error-fetchfileerror": "Errore inderne: Quacchecose ha sciute stuèrte quanne ste analizzave 'u file.",
index 4ea698d..97a111a 100644 (file)
        "newwindow": "&nbsp;(в новом окне)",
        "cancel": "Отменить",
        "moredotdotdot": "Далее…",
-       "morenotlisted": "Этот список не является полным.",
+       "morenotlisted": "Этот список неполон.",
        "mypage": "Страница",
        "mytalk": "Обсуждение",
        "anontalk": "Обсуждение для этого IP-адреса",
        "passwordreset-emailtitle": "Сведения об учётной записи {{SITENAME}}",
        "passwordreset-emailtext-ip": "Кто-то (возможно, вы, с IP-адреса $1) запросил сброс пароля к вашей учётной записи в проекте {{SITENAME}} ($4).\nС этим адресом электронной почты {{PLURAL:$3|1=связана следующая учётная запись|связаны следующие учётные записи}}:\n\n$2\n\n{{PLURAL:$3|1=Этот временный пароль будет|Эти временные пароли будут}} действовать {{PLURAL:$5|$5 день|$5 дня|$5 дней|1=один день}}.\nВы должны представиться системе и выбрать новый пароль. \nЕсли вы не делали этого запроса, или вспомнили свой исходный пароль и не желаете его менять, \nто можете проигнорировать это сообщение и продолжить использовать свой старый пароль.",
        "passwordreset-emailtext-user": "Участник $1 из проекта {{SITENAME}} запросил сброс пароля для вашей учётной записи в проекте {{SITENAME}} ($4).\nС этим адресом электронной почты {{PLURAL:$3|1=связана следующая учётная запись|связаны следующие учётные записи}}:\n\n$2\n\n{{PLURAL:$3|1=Этот временный пароль будет|Эти временные пароли будут}} действовать {{PLURAL:$5|$5 день|$5 дней|$5 дня|1=один день}}.\nВы должны представиться системе и выбрать новый пароль.\nЕсли вы не делали этого запроса или вспомнили свой исходный пароль и не желаете его менять, \nто можете проигнорировать это сообщение и продолжить использовать свой старый пароль.",
-       "passwordreset-emailelement": "Имя участника: $1\nВременный пароль: $2",
+       "passwordreset-emailelement": "Имя участника: \n$1\n\nВременный пароль: \n$2",
        "passwordreset-emailsent": "Отправлено электронное письмо с информацией о сбросе пароля.",
        "passwordreset-emailsent-capture": "Отправлено электронное письмо с информацией о сбросе пароля, текст которого можно увидеть ниже.",
        "passwordreset-emailerror-capture": "Было создано электронное письмо с информацией о сбросе пароля, текст которого можно увидеть ниже, однако его не удалось отправить {{GENDER:$2|участнику|участнице}} по следующей причине: $1",
        "changeemail-password": "Ваш пароль для проекта «{{SITENAME}}»:",
        "changeemail-submit": "Изменить адрес",
        "changeemail-throttled": "Вы сделали слишком много попыток представиться системе.\nПожалуйста, подождите $1 перед тем, как попробовать снова.",
+       "changeemail-nochange": "Пожалуйста, введите иной новый адрес электронной почты.",
        "resettokens": "Сбросить токены",
        "resettokens-text": "Вы можете сбросить токены, позволяющие получить доступ к некоторым личным данным, связанным с вашей учётной записью на этом сайте.\n\nВам необходимо сделать это, если вы случайно поделились ими с кем-то, или если ваша учётная запись была взломана.",
        "resettokens-no-tokens": "Нет токенов для сброса.",
        "userrights-groups-help": "Вы можете изменить группы, в которые входит этот участник.\n* Если около названия группы стоит отметка, значит участник входит в эту группу.\n* Если отметка не стоит — участник не относится к соответствующей группе.\n* Знак * отмечает, что вы не сможете удалить участника из группы, если добавите его в неё, или наоборот.",
        "userrights-reason": "Причина:",
        "userrights-no-interwiki": "У вас нет разрешения изменять права участников на других вики.",
-       "userrights-nodatabase": "База данных $1 не существует или не является локальной.",
+       "userrights-nodatabase": "База данных $1 не существует или расположена не локально.",
        "userrights-nologin": "Вы должны [[Special:UserLogin|представиться системе]] с учётной записи администратора, чтобы присваивать права участникам.",
        "userrights-notallowed": "У вас нет разрешения добавлять и удалять права участников.",
        "userrights-changeable-col": "Группы, которые вы можете изменять",
        "fileexists": "Файл с этим именем уже существует, пожалуйста, проверьте <strong>[[:$1]]</strong>, если {{GENDER:|вы}} не уверены, что хотите заменить его.\n[[$1|thumb]]",
        "filepageexists": "Страница описания для этого файла уже создана как <strong>[[:$1]]</strong>, но файла с таким именем сейчас нет.\nВведённое описание не появится на странице описания файла.\nЧтобы добавить новое описание, вам придётся изменить его вручную.\n[[$1|thumb]]",
        "fileexists-extension": "Существует файл с похожим именем: [[$2|thumb]]\n* Имя загруженного файла: <strong>[[:$1]]</strong>\n* Имя существующего файла: <strong>[[:$2]]</strong>\nМожет быть, вы хотите использовать более отличающееся имя?",
-       "fileexists-thumbnail-yes": "Файл, Ð²ÐµÑ\80оÑ\8fÑ\82но, Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ñ\83менÑ\8cÑ\88енной ÐºÐ¾Ð¿Ð¸ÐµÐ¹ (миниаÑ\82Ñ\8eÑ\80ой). [[$1|thumb]]\nÐ\9fожалÑ\83йÑ\81Ñ\82а, Ð¿Ñ\80овеÑ\80Ñ\8cÑ\82е Ñ\84айл <strong>[[:$1]]</strong>.\nÐ\95Ñ\81ли Ñ\83казаннÑ\8bй Ñ\84айл Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ñ\82ем Ð¶Ðµ Ð¸Ð·Ð¾Ð±Ñ\80ажением, не стоит загружать отдельно его уменьшенную копию.",
+       "fileexists-thumbnail-yes": "Ð\92еÑ\80оÑ\8fÑ\82но, Ñ\8dÑ\82оÑ\82 Ñ\84айл â\80\94 Ñ\83менÑ\8cÑ\88еннаÑ\8f ÐºÐ¾Ð¿Ð¸Ñ\8f <em>(миниаÑ\82Ñ\8eÑ\80а)</em> Ñ\83же Ð¸Ð¼ÐµÑ\8eÑ\89егоÑ\81Ñ\8f Ñ\84айла. \n[[$1|thumb]]\nÐ\9fожалÑ\83йÑ\81Ñ\82а, Ð¿Ñ\80овеÑ\80Ñ\8cÑ\82е Ñ\84айл <strong>[[:$1]]</strong>.\nÐ\95Ñ\81ли Ñ\8dÑ\82о Ñ\82о Ð¶Ðµ Ñ\81амое Ð¸Ð·Ð¾Ð±Ñ\80ажение, не стоит загружать отдельно его уменьшенную копию.",
        "file-thumbnail-no": "Название файла начинается с <strong>$1</strong>.\nВероятно, это уменьшенная копия изображения ''(миниатюра)''.\nЕсли у вас есть данное изображение в полном размере, пожалуйста, загрузите его или измените имя файла.",
        "fileexists-forbidden": "Файл с этим именем уже существует и не может быть перезаписан.\nЕсли всё равно хотите загрузить данный файл, пожалуйста, вернитесь назад и загрузите его под другим именем. [[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "Файл с этим именем уже существует в общем хранилище файлов.\nЕсли вы всё-таки хотите загрузить этот файл, пожалуйста, вернитесь назад и измените имя файла. [[File:$1|thumb|center|$1]]",
        "backend-fail-notexists": "Файл $1 не существует.",
        "backend-fail-hashes": "Не удалось получить хэши файлов для сравнения.",
        "backend-fail-notsame": "Уже есть неидентичный файл $1.",
-       "backend-fail-invalidpath": "$1 не является допустимым путём хранения.",
+       "backend-fail-invalidpath": "$1 — некорректный путь к хранилищу.",
        "backend-fail-delete": "Не удалось удалить файл  $1.",
        "backend-fail-describe": "Не удалось изменить метаданные файла «$1».",
        "backend-fail-alreadyexists": "Файл $1 уже существует.",
        "lockmanager-fail-svr-acquire": "Не удалось получить блокировку на сервере  $1.",
        "lockmanager-fail-svr-release": "Не удалось снять блокировки на сервере $1 .",
        "zip-file-open-error": "Произошла ошибка при открытии файла для проверки архива.",
-       "zip-wrong-format": "Указанный файл не является файлом ZIP.",
+       "zip-wrong-format": "Указанный файл — не ZIP-архив.",
        "zip-bad": "ZIP-файл повреждён или не может быть прочитан.\nОн не может быть должным образом проверен.",
        "zip-unsupported": "Этот ZIP-файл использует возможности, не поддерживаемые MediaWiki.\nОн не может быть должным образом проверен.",
        "uploadstash": "Скрытная загрузка",
        "rollbacklinkcount": "откатить $1 {{PLURAL:$1|правку|правки|правок}}",
        "rollbacklinkcount-morethan": "откатить больше, чем $1 {{PLURAL:$1|правку|правки|правок}}",
        "rollbackfailed": "Ошибка при совершении отката",
-       "cantrollback": "Ð\9dевозможно Ð¾Ñ\82каÑ\82иÑ\82Ñ\8c Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f. Ð\9fоÑ\81ледний, ÐºÑ\82о Ð²Ð½Ð¾Ñ\81ил Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f, Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f ÐµÐ´Ð¸Ð½Ñ\81Ñ\82веннÑ\8bм Ð°Ð²Ñ\82оÑ\80ом этой страницы.",
+       "cantrollback": "Ð\9dевозможно Ð¾Ñ\82каÑ\82иÑ\82Ñ\8c Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f. Ð\9fоÑ\81ледним, ÐºÑ\82о Ð²Ð½Ð¾Ñ\81ил Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f, Ð±Ñ\8bл ÐµÐ´Ð¸Ð½Ñ\81Ñ\82веннÑ\8bй Ð°Ð²Ñ\82оÑ\80 этой страницы.",
        "alreadyrolled": "Невозможно откатить последние изменения страницы «[[:$1]]», совершённые [[User:$2|$2]] ([[User talk:$2|обсуждение]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]),\nпоскольку кто-то другой уже успел откатить эти правки или отредактировать страницу.\n\nПоследние изменения {{GENDER:$3|внёс|внесла}} [[User:$3|$3]] ([[User talk:$3|обсуждение]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Было дано описание изменения: ''$1''.",
        "revertpage": "Откат правок [[Special:Contributions/$2|$2]] ([[User talk:$2|обсуждение]]) к версии [[User:$1|$1]]",
        "lockedbyandtime": "($1 $2 $3)",
        "move-page": "$1 — переименование",
        "move-page-legend": "Переименование страницы",
-       "movepagetext": "Воспользовавшись нижеприведённой формой, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.\nСтарое название станет перенаправлением на новое.\nВы можете автоматически обновить перенаправления, которые вели на старое название.\nЕсли вы этого не сделаете, пожалуйста, проверьте наличие [[Special:DoubleRedirects|двойных]] и [[Special:BrokenRedirects|разорванных перенаправлений]].\nВы отвечаете за то, чтобы ссылки продолжали и далее указывать туда, куда предполагалось.\n\nОбратите внимание, что страница '''не будет''' переименована, если уже существует страница с названием, идентичным выбранному, кроме случаев, когда такая страница является перенаправлением или пуста, и при этом не имеет истории правок.\nЭто означает, что если вы сделали преименование ошибочно, вы можете переименовать страницу обратно в то название, которое у неё только что было, но вы не можете случайно затереть существующую страницу.\n\n'''Предупреждение!'''\nПереименование ''популярных'' страниц может привести к масштабным и неожиданным изменениям.\nПожалуйста, прежде чем продолжать, убедитесь, что понимаете все возможные последствия.",
-       "movepagetext-noredirectfixer": "Воспользовавшись формой ниже, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.\nСтарое название станет перенаправлением на новое название.\nПожалуйста, проверьте наличие [[Special:DoubleRedirects|двойных]] и [[Special:BrokenRedirects|разорванных перенаправлений]].\nВы отвечаете за то, чтобы ссылки продолжали и далее указывать туда, куда предполагалось.\n\nОбратите внимание, что страница <strong>не будет</strong> переименована, если страница с новым названием уже существует, кроме случаев, если она является перенаправлением или пуста и не имеет истории правок.\nЭто означает, что вы можете переименовать страницу обратно в то название, которое у него только что было, если вы переименовали по ошибке, но вы не можете случайно затереть существующую страницу.\n\n<strong>ПРЕДУПРЕЖДЕНИЕ!</strong>\nПереименование может привести к масштабным и неожиданным изменениям для популярных страниц.\nПожалуйста, прежде чем вы продолжите, убедитесь, что вы понимаете все возможные последствия.",
+       "movepagetext": "Воспользовавшись нижеприведённой формой, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.\nСтарое название станет перенаправлением на новое.\nВы можете автоматически обновить перенаправления, которые вели на старое название.\nЕсли вы этого не сделаете, пожалуйста, проверьте наличие [[Special:DoubleRedirects|двойных]] и [[Special:BrokenRedirects|разорванных перенаправлений]].\nВы отвечаете за то, чтобы ссылки продолжали и далее указывать туда, куда предполагалось.\n\nОбратите внимание, что страница <strong>не будет</strong> переименована, если уже существует страница с названием, идентичным выбранному, кроме случаев, когда такая страница пуста или представляет собой перенаправление, и при этом не имеет истории правок.\nЭто означает, что сделав ошибочное переименование, вы можете переименовать страницу обратно в то название, которое у неё только что было, но не можете случайно затереть существующую страницу.\n\n<strong>Предупреждение!</strong>\nПереименование популярных страниц может привести к масштабным и неожиданным изменениям.\nПожалуйста, прежде чем продолжать, убедитесь, что понимаете все возможные последствия.",
+       "movepagetext-noredirectfixer": "Воспользовавшись формой ниже, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.\nСтарое название станет перенаправлением на новое название.\nПожалуйста, проверьте наличие [[Special:DoubleRedirects|двойных]] и [[Special:BrokenRedirects|разорванных перенаправлений]].\nВы отвечаете за то, чтобы ссылки продолжали и далее указывать туда, куда предполагалось.\n\nОбратите внимание, что страница <strong>не будет</strong> переименована, если страница с новым названием уже существует, кроме случаев, если она пуста или представляет собой перенаправление, и при этом не имеет истории правок.\nЭто означает, что сделав ошибочное переименование, вы сможете переименовать страницу обратно в то название, которое у неё только что было, но не сможете случайно затереть существующую страницу.\n\n<strong>Предупреждение!</strong>\nПереименование может привести к масштабным и неожиданным изменениям для популярных страниц.\nПожалуйста, прежде чем продолжить, убедитесь, что понимаете все возможные последствия.",
        "movepagetalktext": "Присоединённая страница обсуждения будет также автоматически переименована, '''кроме случаев, когда:'''\n\n*Не пустая страница обсуждения уже существует под таким же именем или\n*Вы не поставили галочку в поле ниже.\n\nВ этих случаях, вы будете вынуждены переместить или объединить страницы вручную, если это нужно.",
        "movearticle": "Переименовать страницу",
        "moveuserpage-warning": "'''Внимание.''' Вы собираетесь переименовать страницу участника. Пожалуйста, обратите внимание, что переименована будет только страница, участник '''не''' будет переименован.",
        "tags-delete-title": "Удалить метку",
        "tags-delete-explanation-initial": "Вы собираетесь удалить метку «$1» из базы данных.",
        "tags-delete-explanation-in-use": "Она будет удалена из {{PLURAL:$2|$2 версии или записи в журнале, к которой|всех $2 версиях и/или записях в журнале, к которым}} она применяется в настоящее время.",
-       "tags-delete-explanation-warning": "Это действие является <strong>необратимым</strong> и <strong>не может быть отменено</strong> даже администраторами базы данных. Вы должны быть уверены, что это действительно метка, которую вы хотите удалить.",
+       "tags-delete-explanation-warning": "Это действие <strong>необратимо</strong> и <strong>не может быть отменено</strong> даже администраторами базы данных. Вы должны быть уверены, что это действительно метка, которую вы хотите удалить.",
        "tags-delete-explanation-active": "<strong>Метка «$1» по-прежнему активна и будет по-прежнему применяться в будущем.</strong> Чтобы этого не происходило, перейдите туда, где установлено использование метки, и отключить её там.",
        "tags-delete-reason": "Причина:",
        "tags-delete-submit": "Безвозвратно удалить эту метку",
        "dberr-outofdate": "Но имейте в виду, что его индекс может оказаться устаревшим.",
        "dberr-cachederror": "Ниже представлена закэшированная версия запрашиваемой страницы, возможно, она не отражает последних изменений.",
        "htmlform-invalid-input": "Часть введённых вами данных вызвала проблемы",
-       "htmlform-select-badoption": "Указанное Ð²Ð°Ð¼Ð¸ Ð·Ð½Ð°Ñ\87ение Ð½Ðµ Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ð´Ð¾Ð¿Ñ\83Ñ\81Ñ\82имÑ\8bм.",
-       "htmlform-int-invalid": "Указанное вами значение не является целым числом.",
-       "htmlform-float-invalid": "Указанное Ð²Ð°Ð¼Ð¸ Ð·Ð½Ð°Ñ\87ение Ð½Ðµ Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ñ\87иÑ\81лом.",
+       "htmlform-select-badoption": "Указано Ð½ÐµÐ´Ð¾Ð¿Ñ\83Ñ\81Ñ\82имое Ð·Ð½Ð°Ñ\87ение.",
+       "htmlform-int-invalid": "Указанное вами значение — не целое число.",
+       "htmlform-float-invalid": "Указано Ð½ÐµÑ\87иÑ\81ловое Ð·Ð½Ð°Ñ\87ение.",
        "htmlform-int-toolow": "Указанное вами значение ниже минимального — $1",
        "htmlform-int-toohigh": "указанное вами значение выше максимального — $1",
        "htmlform-required": "это значение необходимо",
        "htmlform-cloner-delete": "Удалить",
        "htmlform-cloner-required": "Требуется по крайней мере одно значение.",
        "htmlform-title-badnamespace": "[[:$1]] находится не в пространстве имён «{{ns:$2}}».",
-       "htmlform-title-not-creatable": "«$1» не является создаваемым заголовком страницы",
+       "htmlform-title-not-creatable": "«$1» — заголовок страницы, которая не может быть создана",
        "htmlform-title-not-exists": "[[:$1]] не существует.",
        "htmlform-user-not-exists": "<strong>$1</strong> не существует.",
-       "htmlform-user-not-valid": "<strong>$1</strong> не является допустимым именем пользователя.",
+       "htmlform-user-not-valid": "<strong>$1</strong> — недопустимое имя учётной записи.",
        "sqlite-has-fts": "$1 с поддержкой полнотекстового поиска",
        "sqlite-no-fts": "$1 без поддержки полнотекстового поиска",
        "logentry-delete-delete": "$1 {{GENDER:$2|удалил|удалила}} страницу $3",
        "api-error-badtoken": "Внутренняя ошибка:  некорректный токен.",
        "api-error-copyuploaddisabled": "Загрузка по URL-адресу отключена на этом сервере.",
        "api-error-duplicate": "Уже {{PLURAL:$1|1=существует [$2 другой файл]|существуют [$2 другие файлы]}} с таким же содержимым",
-       "api-error-duplicate-archive": "Раньше на сайте {{PLURAL:$1|1=уже был [$2 файл]|были [$2 файлы]}} с точно таким же содержанием, но {{PLURAL:$1|1=он был удалён|они были удалены}}.",
-       "api-error-duplicate-archive-popup-title": "Дубликаты {{PLURAL:$1|1=файла|файлов}}, которые уже были удалены.",
-       "api-error-duplicate-popup-title": "Дубликат {{PLURAL:$1|1=файла|файлов}}.",
+       "api-error-duplicate-archive": "Раньше на сайте {{PLURAL:$1|1=уже был файл|были файлы}} с точно таким же содержанием, но {{PLURAL:$1|1=он был удалён|они были удалены}}.",
        "api-error-empty-file": "Отправленный вами файл пуст.",
        "api-error-emptypage": "Не допускается создание новых пустых страниц.",
        "api-error-fetchfileerror": "Внутренняя ошибка: что-то пошло не так при получении файла.",
index 8946049..192e974 100644 (file)
        "passwordreset-emailtitle": "Детайлы конта на {{SITENAME}}",
        "passwordreset-emailtext-ip": "Дахто (може Вы, з IP адресы $1) попросив о наставлїня нового гесла до вашого конта на {{grammar:6sg|{{SITENAME}}}} ($4). З тов адресов {{PLURAL:$3|є повязане слїдуюче конто|суть повязаны слїдуючі конта}}:\n\n$2\n\n{{PLURAL:$3|Тото дочасне гесло стане неплатным|Тоты дочасны гесла стануть неплатныма}} {{PLURAL:$5|за день|за $5 днї|за $5 днїв}}.\nТеперь бы сьте ся мали приголосити і зволити собі нове гесло. Кідь тоту просьбу послав хтось другый або сьте собі на своє старе гесло спомянули і не хочете го змінити, можете тото повідомлїня іґноровати і дале хосновати старе гесло.",
        "passwordreset-emailtext-user": "{{gender:$1|Хоснователь|Хоснователька|Хоснователь}} $1 {{grammar:2sg|{{SITENAME}}}} {{gender:$1|попросив|попросила|попросив}} о наставлїня нового гесла до вашого\nконта на {{grammar:6sg|{{SITENAME}}}} ($4). З тов адресов {{PLURAL:$3|є повязане наступне конто|суть повязаны наступны конта}}:\n\n$2\n\n{{PLURAL:$3|Тото дочасне гесло кінчить|Тоты дочасны гесла кінчать}} {{PLURAL:$5|о єден день|о $5 днї|о $5 днїв}}.\nТеперь бы сьте ся мали приголосити і зволити собі нове гесло. Кідь тоту пожадавку \nпослав дахто другый або сьте собі на своє старе гесло спомянули і не хочете го\nзмінити, можете тото повідомлїня іґноровати і надале хосновати старе гесло.",
-       "passwordreset-emailelement": "Імя хоснователя: $1\nДочасне гесло: $2",
+       "passwordreset-emailelement": "Імя хоснователя: \n$1\n\nДочасне гесло: \n$2",
        "passwordreset-emailsent": "Імейл з геслом быв посланый.",
        "passwordreset-emailsent-capture": "Быв выґенерованый імейл з геслом, што є вказаный ниже.",
        "passwordreset-emailerror-capture": "Быв выґенерованый імейл з геслом, котрый є указаный ниже, але ся го не вдало загнати {{GENDER:$2|хоснователёви|хосновательцї}}: $1",
        "emailuser": "Послати імейл тому хоснователёви",
        "emailuser-title-target": "Загнати імейл {{GENDER:$1|тому хоснователёви|тій хосновательцї}}",
        "emailuser-title-notarget": "Загнати імейл хоснователёви",
-       "emailpage": "Пошлийте е-пошту",
        "emailpagetext": "З ниже зображеным формуларём годно {{GENDER:$1|тому хоснователёви|тій хосновательцї}} загнати повідомлїня ел. поштов.\nАдреса ел. пошты, котру мате зазначену в [[Special:Preferences|наставлїня]],ся обявить як адреса одосылателя пошты, жебы вам адресат міг беспосереднё одповісти.",
        "defemailsubject": "{{SITENAME}}: лист од \"$1\"",
        "usermaildisabled": "Посыланя ел. пошты є выпнуте",
        "api-error-badtoken": "Внутрїшня хыба: планый знак.",
        "api-error-copyuploaddisabled": "Наладовованя з URL є на тім сервері заказане.",
        "api-error-duplicate": "На тій вікі уж {{PLURAL:$1|екзістує [$2 другый файл]|екзістують [$2 іншы файлы]}} з такым самым обсягом.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|быв [$2 другый файл]|были [$2 даякы другы файлы]}} з такым самым обсягом уж гев оперед {{PLURAL:$1|быв|были}}, але {{PLURAL:$1|быв змазаный|были змазаны}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|дупліцітный файл, якый быв|дупліцітны файл, як были}} змазаны",
-       "api-error-duplicate-popup-title": "Дупліцітны {{PLURAL:$1|файл|файлы}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|быв другый файл|были даякы другы файлы}} з такым самым обсягом уж гев оперед {{PLURAL:$1|быв|были}}, але {{PLURAL:$1|быв змазаный|были змазаны}}.",
        "api-error-empty-file": "Наладованый файл є порожнїй.",
        "api-error-emptypage": "Створїня новых, порожнїх сторінк неслободно.",
        "api-error-fetchfileerror": "Внутрїшня хыба: трафила ся хыба під час обтриманя файлу.",
index 7853e83..20830d9 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}} इत्यत्र योजकविषये",
        "passwordreset-emailtext-ip": "कोऽपि (कदाचित् भवान्/भवती, $1 अन्तर्जालसंविदः (from IP)) {{SITENAME}}($4) जालस्थानस्य  कृते कूटशब्दपरिवर्तनस्य विनतिम् अकरोत् । निम्न{{PLURAL:$3|योजकः|योजकाः}} अनेन वि-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विनतिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
        "passwordreset-emailtext-user": "$1 योजकः {{SITENAME}}($4) जालस्थानस्य  कृते कूटशब्दपरिवर्तनस्य विनतिम् अकरोत् । निम्न{{PLURAL:$3|योजकः|योजकाः}} अनेन वि-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विज्ञप्तिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
-       "passwordreset-emailelement": "प्रयोक्तृनाम : $1\nअल्पकालीनकूटशब्दः : $2",
+       "passwordreset-emailelement": "प्रयोक्तृनाम : \n$1\n\nअल्पकालीनकूटशब्दः : \n$2",
        "passwordreset-emailsent": "परिवर्तितकूटशब्दस्य वि-पत्रं प्रेषितम् अस्ति ।",
        "passwordreset-emailsent-capture": "परिवर्तितकूटशब्दस्य वि-पत्रं प्रेषितम् अस्ति । तत् अधः द्रष्टुं शक्यते ।",
        "passwordreset-emailerror-capture": "परिवर्तितकूटशब्दस्य वि-पत्रं निर्मितम् अस्ति । तत् अधः द्रष्टुं शक्यते । परन्तु {{GENDER:$2|योजकाय}} प्रेषणकाले तत् निरस्तम् अभवत् : $1",
        "accmailtext": "[[User talk:$1|$1]] कृते अशृङ्खलितरीत्या (randomly) उत्पादितः कूटशब्दः $2 वि-पत्रसङ्केतं प्रति प्रेषितः अस्ति । <em>[[Special:ChangePassword|कूटशब्दः परिवर्त्यताम्]]</em> अत्र तत् परिर्तयितुं शक्यते ।",
        "newarticle": "(नूतनम्)",
        "newarticletext": "भवान्/भवती अनिर्मिते पृष्ठे अस्ति । \nपृष्ठं स्रष्टुम् अधः प्रदत्तायां पेटिकायां टङ्कनं प्रारभताम् (साहाय्यार्थं [$1 अत्र]) नुदतु ।\nभवान्/भवती यदि क्षतिकारणात् एतत् पृष्ठं प्रति आगच्छत्, तर्हि अस्य गवेषकस्य (browser) Back नुदतु ।",
-       "anontalkpagetext": "----\n<em>एतत् सम्भाषणपृष्ठम् अनामकयोजकेभ्यः अस्ति । एतत् तेभ्यः अनामकयोजकेभ्यः रचितमस्ति, यैः सदस्यता न प्राप्ता अस्ति तथा च अस्य पृष्ठस्य उपयोगं न कुर्वन्तः सन्ति ।</em>\nतेषां व्यक्तिगतसूचनां प्राप्तुमेव वयं तस्य/तस्याः अन्तर्जालसंविदः उपयोगं कुर्मः । केचन योजकाः स्वस्य अन्तर्जालसंविदम् अन्यान् योजकान् कथयन्ति । \nयद्यपि अनामकयोजकः अहं नास्मि, तथापि अयोग्यसूचनाः मम पार्श्वे आगच्छन्त्यः सन्ति इति यदि भवान्/भवती शङ्कते, तर्हि एतत् [[Special:UserLogin/signup|create an account]] एतत् [[Special:UserLogin|log in]] वा कृत्वा भविष्यस्य अनामकयोजकनां सन्देशेभ्यः स्वस्य रक्षणं करोतु ।",
+       "anontalkpagetext": "----\n<em>à¤\8fततà¥\8d à¤¸à¤®à¥\8dभाषणपà¥\83षà¥\8dठमà¥\8d à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤\85सà¥\8dति à¥¤ à¤\8fततà¥\8d à¤¤à¥\87भà¥\8dयà¤\83 à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤°à¤\9aितमसà¥\8dति, à¤¯à¥\88à¤\83 à¤¸à¤¦à¤¸à¥\8dयता à¤¨ à¤ªà¥\8dरापà¥\8dता à¤\85सà¥\8dति à¤¤à¤¥à¤¾ à¤\9a à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤¨ à¤\95à¥\81रà¥\8dवनà¥\8dतà¤\83 à¤¸à¤¨à¥\8dति à¥¤</em>\nतà¥\87षाà¤\82 à¤µà¥\8dयà¤\95à¥\8dतिà¤\97तसà¥\82à¤\9aनाà¤\82 à¤ªà¥\8dरापà¥\8dतà¥\81मà¥\87व à¤µà¤¯à¤\82 à¤¤à¤¸à¥\8dय/तसà¥\8dयाà¤\83 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¤\83 à¤\89पयà¥\8bà¤\97à¤\82 à¤\95à¥\81रà¥\8dमà¤\83 à¥¤ à¤\95à¥\87à¤\9aन à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¤¸à¥\8dवसà¥\8dय à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदमà¥\8d à¤\85नà¥\8dयानà¥\8d à¤¯à¥\8bà¤\9cà¤\95ानà¥\8d à¤\95थयनà¥\8dति à¥¤ \nयदà¥\8dयपि à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¤\83 à¤\85हà¤\82 à¤¨à¤¾à¤¸à¥\8dमि, à¤¤à¤¥à¤¾à¤ªà¤¿ à¤\85यà¥\8bà¤\97à¥\8dयसà¥\82à¤\9aनाà¤\83 à¤®à¤® à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤\86à¤\97à¤\9aà¥\8dà¤\9bनà¥\8dतà¥\8dयà¤\83 à¤¸à¤¨à¥\8dति à¤\87ति à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¶à¤\99à¥\8dà¤\95तà¥\87, à¤¤à¤°à¥\8dहि à¤\8fततà¥\8d [[Special:UserLogin/signup|create an account]] à¤\8fततà¥\8d [[Special:UserLogin|log in]] à¤µà¤¾ à¤\95à¥\83तà¥\8dवा à¤­à¤µà¤¿à¤·à¥\8dयसà¥\8dय à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95ानाà¤\82 à¤¸à¤¨à¥\8dदà¥\87शà¥\87भà¥\8dयà¤\83 à¤¸à¥\8dवसà¥\8dय à¤°à¤\95à¥\8dषणà¤\82 à¤\95रà¥\8bतà¥\81 à¥¤",
        "noarticletext": "अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]\n[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.",
        "noarticletext-nopermission": "अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]\n[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.",
        "missing-revision": "\"{{FULLPAGENAME}}\" पृष्ठस्य संस्करणं #$1 नोपलभ्यम् ।\nयस्य पृष्ठस्य इतिहासे परिसन्धयः कालातीताः सन्ति, तेषु पृष्ठेषु एवं भवति ।\nअधिकसूचनाः अत्र प्राप्तुं शक्यते [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} अपाकृतानाम् आवलिः].",
        "api-error-badtoken": "आन्तरिकदोषः : दुष्टप्रतीकः ।",
        "api-error-copyuploaddisabled": "अस्मिन् वितारके युआर् एल् द्वारा उत्तारणं निष्क्रियम् ।",
        "api-error-duplicate": "{{PLURAL:$1| [ $2 अन्यसञ्चिकाः] | सन्ति [ $2 काश्चन अन्यसञ्चिकाः]}} एकस्मिन् एव ।",
-       "api-error-duplicate-archive": "तत्र {{PLURAL:$1|आसीत् [$2 काश्चन अन्यसञ्चिकाः] |  [$2काचन अन्यसञ्चिकाः]}}, पूर्वमेव {{PLURAL:$1|यह was|they आसन्}} किन्तु अपनीताः ।",
-       "api-error-duplicate-archive-popup-title": "द्विप्रतिः {{PLURAL:$1| सञ्चिका |सञ्चिकाः}} पूर्वमेव अपमर्जिताः ।",
-       "api-error-duplicate-popup-title": "द्विप्रतिः {{PLURAL:$1| सञ्चिका| सञ्चिकाः}}",
+       "api-error-duplicate-archive": "तत्र {{PLURAL:$1|आसीत् काश्चन अन्यसञ्चिकाः|काचन अन्यसञ्चिकाः}}, पूर्वमेव {{PLURAL:$1|यह was|they आसन्}} किन्तु अपनीताः ।",
        "api-error-empty-file": "समर्पिता सञ्चिका रिक्ता आसीत् ।",
        "api-error-emptypage": "नूतनस्य रिक्तस्य पृष्ठस्य सर्जनं निषिद्धम् ।",
        "api-error-fetchfileerror": "आन्तरिकदोषः : सञ्चिकायाः प्राप्त्यवसरे कश्चन दोषः जातः ।",
index 6e2ded1..3fc1ed3 100644 (file)
        "nstab-template": "Халыып",
        "nstab-help": "Көмө",
        "nstab-category": "Категория",
+       "mainpage-nstab": "Сүрүн сирэй",
        "nosuchaction": "Маннык дьайыы суох",
        "nosuchactiontext": "Бу URL-га баар дьайыы сыыһалаах.\nБаҕар URL суруйарга алҕаһаабытыҥ буолуо эбэтэр сыыһалаах сигэннэн тахсыбытыҥ буолуо.\n{{SITENAME}} бэйэтин сыыһата эмиэ буолуон сөп.",
        "nosuchspecialpage": "Маннык анал сирэй суох",
        "passwordreset-emailtitle": "{{SITENAME}} бырайыакка аатын туһунан",
        "passwordreset-emailtext-ip": "Ким эрэ (баҕар эн буолуо, бу IP-ттан $1)  {{SITENAME}} ($4) бырайыакка киирии тылы уларытар туһунан ыйытык биэрбит.\nБу электрон аадырыһы кытта бу {{PLURAL:$3|аат ситимнээх|ааттар ситимнээхтэр}}:\n\n$2\n\nБу быстах кэмҥэ аналлаах {{PLURAL:$3|киирии тыл|кирии тыллар}} {{PLURAL:$5|биир күн үлэлиэҕэ|$5 күн үлэлиэхтэрэ}}.\nЭн тиһиликкэ ааккын этэн саҥа киирии тылы киллэриэхтээххин.\nӨскө бу ыйытыгы ыыппатах буоллаххына, эбэтэр урукку киирии тылгын өйдөөн кэлбит буоллаххына \nбу биллэриини ааххайыа суоххун сөп.\nОччоҕо урукку киирии тылыҥ оннунан хаалыа.",
        "passwordreset-emailtext-user": "$1 диэн кыттааччы  {{SITENAME}} ($4) бырайыакка киирии тылгын уларытар туһунан ыйытык ыыппыт.\nБу электрон аадырыһы кытта бу {{PLURAL:$3|аат ситимнээх|ааттар ситимнээхтэр}}\n\n$2\n\nБу быстах кэмҥэ аналлаах {{PLURAL:$3|киирии тыл|кирии тыллар}} {{PLURAL:$5|биир күн үлэлиэҕэ|$5 күн үлэлиэхтэрэ}}.\nЭн тиһиликкэ ааккын этэн саҥа киирии тылы киллэриэхтээххин.\nӨскө бу ыйытыгы ыыппатах буоллаххына, эбэтэр урукку киирии тылгын өйдөөн кэлбит буоллаххына \nбу биллэриини ааххайыа суоххун сөп.\nОччоҕо урукку киирии тылыҥ оннунан хаалыа.",
-       "passwordreset-emailelement": "Кыттааччы: $1\nБыстах киирии тыл: $2",
+       "passwordreset-emailelement": "Кыттааччы: \n$1\n\nБыстах киирии тыл: \n$2",
        "passwordreset-emailsent": "Киирии тылы уларытар туһунан сурук барда.",
        "passwordreset-emailsent-capture": "Киирии тылы уларытар туһунан сурук аллара эмиэ көрдөрүлүннэ.",
        "passwordreset-emailerror-capture": "Манна киирии тылы уларытар туһунан сурук көрдөрүлүннэ. Ол эрэн сурук бу төрүөттэн $2 кыттааччыга сатаан барбата: $1",
        "changeemail-password": "{{SITENAME}} ситим-сиргэ киирэр тылыҥ:",
        "changeemail-submit": "Аадырыһы уларыт",
        "changeemail-throttled": "Ааккын аһара элбэхтик билиһиннэрэ сатаатыҥ.\nБука диэн $1 буолан баран өссө киирэн көрөөр.",
+       "changeemail-nochange": "Бука диэн, атын аадырыста суруй.",
        "resettokens": "Токеннары бырах",
        "resettokens-text": "Бу ситим-сиргэ бэлиэтэммит ааккын кытта ситимнээх токеннары сотуоххун сөп.\n\nАлҕас кимиэхэ эрэ биэрэн кэбиспит буоллаххына эбэтэр ким эрэ эн ааккынан алдьатан киирбит буоллаҕына маны туһаныахха сөп.",
        "resettokens-no-tokens": "Сотуллар токен суох эбит.",
        "api-error-badtoken": "Ис алҕас: Омсолоох токен.",
        "api-error-copyuploaddisabled": "URL көмөтүнэн киллэрии бу сиэрбэргэ араарыллыбыт.",
        "api-error-duplicate": "Маннык иһинээҕилээх {{PLURAL:$1|[$2 атын билэ] баар эбит}}",
-       "api-error-duplicate-archive": "Урут ситим-сиргэ маннык иһинээҕилээх {{PLURAL:$1|[$2 билэ] баар |[$2 билэлэр] бааллар}} этэ, ол гынан баран {{PLURAL:$1|сотуллубута|сотуллубуттара}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Билэ|Билэлэр}} сотуллубут дубликааттара",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Билэ|Билэлэр}} дубликааттара.",
+       "api-error-duplicate-archive": "Урут ситим-сиргэ маннык иһинээҕилээх {{PLURAL:$1|билэ баар|билэлэр бааллар}} этэ, ол гынан баран {{PLURAL:$1|сотуллубута|сотуллубуттара}}.",
        "api-error-empty-file": "Ыыппыт билэҥ кураанах.",
        "api-error-emptypage": "Саҥа кураанах сирэйи оҥорор табыллыбат.",
        "api-error-fetchfileerror": "Ис алҕас: билэни ыларга туох эрэ сатаммата.",
index f3d1606..ce87370 100644 (file)
        "resetpass-submit-cancel": "Bạgi",
        "resetpass-temp-password": "Nit lạgit uku nambar:",
        "passwordreset": "Nãwãte oku nambar emme",
-       "passwordreset-legend": "Nãwãte oku nambar emme",
        "passwordreset-disabled": "Noa wikire amaḱ uku nambar nãwãte em lạgit subita do bando gea.",
        "passwordreset-username": "Beoharicaḱ ńutum:",
        "passwordreset-domain": "Ḍomen:",
        "passwordreset-capture-help": "Am do judi noa jacạy baksom lin lekhan, tobe nit lạgit́te em akan uku nambar são mit́ṭen e-mail ame uduḱama ar ona sãote beoharić ṭhen ona kuluḱa.",
        "passwordreset-email": "E-mail ṭhikạna:",
        "passwordreset-emailtitle": "{{SITENAME}} sayeṭre beoharićaḱ purạo thutiko",
-       "passwordreset-emailelement": "Beoharićaḱ ńutum: $1\nMit́ ghạṛi lạgit uku nambar: $2",
+       "passwordreset-emailelement": "Beoharićaḱ ńutum: \n$1\n\nMit́ ghạṛi lạgit uku nambar: \n$2",
        "passwordreset-emailsent": "Mitṭen disạ ruaṛ e-mail do kulena.",
        "passwordreset-emailsent-capture": "Mit́ṭen disạ ruaṛaḱ e-mail dokulena, oka do latarre ńeloḱ kana.",
        "passwordreset-emailerror-capture": "Disạ ruạṛ oco lạgit́te mit́ṭen e-mail tear hoelena, oka do latarre udugoḱkana, menkhan $1 beoharić ṭhen  ṭhen baṅ kul hoe akana.",
        "listgrouprights-addgroup-all": "Joto gaõtare ko soṅgekom",
        "listgrouprights-removegroup-all": "Joto gaõtaren ko ocoḱgiḍikom",
        "emailuser": "Nui beoharić e-mail emayme",
-       "emailpage": "E-mail beoharić",
        "noemailtitle": "E-mail ṭhikạna do banuḱa",
        "emailusername": "Beoharićaḱ ńutum:",
        "emailusernamesubmit": "Em",
index ee65cc4..3748b83 100644 (file)
                        "Taxandru"
                ]
        },
-       "tog-underline": "Sutalìnia sos ligòngios",
+       "tog-underline": "Sutalìnia sos ligàmenes",
        "tog-hideminor": "Cua is acontzos minores in sa pàgina de is ùrtimas mudàntzias",
        "tog-hidepatrolled": "Cua is mudas verificadas in is ùrtimos càmbios",
        "tog-newpageshidepatrolled": "Cua sas pàginas verificadas dae sa lista de sas pàginas noas",
-       "tog-extendwatchlist": "Ammània sa watchlist pro ammustrare totus sos càmbios, non sos prus reghentes ebbia",
+       "tog-extendwatchlist": "Ammània sa watchlist pro ammustrare totu sos càmbios, non sos prus reghentes ebbia",
        "tog-usenewrc": "Pone in pare sos càmbios de cada pàgina in sos ùrtimos càmbios e in sa watchlist",
        "tog-numberheadings": "Auto-numeratzione de sos tìtulos",
        "tog-showtoolbar": "Ammustra sa mustra de sa barra de sas ainas",
        "tog-editondblclick": "Càmbia pàginas cun duos click",
        "tog-editsectiononrightclick": "Abìlita su càmbiu de sas setziones cun click de dereta in sos tìtulos de sas setziones",
-       "tog-watchcreations": "Annanghe is pàginas chi apo creadu e is documentos chi apo carrigadu in sa lista de pàginas annotadas mea",
+       "tog-watchcreations": "Annanghe is pàginas chi apo creadu e is documentos chi apo carrigadu in sa lista mea de pàginas annotadas",
        "tog-watchdefault": "Annanghe pàginas e documentos chi apo cambiadu in sa lista de pàginas annotadas mea",
        "tog-watchmoves": "Annanghe pàginas e documentos chi apo mòvidu in sa lista de pàginas annotadas mea",
        "tog-watchdeletion": "Annanghe pàginas e documentos chi apo burradu in sa lista de pàginas annotadas mea",
        "tog-watchrollback": "Pone is pàginas innue apo fatu su rollback in is pàginas annotadas",
-       "tog-minordefault": "Marca comente minores pro difetu totus sos càmbios",
+       "tog-minordefault": "Marca comente minores pro difetu totu sos càmbios",
        "tog-previewontop": "Ammustra s'anteprima in subra de sa casella de càmbiu e no in suta",
        "tog-previewonfirst": "Ammustra s'anteprima pro sa prima muda",
        "tog-enotifwatchlistpages": "Imbia·mi una post.el. cando b'at àpidu unu càmbiu in una pàgina o in unu documentu de sa watchlist mea",
        "tog-enotifrevealaddr": "Faghe ischire s'indiritzu de sa post.el. mea in sas notìficas de sa post.els",
        "tog-shownumberswatching": "Ammustra su nùmeru de is impitadores chi ant annotadu sa pàgina",
        "tog-oldsig": "Firma atuale:",
-       "tog-fancysig": "Trata sa firma comente unu testu wiki (sena ligòngios automàticos)",
+       "tog-fancysig": "Trata sa firma comente unu testu wiki (sena ligàmenes automàticos)",
        "tog-uselivepreview": "Imprea sa funtzione \"anteprima bia\" (isperimentale)",
        "tog-forceeditsummary": "Averte·mi si su campu ogetu est bòidu",
-       "tog-watchlisthideown": "Cua sas mudas meas dae sa watclist",
+       "tog-watchlisthideown": "Cua sas modìficas meas dae sa watclist",
        "tog-watchlisthidebots": "Cua sas mudas de sos bots dae sa watchlist",
        "tog-watchlisthideminor": "Cua sos càmbios minores dae sa watchlist",
-       "tog-watchlisthideliu": "Cua is càmbios de is impitadores identificados dae sa lista de pàginas annotadas",
+       "tog-watchlisthideliu": "Cua is càmbios de is utentes identificados dae sa lista de pàginas annotadas",
        "tog-watchlisthideanons": "Cua is càmbios de is impitadores anònimos dae sa lista de pàginas annotadas",
        "tog-watchlisthidepatrolled": "Cua mudas verificadas dae sa watchlist",
-       "tog-ccmeonemails": "Imbia·mi sas còpias de is emails chi imbio a is àteros impitadores",
-       "tog-diffonly": "No ammustras su cuntènnidu de sa pàgina a pustis de sa bisura de is diferèntzias",
+       "tog-ccmeonemails": "Imbia·mi sas còpias de is post.els chi imbio a is àteros utentes",
+       "tog-diffonly": "No ammustras su cuntenutu de sa pàgina a pustis de sa bisura de is diferèntzias",
        "tog-showhiddencats": "Ammustra sas categorias cuadas",
        "tog-norollbackdiff": "Cua sa bisura de is diferèntzias a pustis de su rollback",
-       "tog-useeditwarning": "Averte·mi si lassu una pàgina cun càmbios sena de sarbare",
+       "tog-useeditwarning": "Averte·mi si lasso una pàgina cun modìficas sena sarvadas",
        "tog-prefershttps": "Imprea semper una lìnia segura candu fatzo s'intrada.",
        "underline-always": "Semper",
        "underline-never": "Mai",
        "underline-default": "Definitziones dae su navigadore tuo",
-       "editfont-style": "Istile de sos caràteres in s'àrea de càmbiu:",
+       "editfont-style": "Istile de sos caràteres in s'àrea de modìfica:",
        "editfont-default": "Definidu dae su navigadore",
        "editfont-monospace": "Caràtere monospàtziu",
        "editfont-sansserif": "Caràtere sena gràtzias",
        "category-empty": "''In custa categoria non ddu at peruna pàgina o documentu multimediale.''",
        "hidden-categories": "{{PLURAL:$1|Categoria cuada|Categorias cuadas}}",
        "hidden-category-category": "Categorias cuadas",
-       "category-subcat-count": "{{PLURAL:$2|Custa categoria cuntennet un'ùnica sutacategoria ammustrada in suta.|Custa categoria cuntenet {{PLURAL:$1|sa sutacategoria indicada|$1 sutacategorias indicadas}} in suta, dae $2 in totu.}}",
+       "category-subcat-count": "{{PLURAL:$2|Custa categoria cuntenet un'ùnica sutacategoria ammustrada in suta.|Custa categoria cuntenet {{PLURAL:$1|sa sutacategoria indicada|$1 sutacategorias inditadas}} in suta, dae $2 in totu.}}",
        "category-subcat-count-limited": "Custa categoria tenet {{PLURAL:$1|una sutacategoria, ammustrada|$1 sutacategorias, ammustradas}} in suta.",
        "category-article-count": "{{PLURAL:$2|Custa categoria cuntenet feti sa pàgina chi sighit.|Custa categoria cuntenet {{PLURAL:$1|sa pàgina indicada|is $1 pàginas indicadas}} in suta, dae unu totale de $2.}}",
        "category-article-count-limited": "{{PLURAL:$1|Sa pàgina chi sighit est|Is $1 pàginas chi sighint sunt}} in custa categoria.",
        "moredotdotdot": "Àteru…",
        "morenotlisted": "Sa lista no est cumpreta",
        "mypage": "Pàgina",
-       "mytalk": "Cuntierras mias",
+       "mytalk": "Cuntierras meas",
        "anontalk": "Cuntierras pro custu indiritzu IP",
        "navigation": "Navigatzione",
        "and": "&#32;e",
        "history_short": "Istòria",
        "updatedmarker": "atualizada dae s'ùrtima vìsita mea",
        "printableversion": "Versione de imprenta",
-       "permalink": "Ligòngiu permanente",
+       "permalink": "Ligàmene permanente",
        "print": "Imprenta",
        "view": "Ammustra",
        "view-foreign": "Ammustra in $1",
        "edit-local": "Càmbia sa descritzione locale",
        "create": "Crea",
        "create-local": "Annanghe descritzione locale",
-       "editthispage": "Càmbia custa pàgina",
+       "editthispage": "Modìfica custa pàgina",
        "create-this-page": "Crea custa pàgina",
        "delete": "Burra",
        "deletethispage": "Burra custa pàgina",
        "protect_change": "càmbia",
        "protectthispage": "Ampara custa pàgina",
        "unprotect": "Muda amparu",
-       "unprotectthispage": "Muda amparu de custa pàgina",
+       "unprotectthispage": "Càmbia amparu de custa pàgina",
        "newpage": "Pàgina noa",
        "talkpage": "Pàgina de cuntierra",
        "talkpagelinktext": "Cuntierra",
        "personaltools": "Ainas personales",
        "articlepage": "Càstia s'artìculu",
        "talk": "Cuntierras",
-       "views": "Bìsitas",
+       "views": "Vìsitas",
        "toolbox": "Ainas",
        "userpage": "Càstia sa pàgina impitadore",
        "projectpage": "Càstia sa pàgina meta",
        "jumptosearch": "chirca",
        "view-pool-error": "Tene passèntzia, sos servidores sunt càrrigos de traballu.\nIn medas chircant de castiare custa pàgina.\nPro praghere, torra a tenteare posca.\n\n$1",
        "generic-pool-error": "Tene passèntzia, sos servidores sunt càrrigos de traballu.\nIn medas chircant de castiare custa risorsa.\nPro praghere, torra a provare luego.",
-       "pool-timeout": "Timeout abetende pro s'arreu",
+       "pool-timeout": "Timeout isetende pro s'arreu",
        "pool-queuefull": "Sa coa pro su traballu de su protzessu est prena",
        "pool-errorunknown": "Faddina disconnota",
        "pool-servererror": "Su servìtziu de contadore de su protzessu no est disponìbile ($1).",
        "newmessageslinkplural": "{{PLURAL:$1|unu messàggiu nou|999=messàggios noos}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|ùrtima muda|999=ùrtimas mudàntzias}}",
        "youhavenewmessagesmulti": "Tenes messàgios noos in $1",
-       "editsection": "càmbia",
-       "editold": "càmbia",
+       "editsection": "modìfica",
+       "editold": "modìfica",
        "viewsourceold": "càstia testu codificadu",
-       "editlink": "càmbia",
+       "editlink": "modìfica",
        "viewsourcelink": "càstia testu codificadu",
        "editsectionhint": "Càmbia sa setzione: $1",
-       "toc": "Cuntènnidu",
+       "toc": "Cuntenutu",
        "showtoc": "ammustra",
        "hidetoc": "cua",
        "collapsible-collapse": "Serra e istringhe",
        "sort-descending": "Òrdine in falada",
        "sort-ascending": "Òrdine in artziada",
        "nstab-main": "Pàgina",
-       "nstab-user": "Pàgina impitadore",
+       "nstab-user": "Pàgina utente",
        "nstab-media": "Documentu multimediale",
        "nstab-special": "Pàgina ispetziale",
        "nstab-project": "Pàgina de servìtziu",
-       "nstab-image": "Documentu",
+       "nstab-image": "Archìviu",
        "nstab-mediawiki": "Messàgiu",
-       "nstab-template": "Template",
+       "nstab-template": "Modellu",
        "nstab-help": "Agiudu",
        "nstab-category": "Categoria",
        "nosuchaction": "No esistit custa atzione",
        "databaseerror-function": "Funtzione: $1",
        "databaseerror-error": "Faddina: $1",
        "laggedslavemode": "<strong>Atentzione:</strong> Sa pàgina podet non cuntènnere sos agiornamentos prus novos.",
-       "readonly": "Database bloccadu",
+       "readonly": "Database blocadu",
        "enterlockreason": "Inserta su motivu de su blocu, ispetzifichende su momentu probàbile chi su blocu at a acabbare",
        "readonlytext": "In custu momentu su database est bloccadu dae aciunturas e àteras modificas, probabilmente pro ordinaria manutentzione a su database, a pustis de custas at a èssere normale torra.\n\nS'amministradore chi dd'at bloccadu at donadu custa ispiegatzione: $1",
        "missing-article": "Su database no at agatadu su testu de una pàgina chi diat àere agatadu a suta de su nùmene \"$1\" $2.\n\nCustu a su sòlitu si verìficat cando bi est unu ligòngiu in s'istòria o in unu cunfrontu intre revisiones de una pàgina chi est istada fuliada.\n\nSi no est custu su casu, s'est agatada una faddina de su software.\nPro praghere signa s'acontèssidu a unu [[Special:ListUsers/sysop|amministradore]] ispetzifichende su URL de sa faddina.",
        "filerenameerror": "No est stadu possìbile re-numenare su file \"$1\" in \"$2\".",
        "filedeleteerror": "No est stadu possìbile cantzellare su file \"$1\".",
        "directorycreateerror": "Non si podet creare sa directory \"$1\".",
-       "filenotfound": "No est stadu possìbile agatare \"$1\".",
+       "filenotfound": "No est istadu possìbile a agatare \"$1\".",
        "unexpected": "Valore non previstu: \"$1\"=\"$2\".",
-       "formerror": "Errore: impossìbile imbiare su modellu",
+       "formerror": "Errore: impossìbile imbiare su modellu",
        "badarticleerror": "Operatzione non cunsentida pro custa pàgina.",
-       "cannotdelete": "No est stadu possìbile burrare sa pàgina o su file \"$1\".\nPodet èsser stadu burradu dae calicunu àteru.",
+       "cannotdelete": "No est istadu possìbile a burrare sa pàgina o su file \"$1\".\nPodet èsser stadu burradu dae calicunu àteru.",
        "cannotdelete-title": "Impossìbile burrare sa pàgina \"$1\"",
-       "delete-hook-aborted": "Sa burradura est istada annuddada dae su hook de s'estensione.\nNo est istadu datu acrarimentu.",
+       "delete-hook-aborted": "Sa burradura est istada annullada dae su hook de s'estensione.\nNo est istadu dadu acrarimentu.",
        "no-null-revision": "Non si podet creare una versione lulla pro sa pàgina \"$1\"",
        "badtitle": "Tìtulu malu",
        "badtitletext": "Su tìtulu de sa pàgina chi as pregontadu est bùidu, isballiadu, o iscritu in is cullegamentus inter-wiki a manera non currègia.\nPodet cuntènnere uno o unos cantos caràteres no ammìtidos pro is tìtulos.",
        "perfcached": "Is datos chi sighint sunt in sa memòria \"cache\" e podent èessere no agiornados. Unu màssimu de {{PLURAL:$1|unu resurtu est disponìbile|$1 resurtos sunt disponìbiles}} in sa memòria",
        "perfcachedts": "Is datos chi sighint sunt in sa memòria \"cache\", s'ùrtimu agiornamentu est de su $2 a is $3. Unu màssimu de {{PLURAL:$4|unu resurtu est disponìbile|$4 resurtos sunt disponìbiles}} in sa memòria",
        "querypage-no-updates": "Sos agiornamentos pro custa pàgina sunt temporaneamente sessadas.\nSos datos suos no ant a èssere agiornados.",
-       "viewsource": "Càstia mitza",
-       "viewsource-title": "Càstia sa mitza de $1",
+       "viewsource": "Càstia còdighe de orìgine",
+       "viewsource-title": "Càstia su còdighe de orìgine de $1",
        "actionthrottled": "Atzione rimandada",
        "actionthrottledtext": "Comente mesura de seguràntzia contra a s'ispam, non podes torrare a fàghere custa atzione tropu ispissu in unu tempus tropu curtzu, e tue as cabuladu custu lìmide.\nPro piaghere torra a proare a pustis de carchi minutos.",
        "protectedpagetext": "Custa pàgina est istada amparada pro nde prevenner su càmbiu o àteras fatas.",
        "exception-nologin-text": "Pro atzèdere a custa pàgina o atzione est netzessàriu a ti identificare.",
        "exception-nologin-text-manual": "Pro piaghere $1 pro pòder'atzèdere a custa pàgina o atzione.",
        "virus-badscanner": "Faddina de configuratzione: antivirus disconnotu: <em>$1</em>",
-       "virus-scanfailed": "scansione faddida (còdixe $1)",
+       "virus-scanfailed": "iscansione faddida (còdighe $1)",
        "virus-unknownscanner": "antivirus disconnotu:",
        "logouttext": "<strong>As acabadu sa sessione.</strong>\n\nTene contu ca is pàginas ki sunt giai abertas in àteras bentanas podent sighire a pàrrer comente cando fias identificadu, fintzas a cando non ddas renfriscas dae su browser tuo.",
-       "welcomeuser": "Benénnidu, $1!",
+       "welcomeuser": "Bene bènnidu, $1!",
        "welcomecreation-msg": "Su contu tuo est istadu creadu.\nSi boles podes cambiare is [[Special:Preferences|prefèntzias tuas]] pro {{SITENAME}}",
-       "yourname": "Nùmene impitadore:",
-       "userlogin-yourname": "Nùmene impitadore",
-       "userlogin-yourname-ph": "Inserta su nùmene impitadore tuo",
-       "createacct-another-username-ph": "Inserta su nùmene impitadore:",
+       "yourname": "Nùmene utente:",
+       "userlogin-yourname": "Nùmene utente",
+       "userlogin-yourname-ph": "Inseri su nùmene utente tuo",
+       "createacct-another-username-ph": "Inserta su nùmene utente:",
        "yourpassword": "Password:",
        "userlogin-yourpassword": "Password",
        "userlogin-yourpassword-ph": "Inserta sa password tua",
        "userlogin-resetpassword-link": "As ismentigadu sa password?",
        "userlogin-helplink2": "Agiudu pro s'atzessu",
        "userlogin-createanother": "Crea un àteru contu",
-       "createacct-emailrequired": "Indirutzu Email",
-       "createacct-emailoptional": "Indiritzu email (optzionale)",
-       "createacct-email-ph": "Inserta s'indiritzu email tuo",
-       "createacct-another-email-ph": "Inserta s'indiritzu email",
-       "createaccountmail": "Imprea una password a sorte e ispedidda a su indiritzu email ispetzificadu",
+       "createacct-emailrequired": "Indirutzu Post.el",
+       "createacct-emailoptional": "Indiritzu post.el (optzionale)",
+       "createacct-email-ph": "Inserta s'indiritzu post.el tuo",
+       "createacct-another-email-ph": "Inserta s'indiritzu post.el",
+       "createaccountmail": "Imprea una password a sorte e ispedidda a su indiritzu post.el ispetzificadu",
        "createacct-realname": "Nùmene beru (optzionale)",
        "createaccountreason": "Motivu:",
        "createacct-reason": "Motivu",
-       "createacct-reason-ph": "Proite ses creande un àteru contu",
+       "createacct-reason-ph": "Pro ite ses creende un àteru contu",
        "createacct-captcha": "Còmpudu de siguresa",
-       "createacct-imgcaptcha-ph": "Inserta su testu chi bides aissusu",
+       "createacct-imgcaptcha-ph": "Inseri su testu chi ses bidende in artu",
        "createacct-submit": "Crea su contu tuo",
        "createacct-another-submit": "Crea un àteru contu",
        "createacct-benefit-heading": "{{SITENAME}} est òpera de gente che tue.",
        "resetpass-expired": "Sa password tua est iscadida. Pro piaghere inserta una password noa pro intrare.",
        "resetpass-validity-soft": "Sa password password tua no est bàlida: $1\n\nPro piaghere issèbera una password noa como, o carca \"{{int:resetpass-submit-cancel}}\" pro lu fàghere prus a tardu.",
        "passwordreset": "Reseta sa password",
-       "passwordreset-legend": "Reseta sa password",
        "passwordreset-disabled": "Non si podent cambiare sas passwords in custa wiki.",
        "passwordreset-emaildisabled": "Is funtzionalidades de email sunt istadas disabilitadas in custa wiki.",
        "passwordreset-username": "Nùmene impitadore:",
        "passwordreset-domain": "Domìniu:",
-       "passwordreset-capture": "Ammustrare su cuntènnidu de sa email?",
+       "passwordreset-capture": "Ammustrare su cuntenutu de sa email?",
        "passwordreset-email": "Indiritzu email:",
        "passwordreset-emailtitle": "Particulares de s'impitadore in {{SITENAME}}",
-       "passwordreset-emailelement": "Nùmene impitadore: $1\nPassword temporànea: $2",
+       "passwordreset-emailelement": "Nùmene utente: \n$1\n\nPassword temporànea: \n$2",
        "changeemail": "Càmbia indiritzu email",
        "changeemail-oldemail": "Indiritzu email atuale:",
        "changeemail-newemail": "Indiritzu email nou:",
        "subject": "Tema/tìtulu:",
        "minoredit": "Custu est unu càmbiu minore",
        "watchthis": "Annota custa pàgina",
-       "savearticle": "Sarba sa pàgina",
+       "savearticle": "Sarva sa pàgina",
        "preview": "Antiprima",
        "showpreview": "Ammustra s'antiprima",
        "showdiff": "Ammustra is càmbios",
-       "anoneditwarning": "<strong>Atentzione:</strong> Non ses identificadu.\nS'indiritzu IP tuo at a èssere annòtidu si faghes unos cantos càmbios. Si <strong>idendificas</strong> tibe o <strong>[$2 creas unu contu]</strong>, is càmbios tuos ant a esser marcados cun su nùmene impitadore tuo, paris a àteros giuamentos.",
+       "anoneditwarning": "<strong>Atentzione:</strong> Non ses identificadu.\nS'indiritzu IP tuo at a èssere annotadudu si faghes unos cantos càmbios. Si <strong>identìficas</strong> tibe o <strong>[$2 creas unu contu]</strong>, is càmbios tuos ant a èssere marcados cun su nùmene utente tuo, paris a àteros giuamentos.",
        "anonpreviewwarning": "''Non ses identificadu. Sarvende s'indiritzu IP tuo at a èssere registradu in s'istòria de sa pàgina.''",
        "missingcommenttext": "Inserta unu cummentu inoghe suta.",
        "summary-preview": "Antiprima ogetu:",
        "postedit-confirmation-saved": "Su càmbiu tuo est istadu sarbadu.",
        "edit-already-exists": "No est possìbile creare una pàgina noa.\nEsistit giai.",
        "defaultmessagetext": "Testu de su messàgiu predeterminadu",
-       "invalid-content-data": "Datos de cuntènnidu invàlidos",
-       "content-not-allowed-here": "Cuntènnidu a manera \"$1\" no adduidu in sa pàgina [[$2]]",
+       "invalid-content-data": "Datos de cuntenutu invàlidos",
+       "content-not-allowed-here": "Cuntenutu a manera \"$1\" no adduidu in sa pàgina [[$2]]",
        "editwarning-warning": "S'essida dae custa pàgina diat pòdere cajonare sa pèrdida de totus sos càmbios chi as fatu.\nSi ses autentificadu, podes disabilitare custu avisu in sa setzione \"{{int:prefs-editing}}\" de sas preferèntzias tuas.",
        "editpage-notsupportedcontentformat-title": "Formadu de càbidu non suportadu",
        "content-model-wikitext": "wikitestu",
        "revdelete-selected-file": "{{PLURAL:$1|Versione seletzionada|Versiones seletzionadas}} de su documentu [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Acadessimentu de su registru seletzionadu|Acadessimentos de su registru seletzionadu}}:",
        "revdelete-hide-text": "Testu de sa versione",
-       "revdelete-hide-image": "Cua su cuntènnidu de su documentu",
+       "revdelete-hide-image": "Cua su cuntenutu de su documentu",
        "revdelete-hide-comment": "Modìfica s'ogetu",
        "revdelete-radio-same": "(non cambiare)",
        "revdelete-radio-set": "Cua",
        "difference-multipage": "(Diferèntzias intre pàginas)",
        "lineno": "Lìnia $1:",
        "compareselectedversions": "Cumpara versiones scioberadas",
-       "editundo": "annudda",
+       "editundo": "annulla",
        "diff-empty": "(Diferèntzia peruna)",
        "searchresults": "Resurtados de sa chirca",
        "searchresults-title": "Resurtados pro sa chirca de \"$1\"",
        "viewprevnext": "Càstia ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "<strong>Ddu est una pàgina tzerriada \"[[:$1]]\" in custa wiki.</strong> {{PLURAL:$2|0=|Càstia puru is àteros resurtados de sa chirca.}}",
        "searchmenu-new": "<strong>Crea sa pàgina \"[[:$1]]\" in custa wiki!</strong> {{PLURAL:$2|0=|Càstia fintzas sa pàgina agatada cun sa chirca tua|Càstia fintzas is resurtados de sa chirca}}",
-       "searchprofile-articles": "Pàginas de càbidos",
+       "searchprofile-articles": "Pàginas de cuntenutos",
        "searchprofile-images": "Multimèdia",
        "searchprofile-everything": "Totue",
        "searchprofile-advanced": "Avantzada",
        "right-undelete": "Restaurare una pàgina",
        "right-suppressionlog": "Càstia is registros privados",
        "right-siteadmin": "Bloccare e sbloccare su database",
-       "newuserlogpage": "Impitadores nous",
+       "newuserlogpage": "Utentes noos",
        "rightslog": "Deretos de is impitadores",
        "action-read": "lègher custa pàgina",
        "action-edit": "cambiare custa pàgina",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|dae s'ùrtima bisita}}",
        "enhancedrc-history": "istòria",
        "recentchanges": "Ùrtimas mudàntzias",
-       "recentchanges-legend": "Optziones subra ùrtimas mudàntzias",
+       "recentchanges-legend": "Optziones subra ùrtimos càmbios",
        "recentchanges-summary": "Sighi is ùrtimas mudàntzias a sa wiki in custa pàgina.",
        "recentchanges-feed-description": "Sighi is ùrtimas mudàntzias a sa wiki cun custu feed.",
-       "recentchanges-label-newpage": "Custu càmbiu at creadu una pàgina noa",
-       "recentchanges-label-minor": "Custu est unu càmbiu minore",
-       "recentchanges-label-bot": "Custu càmbiu est istadu fatu dae unu bot",
+       "recentchanges-label-newpage": "Custa modìfica at creadu una pàgina noa",
+       "recentchanges-label-minor": "Custa est una modìfica minore",
+       "recentchanges-label-bot": "Custa modìfica l'at fata unu bot",
        "recentchanges-label-unpatrolled": "Custu càmbiu no est istadu cumprobadu",
-       "recentchanges-label-plusminus": "Sa muda de sa mannesa de sa pàgina dae su nùmeru de bytes",
+       "recentchanges-label-plusminus": "Su càmbiu de sa mannària de sa pàgina dae su nùmeru de bytes",
        "recentchanges-legend-heading": "'''Legenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (càstia [[Special:NewPages|is pàginas noas]])",
        "rcnotefrom": "{{PLURAL:$5|Sa chi sighit est sa mudàntzia|Is chi sighint sunt is mudàntzias}} dae <strong>$3, $4</strong> (ammustradas fintzas a <strong>$1</strong>).",
-       "rclistfrom": "Ammustra mudàntzias dae $3 $2",
+       "rclistfrom": "Ammustra càmbios dae $3 $2",
        "rcshowhideminor": "$1 is càmbios minores",
        "rcshowhideminor-show": "Ammustra",
        "rcshowhideminor-hide": "Cua",
        "rcshowhidebots": "$1 is bots",
        "rcshowhidebots-show": "Ammustra",
        "rcshowhidebots-hide": "Cua",
-       "rcshowhideliu": "$1 is impitadores identificados",
+       "rcshowhideliu": "$1 is utentes identificados",
        "rcshowhideliu-show": "Ammustra",
        "rcshowhideliu-hide": "Cua",
-       "rcshowhideanons": "$1 is impitadores anònimos",
+       "rcshowhideanons": "$1 is utentes anònimos",
        "rcshowhideanons-show": "Ammustra",
        "rcshowhideanons-hide": "Cua",
        "rcshowhidepatr": "$1 càmbios cumprobados",
        "rcshowhidepatr-show": "Ammustra",
        "rcshowhidepatr-hide": "Cua",
-       "rcshowhidemine": "$1 is càmbios mios",
+       "rcshowhidemine": "$1 is modìficas meas",
        "rcshowhidemine-show": "Ammustra",
        "rcshowhidemine-hide": "Cua",
        "rclinks": "Ammustra is ùrtimas $1 mudàntzias fatas in is ùrtimas $2 dies<br />$3",
        "listfiles-latestversion": "Versione atuale",
        "listfiles-latestversion-yes": "Eja",
        "listfiles-latestversion-no": "No",
-       "file-anchor-link": "File",
-       "filehist": "Stòria de su file",
+       "file-anchor-link": "Archìviu",
+       "filehist": "Istòria de su file",
        "filehist-help": "Carca unu grupu data/ora pro castiare su file comente si presentada in su tempus indicadu.",
        "filehist-deleteall": "fùlia totu",
        "filehist-deleteone": "cantzella",
        "filehist-thumb": "Miniatura",
        "filehist-thumbtext": "Miniatura de sa versione de is $1",
        "filehist-nothumb": "Peruna miniatura",
-       "filehist-user": "Impitadore",
+       "filehist-user": "Utente",
        "filehist-dimensions": "Dimensiones",
        "filehist-filesize": "Mannesa de su file",
-       "filehist-comment": "Cummentu",
+       "filehist-comment": "Cumentu",
        "imagelinks": "Ligant a custu file",
        "linkstoimage": "{{PLURAL:$1|Sa pàgina chi sighit ligat|Is $1 pàginas chi sighint ligant}} a custu file:",
        "nolinkstoimage": "Peruna pàgina ligat a custu file.",
        "nlinks": "$1 {{PLURAL:$1|ligòngiu|ligòngios}}",
        "nmembers": "$1 {{PLURAL:$1|cumponente|cumponentes}}",
        "nrevisions": "$1 {{PLURAL:$1|revisione|revisiones}}",
-       "nviews": "$1 {{PLURAL:$1|bisura|bisuras}}",
        "lonelypages": "Pàginas burdas",
        "uncategorizedpages": "Pàginas chentza categoria",
        "uncategorizedcategories": "Categorias chentza categoria",
        "mailnologintext": "Depes èsser [[Special:UserLogin|identificadu (login)]] e àere registradu un'indiritzu email vàlidu in is [[Special:Preferences|preferèntzias tuas]] pro imbiare email a àteros impitadores.",
        "emailuser": "Imbia una email a custu impitadore",
        "emailuser-title-notarget": "Ispedi una email a s'impitadore",
-       "emailpage": "Ispedi una email a s'impitadore",
        "emailpagetext": "Imprea su mòdulu a suta pro ispedire una email a custu impitadore.\nS'indiritzu chi as insertadu in is [[Special:Preferences|preferèntzias impitadore tuas]] at a pàrrere comente su chi at ispedidu sa e-mail, pro fàghere sa manera chi su destinatàriu ti respundat deretu.",
        "defemailsubject": "Missada dae \"$1\", impitadore de {{SITENAME}}",
        "noemailtitle": "Perunu indiritzu e-mail",
        "created": "creada",
        "deletepage": "Fùlia pàgina",
        "confirm": "Cunfima",
-       "excontent": "su cuntènnidu fiat: '$1'",
-       "excontentauthor": "su cuntènnidu fiat: '$1' (e s'ùnicu contribudore fiat '[[Special:Contributions/$2|$2]]')",
+       "excontent": "su cuntenutu fiat: '$1'",
+       "excontentauthor": "su cuntenutu fiat: '$1' (e s'ùnicu contribudore fiat '[[Special:Contributions/$2|$2]]')",
        "delete-confirm": "Fùlia \"$1\"",
        "delete-legend": "Fuliare",
        "confirmdeletetext": "Ses acanta de burrare una pàgina cun totu su stòria sua.\nPro praxere, cunfirma ca est intentzione tua fàgher custu, ca connosches is cosseguèntzias de s'atzione tua, a ca custa est cunforma a is [[{{MediaWiki:Policy-url}}|lìnias polìticas]].",
        "undelete-search-submit": "Chirca",
        "undelete-show-file-submit": "Eja",
        "namespace": "Nùmene-logu:",
-       "invert": "Fùrria sa seletzione",
+       "invert": "Inverti sa seletzione",
        "namespace_association": "Nùmene-logu assotziadu",
        "blanknamespace": "(Printzipale)",
-       "contributions": "Contributos {{GENDER:$1|impitadore}}",
+       "contributions": "Cuntributos {{GENDER:$1|utente}}",
        "contributions-title": "Contributziones de $1",
        "mycontris": "Contributos mios",
        "contribsub2": "Pro {{GENDER:$3|$1}} ($2)",
        "blocklink": "arrea",
        "unblocklink": "sblocca",
        "change-blocklink": "tramuda s'arreu",
-       "contribslink": "contributos",
+       "contribslink": "cuntributos",
        "emaillink": "imbia email",
        "blocklogpage": "Bloccos de impitadores",
        "blocklogentry": "bloccau [[$1]] pro unu tempu de $2 $3",
        "move-page": "Movimentu de $1",
        "move-page-legend": "Movimentu pàgina",
        "movepagetext": "Cun custu mòdellu podes renumenare una pàgina, movende totu sa stòria sua a sa pàgina noa.\nSu tìtulu bèciu at a diventare una pàgina de reindiritzamentu a su tìtulu nou.\nPodes agiornare automaticamente is redirects ca ligant a su tìtulu originàriu.\nSi sèberas de no, assicura·ti de controllare pro [[Special:DoubleRedirects| reindiritzaduras dòpias]] o [[Special:BrokenRedirects|sballiadas]].\nSes responsàbile de t'assigurare ca is cullegamentos sighint a puntare  a ue depent puntare.\n\nAnnota ca sa pàgina <strong>non</strong> s'at a mòver si nde esistit giai un'àtera a su tìtulu nou, si no est ki siat bùida o cun sceti unu reindiritzamentu a sa bècia e siat chentza acontzos in antis. In casu de movimentu sballiadu, duncas, si podet torrare a su tìtulu bèciu, ma non podes subrascrìer una pàgina chi giai esistit.\n\n<strong>ATENTZIONE!</strong>\nUnu cambiamentu dràsticu podet creare problemas, mescamente a is pàginas prus populares;\npro praxere depes èsser seguru de àer cumpresu is cunsighèntzias prima de sighire a in antis.",
-       "movepagetalktext": "Sa pàgina cuntierras asotziada, chi esistit, at a èssere movida automaticamenti impare a sa pàgina base, '''a parte in custos casos''':\n* su movimentu de sa pàgina est intre namespaces diversos;\n* in currispondèntzia de su tìtulu nou esistit giai una pàgina de cuntierras (non bùida);\n* sa casella inoe in bàsciu no est istata sceberada.\n\nIn custos casos, si cheres, depes mòvere a manu su cuntènnidu de sa pàgina.",
+       "movepagetalktext": "Sa pàgina cuntierras asotziada, chi esistit, at a èssere movida automaticamenti impare a sa pàgina base, '''a parte in custos casos''':\n* su movimentu de sa pàgina est intre namespaces diversos;\n* in currispondèntzia de su tìtulu nou esistit giai una pàgina de cuntierras (non bùida);\n* sa casella inoe in bàsciu no est istata sceberada.\n\nIn custos casos, si cheres, depes mòvere a manu su cuntenutu de sa pàgina.",
        "movearticle": "Move sa pàgina",
        "movenologintext": "Depes èsser unu impitadore registradu e [[Special:UserLogin|identificadu]] pro pòder mòver una pàgina",
        "newtitle": "Tìtulu nou:",
        "allmessages-language": "Limba:",
        "allmessages-filter-submit": "Bae",
        "allmessages-filter-translate": "Tradui",
-       "thumbnail-more": "Amannia",
+       "thumbnail-more": "Ismànnia",
        "thumbnail_error": "Faddina creande sa miniatura: $1",
        "import-interwiki-sourcewiki": "Wiki de orìgine:",
        "import-interwiki-sourcepage": "Pàgina de orìgine:",
        "importstart": "Importande is pàginas...",
        "import-revision-count": "$1 {{PLURAL:$1|revisione|revisiones}}",
        "importlogpage": "Importatziones",
-       "tooltip-pt-userpage": "Sa pàgina impitadore tua",
+       "tooltip-pt-userpage": "Sa pàgina utente tua",
        "tooltip-pt-mytalk": "Sa pàgina de is cuntierras tuas",
        "tooltip-pt-preferences": "Is preferèntzias chi podes seberare",
        "tooltip-pt-watchlist": "Lista de is pàginas annotadas dae tue pro is mudàntzias",
        "tooltip-pt-mycontris": "Sa lista de is contributos mios",
        "tooltip-pt-login": "Sa registratzione est cussigiada; mancari chi non siat obligatoria",
        "tooltip-pt-logout": "Essida (log out)",
-       "tooltip-ca-talk": "Cuntierras a propòsitu de su cuntestu de sa pàgina",
-       "tooltip-ca-edit": "Podes modificare custa pàgina.\nPro praghere, prima de sarbare càstia s'antiprima",
-       "tooltip-ca-addsection": "Incumentza una setzione noa",
+       "tooltip-ca-talk": "Cuntierras a propòsitu de su cuntenutu de sa pàgina",
+       "tooltip-ca-edit": "Podes modificare custa pàgina.\nPro praghere, in antis de sarvare càstia s'anteprima",
+       "tooltip-ca-addsection": "Incumintza una setzione noa",
        "tooltip-ca-viewsource": "Sa pàgina est bardada.\nPodes castiare sa mitza sua",
        "tooltip-ca-history": "Versiones coladas de custa pàgina",
        "tooltip-ca-protect": "Barda custa pàgina",
        "tooltip-ca-delete": "Burra custa pàgina",
        "tooltip-ca-move": "Move custa pàgina (càmbia su tìtulu)",
-       "tooltip-ca-watch": "Annota custa pàgina pro is mudàntzias",
+       "tooltip-ca-watch": "Annota custa pàgina pro is càmbios",
        "tooltip-ca-unwatch": "Rimove custa pàgina dae sa lista de pàginas annotadas tua",
-       "tooltip-search": "Chirca in intru de {{SITENAME}}",
-       "tooltip-search-go": "Bae a una pàgina cun su nùmene indicadu, si esistit",
+       "tooltip-search": "Chirca in intro de {{SITENAME}}",
+       "tooltip-search-go": "Bae a una pàgina cun su nùmene inditadu, si esistit",
        "tooltip-search-fulltext": "Chirca custu testu in is pàginas",
-       "tooltip-p-logo": "Bìsita sa pàgina base",
+       "tooltip-p-logo": "Vìsita sa pàgina base",
        "tooltip-n-mainpage": "Bìsita sa pàgina base",
        "tooltip-n-mainpage-description": "Bìsita sa pàgina base",
        "tooltip-n-portal": "Descritzione de su progetu, ite podes fàgher, a innue agatas is cosas",
        "tooltip-n-currentevents": "Informatziones subra acadessimentos atuales",
-       "tooltip-n-recentchanges": "Lista de is ùrtimas mudàntzias in su giassu",
+       "tooltip-n-recentchanges": "Lista de is ùrtimos càmbios in su giassu",
        "tooltip-n-randompage": "Càrriga una pàgina a sorte",
        "tooltip-n-help": "Pàginas de agiudu",
        "tooltip-t-whatlinkshere": "Lista de totu is pàginas chi ligant a custa",
-       "tooltip-t-recentchangeslinked": "Lista de is ùrtimas mudàntzias de is pàginas ki ligant a custa",
+       "tooltip-t-recentchangeslinked": "Lista de is ùrtimos càmbios de is pàginas ki ligant a custa",
        "tooltip-feed-rss": "RSS feed pro custa pàgina",
        "tooltip-feed-atom": "Atom feed pro custa pàgina",
-       "tooltip-t-contributions": "Càstia sa lista de is contributos de custu impitadore",
+       "tooltip-t-contributions": "Càstia sa lista de is cuntributos de custu utente",
        "tooltip-t-emailuser": "Ispedi una email a custu impitadore",
        "tooltip-t-upload": "Càrriga documentu multimediale",
        "tooltip-t-specialpages": "Lista de is pàginas ispetziales",
        "tooltip-t-print": "Versione de custa pàgina pro s'imprenta",
-       "tooltip-t-permalink": "Ligòngiu permanente a custa versione de sa pàgina",
-       "tooltip-ca-nstab-main": "Càstia su cuntènnidu de sa pàgina",
-       "tooltip-ca-nstab-user": "Càstia sa pàgina impitadore",
+       "tooltip-t-permalink": "Ligàmene permanente a custa versione de sa pàgina",
+       "tooltip-ca-nstab-main": "Càstia su cuntenutu de sa pàgina",
+       "tooltip-ca-nstab-user": "Càstia sa pàgina utente",
        "tooltip-ca-nstab-special": "Custa est una pàgina ispetziale, non si podet modificare",
        "tooltip-ca-nstab-project": "Càstia sa pàgina de servìtziu",
        "tooltip-ca-nstab-image": "Càstia sa pàgina de su file",
        "tooltip-watch": "Annota custa pàgina pro is mudàntzias",
        "tooltip-recreate": "Torra a creare sa pàgina mancari siat stada fuliada",
        "tooltip-upload": "Cumentza a carrigare",
-       "tooltip-rollback": "\"Rollback\" annudda is mudàntzias de custa pàgina fatas dae s'ùrtimu contribudore",
+       "tooltip-rollback": "\"Rollback\" annulla is modìficas de custa pàgina fatas dae s'ùrtimu cuntribudore",
        "tooltip-undo": "\"Annudda\" fùrriat custu càmbiu e aberit su mòdulu de càmbiu comente antiprima.\nPodes annànghere unu motivu in s'ogetu.",
        "tooltip-preferences-save": "Sarba preferèntzias",
        "tooltip-summary": "Inserta unu resumu curtzu",
        "pageinfo-default-sort": "Critèriu de ordinamentu predefinidu",
        "pageinfo-length": "Longària de sa pàgina (in bytes)",
        "pageinfo-article-id": "ID pàgina",
-       "pageinfo-language": "Limba de su cuntènnidu de sa pàgina",
-       "pageinfo-content-model": "Modellu de su cuntènnidu de sa pàgina",
+       "pageinfo-language": "Limba de su cuntenutu de sa pàgina",
+       "pageinfo-content-model": "Modellu de su cuntenutu de sa pàgina",
        "pageinfo-robot-policy": "Inditzizatzione pro is robots",
        "pageinfo-robot-index": "Adduida",
        "pageinfo-firstuser": "Creadore de sa pàgina",
        "yesterday-at": "Eris a is $1",
        "bad_image_list": "Su formadu est su chi sighit:\n\nBenint consideradas isceti is listas punnadas (lìnias chi incumentzant cun *).\nSu primu ligòngiu in cada una lìnia depet èssere unu ligòngiu a unu documentu malu (o indesideradu).\nIs ligòngios chi sighint in sa matessi lìnia sunt cunsiderados comente etzetziones (est a nàrrere, pàginas in ue si podet usare su documentu).",
        "metadata": "Metadatos",
-       "metadata-help": "Custu file cuntènnit informatziones annuntiles, probabilmente annúnghedas dae sa fotocamera o dae su scannerizadore impreadu pro ddu creare o ddu digitalizare. Si su file est istadu mudadu, unos cantos particulares podent non currispòndere a sa realidade.",
+       "metadata-help": "Custu file cuntenet informatziones annuntiles, probabilmente annantas dae sa fotocamera o dae s'iscansionadore impreadu pro ddu creare o ddu digitalizare. Si su file est istadu modificadu, unos cantos particulares podent non currispòndere a sa realidade.",
        "metadata-expand": "Ammustra particulares",
        "metadata-collapse": "Cua particulares",
-       "metadata-fields": "Is campus de is metadatos de imàgine listados in custu messàgiu ant a èssere ammustrados in sa pàgina de s'immàgine candu sa tabella de is metadatos est presentada in forma breve. Pro impostatzione predefinida, is àteros campos ant a èssere cuaos.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "Is campos de is metadatos de imàgine listados in custu messàgiu ant a èssere ammustrados in sa pàgina de s'immàgine candu sa tabella de is metadatos est presentada in forma breve. Pro impostatzione predefinida, is àteros campos ant a èssere cuaos.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-artist": "Autore",
        "exif-exposuretime-format": "$1 s ($2)",
        "exif-fnumber-format": "f/$1",
index bbc3660..01b8a38 100644 (file)
        },
        "tog-underline": "Suttalìnia li lijami:",
        "tog-hideminor": "Ammuccia li canciamenti nichi nta l'ùrtimi canciamenti",
-       "tog-hidepatrolled": "Ammuccia li mudìfichi battugghiati nta l'ùrtimi canciamenti",
-       "tog-newpageshidepatrolled": "Ammuccia li pàggini battugghiati di l'alencu dî pàggini cchiu' novi",
-       "tog-extendwatchlist": "Ammustra tutti i canciamenti ntâ lista taliata, nun sulu u cchiu' ricenti",
-       "tog-usenewrc": "Raggruppa li canciamenti pi' pàggina ntâ lista dî canciamenti ricenti e ntâ lista taliata",
+       "tog-hidepatrolled": "Ammuccia li canciamenti virificati nta l'ùrtimi canciamenti",
+       "tog-newpageshidepatrolled": "Ammuccia li pàggini virificati di l'elencu dî pàggini cchiù novi",
+       "tog-extendwatchlist": "Ammustra tutti li canciamenti ntâ lista taliata, nun sulu lu cchiù ricenti",
+       "tog-usenewrc": "Raggruppa li canciamenti pi pàggina ntâ lista dî canciamenti ricenti e ntâ lista taliata",
        "tog-numberheadings": "Nummirazzioni autumàtica dî tìtuli di paràgrafu",
-       "tog-showtoolbar": "Ammustra la barra dî strumenta pû canciamentu",
+       "tog-showtoolbar": "Ammustra la barra dî strummenta pû canciamentu",
        "tog-editondblclick": "Duppiu click pi canciari l'artìculu",
-       "tog-editsectiononrightclick": "Attiva lu canciamentu di na sizzioni quannu si clicca cu' buttuni drittu supra a lu so tìtulu",
-       "tog-watchcreations": "Agghiunci li pàggini chi' creu e li file chi' càrricu â me lista taliata",
-       "tog-watchdefault": "Agghiunci li pàggini e li file chi' canciu â me lista taliata",
-       "tog-watchmoves": "Agghiunci li pàggini e li file chi' spostu â me lista taliata",
-       "tog-watchdeletion": "Agghiunci li pàggini e li file chi' cancellu â me lista taliata",
-       "tog-watchrollback": "Agghiunci li pàggini unni fici nu canciu n'arreri â me lista taliata",
-       "tog-minordefault": "Marca ogni' canciamentu comu nicu pi' mpustazzioni pridifinuta",
+       "tog-editsectiononrightclick": "Attiva lu canciamentu di na sizzioni quannu si clicca cu buttuni drittu supra a lu sò tìtulu",
+       "tog-watchcreations": "Agghiunci li pàggini chi creu e li file chi càrricu â mè lista taliata",
+       "tog-watchdefault": "Agghiunci li pàggini e li file chi canciu â mè lista taliata",
+       "tog-watchmoves": "Agghiunci li pàggini e li file chi spostu â mè lista taliata",
+       "tog-watchdeletion": "Agghiunci li pàggini e li file chi cancellu â mè lista taliata",
+       "tog-watchrollback": "Agghiunci li pàggini unni fici nu canciu n'arreri â mè lista taliata",
+       "tog-minordefault": "Marca ogni canciamentu comu nicu pi mpustazzioni pridifinuta",
        "tog-previewontop": "Ammustra l'antiprima avanti dâ casedda di canciamentu",
        "tog-previewonfirst": "Ammustra l'antiprima ô primu canciamentu",
-       "tog-enotifwatchlistpages": "Mànnami nu missàggiu di posta elittrònica quannu na pàggina o nu file dâ me lista taliata subbìsciunu canciamenti",
-       "tog-enotifusertalkpages": "Mànnami nu missaggiu di posta elettrònica quannu la me pàggina di discussioni veni canciata",
+       "tog-enotifwatchlistpages": "Mànnami nu missaggiu di posta elittrònica quannu na pàggina o nu file dâ mè lista taliata subbìscinu canciamenti",
+       "tog-enotifusertalkpages": "Mànnami nu missaggiu di posta elettrònica quannu la mè pàggina di discussioni veni canciata",
        "tog-enotifminoredits": "Mànnami nu missaggiu di posta elittrònica macari pi li canciamenti nichi di pàggini e file",
-       "tog-enotifrevealaddr": "Ammustra lu me nnirizzu di posta elittrònica ntê missaggi di nutifica",
-       "tog-shownumberswatching": "Ammustra lu nùmmiru di utenti ca talìunu la pàggina",
+       "tog-enotifrevealaddr": "Ammustra lu mè nnirizzu di posta elittrònica ntê missaggi di nutìfica",
+       "tog-shownumberswatching": "Ammustra lu nùmmiru d'utenti ca talìanu la pàggina",
        "tog-oldsig": "Firma attuali:",
-       "tog-fancysig": "Intèrpitra la firma comu wikitestu (senza liami automaticu)",
-       "tog-uselivepreview": "Attiva l'antiprima in diretta",
-       "tog-forceeditsummary": "Dumanna cunfirma siddu lu riassuntu dûn canciamentu è vacanti",
-       "tog-watchlisthideown": "Ammuccia li me canciamenti ntâ lista taliata",
+       "tog-fancysig": "Ntèrprita la firma comu wikitestu (senza liami automàticu)",
+       "tog-uselivepreview": "Attiva l'antiprima n diretta",
+       "tog-forceeditsummary": "Addumanna cunferma siddu lu riassuntu dûn canciamentu è vacanti",
+       "tog-watchlisthideown": "Ammuccia li mè canciamenti ntâ lista taliata",
        "tog-watchlisthidebots": "Ammuccia li canciamenti dî bot ntâ lista taliata",
        "tog-watchlisthideminor": "Ammuccia li canciamenti nichi ntâ lista taliata",
        "tog-watchlisthideliu": "Ammuccia li canciamenti di l'utilizzatura riggistrati ntâ lista taliata",
        "tog-watchlisthideanons": "Ammuccia li canciamenti di l'utilizzatura anònimi ntâ lista taliata",
-       "tog-watchlisthidepatrolled": "Ammuccia li mudìfichi battugghiati ntâ lista taliata",
+       "tog-watchlisthidepatrolled": "Ammuccia li canciamenti virificati ntâ lista taliata",
        "tog-ccmeonemails": "Mànnami na copia dî missaggi spiduti a l'àutri utenti",
        "tog-diffonly": "Nun ammustrari lu cuntinutu dî pàggini sutta dî cunfrunti tra virsioni",
        "tog-showhiddencats": "Ammustra li catigurìi ammucciati",
-       "tog-norollbackdiff": "Nun ammustrari u cunfruntu tra virsioni doppu aviri fattu nu canciu n'arreri",
-       "tog-useeditwarning": "Avvèrtimi quannu mi nni vaju di na pàggina cu' canciamenti nun sarvati",
-       "tog-prefershttps": "Adòpira sempri na cunnissioni sicura quannu si' trasutu",
+       "tog-norollbackdiff": "Nun ammustrari lu cunfruntu tra virsioni doppu aviri fattu nu canciu n'arreri",
+       "tog-useeditwarning": "Avvèrtimi quannu mi nni vaiu di na pàggina cu canciamenti nun sarvati",
+       "tog-prefershttps": "Adòpira sempri na cunnissioni sicura quannu trasisti",
        "underline-always": "Sempri",
        "underline-never": "Mai",
        "underline-default": "Mpustazzioni pridifinuta dâ peddi o dû browser",
        "editfont-style": "Stili dû caràttiri dâ casedda di canciamentu:",
        "editfont-default": "Pridifinutu dô browser",
-       "editfont-monospace": "Tipu di caràttiri a' larghizza fissa",
+       "editfont-monospace": "Tipu di caràttiri a larghizza fissa",
        "editfont-sansserif": "Tipu di caràttiri senza grazzî",
-       "editfont-serif": "Tipu di caràttiri cu' grazzî",
+       "editfont-serif": "Tipu di caràttiri cu grazzî",
        "sunday": "Duminicadìa",
        "monday": "Lunidìa",
        "tuesday": "Martidìa",
@@ -85,7 +85,7 @@
        "may_long": "Maiu",
        "june": "Giugnu",
        "july": "Giugnettu",
-       "august": "Aùstu",
+       "august": "Austu",
        "september": "Sittèmmiru",
        "october": "Uttùviru",
        "november": "Nuvèmmiru",
        "may-date": "$1 di maiu",
        "june-date": "$1 di giugnu",
        "july-date": "$1 di giugnettu",
-       "august-date": "$1 di aùstu",
+       "august-date": "$1 d'austu",
        "september-date": "$1 di sittèmmiru",
        "october-date": "$1 di uttùviru",
        "november-date": "$1 di nuvèmmiru",
        "category_header": "Pàggini ntâ catigurìa \"$1\"",
        "subcategories": "Suttacatigurìi",
        "category-media-header": "File multimidiali ntâ catigurìa \"$1\"",
-       "category-empty": "<em>Sta catigurìa pi' com'ora nun cunteni nudda pàggina e nuddu file multimidiali.</em>",
+       "category-empty": "<em>Sta catigurìa pi com'ora nun cunteni nudda pàggina e nuddu file multimidiali.</em>",
        "hidden-categories": "{{PLURAL:$1|Catigurìa ammucciata|Catigurìi ammuciati}}",
        "hidden-category-category": "Catigurìi ammucciati",
        "category-subcat-count": "{{PLURAL:$2|Sta catigurìa cunteni na sula suttacatigurìa, nnicata ccà sutta.|Sta catigurìa cunteni {{PLURAL:$1|la suttacatigurìa|li $1 suttacatigurìi nnicati}} ccà sutta, sùpira nu tutali di $2.}}",
        "moredotdotdot": "Àutru...",
        "morenotlisted": "Sta lista è ncumpreta",
        "mypage": "Pàggina",
-       "mytalk": "La me pàggina di discussioni",
+       "mytalk": "La mè pàggina di discussioni",
        "anontalk": "Discussioni di stu nnirizzu IP",
        "navigation": "Navigazzioni",
        "and": "&#32;e",
        "qbbrowse": "Sfogghia",
        "qbedit": "Cancia",
        "qbpageoptions": "Opzioni pàggina",
-       "qbmyoptions": "Li me pàggini",
+       "qbmyoptions": "Li mè pàggini",
        "faq": "Dumanni cumuni",
        "faqpage": "Project:Dumanni comuni",
        "actions": "Azzioni",
        "variants": "Varianti",
        "navigation-heading": "Menù di navigazzioni",
        "errorpagetitle": "Erruri",
-       "returnto": "Ritorna a' $1.",
+       "returnto": "Torna a $1.",
        "tagline": "Di {{SITENAME}}",
        "help": "Guida",
        "search": "Arricerca",
-       "searchbutton": "Va cerca",
-       "go": "Trova",
+       "searchbutton": "Va arricerca",
+       "go": "Attrova",
        "searcharticle": "Vai",
        "history": "Crunuluggìa dâ pàggina",
        "history_short": "Crunuluggìa",
        "permalink": "Liami pirmanenti",
        "print": "Stampa",
        "view": "Talìa",
-       "view-foreign": "Talìa supra a' $1",
+       "view-foreign": "Talìa supra a $1",
        "edit": "Cancia",
        "edit-local": "Cancia la discrizzioni lucali",
        "create": "Crea",
        "unprotect": "Cancia la prutizzioni",
        "unprotectthispage": "Cancia la prutizzioni di sta pàggina",
        "newpage": "Pàggina nova",
-       "talkpage": "Discussioni supra a' sta pàggina",
+       "talkpage": "Discussioni supra a sta pàggina",
        "talkpagelinktext": "Discussioni",
        "specialpage": "Pàggina spiciali",
        "personaltools": "Strumenta pirsunali",
        "articlepage": "Vidi l'artìculu",
        "talk": "Discussioni",
        "views": "Vìsiti",
-       "toolbox": "Strumenta",
+       "toolbox": "Strummenta",
        "userpage": "Talìa la pàggina di l'utenti",
        "projectpage": "Talìa la pàggina di sirvizziu",
        "imagepage": "Talìa la pàggina dû file",
        "viewhelppage": "Talìa la pàggina dâ guida",
        "categorypage": "Talìa la catigurìa",
        "viewtalkpage": "Talìa la discussioni",
-       "otherlanguages": "Nta autri lingui",
-       "redirectedfrom": "(Rimannu a' pàrtiri di $1)",
+       "otherlanguages": "Nta àutri lingui",
+       "redirectedfrom": "(Rimannu a pàrtiri di $1)",
        "redirectpagesub": "Pàggina di rimannu",
        "redirectto": "Rimanna a:",
-       "lastmodifiedat": "Sta pàggina fu' canciata l'ùltima vota a li $2 di lu $1.",
-       "viewcount": "Sta pàggina hâ statu liggiuta {{PLURAL:$1|na vota|$1 voti}}.",
+       "lastmodifiedat": "Sta pàggina fu canciata l'ùrtima vota a li $2 di lu $1.",
+       "viewcount": "Sta pàggina fu liggiuta {{PLURAL:$1|na vota|$1 voti}}.",
        "protectedpage": "Pàggina prutetta",
-       "jumpto": "Vai a':",
+       "jumpto": "Vai a:",
        "jumptonavigation": "navigazzioni",
-       "jumptosearch": "cerca",
-       "view-pool-error": "Nni dispiaci, ma li server nta stu mumentu sunnu troppu carrichi.\nTroppi utenti stannu circannu di taliari sta pàggina.\nPi' favuri spetta n'anticchia prima di pruvari n'autra vota a taliari sta pàggina.\n\n$1",
-       "generic-pool-error": "Nni dispiaci, ma li server nta stu mumentu sunnu troppu càrrichi.\nTroppi utenti stannu circannu di taliari sta risorsa.\nPi' favuri spetta n'anticchia prima di pruvari n'autra vota a taliari sta risorsa.",
+       "jumptosearch": "arricerca",
+       "view-pool-error": "Ni dispiaci, ma li server nta stu mumentu sunnu troppu càrrichi.\nTroppi utenti stannu circannu di taliari sta pàggina.\nPi favuri aspetta n'anticchia prima di pruvari n'àutra vota a taliari sta pàggina.\n\n$1",
+       "generic-pool-error": "Ni dispiaci, ma li server nta stu mumentu sunnu troppu càrrichi.\nTroppi utenti stannu circannu di taliari sta risorsa.\nPi favuri aspetta n'anticchia prima di pruvari n'àutra vota a taliari sta risorsa.",
        "pool-timeout": "Tempu scadutu aspittannu lu sbloccu",
        "pool-queuefull": "La cuda dû pool è china",
        "pool-errorunknown": "Erruri scanusciutu",
        "pool-servererror": "Lu sirvizziu di cuntaturi dî pool nun è dispunìbbili ($1)",
        "poolcounter-usage-error": "Erruri d'utilizzu: $1",
-       "aboutsite": "Nfurmazzioni supra a' {{SITENAME}}",
-       "aboutpage": "Project:Àutri nformazzioni",
+       "aboutsite": "Nfurmazzioni supra a {{SITENAME}}",
+       "aboutpage": "Project:Àutri nfurmazzioni",
        "copyright": "Lu cuntinutu è utilizzàbbili secunnu la $1, sarvu minzioni cuntraria.",
        "copyrightpage": "{{ns:project}}:Copyright",
        "currentevents": "Nutizzî",
        "privacy": "Pulìtica supra la privacy",
        "privacypage": "Project:Pulìtica rilativa â privacy",
        "badaccess": "Erruri di pirmissu",
-       "badaccess-group0": "Nun hai lu pirmissu p'esèquiri l'azzioni chi' hai addumannatu.",
+       "badaccess-group0": "Nun hai lu pirmissu p'esèquiri l'azzioni chi addumannasti.",
        "badaccess-groups": "La funzioni addumannata è risirvata a l'utenti ca appartèninu {{PLURAL:$2|ô gruppu|a unu dî gruppi siquenti}}: $1.",
        "versionrequired": "È nicissaria la virsioni $1 dû software MediaWiki",
        "versionrequiredtext": "P'usari sta pàggina ci voli la virsioni $1 dû software MediaWiki. Talìa [[Special:Version|sta pàggina]]",
-       "ok": "Va' bonu",
+       "ok": "Va bonu",
        "retrievedfrom": "Estrattu di \"$1\"",
-       "youhavenewmessages": "Ricivisti $1 ($2).",
-       "youhavenewmessagesfromusers": "Ricivisti $1 di {{PLURAL:$3|n'autru utenti|$3 utenti}} ($2).",
-       "youhavenewmessagesmanyusers": "Ricivisti $1 di tanti utenti ($2).",
+       "youhavenewmessages": "Arricivisti $1 ($2).",
+       "youhavenewmessagesfromusers": "Arricivisti $1 di {{PLURAL:$3|n'àutru utenti|$3 utenti}} ($2).",
+       "youhavenewmessagesmanyusers": "Arricivisti $1 di tanti utenti ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|nu missaggiu novu|999=missaggi novi}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|ùrtimu canciamentu|999=ùrtimi canciamenti}}",
-       "youhavenewmessagesmulti": "Ricivisti missaggi novi supra a' $1",
+       "youhavenewmessagesmulti": "Arricivisti missaggi novi supra a $1",
        "editsection": "cancia",
        "editold": "cancia",
-       "viewsourceold": "talìa u surgenti",
+       "viewsourceold": "talìa la surgenti",
        "editlink": "cancia",
-       "viewsourcelink": "talìa u surgenti",
+       "viewsourcelink": "talìa la surgenti",
        "editsectionhint": "Cancia la sizzioni $1",
        "toc": "Ìnnici",
        "showtoc": "ammustra",
        "hidetoc": "ammuccia",
        "collapsible-collapse": "Strinci",
-       "collapsible-expand": "Llarga",
-       "confirmable-confirm": "Si' {{GENDER:$1|sicuru|sicura}}?",
+       "collapsible-expand": "Allarga",
+       "confirmable-confirm": "Sî {{GENDER:$1|sicuru|sicura}}?",
        "confirmable-yes": "Sì",
        "confirmable-no": "No",
        "thisisdeleted": "Vidi e/o riprìstina $1?",
        "page-rss-feed": "Feed RSS di \"$1\"",
        "page-atom-feed": "Feed Atom di \"$1\"",
        "red-link-title": "$1 (la pàggina nun esisti)",
-       "sort-descending": "Òrdina a' scìnniri",
-       "sort-ascending": "Òrdina a' nchianari",
+       "sort-descending": "Òrdina dicriscennu",
+       "sort-ascending": "Òrdina criscennu",
        "nstab-main": "Pàggina",
        "nstab-user": "Pàggina di l'utenti",
        "nstab-media": "Pàggina dû file multimidiali",
        "nstab-template": "Template",
        "nstab-help": "Pàggina di guida",
        "nstab-category": "Catigurìa",
+       "mainpage-nstab": "Pàggina principali",
        "nosuchaction": "Opirazzioni nun ricanusciuta",
        "nosuchactiontext": "L'azzioni spicificata nâ URL nun è vailida.\nPoi aviri sbagghiatu a digitari â URL, o cliccatu supra nu link sbagghiatu.\nChistu putissi ndicari nu bug nô software usatu da {{SITENAME}}.",
        "nosuchspecialpage": "Sta pàggina spiciali nun è dispunìbbili",
-       "nospecialpagetext": "<strong>Hai cercatu na pàggina spiciali nun vàlida.</strong>\n\nL'alencu dî pàggini spiciali vàlidi s'attrova 'n [[Special:SpecialPages|Alencu dî pàggini spiciali]].",
+       "nospecialpagetext": "<strong>Arricircasti na pàggina spiciali nun vàlida.</strong>\n\nL'elencu dî pàggini spiciali vàlidi s'attrova n [[Special:SpecialPages|Elencu dî pàggini spiciali]].",
        "error": "Erruri",
        "databaseerror": "Erruri dû database",
        "databaseerror-text": "Si virificau n'erruri nti na dimanna dû databbasi.\nPutissi siri ca c'è nu bacu ntô prugramma.",
        "databaseerror-error": "Erruri: $1",
        "laggedslavemode": "Accura: La pàggina putissi nun ripurtari l'aggiurnamenti cchiù ricenti.",
        "readonly": "Basi di dati bluccata",
-       "enterlockreason": "Spiega lu mutivu dû bloccu, spicificannu na stima di quannu veniravi livatu.",
-       "readonlytext": "Com'ad ora la basi di dati è bluccata e nun sunnu pussìbbili junti o canciamenti; lu mutivu prubbabbili è la manutinzioni ordinària, finuta la quali la basi di dati turniravi normali.\n\nL'amministraturi chi la bluccau desi sta spiegazzioni: $1",
+       "enterlockreason": "Spiega lu mutivu dû bloccu, spicificannu na stima di quannu veni livatu.",
+       "readonlytext": "Com'a ora la basi di dati è bluccata e nun sunnu pussìbbili junti o canciamenti; lu mutivu prubbàbbili è la manutinzioni ordinaria, finuta la quali la basi di dati torna nurmali.\n\nL'amministraturi chi la bluccau desi sta spigazzioni: $1",
        "missing-article": "La basi di dati nun attruvau lu testu di na pàggina c'avissi avutu a attruvari, cu nomu \"$1\" $2.\n\nSta cosa di sòlitu succedi quannu s'arrichiama, a pàrtiri di na crunuluggìa o di nu cunfruntu tra virsioni, nu liami a na pàggina chi fu cancillata.\n\nSi nun è accussì, pò èssiri ca scupristi nu bug ntô software.\nPi favuri signala stu fattu a n'[[Special:ListUsers/sysop|amministraturi]], spicificannu l'URL.",
        "missingarticle-rev": "(№ di virsioni: $1)",
        "missingarticle-diff": "(Diff: $1, $2)",
-       "readonly_lag": "La basi di dati fu' bluccata autumaticamenti nta mentri ca li server di basi di dati slave si sincrunìzzanu cu' chiddu master",
+       "readonly_lag": "La basi di dati fu bluccata autumaticamenti ntô mentri ca li server di basi di dati slave si sincrunìzzanu cu chiddu master",
        "internalerror": "Erruri nternu",
        "internalerror_info": "Erruri nternu: $1",
        "internalerror-fatal-exception": "Eccizzioni fatali di tipu \"$1\"",
-       "filecopyerror": "Nun fu' pussìbbili cupiari lu file \"$1\" nta \"$2\".",
-       "filerenameerror": "Nun fu' pussìbbili canciari lu nomu dû file di \"$1\" a' \"$2\".",
+       "filecopyerror": "Nun fu pussìbbili cupiari lu file \"$1\" nta \"$2\".",
+       "filerenameerror": "Nun fu pussìbbili canciari lu nomu dû file di \"$1\" a \"$2\".",
        "filedeleteerror": "Nun fu pussìbbili cancillari lu file \"$1\".",
        "directorycreateerror": "Nun fu pussìbbili criari la cartella \"$1\".",
-       "directoryreadonlyerror": "La cartella \"$1\" è a' sula littura.",
+       "directoryreadonlyerror": "La cartella \"$1\" è n littura sula.",
        "directorynotreadableerror": "La cartella \"$1\" nun è liggìbbili.",
-       "filenotfound": "Nun fu pussìbbili truvari lu file \"$1\".",
+       "filenotfound": "Nun fu pussìbbili attruvari lu file \"$1\".",
        "unexpected": "Valuri nun privistu: \"$1\"=\"$2\".",
        "formerror": "Erruri: Nun fu pussìbbili mannari lu mòdulu.",
-       "badarticleerror": "St'opirazzioni nun è cunsintuta nta sta pàggina.",
-       "cannotdelete": "Nun fu' pussìbbili cancillari la pàggina o lu file \"$1\".\nPutissi aviri statu già cancillatu di quarchidun'autru.",
+       "badarticleerror": "St'opirazzioni nun è cunzintuta nta sta pàggina.",
+       "cannotdelete": "Nun fu pussìbbili cancillari la pàggina o lu file \"$1\".\nPutissi aviri statu già cancillatu di quarchidun'àutru.",
        "cannotdelete-title": "Nun è pussìbbili cancillari la pàggina \"$1\"",
-       "delete-hook-aborted": "Cancillazzioni annullata di n'hook.\nNun desi nudda spiegazzioni.",
-       "no-null-revision": "Non fu' pussibbili criari na virsioni nulla pâ paggina \"$1\"",
+       "delete-hook-aborted": "Cancillazzioni annullata di n'hook.\nNun desi nudda spigazzioni.",
+       "no-null-revision": "Nun fu pussìbbili criari na virsioni nulla pâ paggina \"$1\"",
        "badtitle": "Tìtulu nun bonu",
-       "badtitletext": "Lu tìtulu di pàggina addumannatu nun era vàlidu, era vacanti, o vinìa dûn lijami nterlinguìsticu o nterwiki malu fattu.\nPutissi cuntèniri unu o chiossai caràttiri chi nun sù cunzintuti ntê tìtula.",
+       "badtitletext": "Lu tìtulu di pàggina addumannatu nun era vàlidu, era vacanti, o vinìa dûn lijami nterlinguìsticu o nterwiki malu fattu.\nPutissi cuntèniri unu o chiossai caràttiri chi nun sù cunzintuti ntê tìtuli.",
        "title-invalid-empty": "Lu tìtulu addumannatu pâ pàggina è vacanti o puru cunteni sulu lu nomu dûn namespace.",
        "title-invalid-utf8": "Lu tìtulu addumannatu pâ pàggina cunteni na siguenza UTF-8 nun vàlida.",
        "title-invalid-interwiki": "Lu tìtulu addumannatu pâ pàggina cunteni ligami interwiki, ca ntê tìtula nun si ponnu adupirari.",
-       "title-invalid-talk-namespace": "Lu tìtulu addumannatu pâ pàggina srifirisci a na pàggina di discussioni ca nun esisti.",
+       "title-invalid-talk-namespace": "Lu tìtulu addumannatu pâ pàggina s'arrifirisci a na pàggina di discussioni ca nun esisti.",
        "title-invalid-characters": "Lu tìtulu addumannatu pâ pàggina cunteni caràttiri nun vàlidi: \"$1\".",
-       "title-invalid-relative": "Lu tìtulu havi un caminu rilativu. Li tìtuli di pàggina rilativi (./, ../) nun sunnu boni, picchì spissu nun si ponnu arruvari pi' menzu dî browser di l'utenti.",
-       "title-invalid-magic-tilde": "Lu tìtulu addumannatu pâ pàggina cunteni na siguenza maggica di tildi nun vàlida(<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Lu tìtulu addumannatu pâ pàggina è troppu longu. Nun havi a' èssiri cchiu' longu di {{PLURAL:$1|byte}} sutta cudìfica UTF-8.",
-       "title-invalid-leading-colon": "Lu tìtulu addumannatu pâ pàggina cunteni nu signu di du punti ô principiu, chi' nun è vàlidu.",
-       "perfcached": "Li dati ca sèquinu sunnu stratti di na ''cache'' e putissiru nun èssiri aggiurnati. Ntâ ''cache'' {{PLURAL:$1|capi un risultatu|càpunu $1 risultati}} massimu.",
-       "perfcachedts": "Li dati ca sèquinu sunnu stratti di na ''cache'', e furu aggiurnati l'ultima vota ô $1. Ntâ ''cache'' {{PLURAL:$4|capi un risultatu|capunu $4 risultati}} massimu.",
+       "title-invalid-relative": "Lu tìtulu havi un caminu rilativu. Li tìtuli di pàggina rilativi (./, ../) nun sunnu boni, pirchì spissu nun si ponnu arrivari pi menzu dî browser di l'utenti.",
+       "title-invalid-magic-tilde": "Lu tìtulu addumannatu pâ pàggina cunteni na siguenza màggica di tildi nun vàlida(<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Lu tìtulu addumannatu pâ pàggina è troppu longu. Nun havi a èssiri cchiù longu di {{PLURAL:$1|byte}} sutta cudìfica UTF-8.",
+       "title-invalid-leading-colon": "Lu tìtulu addumannatu pâ pàggina cunteni nu signu di dui punti ô principiu, chi nun è vàlidu.",
+       "perfcached": "Li dati ca sèquinu sunnu stratti di na ''cache'' e putìssiru nun èssiri aggiurnati. Ntâ ''cache'' {{PLURAL:$1|capi un risurtatu|càpinu $1 risurtati}} màssimu.",
+       "perfcachedts": "Li dati ca sèquinu sunnu stratti di na ''cache'', e foru aggiurnati l'ùrtima vota ô $1. Ntâ ''cache'' {{PLURAL:$4|capi un risurtatu|càpinu $4 risurtati}} màssimu.",
        "querypage-no-updates": "L'aggiurnamenti dâ pàggina sunnu timpuraniamenti suspisi. Li dati 'n chidda cuntinuti nun vèninu aggiurnati.",
-       "viewsource": "Talìa lu surgenti",
-       "viewsource-title": "Talìa lu surgenti di $1",
+       "viewsource": "Talìa la surgenti",
+       "viewsource-title": "Talìa la surgenti di $1",
        "actionthrottled": "Azzioni ritardata",
        "actionthrottledtext": "Comu misura di sicurezza contru lu spam, l'esecuzioni di alcuni azzionu è limitata a nu nùmmuru massimu di voti ni nu determinatu piriudu du tempu, limiti ca ni stu casu fu supiratu. Si prega di ripruvari tra qualchi minutu.",
-       "protectedpagetext": "Sta pàggina fu bluccata pi privèniri canciamenti o autri opirazzioni.",
+       "protectedpagetext": "Sta pàggina fu bluccata pi privèniri canciamenti o àutri opirazzioni.",
        "viewsourcetext": "Poi taliari e cupiari lu còdici surgenti di sta pàggina.",
        "viewyourtext": "Poi taliari e cupiari lu còdici surgenti dî <strong>tò canciamenti</strong> nti sta pàggina.",
        "protectedinterface": "Sta pàggina cunteni un elementu ca fà parti dâ nterfaccia utenti dû software eggh'è  prutetta p'evitari pussìbbili abbusi. Pi jùnciri o canciari li traduzzioni pi tutti li wiki usari [//translatewiki.net/translatewiki.net] lu pruggettu di lucalizzazzioni di Mediawiki.",
-       "editinginterface": "<strong>Accura:</strong> Lu testu di sta pàggina fà parti di l'interfaccia utenti dû situ.\nTutti li canciamenti appurtati a sta pàggina si riflèttinu supra li missaggi visualizzati pi tutti l'utenti di sta wiki.",
-       "translateinterface": "Pi' agghiunciri o canciari traduzzioni pi' tutti i wiki, pi' favuri adupirati [//translatewiki.net/ translatewiki.net], lu pruggettu di lucalizzazzioni di MediaWiki.",
+       "editinginterface": "<strong>Accura:</strong> Lu testu di sta pàggina fa parti dâ nterfaccia utenti dû situ.\nTutti li canciamenti appurtati a sta pàggina si riflèttinu supra li missaggi visualizzati pi tutti l'utenti di sta wiki.",
+       "translateinterface": "Pi agghiùnciri o canciari traduzzioni pi tutti li wiki, pi favuri adòpira [//translatewiki.net/ translatewiki.net], lu pruggettu di lucalizzazzioni di MediaWiki.",
        "cascadeprotected": "Sta pàggina è prutetta dî canciamenti pirchì veni nclusa {{PLURAL:$1|ntâ pàggina siquenti, ca fu prutiggiuta|ntê pàggini siquenti, ca foru prutiggiuti}} cu l'opzioni «a cascata»:\n$2",
        "namespaceprotected": "Nun hai lu pirmissu pi canciari li pàggini ntô namespace '''$1'''.",
-       "customcssprotected": "Nun hai lu pirmissu pi' canciari sta pàggina CSS picchì cunteni i mpustazzioni pirsunali di n'autru utenti.",
-       "customjsprotected": "Nun hai lu pirmissu pi' canciari sta pàggina JavaScript picchì cunteni i mpustazzioni pirsunali di n'autru utenti.",
-       "mycustomcssprotected": "Nun hai lu pirmissu pi' canciari sta paggina CSS.",
-       "mycustomjsprotected": "Nun hai lu pirmissu pi' canciari sta pàggina JavaScript.",
-       "myprivateinfoprotected": "Nun hai lu pirmissu pi' canciari li to nfurmazzioni risirvati.",
-       "mypreferencesprotected": "Nun hai lu pirmissu pi' canciari li to prifirenzi.",
+       "customcssprotected": "Nun hai lu pirmissu pi canciari sta pàggina CSS pirchì cunteni li mpustazzioni pirsunali di n'àutru utenti.",
+       "customjsprotected": "Nun hai lu pirmissu pi canciari sta pàggina JavaScript pirchì cunteni li mpustazzioni pirsunali di n'àutru utenti.",
+       "mycustomcssprotected": "Nun hai lu pirmissu pi canciari sta pàggina CSS.",
+       "mycustomjsprotected": "Nun hai lu pirmissu pi canciari sta pàggina JavaScript.",
+       "myprivateinfoprotected": "Nun hai lu pirmissu pi canciari li tò nfurmazzioni risirvati.",
+       "mypreferencesprotected": "Nun hai lu pirmissu pi canciari li tò prifirenzi.",
        "ns-specialprotected": "Li pàggini ntô namespace {{ns:special}} non ponnu èssiri canciati.",
        "titleprotected": "La criazzioni di sta pàggina cu stu tìtulu fu bluccata da [[User:$1|$1]].\nLa mutivazzioni è chista: ''$2''.",
-       "filereadonlyerror": "Nun fu pussìbbili canciari lu file \"$1\" pirchì lu repository di file \"$2\" è 'n mudalitati di sula littura.\n\nL'amministraturi chi' lu bluccau desi sta spiegazzioni: \"$3\".",
-       "invalidtitle-knownnamespace": "Tìtulu nun vàlidu cu' spazziu dî nomi \"$2\" e testu \"$3\"",
-       "invalidtitle-unknownnamespace": "Tìtulu nun vàlidu cu' nùmmiru di spazziu dî nomi scanusciutu $1 e testu \"$2\"",
+       "filereadonlyerror": "Nun fu pussìbbili canciari lu file \"$1\" pirchì lu repository di file \"$2\" è n mudalità di littura sula.\n\nL'amministraturi chi lu bluccau desi sta spigazzioni: \"$3\".",
+       "invalidtitle-knownnamespace": "Tìtulu nun vàlidu cu spazziu dî nomi \"$2\" e testu \"$3\"",
+       "invalidtitle-unknownnamespace": "Tìtulu nun vàlidu cu nùmmiru di spazziu dî nomi scanusciutu $1 e testu \"$2\"",
        "exception-nologin": "Nun trasutu",
-       "exception-nologin-text": "Pi' favuri trasi pi' putiri accèdiri a' sta pàggina o a' st'azzioni.",
-       "exception-nologin-text-manual": "Pi' favuri $1 pi' putiri accèdiri a' sta pàggina o a' st'azziòni.",
+       "exception-nologin-text": "Pi favuri trasi pi putiri accèdiri a sta pàggina o a st'azzioni.",
+       "exception-nologin-text-manual": "Pi favuri $1 pi putiri accèdiri a sta pàggina o a st'azzioni.",
        "virus-badscanner": "Sbagghiu di cunfigurazzioni: antivirus scanusciutu: ''$1''",
        "virus-scanfailed": "scanzioni nun arrinisciuta (còdici $1)",
        "virus-unknownscanner": "antivirus scanusciutu:",
-       "logouttext": "<strong>Nisciuta. Ora siti fora.</strong>\n\nAccura chi quarchi pàggina pò cuntinuari a èssiri ammustrata comu si nun avissi nisciutu nzinu a quannu tu nun scancelli tutta la mimoria dû tò browser.",
+       "logouttext": "<strong>Nisciuta. Ora sî fora.</strong>\n\nAccura chi quarchi pàggina pò cuntinuari a èssiri ammustrata comu si nun s'avissi nisciutu nzinu a quannu tu nun cancelli tutta la mimoria dû tò browser.",
        "welcomeuser": "Bommegna, $1!",
-       "welcomecreation-msg": "U to cuntu fu' criatu.\nPoi canciari li to [[Special:Preferences|prifirenzi]] di {{SITENAME}} si' voi.",
+       "welcomecreation-msg": "Lu tò cuntu fu criatu.\nPoi canciari li tò [[Special:Preferences|prifirenzi]] di {{SITENAME}} si voi.",
        "yourname": "Nomu utenti:",
        "userlogin-yourname": "Nomu utenti",
        "userlogin-yourname-ph": "Nzirìsci lu tò nomu utenti",
        "createacct-yourpasswordagain-ph": "Nzirisci la password attorna",
        "remembermypassword": "Arricorda la password supra stu computer (pi ô massimu $1 {{PLURAL:$1|jornu|jorna}})",
        "userlogin-remembermypassword": "Mantènimi culligatu",
-       "userlogin-signwithsecure": "Adopira na cunnissioni sicura",
-       "yourdomainname": "Lu to duminiu:",
+       "userlogin-signwithsecure": "Adòpira na cunnissioni sicura",
+       "yourdomainname": "Lu tò duminiu:",
        "password-change-forbidden": "Nun poi canciari li password nta sta wiki.",
        "externaldberror": "S'havi virificatu n'erruri cû server d'autinticazzioni sternu, oppuru nun si disponi di l'auturizzazzioni nicissari p'aggiurnari lu propiu accessu sternu.",
        "login": "Trasi",
        "userlogout": "Nesci",
        "notloggedin": "Nun trasutu",
        "userlogin-noaccount": "Nun hai nu cuntu?",
-       "userlogin-joinproject": "Scrìviti a' {{SITENAME}}",
+       "userlogin-joinproject": "Scrìviti a {{SITENAME}}",
        "nologin": "Nun hai nu cuntu? $1.",
        "nologinlink": "Crea nu cuntu",
        "createaccount": "Criazzioni dûn cuntu",
        "gotaccountlink": "Trasi",
        "userlogin-resetlink": "Ti scurdasti li dittagghî pâ trasuta?",
        "userlogin-resetpassword-link": "Ti scurdasti la password?",
-       "userlogin-helplink2": "Ajutu pâ trasuta",
-       "userlogin-loggedin": "Già trasìsti comu {{GENDER:$1|$1}}.\nAdòpira lu mòdulu ccassutta pi' tràsiri comu n'autru utenti.",
-       "userlogin-createanother": "Crea n'autru cuntu",
+       "userlogin-helplink2": "Aiutu pâ trasuta",
+       "userlogin-loggedin": "Già trasisti comu {{GENDER:$1|$1}}.\nAdòpira lu mòdulu ccassutta pi tràsiri comu n'àutru utenti.",
+       "userlogin-createanother": "Crea n'àutru cuntu",
        "createacct-emailrequired": "Nnirizzu di posta elittrònica",
        "createacct-emailoptional": "Nnirizzu di posta elittrònica (facurtativu)",
-       "createacct-email-ph": "Nzirisci lu to nnirizzu di posta elittrònica",
-       "createacct-another-email-ph": "Nzirisci u nnirizzu di posta elittrònica",
-       "createaccountmail": "Adòpira na password timpurania casuali e mànnila ô nnirizzu di posta elittrònica spicificatu",
+       "createacct-email-ph": "Nzirisci lu tò nnirizzu di posta elittrònica",
+       "createacct-another-email-ph": "Nzirisci lu nnirizzu di posta elittrònica",
+       "createaccountmail": "Adòpira na password timpurània casuali e mànnala ô nnirizzu di posta elittrònica spicificatu",
        "createacct-realname": "Nomu veru (facurtativu)",
        "createaccountreason": "Mutivu:",
        "createacct-reason": "Mutivu",
        "createacct-reason-ph": "Pirchì stai criannu n'àutru cuntu",
        "createacct-captcha": "Cuntrollu di sicurizza",
        "createacct-imgcaptcha-ph": "Nzirìsci lu testu ca vidi ccassupra",
-       "createacct-submit": "Crea lu to cuntu",
-       "createacct-another-submit": "Crea n'autru cuntu",
-       "createacct-benefit-heading": "{{SITENAME}} è fatta di pirsuni comu a' tìa.",
+       "createacct-submit": "Crea lu tò cuntu",
+       "createacct-another-submit": "Crea n'àutru cuntu",
+       "createacct-benefit-heading": "{{SITENAME}} è fatta di pirsuni comu a tìa.",
        "createacct-benefit-body1": "{{PLURAL:$1|cuntribbutu|cuntribbuti}}",
        "createacct-benefit-body2": "{{PLURAL:$1|pàggina|pàggini}}",
        "createacct-benefit-body3": "{{PLURAL:$1|cuntribbuturi ricenti|cuntribbutura ricenti}}",
-       "badretype": "Li password chi' mittisti nun currispùnnunu tra d'iddi.",
+       "badretype": "Li password chi mittisti nun currispùnninu tra d'iddi.",
        "usernameinprogress": "Un cuntu cu stu nomu utenti già si sta criannu.\nPi favuri aspetta.",
-       "userexists": "Lu nomu utenti nziritu è già usatu.\nTi prijamu pirciò di vuliri scègghîri nu nomu utenti diffirenti.",
+       "userexists": "Lu nomu utenti nzirutu è già usatu.\nTi prijamu pirciò di vuliri scègghiri nu nomu utenti diffirenti.",
        "loginerror": "Erruri ntâ trasuta",
        "createacct-error": "Erruri ntâ criazzioni dû cuntu",
-       "createaccounterror": "Nun fu pussìbbili criari u cuntu: $1",
-       "nocookiesnew": "Lu cuntu utenti fu' criatu, ma nun si' trasutu.\n{{SITENAME}} adòpira li cookie pi' gistiri li trasuti.\nTu hai i cookie disattivati.\nPi' favuri attìvili, e appoi trasi chî to nomu utenti e password novi.",
-       "nocookieslogin": "{{SITENAME}} adòpira li cookie pi' gistiri li trasuti.\nTu hai i cookie disattivati.\nPi' favuri attìvili e prova n'autra vota.",
-       "nocookiesfornew": "Lu cuntu utenti nun fu' criatu, picchì nun pòttimu cunfirmari la so orìggini.\nAssicuriti chi' hai i ''cookie'' attivati, ricarrica sta pàggina e prova n'autra vota.",
+       "createaccounterror": "Nun fu pussìbbili criari lu cuntu: $1",
+       "nocookiesnew": "Lu cuntu utenti fu criatu, ma nun trasisti.\n{{SITENAME}} adòpira li cookie pi gistiri li trasuti.\nTu hai li cookie disattivati.\nPi favuri attìvali, e appoi trasi chî tò nomu utenti e password novi.",
+       "nocookieslogin": "{{SITENAME}} adòpira li cookie pi gistiri li trasuti.\nTu hai li cookie disattivati.\nPi favuri attìvali e prova n'àutra vota.",
+       "nocookiesfornew": "Lu cuntu utenti nun fu criatu, pirchì nun pòttimu cunfirmari la sò orìggini.\nAssicùrati chi hai li ''cookie'' attivati, ricàrrica sta pàggina e prova n'àutra vota.",
        "noname": "Nun spicificasti nu nomu utenti vàlidu.",
        "loginsuccesstitle": "Trasuta rinisciuta",
-       "loginsuccess": "<strong>Ora si' trasutu nta {{SITENAME}} comu \"$1\".</strong>",
-       "nosuchuser": "Nun è riggistratu nuddu utenti di nomu \"$1\".\nLi nomi di l'utenti fannu diffirenza tra majusculi e minusculi.\nCuntrolla chi' scrivisti lu nomu bonu, o puru [[Special:UserLogin/signup|crea un cuntu novu]].",
-       "nosuchusershort": "Nun è riggistratu nuddu utenti di nomu \"$1\".\nCuntrolla chi' scrivisti u nomu bonu.",
-       "nouserspecified": "Hâ' spicificari un nomu utenti.",
+       "loginsuccess": "<strong>Ora trasisti nta {{SITENAME}} comu \"$1\".</strong>",
+       "nosuchuser": "Nun è riggistratu nuddu utenti di nomu \"$1\".\nLi nomi di l'utenti fannu diffirenza tra maiùsculi e minùsculi.\nCuntrolla chi scrivisti lu nomu bonu, o puru [[Special:UserLogin/signup|crea un cuntu novu]].",
+       "nosuchusershort": "Nun è riggistratu nuddu utenti di nomu \"$1\".\nCuntrolla chi scrivisti lu nomu bonu.",
+       "nouserspecified": "Hai a spicificari un nomu utenti.",
        "login-userblocked": "St'utenti è bluccatu. Nun è pussìbbili di tràsiri.",
-       "wrongpassword": "La password chi' mittisti nun è giusta.\nPi' favuri prova n'àutra vota.",
-       "wrongpasswordempty": "La password chi' mittisti era vacanti.\nPi' favuri prova n'àutra vota.",
-       "passwordtooshort": "I password hannu a' èssiri longhi almenu {{PLURAL:$1|1 caràttiri|$1 caràttiri}}.",
-       "passwordtoolong": "Li password non pònnu èssiri cchiu' longhi di {{PLURAL:$1|1 caràttiri|$1 caràttiri}}.",
-       "password-name-match": "La tò password havi a' èssiri diversa dû tò nomu utenti.",
-       "password-login-forbidden": "L'usu di stu nomu utenti e password fu' pruibbitu.",
+       "wrongpassword": "La password chi mittisti nun è giusta.\nPi favuri prova n'àutra vota.",
+       "wrongpasswordempty": "La password chi mittisti era vacanti.\nPi favuri prova n'àutra vota.",
+       "passwordtooshort": "Li password hannu a èssiri longhi armenu {{PLURAL:$1|1 caràttiri|$1 caràttiri}}.",
+       "passwordtoolong": "Li password nun ponnu èssiri cchiù longhi di {{PLURAL:$1|1 caràttiri|$1 caràttiri}}.",
+       "password-name-match": "La tò password havi a èssiri diversa dû tò nomu utenti.",
+       "password-login-forbidden": "L'usu di stu nomu utenti e password fu pruibbitu.",
        "mailmypassword": "Azzera la password",
-       "passwordremindertitle": "Password nova timpurania pi' {{SITENAME}}",
+       "passwordremindertitle": "Password nova timpurània pi {{SITENAME}}",
        "passwordremindertext": "Quarchidunu (prubbabbirmenti tu, cu nnirizzu IP $1) addumannau d'aviri mannata na password d'accessu nova a {{SITENAME}} ($4). La password pi l'utenti \"$2\" vinni mpustata a \"$3\".\nTi cummeni fari n'accessu quantu prima e canciari la password pi sùbbitu. La tò password timpuranea scadrà dopu {{PLURAL:$5|nu jornu|$5 jorna}}.\nSiddu nun fusti tu a fari la dumanna, oppuru arrittruvasti la password e nun addisìi cchiù canciàrila, poi non tèniri cuntu di stu missaggiu e cuntinuari a usari la password vecchia.",
        "noemail": "Nuddu ndirizzu e-mail riggistratu pi l'utenti \"$1\".",
        "noemailcreate": "Aviti a dari nu nnirizzu e-mail validu",
        "passwordsent": "Na password nova hà statu mannata a lu ndirizzu e-mail riggistratu pi l'utenti \"$1\". Pi favuri, effèttua un accessu nun appena l'arricevi.",
        "blocked-mailpassword": "Pi privèniri abbusi, nun è cunzititu usari la funzioni \"Nvia nova password\" d'un ndirizzu IP bluccatu.",
-       "eauthentsent": "Nu missaggiu e-mail di cunfirma fu' spidutu a lu nnirizzu nnicatu.\nPrima chi' ponnu èssiri mannati autri missaggi e-mail a' stu cuntu, è nicissariu sèquiri li struzzioni ca vi sunnu scritti, 'n modu di cunfirmari di èssiri li liggìttimi prupietarî di lu cuntu.",
-       "throttled-mailpassword": "Nu missaggiu e-mail di azziramentu dâ password già havi statu mannatu nta {{PLURAL:$1|l'ultima ura|l'ultimi $1 uri}}. Pi' privèniri abbusi, si po' mannari nu missaggiu e-mail di azziramentu dâ password na vota sula ogni {{PLURAL:$1|ura|$1 uri}}.",
+       "eauthentsent": "Nu missaggiu e-mail di cunferma fu spidutu a lu nnirizzu nnicatu.\nPrima chi ponnu èssiri mannati àutri missaggi e-mail a stu cuntu, è nicissariu sèquiri li struzzioni ca vi sunnu scritti, n modu di cunfirmari d'èssiri li prupitarî liggìttimi di lu cuntu.",
+       "throttled-mailpassword": "Nu missaggiu e-mail di azziramentu dâ password già fu mannatu nta {{PLURAL:$1|l'ùrtima ura|l'ùrtimi $1 uri}}. Pi privèniri abbusi, si pò mannari nu missaggiu e-mail d'azziramentu dâ password na vota sula ogni {{PLURAL:$1|ura|$1 uri}}.",
        "mailerror": "Erruri nta lu mannu dû missaggiu: $1",
-       "acct_creation_throttle_hit": "Visitaturi di sta wiki cû to stissu nnirizzu IP già hannu criatu {{PLURAL:$1|un cuntu|$1 cunti}} nta sta jurnata, chi' è lu massimu pirmissu pi' stu pirìudu di tempu.\nPi' ciò, com'ad ora li visitaturi ca usunu stu nnirizzu IP nun ponnu criari autri cunti.",
-       "emailauthenticated": "Lu to nnirizzu di posta elittrònica fu' cunfirmatu lu $2 ê $3.",
-       "emailnotauthenticated": "Lu to nnirizzu di posta elittrònica ancora nun havi statu cunfirmatu.\nNun ti sarrannu mannati missaggi di posta elittrònica pi' sti funzioni.",
-       "noemailprefs": "Innicari nu nnirizzu di posta elittrònica p'attivari sti funzioni.",
-       "emailconfirmlink": "Cunfirmari lu to nnirizzu di posta elittrònica",
-       "invalidemailaddress": "Lu nnirizzu di posta elittrònica nun pò èssiri accittatu picchì pari chi havi un furmatu nun vàlidu.\nPi favuri nzirisci nu nnirizzu vàlidu o puru svacanta la casedda.",
+       "acct_creation_throttle_hit": "Visitaturi di sta wiki cû tò stissu nnirizzu IP già criaru {{PLURAL:$1|un cuntu|$1 cunti}} nta sta jurnata, chi è lu màssimu pirmissu pi stu pirìudu di tempu.\nPirciò, com'a ora li visitaturi ca ùsanu stu nnirizzu IP nun ponnu criari àutri cunti.",
+       "emailauthenticated": "Lu tò nnirizzu di posta elittrònica fu cunfirmatu lu $2 ê $3.",
+       "emailnotauthenticated": "Lu tò nnirizzu di posta elittrònica ancora nun fu cunfirmatu.\nNun ti sunnu mannati missaggi di posta elittrònica pi sti funzioni.",
+       "noemailprefs": "Nnicari nu nnirizzu di posta elittrònica p'attivari sti funzioni.",
+       "emailconfirmlink": "Cunfirmari lu tò nnirizzu di posta elittrònica",
+       "invalidemailaddress": "Lu nnirizzu di posta elittrònica nun pò èssiri accittatu pirchì pari chi havi un furmatu nun vàlidu.\nPi favuri nzirisci nu nnirizzu vàlidu o puru svacanta la casedda.",
        "cannotchangeemail": "Li nnirizzi di posta elittrònica nun ponnu èssiri canciati nta sta wiki.",
-       "emaildisabled": "Stu situ nun po' mannari missaggi di posta elittrònica.",
+       "emaildisabled": "Stu situ nun pò mannari missaggi di posta elittrònica.",
        "accountcreated": "Cuntu criatu",
-       "accountcreatedtext": "Fu' criatu un cuntu novu pi' l'utenti [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|msg]]).",
-       "createaccount-title": "Criazzioni di nu cuntu pi' {{SITENAME}}",
+       "accountcreatedtext": "Fu criatu un cuntu novu pi l'utenti [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|msg]]).",
+       "createaccount-title": "Criazzioni di nu cuntu pi {{SITENAME}}",
        "createaccount-text": "Qualcuno criau n'accessu a {{SITENAME}} ($4) a nomu di $2, associatu cu stu ndirizzu di posta elettronica. La password pi l'utenti \"$2\" è mpustata a \"$3\". È opportunu trasiri quantu prima e canciari la password subbutu.\n\nSi l'accessu fu criatu pi sbagghiu, si può gnurari stu missaggiu.",
-       "login-throttled": "Hai fattu troppi tintativi di trasuta.\nPi' favuri spetta $1 prima di pruvari n'autra vota.",
+       "login-throttled": "Facisti troppi tintativi di trasuta.\nPi favuri aspetta $1 prima di pruvari n'àutra vota.",
        "login-abort-generic": "La trasuta nun arriniscìu - Annullata",
-       "login-migrated-generic": "Lu to cuntu fu' migratu, e lu to nomu utenti nun esisti cchiù' nta sta wiki.",
+       "login-migrated-generic": "Lu tò cuntu fu migratu, e lu tò nomu utenti nun esisti cchiù nta sta wiki.",
        "loginlanguagelabel": "Lingua: $1",
        "suspicious-userlogout": "La tò dumanna di discunnissioni fu niàta prichì pari ca veni di nu browser nun funziunanti o nu proxy di caching.",
-       "createacct-another-realname-tip": "U nomu veru è opziunali.\nSi scegghî di furnìrilu, veni adupiratu pi' dari crèditu a' l'utenti pû so travagghiu.",
+       "createacct-another-realname-tip": "Lu nomu veru è opziunali.\nSi scegghi di furnìrilu, veni adupiratu pi dari crèditu a l'utenti pû sò travagghiu.",
        "pt-login": "Trasi",
        "pt-login-button": "Trasi",
        "pt-createaccount": "Crea un cuntu novu",
        "pt-userlogout": "Nesci",
        "php-mail-error-unknown": "Erruri scanusciutu ntâ funzioni mail() dû PHP.",
-       "user-mail-no-addy": "Si pruvàu a' mannari nu missaggiu di posta elittrònica senza nu nnirizzu di posta elittrònica.",
-       "user-mail-no-body": "Si pruvàu a' mannari nu missaggiu di posta elittrònica cûn corpu vacanti o troppu curtu p'aviri significatu.",
+       "user-mail-no-addy": "Si pruvau a mannari nu missaggiu di posta elittrònica senza nu nnirizzu di posta elittrònica.",
+       "user-mail-no-body": "Si pruvau a mannari nu missaggiu di posta elittrònica cûn corpu vacanti o troppu curtu p'aviri significatu.",
        "changepassword": "Cancia la password",
-       "resetpass_announce": "Pi' cumplitari la trasuta, hâ' mpustari na password nova.",
+       "resetpass_announce": "Pi cumplitari la trasuta, hai a mpustari na password nova.",
        "resetpass_text": "<!-- Agghiunci lu testu ccà -->",
        "resetpass_header": "Canciamentu dâ password",
        "oldpassword": "Password vecchia:",
        "newpassword": "Password nova:",
        "retypenew": "Scrivi n'àutra vota la password:",
        "resetpass_submit": "Mposta la password e trasi",
-       "changepassword-success": "La to password fu canciata!",
-       "changepassword-throttled": "Hai fattu troppi tintativi di trasuta.\nPi' favuri spetta $1 prima di pruvari n'autra vota.",
+       "changepassword-success": "La tò password fu canciata!",
+       "changepassword-throttled": "Facisti troppi tintativi di trasuta.\nPi favuri aspetta $1 prima di pruvari n'àutra vota.",
        "resetpass_forbidden": "Li password nun si ponnu canciari",
-       "resetpass-no-info": "Pi tràsiri nta sta pàggina hà' èssiri riggistratu.",
+       "resetpass-no-info": "Pi tràsiri nta sta pàggina hai a èssiri riggistratu.",
        "resetpass-submit-loggedin": "Cancia la password",
        "resetpass-submit-cancel": "Annulla",
-       "resetpass-wrong-oldpass": "La password timpurania o attuali nun è giusta.\nPo' èssiri ca già riniscisti a' canciari la tò password, o puru ca già nn'addumannasti n'autra timpurania ancora.",
-       "resetpass-recycled": "Pi' favuri cancia a to password a' na cosa diffirenti dâ to password attuali.",
-       "resetpass-temp-emailed": "Trasisti cûn codici timpuraniu mannatu pi' posta elittrònica.\nPi' cumplitari a trasuta, hâ' mpustari na password nova cca:",
-       "resetpass-temp-password": "Password timpurania:",
-       "resetpass-abort-generic": "U canciu dâ password fu' annullatu di n'estinsioni.",
-       "resetpass-expired": "A to password scadìu. Pi' favuri mposta na password nova pi' trasiri.",
-       "resetpass-expired-soft": "A to password scadìu e s'havi a' azzirari. Pi' favuri scegghî na password nova ora, o puru clicca \"{{int:resetpass-submit-cancel}}\" p'azziràrila n'autra vota.",
-       "resetpass-validity-soft": "A to password nun è vàlida: $1\n\nPi' favuri scegghî na password nova ora, o puru clicca \"{{int:resetpass-submit-cancel}}\" p'azziràrila n'autra vota.",
+       "resetpass-wrong-oldpass": "La password timpurània o attuali nun è giusta.\nPo èssiri ca già arriniscisti a canciari la tò password, o puru ca già nn'addumannasti n'àutra timpurània ancora.",
+       "resetpass-recycled": "Pi favuri cancia la tò password a na cosa diffirenti dâ tò password attuali.",
+       "resetpass-temp-emailed": "Trasisti cûn codici timpuràniu mannatu pi posta elittrònica.\nPi cumplitari la trasuta, hai a mpustari na password nova ccà:",
+       "resetpass-temp-password": "Password timpurània:",
+       "resetpass-abort-generic": "Lu canciu dâ password fu annullatu di n'estinzioni.",
+       "resetpass-expired": "La tò password scadìu. Pi favuri mposta na password nova pi tràsiri.",
+       "resetpass-expired-soft": "La tò password scadìu e s'havi a azzirari. Pi favuri scegghi na password nova ora, o puru clicca \"{{int:resetpass-submit-cancel}}\" p'azziràrila n'àutra vota.",
+       "resetpass-validity-soft": "La tò password nun è vàlida: $1\n\nPi favuri scegghi na password nova ora, o puru clicca \"{{int:resetpass-submit-cancel}}\" p'azziràrila n'àutra vota.",
        "passwordreset": "Azziramentu dâ password",
-       "passwordreset-text-one": "Jinchi stu mòdulu pi' ricèviri na password timpurania pi' posta elittrònica.",
-       "passwordreset-text-many": "{{PLURAL:$1|Jinchi unu dî campi pi' ricèviri na password timpurania pi' posta elittrònica.}}",
+       "passwordreset-text-one": "Jinchi stu mòdulu p'arricèviri na password timpurània pi posta elittrònica.",
+       "passwordreset-text-many": "{{PLURAL:$1|Jinchi unu dî campi p'arricèviri na password timpurània pi posta elittrònica.}}",
        "passwordreset-disabled": "L'azziramentu dî password fu disattivatu nta sta wiki.",
-       "passwordreset-emaildisabled": "Li funzionalità di e-mail furu disattivati nta sta wiki.",
+       "passwordreset-emaildisabled": "Li funziunalità di e-mail foru disattivati nta sta wiki.",
        "passwordreset-username": "Nomu utenti:",
        "passwordreset-domain": "Duminiu:",
-       "passwordreset-capture": "Ammustrari u missaggiu e-mail chi' veni cumpostu?",
-       "passwordreset-capture-help": "Si attivi sta casedda, u missaggiu e-mail (câ password timpurania) veni ammustratu a' tia sparti chi' veni mannatu a' l'utenti.",
+       "passwordreset-capture": "Ammustrari lu missaggiu e-mail chi veni cumpostu?",
+       "passwordreset-capture-help": "Si attivi sta casedda, lu missaggiu e-mail (câ password timpurània) veni ammustratu a tìa sparti chi veni mannatu a l'utenti.",
        "passwordreset-email": "Nnirizzu di posta elittrònica:",
-       "passwordreset-emailtitle": "Dittagghî dû cuntu supra a' {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Quarchidunu (prubbabilmenti tu, di l'innirizzu IP $1) fici dumanna pi' l'azziramentu dâ to password pi' {{SITENAME}} ($4). {{PLURAL:$3|U siguenti cuntu utenti è assuciatu|I siguenti cunti utenti su' assuciati}} cu' stu nnirizzu di posta elittrònica:\n\n$2\n\n{{PLURAL:$3|Sta password timpurania|Sti password timpuranii}} scàdunu tra {{PLURAL:$5|un jornu|$5 jorna}}.\nOra tu avissi a' tràsiri e scègghîri na password nova. Si' fu' quarchidun'autru a' fari sta richiesta e nun tu, o si' ti ricurdasti a to password origginali e nâ voi canciari cchiu', poi gnurari stu missaggiu e cuntinuari a' adupirari a to password vecchia.",
-       "passwordreset-emailtext-user": "L'utenti $1 supra a' {{SITENAME}} fici dumanna pi' l'azziramentu dâ to password pi' {{SITENAME}} ($4). {{PLURAL:$3|U siguenti cuntu utenti è assuciatu|I siguenti cunti utenti su' assuciati}} cu' stu nnirizzu di posta elittrònica:\n\n$2\n\n{{PLURAL:$3|Sta password timpurania|Sti password timpuranii}} scàdunu tra {{PLURAL:$5|un jornu|$5 jorna}}.\nOra tu avissi a' tràsiri e scègghîri na password nova. Si' fu' quarchidun'autru a' fari sta richiesta e nun tu, o si' ti ricurdasti a to password origginali e nâ voi canciari cchiu', poi gnurari stu missaggiu e cuntinuari a' adupirari a to password vecchia.",
-       "passwordreset-emailelement": "Nomu utenti: $1\nPassword timpurania: $2",
-       "passwordreset-emailsent": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu' mannatu.",
-       "passwordreset-emailsent-capture": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu' mannatu, cû cuntinutu chi' si po' taliari ccassutta.",
-       "passwordreset-emailerror-capture": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu' cumpilatu, cû cuntinutu chi' si po' taliari ccassutta, però a so spidizzioni a' l'utenti {{GENDER:$2|user}} nun riniscìu: $1",
+       "passwordreset-emailtitle": "Dittagghî dû cuntu supra a {{SITENAME}}",
+       "passwordreset-emailtext-ip": "Quarchidunu (prubbabbilmenti tu, dô nnirizzu IP $1) fici n'addumannata pi l'azziramentu dâ tò password pi {{SITENAME}} ($4). {{PLURAL:$3|Lu cuntu utenti siguenti è assuciatu|Li cunti utenti siguenti sù assuciati}} cu stu nnirizzu di posta elittrònica:\n\n$2\n\n{{PLURAL:$3|Sta password timpurània|Sti password timpurànii}} scàdinu tra {{PLURAL:$5|un jornu|$5 jorna}}.\nOra tu avissi a tràsiri e scègghiri na password nova. Si fu quarchidun'àutru a fari st'addumannata e nun tu, o si t'arricurdasti la tò password origginali e nun la voi canciari cchiù, poi gnurari stu missaggiu e cuntinuari a adupirari la tò password vecchia.",
+       "passwordreset-emailtext-user": "L'utenti $1 supra a {{SITENAME}} fici n'addumannata pi l'azziramentu dâ tò password pi {{SITENAME}} ($4). {{PLURAL:$3|Lu cuntu utenti siguenti è assuciatu|Li cunti utenti siguenti sù assuciati}} cu stu nnirizzu di posta elittrònica:\n\n$2\n\n{{PLURAL:$3|Sta password timpurània|Sti password timpurànii}} scàdinu tra {{PLURAL:$5|un jornu|$5 jorna}}.\nOra tu avissi a tràsiri e scègghiri na password nova. Si fu quarchidun'àutru a fari st'addumannata e nun tu, o si t'arricurdasti la tò password origginali e nun la voi canciari cchiù, poi gnurari stu missaggiu e cuntinuari a adupirari la tò password vecchia.",
+       "passwordreset-emailelement": "Nomu utenti: \n$1\n\nPassword timpurània: \n$2",
+       "passwordreset-emailsent": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu mannatu.",
+       "passwordreset-emailsent-capture": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu mannatu, cû cuntinutu chi si pò taliari ccassutta.",
+       "passwordreset-emailerror-capture": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu cumpilatu, cû cuntinutu chi si pò taliari ccassutta, pirò la sò spidizzioni a l'utenti {{GENDER:$2|user}} nun arriniscìu: $1",
        "changeemail": "Canciu dû nnirizzu di posta elittrònica",
-       "changeemail-text": "Jinchi stu mòdulu pi' canciari u to nnirizzu di posta elittrònica. Hâ' nziriri a to password pi' cunfirmari stu canciamentu.",
-       "changeemail-no-info": "Hâ' jèssiri trasutu p'aviri accessu direttu a' sta pàggina.",
+       "changeemail-text": "Jinchi stu mòdulu pi canciari lu tò nnirizzu di posta elittrònica. Hai a nziriri la tò password pi cunfirmari stu canciamentu.",
+       "changeemail-no-info": "Hai a aviri trasutu p'aviri accessu direttu a sta pàggina.",
        "changeemail-oldemail": "Nnirizzu di posta elittrònica attuali:",
        "changeemail-newemail": "Nnirizzu di posta elittrònica novu:",
        "changeemail-none": "(nuddu)",
-       "changeemail-password": "A to password di {{SITENAME}}:",
+       "changeemail-password": "La tò password di {{SITENAME}}:",
        "changeemail-submit": "Cancia nnirizzu",
-       "changeemail-throttled": "Hai fattu troppi tintativi di trasuta.\nPi' favuri spetta $1 prima di pruvari n'autra vota.",
+       "changeemail-throttled": "Facisti troppi tintativi di trasuta.\nPi favuri aspetta $1 prima di pruvari n'àutra vota.",
        "resettokens": "Azziramentu dî token",
-       "resettokens-text": "Cca poi azzirari i ''token'' chi' dùnunu accessu a' certi dati risirvati assuciati ô to cuntu.\n\nSta cosa s'avissi a' fari si' pi' sbagghiu i facisti sapiri a' quarchidunu o si' u to cuntu fu' cumprumisu.",
-       "resettokens-no-tokens": "Nun ci su' token di azzirari.",
+       "resettokens-text": "Ccà poi azzirari li ''token'' chi dùnanu accessu a certi dati risirvati assuciati ô tò cuntu.\n\nSta cosa s'avissi a fari si pi sbagghiu li facisti sapiri a quarchidunu o si lu tò cuntu fu cumprumisu.",
+       "resettokens-no-tokens": "Nun ci sunnu token d'azzirari.",
        "resettokens-tokens": "Token:",
        "resettokens-token-label": "$1 (valuri attuali: $2)",
-       "resettokens-watchlist-token": "Token pû feed web (Atom/RSS) dî [[Special:Watchlist|canciamenti ê pàggini ntâ to lista taliata]]",
-       "resettokens-done": "I token furu azzirati.",
-       "resettokens-resetbutton": "Azzera i token scigghiuti",
+       "resettokens-watchlist-token": "Token pû feed web (Atom/RSS) dî [[Special:Watchlist|canciamenti ê pàggini ntâ tò lista taliata]]",
+       "resettokens-done": "Li token foru azzirati.",
+       "resettokens-resetbutton": "Azzera li token scigghiuti",
        "bold_sample": "Grassettu",
        "bold_tip": "Grassettu",
        "italic_sample": "Cursivu",
        "image_tip": "File ncurpuratu",
        "media_sample": "Asempiu.ogg",
        "media_tip": "Lijami a file",
-       "sig_tip": "A to firma cu' data e ura",
-       "hr_tip": "Linia urizzuntali (usari cu' giudizziu)",
+       "sig_tip": "La tò firma cu data e ura",
+       "hr_tip": "Lìnia urizzuntali (usari cu giudizziu)",
        "summary": "Riassuntu:",
        "subject": "Oggettu/ntistazzioni:",
        "minoredit": "Chistu è nu canciamentu nicu",
        "preview": "Antiprima",
        "showpreview": "Ammustra l'antiprima",
        "showdiff": "Ammustra li canciamenti",
-       "blankarticle": "<strong>Accura:</strong> La pàggina chi' stai criannu è vacanti.\nSi' clicchi \"{{int:savearticle}}\" n'autra vota, la pàggina veni criata senza nuddu cuntinutu.",
-       "anoneditwarning": "<strong>Accura:</strong> Nun si' trasutu. Lu to nnirizzu IP diventa visìbbili pubblicamenti quannu fai nu canciamentu. Si' <strong>[$1 trasi]</strong> o puru <strong>[$2 crei nu cuntu]</strong>, li canciamenti chi' fai vènunu attribbuiti ô to nomu utenti, sparti di autri vantaggi.",
+       "blankarticle": "<strong>Accura:</strong> La pàggina chi stai criannu è vacanti.\nSi clicchi \"{{int:savearticle}}\" n'àutra vota, la pàggina veni criata senza nuddu cuntinutu.",
+       "anoneditwarning": "<strong>Accura:</strong> Nun trasisti. Lu tò nnirizzu IP addiventa visìbbili pubblicamenti quannu fai nu canciamentu. Si <strong>[$1 trasi]</strong> o puru <strong>[$2 crei nu cuntu]</strong>, li canciamenti chi fai vèninu attribbuiti ô tò nomu utenti, sparti d'àutri vantaggi.",
        "anonpreviewwarning": "''Nun trasisti comu utiliggaturi loggatu. Sarbannu, lu tò nnirizzu IP veni arriggistratu ntâ storia dî canciamenti.''",
        "missingsummary": "'''Accura:''' Nun hà statu spicificatu l'uggettu di stu canciamentu. Primennu di novu '''Sarva''' lu canciamentu veni sarvatu cu l'uggettu vacanti.",
-       "selfredirect": "<strong>Accura:</strong> Stai rimannannu sta pàggina a' idda stissa.\nPo' èssiri chi' spicificasti na distinazzioni sbagghiata pû rimannu, o puru chi' stai canciannu a pàggina sbagghiata.\nSi' clicchi \"{{int:savearticle}}\" n'autra vota, u rimannu veni criatu u stissu.",
+       "selfredirect": "<strong>Accura:</strong> Stai rimannannu sta pàggina a idda stissa.\nPo èssiri chi spicificasti na distinazzioni sbagghiata pû rimannu, o puru chi stai canciannu la pàggina sbagghiata.\nSi clicchi \"{{int:savearticle}}\" n'àutra vota, lu rimannu veni criatu lu stissu.",
        "missingcommenttext": "Nziriri un cummentu ccà sutta.",
-       "missingcommentheader": "<strong>Accura:</strong> Nun havi statu spicificatu l'oggettu/ntistazzioni di stu cummentu. Primennu di novu \"{{int:savearticle}}\", lu canciamentu veni sarvatu senza avìrinni.",
+       "missingcommentheader": "<strong>Accura:</strong> Nun fu spicificatu l'oggettu/ntistazzioni di stu cummentu. Primennu di novu \"{{int:savearticle}}\", lu canciamentu veni sarvatu senza avìrinni.",
        "summary-preview": "Antiprima dû riassuntu:",
        "subject-preview": "Antiprima di l'oggettu/ntistazzioni:",
-       "previewerrortext": "Mmattìu n'erruri nta l'ammustrari li to canciamenti.",
+       "previewerrortext": "Ammattìu n'erruri nta l'ammustrari li tò canciamenti.",
        "blockedtitle": "L'utenti è bluccatu",
        "blockedtext": "'''Stu nomu d'utenti o nnirizzu IP havi statu bluccatu.'''\n\nLu bloccu fu fattu di $1. Lu mutivu dû bloccu è: ''$2''.\n\n* Accuminzata dû bloccu: $8\n* Fini dû bloccu: $6\n* Ntirvallu dû bloccu: $7\n\nPoi cuntattari a $1 o a n'àutru [[{{MediaWiki:Grouppage-sysop}}|amministraturi]] pi discùtiri dû bloccu.\n\nNun poi usari la carattirìstica 'manna n'email a st'utenti' siddu nun è spicificatu nu nnirizzu email vàlidu nta li toi [[Special:Preferences|prifirenzi]] e siddu nun hai statu bluccatu di l'usari.\n\nLu tò nnirizzu IP attuali è $3, e lu nùmmiru ID dû bloccu è #$5.\n\nSpicìfica tutti li dittagghi pricidenti nta quarsiasi addumannata di chiarimenti.",
        "autoblockedtext": "Lu tò nnirizzu IP hà statu bluccatu automaticamenti pirchì fu usatu di n'àutru utenti, chi fu bluccatu di $1.\nLu mutivu è chistu:\n\n:''$2''\n\n* Accuminzata dû bloccu: $8\n* Fini dû bloccu: $6\n* Ntirvallu dû bloccu: $7\n\nPoi cuntattari a $1 o a n'àutru [[{{MediaWiki:Grouppage-sysop}}|amministraturi]] pi discùtiri dû bloccu.\n\nNun poi usari la carattirìstica 'manna n'email a st'utenti' siddu nun è spicificatu nu nnirizzu email vàlidu ntra li tòi [[Special:Preferences|prifirenzi]] e siddu nun fusti bluccatu di l'usari.\n\nLu tò nnirizzu IP attuali è $3, e l'ID dû bloccu è $5.\nPi favuri nclùdilu nta tutti li dumanni chi fai.",
        "blockednoreason": "nuddu mutivu datu",
-       "whitelistedittext": "Pi' favuri $1 pi' canciari li pàggini.",
-       "confirmedittext": "Hâ' cunvalidari lu to nnirizzu di posta elittrònica avanti di putiri canciari li pàggini.\nPi' favuri mposta e cunvàlida lu nnirizzu passannu dî [[Special:Preferences|to prifirenzi]].",
-       "nosuchsectiontitle": "La sizzioni nun fu truvata",
-       "nosuchsectiontext": "Pruvasti a canciari na sizzioni chi' nun esisti.\nForsi ca fu' spustata o cancillata na mentri ca stàvutu taliannu la pàggina.",
-       "loginreqtitle": "S'havi a' tràsiri",
+       "whitelistedittext": "Pi favuri $1 pi canciari li pàggini.",
+       "confirmedittext": "Hai a cunvalidari lu tò nnirizzu di posta elittrònica avanti di putiri canciari li pàggini.\nPi favuri mposta e cunvàlida lu nnirizzu passannu dî [[Special:Preferences|tò prifirenzi]].",
+       "nosuchsectiontitle": "La sizzioni nun fu attruvata",
+       "nosuchsectiontext": "Pruvasti a canciari na sizzioni chi nun esisti.\nForsi ca fu spustata o cancillata ntô mentri ca stàvitu taliannu la pàggina.",
+       "loginreqtitle": "S'havi a tràsiri",
        "loginreqlink": "trasi",
-       "loginreqpagetext": "Pi' favuri $1 pi' taliari autri pàggini.",
+       "loginreqpagetext": "Pi favuri $1 pi taliari àutri pàggini.",
        "accmailtitle": "Password mannata",
-       "accmailtext": "Na password ginirata casualmenti pi' [[User talk:$1|$1]] fu' spiduta a $2. Si po' canciari di la pàggina di <em>[[Special:ChangePassword|canciamentu dâ password]]</em> comu unu trasi.",
+       "accmailtext": "Na password ginirata casualmenti pi [[User talk:$1|$1]] fu spiduta a $2. Si pò canciari dâ pàggina di <em>[[Special:ChangePassword|canciamentu dâ password]]</em> comu unu trasi.",
        "newarticle": "(Novu)",
-       "newarticletext": "Siguisti na lijami a na pàggina chancora nun esisti.\nPi criari sta pàggina, accumenza a scrìviri ccassutta (talìa la [$1 pàggina d'aiutu] p'aviri maiuri nfurmazzioni).\nSi agghicasti ccà pi sbagghiu, carca lu buttuni <strong>n arreri</strong> dû tò browser.",
+       "newarticletext": "Siguisti na lijami a na pàggina c'ancora nun esisti.\nPi criari sta pàggina, accumenza a scrìviri ccassutta (talìa la [$1 pàggina d'aiutu] p'aviri maiuri nfurmazzioni).\nSi agghicasti ccà pi sbagghiu, carca lu buttuni <strong>n arreri</strong> dû tò browser.",
        "anontalkpagetext": "----''Chista è la pàggina di discussioni di n’utenti anònimu, ca nun criau ancora n’accessu o ca nun l’usa.\nP’idintificàrilu è pirciò nicissariu usari lu nùmmiru di lu sò nnirizzu IP.\nLi nnirizzi IP ponnu pirò èssiri spartuti di cchiù utenti.\nSiddu sî n’utenti anònimu e riteni ca li cummenti prisenti nta sta pàggina nun si rifirìscinu a tia, [[Special:UserLogin/signup|crea n’accessu novu]] o [[Special:UserLogin|trasi]] cu chiddu ca già hai p’evitari d’èssiri cunfusu cu àutri utenti anònimi ‘n futuru.''",
        "noarticletext": "Nta stu mumentu la pàggina addumannata è vacanti. È pussìbbili [[Special:Search/{{PAGENAME}}|circari stu tìtulu]] nta l'àutri pàggini dû situ oppuru <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|action=edit}} circari ntê riggistra culligati] oppuru [{{fullurl:{{FULLPAGENAME}}|action=edit}} canciari la pàggina ora]</span>.",
        "noarticletext-nopermission": "Nta stu mumentu la pàggina addumannata è vacanti. È pussibbili [[Special:Search/{{PAGENAME}}|circari stu titulu]] nti àutri pàggini dû situ o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} circari ntê riggistra culligati]</span>, ma nun hai li pirmissa pi criari sta pàggina.",
-       "missing-revision": "A virsioni #$1 dâ paggina ntitulata \"{{FULLPAGENAME}}\" nun esisti.\n\nStu fattu di sòlitu succedi quannu si segui na lijami di crunuluggìa versu na pàggina chi fu cancillata.\nSi ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
+       "missing-revision": "La virsioni #$1 dâ paggina ntitulata \"{{FULLPAGENAME}}\" nun esisti.\n\nStu fattu di sòlitu succedi quannu si segui nu lijami di crunuluggìa versu na pàggina chi fu cancillata.\nSi ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
        "userpage-userdoesnotexist": "L'account \"<nowiki>$1</nowiki>\" nun currispunni a n'utenti riggistratu. Virificari si si voli criari o canciari sta pàggina.",
-       "userpage-userdoesnotexist-view": "U cuntu utenti \"$1\" nun è riggistratu.",
-       "blocked-notice-logextract": "St'utenti pi' com'ora è bluccatu.\nComu rifirimentu ccassutta cc'è l'ùltima vuci dû riggìstru dî blocchi:",
-       "clearyourcache": "<strong>Nota:</strong> Doppu aviri sarvatu, po' giuvari cancillari la ''cache'' dû propiu browser pi' vìdiri li canciamenti.\n* <strong>Firefox / Safari:</strong> Cliccari <em>Ricarica</em> mantinnennu primutu lu tastu dî majùsculi, o puru prèmiri o <em>Ctrl-F5</em> o <em>Ctrl-R</em> (<em>⌘-R</em> ntôn Mac)\n* <strong>Google Chrome:</strong> Prèmiri <em>Ctrl-Maiusc-R</em> (<em>⌘-Maiusc-R</em> ntôn Mac)\n* <strong>Internet Explorer:</strong> Cliccari <em>Aggiorna</em> mantinennu primutu lu tastu <em>Ctrl</em>, o puru prèmiri <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Svacantari la ''cache'' dû menù <em>Strumenti → Preferenze</em>",
-       "usercssyoucanpreview": "<strong>Cunsigghiu:</strong> Adòpira u buttuni \"{{int:showpreview}}\" pi' pruvari u to CSS novu prima di sarvàrilu.",
-       "userjsyoucanpreview": "<strong>Cunsigghiu:</strong> Adòpira u buttuni \"{{int:showpreview}}\" pi' pruvari u to JavaScript novu prima di sarvàrilu.",
+       "userpage-userdoesnotexist-view": "Lu cuntu utenti \"$1\" nun è riggistratu.",
+       "blocked-notice-logextract": "St'utenti pi com'ora è bluccatu.\nComu rifirimentu ccassutta c'è l'ùrtima vuci dû riggistru dî blocchi:",
+       "clearyourcache": "<strong>Nota:</strong> Doppu aviri sarvatu, pò aggiuvari cancillari la ''cache'' dû propiu browser pi vìdiri li canciamenti.\n* <strong>Firefox / Safari:</strong> Cliccari <em>Ricarica</em> mantinnennu primutu lu tastu dî maiùsculi, o puru prèmiri o <em>Ctrl-F5</em> o <em>Ctrl-R</em> (<em>⌘-R</em> ntôn Mac)\n* <strong>Google Chrome:</strong> Prèmiri <em>Ctrl-Maiusc-R</em> (<em>⌘-Maiusc-R</em> ntôn Mac)\n* <strong>Internet Explorer:</strong> Cliccari <em>Aggiorna</em> mantinennu primutu lu tastu <em>Ctrl</em>, o puru prèmiri <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Svacantari la ''cache'' dû menù <em>Strumenti → Preferenze</em>",
+       "usercssyoucanpreview": "<strong>Cunzigghiu:</strong> Adòpira lu buttuni \"{{int:showpreview}}\" pi pruvari lu tò CSS novu prima di sarvàrilu.",
+       "userjsyoucanpreview": "<strong>Cunzigghiu:</strong> Adòpira lu buttuni \"{{int:showpreview}}\" pi pruvari lu tò JavaScript novu prima di sarvàrilu.",
        "usercsspreview": "'''Arricorda ca stai sulu visualizzannu n'antiprima dû tò CSS pirsunali.'''\n'''Nun hà ancora statu sarvatu!'''",
        "userjspreview": "'''Arricorda ca stai sulu tistanno/vidennu 'n antiprima lu tò javascript pirsunali, nun hà statu ancora sarvatu!'''",
-       "sitecsspreview": "<strong>Ricòrditi chi' chista è sulu n'antiprima di stu CSS. Ancora nun havi statu sarvatu!</strong>",
-       "sitejspreview": "<strong>Ricòrditi chi' chista è sulu n'antiprima di stu còdici JavaScript. Ancora nun havi statu sarvatu!</strong>",
+       "sitecsspreview": "<strong>Arricòrdati chi chista è sulu n'antiprima di stu CSS. Ancora nun fu sarvatu!</strong>",
+       "sitejspreview": "<strong>Arricòrdati chi chista è sulu n'antiprima di stu còdici JavaScript. Ancora nun fu sarvatu!</strong>",
        "userinvalidcssjstitle": "'''Accura:''' Nun esisti arcuna skin cu nomu \"$1\". S'arricorda ca li pàggini pi li .css e .js pirsunalizzati hannu la nizziali dû tìtulu minùscula, p'asempiu {{ns:user}}:Asempiu/vector.js e nun {{ns:user}}:Asempiu/Vector.css.",
        "updated": "(Aggiurnatu)",
        "note": "<strong>Nota:</strong>",
-       "previewnote": "<strong>Ricòrditi ca chista è sulu n'antiprima.</strong>\nLi to canciamenti ancora nun foru sarvati!",
-       "continue-editing": "Vai a' l'aria di mudìfica",
-       "previewconflict": "St'antiprima currispunni a lu testu prisenti ntâ casedda di canciamentu cchiu' supra e rapprisenta la pàggina comu cumpariravi siddu scegghî di sarvàrila.",
-       "session_fail_preview": "<strong>Purtroppu nun hà statu pussìbbili sarvari li tò canciamenti pirchì li dati dâ sissioni hannu jutu pirduti.</strong>\nPi' favuri prova n'autra vota.\nSiddu ancora nun funziona, prova a' [[Special:UserLogout|nèsciri]] e tràsiri n'autra vota.",
+       "previewnote": "<strong>Arricòrdati ca chista è sulu n'antiprima.</strong>\nLi tò canciamenti ancora nun foru sarvati!",
+       "continue-editing": "Vai a l'ària di canciamentu",
+       "previewconflict": "St'antiprima currispunni a lu testu prisenti ntâ casedda di canciamentu cchiù supra e rapprisenta la pàggina comu cumparisci siddu scegghi di sarvàrila.",
+       "session_fail_preview": "<strong>Purtroppu nun fu pussìbbili sarvari li tò canciamenti pirchì li dati dâ sissioni foru pirduti.</strong>\nPi favuri prova n'àutra vota.\nSiddu ancora nun funziona, prova a [[Special:UserLogout|nèsciri]] e tràsiri n'àutra vota.",
        "session_fail_preview_html": "'''Semu spiacenti, nun hà statu pussìbbili elabburari lu canciamentu pirchì hannu jutu pirduti li dati rilativi â sissioni.'''\n\n''Poichì nta stu situ è abbilitatu l'usu di HTML senza limitazzioni, l'antiprima nun veni visualizzata; si tratta di na misura di sicurizza contra l'attacchi JavaScript.''\n\n'''Siddu chistu è nu tintativu liggìttimu di canciamentu, arriprova. Siddu lu prubbrema pirsisti, si pò pruvari a [[Special:UserLogout|sculligàrisi]] e effittuari n'accessu novu.'''",
        "token_suffix_mismatch": "'''Lu canciamentu nun fu sarvatu pirchì lu client ammustrau di gèstiri 'n modu sbagghiatu li caràttiri di puntiggiatura nta lu token assuciatu a iddu. P'evitari na curruzzioni pussìbbili dô testu dâ pàggina, fu rifiutatu tuttu lu canciamentu. Sta situazzioni pò virificàrisi, certi voti, quannu s'adòpiranu arcuni sirvizza di proxy anònimi via web chi prisèntanu bug.'''",
-       "edit_form_incomplete": "<strong>Quarchi' parti dû mòdulu pâ mudìfica nun arrivau ô ''server''; cuntrolla bonu chi' tutti i to canciamenti su' ntatti e prova n'autra vota.</strong>",
+       "edit_form_incomplete": "<strong>Quarchi parti dû mòdulu pô canciamentu nun arrivau ô ''server''; cuntrolla bonu chi tutti li tò canciamenti sunnu ntatti e prova n'àutra vota.</strong>",
        "editing": "Canciamentu di $1",
        "creating": "Criazzioni di $1",
        "editingsection": "Canciamentu di $1 (sizzioni)",
-       "editingcomment": "Canciamentu di $1 (nova sizzioni)",
+       "editingcomment": "Canciamentu di $1 (sizzioni nova)",
        "editconflict": "Cunflittu d'edizzioni: $1",
        "explainconflict": "N'àutru utenti havi sarvatu na virsioni nova dâ pàggina mentri stavi effittuannu li canciamenti.\nLa casella di canciamentu supiriuri cunteni lu testu dâ pàggina attuarmenti online, accussì comu hà statu aggiurnatu di l'àutru utenti.\nLa virsioni cu li tò canciamenti è mmeci ripurtata ntâ casella di canciamentu nfiriuri.\nSiddu addisìi cunfirmàrili, hai a ripurtari li tò canciamenti ntô testu asistenti (casella supiriuri).\nPrimennu lu pulsanti '{{int:savearticle}}', veni sarvatu '''sulu''' lu testu cuntinutu ntâ casella di canciamentu supiriuri.",
        "yourtext": "Lu tò testu",
        "storedversion": "La virsioni mimurizzata",
-       "nonunicodebrowser": "<strong>Accura: Lu to browser nun supporta bonu l'Unicode.</strong>\nFu' attivata na contramisura pi' cunsintìriti di canciari li pàggini in sicurizza: li caràttiri nun-ASCII spuntirannu nta la casedda di mudìfica comu còdici esadicimali.",
+       "nonunicodebrowser": "<strong>Accura: Lu tò browser nun supporta bonu l'Unicode.</strong>\nFu attivata na contramisura pi cunzintìriti di canciari li pàggini n sicurizza: li caràttiri nun-ASCII spùntanu nta la casedda di canciamentu comu còdici esadicimali.",
        "editingold": "'''Accura: si sta canciannu na virsioni nun aggiurnata dâ pàggina.<br /> Siddu si scegghi di sarvàrila, tutti li canciamenti appurtati doppu sta rivisioni vannu pirduti.'''",
        "yourdiff": "Diffirenzi",
-       "copyrightwarning": "Pi' favuri nota ca tutti li cuntribbuti mannati a' {{SITENAME}} s'hannu a' cunsiddirari sutta â licenza d'usu $2 (talìa $1 pî dittagghî).\nSi' nun voi ca li to testi vènunu mudificati senza nuddu riguardu e ridistribbuùti a' vogghia, allura nê mannari cca.<br />\nMannannu lu to testu nni dichiari sparti chi' lu scrivisti tu pirsunalmenti, o puru ca lu cupiasti di na fonti di pùbblicu duminiu o analugamenti lìbbira.\n<strong>Nun mannari matiriali cupertu di drittu d'auturi senza auturizzazzioni!</strong>",
-       "copyrightwarning2": "Pi' favuri nota ca tutti li cuntribbuti mannati a' {{SITENAME}} ponnu vèniri canciati, altirati o cancillati di l'autri participanti.\nSi' nun voi ca li to testi vènunu mudificati senza nuddu riguardu, allura nê mannari cca.<br />\nMannannu lu to testu nni dichiari sparti ca lu scrivisti tu pirsunalmenti, o puru ca lu cupiasti di na fonti di pùbblicu duminiu o analugamenti lìbbira (talìa $1 pi' majuri dittagghî).\n<strong>Nun mannari matiriali cupertu di drittu d'auturi senza auturizzazzioni!</strong>",
+       "copyrightwarning": "Pi favuri nota ca tutti li cuntribbuti mannati a {{SITENAME}} s'hannu a cunziddirari sutta â licenza d'usu $2 (talìa $1 pî dittagghî).\nSi nun voi ca li tò testi vèninu canciati senza nuddu riguardu e ridistribbuuti a vogghia, allura nun li mannari ccà.<br />\nMannannu lu tò testu dichiari chi lu scrivisti tu pirsunalmenti, o puru ca lu cupiasti di na fonti di pùbblicu duminiu o analugamenti lìbbira.\n<strong>Nun mannari matiriali cupertu di drittu d'auturi senza auturizzazzioni!</strong>",
+       "copyrightwarning2": "Pi favuri nota ca tutti li cuntribbuti mannati a {{SITENAME}} ponnu vèniri canciati, altirati o cancillati di l'àutri participanti.\nSi nun voi ca li tò testi vèninu canciati senza nuddu riguardu, allura nun li mannari ccà.<br />\nMannannu lu tò testu dichiari ca lu scrivisti tu pirsunalmenti, o puru ca lu cupiasti di na fonti di pùbblicu duminiu o analugamenti lìbbira (talìa $1 pi maiuri dittagghî).\n<strong>Nun mannari matiriali cupertu di drittu d'auturi senza auturizzazzioni!</strong>",
        "editpage-cannot-use-custom-model": "Lu mudellu dû cuntinutu di sta pàggina nun si pò canciari.",
-       "longpageerror": "<strong>Erruri: Lu testu ca hai suttamisu è longu {{PLURAL:$1|un kilobyte|$1 kilobyte}}, cchiù' ssai dû màssimu ca è di {{PLURAL:$2|un kilobyte|$2 kilobyte}}.</strong>\nNun si po' sarvari.",
-       "readonlywarning": "<strong>Accura: Lu database è fermu pi manutinzioni, pirciò nun poi sarvari li tò canciamenti nta stu mumentu.</strong>\nLa cosa megghia è fari un copia e ncodda dû testu nta n'àutru prugramma e sarvàrilu pi quannu lu database torna accissìbbili.\n\nL'amministraturi ca bluccau lu database desi sta spiegazzioni: $1",
-       "protectedpagewarning": "<strong>Accura: Sta pàggina fu' prutetta a' manera chi' sulu l'utenti cu' privileggi d'amministraturi a ponnu canciari.</strong>\nPi' rifirimentu, ccassutta è ripurtata l'ultima vuci dû riggistru:",
-       "semiprotectedpagewarning": "<strong>Nota:</strong> Sta pàggina fu' prutetta a' manera chi' sulu l'utenti riggistrati la ponnu canciari.\nPi' rifirimentu, ccassutta è ripurtata l'ultima vuci dû riggistru:",
+       "longpageerror": "<strong>Erruri: Lu testu ca suttamittisti è longu {{PLURAL:$1|un kilobyte|$1 kilobyte}}, cchiossai dû màssimu chi è di {{PLURAL:$2|un kilobyte|$2 kilobyte}}.</strong>\nNun si pò sarvari.",
+       "readonlywarning": "<strong>Accura: Lu database è fermu pi manutinzioni, pirciò nun poi sarvari li tò canciamenti nta stu mumentu.</strong>\nLa cosa megghia è fari un copia e ncodda dû testu nta n'àutru prugramma e sarvàrilu pi quannu lu database torna accissìbbili.\n\nL'amministraturi ca bluccau lu database desi sta spigazzioni: $1",
+       "protectedpagewarning": "<strong>Accura: Sta pàggina fu prutetta di manera chi sulu l'utenti cu privileggi d'amministraturi la ponnu canciari.</strong>\nPi rifirimentu, ccassutta è arripurtata l'ùrtima vuci dû riggistru:",
+       "semiprotectedpagewarning": "<strong>Nota:</strong> Sta pàggina fu prutetta di manera chi sulu l'utenti riggistrati la ponnu canciari.\nPi rifirimentu, ccassutta è arripurtata l'ùrtima vuci dû riggistru:",
        "cascadeprotectedwarning": "<strong>Accura:</strong> Sta pàggina fu bluccata di manera ca sulu l'utenti cu privileggi di amministraturi la ponnu canciari, pirchì veni nclusa {{PLURAL:$1|ntâ pàggina  siquenti ca è prutiggiuta|ntê pàggini siquenti ca sunnu prutiggiuti}} a cascata:",
-       "titleprotectedwarning": "<strong>Accura: Sta pàggina fu' prutetta a' manera chi' giuvunu [[Special:ListGroupRights|privileggi spicìfici]] pi' criàrila.</strong>\nPi' rifirimentu, ccassutta è ripurtata l'ultima vuci dû riggistru:",
+       "titleprotectedwarning": "<strong>Accura: Sta pàggina fu prutetta di manera c'aggiùvanu [[Special:ListGroupRights|privileggi spicìfici]] pi criàrila.</strong>\nPi rifirimentu, ccassutta è ripurtata l'ùrtima vuci dû riggistru:",
        "templatesused": "{{PLURAL:$1|Template adupiratu|Template adupirati}} nta sta pàggina:",
        "templatesusedpreview": "{{PLURAL:$1|Template adupiratu|Template adupirati}} nta st'antiprima:",
        "templatesusedsection": "{{PLURAL:$1|Template adupiratu|Template adupirati}} nta sta sizzioni:",
        "template-protected": "(prutettu)",
        "template-semiprotected": "(semiprutettu)",
-       "hiddencategories": "Sta pàggina apparteni a' {{PLURAL:$1|na catigurìa ammucciata|$1 catigurìi ammucciati}}:",
+       "hiddencategories": "Sta pàggina apparteni a {{PLURAL:$1|na catigurìa ammucciata|$1 catigurìi ammucciati}}:",
        "edittools": "<!-- Chistu testu cumpari sutta li moduli di canciu e carricamentu. -->",
-       "nocreatetext": "{{SITENAME}} limitau la pussibbilitati di criari pàggini novi.\nPoi turnari 'n arreri e canciari na pàggina già esistenti, o puru [[Special:UserLogin|tràsiri o criari nu cuntu novu]].",
-       "nocreate-loggedin": "Nun hai lu pirmissu pi' criari pàggini novi.",
-       "sectioneditnotsupported-title": "Nun è suppurtatu lu canciamentu pi' sizzioni",
-       "sectioneditnotsupported-text": "Nta sta pàggina nun è suppurtatu lu canciamentu pi' sizzioni.",
+       "nocreatetext": "{{SITENAME}} limitau la pussibbilitati di criari pàggini novi.\nPoi turnari n arreri e canciari na pàggina già esistenti, o puru [[Special:UserLogin|tràsiri o criari nu cuntu novu]].",
+       "nocreate-loggedin": "Nun hai lu pirmissu pi criari pàggini novi.",
+       "sectioneditnotsupported-title": "Nun è suppurtatu lu canciamentu pi sizzioni",
+       "sectioneditnotsupported-text": "Nta sta pàggina nun è suppurtatu lu canciamentu pi sizzioni.",
        "permissionserrors": "Erruri di pirmissu",
-       "permissionserrorstext": "Nun hai lu pirmissu di fari sta cosa, pi' {{PLURAL:$1|chistu motivu|chisti mutivi}}:",
-       "permissionserrorstext-withaction": "Nun hai lu pirmissu di $2, pi' {{PLURAL:$1|chistu mutivu|chisti mutivi}}:",
+       "permissionserrorstext": "Nun hai lu pirmissu di fari sta cosa, pi {{PLURAL:$1|stu mutivu|sti mutivi}}:",
+       "permissionserrorstext-withaction": "Nun hai lu pirmissu di $2, pi {{PLURAL:$1|stu mutivu|sti mutivi}}:",
        "recreate-moveddeleted-warn": "'''Accura: stai pi criari na pàggina chi fu cancillata 'n passatu.'''\n\nAccuràtivi ch'è uppurtunu cuntinuari a canciari sta pàggina.\nL'alencu dî cancillazzioni e spustamenti rilativi veni ripurtatu ccà pi cummudità:",
        "moveddeleted-notice": "Sta pàggina fu scancillata. La lista di li scancillazzioni e spustamenti veni ammustrata di sècutu pi nfurmazzioni.",
-       "log-fulllog": "Talìa lu riggìstru cumpletu",
-       "edit-hook-aborted": "Canciamentu annullatu di n'hook.\nNun desi nudda spiegazzioni.",
-       "edit-gone-missing": "Nun si po' aggiurnari la pàggina.\nPari ca fu cancillata.",
+       "log-fulllog": "Talìa lu riggistru cumpletu",
+       "edit-hook-aborted": "Canciamentu annullatu di n'hook.\nNun desi nudda spigazzioni.",
+       "edit-gone-missing": "Nun si pò aggiurnari la pàggina.\nPari ca fu cancillata.",
        "edit-conflict": "Cunflittu d'edizzioni.",
-       "edit-no-change": "La to mudìfica fu' gnurata pirchì nun foru appurtati canciamenti ntô testu.",
+       "edit-no-change": "Lu tò canciamentu fu gnuratu pirchì nun foru appurtati canciamenti ntô testu.",
        "postedit-confirmation-created": "La pàggina fu criata.",
        "postedit-confirmation-restored": "La pàggina fu ripristinata.",
-       "postedit-confirmation-saved": "Lu to canciamentu fu sarvatu.",
-       "edit-already-exists": "Nun fu' pussìbbili criari na pàggina nova.\nGià esisti.",
+       "postedit-confirmation-saved": "Lu tò canciamentu fu sarvatu.",
+       "edit-already-exists": "Nun fu pussìbbili criari na pàggina nova.\nGià esisti.",
        "defaultmessagetext": "Testu dû missaggiu pridifinutu",
-       "content-failed-to-parse": "Anàlisi sintàttica dû cuntinutu $2 pû mudellu $1 nun rinisciuta: $3",
+       "content-failed-to-parse": "Anàlisi sintàttica dû cuntinutu $2 pû mudellu $1 nun arrinisciuta: $3",
        "invalid-content-data": "Dati nun vàlidi ntô cuntinutu",
-       "content-not-allowed-here": "U cuntinutu \"$1\" nun è cunsintutu ntâ pàggina [[$2]]",
-       "editwarning-warning": "Annannutìnni di sta pàggina poi pèrdiri i canciamenti ch'hai fattu.\nSi' si' trasutu, poi disattivari st'avvisu ntâ sizzioni \"{{int:prefs-editing}}\" dî to prifirenzi.",
+       "content-not-allowed-here": "Lu cuntinutu \"$1\" nun è cunzintutu ntâ pàggina [[$2]]",
+       "editwarning-warning": "Lassannu sta pàggina poi pèrdiri li canciamenti ca facisti.\nSi trasisti, poi disattivari st'avvisu ntâ sizzioni \"{{int:prefs-editing}}\" dî tò prifirenzi.",
        "editpage-notsupportedcontentformat-title": "Furmatu di cuntinutu nun suppurtatu",
-       "editpage-notsupportedcontentformat-text": "U furmatu di cuntinutu $1 non è suppurtatu dû mudellu di cuntinutu $2.",
+       "editpage-notsupportedcontentformat-text": "Lu furmatu di cuntinutu $1 nun è suppurtatu dû mudellu di cuntinutu $2.",
        "content-model-wikitext": "wikitestu",
        "content-model-text": "testu sìmplici",
        "content-model-javascript": "JavaScript",
        "content-json-empty-object": "Oggettu vacanti",
        "content-json-empty-array": "Vitturi vacanti",
-       "duplicate-args-warning": "<strong>Accura:</strong> [[:$1]] sta' chiamannu [[:$2]] cu' cchiu' ssai dûn valuri comu paràmitru \"$3\". Sarravi adupiratu sulu l'ùrtimu valuri spicificatu.",
-       "duplicate-args-category": "Pàggini chi' cuntènunu chiamati a' template cu' argumenti duplicati",
-       "duplicate-args-category-desc": "A pàggina cunteni chiamati a' template chi' adòpirunu argumenti duplicati, comu <code><nowiki>{{pippu|plutu=1|plutu=2}}</nowiki></code> o <code><nowiki>{{pippu|plutu|1=papirinu}}</nowiki></code>.",
+       "duplicate-args-warning": "<strong>Accura:</strong> [[:$1]] sta chiamannu [[:$2]] cu cchiossai dûn valuri comu paràmitru \"$3\". E' adupiratu sulu l'ùrtimu valuri spicificatu.",
+       "duplicate-args-category": "Pàggini chi cuntèninu chiamati a template cu argumenti duplicati",
+       "duplicate-args-category-desc": "La pàggina cunteni chiamati a template chi adòpiranu argumenti duplicati, comu <code><nowiki>{{cicciu|plutu=1|plutu=2}}</nowiki></code> o <code><nowiki>{{cicciu|plutu|1=papirinu}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Accura: Sta pàggina cunteni troppi chiamati ê parser functions.\n\nAvissi a èssiri menu di $2, ô mumentu ci {{PLURAL:$1|nn'è $1|nni sunnu $1}}.",
        "expensive-parserfunction-category": "Pàggini cu troppi chiamati ê parser functions",
        "post-expand-template-inclusion-warning": "Accura: la diminzioni di li template nziriti è troppu granni.\nArcuni template non vènunu nziriti.",
        "post-expand-template-inclusion-category": "Pàggini unni la diminsioni dê template nclusi supira lu limiti cunsintutu",
        "post-expand-template-argument-warning": "Attenzioni: Sta pàggina cunteni almenu n'argomentu di nu template ca havi na diminsioni troppu rossa pi essiri espansu. St'argomenti verrannu omessi.",
        "post-expand-template-argument-category": "Pàggini ca cuntèninu template cu argumenti mancanti",
-       "parser-template-loop-warning": "Rilivatu un cìrculu di di Template: [[$1]]",
-       "parser-template-recursion-depth-warning": "Passatu u lìmiti di funnu pâ ricursioni di template ($1)",
-       "language-converter-depth-warning": "Passatu u lìmiti di funnu dû cunvirtituri di lingua ($1)",
-       "node-count-exceeded-category": "Pàggini unni fu' passatu u nùmmiru màssimu di gruppi",
-       "node-count-exceeded-category-desc": "A pàggina passa u nùmmiru massimu di gruppi.",
-       "node-count-exceeded-warning": "Sta pàggina passau u nùmmiru màssimu di gruppi",
-       "expansion-depth-exceeded-category": "Pàggini unni fu' passatu u funnu màssimu di espansioni",
-       "expansion-depth-exceeded-category-desc": "A pàggina passa u funnu màssimu di espansioni.",
-       "expansion-depth-exceeded-warning": "Sta pàggina passau u funnu màssimu di espansioni",
+       "parser-template-loop-warning": "Rilivatu un cìrculu di lu Template: [[$1]]",
+       "parser-template-recursion-depth-warning": "Passatu lu lìmiti di funnu pâ ricursioni di template ($1)",
+       "language-converter-depth-warning": "Passatu lu lìmiti di funnu dû cunvirtituri di lingua ($1)",
+       "node-count-exceeded-category": "Pàggini unni fu passatu lu nùmmiru di gruppa màssimu",
+       "node-count-exceeded-category-desc": "La pàggina passa lu nùmmiru di gruppa màssimu.",
+       "node-count-exceeded-warning": "Sta pàggina passau lu nùmmiru di gruppa màssimu",
+       "expansion-depth-exceeded-category": "Pàggini unni fu passatu lu funnu d'espanzioni màssimu",
+       "expansion-depth-exceeded-category-desc": "La pàggina passa lu funnu d'espanzioni màssimu.",
+       "expansion-depth-exceeded-warning": "Sta pàggina passau lu funnu d'espanzioni màssimu",
        "parser-unstrip-loop-warning": "Rilivatu un cìrculu di Unstrip",
-       "parser-unstrip-recursion-limit": "Passatu u lìmiti di ricursioni di Unstrip ($1)",
+       "parser-unstrip-recursion-limit": "Passatu lu lìmiti di ricursioni di Unstrip ($1)",
        "converter-manual-rule-error": "Rilivatu n'erruri nta na règula manuali di cunvirsioni di lingua",
        "undo-success": "Lu canciamentu pò essiri annullatu.\nVirificati lu paraguni ccà sutta p'accuràrivi ca lu cuntinutu è chiddu addisiatu e doppu sarvati la pàggina pi cumplitari l'annullamentu.",
        "undo-failure": "Lu canciamentu nun pò èssiri annullatu a càusa d'un cunflittu cu li canciamenti ntirmedi.",
        "undo-norev": "Lu canciamentu nun pò essiri annullatu pirchì nun esisti o fù cancillato.",
-       "undo-nochange": "Pari chi' lu canciamentu già fu annullatu.",
+       "undo-nochange": "Pari chi lu canciamentu già fu annullatu.",
        "undo-summary": "Annullatu lu canciamentu $1 di [[Special:Contributions/$2|$2]] ([[User talk:$2|discussioni]])",
-       "undo-summary-username-hidden": "Annullata a virsioni $1 fatta di n'utenti ammucciatu",
+       "undo-summary-username-hidden": "Annullata la virsioni $1 fatta di n'utenti ammucciatu",
        "cantcreateaccounttitle": "Mpussìbbili criari un cuntu",
-       "cantcreateaccount-text": "La criazzioni di cunti a' pàrtiri di stu nnirizzu IP (<strong>$1</strong>), fu' bluccata di [[User:$3|$3]].\n\nLa spiegazzioni data di $3 è <em>$2</em>",
-       "cantcreateaccount-range-text": "La criazzioni di cunti a' pàrtiri dî nnirizzi IP nta l'intirvallu '''$1''', chi' cumprenni u to nnirizzu IP ('''$4'''), fu' bluccata di [[User:$3|$3]].\n\nLa spiegazzioni data di $3 è ''$2''",
-       "viewpagelogs": "Talìa li riggìstra di sta pàggina",
-       "nohistory": "Nun cc'è crunuluggìa dî canciamenti pi' sta pàggina.",
+       "cantcreateaccount-text": "La criazzioni di cunti a pàrtiri di stu nnirizzu IP (<strong>$1</strong>), fu bluccata di [[User:$3|$3]].\n\nLa spigazzioni data di $3 è <em>$2</em>",
+       "cantcreateaccount-range-text": "La criazzioni di cunti a pàrtiri dî nnirizzi IP ntô ntervallu '''$1''', chi cumprenni lu tò nnirizzu IP ('''$4'''), fu bluccata di [[User:$3|$3]].\n\nLa spigazzioni data di $3 è ''$2''",
+       "viewpagelogs": "Talìa li riggistri di sta pàggina",
+       "nohistory": "Nun c'è crunuluggìa dî canciamenti pi sta pàggina.",
        "currentrev": "Virsioni currenti",
        "currentrev-asof": "Virsioni currenti ô $1",
        "revisionasof": "Virsioni dû $1",
        "revision-info": "Virsioni dû $1 di {{GENDER:$6|$2}}$7",
-       "previousrevision": "← Virsioni cchiu' vecchia",
-       "nextrevision": "Virsioni cchiu' nova →",
-       "currentrevisionlink": "Ùltima virsioni",
+       "previousrevision": "← Virsioni cchiù vecchia",
+       "nextrevision": "Virsioni cchiù nova →",
+       "currentrevisionlink": "Ùrtima virsioni",
        "cur": "curr",
        "next": "pròssimu",
        "last": "pric",
        "page_first": "prima",
        "page_last": "ùrtima",
-       "histlegend": "Pû cunfruntu tra virsioni: scègghîri li caseddi currispunnenti ê virsioni di cunfruntari e carcari Invio o lu buttuni ô funnu.<br />\nLegenda: <strong>({{int:cur}})</strong> = cunfruntari cu la virsioni currenti, <strong>({{int:last}})</strong> = cunfruntari cu la virsioni avanti d'idda, <strong>{{int:minoreditletter}}</strong> = canciamentu nicu",
+       "histlegend": "Pû cunfruntu tra virsioni: scègghiri li caseddi currispunnenti ê virsioni di cunfruntari e carcari Invio o lu buttuni ô funnu.<br />\nLiggenna: <strong>({{int:cur}})</strong> = cunfruntari cu la virsioni currenti, <strong>({{int:last}})</strong> = cunfruntari cu la virsioni avanti d'idda, <strong>{{int:minoreditletter}}</strong> = canciamentu nicu",
        "history-fieldset-title": "Scurri ntâ crunuluggìa",
        "history-show-deleted": "Sulu chiddi cancillati",
-       "histfirst": "i cchiu' vecchî",
-       "histlast": "i cchiu' novi",
+       "histfirst": "li cchiù vecchî",
+       "histlast": "li cchiù novi",
        "historysize": "({{PLURAL:$1|1 byte|$1 byte}})",
        "historyempty": "(vacanti)",
        "history-feed-title": "Crunuluggìa dî canciamenti",
-       "history-feed-description": "Crunuluggìa dî canciamenti a' sta pàggina nta sta wiki",
+       "history-feed-description": "Crunuluggìa dî canciamenti a sta pàggina nta sta wiki",
        "history-feed-item-nocomment": "$1 lu $2",
-       "history-feed-empty": "La pàggina chi' dumannasti nun esisti.\nPo' aviri statu cancillata dâ wiki, o puru canciata di nomu.\nProva a' [[Special:Search|circari ntâ wiki]] siddu cci sunnu pàggini novi chi' ti ponnu ntirissari.",
+       "history-feed-empty": "La pàggina chi addumannasti nun esisti.\nPò aviri statu cancillata dâ wiki, o puru canciatu lu sò nomu.\nProva a [[Special:Search|circari ntâ wiki]] siddu ci sunnu pàggini novi chi ti ponnu ntirissari.",
        "history-edit-tags": "Cancia l'etichetti dî virsioni scigghiuti",
-       "rev-deleted-comment": "(riassuntu dû canciamentu rimossu)",
-       "rev-deleted-user": "(nomu utenti rimossu)",
-       "rev-deleted-event": "(dittagghî dû riggistru rimossi)",
-       "rev-deleted-user-contribs": "[nomu utenti o nnirizzu IP rimossi - canciamentu ammucciatu ntê cuntribbuti]",
+       "rev-deleted-comment": "(riassuntu dû canciamentu cancillatu)",
+       "rev-deleted-user": "(nomu utenti cancillatu)",
+       "rev-deleted-event": "(dittagghî dû riggistru cancillati)",
+       "rev-deleted-user-contribs": "[nomu utenti o nnirizzu IP cancillati - canciamentu ammucciatu ntê cuntribbuti]",
        "rev-deleted-text-permission": "Sta virsioni dâ pàggina hà statu '''cancillata'''.\nCunzurtari lu [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log di cancillazzioni] pi ultiriuri dittagghi.",
-       "rev-suppressed-text-permission": "Sta virsioni dâ pàggina fu' <strong>supprimuta</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
-       "rev-deleted-text-unhide": "Sta virsioni dâ pàggina fu' <strong>cancillata</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].\nAncora poi [$1 taliari sta virsioni] si' voi prucèdiri.",
-       "rev-suppressed-text-unhide": "Sta virsioni dâ pàggina fu' <strong>supprimuta</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].\nAncora poi [$1 taliari sta virsioni] si' voi prucèdiri.",
-       "rev-deleted-text-view": "Sta virsioni dâ pàggina fu' <strong>cancillata</strong>.\nTu ancora a poi taliari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
-       "rev-suppressed-text-view": "Sta virsioni dâ pàggina fu' <strong>supprimuta</strong>.\nTu ancora a poi taliari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
-       "rev-deleted-no-diff": "Nun si po' taliari stu cunfruntu tra virsioni pirchì na revisioni fu <strong>cancillata</strong>.\nSi ponnu a' vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
-       "rev-suppressed-no-diff": "Non poi taliari sta diffirenza picchì una dî virsioni fu' <strong>cancillata</strong>.",
-       "rev-deleted-unhide-diff": "Una dî virsioni di sta diffirenza fu' <strong>cancillata</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].\nAncora poi [$1 taliari sta diffirenza] si' voi prucèdiri.",
-       "rev-suppressed-unhide-diff": "Una dî virsioni di sta diffirenza fu' <strong>supprimuta</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].\nAncora poi [$1 taliari sta diffirenza] si' voi prucèdiri.",
-       "rev-deleted-diff-view": "Una dî virsioni di sta diffirenza fu' <strong>cancillata</strong>.\nTu sta diffirenza ancora a poi taliari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
-       "rev-suppressed-diff-view": "Una dî virsioni di sta diffirenza fu' <strong>supprimuta</strong>.\nTu sta diffirenza ancora la poi taliari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
+       "rev-suppressed-text-permission": "Sta virsioni dâ pàggina fu <strong>supprimuta</strong>.\nSi ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
+       "rev-deleted-text-unhide": "Sta virsioni dâ pàggina fu <strong>cancillata</strong>.\nSi ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].\nAncora poi [$1 taliari sta virsioni] si voi prucèdiri.",
+       "rev-suppressed-text-unhide": "Sta virsioni dâ pàggina fu <strong>supprimuta</strong>.\nSi ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].\nAncora poi [$1 taliari sta virsioni] si voi prucèdiri.",
+       "rev-deleted-text-view": "Sta virsioni dâ pàggina fu <strong>cancillata</strong>.\nTu ancora la poi taliari; si ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
+       "rev-suppressed-text-view": "Sta virsioni dâ pàggina fu <strong>supprimuta</strong>.\nTu ancora la poi taliari; si ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
+       "rev-deleted-no-diff": "Nun si pò taliari stu cunfruntu tra virsioni pirchì na rivisioni fu <strong>cancillata</strong>.\nSi ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
+       "rev-suppressed-no-diff": "Nun poi taliari sta diffirenza pirchì una dî virsioni fu <strong>cancillata</strong>.",
+       "rev-deleted-unhide-diff": "Una dî virsioni di sta diffirenza fu <strong>cancillata</strong>.\nSi ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].\nAncora poi [$1 taliari sta diffirenza] si voi prucèdiri.",
+       "rev-suppressed-unhide-diff": "Una dî virsioni di sta diffirenza fu <strong>supprimuta</strong>.\nSi ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].\nAncora poi [$1 taliari sta diffirenza] si voi prucèdiri.",
+       "rev-deleted-diff-view": "Una dî virsioni di sta diffirenza fu <strong>cancillata</strong>.\nTu sta diffirenza ancora la poi taliari; si ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
+       "rev-suppressed-diff-view": "Una dî virsioni di sta diffirenza fu <strong>supprimuta</strong>.\nTu sta diffirenza ancora la poi taliari; si ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
        "rev-delundel": "cancia la visibbilità",
        "rev-showdeleted": "ammustra",
        "revisiondelete": "Cancella o annulla la cancillazzioni di virsioni",
        "revdelete-nooldid-title": "Virsioni oggettu nun vàlida",
-       "revdelete-nooldid-text": "O nun spicificasti nudda virsioni comu oggettu di sta funzioni, o la virsioni chi' spicificasti nun esisti, o puru stai pruvannu a' ammucciari la virsioni currenti.",
+       "revdelete-nooldid-text": "O nun spicificasti nudda virsioni comu oggettu di sta funzioni, o la virsioni chi spicificasti nun esisti, o puru stai pruvannu a ammucciari la virsioni currenti.",
        "revdelete-no-file": "Lu file spicificatu nun esisti.",
-       "revdelete-show-file-confirm": "Si' sicuru chi' voi talìari na virsioni cancillata dû file \"<nowiki>$1</nowiki>\" dû $2 ê $3?",
+       "revdelete-show-file-confirm": "Sî sicuru chi voi talìari na virsioni cancillata dû file \"<nowiki>$1</nowiki>\" dû $2 ê $3?",
        "revdelete-show-file-submit": "Sì",
        "revdelete-selected-text": "{{PLURAL:$1|Virsioni scigghiuta|Virsioni scigghiuti}} di [[:$2]]:",
        "revdelete-selected-file": "{{PLURAL:$1|Virsioni dû file scigghiuta|Virsioni dû file scigghiuti}} di [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Eventu dû riggistru silizziunatu|Eventi dû riggistru silizziunati}}:",
-       "revdelete-text-text": "I virsioni cancillati spuntirannu ancora ntâ crunuluggìa dâ pàggina, però parti dû so cuntinutu sarannu inaccissìbbili ô pùbblicu.",
-       "revdelete-text-file": "I virsioni di file cancillati spuntirannu ancora ntâ crunuluggìa dû file, però parti dû so cuntinutu sarannu inaccissìbbili ô pùbblicu.",
-       "logdelete-text": "L'eventi cancillati spuntirannu ancora ntê riggistra, però parti dû so cuntinutu sarannu inaccissìbbili ô pùbblicu.",
-       "revdelete-text-others": "L'autri amministratura purrannu ancora aviri accessu ô cuntinutu ammucciatu e annullàrinni la cancillazzioni, a' menu chi' nun si pònunu autri ristrizzioni ancora.",
-       "revdelete-confirm": "Pi' favuri cunfirma chi' hai ntinzioni di fari sta cosa, chi' capisci quali su' i so cunsiguenzi, e chi' stai prucidennu ntô rispettu dî [[{{MediaWiki:Policy-url}}|linî guida]].",
-       "revdelete-suppress-text": "A supprissioni s'avissi a' adupirari <strong>sulu</strong> nta sti casi:\n* nfurmazzioni putenzialmenti diffamatorî\n* nfurmazzioni pirsunali inuppurtuni\n*: <em>nnirizzi di casa, nùmmira di tilèfunu, còdici fiscali, etc.</em>",
+       "revdelete-text-text": "Li virsioni cancillati spùntanu ancora ntâ crunuluggìa dâ pàggina, pirò parti dû sò cuntinutu nun sunnu accissìbbili ô pùbblicu.",
+       "revdelete-text-file": "Li virsioni di file cancillati spùntanu ancora ntâ crunuluggìa dû file, pirò parti dû sò cuntinutu nun sunnu accissìbbili ô pùbblicu.",
+       "logdelete-text": "L'eventi cancillati spùntanu ancora ntê riggistri, pirò parti dû sò cuntinutu nun sunnu accissìbbili ô pùbblicu.",
+       "revdelete-text-others": "L'àutri amministratura ponnu ancora aviri accessu ô cuntinutu ammucciatu e annullàrinni la cancillazzioni, a menu chi nun si pòninu àutri ristrizzioni ancora.",
+       "revdelete-confirm": "Pi favuri cunferma chi hai ntinzioni di fari sta cosa, chi capisci quali sù li sò cunziguenzi, e chi stai prucidennu ntô rispettu dî [[{{MediaWiki:Policy-url}}|lìnii guida]].",
+       "revdelete-suppress-text": "La supprissioni s'avissi a adupirari <strong>sulu</strong> nta sti casi:\n* nfurmazzioni putinzialmenti diffamatorî\n* nfurmazzioni pirsunali nun oppurtuni\n*: <em>nnirizzi di casa, nùmmira di telèfunu, còdici fiscali, ecc.</em>",
        "revdelete-legend": "Mposta li limitazzioni siquenti supra li virsioni cancillati:",
        "revdelete-hide-text": "Testu dâ virsioni",
        "revdelete-hide-image": "Ammuccia lu cuntinutu dû file",
        "revdelete-unsuppress": "Elìmina le limitazzioni su li rivisioni ripristinati",
        "revdelete-log": "Mutivu:",
        "revdelete-submit": "Àpplica {{PLURAL:$1|â virsioni scigghiuta|ê virsioni scigghiuti}}",
-       "revdelete-success": "Visibbilitati dâ virsioni mpustata currittamenti.",
-       "revdelete-failure": "A visibbilitati dâ virsioni nun potti èssiri mpustata:\n$1",
-       "logdelete-success": "Visibbilitati di l'eventu mpustata currittamenti.",
+       "revdelete-success": "Visibbilità dâ virsioni mpustata currettamenti.",
+       "revdelete-failure": "La visibbilità dâ virsioni nun potti èssiri mpustata:\n$1",
+       "logdelete-success": "Visibbilità di l'eventu mpustata currettamenti.",
        "logdelete-failure": "'''La visibilità dû eventu nun po essiri impustata:'''\n$1",
        "revdel-restore": "cancia la visibbilità",
        "pagehist": "Crunuluggìa dâ pàggina",
        "deletedhist": "Crunuluggìa cancillata",
-       "revdelete-hide-current": "Erruri ammucciannu l'elimentu a' data $1 $2: È la virsioni currenti.\nNun si po' ammucciari.",
+       "revdelete-hide-current": "Erruri ammucciannu l'elimentu a data $1 $2: È la virsioni currenti.\nNun si pò ammucciari.",
        "revdelete-show-no-access": "Impussibili ammustrari l'oggettu cu data $1 $2 in quantu fu identificatu comu \"riservatu\" e nun si disponi di lu rilativu accessu.",
        "revdelete-modify-no-access": "Impussibili canciari l'oggettu cu data $1 $2 in quantu fu identificatu comu \"riservatu\" e nun si disponi di lu rilativu accessu.",
        "revdelete-modify-missing": "Impossibili canciari l'oggettu cu ID $1 in quantu nun è presenti nô database.",
        "revdelete-no-change": "'''Attenzioni:''' l'oggettu cu data $1 $2 aveva già l'impostazioni di visibilità richiesti.",
-       "revdelete-concurrent-change": "Impussibili canciari l'oggettu cu data $1 $2 in quantu lu sò statu fu canciatu da n'autru utenti mentri si tintava lu canciamentu.\nCuntrolla lu log.",
-       "revdelete-only-restricted": "Erruri ntô mmucciamentu di l'elimentu datatu $2,$1: Non si ponnu livari elimenti dâ vista di l'amministratura senza puru scègghîri una di l'autri opzioni di visibbilitati.",
-       "revdelete-reason-dropdown": "* Mutivi cchiu' cumuni pâ cancillazzioni\n** Viulazzioni dû drittu d'auturi\n** Cummenti o nfurmazzioni pirsunali inuppurtuni\n** Nomu utenti inuppurtunu\n** Nfurmazzioni putenzialmenti diffamatorî",
-       "revdelete-otherreason": "Autru/ultiriuri mutivu:",
+       "revdelete-concurrent-change": "Mpussìbbili canciari l'oggettu cu data $1 $2 n quantu lu sò statu fu canciatu di n'àutru utenti mentri si tintava lu canciamentu.\nCuntrolla lu log.",
+       "revdelete-only-restricted": "Erruri nta l'ammucciamentu di l'elimentu datatu $2,$1: Nun si ponnu livari elimenti dâ vista di l'amministratura senza puru scègghiri una di l'àutri opzioni di visibbilità.",
+       "revdelete-reason-dropdown": "* Mutivi cchiù cumuni pâ cancillazzioni\n** Viulazzioni dû drittu d'auturi\n** Cummenti o nfurmazzioni pirsunali nun oppurtuni\n** Nomu utenti nun oppurtunu\n** Nfurmazzioni putinzialmenti diffamatorî",
+       "revdelete-otherreason": "Àutru/ultiriuri mutivu:",
        "revdelete-reasonotherlist": "Àutru mutivu",
        "revdelete-edit-reasonlist": "Cancia li mutivazioni pi la cancillazzioni",
        "revdelete-offender": "Auturi dâ virsioni:",
        "suppressionlog": "Riggistru dî supprissioni",
        "suppressionlogtext": "Ccassutta c'è n'elencu dî cancillazzioni e dî blocchi chi cumpòrtanu l'ammucciata di cuntinutu a l'occhî di l'amministratura.\nSi pò cunzurtari la [[Special:BlockList|lista dî blocchi]] pi canùsciri li furbanna e li blocchi n viguri pi com'ora.",
        "mergehistory": "Junciuta dî crunuluggìi",
-       "mergehistory-header": "Sta pàggina fa' jùnciri li crunuluggìi di du pàggini, abbuccannu li virsioni di na pàggina surgenti nta na pàggina cchiu' nova.\nAssicùriti ca stu canciamentu mantiniràvi la cuntinuità storica di la pàggina.",
+       "mergehistory-header": "Sta pàggina fa jùnciri li crunuluggìi di dui pàggini, abbuccannu li virsioni di na pàggina surgenti nta na pàggina cchiù nova.\nAssicùrati ca stu canciamentu manteni la cuntinuità stòrica dâ pàggina.",
        "mergehistory-box": "Junci li storii di dui pàggini:",
        "mergehistory-from": "Pàggina d'orìggini:",
        "mergehistory-into": "Pàggina di distinazioni:",
-       "mergehistory-list": "Crunuluggìa chi' si po' jùnciri",
+       "mergehistory-list": "Crunuluggìa chi si pò jùnciri",
        "mergehistory-merge": "Si ponnu jùnciri li virsioni di [[:$1]] nnicati ccassutta â crunuluggìa di [[:$2]].\nAdòpira la culonna chî buttuna d'opzioni pi jùnciri sulu li virsioni fatti nfina â data e l'ura spicificati.\nGuàrdati ca s'adòpiri lijami di navigazzioni la culonna veni azzirata.",
        "mergehistory-go": "Vidi li canciamenti ca ponnu èssiri junciuti",
        "mergehistory-submit": "Junci li virsioni",
        "mergehistory-empty": "Nudda virsioni di jùnciri.",
-       "mergehistory-success": "$3 {{PLURAL:$3|virsioni di [[:$1]] fu' junciuta|$3 virsioni di [[:$1]] furu junciuti}} â crunuluggìa di [[:$2]].",
-       "mergehistory-fail": "Nun fu' pussìbbili jùnciri li crunuluggìi, pi' favuri cuntrolla n'autra vota li paràmitri chi' spicìficunu li pàggini e li dati.",
-       "mergehistory-fail-toobig": "Nun fu' pussìbbili jùnciri li crunuluggìi picchì s'avìssuru a' spustari cchiu' ssai virsioni dû limiti chi' è $1.",
+       "mergehistory-success": "$3 {{PLURAL:$3|virsioni di [[:$1]] fu junciuta|$3 virsioni di [[:$1]] foru junciuti}} â crunuluggìa di [[:$2]].",
+       "mergehistory-fail": "Nun fu pussìbbili jùnciri li crunuluggìi, pi favuri cuntrolla n'àutra vota li paràmitri chi spicìficanu li pàggini e li dati.",
+       "mergehistory-fail-toobig": "Nun fu pussìbbili jùnciri li crunuluggìi pirchì s'avìssiru a spustari cchiossai virsioni dû lìmiti chi è $1.",
        "mergehistory-no-source": "La pàggina d'orìggini $1 nun esisti.",
        "mergehistory-no-destination": "La pàggina di distinazzioni $1 nun esisti.",
-       "mergehistory-invalid-source": "La pàggina d'orìggini havi a' aviri nu tìtulu vàlidu.",
-       "mergehistory-invalid-destination": "La pàggina di distinazzioni havi a' aviri nu tìtulu vàlidu.",
-       "mergehistory-autocomment": "Junciuta la crunuluggìa di [[:$1]] a' chidda di [[:$2]]",
-       "mergehistory-comment": "Junciuta la crunuluggìa di [[:$1]] a' chidda di [[:$2]]: $3",
+       "mergehistory-invalid-source": "La pàggina d'orìggini havi a aviri nu tìtulu vàlidu.",
+       "mergehistory-invalid-destination": "La pàggina di distinazzioni havi a aviri nu tìtulu vàlidu.",
+       "mergehistory-autocomment": "Junciuta la crunuluggìa di [[:$1]] a chidda di [[:$2]]",
+       "mergehistory-comment": "Junciuta la crunuluggìa di [[:$1]] a chidda di [[:$2]]: $3",
        "mergehistory-same-destination": "Li pàggini d'orìggini e di distinazioni nun ponnu èssiri la stissa",
        "mergehistory-reason": "Mutivu:",
-       "mergelog": "Riggìstru dî junciuti",
+       "mergelog": "Riggistru dî junciuti",
        "revertmerge": "Annulla la junciuta",
-       "mergelogpagetext": "Appressu veni ammustrata na lista dî junciuti cchiu' ricenti dâ crunuluggìa di na pàggina cu' chidda di n'autra.",
+       "mergelogpagetext": "Appressu veni ammustrata na lista dî junciuti cchiù ricenti dâ crunuluggìa di na pàggina cu chidda di n'àutra.",
        "history-title": "Crunuluggìa dî canciamenti di \"$1\"",
        "difference-title": "Cunfruntu tra virsioni di \"$1\"",
        "difference-title-multipage": "Cunfruntu tra dî pàggini \"$1\" e \"$2\"",
        "showhideselectedversions": "Cancia la visibbilità dî virsioni scigghiuti",
        "editundo": "annulla",
        "diff-empty": "(Nudda diffirenza)",
-       "diff-multi-sameuser": "({{PLURAL:$1|Na diffirenza minzana|$1 diffirenzi minzani}} dû stissu utenti nun {{PLURAL:$1|mustrata|mustrati}})",
-       "diff-multi-otherusers": "({{PLURAL:$1|Na diffirenza minzana|$1 diffirenzi minzani}} di {{PLURAL:$2|n'autru utenti|autri $2 utenti}} nun {{PLURAL:$1|mustrata|mustrati}})",
-       "diff-multi-manyusers": "({{PLURAL:$1|Na diffirenza minzana|$1 diffirenzi minzani}} di cchiu' ssai di {{PLURAL:$2|n'autru utenti|autri $2 utenti}} nun {{PLURAL:$1|mustrata|mustrati}})",
+       "diff-multi-sameuser": "({{PLURAL:$1|Na diffirenza minzana|$1 diffirenzi minzani}} dû stissu utenti nun {{PLURAL:$1|ammustrata|ammustrati}})",
+       "diff-multi-otherusers": "({{PLURAL:$1|Na diffirenza minzana|$1 diffirenzi minzani}} di {{PLURAL:$2|n'àutru utenti|àutri $2 utenti}} nun {{PLURAL:$1|ammustrata|ammustrati}})",
+       "diff-multi-manyusers": "({{PLURAL:$1|Na diffirenza minzana|$1 diffirenzi minzani}} di cchiossai di {{PLURAL:$2|n'àutru utenti|àutri $2 utenti}} nun {{PLURAL:$1|ammustrata|ammustrati}})",
        "difference-missing-revision": "{{PLURAL:$2|Na virsioni|$2 virsioni}} di sta diffirenza ($1) {{PLURAL:$2|nun fu attruvata|nun foru attruvati}}.\n\nStu fattu di sòlitu succedi quannu si segui nu lijami di diffirenza versu na pàggina chi fu cancillata.\nSi ponnu vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
-       "searchresults": "Risurtati dâ risciduta",
-       "searchresults-title": "Risurtati dâ risciduta di \"$1\"",
+       "searchresults": "Risurtati di l'arricerca",
+       "searchresults-title": "Risurtati di l'arricerca di \"$1\"",
        "titlematches": "Currispunnenzi ntê tìtuli dî pàggini",
        "textmatches": "Currispunnenzi ntô testu dî pàggini",
        "notextmatches": "Nudda currispunnenza ntô testu dî pàggini",
        "prevn": "li pricidenti {{PLURAL:$1|$1}}",
        "nextn": "li pròssimi {{PLURAL:$1|$1}}",
-       "prev-page": "pàggina arreti",
+       "prev-page": "pàggina pricidenti",
        "next-page": "pàggina appressu",
        "prevn-title": "{{PLURAL:$1|Risultatu pricidenti|$1 risultati pricedenti}}",
        "nextn-title": "{{PLURAL:$1|Risultatu successivu|$1 risultata successivi}}",
        "shown-title": "Ammustra {{PLURAL:$1|nu risultatu|$1 risultati}} pi pàggina",
        "viewprevnext": "Talìa ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "* Pàggina '''[[$1]]'''",
-       "searchmenu-new": "<strong>Crea la pàggina \"[[:$1]]\" supra a' sta wiki!<strong> {{PLURAL:$2|0=|Talìa macari la pàggina truvata câ to risciduta.|Talìa macari li risultati dâ to risciduta.}}",
+       "searchmenu-new": "<strong>Crea la pàggina \"[[:$1]]\" supra a sta wiki!<strong> {{PLURAL:$2|0=|Talìa macari la pàggina attruvata câ tò arricerca.|Talìa macari li pàggini attruvati câ tò arricerca.}}",
        "searchprofile-articles": "Pàggini di cuntinutu",
        "searchprofile-images": "File Multimidiali",
        "searchprofile-everything": "Tuttu",
        "searchprofile-advanced": "Avanzata",
-       "searchprofile-articles-tooltip": "Cerca nta $1",
+       "searchprofile-articles-tooltip": "Arricerca nta $1",
        "searchprofile-images-tooltip": "Cerca file",
        "searchprofile-everything-tooltip": "Cerca unnegghiè (puru ntî pàggini di discussioni)",
        "searchprofile-advanced-tooltip": "Cerca ntê namespace pirsunalizzati",
        "search-suggest": "Forsi circavutu: $1",
        "search-rewritten": "Sunnu ammustrati li risurtati pi $1. Mmeci cerca $2.",
        "search-interwiki-caption": "Pruggetti frati",
-       "search-interwiki-default": "Risultati di $1:",
+       "search-interwiki-default": "Risurtati di $1:",
        "search-interwiki-more": "(cchiù)",
        "search-relatedarticle": "Risultati currilati",
        "searchrelated": "currilati",
        "searchall": "tutti",
        "showingresults": "Ammustra nzinu a {{PLURAL:$1|'''1''' risurtatu|'''$1''' risurtati}} a pàrtiri dô nùmmuru '''$2'''.",
-       "showingresultsinrange": "Ccassutta {{PLURAL:$1|è ammustratu <strong>1</strong> risultatu|sunnu ammustrati <strong>$1</strong> risultati}} nta l'intirvallu di #<strong>$2</strong> a' #<strong>$3</strong>.",
-       "search-showingresults": "{{PLURAL:$4|Risultatu <strong>$1</strong> di <strong>$3</strong>|Risultati <strong>$1 - $2</strong> di <strong>$3</strong>}}",
+       "showingresultsinrange": "Ccassutta {{PLURAL:$1|è ammustratu <strong>1</strong> risultatu|sunnu ammustrati <strong>$1</strong> risurtati}} nta lu ntirvallu di #<strong>$2</strong> a #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Risurtatu <strong>$1</strong> di <strong>$3</strong>|Risurtati <strong>$1 - $2</strong> di <strong>$3</strong>}}",
        "search-nonefound": "La circata nun desi nuddu risurtatu.",
        "powersearch-legend": "Ricerca avanzata",
        "powersearch-ns": "Cerca ntê namespace:",
-       "powersearch-togglelabel": "Scègghîli:",
+       "powersearch-togglelabel": "Scegghi:",
        "powersearch-toggleall": "Tutti",
        "powersearch-togglenone": "Nuddu",
-       "powersearch-remember": "Ricòrditi la scelta pî risciduti futuri",
+       "powersearch-remember": "Arricòrdati la scigghiuta pi l'arricerchi futuri",
        "search-external": "Ricerca sterna",
        "searchdisabled": "La circata nterna di {{SITENAME}} hà statu disabbilitata. Nta stu mentri, poi usari la circata supra Google o supra àutri muturi di circata. Accura ca li sò ìnnici dê cuntinuti di {{SITENAME}} ponnu nun èssiri aggiurnati.",
-       "search-error": "Mmattìu n'erruri duranti a risciduta: $1",
+       "search-error": "Ammattìu n'erruri duranti l'arricerca: $1",
        "preferences": "Prifirenzi",
-       "mypreferences": "Li me prifirenzi",
+       "mypreferences": "Li mè prifirenzi",
        "prefs-edits": "Nùmmiru di canciamenti:",
-       "prefsnologintext2": "Hâ' tràsiri pi' canciari i to prifirenzi.",
+       "prefsnologintext2": "Hai a tràsiri pi canciari li tò prifirenzi.",
        "prefs-skin": "Peddi",
        "skin-preview": "Antiprima",
        "datedefault": "Nudda prifirenza",
        "prefs-rc": "Ùrtimi canciamenti",
        "prefs-watchlist": "Lista taliata",
        "prefs-editwatchlist": "Cancia la lista taliata",
-       "prefs-editwatchlist-label": "Cancia li vuci dâ to lista taliata:",
-       "prefs-editwatchlist-edit": "Talìa e leva tìtuli dâ to lista taliata",
+       "prefs-editwatchlist-label": "Cancia li vuci dâ tò lista taliata:",
+       "prefs-editwatchlist-edit": "Talìa e leva tìtuli dâ tò lista taliata",
        "prefs-editwatchlist-raw": "Cancia la lista taliata comu testu",
-       "prefs-editwatchlist-clear": "Svacanta la to lista taliata",
-       "prefs-watchlist-days": "Nùmmiru di jorna a' ammustrari ntâ lista taliata:",
+       "prefs-editwatchlist-clear": "Svacanta la tò lista taliata",
+       "prefs-watchlist-days": "Nùmmiru di jorna a ammustrari ntâ lista taliata:",
        "prefs-watchlist-days-max": "Màssimu $1 {{PLURAL:$1|jornu|jorna}}",
-       "prefs-watchlist-edits": "Nùmmiru di canciamenti a' ammustrari ntâ lista taliata estinnuta:",
+       "prefs-watchlist-edits": "Nùmmiru di canciamenti a ammustrari ntâ lista taliata stinnuta:",
        "prefs-watchlist-edits-max": "Nùmmiru màssimu: 1000",
-       "prefs-watchlist-token": "Token dâ me lista taliata:",
+       "prefs-watchlist-token": "Token dâ mè lista taliata:",
        "prefs-misc": "Varî",
        "prefs-resetpass": "Cancia password",
        "prefs-changeemail": "Cancia nnirizzu di posta elittrònica",
        "prefs-editing": "Canciamentu",
        "rows": "Righi:",
        "columns": "Culonni:",
-       "searchresultshead": "Risciduta",
-       "stub-threshold": "Sogghia pi furmattari na liami comu bozza ($1):",
+       "searchresultshead": "Arricerca",
+       "stub-threshold": "Sogghia pi furmattari nu liami comu bozza ($1):",
        "stub-threshold-sample-link": "esempiu",
        "stub-threshold-disabled": "Disattivatu",
-       "recentchangesdays": "Nùmmiru di jorna a' ammustrari nta l'ùrtimi cancaiamenti:",
+       "recentchangesdays": "Nùmmiru di jorna a ammustrari nta l'ùrtimi canciamenti:",
        "recentchangesdays-max": "(màssimu $1 {{PLURAL:$1|jornu|jorna}})",
-       "recentchangescount": "Nùmmiru di canciamenti a' ammustrari comu mpustazzioni pridifinuta:",
-       "prefs-help-recentchangescount": "Si rifirisci a' l'ùrtimi canciamenti, li crunuluggìi e li riggistra.",
-       "prefs-help-watchlist-token2": "Chista è la chiavi sigreta pû feed web dâ to lista taliata.\nCu è jè ch'a canusci po' lèggiri la to lista taliata, dunca nâ diffunniri.\nSi' ti giuva, [[Special:ResetTokens|la poi azzirari]].",
-       "savedprefs": "Li to prifirenzi foru sarvati.",
+       "recentchangescount": "Nùmmiru di canciamenti a ammustrari comu mpustazzioni pridifinuta:",
+       "prefs-help-recentchangescount": "S'arrifirisci a l'ùrtimi canciamenti, li crunuluggìi e li riggistri.",
+       "prefs-help-watchlist-token2": "Chista è la chiavi sigreta pû feed web dâ tò lista taliata.\nCuegghiè chi la canusci pò lèggiri la tò lista taliata, dunca nun la diffùnniri.\nSi t'aggiuva, [[Special:ResetTokens|la poi azzirari]].",
+       "savedprefs": "Li tò prifirenzi foru sarvati.",
        "timezonelegend": "Fusu urariu:",
        "localtime": "Ura lucali:",
        "timezoneuseserverdefault": "Adòpira l'ura pridifinuta dâ wiki ($1)",
        "timezoneuseoffset": "Àutru (spicificari diffirenza)",
        "servertime": "Ura dû server:",
-       "guesstimezone": "Pigghia chidda dû to browser",
+       "guesstimezone": "Pigghia chidda dû tò browser",
        "timezoneregion-africa": "Àfrica",
        "timezoneregion-america": "Amèrica",
        "timezoneregion-antarctica": "Antàrtidi",
        "timezoneregion-europe": "Europa",
        "timezoneregion-indian": "Ocèanu Innianu",
        "timezoneregion-pacific": "Ocèanu Pacìficu",
-       "allowemail": "Cunzenti la ricizzioni di posta elittrònica di l'autri utenti",
-       "prefs-searchoptions": "Risciduta",
+       "allowemail": "Cunzenti la ricizzioni di posta elittrònica di l'àutri utenti",
+       "prefs-searchoptions": "Arricerca",
        "prefs-namespaces": "Namespace",
        "default": "pridifinutu",
        "prefs-files": "File",
        "prefs-custom-css": "CSS pirsunalizzatu",
        "prefs-custom-js": "JavaScript pirsunalizzatu",
        "prefs-common-css-js": "CSS/JavaScript cunnivisu tra tutti li peddi:",
-       "prefs-reset-intro": "Poi adupirari sta pàggina pi' azzirari li to prifirenzi a' chiddi pridifinuti dû situ.\nSt'opirazzioni nun si po' annullari doppu ch'è fatta.",
+       "prefs-reset-intro": "Poi adupirari sta pàggina p'azzirari li tò prifirenzi a chiddi pridifinuti dû situ.\nSt'opirazzioni nun si pò annullari doppu ch'è fatta.",
        "prefs-emailconfirm-label": "Cunvàlida dâ posta elittrònica:",
        "youremail": "Nnirizzu di posta elittrònica:",
        "username": "{{GENDER:$1|Nomu utenti}}:",
        "prefs-memberingroups": "{{GENDER:$2|Membru|Membra}} {{PLURAL:$1|dû gruppu|dî gruppi}}:",
-       "prefs-registration": "Data dâ riggistrazioni:",
+       "prefs-registration": "Data dâ riggistrazzioni:",
        "yourrealname": "Nomu veru:",
        "yourlanguage": "Lingua:",
        "yourvariant": "Varianti dâ lingua pû cuntinutu:",
-       "prefs-help-variant": "L'ortugrafìa o varianti dâ lingua chi' prifirisci pi' mmustrari lu cuntinutu dî pàggini di sta wiki.",
+       "prefs-help-variant": "L'ortugrafìa o varianti dâ lingua chi prifirisci p'ammustrari lu cuntinutu dî pàggini di sta wiki.",
        "yournick": "Firma nova:",
-       "prefs-help-signature": "Li cummenta ntê pàggini di discussioni s'avìssiru a' firmari cu' \"<nowiki>~~~~</nowiki>\", ca veni cunvirtutu ntâ to firma cu' appressu la data.",
+       "prefs-help-signature": "Li cummenti ntê pàggini di discussioni s'avìssiru a firmari cu \"<nowiki>~~~~</nowiki>\", ca veni cunvirtutu ntâ tò firma cu appressu la data.",
        "badsig": "Firma grezza nun vàlida.\nCuntrolla l'etichetti HTML.",
-       "badsiglength": "La to firma è troppu longa.\nNun havi a' èssiri cchiu' longa di $1 {{PLURAL:$1|caràttiri|caràttiri}}.",
+       "badsiglength": "La tò firma è troppu longa.\nNun havi a èssiri cchiù longa di $1 {{PLURAL:$1|caràttiri|caràttiri}}.",
        "yourgender": "Comu prifirisci èssiri discrivutu?",
        "gender-unknown": "Quannu t'ammintua, si pò, lu prugramma adòpira lu gèniri grammaticali nèutru",
-       "gender-male": "N'auturi di pàggini dâ wiki",
-       "gender-female": "N'autrici di pàggini dâ wiki",
-       "prefs-help-gender": "Mpustari sta prifirenza è facultativu.\nU software adòpira u so valuri pi' parrari cu' tia, e di tia a' l'autri, facennu usu dû gèniri grammaticali currettu.\nSta nfurmazzioni sarravi pùbblica.",
+       "gender-male": "È riggistratu supra {{SITENAME}}",
+       "gender-female": "È riggistrata supra {{SITENAME}}",
+       "prefs-help-gender": "Mpustari sta prifirenza è facultativu.\nLu software adòpira lu sò valuri pi parrari cu tìa, e di tìa a l'àutri, facennu usu dû gèniri grammaticali currettu.\nSta nfurmazzioni è pùbblica.",
        "email": "Nnirizzu di posta elittrònica",
-       "prefs-help-realname": "Lu nomu veru è facultativu.\nSiddu scegghî di furnìrilu, veni adupiratu pi' dàriti crèditu dû tò travagghiu.",
-       "prefs-help-email": "Lu nnirizzu di posta elittrònica è facultativu, ma po' giuvari p'azzirari la password, ntô casu chi' tâ scordi.",
+       "prefs-help-realname": "Lu nomu veru è facultativu\nSiddu scegghi di furnìrilu, veni adupiratu pi' dàriti crèditu dû tò travagghiu.",
+       "prefs-help-email": "Lu nnirizzu di posta elittrònica è facultativu, ma pò aggiuvari p'azzirari la password, ntô casu chi ti la scordi.",
        "prefs-help-email-others": "Poi videmma scègghiri di pirmèttiri ca l'àutri ti cuntàttanu pi posta elittrònica a pàrtiri dî lijami chi s'attròvanu ntê tò pàggini d'utenti o di discussioni.\nLu tò nnirizzu nun veni rivilatu quannu l'àutri utenti ti cuntàttanu.",
        "prefs-help-email-required": "Lu nnirizzu di posta elittrònica è obbligatoriu.",
        "prefs-info": "Nfurmazzioni essinziali",
-       "prefs-i18n": "Intirnazziunalizzazioni",
+       "prefs-i18n": "Ntirnazziunalizzazzioni",
        "prefs-signature": "Firma",
        "prefs-dateformat": "Furmatu dâ data",
        "prefs-timeoffset": "Diffirenza d'urariu",
        "prefs-displaywatchlist": "Opzioni di visualizzazzioni",
        "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Diffirenzi",
-       "prefs-help-prefershttps": "Sta prifirenza faravi effettu â to pròssima trasuta.",
-       "prefswarning-warning": "Hai fattu canciamenti ê to prifirenzi chi' ancora nun furu sarvati.\nSi' ti nni vai di sta pàggina senza carcari \"$1\" i to prifirenzi nun sarannu sarvati.",
-       "prefs-tabs-navigation-hint": "Cunsigghiu: Poi adupirari i buttuni fileccia manca e' dritta pi' navigari tra dî linguetti ntâ lista.",
-       "email-address-validity-valid": "U nnirizzu e-mail pari bonu",
-       "email-address-validity-invalid": "Nsirisci nu nnirizzu e-mail bonu",
+       "prefs-help-prefershttps": "Sta prifirenza fa effettu â tò pròssima trasuta.",
+       "prefswarning-warning": "Facisti canciamenti ê tò prifirenzi chi ancora nun foru sarvati.\nSi ti nni vai di sta pàggina senza carcari \"$1\" li tò prifirenzi nun sunnu sarvati.",
+       "prefs-tabs-navigation-hint": "Cunzigghiu: Poi adupirari li buttuna fileccia a manu manca e a manu dritta pi navigari tra dî linguetti ntâ lista.",
+       "email-address-validity-valid": "Lu nnirizzu e-mail pari bonu",
+       "email-address-validity-invalid": "Nzirisci nu nnirizzu e-mail bonu",
        "userrights": "Gistioni dî dritti di l'utenti",
        "userrights-lookup-user": "Gistisci li gruppi di l'utenti",
        "userrights-user-editname": "Metti nu nomu utenti:",
        "userrights-editusergroup": "Cancia li gruppi di l'utenti",
        "saveusergroups": "Sarva li gruppi di l'utenti",
        "userrights-groupsmember": "Membru di:",
-       "userrights-groupsmember-auto": "Membru implìcitu di:",
-       "userrights-groups-help": "Poi canciari li gruppi unni è assignatu l'utenti:\n* Na casedda scigghiuta voli diri chi' l'utenti fa' parti dû gruppu.\n* Na casedda nun scigghiuta voli diri chi' l'utenti nun fa' parti dû gruppu.\n* Lu sìmmulu * voli diri chi' nun si po' cchiu' luvari l'utenti dûn gruppu na vota chi' fu' agghiunciutu, o vici versa.",
+       "userrights-groupsmember-auto": "Membru mplìcitu di:",
+       "userrights-groups-help": "Poi canciari li gruppi unni è assignatu l'utenti:\n* Na casedda scigghiuta voli diri chi l'utenti fa parti dû gruppu.\n* Na casedda nun scigghiuta voli diri chi l'utenti nun fa parti dû gruppu.\n* Lu sìmmulu * voli diri chi nun si pò cchiù livari l'utenti dûn gruppu na vota chi fu agghiunciutu, o vici versa.",
        "userrights-reason": "Mutivu:",
-       "userrights-no-interwiki": "Nun hai lu pirmissu di canciari li dritti di l'utenti nta l'autri wiki.",
+       "userrights-no-interwiki": "Nun hai lu pirmissu di canciari li dritti di l'utenti nta l'àutri wiki.",
        "userrights-nodatabase": "La basi di dati $1 nun esisti o nun è lucali.",
-       "userrights-nologin": "Hâ' [[Special:UserLogin|tràsiri]] cûn cuntu d'amministraturi pi' putiri assignari li dritti di l'utenti.",
-       "userrights-notallowed": "Nun hai lu pirmissu di agghiùnciri o livàri diritti a' l'utenti.",
-       "userrights-changeable-col": "Gruppi chi' si ponnu canciari",
-       "userrights-unchangeable-col": "Gruppi chi' nun si ponnu canciari",
-       "userrights-conflict": "Cunflittu di canciamentu dî dritti di l'utenti! Pi' favuri cuntrolla e cunfirma li to canciamenti.",
-       "userrights-removed-self": "Riniscisti a' livàriti li to stissi dritti. Pi' chistu, nun hai cchiu' l'accessu a' sta pàggina.",
+       "userrights-nologin": "Hai a [[Special:UserLogin|tràsiri]] cûn cuntu d'amministraturi pi putiri assignari li dritti di l'utenti.",
+       "userrights-notallowed": "Nun hai lu pirmissu di agghiùnciri o livari dritti a l'utenti.",
+       "userrights-changeable-col": "Gruppi chi si ponnu canciari",
+       "userrights-unchangeable-col": "Gruppi chi nun si ponnu canciari",
+       "userrights-conflict": "Cunflittu di canciamentu dî dritti di l'utenti! Pi favuri cuntrolla e cunferma li tò canciamenti.",
+       "userrights-removed-self": "Arriniscisti a livàriti li tò stissi dritti. Pi chistu, nun hai cchiù l'accessu a sta pàggina.",
        "group": "Gruppu:",
        "group-user": "Utenti",
        "group-autoconfirmed": "Utenti autu-cunfirmati",
        "grouppage-suppress": "{{ns:project}}:Supravisura",
        "right-read": "Lèggiri pàggini",
        "right-edit": "Canciari pàggini",
-       "right-createpage": "Criari pàggini (chi' nun sunnu di discussioni)",
+       "right-createpage": "Criari pàggini (chi nun sunnu di discussioni)",
        "right-createtalk": "Criari pàggini di discussioni",
        "right-createaccount": "Criari cunti novi di l'utenti",
        "right-minoredit": "Marcari canciamenti comu nichi",
        "right-move": "Spustari pàggini",
-       "right-move-subpages": "Spustari pàggini chî so suttapàggini",
+       "right-move-subpages": "Spustari pàggini chî sò suttapàggini",
        "right-move-rootuserpages": "Spustari pàggini ràdica di l'utenti",
        "right-move-categorypages": "Spustari pàggini di catigurìa",
        "right-movefile": "Spustari file",
-       "right-suppressredirect": "Nun criari rimanni ô postu dâ pàggina origginali quannu si spostunu pàggini",
+       "right-suppressredirect": "Nun criari rimanni ô postu dâ pàggina origginali quannu si spòstanu pàggini",
        "right-upload": "Carricari file",
        "right-reupload": "Suprascrìviri file esistenti",
        "right-reupload-own": "Suprascrìviri file esistenti carricati dû stissu utenti",
        "right-reupload-shared": "Suprascrìviri lucalmenti file prisenti ntô dipòsitu cunnivisu",
        "right-upload_by_url": "Carricari file partennu di n'URL",
-       "right-purge": "Svacantari la cache dû situ di na pàggina senza cunfirma",
-       "right-autoconfirmed": "Nun èssiri suggettu ê lìmiti basati supra a' l'IP",
+       "right-purge": "Svacantari la cache dû situ di na pàggina senza cunferma",
+       "right-autoconfirmed": "Nun èssiri suggettu ê lìmiti basati supra a l'IP",
        "right-bot": "Èssiri trattatu comu nu prucessu autumàticu",
        "right-nominornewtalk": "Nun fari pàrtiri l'avvisu di misaggiu novu quannu si fannu canciamenti nichi ntê pàggini di discussioni",
-       "right-apihighlimits": "Avìri limiti cchiu' auti pi' li ntirrugazzioni a' menzu API",
-       "right-writeapi": "Aduprirari l'API in scrittura",
+       "right-apihighlimits": "Aviri lìmiti cchiù àuti pi li ntirrugazzioni a menzu API",
+       "right-writeapi": "Adupirari l'API n scrittura",
        "right-delete": "Cancillari pàggini",
        "right-bigdelete": "Cancillari pàggini cu la crunuluggìa longa",
        "right-deletelogentry": "Cancillari e annullari la cancillazzioni di vuci di riggistru spicìfichi",
        "right-deleterevision": "Cancillari e annullari la cancillazzioni di virsioni spicìfichi dî pàggini",
-       "right-deletedhistory": "Vìdiri vuci dâ crunuluggìa cancillati, senza dû so testu assuciatu",
+       "right-deletedhistory": "Vìdiri vuci dâ crunuluggìa cancillati, senza dû sò testu assuciatu",
        "right-deletedtext": "Vìdiri lu testu cancillatu e li canciamenti tra dî virsioni cancillati",
        "right-browsearchive": "Circari pàggini cancillati",
        "right-undelete": "Annullari la cancillazzioni di pàggini",
-       "right-suppressrevision": "Vìdiri, ammucciari e ammustrari virsioni spicìfichi di pàggini di quali utenti è jè",
-       "right-viewsuppressed": "Vìdiri virsioni ammucciati a' quali utenti è jè",
-       "right-suppressionlog": "Taliari li riggistra privati",
-       "right-block": "Bluccari autri utenti pi' nun fàricci fari canciamenti",
-       "right-blockemail": "Bluccari n'utenti pi' nun fàricci mannari posta elittrònica",
-       "right-hideuser": "Bluccari nu nomu utenti, ammucciannulu ô pùbblicu",
+       "right-suppressrevision": "Vìdiri, ammucciari e ammustrari virsioni spicìfichi di pàggini d'utenti qualegghiè",
+       "right-viewsuppressed": "Vìdiri virsioni ammucciati a utenti qualegghiè",
+       "right-suppressionlog": "Taliari li riggistri privati",
+       "right-block": "Bluccari àutri utenti pi nun fàricci fari canciamenti",
+       "right-blockemail": "Bluccari n'utenti pi nun fàricci mannari posta elittrònica",
+       "right-hideuser": "Bluccari nu nomu utenti, ammucciànnulu ô pùbblicu",
        "right-ipblock-exempt": "Sautari li blocchi di IP, autumàtici e di ntirvalli di IP",
        "right-proxyunbannable": "Sautari li blocchi autumàtici dî proxy",
        "right-unblockself": "Sbluccàrisi iddu stissu",
-       "right-protect": "Canciari li liveddi di prutizzioni e mudificari pàggini prutetti a' cascata",
-       "right-editprotected": "Canciari pàggini cu' prutizzioni \"{{int:protect-level-sysop}}\"",
-       "right-editsemiprotected": "Canciari pàggini cu' prutizzioni \"{{int:protect-level-autoconfirmed}}\"",
-       "right-editcontentmodel": "Canciari u mudellu di cuntinutu di na pàggina",
+       "right-protect": "Canciari li liveddi di prutizzioni e canciari pàggini prutetti a cascata",
+       "right-editprotected": "Canciari pàggini cu prutizzioni \"{{int:protect-level-sysop}}\"",
+       "right-editsemiprotected": "Canciari pàggini cu prutizzioni \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Canciari lu mudellu di cuntinutu di na pàggina",
        "right-editinterface": "Canciari la ntirfaccia utenti",
-       "right-editusercssjs": "Canciari li file CSS e JavaScript di l'autri utenti",
+       "right-editusercssjs": "Canciari li file CSS e JavaScript di l'àutri utenti",
        "right-editusercss": "Canciari li file CSS di l'àutri utenti",
        "right-edituserjs": "Canciari li file JavaScript di l'àutri utenti",
        "right-editmyusercss": "Canciari li file CSS dû propiu utenti",
        "right-editmyuserjs": "Canciari li file JavaScript dû propiu utenti",
        "right-viewmywatchlist": "Taliari la propia lista taliata",
-       "right-editmywatchlist": "Canciari la propia lista taliata. Nota chi' certi azzioni cci ponnu agghiùnciri pàggini macari senza di stu drittu.",
-       "right-viewmyprivateinfo": "Taliari li propî dati risirvati (ad esempiu lu nnirizzu di posta elittrònica e lu nomu veru)",
-       "right-editmyprivateinfo": "Canciari li propî dati risirvati (ad esempiu lu nnirizzu di posta elittrònica e lu nomu veru)",
+       "right-editmywatchlist": "Canciari la propia lista taliata. Nota chi certi azzioni ci ponnu agghiùnciri pàggini macari senza di stu drittu.",
+       "right-viewmyprivateinfo": "Taliari li propî dati risirvati (p'esempiu lu nnirizzu di posta elittrònica e lu nomu veru)",
+       "right-editmyprivateinfo": "Canciari li propî dati risirvati (p'esempiu lu nnirizzu di posta elittrònica e lu nomu veru)",
        "right-editmyoptions": "Canciari li propî prifirenzi",
-       "right-rollback": "Canciari lestu n'arreri li mudìfichi di l'ùltimu utenti chi' canciau na certa pàggina",
+       "right-rollback": "Canciari lestu n'arreri li canciamenti di l'ùrtimu utenti chi canciau na certa pàggina",
        "right-markbotedits": "Marcari li canciamenti n'arreri comu fatti dî bot",
-       "right-noratelimit": "Nun èssiri suggettu ô limiti di azzioni",
-       "right-import": "Mpùrtari pàggini di autri wiki",
-       "right-importupload": "Mpùrtari pàggini di nu carricamentu di file",
-       "right-patrol": "Marcari li canciamenti di l'autri utenti comu battugghiati",
-       "right-autopatrol": "Marcari autumaticamenti li propî canciamenti comu battugghiati",
-       "right-patrolmarks": "Vìdiri li marcaturi di battugghia nta l'ùrtimi canciamenti",
-       "right-unwatchedpages": "Vìdiri na lista dî pàggini chi' nuddu talìa",
+       "right-noratelimit": "Nun èssiri suggettu ô lìmiti d'azzioni",
+       "right-import": "Mpurtari pàggini d'àutri wiki",
+       "right-importupload": "Mporta pàggini di nu carricamentu di file",
+       "right-patrol": "Marcari li canciamenti di l'àutri utenti comu virificati",
+       "right-autopatrol": "Marcari autumaticamenti li propî canciamenti comu virificati",
+       "right-patrolmarks": "Vìdiri li marcaturi di virìfica nta l'ùrtimi canciamenti",
+       "right-unwatchedpages": "Vìdiri na lista dî pàggini chi nuddu talìa",
        "right-mergehistory": "Jùnciri la crunuluggìa dî pàggini",
        "right-userrights": "Canciari tutti li dritti di l'utenti",
-       "right-userrights-interwiki": "Canciari li dritti di l'utenti di autri wiki",
+       "right-userrights-interwiki": "Canciari li dritti di l'utenti dutri wiki",
        "right-siteadmin": "Bluccari e sbluccari la basi di dati",
        "right-override-export-depth": "Espurtari pàggini cu li pàggini culligati nfina ô quintu liveddu",
-       "right-sendemail": "Mannari missaggi di posta elittrònica a' l'autri utenti",
+       "right-sendemail": "Mannari missaggi di posta elittrònica a l'àutri utenti",
        "right-passwordreset": "Taliari li missaggi di posta elittrònica d'azziramentu dî password",
        "right-managechangetags": "Criari e cancillari [[Special:Tags|etichetti]] dâ basi di dati",
        "right-applychangetags": "Appizzari [[Special:Tags|etichetti]] ntê propî canciamenti",
-       "right-changetags": "Agghiùnciri e livari a' piaciri [[Special:Tags|etichetti]] dî virsioni e dî vuci di riggistru",
+       "right-changetags": "Agghiùnciri e livari a piaciri [[Special:Tags|etichetti]] dî virsioni e dî vuci di riggistru",
        "newuserlogpage": "Riggistru di l'utenti novi",
        "newuserlogpagetext": "Chistu è nu riggistru di li criazzioni di utenti novi.",
        "rightslog": "Riggistru dî dritti di l'utenti",
        "action-history": "taliari la crunuluggìa di sta pàggina",
        "action-minoredit": "marcari stu canciamentu comu nicu",
        "action-move": "spustari sta pàggina",
-       "action-move-subpages": "spustari sta pàggina e li so suttapàggini",
+       "action-move-subpages": "spustari sta pàggina e li sò suttapàggini",
        "action-move-rootuserpages": "spustari li pàggini ràdica di l'utenti",
        "action-move-categorypages": "spustari pàggini di catigurìa",
        "action-movefile": "spustari stu file",
        "action-reupload": "suprascrìviri stu file esistenti",
        "action-reupload-shared": "suprascrivìri stu file prisenti ntô dipòsitu cunnivisu",
        "action-upload_by_url": "carricari stu file di n'URL",
-       "action-writeapi": "adupirari l'API pi' scrìviri",
+       "action-writeapi": "adupirari l'API pi scrìviri",
        "action-delete": "cancillari sta pàggina",
        "action-deleterevision": "cancillari sta virsioni",
        "action-deletedhistory": "taliari la crunuluggìa cancillata di sta pàggina",
        "action-browsearchive": "circari pàggini cancillati",
        "action-undelete": "annullari la cancillazzioni di sta pàggina",
        "action-suppressrevision": "rivìdiri e ripristinari sta virsioni ammucciata",
-       "action-suppressionlog": "vìdiri stu riggìstru privatu",
-       "action-block": "bluccari st'utenti pi' nun fàricci fari canciamenti",
-       "action-protect": "canciari li livedda di prutizzioni di sta pàggina",
-       "action-rollback": "canciari lestu n'arreri li mudìfichi di l'ùltimu utenti chi' canciau na certa pàggina",
+       "action-suppressionlog": "vìdiri stu riggistru privatu",
+       "action-block": "bluccari st'utenti pi nun fàricci fari canciamenti",
+       "action-protect": "canciari li liveddi di prutizzioni di sta pàggina",
+       "action-rollback": "canciari lestu n'arreri li canciamenti di l'ùrtimu utenti chi canciau na certa pàggina",
        "action-import": "mpurtari pàggini di n'àutra wiki",
        "action-importupload": "mpurtari pàggini di nu carricamentu di file",
-       "action-patrol": "marcari li canciamenti di l'autri utenti comu battugghiati",
-       "action-autopatrol": "marcari li tò canci comu battugghiati",
-       "action-unwatchedpages": "vìdiri la lista dî pàggini chi' nuddu talìa",
+       "action-patrol": "marcari li canciamenti di l'àutri utenti comu virificati",
+       "action-autopatrol": "marcari li tò canci comu virificati",
+       "action-unwatchedpages": "vìdiri la lista dî pàggini chi nuddu talìa",
        "action-mergehistory": "jùnciri la crunuluggìa di sta pàggina",
        "action-userrights": "canciari tutti li dritti di l'utenti",
-       "action-userrights-interwiki": "canciari li dritti di l'utenti supra a autri wiki",
+       "action-userrights-interwiki": "canciari li dritti di l'utenti supra a àutri wiki",
        "action-siteadmin": "bluccari e sbluccari la basi di dati",
        "action-sendemail": "mannari missaggi di posta elittrònica",
-       "action-editmywatchlist": "canciari la to lista taliata",
-       "action-viewmywatchlist": "taliari la to lista taliata",
-       "action-viewmyprivateinfo": "taliari li to nfurmazzioni risirvati",
-       "action-editmyprivateinfo": "canciari li to nfurmazzioni risirvati",
+       "action-editmywatchlist": "canciari la tò lista taliata",
+       "action-viewmywatchlist": "taliari la tò lista taliata",
+       "action-viewmyprivateinfo": "taliari li tò nfurmazzioni risirvati",
+       "action-editmyprivateinfo": "canciari li tò nfurmazzioni risirvati",
        "action-editcontentmodel": "canciari lu mudellu di cuntinutu di na pàggina",
        "action-managechangetags": "criari e cancillari etichetti dâ basi di dati",
-       "action-applychangetags": "appizzari etichetti ntê to canciamenti",
-       "action-changetags": "agghiùnciri e livari a' piaciri etichetti dî virsioni e dî vuci di riggistru",
+       "action-applychangetags": "appizzari etichetti ntê tò canciamenti",
+       "action-changetags": "agghiùnciri e livari a piaciri etichetti dî virsioni e dî vuci di riggistru",
        "nchanges": "$1 {{PLURAL:$1|canciamentu|canciamenti}}",
-       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|di l'ùltima vìsita}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|di l'ùrtima vìsita}}",
        "enhancedrc-history": "crunuluggìa",
        "recentchanges": "Ùrtimi canciamenti",
-       "recentchanges-legend": "Opzioni pi' l'ùrtimi canciamenti",
-       "recentchanges-summary": "Sta pàggina prisenta li canciamenti cchiu' ricenti ê cuntinuti dâ wiki.",
-       "recentchanges-noresult": "Nuddu canciamentu ntô pirìudu spicificatu currispunni a' sti criteria.",
-       "recentchanges-feed-description": "Stu feed prisenta li canciamenti cchiu' ricenti ê cuntinuti dâ wiki.",
+       "recentchanges-legend": "Opzioni pi l'ùrtimi canciamenti",
+       "recentchanges-summary": "Sta pàggina prisenta li canciamenti cchiù ricenti ê cuntinuti dâ wiki.",
+       "recentchanges-noresult": "Nuddu canciamentu ntô pirìudu spicificatu currispunni a sti criteri.",
+       "recentchanges-feed-description": "Stu feed prisenta li canciamenti cchiù ricenti ê cuntinuti dâ wiki.",
        "recentchanges-label-newpage": "Stu canciamentu criau na pàggina nova",
        "recentchanges-label-minor": "Chistu è nu canciamentu nicu",
        "recentchanges-label-bot": "Stu canciamentu fu fattu di nu bot",
-       "recentchanges-label-unpatrolled": "Stu canciamentu ancora nun havi statu battugghiatu",
+       "recentchanges-label-unpatrolled": "Stu canciamentu ancora nun fu virificatu",
        "recentchanges-label-plusminus": "La grannizza dâ pàggina canciau di stu nùmmiru di byte",
-       "recentchanges-legend-heading": "'''Legenda:'''",
+       "recentchanges-legend-heading": "'''Ligenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (talìa puru [[Special:NewPages|la lista dî pàggini novi]])",
-       "rcnotefrom": "Ccassutta {{PLURAL:$5|cc'è lu canciamentu|cci su' li canciamenti}} a' pàrtiri dû <strong>$3, $4</strong> (nn'havi ammustrati nfina a' <strong>$1</strong>).",
-       "rclistfrom": "Ammustra li canciamenti novi a' pàrtiri dû $3 $2",
+       "rcnotefrom": "Ccassutta {{PLURAL:$5|c'è lu canciamentu|ci sù li canciamenti}} a pàrtiri dû <strong>$3, $4</strong> (nn'havi ammustrati nfina a <strong>$1</strong>).",
+       "rclistfrom": "Ammustra li canciamenti novi a pàrtiri dû $3 $2",
        "rcshowhideminor": "$1 li canciamenti nichi",
        "rcshowhideminor-show": "Ammustra",
        "rcshowhideminor-hide": "Ammuccia",
        "rcshowhideanons": "$1 l'utenti anònimi",
        "rcshowhideanons-show": "Ammustra",
        "rcshowhideanons-hide": "Ammuccia",
-       "rcshowhidepatr": "$1 li canciamenti battugghiati",
+       "rcshowhidepatr": "$1 li canciamenti virificati",
        "rcshowhidepatr-show": "Ammustra",
        "rcshowhidepatr-hide": "Ammuccia",
-       "rcshowhidemine": "$1 li me canciamenti",
+       "rcshowhidemine": "$1 li mè canciamenti",
        "rcshowhidemine-show": "Ammustra",
        "rcshowhidemine-hide": "Ammuccia",
        "rclinks": "Ammustra l'ùrtimi $1 canciamenti nta l'ùrtimi $2 jorna <br />$3",
        "recentchangeslinked-title": "Canciamenti culligati a \"$1\"",
        "recentchangeslinked-summary": "Chista pàggina spiciali ammustra li canciamenti cchiù ricenti ê pàggini culligati a chidda spicificata. Li pàggini taliati ni la tou [[Special:Watchlist|lista taliata]] sunu evidenziati 'n '''grassettu'''.",
        "recentchangeslinked-page": "Nomu dâ pàggina:",
-       "recentchangeslinked-to": "Ammustra sulu li canciamenti ê pàggini culligati a' chidda spicificata",
+       "recentchangeslinked-to": "Ammustra sulu li canciamenti ê pàggini culligati a chidda spicificata",
        "upload": "Càrrica nu file",
        "uploadbtn": "Càrrica",
        "reuploaddesc": "Annulla lu carricamentu e torna a lu mòdulu dî carricamenti",
        "upload-tryagain": "Manna la discrizzioni canciata dû file",
        "uploadnologin": "Nun trasutu",
-       "uploadnologintext": "Hâ' $1 pi' putiri carricari file.",
-       "upload_directory_missing": "La cartella dî carricamenti ($1) nun esisti lu server web nun riniscìu a' criàrila.",
+       "uploadnologintext": "È nicissariu $1 pi putiri carricari file.",
+       "upload_directory_missing": "La cartella dî carricamenti ($1) nun esisti lu server web nun arriniscìu a criàrila.",
        "upload_directory_read_only": "La cartella dî carricamenti ($1) nun è scrivìbbili dû server web.",
        "uploaderror": "Erruri ntô carricamentu",
-       "upload-recreate-warning": "<strong>Accura: Nu file cu' ddu nomu fu' cancillatu o spustatu.</strong>\n\nPi' cummudità ccassutta cci su' li riggistra dî cancillazzioni e dî spustamenti di sta pàggina:",
+       "upload-recreate-warning": "<strong>Accura: Nu file cu ddu nomu fu cancillatu o spustatu.</strong>\n\nPi cummudità ccassutta ci sù li riggistri dî cancillazzioni e dî spustamenti di sta pàggina:",
        "uploadtext": "Usa lu mòdulu ccà sutta pi carricari file novi. Pi vìdiri o circari li file già carricati, talìa lu [[Special:FileList|log dî file carricati]]. Carricamenti di file e di virsioni novi di file sunnu riggistrati ntô [[Special:Log/upload|log di l'upload]], li cancillazzioni di file sunnu\nriggistrati [[Special:Log/delete|ccà]].\n\nPi nziriri nu file nta na pàggina, fai nu lijami accussì:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' p'usari la virsioni ntera dû file\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testu altirnativu]]</nowiki></code>''' p'usari na virsioni làrica 200 pixel nziruta nta nu box, alliniata a manu manca e cu 'testu altirnativu' comu didascalìa\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' pi culligari direttamenti a lu file senza vidìrilu.",
-       "upload-permitted": "{{PLURAL:$2|Tipu|tipi}} di file {{PLURAL:$2|cunsintutu|cunsintuti}}: $1.",
-       "upload-preferred": "{{PLURAL:$2|Tipu|tipi}} di file {{PLURAL:$2|cunsigghiatu|cunsigghiati}}: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipu|tipi}} di file {{PLURAL:$2|cunzintutu|cunzintuti}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipu|tipi}} di file {{PLURAL:$2|cunzigghiatu|cunzigghiati}}: $1.",
        "upload-prohibited": "{{PLURAL:$2|Tipu|tipi}} di file {{PLURAL:$2|pruibbutu|pruibbuti}}: $1.",
        "uploadlogpage": "Riggistru dî file carricati",
-       "uploadlogpagetext": "Ccà sutta cc'è la lista di l'ùrtimi file carricati.\nTalìa la [[Special:NewFiles|gallarìa dî file novi]] pûn risucuntu cchiu' visuali.",
+       "uploadlogpagetext": "Ccà sutta c'è la lista di l'ùrtimi file carricati.\nTalìa la [[Special:NewFiles|jallarìa dî file novi]] pûn risucuntu cchiù visuali.",
        "filename": "Nomu dû file",
        "filedesc": "Discrizzioni",
        "fileuploadsummary": "Discrizzioni:",
        "filestatus": "Statu dû drittu d'auturi:",
        "filesource": "Fonti:",
        "ignorewarning": "Gnora l'avvisu e sarva lu file lu stissu",
-       "ignorewarnings": "Gnora l'avvirtimenti eventuali",
-       "minlength1": "Li nomi dî file hannu a' èssiri fatti di almenu na lìttra.",
-       "illegalfilename": "Lu nomu dû file \"$1\" cunteni caràttiri chi' nun su' cunsintuti ntê tìtuli dî pàggini.\nPi' favuri cancia nomu ô file e prova e càrriculu n'autra vota.",
-       "filename-toolong": "Li nomi dî file nun ponnu èssiri cchiù' longhi di 240 byte.",
-       "badfilename": "Lu nomu dû file fu' canciatu nta \"$1\".",
-       "filetype-mime-mismatch": "L'estinsioni dû file, \".$1\", nun currispunni ô tipu MIME rilivatu ntô file ($2).",
+       "ignorewarnings": "Gnora l'avvirtimenti evintuali",
+       "minlength1": "Li nomi dî file hannu a èssiri fatti d'armenu na littra.",
+       "illegalfilename": "Lu nomu dû file \"$1\" cunteni caràttiri chi nun sù cunzintuti ntê tìtuli dî pàggini.\nPi favuri cancia nomu ô file e prova e càrricalu n'àutra vota.",
+       "filename-toolong": "Li nomi dî file nun ponnu èssiri cchiù longhi di 240 byte.",
+       "badfilename": "Lu nomu dû file fu canciatu nta \"$1\".",
+       "filetype-mime-mismatch": "L'estinzioni dû file, \".$1\", nun currispunni ô tipu MIME rilivatu ntô file ($2).",
        "filetype-badmime": "Nun è cunzintutu di carricari file di tipu MIME \"$1\".",
-       "filetype-bad-ie-mime": "Nun si po' carricari stu file pirchì Internet Explorer lu canuscissi comu \"$1\", ca è nu tipu di file nun cunsintutu e ca putissi èssiri piriculusu.",
-       "filetype-unwanted-type": "<strong>\".$1\"</strong> è nu tipu di file nun vulutu.\n{{PLURAL:$3|Lu tipu di file cunsigghiatu è|Li tipi di file cunsigghiati sunnu}} $2.",
-       "filetype-banned-type": "<strong>\".$1\"</strong> {{PLURAL:$4|nun è un tipu di file cunsintutu|nun su' tipi di file cunsintuti}}.\n{{PLURAL:$3|U tipu di file cunsintutu è|I tipi di file cunsintuti su'}} $2.",
-       "filetype-missing": "Lu file nun havi estinsioni (ad esempiu \".jpg\").",
-       "empty-file": "Lu file chi' mannasti era vacanti.",
-       "file-too-large": "Lu file chi' mannasti era troppu grossu.",
+       "filetype-bad-ie-mime": "Nun si pò carricari stu file pirchì Internet Explorer lu canuscissi comu \"$1\", ca è nu tipu di file nun cunzintutu e ca putissi èssiri piriculusu.",
+       "filetype-unwanted-type": "<strong>\".$1\"</strong> è nu tipu di file nun vulutu.\n{{PLURAL:$3|Lu tipu di file cunzigghiatu è|Li tipi di file cunzigghiati sunnu}} $2.",
+       "filetype-banned-type": "<strong>\".$1\"</strong> {{PLURAL:$4|nun è un tipu di file cunzintutu|nun sunnu tipi di file cunzintuti}}.\n{{PLURAL:$3|Lu tipu di file cunzintutu è|Li tipi di file cunzintuti sunnu}} $2.",
+       "filetype-missing": "Lu file nun havi stinzioni (p'esempiu \".jpg\").",
+       "empty-file": "Lu file chi mannasti era vacanti.",
+       "file-too-large": "Lu file chi mannasti era troppu grossu.",
        "filename-tooshort": "Lu nomu dû file è troppu curtu.",
        "filetype-banned": "Stu tipu di file è sbannutu.",
        "verification-error": "Stu file nun passau â virìfica.",
-       "hookaborted": "Lu canciamentu chi' stavi pruvannu a' fari fu' annullatu di n'estinsioni.",
-       "illegal-filename": "Stu nomu dû file nun è cunsintutu.",
-       "overwrite": "Suprascrìviri nu file chi' già esisti nun è cunsintutu.",
-       "unknown-error": "Mmattìu n'erruri scanusciutu.",
-       "tmp-create-error": "Nun fu pussìbbili criari u file timpuraniu.",
-       "tmp-write-error": "Erruri ntâ scrittura dû file timpuraniu.",
-       "large-file": "Si raccumanna di nun passari la grannizza di $1 p'ognin file; stu file è granni $2.",
-       "largefileserver": "Stu file è cchiu' grossu di quantu lu server è cunfiguratu a' accittari.",
-       "emptyfile": "Lu file chi' carricasti pari vacanti.\nChistu putissi èssiri pruvucatu di nu sbagghiu ntô nomu dû file.\nCuntrolla ca pi' davera voi carricari stu file.",
-       "windows-nonascii-filename": "Sta wiki nun supporta i nomi di file cu' caràttiri spiciali.",
-       "fileexists": "Nu file cu' stu nomu già esisti, pi' favuri cuntrolla <strong>[[:$1]]</strong> si' nun si' {{GENDER:|sicuru|sicura}} ch'u voi canciari.\n[[$1|thumb]]",
-       "filepageexists": "La pàggina dâ discrizzioni di stu file fu' ggià criata ô nnirizzu <strong>[[:$1]]</strong>, ma pi' com'ora nun c'è nuddu file cu' stu nomu.\nLu riassuntu chi' immetti nun cumpariravi ntâ pàggina dâ discrizzioni.\nPi' fàrilu cumpàriri, avirrai a' mudificari a' manu dda pàggina.\n[[$1|thumb]]",
-       "fileexists-extension": "Nu file cûn nomu simili già esisti: [[$2|thumb]]\n* Nomu dû file carricannu: <strong>[[:$1]]</strong>\n* Nomu dû file esistenti: <strong>[[:$2]]</strong>\nForsi voi scègghîri un nomu cchiù' distintivu?",
+       "hookaborted": "Lu canciamentu chi stavi pruvannu a fari fu annullatu di n'estinzioni.",
+       "illegal-filename": "Stu nomu dû file nun è cunzintutu.",
+       "overwrite": "Suprascrìviri nu file chi già esisti nun è cunzintutu.",
+       "unknown-error": "Ammattìu n'erruri scanusciutu.",
+       "tmp-create-error": "Nun fu pussìbbili criari lu file timpuràniu.",
+       "tmp-write-error": "Erruri ntâ scrittura dû file timpuràniu.",
+       "large-file": "Si raccumanna di nun passari la grannizza di $1 p'ogni file; stu file è granni $2.",
+       "largefileserver": "Stu file è cchiù grossu di quantu lu server è cunfiguratu a accittari.",
+       "emptyfile": "Lu file chi carricasti pari vacanti.\nChistu putissi èssiri pruvucatu di nu sbagghiu ntô nomu dû file.\nCuntrolla ca pi daveru voi carricari stu file.",
+       "windows-nonascii-filename": "Sta wiki nun supporta li nomi di file cu caràttiri spiciali.",
+       "fileexists": "Nu file cu stu nomu già esisti, pi favuri cuntrolla <strong>[[:$1]]</strong> si nun sî {{GENDER:|sicuru|sicura}} chi lu voi canciari.\n[[$1|thumb]]",
+       "filepageexists": "La pàggina dâ discrizzioni di stu file fu già criata ô nnirizzu <strong>[[:$1]]</strong>, ma pi com'ora nun c'è nuddu file cu stu nomu.\nLu riassuntu chi nzirisci nun cumpari ntâ pàggina dâ discrizzioni.\nPi fàrilu cumpàriri, hai a canciari a manu dda pàggina.\n[[$1|thumb]]",
+       "fileexists-extension": "Nu file cûn nomu sìmili già esisti: [[$2|thumb]]\n* Nomu dû file carricatu: <strong>[[:$1]]</strong>\n* Nomu dû file esistenti: <strong>[[:$2]]</strong>\nForsi voi scègghiri un nomu cchiù carattirìsticu?",
        "fileexists-thumbnail-yes": "Lu file carricato sembra èssiri lu risurtatu di n'antiprima ''(thumbnail)''. [[$1|thumb]]\nVirificari, pi cunfruntu, lu file <strong>[[:$1]]</strong>.\nSiduu si tratta dâ stissa mmagini, nte dimenzioni urigginali, nun è nicissariu carricara àutri antiprimi.",
        "file-thumbnail-no": "Lu nomu dô file accumenza cu <strong>$1</strong>.\nPari quinni èssiri lu risurtatu di n'antiprima ''(thumbnail)''.\nSiddu si disponi dâ mmàggini ntâ risuluzzioni urigginali, si prega di carricàrila. 'N casu cuntrariu, si prega di canciari lu nomu dô file.",
        "fileexists-forbidden": "Nu file cu stu nomu asisti già e nun pò essiri sovrascrittu. Turnari n'arreri e canciari lu nomu cu lu quali carricari lu file. [[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "Nu file cu stu nomu asisti già nta l'archiviu dî risursi multimidiali cundivisi. Siddu voi ancora carricari lu file, pi favuri torna n'arreri e cancia lu nomu ca voi dari a lu file. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "Stu file è na copia duppiuni {{PLURAL:$1|dû|dî}} file ccà di sècutu:",
-       "file-deleted-duplicate": "Nu file lu stissu comu a chistu file ([[:$1]]) vinni scanciallatu prima di ora. S'aviss'a cuntrullari la stòria e lu picchì dâ scancillazzioni dû file prima di ri-caricàrilu.",
-       "file-deleted-duplicate-notitle": "Nu file idènticu a' chistu hâ statu cancillatu, e u tìtulu fu supprimutu.\nTu avissi a' dumannari a' quarchidunu chi' havi a pussibbilità di vìdiri u cuntinutu dû file suppressu di valutari a situazzioni, prima di prucèdiri a' carricàrilu n'autra vota.",
-       "uploadwarning": "Avvirtimentu pû carricamentu",
-       "uploadwarning-text": "Cancia ccassutta la discrizzioni dû file e prova n'autra vota.",
+       "file-deleted-duplicate": "Nu file lu stissu comu a stu file ([[:$1]]) vinni scancillatu prima di ora. S'avissi a cuntrullari la storia e lu pirchì dâ scancillazzioni dû file prima di carricàrilu arrè.",
+       "file-deleted-duplicate-notitle": "Nu file idènticu a chistu fu cancillatu, e lu tìtulu fu supprimutu.\nTu avissi a addumannari a quarchidunu chi havi la pussibbilità di vìdiri lu cuntinutu dû file suppressu di valutari la situazzioni, prima di prucèdiri a carricàrilu n'àutra vota.",
+       "uploadwarning": "Avvisu pû carricamentu",
+       "uploadwarning-text": "Cancia ccassutta la discrizzioni dû file e prova n'àutra vota.",
        "savefile": "Sarva lu file",
        "uploaddisabled": "Li carricamenti sunnu disattivati.",
-       "copyuploaddisabled": "Lu carricamentu pi' menzu di URL è disattivatu.",
+       "copyuploaddisabled": "Lu carricamentu pi menzu d'URL è disattivatu.",
        "uploaddisabledtext": "Li carricamenti dî file sunnu disattivati.",
-       "php-uploaddisabledtext": "Li carricamenti dî file sunnu disattivati ntô PHP.\nPi' favuri cuntrolla la mpustazzioni file_uploads.",
-       "uploadscripted": "Stu file cunteni còdici HTML o di script, ca putissi èssiri ntirpitratu erruniamenti d'un browser web.",
-       "upload-scripted-pi-callback": "Nun si ponnu carricari file ca cuntènunu l'istruzzioni di prucessu xml-stylesheet.",
-       "uploaded-script-svg": "Futruvatu n'elimentu prugrammàbbili \"$1\" ntô file SVG carricatu.",
-       "uploaded-hostile-svg": "Futruvatu còdici CSS risicusu nta l'elimentu style dû file SVG carricatu.",
-       "uploaded-event-handler-on-svg": "Nun è cunsintutu di mpustari l'attribbuti gistura di eventi <code>$1=\"$2\"</code> ntê file SVG.",
-       "uploaded-href-attribute-svg": "Nun sunnu cunsintuti l'attribbuti href <code>&lt;$1 $2=\"$3\"&gt;</code> cu na distinazzioni ca nun è lucali (ad esempiu http://, javascript:, etc) ntê file SVG.",
-       "uploaded-href-unsafe-target-svg": "Futruvatu n'href cu na distinazzioni risicusa <code>&lt;$1 $2=\"$3\"&gt;</code> ntô file SVG carricatu.",
-       "uploaded-animate-svg": "Futruvata n'etichetta \"animate\" ca purrìa canciari href, adupirannu l'attribbutu \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code>, ntô file SVG carricatu.",
-       "uploaded-setting-event-handler-svg": "Lu mpustari l'attribbuti dî gistura di l'eventi veni bluccatu; futruvatu <code>&lt;$1 $2=\"$3\"&gt;</code> ntô file SVG carricatu.",
-       "uploaded-setting-href-svg": "L'adupirari l'etichetta \"set\" p'agghiùnciri n'attribbutu \"href\" a' l'elimentu ginituri veni bluccatu.",
-       "uploaded-wrong-setting-svg": "L'adupirari l'etichetta \"set\" p'agghiùnciri na distinazzioni rimota/data/script a n'attribbutu quali è jè, è bluccatu. Fu' truvatu <code>&lt;set to=\"$1\"&gt;</code> ntô file SVG carricatu.",
-       "uploaded-setting-handler-svg": "Lu còdici SVG ca mposta l'attribbutu \"handler\" a na distinazzioni rimota/data/script veni bluccatu. Futruvatu <code>$1=\"$2\"</code> ntô file SVG carricatu.",
-       "uploaded-remote-url-svg": "Lu còdici SVG ca mposta n'attribbutu style quali è jè versu di n'URL rimota veni bluccatu. Fu' truvatu <code>$1=\"$2\"</code> ntô file SVG carricatu.",
-       "uploaded-image-filter-svg": "Fu' truvatu nu filtru di mmàggini cu' URL <code>&lt;$1 $2=\"$3\"&gt;</code> ntô file SVG carricatu.",
-       "uploadscriptednamespace": "Stu file SVG cunteni nu namespace nun cunsintutu, \"$1\".",
+       "php-uploaddisabledtext": "Li carricamenti dî file sunnu disattivati ntô PHP.\nPi favuri cuntrolla la mpustazzioni file_uploads.",
+       "uploadscripted": "Stu file cunteni còdici HTML o di script, ca putissi èssiri ntirpitratu erroniamenti d'un browser web.",
+       "upload-scripted-pi-callback": "Nun si ponnu carricari file ca cuntèninu li struzzioni di prucessu xml-stylesheet.",
+       "uploaded-script-svg": "Fu attruvatu n'elimentu prugrammàbbili \"$1\" ntô file SVG carricatu.",
+       "uploaded-hostile-svg": "Fu attruvatu còdici CSS risicusu nta l'elimentu style dû file SVG carricatu.",
+       "uploaded-event-handler-on-svg": "Nun è cunzintutu di mpustari l'attribbuti gistura d'eventi <code>$1=\"$2\"</code> ntê file SVG.",
+       "uploaded-href-attribute-svg": "Nun sunnu cunzintuti l'attribbuti href <code>&lt;$1 $2=\"$3\"&gt;</code> cu na distinazzioni ca nun è lucali (p'esempiu http://, javascript:, etc) ntê file SVG.",
+       "uploaded-href-unsafe-target-svg": "Fu attruvatu n'href cu na distinazzioni risicusa <code>&lt;$1 $2=\"$3\"&gt;</code> ntô file SVG carricatu.",
+       "uploaded-animate-svg": "Fu attruvata n'etichetta \"animate\" ca purrìa canciari href, adupirannu l'attribbutu \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code>, ntô file SVG carricatu.",
+       "uploaded-setting-event-handler-svg": "Lu mpustari l'attribbuti dî gistura di l'eventi veni bluccatu; fu attruvatu <code>&lt;$1 $2=\"$3\"&gt;</code> ntô file SVG carricatu.",
+       "uploaded-setting-href-svg": "L'adupirari l'etichetta \"set\" p'agghiùnciri n'attribbutu \"href\" a l'elimentu ginituri veni bluccatu.",
+       "uploaded-wrong-setting-svg": "L'adupirari l'etichetta \"set\" p'agghiùnciri na distinazzioni rimota/data/script a n'attribbutu qualegghiè, è bluccatu. Fu attruvatu <code>&lt;set to=\"$1\"&gt;</code> ntô file SVG carricatu.",
+       "uploaded-setting-handler-svg": "Lu còdici SVG ca mposta l'attribbutu \"handler\" a na distinazzioni rimota/data/script veni bluccatu. Fu attruvatu <code>$1=\"$2\"</code> ntô file SVG carricatu.",
+       "uploaded-remote-url-svg": "Lu còdici SVG ca mposta n'attribbutu style qualegghiè versu di n'URL rimota veni bluccatu. Fu attruvatu <code>$1=\"$2\"</code> ntô file SVG carricatu.",
+       "uploaded-image-filter-svg": "Fu attruvatu nu filtru di mmàggini cu URL <code>&lt;$1 $2=\"$3\"&gt;</code> ntô file SVG carricatu.",
+       "uploadscriptednamespace": "Stu file SVG cunteni nu namespace nun cunzintutu, \"$1\".",
        "uploadinvalidxml": "L'XML ntô file carricatu nun potti èssiri analizzatu sintatticamenti.",
        "uploadvirus": "Lu file cunteni un virus!\nDittagghî: $1",
-       "uploadjava": "Stu file è n'archiviu ZIP chi' cunteni nu file .class Java.\nCarricari file Java nun è cunsintutu picchì pirmèttunu d'aggirari li ristrizzioni di sicurezza.",
+       "uploadjava": "Stu file è n'archiviu ZIP chi cunteni nu file .class Java.\nCarricari file Java nun è cunzintutu pirchì pirmèttinu d'aggirari li ristrizzioni di sicurizza.",
        "upload-source": "File surgenti",
        "sourcefilename": "Nomu dû file surgenti:",
        "sourceurl": "URL surgenti:",
        "filewasdeleted": "Nu file cu stu nomu hà statu già carricatu e cancillatu n passatu. Virificari $1 prima di carricàrilu di novu.",
        "filename-bad-prefix": "Lu nomu dô file chi stai carricannu ncigna cu '''\"$1\"''', chi è nu nomu non descrittivu assignatu, di solitu, automaticamenti dê màchini fotugràfici diggitali. Pi favuri scegghia nu nomu cchiù descrtittivu pi lu tò file.",
        "filename-prefix-blacklist": " #<!-- dassa sta lìnia comu è già --> <pre>\n# Chista di sèquitu è la sintassi:\n#   * Tutti li scritti a pàrtiri dô carattiri \"#\" sugnu commenti\n#   * Tutti li lìnii non vacanti sugnu prefissi pi tipici nomi di file assignati automaticamenti dê màchini fotugràfici diggitali\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # arcuni cellulari\nIMG # genericu\nJD # Jenoptik\nMGP # Pentax\nPICT # arcuni\n #</pre> <!-- dassa sta lìnia comu è già -->",
-       "upload-success-subj": "Carricamentu rinisciutu",
-       "upload-success-msg": "Lu to carricamentu di [$2] riniscìu. Ccà cc'è lu file carricatu: [[:{{ns:file}}:$1]]",
+       "upload-success-subj": "Carricamentu arrinisciutu",
+       "upload-success-msg": "Lu tò carricamentu di [$2] arriniscìu. Ccà c'è lu file carricatu: [[:{{ns:file}}:$1]]",
        "upload-failure-subj": "Prubblema ntô carricamentu",
-       "upload-failure-msg": "Mmattìu un prubblema ntô to carricamentu di [$2]:\n\n$1",
-       "upload-warning-subj": "Avvirtimentu pû carricamentu",
-       "upload-warning-msg": "Mmattìu un prubblema ntô to carricamentu di [$2]. Poi turnari ô [[Special:Upload/stash/$1|mòdulu di carricamentu]] pi' currèggiri stu prubblema.",
+       "upload-failure-msg": "Ammattìu un prubblema ntô tò carricamentu di [$2]:\n\n$1",
+       "upload-warning-subj": "Avvisu pû carricamentu",
+       "upload-warning-msg": "Ammattìu un prubblema ntô tò carricamentu di [$2]. Poi turnari ô [[Special:Upload/stash/$1|mòdulu di carricamentu]] pi currèggiri stu prubblema.",
        "upload-proto-error": "Protucollu erratu",
        "upload-proto-error-text": "Pi l'upload rimotu è nicissariu spicificari URL ca nìzzianu cu <code>http://</code> oppuru <code>ftp://</code>.",
        "upload-file-error": "Erruri nternu",
-       "upload-file-error-text": "S'hâ' virificatu n'erruri nternu duranti la criazzioni dûn file timpuraniu supra ô server.\nPi' favuri cuntatta n'[[Special:ListUsers/sysop|amministraturi di sistema]].",
+       "upload-file-error-text": "Si virificau n'erruri nternu duranti la criazzioni dûn file timpuràniu supra ô server.\nPi favuri cuntatta n'[[Special:ListUsers/sysop|amministraturi di sistema]].",
        "upload-misc-error": "Erruri nun idintificatu pi l'upload",
        "upload-misc-error-text": "S'hà virificatu un erruri nun idintificatu duranti lu carricamentu dû file. Virificari ca la URL è curretta e accissìbbili e pruvari di novu. Siddu lu prubbrema pirsisti, cuntattari un amministraturi di sistema.",
        "upload-too-many-redirects": "L'URL cuntineva troppi redirect",
-       "upload-http-error": "Mmattìu n'erruri HTTP: $1",
-       "upload-copy-upload-invalid-domain": "Lu carricamentu di copî nun è cunsintutu di stu duminiu.",
+       "upload-http-error": "Ammattìu n'erruri HTTP: $1",
+       "upload-copy-upload-invalid-domain": "Lu carricamentu di copî nun è cunzintutu di stu duminiu.",
        "upload-dialog-title": "Carricamentu dûn file",
        "upload-dialog-error": "Ammattìu n'erruri",
        "upload-dialog-warning": "Ammattìu n'avvisu",
        "upload-dialog-label-usage-title": "Usu",
        "upload-dialog-label-usage-filename": "Nomu dû file",
        "backend-fail-stream": "Nun fu pussìbbili trasmèttiri lu file \"$1\".",
-       "backend-fail-backup": "Nun fu' pussìbbili fari na copia di riserva dû file \"$1\".",
+       "backend-fail-backup": "Nun fu pussìbbili fari na copia di riserva dû file \"$1\".",
        "backend-fail-notexists": "Lu file $1 nun esisti.",
-       "backend-fail-hashes": "Nun fu' pussìbbili ottèniri l'hash dî file pi' fari lu cunfruntu.",
-       "backend-fail-notsame": "Già esisti un file nun idènticu a' \"$1\".",
+       "backend-fail-hashes": "Nun fu pussìbbili ottèniri l'hash dî file pi fari lu cunfruntu.",
+       "backend-fail-notsame": "Già esisti un file nun idènticu a \"$1\".",
        "backend-fail-invalidpath": "\"$1\" nun è un caminu d'archiviazzioni vàlidu.",
        "backend-fail-delete": "Nun fu pussìbbili cancillari lu file \"$1\".",
-       "backend-fail-describe": "Nun fu' pussìbbili canciari li metadati dû file \"$1\".",
+       "backend-fail-describe": "Nun fu pussìbbili canciari li metadati dû file \"$1\".",
        "backend-fail-alreadyexists": "Lu file \"$1\" già esisti.",
-       "backend-fail-store": "Nun fu' pussìbbili mimurizzari lu file \"$1\" nta \"$2\".",
-       "backend-fail-copy": "Nun fu' pussìbbili cupiari lu file \"$1\" nta \"$2\".",
-       "backend-fail-move": "Nun fu' pussìbbili spustari lu file \"$1\" nta \"$2\".",
-       "backend-fail-opentemp": "Nun fu pussìbbili àpriri lu file timpuraniu.",
-       "backend-fail-writetemp": "Nun fu' pussìbbili scrìviri ntô file timpuraniu.",
-       "backend-fail-closetemp": "Nun fu pussìbbili chiùdiri lu file timpuraniu.",
-       "backend-fail-read": "Nun fu' pussìbbili lèggiri lu file \"$1\".",
+       "backend-fail-store": "Nun fu pussìbbili mimurizzari lu file \"$1\" nta \"$2\".",
+       "backend-fail-copy": "Nun fu pussìbbili cupiari lu file \"$1\" nta \"$2\".",
+       "backend-fail-move": "Nun fu pussìbbili spustari lu file \"$1\" nta \"$2\".",
+       "backend-fail-opentemp": "Nun fu pussìbbili gràpiri lu file timpuràniu.",
+       "backend-fail-writetemp": "Nun fu pussìbbili scrìviri ntô file timpuràniu.",
+       "backend-fail-closetemp": "Nun fu pussìbbili chiùdiri lu file timpuràniu.",
+       "backend-fail-read": "Nun fu pussìbbili lèggiri lu file \"$1\".",
        "backend-fail-create": "Nun fu pussìbbili scrìviri lu file \"$1\".",
-       "backend-fail-maxsize": "Nun fu' pussìbbili scrìviri lu file \"$1\" picchì è cchiu' grossu di {{PLURAL:$2|un byte|$2 byte}}.",
-       "backend-fail-readonly": "U backend di mimurizzazzioni \"$1\" pi' com'ora è a' sula littura. La spiegazzioni data è: \"<em>$2</em>\"",
-       "backend-fail-synced": "Lu file \"$1\" si trova nta nu statu incoerenti tra dî backend di mimurizzazzioni interni.",
+       "backend-fail-maxsize": "Nun fu pussìbbili scrìviri lu file \"$1\" pirchì è cchiù grossu di {{PLURAL:$2|un byte|$2 byte}}.",
+       "backend-fail-readonly": "Lu backend di mimurizzazzioni \"$1\" pi com'ora è n littura sula. La spigazzioni data è: \"<em>$2</em>\"",
+       "backend-fail-synced": "Lu file \"$1\" s'attrova nta nu statu nun cuerenti tra dî backend di mimurizzazzioni nterni.",
        "backend-fail-connect": "Nun fu pussìbbili culligàrisi ô supportu di mimurizzazzioni \"$1\".",
        "backend-fail-internal": "Si virificau n'erruri scanusciutu ntô supportu di mimurizzazzioni \"$1\".",
        "backend-fail-contenttype": "Nun fu pussìbbili ditirminari lu tipu di cuntinutu dû file di mimurizzari nti \"$1\".",
-       "backend-fail-batchsize": "U backend di mimurizzazzioni ricivìu na nfurnata di {{PLURAL:$1|una opirazzioni|$1 opirazzioni}} tra file; però lu so lìmiti è di {{PLURAL:$2|na sula opirazzioni|$2 opirazzioni}}.",
-       "backend-fail-usable": "Nun fu' pussìbbili lèggiri o scrìviri lu file \"$1\" pi' causa di pirmissi nsufficienti o cartelli/cuntinituri mancanti.",
-       "filejournal-fail-dbconnect": "Nun fu' pussìbbili culligàrisi â basi di dati giurnali dû backend di mimurizzazzioni \"$1\".",
-       "filejournal-fail-dbquery": "Nun fu' pussìbbili aggiurnari la basi di dati giurnali dû backend di mimurizzazzioni \"$1\".",
-       "lockmanager-notlocked": "Nun fu' pussìbbili sbluccari \"$1\"; nun è bluccatu.",
-       "lockmanager-fail-closelock": "Nun fu' pussìbbili chiùdiri lu file di bloccu di \"$1\".",
-       "lockmanager-fail-deletelock": "Nun fu' pussìbbili cancillari lu file di bloccu di \"$1\".",
-       "lockmanager-fail-acquirelock": "Nun fu' pussìbbili pigghiari pussèssu dû bloccu di \"$1\".",
-       "lockmanager-fail-openlock": "Nun fu' pussìbbili àpriri lu file di bloccu di \"$1\".",
-       "lockmanager-fail-releaselock": "Nun fu' pussibbili arrènniri lu bloccu di \"$1\".",
-       "lockmanager-fail-db-bucket": "Nun fu' pussìbbili cuntattàri abbastanza basi di dati di bloccu ntô bucket $1.",
-       "lockmanager-fail-db-release": "Nun fu' pussìbbili arrènniri li blocchi dâ basi di dati $1.",
-       "lockmanager-fail-svr-acquire": "Nun fu' pussìbbili pigghiari pussessu dî blocchi dû server $1.",
-       "lockmanager-fail-svr-release": "Nun fu' pussìbbili arrènniri li blocchi dû server $1.",
-       "zip-file-open-error": "Mmattìu n'erruri nta l'apirtura dû file pî cuntrolli di ZIP.",
+       "backend-fail-batchsize": "Lu backend di mimurizzazzioni arricivìu na nfurnata di {{PLURAL:$1|una opirazzioni|$1 opirazzioni}} tra file; pirò lu sò lìmiti è di {{PLURAL:$2|na sula opirazzioni|$2 opirazzioni}}.",
+       "backend-fail-usable": "Nun fu pussìbbili lèggiri o scrìviri lu file \"$1\" a càusa di pirmissi nzufficienti o cartelli/cuntinituri ammancanti.",
+       "filejournal-fail-dbconnect": "Nun fu pussìbbili culligàrisi â basi di dati giurnali dû backend di mimurizzazzioni \"$1\".",
+       "filejournal-fail-dbquery": "Nun fu pussìbbili aggiurnari la basi di dati giurnali dû backend di mimurizzazzioni \"$1\".",
+       "lockmanager-notlocked": "Nun fu pussìbbili sbluccari \"$1\"; nun è bluccatu.",
+       "lockmanager-fail-closelock": "Nun fu pussìbbili chiùdiri lu file di bloccu di \"$1\".",
+       "lockmanager-fail-deletelock": "Nun fu pussìbbili cancillari lu file di bloccu di \"$1\".",
+       "lockmanager-fail-acquirelock": "Nun fu pussìbbili pigghiari pussessu dû bloccu di \"$1\".",
+       "lockmanager-fail-openlock": "Nun fu pussìbbili gràpiri lu file di bloccu di \"$1\".",
+       "lockmanager-fail-releaselock": "Nun fu pussibbili arrènniri lu bloccu di \"$1\".",
+       "lockmanager-fail-db-bucket": "Nun fu pussìbbili cuntattari abbastanti basi di dati di bloccu ntô bucket $1.",
+       "lockmanager-fail-db-release": "Nun fu pussìbbili arrènniri li blocchi dâ basi di dati $1.",
+       "lockmanager-fail-svr-acquire": "Nun fu pussìbbili pigghiari pussessu dî blocchi dû server $1.",
+       "lockmanager-fail-svr-release": "Nun fu pussìbbili arrènniri li blocchi dû server $1.",
+       "zip-file-open-error": "Ammattìu n'erruri ntâ grapitura dû file pî cuntrolli di ZIP.",
        "zip-wrong-format": "Lu file spicificatu nun era nu file ZIP.",
-       "zip-bad": "Lu file è nu file ZIP chi' è ruinatu o è illiggìbbili pi' quarchi' n'autru mutivu.\nNun si po' cuntrullari bona la so sicurizza.",
-       "zip-unsupported": "Lu file è nu file ZIP chi' cunteni carattirìstichi ZIP chi' nun su' suppurtati dâ MediaWiki.\nNun si po' cuntrullari bona la so sicurizza.",
-       "uploadstash": "Ammucciàgghia dî carricamenti",
-       "uploadstash-summary": "Sta pàggina duna accessu ê file chi' furu carricati, o si stannu carricannu, però ancora nun hannu statu pubblicati ntâ wiki. Sti file nun su' visìbbili a' nuddu sparti di cu li carricau.",
+       "zip-bad": "Lu file è nu file ZIP chi è ruinatu o nun è liggìbbili pi quarchi n'àutru mutivu.\nNun si pò cuntrullari bona la sò sicurizza.",
+       "zip-unsupported": "Lu file è nu file ZIP chi cunteni carattirìstichi ZIP chi nun sù suppurtati dâ MediaWiki.\nNun si pò cuntrullari bona la sò sicurizza.",
+       "uploadstash": "Ammucciagghia dî carricamenti",
+       "uploadstash-summary": "Sta pàggina duna accessu ê file chi foru carricati, o si stannu carricannu, pirò ancora nun foru pubblicati ntâ wiki. Sti file nun sù visìbbili a nuddu sparti di cui li carricau.",
        "uploadstash-clear": "Cancella li file nta l'ammucciagghia",
        "uploadstash-nofiles": "Nun hai nuddu file nta l'ammucciagghia.",
-       "uploadstash-badtoken": "St'azzioni nun riniscìu, forsi picchì li to cridinziali di mudìfica scaderu. Prova n'autra vota.",
-       "uploadstash-errclear": "La cancillazzioni dî file nun riniscìu.",
+       "uploadstash-badtoken": "St'azzioni nun arriniscìu, forsi pirchì li tò cridinziali di canciamentu scaderu. Prova n'àutra vota.",
+       "uploadstash-errclear": "La cancillazzioni dî file nun arriniscìu.",
        "uploadstash-refresh": "Aggiorna la lista dî file",
        "invalid-chunk-offset": "Offset ntô chunk nun vàlidu",
        "img-auth-accessdenied": "Accessu nigatu",
-       "img-auth-nopathinfo": "Variàbbili PATH_INFO mancanti.\nLu to server nun è mpustatu pi' passari sta nfurmazzioni.\nPurrìa èssiri basatu supra a' CGI e nun po' suppurtari img_auth.\nTalìa https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
-       "img-auth-notindir": "Lu caminu dumannatu nun è ntâ cartella cunfigurata pî carricamenti.",
-       "img-auth-badtitle": "Nun fu' pussìbbili custruiri nu tìtulu vàlidu a' pàrtiri di \"$1\".",
-       "img-auth-nologinnWL": "Nun si' trasutu e \"$1\" nun è ntâ lista janca.",
+       "img-auth-nopathinfo": "Variàbbili PATH_INFO ammancanti.\nLu tò server nun è mpustatu pi passari sta nfurmazzioni.\nPurrìa èssiri basatu supra a CGI e nun pò suppurtari img_auth.\nTalìa https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
+       "img-auth-notindir": "Lu caminu addumannatu nun è ntâ cartella cunfigurata pî carricamenti.",
+       "img-auth-badtitle": "Nun fu pussìbbili custruiri nu tìtulu vàlidu a pàrtiri di \"$1\".",
+       "img-auth-nologinnWL": "Nun trasisti e \"$1\" nun è ntâ lista janca.",
        "img-auth-nofile": "Lu file \"$1\" nun esisti.",
-       "img-auth-isdir": "Stai pruvannu a' accèdiri a' na cartella, \"$1\".\nE' cunsintutu l'accessu sulu ê file.",
+       "img-auth-isdir": "Stai pruvannu a accèdiri a na cartella, \"$1\".\nÈ cunzintutu l'accessu sulu ê file.",
        "img-auth-streaming": "Trasmissioni di \"$1\".",
-       "img-auth-public": "U prupòsitu di img_auth.php è di emèttiri file di na wiki privata.\nSta wiki è cunfigurata comu wiki pùbblica.\nPi' sicurezza, img_auth.php fu' disattivatu.",
+       "img-auth-public": "Lu prupòsitu di img_auth.php è di emèttiri file di na wiki privata.\nSta wiki è cunfigurata comu wiki pùbblica.\nPi sicurizza, img_auth.php fu disattivatu.",
        "img-auth-noread": "L'utenti nun havi pirmissu di lèggiri \"$1\".",
-       "http-invalid-url": "URL nun validu: $1",
-       "http-invalid-scheme": "L'URL cu' schema \"$1\" nun su' suppurtati.",
-       "http-request-error": "A richiesta HTTP fallìu pi' causa di n'erruri scanusciutu.",
+       "http-invalid-url": "URL nun vàlidu: $1",
+       "http-invalid-scheme": "L'URL cu schema \"$1\" nun sunnu suppurtati.",
+       "http-request-error": "L'addumannata HTTP fallìu a càusa di n'erruri scanusciutu.",
        "http-read-error": "Erruri di littura HTTP.",
-       "http-timed-out": "La richiesta HTTP scadìu.",
+       "http-timed-out": "L'addumannata HTTP scadìu.",
        "http-curl-error": "Erruri ntô scarricamentu di l'URL: $1",
-       "http-bad-status": "Mmattìu nu prubblema duranti la richiesta HTTP: $1 $2",
-       "upload-curl-error6": "Nun fu pussìbbili ragghiùnciri l'URL",
-       "upload-curl-error6-text": "Nun fu' pussìbbili ragghiùnciri l'URL ca spicificasti.\nCuntrolla megghiu ca l'URL è scritta bona e ca lu situ chi' la servi funziona.",
+       "http-bad-status": "Ammattìu nu prubblema duranti l'addumannata HTTP: $1 $2",
+       "upload-curl-error6": "Nun fu pussìbbili jùnciri l'URL",
+       "upload-curl-error6-text": "Nun fù pussìbbili jùnciri l'URL ca spicificasti.\nCuntrolla megghiu ca l'URL è scritta bona e ca lu situ chi la servi funziona.",
        "upload-curl-error28": "Tempu scadutu pû carricamentu",
-       "upload-curl-error28-text": "Lu situ rimotu cci stesi troppu tempu a' rispùnniri.\nPi' favuri cuntrolla ca lu situ funziona, aspetta un pocu e ppoi prova n'autra vota.\nPoi cunsiddirari di pruvari ntôn mumentu quannu c'è cchiu' picca tràficu.",
+       "upload-curl-error28-text": "Lu situ rimotu ci stesi troppu tempu a arrispùnniri.\nPi favuri cuntrolla ca lu situ funziona, aspetta un pocu e appoi prova n'àutra vota.\nPoi cunziddirari di pruvari ntôn mumentu quannu c'è cchiù picca tràficu.",
        "license": "Licenza d'usu:",
        "license-header": "Licenza",
        "nolicense": "Nudda spicificata",
        "licenses-edit": "Cancia l'opzioni dâ licenza",
        "license-nopreview": "(Antiprima nun dispunìbbili)",
-       "upload_source_url": "(lu file chi' scigghîsti di n'URL vàlida e pubblicamenti accissìbbili)",
-       "upload_source_file": "(lu file chi' scigghîsti supra ô to computer)",
+       "upload_source_url": "(lu file chi scigghisti di n'URL vàlida e pubblicamenti accissìbbili)",
+       "upload_source_file": "(lu file chi scigghisti supra ô tò computer)",
        "listfiles-delete": "cancella",
        "listfiles-summary": "Sta pàggina spiciali ammustra tutti li file carricati.",
        "listfiles_search_for": "Ricerca dâ mmàggini di nomu:",
-       "listfiles-userdoesnotexist": "Nun cc'è riggistratu un cuntu a' nomu di l'utenti \"$1\".",
+       "listfiles-userdoesnotexist": "Nun c'è riggistratu un cuntu a nomu di l'utenti \"$1\".",
        "imgfile": "file",
        "listfiles": "Alencu dî file",
        "listfiles_thumb": "Miniatura",
        "listfiles_size": "Grannizza",
        "listfiles_description": "Discrizzioni",
        "listfiles_count": "Virsioni",
-       "listfiles-show-all": "Includi li virsioni vecchî dî mmàggini",
+       "listfiles-show-all": "Ncludi li virsioni vecchî dî mmàggini",
        "listfiles-latestversion": "Virsioni attuali",
        "listfiles-latestversion-yes": "Sì",
        "listfiles-latestversion-no": "No",
        "file-anchor-link": "File",
        "filehist": "Crunuluggìa dû file",
-       "filehist-help": "Clicca na data/ura pi' vìdiri lu file comu si prisintava tannu.",
+       "filehist-help": "Clicca na data/ura pi vìdiri lu file comu si prisintava tannu.",
        "filehist-deleteall": "cancella tuttu",
        "filehist-deleteone": "cancella",
        "filehist-revert": "riprìstina",
        "filehist-nothumb": "Nudda miniatura",
        "filehist-user": "Utenti",
        "filehist-dimensions": "Diminsioni",
-       "filehist-filesize": "Dimensioni dû file",
+       "filehist-filesize": "Diminzioni dû file",
        "filehist-comment": "Cummentu",
        "imagelinks": "Usu dû file",
        "linkstoimage": "{{PLURAL:$1|La pàggina siquenti richiàma|Li $1 pàggini siquenti richiàmanu}} stu file:",
-       "linkstoimage-more": "Cci su' cchiu' ssai di $1 {{PLURAL:$1|pàggina|pàggini}} ca richiàmunu stu file.\nLa lista ccassutta ammustra sulu {{PLURAL:$1|la prima pàggina|li primi $1 pàggini}}.\nSi po' puru a' vìdiri [[Special:WhatLinksHere/$2|na lista cumpleta]].",
+       "linkstoimage-more": "Ci sù cchiossai di $1 {{PLURAL:$1|pàggina|pàggini}} ca richiàmanu stu file.\nLa lista ccassutta ammustra sulu {{PLURAL:$1|la prima pàggina|li primi $1 pàggini}}.\nSi pò puru vìdiri [[Special:WhatLinksHere/$2|na lista cumpleta]].",
        "nolinkstoimage": "Nudda pàggina richiama stu file.",
        "morelinkstoimage": "Ammustra [[Special:WhatLinksHere/$1|àutri lijami]] versu di stu file.",
        "linkstoimage-redirect": "$1 (rimannu ô file) $2",
-       "duplicatesoffile": "{{PLURAL:$1|Stu|Sti $1}} file {{PLURAL:$1|è nu dupppiuni|sunnu duppiuni}} di st'autru file ([[Special:FileDuplicateSearch/$2|cchiù dittagli]]):",
-       "sharedupload": "Stu file veni di $1 e purrìa èssiri adupiratu di autri pruggetti.",
-       "sharedupload-desc-there": "Stu file veni di $1 e purrìa èssiri adupiratu di autri pruggetti.\nTalìari la so [$2 pàggina di discrizzioni] pi' autri nfurmazzioni.",
-       "sharedupload-desc-here": "Stu file veni di $1 e purrìa èssiri adupiratu di autri pruggetti.\nAppressu veni ammustrata la discrizioni prisenti ntâ so [$2 pàggina di discrizzioni].",
-       "sharedupload-desc-edit": "Stu file veni di $1 e purrìa èssiri adupiratu di autri pruggetti.\nForsi ti cunveni canciari la so discrizzioni ntâ so [$2 pàggina di discrizzioni] dda.",
-       "sharedupload-desc-create": "Stu file veni di $1 e purrìa èssiri adupiratu di autri pruggetti.\nForsi ti cunveni canciari a so discrizzioni ntâ so [$2 pàggina di discrizzioni] dda.",
-       "filepage-nofile": "Nun esisti nuddu file cu' stu nomu.",
-       "filepage-nofile-link": "Nun esisti nuddu file cu' stu nomu, però [$1 lu poi carricari].",
+       "duplicatesoffile": "{{PLURAL:$1|Stu|Sti $1}} file {{PLURAL:$1|è nu dupppiuni|sunnu duppiuni}} di st'àutru file ([[Special:FileDuplicateSearch/$2|cchiù dittagghi]]):",
+       "sharedupload": "Stu file veni di $1 e purrìa èssiri adupiratu di àutri pruggetti.",
+       "sharedupload-desc-there": "Stu file veni di $1 e purrìa èssiri adupiratu di àutri pruggetti.\nTalìari la sò [$2 pàggina di discrizzioni] p'àutri nfurmazzioni.",
+       "sharedupload-desc-here": "Stu file veni di $1 e purrìa èssiri adupiratu di àutri pruggetti.\nAppressu veni ammustrata la discrizioni prisenti ntâ sò [$2 pàggina di discrizzioni].",
+       "sharedupload-desc-edit": "Stu file veni di $1 e purrìa èssiri adupiratu di àutri pruggetti.\nForsi ti cunveni canciari la sò discrizzioni ntâ sò [$2 pàggina di discrizzioni] ddà.",
+       "sharedupload-desc-create": "Stu file veni di $1 e purrìa èssiri adupiratu di àutri pruggetti.\nForsi ti cunveni canciari la sò discrizzioni ntâ sò [$2 pàggina di discrizzioni] ddà.",
+       "filepage-nofile": "Nun esisti nuddu file cu stu nomu.",
+       "filepage-nofile-link": "Nun esisti nuddu file cu stu nomu, pirò [$1 lu poi carricari].",
        "uploadnewversion-linktext": "Càrrica na virsioni nova di stu file",
        "shared-repo-from": "di $1",
        "shared-repo": "nu dipòsitu cunnivisu",
        "filerevert-badversion": "Nun esistanu virsiona locali pricidenti dô file cû timestamp richiestu.",
        "filedelete": "Cancella $1",
        "filedelete-legend": "Cancella lu file",
-       "filedelete-intro": "Stai cancillannu lu file <strong>[[Media:$1|$1]]</strong> cu' tutta la so crunuluggìa.",
+       "filedelete-intro": "Stai cancillannu lu file <strong>[[Media:$1|$1]]</strong> cu tutta la sò crunuluggìa.",
        "filedelete-intro-old": "Stai cancillannu la virsioni di <strong>[[Media:$1|$1]]</strong> dû [$4 $2 ê $2].",
        "filedelete-comment": "Mutivu:",
        "filedelete-submit": "Cancella",
        "filedelete-success": "Lu file <strong>$1</strong> fu cancillatu.",
-       "filedelete-success-old": "La virsioni dû file <strong>[[Media:$1|$1]]</strong> dû $2 ê $3 fu' cancillata.",
+       "filedelete-success-old": "La virsioni dû file <strong>[[Media:$1|$1]]</strong> dû $2 ê $3 fu cancillata.",
        "filedelete-nofile": "<strong>$1</strong> nun esisti.",
-       "filedelete-nofile-old": "Nun cc'è archiviata nudda virsioni di <strong>$1</strong> chi' havi l'attribbuta spicificati.",
-       "filedelete-otherreason": "Autru o ultiriuri mutivu:",
-       "filedelete-reason-otherlist": "Autru mutivu",
-       "filedelete-reason-dropdown": "*Mutivi cchiu' cumuni pâ cancillazzioni\n** Viulazzioni dû drittu d'auturi\n** File duppiuni",
+       "filedelete-nofile-old": "Nun c'è archiviata nudda virsioni di <strong>$1</strong> chi havi l'attribbuti spicificati.",
+       "filedelete-otherreason": "Àutru o ultiriuri mutivu:",
+       "filedelete-reason-otherlist": "Àutru mutivu",
+       "filedelete-reason-dropdown": "*Mutivi cchiù cumuni pâ cancillazzioni\n** Viulazzioni dû drittu d'auturi\n** File duppiuni",
        "filedelete-edit-reasonlist": "Cancia li mutivi dâ cancillazzioni",
-       "filedelete-maintenance": "La cancillazzioni e lu riprìstinu dî file su' timpuraniamenti disattivati duranti la manutinzioni.",
-       "filedelete-maintenance-title": "Impussìbbili cancillari lu file",
-       "mimesearch": "Risciduta pi' tipu MIME",
-       "mimesearch-summary": "Sta pàggina cunzenti di filtrari li file 'n basi a lu tipu MIME. Nziriri la stringa di ricerca ntâ forma tipu/suttatipu o tipu/*, p'asempiu <code>image/jpeg</code>.",
+       "filedelete-maintenance": "La cancillazzioni e lu riprìstinu dî file sù timpuraniamenti disattivati duranti la manutinzioni.",
+       "filedelete-maintenance-title": "Mpussìbbili cancillari lu file",
+       "mimesearch": "Arricerca pi tipu MIME",
+       "mimesearch-summary": "Sta pàggina cunzenti di filtrari li file n basi a lu tipu MIME. Nziriri la stringa d'arricerca ntâ forma tipu/suttatipu o tipu/*, p'esempiu <code>image/jpeg</code>.",
        "mimetype": "Tipu MIME:",
        "download": "scàrrica",
        "unwatchedpages": "Pàggini nun taliati",
-       "listredirects": "Alencu di tutti li rimanni",
-       "listduplicatedfiles": "Lista dî file cu' duppiuni",
-       "listduplicatedfiles-summary": "Chista è na lista dî file unni la virsioni cchiu' nova è nu duppiuni dâ virsioni cchiu' nova di quarchi' autru file. Sulu li file lucali su' pigghiati a' cunsiddirazzioni.",
+       "listredirects": "Elencu di tutti li rimanni",
+       "listduplicatedfiles": "Lista dî file cu duppiuni",
+       "listduplicatedfiles-summary": "Chista è na lista dî file unni la virsioni cchiù nova è nu duppiuni dâ virsioni cchiù nova di quarchi àutru file. Sulu li file lucali sù pigghiati a cunziddirazzioni.",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] havi [[$3|{{PLURAL:$2|nu duppiuni|$2 duppiuna}}]].",
        "unusedtemplates": "Template nun usati",
        "unusedtemplatestext": "Sta pàggina elenca tutti li pàggini ntô namespace {{ns:template}} ca nun sunnu nclusi nta nudda àutra pàggina.\nPrima di cancillàrili è megghiu cuntrullari ca nun hannu àutri lijami ca ci tràsinu.",
        "unusedtemplateswlh": "àutri lijami",
-       "randompage": "Na pàggina a' muzzu",
-       "randompage-nopages": "Nun cci su' pàggini {{PLURAL:$2|nta stu namespace|nta sti namespace}}: $1.",
-       "randomincategory": "Na pàggina a' muzzu nta na catigurìa",
+       "randompage": "Na pàggina a muzzu",
+       "randompage-nopages": "Nun ci sunnu pàggini {{PLURAL:$2|nta stu namespace|nta sti namespace}}: $1.",
+       "randomincategory": "Na pàggina a muzzu nta na catigurìa",
        "randomincategory-invalidcategory": "\"$1\" nun è nu nomu di catigurìa vàlidu.",
-       "randomincategory-nopages": "Nun cci su' pàggini ntâ catigurìa [[:Category:$1|$1]].",
+       "randomincategory-nopages": "Nun ci sunnu pàggini ntâ catigurìa [[:Category:$1|$1]].",
        "randomincategory-category": "Catigurìa:",
-       "randomincategory-legend": "Pàggina a' muzzu nta na catigurìa",
+       "randomincategory-legend": "Pàggina a muzzu nta na catigurìa",
        "randomincategory-submit": "Vai",
-       "randomredirect": "Nu rimannu a' muzzu",
-       "randomredirect-nopages": "Nun cc'è nuddu rimannu ntô namespace \"$1\".",
+       "randomredirect": "Nu rimannu a muzzu",
+       "randomredirect-nopages": "Nun c'è nuddu rimannu ntô namespace \"$1\".",
        "statistics": "Statìstichi",
        "statistics-header-pages": "Statìstichi dî pàggini",
        "statistics-header-edits": "Statìstichi dî canciamenti",
        "statistics-header-users": "Statìstichi di l'utenti",
-       "statistics-header-hooks": "Autri statìstichi",
+       "statistics-header-hooks": "Àutri statìstichi",
        "statistics-articles": "Pàggini di cuntinutu",
        "statistics-pages": "Pàggini",
-       "statistics-pages-desc": "Tutti li pàggini dâ wiki, cu' puru chiddi di discussioni, li rimanni, etc.",
+       "statistics-pages-desc": "Tutti li pàggini dâ wiki, cu puru chiddi di discussioni, li rimanni, ecc.",
        "statistics-files": "File carricati",
        "statistics-edits": "Pàggini canciati di quannu {{SITENAME}} fu armatu",
-       "statistics-edits-average": "Media dî canciamenti pi' pàggina",
+       "statistics-edits-average": "Media dî canciamenti pi pàggina",
        "statistics-users": "[[Special:ListUsers|Utenti]] riggistrati",
        "statistics-users-active": "Utenti attivi",
-       "statistics-users-active-desc": "Utenti ch'hannu fattu quarchi' azzioni {{PLURAL:$1|nta l'ùltimu jornu|nta l'ùltimi $1 jorna}}",
-       "pageswithprop": "Pàggini cu na prupietà di pàggina",
-       "pageswithprop-legend": "Pàggini cu na prupietà di pàggina",
-       "pageswithprop-text": "Sta pàggina elenca li pàggini chi' adòpirunu na particulari prupietà di pàggina.",
-       "pageswithprop-prop": "Nomu dâ prupietà:",
+       "statistics-users-active-desc": "Utenti ca fìciru quarchi azzioni {{PLURAL:$1|nta l'ùrtimu jornu|nta l'ùrtimi $1 jorna}}",
+       "pageswithprop": "Pàggini cu na prupità di pàggina",
+       "pageswithprop-legend": "Pàggini cu na prupità di pàggina",
+       "pageswithprop-text": "Sta pàggina elenca li pàggini chi adòpiranu na particulari prupità di pàggina.",
+       "pageswithprop-prop": "Nomu dâ prupità:",
        "pageswithprop-submit": "Vai",
-       "pageswithprop-prophidden-long": "valuri tistuali longu dâ prupietà ammucciatu ($1)",
-       "pageswithprop-prophidden-binary": "valuri binariu dâ prupietà ammucciatu ($1)",
+       "pageswithprop-prophidden-long": "valuri tistuali longu dâ prupità ammucciatu ($1)",
+       "pageswithprop-prophidden-binary": "valuri binariu dâ prupità ammucciatu ($1)",
        "doubleredirects": "Rimanni duppî",
-       "doubleredirectstext": "Sta pàggina alenca li pàggini chi rimànnanu a àutri pàggini di rimannu.\nOgni riga cunteni lijami versu lu primu e versu lu secunnu rimannu, sparti dâ distinazzioni dû secunnu rimannu, ca di sòlitu è la pàggina \"giusta\" unni avissi a puntari macari lu primu rimannu.\nLi rimanni <del>sbarrati</del> foru cunzati.",
+       "doubleredirectstext": "Sta pàggina elenca li pàggini chi rimànnanu a àutri pàggini di rimannu.\nOgni riga cunteni lijami versu lu primu e versu lu secunnu rimannu, sparti dâ distinazzioni dû secunnu rimannu, ca di sòlitu è la pàggina \"giusta\" unni avissi a puntari macari lu primu rimannu.\nLi rimanni <del>sbarrati</del> foru cunzati.",
        "double-redirect-fixed-move": "[[$1]] fu spustata.\nFu aggiurnata autumaticamenti e ora rimanna a [[$2]].",
-       "double-redirect-fixed-maintenance": "Cunsatu autumaticamenti nu rimannu duppiu di [[$1]] a' [[$2]] ntôn sirvizzu di manutinzioni.",
-       "double-redirect-fixer": "Cunsaturi dî rimanni",
+       "double-redirect-fixed-maintenance": "Cunzatu autumaticamenti nu rimannu duppiu di [[$1]] a [[$2]] ntôn sirvizzu di manutinzioni.",
+       "double-redirect-fixer": "Cunzaturi dî rimanni",
        "brokenredirects": "Rimanni rutti",
-       "brokenredirectstext": "Li rimanni siguenti pùntanu a' pàggini ca nun esìstinu:",
+       "brokenredirectstext": "Li rimanni siguenti pùntanu a pàggini ca nun esìstinu:",
        "brokenredirects-edit": "cancia",
        "brokenredirects-delete": "cancella",
        "withoutinterwiki": "Pàggini senza lijami nterlinguìstici",
        "withoutinterwiki-summary": "Li pàggini siguenti nun hannu lijami versu dî virsioni nta l'àutri lingui.",
        "withoutinterwiki-legend": "Prifissu",
        "withoutinterwiki-submit": "Ammustra",
-       "fewestrevisions": "Pàggini cu' cchiu' picca virsioni",
+       "fewestrevisions": "Pàggini cu cchiù picca virsioni",
        "nbytes": "$1 {{PLURAL:$1|byte|byte}}",
        "ncategories": "$1 {{PLURAL:$1|catigurìa|catigurìi}}",
        "ninterwikis": "$1 {{PLURAL:$1|interwiki}}",
        "nrevisions": "$1 {{PLURAL:$1|rivisioni|rivisioni}}",
        "nimagelinks": "Adupiratu nta $1 {{PLURAL:$1|pàggina|pàggini}}",
        "ntransclusions": "adupiratu nta $1 {{PLURAL:$1|pàggina|pàggini}}",
-       "specialpage-empty": "Nun cci su' risultati pi' stu rennicuntu.",
+       "specialpage-empty": "Nun ci sù risurtati pi stu rennicuntu.",
        "lonelypages": "Pàggini òrfani",
        "lonelypagestext": "Li pàggini ccassutta nun hannu lijami ca vèninu d'àutri pàggini e nun sù nclusi nta àutri pàggini di {{SITENAME}}.",
        "uncategorizedpages": "Pàggini nun catigurizzati",
        "unusedimages": "File nun usati",
        "wantedcategories": "Catigurìi addumannati",
        "wantedpages": "Pàggini addumannati",
-       "wantedpages-summary": "Elencu dî pàggini ca nun esìstunu però hannu lu maggiuri nùmmiru di ligami versu d'iddi, lassannu stari li pàggini chi' comu ligami versu d'iddi hannu sulu rimanni. P'aviri n'elencu dî pàggini ca nun esìstunu però hannu rimanni versu d'iddi, talìa [[{{#special:BrokenRedirects}}|l'elencu dî rimanni rutti]].",
-       "wantedpages-badtitle": "Tìtulu nun vàlidu ntô gruppu di risultati: $1",
+       "wantedpages-summary": "Elencu dî pàggini ca nun esìstinu pirò hannu lu maiuri nùmmiru di ligami versu d'iddi, lassannu stari li pàggini chi comu ligami versu d'iddi hannu sulu rimanni. P'aviri n'elencu dî pàggini ca nun esìstinu pirò hannu rimanni versu d'iddi, talìa [[{{#special:BrokenRedirects}}|l'elencu dî rimanni rutti]].",
+       "wantedpages-badtitle": "Tìtulu nun vàlidu ntô gruppu di risurtati: $1",
        "wantedfiles": "File addumannati",
-       "wantedfiletext-cat": "Li file ccassutta su' richiamati però nun esìstunu. Ntâ lista cci ponnu èssiri macari li file chi' stannu nta dipòsiti esterni, cu' tuttu chi' esìstunu. Sti fausi pusitivi sarrannu <del>sbarrati</del>. Sparti, li pàggini chi' nclùdunu file chi' nun esìstunu su' elincati nta [[:$1]].",
-       "wantedfiletext-cat-noforeign": "Li file ccassutta su' richiamati però nun esìstunu. Sparti, li pàggini chi' nclùdunu file chi' nun esìstunu su' elincati nta [[:$1]].",
-       "wantedfiletext-nocat": "Li file ccassutta su' richiamati però nun esìstunu. Ntâ lista cci ponnu èssiri macari li file chi' stannu nta dipòsiti esterni, cu' tuttu chi' esìstunu. Sti fausi pusitivi sarrannu <del>sbarrati</del>.",
-       "wantedfiletext-nocat-noforeign": "Li file ccassutta su' richiamati però nun esìstunu.",
+       "wantedfiletext-cat": "Li file ccassutta sù richiamati pirò nun esìstinu. Ntâ lista ci ponnu èssiri macari li file chi stannu nta dipòsiti esterni, cu tuttu chi esìstinu. Sti fàusi pusitivi sunnu <del>sbarrati</del>. Sparti, li pàggini chi nclùdinu file chi nun esìstinu sù elincati nta [[:$1]].",
+       "wantedfiletext-cat-noforeign": "Li file ccassutta sù richiamati pirò nun esìstinu. Sparti, li pàggini chi nclùdinu file chi nun esìstinu sù elincati nta [[:$1]].",
+       "wantedfiletext-nocat": "Li file ccassutta sù richiamati pirò nun esìstinu. Ntâ lista ci ponnu èssiri macari li file chi stannu nta dipòsiti esterni, cu tuttu chi esìstinu. Sti fàusi pusitivi sunnu <del>sbarrati</del>.",
+       "wantedfiletext-nocat-noforeign": "Li file ccassutta sù richiamati pirò nun esìstinu.",
        "wantedtemplates": "Template addumannati",
-       "mostlinked": "Pàggini cchiu' culligati",
-       "mostlinkedcategories": "Catigurìi Pcchiu' culligati",
-       "mostlinkedtemplates": "Pàggini cchiu' trasclusi",
-       "mostcategories": "Pàggini cu' cchiu' ssai catigurìi",
-       "mostimages": "File cchiu' culligati",
-       "mostinterwikis": "Pàggini cu' cchiu' ssai interwiki",
-       "mostrevisions": "Pàggini cu' cchiu' ssai virsioni",
+       "mostlinked": "Pàggini cchiù culligati",
+       "mostlinkedcategories": "Catigurìi cchiù culligati",
+       "mostlinkedtemplates": "Pàggini cchiù nclusi",
+       "mostcategories": "Pàggini cu cchiossai catigurìi",
+       "mostimages": "File cchiù culligati",
+       "mostinterwikis": "Pàggini cu cchiossai interwiki",
+       "mostrevisions": "Pàggini cu cchiossai virsioni",
        "prefixindex": "Ìnnici secunnu un prifissu",
        "prefixindex-namespace": "Tutti li pàggini cûn prifissu (namespace $1)",
        "prefixindex-strip": "Leva li prifissi nta l'elencu",
        "deadendpages": "Pàggini senza nisciuta",
        "deadendpagestext": "Li pàggini siguenti sunnu privi di lijami versu àutri pàggini di {{SITENAME}}.",
        "protectedpages": "Pàggini prutetti",
-       "protectedpages-indef": "Sulu prutizzioni a' tempu innitirminatu",
-       "protectedpages-summary": "Sta pàggina elenca li pàggini già esistenti chi' comu ad ora su' prutetti. Pi' na lista dî tìtuli prutetti, chî quali vèni pruibbutu criari pàggini novi, talìa [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
-       "protectedpages-cascade": "Sulu prutizzioni a' cascata",
+       "protectedpages-indef": "Sulu prutizzioni nfiniti",
+       "protectedpages-summary": "Sta pàggina elenca li pàggini già esistenti chi comu a ora sù prutetti. Pi na lista dî tìtuli prutetti, chî quali vèni pruibbutu criari pàggini novi, talìa [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
+       "protectedpages-cascade": "Sulu prutizzioni a cascata",
        "protectedpages-noredirect": "Ammuccia li rimanni",
-       "protectedpagesempty": "Pi' com'ora nun cc'è nudda pàggina prutetta cu' sti paràmitri.",
+       "protectedpagesempty": "Pi com'ora nun c'è nudda pàggina prutetta cu sti paràmitri.",
        "protectedpages-timestamp": "Data e ura",
        "protectedpages-page": "Pàggina",
        "protectedpages-expiry": "Scadenza",
        "protectedpages-unknown-timestamp": "Scanusciuti",
        "protectedpages-unknown-performer": "Utenti scanusciutu",
        "protectedtitles": "Tìtuli prutetti",
-       "protectedtitles-summary": "Sta pàggina elenca li tìtuli prutetti, chî quali vèni pruibbutu criari pàggini novi. Pi' na lista dî pàggini già esistenti chi' su' prutetti, talìa [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
-       "protectedtitlesempty": "Pi' com'ora nun cc'è nuddu tìtulu prutettu cu' sti paràmitri.",
+       "protectedtitles-summary": "Sta pàggina elenca li tìtuli prutetti, chî quali vèni pruibbutu criari pàggini novi. Pi na lista dî pàggini già esistenti chi sù prutetti, talìa [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
+       "protectedtitlesempty": "Pi com'ora nun c'è nuddu tìtulu prutettu cu sti paràmitri.",
        "listusers": "Lista di l'utenti",
        "listusers-editsonly": "Ammustra sulu l'utenti ca hannu cuntribbuti",
-       "listusers-creationsort": "Òrdina pi' data di criazzioni",
-       "listusers-desc": "Òrdina a' scìnniri",
-       "usereditcount": "$1 {{PLURAL:$1|cuntribbutu|cuntribbuta}}",
+       "listusers-creationsort": "Òrdina pi data di criazzioni",
+       "listusers-desc": "Òrdina a scìnniri",
+       "usereditcount": "$1 {{PLURAL:$1|cuntribbutu|cuntribbuti}}",
        "usercreated": "{{GENDER:$3|Criatu}} lu $1 ê $2",
        "newpages": "Pàggini novi",
        "newpages-username": "Utenti:",
-       "ancientpages": "Pàggini cchiu' vecchî",
+       "ancientpages": "Pàggini cchiù vecchî",
        "move": "Sposta",
        "movethispage": "Sposta sta pàggina",
        "unusedimagestext": "Li file ccassutta esìstinu pirò nun sunnu ncurpurati nta nudda pàggina.\nAccura: àutri siti web ponnu aviri lijami versu dûn file pi menzu di URL diretti; li file addupirati a sta manera putìssiru èssiri elincati ccassutta macari si si nni fa usu.",
-       "unusedcategoriestext": "Li siguenti pàggini di catigurìi esìstunu, però nudda autra pàggina o catigurìa nni fa' usu.",
+       "unusedcategoriestext": "Li pàggini di catigurìi siguenti esìstinu, pirò nudda àutra pàggina o catigurìa nni fa usu.",
        "notargettitle": "Nudda distinazzioni",
        "notargettext": "Nun spicificasti na pàggina o puru n'utenti comu distinazzioni di st'opirazzioni.",
        "nopagetitle": "La pàggina di distinazzioni nun esisti",
        "nopagetext": "La pàggina ca spicificasti comu distinazzioni nun esisti.",
-       "pager-newer-n": "{{PLURAL:$1|1 cchiu' novu|$1 cchiu' novi}}",
-       "pager-older-n": "{{PLURAL:$1|1 cchiu' vecchî|$1 cchiu' vecchî}}",
+       "pager-newer-n": "{{PLURAL:$1|1 cchiù novu|$1 cchiù novi}}",
+       "pager-older-n": "{{PLURAL:$1|1 cchiù vecchî|$1 cchiù vecchî}}",
        "suppress": "Supravisuri",
-       "querypage-disabled": "Sta pàggina spiciali fu' disattivata pi' mutivi di pristazzioni.",
-       "apihelp": "Guida a' l'API",
-       "apihelp-no-such-module": "Mòdulu \"$\" nun truvatu.",
+       "querypage-disabled": "Sta pàggina spiciali fu disattivata pi mutivi di pristazzioni.",
+       "apihelp": "Guida a l'API",
+       "apihelp-no-such-module": "Mòdulu \"$\" nun attruvatu.",
        "booksources": "Fonti libbrarî",
-       "booksources-search-legend": "Ricerca di fonti libbrarî",
+       "booksources-search-legend": "Arricerca di fonti libbrarî",
        "booksources-isbn": "Còdici ISBN:",
-       "booksources-search": "Va cerca",
+       "booksources-search": "Va arricerca",
        "booksources-text": "Ccassutta c'è n'elencu di lijami versu àutri siti ca vìnninu libbra novi e usati, e ponnu aviri maiuri nfurmazzioni a prupòsitu dî libbra ca stai circannu:",
-       "booksources-invalid-isbn": "Lu còdici ISBN chi' spicificasti nun pari bonu; cuntrolla si' nun cci furu sbagghî di ricupiatura.",
+       "booksources-invalid-isbn": "Lu còdici ISBN chi spicificasti nun pari bonu; cuntrolla si nun ci foru sbagghî di ricupiatura.",
        "specialloguserlabel": "Fattu di l'utenti:",
        "speciallogtitlelabel": "Oggettu (tìtulu o {{ns:user}}:nomuutenti):",
-       "log": "Riggistra",
-       "all-logs-page": "Tutti li riggistra pubblici",
-       "alllogstext": "Prisintazzioni cumminata di tutti li riggistra dispunìbbili di {{SITENAME}}.\nPoi ristrìnciri la visuali silizziunannu nu tipu di riggistru, l'utenti ca fici l'azzioni (cuntunu majusculi e minusculi), o la pàggina ntirissata (cuntunu majusculi e minusculi puru).",
+       "log": "Riggistri",
+       "all-logs-page": "Tutti li riggistri pùbblici",
+       "alllogstext": "Prisintazzioni cumminata di tutti li riggistri dispunìbbili di {{SITENAME}}.\nPoi ristrìnciri la visuali silizziunannu nu tipu di riggistru, l'utenti ca fici l'azzioni (cùntanu maiùsculi e minùsculi), o la pàggina ntirissata (cùntanu maiùsculi e minùsculi puru).",
        "logempty": "Nudda vuci currispunnenti ntô riggistru.",
        "log-title-wildcard": "Attrova tituli chi ncignanu cu",
        "showhideselectedlogentries": "Cancia la visibbilità dî vuci di riggistru scigghiuti",
        "allarticles": "Tutti li pàggini",
        "allinnamespace": "Tutti li pàggini dû namespace $1",
        "allpagessubmit": "Vai",
-       "allpagesprefix": "Ammustra li pàggini chi' accumènzanu cu':",
-       "allpagesbadtitle": "Lu tìtulu di pàggina spicificatu nun era vàlidu o avìa nu prifissu intir-linguìsticu o intir-wiki.\nPutissi cuntèniri unu o cchiu' ssai caràttiri chi' nun su' cunsintuti ntê tìtula.",
-       "allpages-bad-ns": "Lu namespace \"$1\" nun asisti supra a' {{SITENAME}}.",
+       "allpagesprefix": "Ammustra li pàggini chi accumènzanu cu:",
+       "allpagesbadtitle": "Lu tìtulu di pàggina spicificatu nun era vàlidu o avìa nu prifissu nterlinguìsticu o inter-wiki.\nPutissi cuntèniri unu o cchiossai caràttiri chi nun sù cunzintuti ntê tìtuli.",
+       "allpages-bad-ns": "Lu namespace \"$1\" nun esisti supra a {{SITENAME}}.",
        "allpages-hide-redirects": "Ammuccia li rimanni",
-       "cachedspecial-viewing-cached-ttl": "Stai taliannu na virsioni ntâ ''cache'' di sta pàggina, chi' po' èssiri vecchia nfinu a' $1.",
-       "cachedspecial-viewing-cached-ts": "Stai taliannu na virsioni ntâ ''cache'' di sta pàggina, chi' purrìa nun èssiri pirfittamenti aggiurnata.",
-       "cachedspecial-refresh-now": "Va talìa la cchiu' nova.",
+       "cachedspecial-viewing-cached-ttl": "Stai taliannu na virsioni ntâ ''cache'' di sta pàggina, chi pò èssiri vecchia nfinu a $1.",
+       "cachedspecial-viewing-cached-ts": "Stai taliannu na virsioni ntâ ''cache'' di sta pàggina, chi purrìa nun èssiri pirfettamenti aggiurnata.",
+       "cachedspecial-refresh-now": "Va talìa la cchiù nova.",
        "categories": "Catigurìi",
        "categoriespagetext": "{{PLURAL:$1|La catigurìa ccassutta cunteni|Li catigurìi ccassutta cuntèninu}} pàggini o file multimidiali.\nLi [[Special:UnusedCategories|catigurìi vacanti]] nun sunnu ammustrati ccà.\nTalìa macari li [[Special:WantedCategories|catigurìi addumannati]].",
-       "categoriesfrom": "Ammustra li catigurìi a' pàrtiri di:",
-       "special-categories-sort-count": "òrdina pi' cuntìggiu",
+       "categoriesfrom": "Ammustra li catigurìi a pàrtiri di:",
+       "special-categories-sort-count": "òrdina pi cuntiggiu",
        "special-categories-sort-abc": "ordina alfabbeticamenti",
-       "deletedcontributions": "Cuntribbuta di l'utenti cancillati",
-       "deletedcontributions-title": "Cuntribbuta di l'utenti cancillati",
-       "sp-deletedcontributions-contribs": "cuntribbuta",
+       "deletedcontributions": "Cuntribbuti di l'utenti cancillati",
+       "deletedcontributions-title": "Cuntribbuti di l'utenti cancillati",
+       "sp-deletedcontributions-contribs": "cuntribbuti",
        "linksearch": "Arricerca dî lijami di fora",
-       "linksearch-pat": "Esprissioni di risciduta:",
+       "linksearch-pat": "Sprissioni d'arricerca:",
        "linksearch-ns": "Namespace:",
        "linksearch-ok": "Arricerca",
-       "linksearch-text": "Si ponnu adupirari li caràttiri matta, ad esempiu \"*.wikipedia.org\".\nCci voli almenu nu duminiu di primu liveddu, ad esempiu \"*.org\".<br />\n{{PLURAL:$2|Protucollu suppurtatu|Protucolli suppurtati}}: $1 (è pridifinutu http:// si' nun si nni spicìfica)",
+       "linksearch-text": "Si ponnu adupirari li metacaràttiri, p'esempiu \"*.wikipedia.org\".\nCi voli armenu nu duminiu di primu liveddu, p'esempiu \"*.org\".<br />\n{{PLURAL:$2|Protucollu suppurtatu|Protucolli suppurtati}}: $1 (è pridifinutu http:// si nun si nni spicìfica)",
        "linksearch-line": "$1 è culligatu dâ pàggina $2",
-       "linksearch-error": "Li caràttiri matta ponnu appariri sulu ô principiu dû nomu host.",
-       "listusersfrom": "Ammustra l'utenti a' pàrtiri di:",
+       "linksearch-error": "Li metacaràttiri ponnu appariri sulu ô principiu dû nomu host.",
+       "listusersfrom": "Ammustra l'utenti a pàrtiri di:",
        "listusers-submit": "Ammustra",
        "listusers-noresult": "Nuddu utenti attruvatu.",
        "listusers-blocked": "(bluccatu)",
        "activeusers": "Lista di l'utenti attivi",
-       "activeusers-intro": "Chista è na lista di l'utenti chi' fìciru na quarchi' attività {{PLURAL:$1|nta l'ùltimu jornu|nta l'ùltimi $1 jorna}}.",
-       "activeusers-count": "$1 {{PLURAL:$1|azziòni|azziòna}} nta {{PLURAL:$3|l'ùltimu jornu|l'ùltimi $3 jorna}}",
-       "activeusers-from": "Ammustra l'utenti a' pàrtiri di:",
+       "activeusers-intro": "Chista è na lista di l'utenti chi fìciru na quarchi attività {{PLURAL:$1|nta l'ùrtimu jornu|nta l'ùrtimi $1 jorna}}.",
+       "activeusers-count": "$1 {{PLURAL:$1|azzioni|azzioni}} nta {{PLURAL:$3|l'ùrtimu jornu|l'ùrtimi $3 jorna}}",
+       "activeusers-from": "Ammustra l'utenti a pàrtiri di:",
        "activeusers-hidebots": "Ammuccia li bot",
        "activeusers-hidesysops": "Ammuccia l'amministratura",
-       "activeusers-noresult": "Nuddu utenti truvatu.",
+       "activeusers-noresult": "Nuddu utenti attruvatu.",
        "listgrouprights": "Dritti di gruppa d'utenti",
-       "listgrouprights-summary": "Ccà sutta sunnu elincati li gruppa d'utenti difinuti nta sta wiki, cu li so dritti d'accessu.\nCci ponnu èssiri [[{{MediaWiki:Listgrouprights-helppage}}|autri nfurmazzioni]] a' prupòsitu di ciascunu drittu.",
-       "listgrouprights-key": "Legenda:\n* <span class=\"listgrouprights-granted\">Drittu cuncidutu</span>\n* <span class=\"listgrouprights-revoked\">Drittu rivucatu</span>",
+       "listgrouprights-summary": "Ccà sutta sunnu elincati li gruppa d'utenti difinuti nta sta wiki, cu li sò dritti d'accessu.\nCi ponnu èssiri [[{{MediaWiki:Listgrouprights-helppage}}|àutri nfurmazzioni]] a prupòsitu d'ognidunu drittu.",
+       "listgrouprights-key": "Liggenna:\n* <span class=\"listgrouprights-granted\">Drittu cuncidutu</span>\n* <span class=\"listgrouprights-revoked\">Drittu rivucatu</span>",
        "listgrouprights-group": "Gruppu",
        "listgrouprights-rights": "Dritti",
        "listgrouprights-helppage": "Help:Diritti dô gruppu",
-       "listgrouprights-members": "(elencu di cu nni fa' parti)",
+       "listgrouprights-members": "(elencu di cui nni fa parti)",
        "listgrouprights-addgroup": "Agghiùnciri {{PLURAL:$2|ô gruppu|ê gruppa}}: $1",
-       "listgrouprights-removegroup": "Livari{{PLURAL:$2|dû gruppu|dî gruppa}}: $1",
-       "listgrouprights-addgroup-all": "Agghiùnciri a' tutti li gruppa",
+       "listgrouprights-removegroup": "Livari {{PLURAL:$2|dû gruppu|dî gruppa}}: $1",
+       "listgrouprights-addgroup-all": "Agghiùnciri a tutti li gruppa",
        "listgrouprights-removegroup-all": "Livari di tutti li gruppa",
        "listgrouprights-addgroup-self": "Agghiùncirisi {{PLURAL:$2|ô gruppu|ê gruppa}}: $1",
        "listgrouprights-removegroup-self": "Livàrisi {{PLURAL:$2|dû gruppu|dî gruppa}}: $1",
-       "listgrouprights-addgroup-self-all": "Agghiùncirisi a' tutti li gruppa",
+       "listgrouprights-addgroup-self-all": "Agghiùncirisi a tutti li gruppa",
        "listgrouprights-removegroup-self-all": "Livàrisi di tutti li gruppa",
-       "listgrouprights-namespaceprotection-header": "Ristrizzioni pi' namespace",
+       "listgrouprights-namespaceprotection-header": "Ristrizzioni pi namespace",
        "listgrouprights-namespaceprotection-namespace": "Namespace",
-       "listgrouprights-namespaceprotection-restrictedto": "Dritti chi' cunsentunu a' l'utenti di fari canciamenti",
+       "listgrouprights-namespaceprotection-restrictedto": "Dritti chi cunzèntinu a l'utenti di fari canciamenti",
        "trackingcategories": "Catigurìi di tracciamentu",
-       "trackingcategories-summary": "Sta pàggina elenca i catigurìi di tracciamèntu chi' vènunu jincuti autumaticamenti dû software MediaWiki. I so nomi si ponnu canciari mudificannu i missaggi di sistema currispunnenti ntô namespace {{ns:8}}.",
+       "trackingcategories-summary": "Sta pàggina elenca li catigurìi di tracciamentu chi vèninu jincuti autumaticamenti dû software MediaWiki. Li sò nomi si ponnu canciari canciannu li missaggi di sistema currispunnenti ntô namespace {{ns:8}}.",
        "trackingcategories-msg": "Catigurìa di tracciamentu",
        "trackingcategories-name": "Nomu dû missaggiu",
        "trackingcategories-desc": "Criterî pâ nclusioni ntâ catigurìa",
-       "noindex-category-desc": "Sta pàggina nun veni innicizzata dî robot picchì cunteni la palora màggica <code><nowiki>__NOINDEX__</nowiki></code> e sta nta nu namespace unni sta marcatura è cunsintuta.",
-       "index-category-desc": "Sta pàggina cunteni la palora màggica <code><nowiki>__INDEX__</nowiki></code> (e sta nta nu namespace unni sta marcatura è cunsintuta), e pi' chistu veni innicizzata dî robot quannu nurmalmenti nô sarrìa.",
-       "post-expand-template-inclusion-category-desc": "La grannizza di sta pàggina passa <code>$wgMaxArticleSize</code> appressu a' l'espansioni di tutti li template, dunca certi template nun furu espannuti.",
-       "post-expand-template-argument-category-desc": "Sta pàggina veni cchiu' granni di <code>$wgMaxArticleSize</code> appressu chi' s'espànni l'argumentu dûn template (quarchi' cosa nta parèntisi graffi tripli, comu <code>{{{Pippu}}}</code>).",
-       "expensive-parserfunction-category-desc": "Sta pàggina adòpira troppi funzioni di l'analizzaturi sintatticu custusi (comu <code>#ifexist</code>). Talìa [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "noindex-category-desc": "Sta pàggina nun veni nnicizzata dî robot pirchì cunteni la palora màggica <code><nowiki>__NOINDEX__</nowiki></code> e sta nta nu namespace unni sta marcatura è cunzintuta.",
+       "index-category-desc": "Sta pàggina cunteni la palora màggica <code><nowiki>__INDEX__</nowiki></code> (e sta nta nu namespace unni sta marcatura è cunzintuta), e pi chistu veni nnicizzata dî robot quannu nurmalmenti nun lu fussi.",
+       "post-expand-template-inclusion-category-desc": "La grannizza di sta pàggina passa <code>$wgMaxArticleSize</code> appressu a l'espanzioni di tutti li template, dunca certi template nun foru espannuti.",
+       "post-expand-template-argument-category-desc": "Sta pàggina veni cchiù granni di <code>$wgMaxArticleSize</code> appressu chi s'espanni l'argumentu dûn template (quarchi cosa ntra parèntisi graffi tripli, comu <code>{{{Cicciu}}}</code>).",
+       "expensive-parserfunction-category-desc": "Sta pàggina adòpira troppi funzioni di l'analizzaturi sintàtticu custusi (comu <code>#ifexist</code>). Talìa [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "Sta pàggina cunteni nu lijami a file ruttu (nu lijami pi ncurpurari nu file chi nun esisti).",
        "hidden-category-category-desc": "Sta catigurìa cunteni <code><nowiki>__HIDDENCAT__</nowiki></code> ntô corpu dâ sò pàggina, cosa chi nun la fa spuntari comu mpustazzioni pridifinuta dintra dû riquatru dî lijami ê catigurìi ntê pàggini.",
        "trackingcategories-nodesc": "Nudda discrizzioni dispunìbbili.",
        "trackingcategories-disabled": "Sta catigurìa è disattivata",
-       "mailnologin": "Nuddu nnirizzu pi' mannari",
-       "mailnologintext": "Hâ' [[Special:UserLogin|tràsiri]] e aviri riggistratu nu nnirizzu di posta elittrònica vàlidu ntê to [[Special:Preferences|prifirenzi]] pi' putiri mannari posta elittrònica a' l'àutri utenti.",
-       "emailuser": "Manna nu missaggiu di posta elittrònica a' st'utenti",
-       "emailuser-title-target": "Mannari nu missaggiu di posta elittrònica a' {{GENDER:$1|stu utenti|sta utenti}}",
-       "emailuser-title-notarget": "Mannari nu missaggiu di posta elittrònica a' n'utenti",
-       "emailpagetext": "Poi adupirari lu mòdulu ccassutta pi' mannari nu missaggiu di posta elittrònica a' {{GENDER:$1|stu utenti|sta utenti}}.\nLu nnirizzu di posta elittrònica ca mittisti ntê [[Special:Preferences|prifirenzi dû to utenti]] và a' cumpàriri comu mittenti dû missaggiu, di manera ca lu distinatariu ti pò arrispùnniri dirittamenti.",
+       "mailnologin": "Nuddu nnirizzu pi mannari",
+       "mailnologintext": "Hai a [[Special:UserLogin|tràsiri]] e aviri riggistratu nu nnirizzu di posta elittrònica vàlidu ntê tò [[Special:Preferences|prifirenzi]] pi putiri mannari posta elittrònica a l'àutri utenti.",
+       "emailuser": "Manna nu missaggiu di posta elittrònica a st'utenti",
+       "emailuser-title-target": "Mannari nu missaggiu di posta elittrònica a {{GENDER:$1|st'utenti|st'utenti}}",
+       "emailuser-title-notarget": "Mannari nu missaggiu di posta elittrònica a n'utenti",
+       "emailpagetext": "Poi adupirari lu mòdulu ccassutta pi mannari nu missaggiu di posta elittrònica a {{GENDER:$1|st'utenti|st'utenti}}.\nLu nnirizzu di posta elittrònica ca mittisti ntê [[Special:Preferences|prifirenzi dû tò utenti]] va a cumpàriri comu mittenti dû missaggiu, di manera ca lu distinatariu ti pò arrispùnniri direttamenti.",
        "defemailsubject": "Missaggiu di {{SITENAME}} di l'utenti \"$1\"",
-       "usermaildisabled": "Missaggi di posta elittrònica a' l'utenti disattivati",
-       "usermaildisabledtext": "Nta sta wiki nun si ponnu mannari missaggi di posta elittrònica a' l'autri utenti",
+       "usermaildisabled": "Missaggi di posta elittrònica a l'utenti disattivati",
+       "usermaildisabledtext": "Nta sta wiki nun si ponnu mannari missaggi di posta elittrònica a l'àutri utenti",
        "noemailtitle": "Nuddu nnirizzu di posta elittrònica",
-       "noemailtext": "St'utenti nun havi spicificatu nu nnirizzu di posta elittrònica vàlidu.",
-       "nowikiemailtext": "St'utenti scigghìu di nun ricèviri missaggi di posta elittrònica di l'autri utenti.",
+       "noemailtext": "St'utenti nun spicificau nu nnirizzu di posta elittrònica vàlidu.",
+       "nowikiemailtext": "St'utenti scigghìu di nun arricèviri missaggi di posta elittrònica di l'àutri utenti.",
        "emailnotarget": "Spicificatu comu distinatariu un nomu utenti nun esistenti o nun vàlidu.",
        "emailtarget": "Metti lu nomu utenti dû distinatariu",
        "emailusername": "Nomu utenti:",
        "emailusernamesubmit": "Manna",
-       "email-legend": "Manna posta elittrònica a n'autru utenti di {{SITENAME}}",
+       "email-legend": "Manna posta elittrònica a n'àutru utenti di {{SITENAME}}",
        "emailfrom": "Di:",
        "emailto": "A:",
        "emailsubject": "Uggettu:",
        "emailmessage": "Missaggiu:",
        "emailsend": "Manna",
        "emailccme": "Mànnami na copia dû missaggiu.",
-       "emailccsubject": "Copia dû missaggiu ca mannasti a' $1: $2",
+       "emailccsubject": "Copia dû missaggiu ca mannasti a $1: $2",
        "emailsent": "Missaggiu di posta elittrònica mannatu",
-       "emailsenttext": "Lu to missaggiu di posta elittrònica fu' mannatu.",
-       "emailuserfooter": "Stu missaggiu fu' mannatu di $1 a' $2 pi' menzu dâ funzioni \"{{int:emailuser}}\" supra a' {{SITENAME}}.",
+       "emailsenttext": "Lu tò missaggiu di posta elittrònica fu mannatu.",
+       "emailuserfooter": "Stu missaggiu fu mannatu di $1 a $2 pi menzu dâ funzioni \"{{int:emailuser}}\" supra a {{SITENAME}}.",
        "usermessage-summary": "Lassatu nu missaggiu di sistema.",
        "usermessage-editor": "Missaggeri di sistema",
        "watchlist": "Lista taliata",
-       "mywatchlist": "La me lista taliata",
+       "mywatchlist": "La mè lista taliata",
        "watchlistfor2": "Di $1, $2",
-       "nowatchlist": "Nun hai nudda vuci ntâ to lista taliata.",
-       "watchlistanontext": "Pi' vìdiri e canciari li vuci dâ to lista taliata hâ' tràsiri.",
-       "watchnologin": "Nun hai trasutu",
+       "nowatchlist": "Nun hai nudda vuci ntâ tò lista taliata.",
+       "watchlistanontext": "Pi vìdiri e canciari li vuci dâ tò lista taliata hai a tràsiri.",
+       "watchnologin": "Nun trasisti",
        "addwatch": "Agghiunci â lista taliata",
        "addedwatchtext": "La pàggina «[[:$1]]» e la sò pàggina di discussioni foru agghiunciuti â tò [[Special:Watchlist|lista taliata]].",
-       "addedwatchtext-short": "La pàggina \"$1\" fu' agghiunciuta â to lista taliata.",
+       "addedwatchtext-short": "La pàggina \"$1\" fu agghiunciuta â tò lista taliata.",
        "removewatch": "Leva dâ lista taliata",
        "removedwatchtext": "La pàggina «[[:$1]]» e la sò pàggina di discussioni foru livati dâ tò [[Special:Watchlist|lista taliata]].",
-       "removedwatchtext-short": "La pàggina \"$1\" fu' livata dâ to lista taliata.",
+       "removedwatchtext-short": "La pàggina \"$1\" fu livata dâ tò lista taliata.",
        "watch": "Talìa",
        "watchthispage": "Talìa sta pàggina",
-       "unwatch": "Nun taliari cchiu'",
+       "unwatch": "Nun taliari cchiù",
        "unwatchthispage": "Finisci di taliari",
        "notanarticle": "Nun è na pàggina di cuntinutu",
-       "notvisiblerev": "L'ùltima virsioni fatta di n'utenti diffirenti fu' cancillata",
-       "watchlist-details": "{{PLURAL:$1|Cc'è na pàggina|Cci su' $1 pàggini}} ntâ to lista taliata, senza cuntari sparti li pàggini di discussioni.",
+       "notvisiblerev": "L'ùrtima virsioni fatta di n'utenti diffirenti fu cancillata",
+       "watchlist-details": "{{PLURAL:$1|C'è na pàggina|Ci sù $1 pàggini}} ntâ tò lista taliata, senza cuntari sparti li pàggini di discussioni.",
        "wlheader-enotif": "La nutìfica via posta elittrònica è attivata.",
-       "wlheader-showupdated": "Li pàggini ca hannu statu canciati dâ tò ùrtima vìsita sunnu evidinziati 'n <strong>grassettu</strong>.",
+       "wlheader-showupdated": "Li pàggini ca foru canciati dâ tò ùrtima vìsita sunnu evidinziati n <strong>grassettu</strong>.",
        "wlnote": "Sutta attrovi l'ùrtim{{PLURAL:$1|u canciamentu|i <strong>$1</strong> canciamenti}} fatti nta l'ùrtim{{PLURAL:$1|a ura|i <strong>$2</strong> uri}}, aggiurnati ê $4 dû $3.",
        "wlshowlast": "Ammustra l'ùrtimi $1 uri $2 jorna",
        "watchlist-options": "Opzioni dâ lista taliata",
        "watching": "Agghiunciuta â lista taliata...",
        "unwatching": "Cancillata dâ lista taliata...",
-       "watcherrortext": "Mmattìu n'erruri ntô canciari i to mpustazzioni dâ lista taliata di \"$1\".",
+       "watcherrortext": "Ammattìu n'erruri ntô canciari li tò mpustazzioni dâ lista taliata di \"$1\".",
        "enotif_reset": "Segna tutti li pàggini comu già visitati",
        "enotif_impersonal_salutation": "Utenti di {{SITENAME}}",
        "enotif_subject_deleted": "La pàggina $1 supra a {{SITENAME}} fu cancillata di $2",
-       "enotif_subject_created": "La pàggina $1 supra a' {{SITENAME}} fu' criata di $2",
-       "enotif_subject_moved": "La pàggina $1 supra a' {{SITENAME}} fu' spustata di $2",
-       "enotif_subject_restored": "La pàggina $1 supra a' {{SITENAME}} fu' ripristinata di $2",
-       "enotif_subject_changed": "La pàggina $1 supra a' {{SITENAME}} fu' canciata di $2",
-       "enotif_body_intro_deleted": "La pàggina $1 supra a' {{SITENAME}} fu' cancillata lu $PAGEEDITDATE di $2, talìa $3.",
-       "enotif_body_intro_created": "La pàggina $1 supra a' {{SITENAME}} fu' criata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
-       "enotif_body_intro_moved": "La pàggina $1 supra a' {{SITENAME}} fu' spustata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
-       "enotif_body_intro_restored": "La pàggina $1 supra a' {{SITENAME}} fu' ripristinata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
-       "enotif_body_intro_changed": "La pàggina $1 supra a' {{SITENAME}} fu' canciata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
+       "enotif_subject_created": "La pàggina $1 supra a {{SITENAME}} fu criata di $2",
+       "enotif_subject_moved": "La pàggina $1 supra a {{SITENAME}} fu spustata di $2",
+       "enotif_subject_restored": "La pàggina $1 supra a {{SITENAME}} fu ripristinata di $2",
+       "enotif_subject_changed": "La pàggina $1 supra a {{SITENAME}} fu canciata di $2",
+       "enotif_body_intro_deleted": "La pàggina $1 supra a {{SITENAME}} fu cancillata lu $PAGEEDITDATE di $2, talìa $3.",
+       "enotif_body_intro_created": "La pàggina $1 supra a {{SITENAME}} fu criata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
+       "enotif_body_intro_moved": "La pàggina $1 supra a {{SITENAME}} fu spustata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
+       "enotif_body_intro_restored": "La pàggina $1 supra a {{SITENAME}} fu ripristinata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
+       "enotif_body_intro_changed": "La pàggina $1 supra a {{SITENAME}} fu canciata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
        "enotif_lastvisited": "Cunzurta $1 pi vìdiri tutti li canciamenti dâ tò ùrtima vìsita.",
-       "enotif_lastdiff": "Vidi $1 pi' taliari lu canciamentu.",
+       "enotif_lastdiff": "Vidi $1 pi taliari lu canciamentu.",
        "enotif_anon_editor": "utenti anonimu $1",
-       "enotif_body": "Gintili $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nRiassuntu fattu di l'auturi: $PAGESUMMARY $PAGEMINOREDIT\n\nPi' cuntattari l'auturi:\nmail: $PAGEEDITOR_EMAIL\nwiki: $PAGEEDITOR_WIKI\n\nNun ti mannamu autri nutìfichi 'n casu di ultiriuri attività a' menu ca nun vìsiti dda pàggina mentri chi' si' trasutu. Poi puru mpustari dâ to lista taliata l'avvisu di nutìfica pi' tutti li pàggini chi' cunteni.\n\nLu sistema di nutìfica di {{SITENAME}}, ô to sirvizziu\n\n--\nPi' canciari li to mpustazzioni di nutìfica via posta elittrònica, vìsita\n{{canonicalurl:{{#special:Preferences}}}}\n\nPi' canciari li mpustazzioni dâ to lista taliata, vìsita\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nPi' livari sta pàggina dâ to lista taliata, vìsita\n$UNWATCHURL\n\nPi' lassari cummenti e arricèviri ultiriuri assistenza:\n$HELPPAGE",
+       "enotif_body": "Gintili $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nRiassuntu fattu di l'auturi: $PAGESUMMARY $PAGEMINOREDIT\n\nPi cuntattari l'auturi:\nmail: $PAGEEDITOR_EMAIL\nwiki: $PAGEEDITOR_WIKI\n\nNun ti mannamu àutri nutìfichi n casu d'ultiriuri attività a menu ca nun vìsiti dda pàggina mentri chi sî trasutu. Poi puru mpustari dâ tò lista taliata l'avvisu di nutìfica pi tutti li pàggini chi cunteni.\n\nLu sistema di nutìfica di {{SITENAME}}, ô tò sirvizziu\n\n--\nPi canciari li tò mpustazzioni di nutìfica via posta elittrònica, vìsita\n{{canonicalurl:{{#special:Preferences}}}}\n\nPi canciari li mpustazzioni dâ tò lista taliata, vìsita\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nPi livari sta pàggina dâ tò lista taliata, vìsita\n$UNWATCHURL\n\nPi lassari cummenti e arricèviri ultiriuri assistenza:\n$HELPPAGE",
        "created": "criatu",
        "changed": "canciatu",
        "deletepage": "Cancella la pàggina",
-       "confirm": "Cunfirma",
+       "confirm": "Cunferma",
        "excontent": "lu cuntinutu era: \"$1\"",
        "excontentauthor": "lu cuntinutu era: \"$1\" (e lu sulu cuntribbuturi era \"[[Special:Contributions/$2|$2]]\")",
        "exbeforeblank": "lu cuntinutu prima dû svacantamentu era: \"$1\"",
        "delete-confirm": "Cancella \"$1\"",
        "delete-legend": "Cancella",
-       "historywarning": "<strong>Accura:</strong> La pàggina ca stai pi' cancillari havi na crunuluggìa cu' $1 virsioni:",
-       "confirmdeletetext": "Stai cancillannu na pàggina cu' tutta la so crunuluggìa.\nPi' favuri, cunfirma ca ntenni fari sta cosa, ca hai caputu li cunsiguenzi, e chi' lu fai secunnu [[{{MediaWiki:Policy-url}}|li linî guida]].",
+       "historywarning": "<strong>Accura:</strong> La pàggina ca stai pi cancillari havi na crunuluggìa cu $1 virsioni:",
+       "confirmdeletetext": "Stai cancillannu na pàggina cu tutta la sò crunuluggìa.\nPi favuri, cunferma ca ntenni fari sta cosa, ca capisti li cunziguenzi, e chi lu fai secunnu [[{{MediaWiki:Policy-url}}|li lìnii guida]].",
        "actioncomplete": "Azzioni cumpritata",
        "actionfailed": "Azioni fallita",
        "deletedtext": "\"$1\" ha statu cancillatu.\nTalìa $2 pi na lista di cancillazzioni ricenti.",
        "deletionlog": "riggistru dî cancillazzioni",
        "reverted": "Ripristinata la virsioni pricidenti",
        "deletecomment": "Mutivu:",
-       "deleteotherreason": "Autru o ultiriuri mutivu:",
-       "deletereasonotherlist": "Autru mutivu",
-       "deletereason-dropdown": "* Mutivi cchiu' cumuni pâ cancillazzioni\n** Spam\n** Vannalismu\n** Viulazzioni di lu drittu d'auturi\n** Dumanna di l'auturi\n** Rimannu scassatu",
+       "deleteotherreason": "Àutru o ultiriuri mutivu:",
+       "deletereasonotherlist": "Àutru mutivu",
+       "deletereason-dropdown": "* Mutivi cchiù cumuni pâ cancillazzioni\n** Spam\n** Vannalismu\n** Viulazzioni di lu drittu d'auturi\n** Dumanna di l'auturi\n** Rimannu scassatu",
        "delete-edit-reasonlist": "Cancia li mutivi dâ cancillazzioni",
-       "delete-toobig": "Sta pàggina havi na crunuluggìa dî canciamenti assai longa, cchiu' ssai di $1 {{PLURAL:$1|virsioni|virsioni}}).\nLa cancillazzioni dî pàggini comu a' chista è risirvata, pi' scansari la pussibbilitati di pruvucari senza vulìrilu prubblemi a' {{SITENAME}}.",
-       "delete-warning-toobig": "Sta pàggina havi na crunuluggìa dî canciamenti assai longa, cchiu' ssai di $1 {{PLURAL:$1|virsioni|virsioni}}).\nLa so cancillazzioni po' disturbari lu funziunamentu di  {{SITENAME}}; prucedi cu' cautela.",
+       "delete-toobig": "Sta pàggina havi na crunuluggìa dî canciamenti assai longa, cchiossai di $1 {{PLURAL:$1|virsioni|virsioni}}).\nLa cancillazzioni dî pàggini comu a chista è risirvata, pi scanzari la pussibbilitati di pruvucari senza vulìrilu prubblemi a {{SITENAME}}.",
+       "delete-warning-toobig": "Sta pàggina havi na crunuluggìa dî canciamenti assai longa, cchiossai di $1 {{PLURAL:$1|virsioni|virsioni}}).\nLa sò cancillazzioni pò disturbari lu funziunamentu di  {{SITENAME}}; prucedi cu cautela.",
        "deleteprotected": "Nun poi cancillari sta pàggina pirchì fu prutiggiuta.",
-       "deleting-backlinks-warning": "'''Accura:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Autri pàggini]] su' culligati o trascludunu la pàggina chi' stai cancillannu.",
+       "deleting-backlinks-warning": "'''Accura:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Àutri pàggini]] sunnu culligati o nclùdinu la pàggina chi stai cancillannu.",
        "rollback": "Annullamentu di canciamenti",
        "rollbacklink": "canciu n'arreri",
-       "rollbacklinkcount": "cancia n'arreri $1 {{PLURAL:$1|mudìfica|mudìfichi}}",
-       "rollbacklinkcount-morethan": "cancia n'arreri cchiu' ssai di $1 {{PLURAL:$1|mudìfica|mudìfichi}}",
-       "rollbackfailed": "Lu canciu 'n arreri nun riniscìu",
-       "cantrollback": "Nun si po' annullari lu canciamentu;\nl'ùltimu cuntribbuturi è l'ùnicu auturi di sta pàggina.",
-       "alreadyrolled": "Nun si po' annullari l'ùltimu canciamentu â pàggina [[:$1]] fattu di [[User:$2|$2]] ([[User talk:$2|discussioni]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nquarchidun'autru già hâ canciatu la pàggina o puru hâ fattu nu canciu n'arreri.\n\nL'ùltimu canciamentu â pàggina fu' fattu di [[User:$3|$3]] ([[User talk:$3|discussioni]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
+       "rollbacklinkcount": "cancia n'arreri $1 {{PLURAL:$1|canciamentu|canciamenti}}",
+       "rollbacklinkcount-morethan": "cancia n'arreri cchiossai di $1 {{PLURAL:$1|canciamentu|canciamenti}}",
+       "rollbackfailed": "Lu canciu n arreri nun arriniscìu",
+       "cantrollback": "Nun si pò annullari lu canciamentu;\nl'ùrtimu cuntribbuturi è l'ùnicu auturi di sta pàggina.",
+       "alreadyrolled": "Nun si pò annullari l'ùrtimu canciamentu â pàggina [[:$1]] fattu di [[User:$2|$2]] ([[User talk:$2|discussioni]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nquarchidun'àutru già canciau la pàggina o puru fici nu canciu n'arreri.\n\nL'ùrtimu canciamentu â pàggina fu fattu di [[User:$3|$3]] ([[User talk:$3|discussioni]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Lu riassuntu dû canciamentu era: \"''$1''\".",
-       "revertpage": "Annullati li canciamenti fatti di [[Special:Contributions/$2|$2]] ([[User talk:$2|discussioni]]) nfina a' l'ùltima virsioni di [[User:$1|$1]]",
-       "revertpage-nouser": "Annullati li canciamenti fatti di n'utenti ammucciatu nfina a' l'ùltima virsioni di {{GENDER:$1|[[User:$1|$1]]}}",
-       "rollback-success": "Annullati li canciamenti di $1;\nsi turnau a' l'ùltima virsioni di $2.",
+       "revertpage": "Annullati li canciamenti fatti di [[Special:Contributions/$2|$2]] ([[User talk:$2|discussioni]]) nfina a l'ùrtima virsioni di [[User:$1|$1]]",
+       "revertpage-nouser": "Annullati li canciamenti fatti di n'utenti ammucciatu nfina a l'ùrtima virsioni di {{GENDER:$1|[[User:$1|$1]]}}",
+       "rollback-success": "Annullati li canciamenti di $1;\nsi turnau a l'ùrtima virsioni di $2.",
        "sessionfailure-title": "Erruri dâ sissioni",
-       "sessionfailure": "Pari chi' cc'è quarchi' prubblema câ to sissioni di trasuta;\nst'azzioni fu' annullata comu pricauzzioni contra dû furtu di sissioni.\nTorna â pàggina pricidenti, ricàrricala e prova n'autra vota.",
+       "sessionfailure": "Pari chi c'è quarchi prubblema câ tò sissioni di trasuta;\nst'azzioni fu annullata comu pricauzzioni contra dû furtu di sissioni.\nTorna â pàggina pricidenti, arricàrricala e prova n'àutra vota.",
        "changecontentmodel": "Canciamentu dû mudellu dû cuntinutu di na pàggina",
        "changecontentmodel-legend": "Canciamentu dû mudellu dû cuntinutu",
        "changecontentmodel-title-label": "Tìtulu dâ pàggina",
        "logentry-contentmodel-change-revertlink": "annulla",
        "logentry-contentmodel-change-revert": "annullamentu",
        "protectlogpage": "Riggistru dî prutizzioni",
-       "protectlogtext": "Ccassutta c'è nu riggistru dî canciamenti â prutizzioni dî pàggini.\nVidi la [[Special:ProtectedPages|lista dî pàggini prutetti]] pi' canùsciri tutti i prutizzioni di pàggini chi' su' in viguri.",
+       "protectlogtext": "Ccassutta c'è nu riggistru dî canciamenti â prutizzioni dî pàggini.\nVidi la [[Special:ProtectedPages|lista dî pàggini prutetti]] pi canùsciri tutti li prutizzioni di pàggini chi sù n viguri.",
        "protectedarticle": "prutiggìu [[$1]]",
        "modifiedarticleprotection": "canciau lu liveddu di prutizzioni di \"[[$1]]\"",
        "unprotectedarticle": "livau la prutizzioni di \"[[$1]]\"",
        "protect-title": "Canciamentu dû liveddu di prutizzioni di \"$1\"",
        "protect-title-notallowed": "Vista dû liveddu di prutizzioni di \"$1\"",
        "prot_1movedto2": "spustau [[$1]] nta [[$2]]",
-       "protect-badnamespace-title": "Namespace unni nun si po' prutèggiri",
+       "protect-badnamespace-title": "Namespace unni nun si pò prutèggiri",
        "protect-badnamespace-text": "Li pàggini nta stu namespace nun si ponnu prutèggiri.",
-       "protect-norestrictiontypes-text": "Sta pàggina nun si po' prutèggiri picchì nun cc'è nudda sorta di ristrizzioni dispunìbbili.",
-       "protect-norestrictiontypes-title": "Pàggina chi' nun si po' prutèggiri",
-       "protect-legend": "Cunfirma la prutizzioni",
+       "protect-norestrictiontypes-text": "Sta pàggina nun si pò prutèggiri pirchì nun c'è nudda sorta di ristrizzioni dispunìbbili.",
+       "protect-norestrictiontypes-title": "Pàggina chi nun si pò prutèggiri",
+       "protect-legend": "Cunferma la prutizzioni",
        "protectcomment": "Mutivu:",
        "protectexpiry": "Scadenza",
        "protect_expiry_invalid": "L'ura di scadenza nun è vàlida.",
-       "protect_expiry_old": "L'ura di scadenza già havi passatu.",
-       "protect-unchain-permissions": "Sblocca autri opzioni di prutizzioni",
-       "protect-text": "Cca poi a' vìdiri e canciari lu liveddu di prutizzioni dâ pàggina <strong>$1</strong>.",
-       "protect-locked-blocked": "Nun si ponnu canciari li livedda di prutizzioni quannu unu è bluccatu.\nCca cci su' li mpustazzioni attuali dâ pàggina <strong>$1</strong>:",
-       "protect-locked-dblock": "Nun si ponnu canciari li livedda di prutizzioni picchì cc'è attivatu un bloccu dâ basi di dati.\nCca cci su' li mpustazzioni attuali dâ pàggina <strong>$1</strong>:",
-       "protect-locked-access": "Lu to cuntu nun havi lu pirmissu di canciari li livedda di prutizzioni.\nCca cci su' li mpustazzioni attuali dâ pàggina <strong>$1</strong>:",
+       "protect_expiry_old": "L'ura di scadenza già passau.",
+       "protect-unchain-permissions": "Sblocca àutri opzioni di prutizzioni",
+       "protect-text": "Ccà poi vìdiri e canciari lu liveddu di prutizzioni dâ pàggina <strong>$1</strong>.",
+       "protect-locked-blocked": "Nun si ponnu canciari li liveddi di prutizzioni quannu unu è bluccatu.\nCcà ci sù li mpustazzioni attuali dâ pàggina <strong>$1</strong>:",
+       "protect-locked-dblock": "Nun si ponnu canciari li liveddi di prutizzioni pirchì c'è attivatu un bloccu dâ basi di dati.\nCcà ci sù li mpustazzioni attuali dâ pàggina <strong>$1</strong>:",
+       "protect-locked-access": "Lu tò cuntu nun havi lu pirmissu di canciari li liveddi di prutizzioni.\nCcà ci sù li mpustazzioni attuali dâ pàggina <strong>$1</strong>:",
        "protect-cascadeon": "Com'a ora sta pàggina è prutetta pirchì veni nclusa {{PLURAL:$1|ntâ pàggina siquenti, ca havi|ntê pàggini siquenti, ca hannu}} la prutizzioni a cascata attivata.\nLi canciamenti ca si fannu ô liveddu di prutizzioni di sta pàggina nun vannu a canciari la prutizzioni a cascata.",
-       "protect-default": "Cunsenti a' tutti l'utenti",
-       "protect-fallback": "Cunsenti sulu a' l'utenti cû pirmissu \"$1\"",
-       "protect-level-autoconfirmed": "Cunsenti sulu a' l'utenti autu-cunfirmati",
-       "protect-level-sysop": "Cunsenti sulu a' l'amministratura",
-       "protect-summary-cascade": "a' cascata",
+       "protect-default": "Cunzenti a tutti l'utenti",
+       "protect-fallback": "Cunzenti sulu a l'utenti cû pirmissu \"$1\"",
+       "protect-level-autoconfirmed": "Cunzenti sulu a l'utenti autu-cunfirmati",
+       "protect-level-sysop": "Cunzenti sulu a l'amministratura",
+       "protect-summary-cascade": "a cascata",
        "protect-expiring": "scadi lu $1 (UTC)",
        "protect-expiring-local": "scadi lu $1",
-       "protect-expiry-indefinite": "a' tempu nditirminatu",
-       "protect-cascade": "Pruteggi li pàggini nclusi nta chista (prutizzioni a' cascata)",
-       "protect-cantedit": "Nun poi canciari li livedda di prutizzioni di sta pàggina picchì nun hai lu pirmissu di canciàrila.",
-       "protect-othertime": "Autra scadenza:",
-       "protect-othertime-op": "autra scadenza",
+       "protect-expiry-indefinite": "a tempu nditirminatu",
+       "protect-cascade": "Pruteggi li pàggini nclusi nta chista (prutizzioni a cascata)",
+       "protect-cantedit": "Nun poi canciari li liveddi di prutizzioni di sta pàggina pirchì nun hai lu pirmissu di canciàrila.",
+       "protect-othertime": "Àutra scadenza:",
+       "protect-othertime-op": "àutra scadenza",
        "protect-existing-expiry": "Scadenza attuali: $3 dû $3",
-       "protect-existing-expiry-infinity": "Scadenza attuali: infinitu",
-       "protect-otherreason": "Autru o ultiriuri mutivu:",
-       "protect-otherreason-op": "Autru mutivu",
-       "protect-dropdown": "*Mutivi cumuni pâ prutizzioni\n** Vannalìsimi ripituti\n** Spam ripitutu\n** Guerra di canciamenti cuntrapruduttiva\n** Pàggina di autu tràficu",
+       "protect-existing-expiry-infinity": "Scadenza attuali: nfinitu",
+       "protect-otherreason": "Àutru o ultiriuri mutivu:",
+       "protect-otherreason-op": "Àutru mutivu",
+       "protect-dropdown": "*Mutivi cumuni pâ prutizzioni\n** Vannalismi ripituti\n** Spam ripitutu\n** Guerra di canciamenti contrapruduttiva\n** Pàggina d'àutu tràficu",
        "protect-edit-reasonlist": "Cancia li mutivi pâ prutizzioni",
-       "protect-expiry-options": "1 ura:1 hour,1 jornu:1 day,1 simana:1 week,2 simani:2 weeks,1 misi:1 month,3 misi:3 months,6 misi:6 months,1 annu:1 year,infinitu:infinite",
+       "protect-expiry-options": "1 ura:1 hour,1 jornu:1 day,1 simana:1 week,2 simani:2 weeks,1 misi:1 month,3 misi:3 months,6 misi:6 months,1 annu:1 year,nfinitu:infinite",
        "restriction-type": "Pirmissu:",
        "restriction-level": "Liveddu di ristrizzioni:",
        "minimum-size": "Grannizza mìnima",
        "undeletepage": "Talìa e ricùpira li pàggini cancillati",
        "undeletepagetitle": "<strong>Quantu segui è cumpostu di virsioni cancillati di [[:$1|$1]]</strong>.",
        "viewdeletedpage": "Talìa li pàggini cancillati",
-       "undeletepagetext": "{{PLURAL:$1|La siguenti pàggina fu' cancillata|Li siguenti $1 pàggini foru cancillati}}, però {{PLURAL:$1|è|sunnu}} ancora nta l'archiviu e pi' chistu si {{PLURAL:$1|po|ponnu}} ancora ricupirari.\nPiriudicamenti l'archìviu po' vèniri svacantatu.",
+       "undeletepagetext": "{{PLURAL:$1|La pàggina siguenti fu cancillata|Li $1 pàggini siguenti foru cancillati}}, pirò {{PLURAL:$1|è|sunnu}} ancora nta l'archiviu e pi chistu si {{PLURAL:$1|pò|ponnu}} ancora ricupirari.\nPiriodicamenti l'archiviu pò vèniri svacantatu.",
        "undelete-fieldset-title": "Ricùpira virsioni",
-       "undeleteextrahelp": "Pi' ricupirari la storia sana dâ pàggina, cliccari <strong><em>{{int:undeletebtn}}</em></strong> senza scegghîri nudda casedda.\nPi' fari nu ricùpiru silittivu, scegghîri li caseddi currispunnenti ê virsioni di ripigghiari, e cliccari <strong><em>{{int:undeletebtn}}</em></strong>.",
+       "undeleteextrahelp": "Pi ricupirari la storia sana dâ pàggina, cliccari <strong><em>{{int:undeletebtn}}</em></strong> senza scègghiri nudda casedda.\nPi fari nu ricùpiru silittivu, scègghiri li caseddi currispunnenti ê virsioni di ripigghiari, e cliccari <strong><em>{{int:undeletebtn}}</em></strong>.",
        "undeleterevisions": "$1 {{PLURAL:$1|virsioni}} cancillati",
-       "undeletehistory": "Siddu ricùpiri sta pàggina, tutti li so virsioni vèninu ricupirati ntâ crunuluggìa.\nSiddu na pàggina nova havi statu criata cû stissu tìtulu di chidda di ricupirari doppu dâ so cancillazzioni, li virsioni ricupirati vannu a' finiri ntâ crunuluggìa passata.",
-       "undeleterevdel": "Lu ricùpiru nun veni fattu siddu pròvuca la cancillazzioni parziali dâ virsioni currenti dâ pàggina o dû file.\nNta stu casu, hai a' livari lu signu di spunta o l'ammucciamentu dâ virsioni cancillata cchiu' ricenti.",
-       "undeletehistorynoadmin": "Sta pàggina fu' cancillata.\nLu mutivu dâ cancillazzioni è ammustratu ccà sutta, nzèmmula ê dittagghî di l'utenti ca canciaru sta pàggina prima dâ so cancillazzioni.\nLu testu cuntinutu ntê virsioni cancillati è dispunìbbili sulu a' l'amministratura.",
+       "undeletehistory": "Siddu ricùpiri sta pàggina, tutti li sò virsioni vèninu ricupirati ntâ crunuluggìa.\nSiddu na pàggina nova fu criata cû stissu tìtulu di chidda di ricupirari doppu dâ sò cancillazzioni, li virsioni ricupirati vannu a finiri ntâ crunuluggìa passata.",
+       "undeleterevdel": "Lu ricùpiru nun veni fattu siddu pròvuca la cancillazzioni parziali dâ virsioni currenti dâ pàggina o dû file.\nNta stu casu, hai a livari lu signu di spunta o l'ammucciamentu dâ virsioni cancillata cchiù ricenti.",
+       "undeletehistorynoadmin": "Sta pàggina fu cancillata.\nLu mutivu dâ cancillazzioni è ammustratu ccà sutta, nzèmmula ê dittagghî di l'utenti ca canciaru sta pàggina prima dâ sò cancillazzioni.\nLu testu cuntinutu ntê virsioni cancillati è dispunìbbili sulu a l'amministratura.",
        "undelete-revision": "Virsioni cancillata di $1 (dû $4 ê $5) di $3:",
        "undeleterevision-missing": "Virsioni nun vàlida o ammancanti.\nPò èssiri chi hai na lijami sbagghiata, o puru la virsioni fu già ricupirata o livata di l'archiviu.",
        "undelete-nodiff": "Nun fu attruvata nudda virsioni passata.",
        "undeletebtn": "Ricùpira",
        "undeletelink": "talìa/ricùpira",
        "undeleteviewlink": "talìa",
-       "undeleteinvert": "Inverti la silizzioni",
+       "undeleteinvert": "Nverti la silizzioni",
        "undeletecomment": "Mutivu:",
        "undeletedrevisions": "$1 {{PLURAL:$1|virsioni ricupirata|virsioni ricupirati}}",
        "undeletedrevisions-files": "$1 {{PLURAL:$1|virsioni ricupirata|virsioni ricupirati}} e $2 {{PLURAL:$2|file ricupiratu|file ricupirati}}",
        "undeletedfiles": "$1 {{PLURAL:$1|file ricupiratu|file ricupirati}}",
-       "cannotundelete": "L'annullamentu dâ cancillazzioni nun riniscìu:\n$1",
-       "undeletedpage": "<strong>La pàggina $1 fu' ricupirata</strong>\n\nCunzulta lu [[Special:Log/delete|riggistru dî cancillazzioni]] pi' vìdiri li cancillazzioni e li ricùpiri cchiu' ricenti.",
+       "cannotundelete": "L'annullamentu dâ cancillazzioni nun arriniscìu:\n$1",
+       "undeletedpage": "<strong>La pàggina $1 fu ricupirata</strong>\n\nCunzurta lu [[Special:Log/delete|riggistru dî cancillazzioni]] pi vìdiri li cancillazzioni e li ricùpiri cchiù ricenti.",
        "undelete-header": "Talìa lu [[Special:Log/delete|riggistru dî cancillazzioni]] pî pàggini cancillati di ricenti.",
-       "undelete-search-title": "Cerca li pàggini cancillati",
+       "undelete-search-title": "Arricerca li pàggini cancillati",
        "undelete-search-box": "Cerca li pàggini cancillati",
-       "undelete-search-prefix": "Ammustra li pàggini unni lu tìtulu accumènza cu':",
+       "undelete-search-prefix": "Ammustra li pàggini unni lu tìtulu accumenza cu:",
        "undelete-search-submit": "Cerca",
-       "undelete-no-results": "Nudda pàggina currispunnentu fu' attruvata nta l'archiviu dî pàggini cancillati.",
-       "undelete-filename-mismatch": "Nun si po' annullari la cancillazzioni dâ virsioni dû file cu' data e ura $1: Nomu di file nun currispunnenti.",
-       "undelete-bad-store-key": "Nun si po' annullari la cancillazzioni dâ virsioni dû file cu' data e ura $1: Lu file mancava avanti dâ cancillazzioni.",
+       "undelete-no-results": "Nudda pàggina currispunnenti fu attruvata nta l'archiviu dî pàggini cancillati.",
+       "undelete-filename-mismatch": "Nun si pò annullari la cancillazzioni dâ virsioni dû file cu data e ura $1: Nomu di file nun currispunnenti.",
+       "undelete-bad-store-key": "Nun si pò annullari la cancillazzioni dâ virsioni dû file cu data e ura $1: Lu file ammancava avanti dâ cancillazzioni.",
        "undelete-cleanup-error": "Erruri ntâ cancillazzioni dû file d'archiviu nun adupiratu \"$1\".",
-       "undelete-missing-filearchive": "Nun si po' ricupirari l'ID $1 di l'archiviu dî file picchì nun è ntâ basi di dati. Po' già avìri statu ricupiratu.",
+       "undelete-missing-filearchive": "Nun si pò ricupirari l'ID $1 di l'archiviu dî file pirchì nun è ntâ basi di dati. Pò già aviri statu ricupiratu.",
        "undelete-error": "Erruri nta l'annullamentu dâ cancillazzioni dâ pàggina",
        "undelete-error-short": "Erruri nta l'annullamentu dâ cancillazzioni dû file: $1",
        "undelete-error-long": "Si virificaru erruri ntô tentativu di annullari la cancillazzioni dô file:\n\n$1",
-       "undelete-show-file-confirm": "Si' sicuru chi' voi talìari la virsioni cancillata dû file \"<nowiki>$1</nowiki>\" dû $2 ê $3?",
+       "undelete-show-file-confirm": "Sî sicuru chi voi taliari la virsioni cancillata dû file \"<nowiki>$1</nowiki>\" dû $2 ê $3?",
        "undelete-show-file-submit": "Si",
        "namespace": "Namespace:",
-       "invert": "Inverti la silizzioni",
-       "tooltip-invert": "Scègghî sta casedda p'ammucciari li canciamenti chi' su' fatti a' pàggini dû namespace silizzunatu (e macari dû so namespace assuciatu, si' la casedda rilativa è scigghiuta)",
-       "tooltip-whatlinkshere-invert": "Signa sta casedda p'ammucciari li ligami chi' vènunu di pàggini dû namespace scigghiutu.",
+       "invert": "Nverti la silizzioni",
+       "tooltip-invert": "Scegghi sta casedda p'ammucciari li canciamenti chi sù fatti a pàggini dû namespace silizzunatu (e macari dû sò namespace assuciatu, si la casedda rilativa è scigghiuta)",
+       "tooltip-whatlinkshere-invert": "Signa sta casedda p'ammucciari li ligami chi vèninu di pàggini dû namespace scigghiutu.",
        "namespace_association": "Namespace assuciatu",
-       "tooltip-namespace_association": "Scègghî sta casedda pi' nclùdiri macari u namespace di discussioni o principali assuciatu ô namespace silizzunatu",
+       "tooltip-namespace_association": "Scegghi sta casedda pi nclùdiri macari lu namespace di discussioni o chiddu principali assuciatu ô namespace silizzunatu",
        "blanknamespace": "(Principali)",
-       "contributions": "Cuntribbuta di l'{{GENDER:$1|utenti}}",
-       "contributions-title": "Cuntribbuta di l'utenti $1",
-       "mycontris": "Li me cuntribbuta",
+       "contributions": "Cuntribbuti di l'{{GENDER:$1|utenti}}",
+       "contributions-title": "Cuntribbuti di l'utenti $1",
+       "mycontris": "Li mè cuntribbuti",
        "contribsub2": "Di {{GENDER:$3|$1}} ($2)",
        "contributions-userdoesnotexist": "Lu cuntu utenti \"$1\" nun è riggistratu.",
-       "nocontribs": "Nuddu canciamentu fu' truvatu chi' currispunni a' sti criterî.",
+       "nocontribs": "Nuddu canciamentu fu attruvatu chi currispunni a sti criterî.",
        "uctop": "(attuali)",
-       "month": "A' pàrtiri dû misi (e pricidenti):",
-       "year": "A' pàrtiri di l'annu (e pricidenti):",
-       "sp-contributions-newbies": "Ammustra sulu li cuntribbuta di l'utenti novi",
+       "month": "A pàrtiri dû misi (e pricidenti):",
+       "year": "A pàrtiri di l'annu (e pricidenti):",
+       "sp-contributions-newbies": "Ammustra sulu li cuntribbuti di l'utenti novi",
        "sp-contributions-newbies-sub": "Di l'utenti novi",
-       "sp-contributions-newbies-title": "Cuntribbuta di l'utenti novi",
+       "sp-contributions-newbies-title": "Cuntribbuti di l'utenti novi",
        "sp-contributions-blocklog": "riggistru dî blocchi",
-       "sp-contributions-suppresslog": "cuntribbuta suppressi di l'utenti",
-       "sp-contributions-deleted": "cuntribbuta cancillati di l'utenti",
+       "sp-contributions-suppresslog": "cuntribbuti suppressi di l'utenti",
+       "sp-contributions-deleted": "cuntribbuti cancillati di l'utenti",
        "sp-contributions-uploads": "file carricati",
-       "sp-contributions-logs": "riggistra",
+       "sp-contributions-logs": "riggistri",
        "sp-contributions-talk": "discussioni",
        "sp-contributions-userrights": "gistioni dî dritti di l'utenti",
-       "sp-contributions-blocked-notice": "St'utenti pi' com'ora è bluccatu.\nComu rifirimentu ccassutta cc'è l'ùltima vuci dû riggistru dî blocchi:",
-       "sp-contributions-blocked-notice-anon": "Stu nnirizzu IP pi' com'ora è bluccatu.\nComu rifirimentu ccassutta cc'è l'ùltima vuci dû riggistru dî blocchi:",
+       "sp-contributions-blocked-notice": "St'utenti pi com'ora è bluccatu.\nComu rifirimentu ccassutta c'è l'ùrtima vuci dû riggistru dî blocchi:",
+       "sp-contributions-blocked-notice-anon": "Stu nnirizzu IP pi com'ora è bluccatu.\nComu rifirimentu ccassutta c'è l'ùrtima vuci dû riggistru dî blocchi:",
        "sp-contributions-search": "Ricerca cuntribbuti",
        "sp-contributions-username": "Nnirizzu IP o nomu utenti:",
        "sp-contributions-toponly": "Ammustra sulu li canciamenti ca sunnu l'ùrtimi virsioni pâ pàggina",
        "sp-contributions-newonly": "Ammustra sulu li canciamenti ca sunnu criazzioni di pàggini novi",
        "sp-contributions-submit": "Arricerca",
-       "whatlinkshere": "Chi' punta cca",
+       "whatlinkshere": "Chi punta ccà",
        "whatlinkshere-title": "Pàggini ca pùntanu a \"$1\"",
        "whatlinkshere-page": "Pàggina:",
        "linkshere": "Sti pàggini hannu nu liami a '''[[:$1]]''':",
        "nolinkshere": "Nudda pàggina havi nu liami a '''[[:$1]]'''.",
        "nolinkshere-ns": "Nun ci sugnu pàggini chi puntano a '''[[:$1]]''' ntô namespace silizziunatu.",
        "isredirect": "pàggina di rinnirizzamentu",
-       "istemplate": "trasclusioni",
+       "istemplate": "nclusioni",
        "isimage": "lijami ô file",
        "whatlinkshere-prev": "{{PLURAL:$1|pricidenti|pricidenti $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|succissivu|succissivi $1}}",
        "whatlinkshere-links": "← liami",
        "whatlinkshere-hideredirs": "$1 li rimanni",
-       "whatlinkshere-hidetrans": "$1 li trasclusioni",
+       "whatlinkshere-hidetrans": "$1 li nclusioni",
        "whatlinkshere-hidelinks": "$1 li lijami",
        "whatlinkshere-hideimages": "$1 li lijami a file",
        "whatlinkshere-filters": "Filtri",
        "autoblockid": "Bloccu autumàticu #$1",
-       "block": "Bluccari a' n'utenti",
-       "unblock": "Sbluccari a' n'utenti",
-       "blockip": "Blocca a' {{GENDER:$1|stu utenti|sta utenti}}",
-       "blockip-legend": "Blocca a' l'utenti",
+       "block": "Bluccari a n'utenti",
+       "unblock": "Sbluccari a n'utenti",
+       "blockip": "Blocca a {{GENDER:$1|st'utenti|st'utenti}}",
+       "blockip-legend": "Blocca a l'utenti",
        "blockiptext": "Usa lu mòdulu cassutta pi bluccari la pussibbilità di scrìviri pi n'utenti o pi nu ndirizzu IP spicìficu. Chistu s'havi a fari sulu pi privèniri lu vannalismu e secunnu la [[{{MediaWiki:Policy-url}}|pulìtica di {{SITENAME}}]]. Scrivi na raggiùni valida ccà sutta (pi asempiu, cita li pàggini chi foru vannalizzati).",
        "ipaddressorusername": "Nnirizzu IP o nomu utenti:",
        "ipbexpiry": "Durata dû bloccu:",
        "ipbreason": "Mutivu:",
-       "ipbreason-dropdown": "*Mutivi cchiù cumuni pî blocchi\n** Nzerimentu di nformazziuni falsi\n** Cancillazzioni di cuntinuti dê pàggini\n** Liami prumozziunalu a siti sterni\n** Nzserimentu di cuntinuti privi di sensu\n** Cumportamenti ntimidatori o molestie\n** Usu ndebitu di cchiù cunti\n** Nomu utenti nun accittabbili",
-       "ipb-hardblock": "Mpidisci a' l'utenti trasuti di fari canciamenti di stu nnirizzu IP",
+       "ipbreason-dropdown": "*Mutivi cchiù cumuni pî blocchi\n** Nzirimentu di nfurmazzioni fàusi\n** Cancillazzioni di cuntinuti dê pàggini\n** Liami prumuzziunali a siti esterni\n** Nzirimentu di cuntinuti privi di senzu\n** Cumpurtamenti ntimidatori o mulesti\n** Usu nun duvutu di cchiù cunti\n** Nomu utenti nun accittàbbili",
+       "ipb-hardblock": "Mpidisci a l'utenti trasuti di fari canciamenti di stu nnirizzu IP",
        "ipbcreateaccount": "Mpidisci la criazzioni di cunti",
-       "ipbemailban": "Mpidisci a' l'utenti di mannari posta elittrònica",
-       "ipbenableautoblock": "Blocca autumaticamenti l'ùltimu nnirizzu IP adupiratu di st'utenti, e li succissivi d'unni prova a' fari canciamenti",
-       "ipbsubmit": "Blocca a' st'utenti",
-       "ipbother": "Autra scadenza:",
-       "ipboptions": "2 uri:2 hours,1 jornu:1 day,3 jorna:3 days,1 simana:1 week,2 simani:2 weeks,1 misi:1 month,3 misi:3 months,6 misi:6 months,1 annu:1 year,infinitu:infinite",
+       "ipbemailban": "Mpidisci a l'utenti di mannari posta elittrònica",
+       "ipbenableautoblock": "Blocca autumaticamenti l'ùrtimu nnirizzu IP adupiratu di st'utenti, e li succissivi d'unni prova a fari canciamenti",
+       "ipbsubmit": "Blocca a st'utenti",
+       "ipbother": "Àutra scadenza:",
+       "ipboptions": "2 uri:2 hours,1 jornu:1 day,3 jorna:3 days,1 simana:1 week,2 simani:2 weeks,1 misi:1 month,3 misi:3 months,6 misi:6 months,1 annu:1 year,nfinitu:infinite",
        "ipbhidename": "Ammuccia lu nomu utenti ntê canciamenti e ntê listi",
        "ipbwatchuser": "Talìa li pàggini e li discussioni di st'utenti",
-       "ipb-disableusertalk": "Mpidisci a' st'utenti di canciari la sò pàggina di discussioni nta mentri ca è bluccatu",
-       "ipb-change-block": "Blocca di novu l'utenti cu' sti mpustazzioni",
-       "ipb-confirm": "Cunfirma lu bloccu",
+       "ipb-disableusertalk": "Mpidisci a st'utenti di canciari la sò pàggina di discussioni ntô mentri ch'è bluccatu",
+       "ipb-change-block": "Blocca di novu l'utenti cu sti mpustazzioni",
+       "ipb-confirm": "Cunferma lu bloccu",
        "badipaddress": "Nnirizzu IP nun vàlidu",
-       "blockipsuccesssub": "Bloccu rinisciutu",
-       "blockipsuccesstext": "[[Special:Contributions/$1|$1]] fu' bluccatu.<br />\nTalìa la [[Special:BlockList|lista dî blocchi]] pi' rivìdiri li blocchi.",
-       "ipb-blockingself": "Stai bluccannu a' tia stissu! Si' sicuru chi' voi fari sta cosa?",
-       "ipb-confirmhideuser": "Stai bluccannu n'utenti chi' havi l'opzioni \"ammuccia utenti\" attivata. A' sta manera u nomu di st'utenti veni supprimutu nta tutti i listi e tutti i riggìstri. Si' sicuru chi' voi fari sta cosa?",
-       "ipb-confirmaction": "Si' si' pi' davera sicuru chi' voi fari sta cosa, scegghî a casedda \"{{int:ipb-confirm}}\" ccassutta.",
+       "blockipsuccesssub": "Bloccu arrinisciutu",
+       "blockipsuccesstext": "[[Special:Contributions/$1|$1]] fu bluccatu.<br />\nTalìa la [[Special:BlockList|lista dî blocchi]] pi rivìdiri li blocchi.",
+       "ipb-blockingself": "Stai bluccannu a tìa stissu! Sî sicuru chi voi fari sta cosa?",
+       "ipb-confirmhideuser": "Stai bluccannu n'utenti chi havi l'opzioni \"ammuccia utenti\" attivata. Di sta manera lu nomu di st'utenti veni supprimutu nta tutti li listi e tutti li riggistri. Sî sicuru chi voi fari sta cosa?",
+       "ipb-confirmaction": "Si sî pi daveru sicuru chi voi fari sta cosa, scegghi la casedda \"{{int:ipb-confirm}}\" ccassutta.",
        "ipb-edit-dropdown": "Cancia li mutivi dû bloccu",
-       "ipb-unblock-addr": "Sblocca a' $1",
-       "ipb-unblock": "Sblocca a' n'utenti o nu nnirizzu IP",
-       "ipb-blocklist": "Talìa li blocchi in viguri",
-       "ipb-blocklist-contribs": "Cuntribbuta di {{GENDER:$1|$1}}",
-       "unblockip": "Sblocca a' l'utenti",
-       "unblockiptext": "Adupirari lu mòdulu suttastanti pi' ristituiri l'accessu in scrittura a' nu nnirizzu IP o nomu utenti ca hâ statu bluccatu.",
+       "ipb-unblock-addr": "Sblocca a $1",
+       "ipb-unblock": "Sblocca a n'utenti o nu nnirizzu IP",
+       "ipb-blocklist": "Talìa li blocchi n viguri",
+       "ipb-blocklist-contribs": "Cuntribbuti di {{GENDER:$1|$1}}",
+       "unblockip": "Sblocca a l'utenti",
+       "unblockiptext": "Adupirari lu mòdulu suttastanti pi'arristituiri l'accessu n scrittura a nu nnirizzu IP o nomu utenti ca fu bluccatu.",
        "ipusubmit": "Leva stu bloccu",
        "unblocked": "L'utenti [[User:$1|$1]] fu sbluccatu.",
        "unblocked-range": "$1 fu sbluccatu.",
        "unblocked-ip": "[[Special:Contributions/$1|$1]] fu sbluccatu.",
        "blocklist": "Utenti bluccati",
        "ipblocklist": "Utenti bluccati",
-       "ipblocklist-legend": "Trova n'utenti bluccatu",
+       "ipblocklist-legend": "Arricerca n'utenti bluccatu",
        "blocklist-userblocks": "Ammuccia li blocchi di cunti",
-       "blocklist-tempblocks": "Ammuccia li blocchi timpuranii",
-       "blocklist-addressblocks": "Ammuccia li blocchi di IP singuli",
+       "blocklist-tempblocks": "Ammuccia li blocchi timpurànii",
+       "blocklist-addressblocks": "Ammuccia li blocchi di IP sìnguli",
        "blocklist-rangeblocks": "Ammuccia li blocchi di ntirvalli di IP",
        "blocklist-timestamp": "Data e ura",
        "blocklist-target": "Oggettu",
        "blocklist-expiry": "Scadenza",
-       "blocklist-by": "Amministraturi chi' bluccau",
+       "blocklist-by": "Amministraturi chi bluccau",
        "blocklist-params": "Paràmitri dû bloccu",
        "blocklist-reason": "Mutivu",
        "ipblocklist-submit": "Arricerca",
        "ipblocklist-localblock": "Bloccu lucali",
-       "ipblocklist-otherblocks": "{{PLURAL:$1|Autru bloccu|Autri blocchi}}",
-       "infiniteblock": "infinitu",
+       "ipblocklist-otherblocks": "{{PLURAL:$1|Àutru bloccu|Àutri blocchi}}",
+       "infiniteblock": "nfinitu",
        "expiringblock": "scadi lu $1 ê $2",
        "anononlyblock": "sulu anònimi",
        "noautoblockblock": "bloccu autumàticu disattivatu",
        "createaccountblock": "criazzioni di cunti bluccata",
        "emailblock": "posta elittrònica bluccata",
-       "blocklist-nousertalk": "nun po' canciari la so stissa pàggina di discussioni",
+       "blocklist-nousertalk": "nun pò canciari la sò stissa pàggina di discussioni",
        "ipblocklist-empty": "L'alencu dî blocchi è vacanti.",
        "ipblocklist-no-results": "Lu nnirizzu IP o nomu utenti richiestu nun è bluccatu.",
        "blocklink": "blocca",
        "unblocklink": "sblocca",
        "change-blocklink": "cancia bloccu",
-       "contribslink": "cuntribbuta",
+       "contribslink": "cuntribbuti",
        "emaillink": "manna posta elittrònica",
-       "autoblocker": "Bluccatu autumaticamenti pirchì lu to nnirizzu IP havi statu adupiratu di picca tempu di l'utenti \"[[User:$1|$1]]\".\nLu mutivu datu pû bloccu di $1 è \"$2\"",
+       "autoblocker": "Bluccatu autumaticamenti pirchì lu tò nnirizzu IP fu adupiratu di picca tempu di l'utenti \"[[User:$1|$1]]\".\nLu mutivu datu pû bloccu di $1 è \"$2\"",
        "blocklogpage": "Riggistru dî blocchi",
-       "blocklog-showlog": "St'utenti havi statu bluccatu ntô passatu.\nComu rifirimentu ccassutta cc'è lu riggìstru dî blocchi:",
-       "blocklog-showsuppresslog": "St'utenti havi statu bluccatu e ammucciatu ntô passatu.\nComu rifirimentu ccassutta cc'è lu riggistru dî supprissioni:",
+       "blocklog-showlog": "St'utenti fu bluccatu ntô passatu.\nComu rifirimentu ccassutta c'è lu riggistru dî blocchi:",
+       "blocklog-showsuppresslog": "St'utenti fu bluccatu e ammucciatu ntô passatu.\nComu rifirimentu ccassutta c'è lu riggistru dî supprissioni:",
        "blocklogentry": "hà bluccatu [[$1]]; scadenza $2 $3",
        "reblock-logentry": "Canciau li mpustazzioni dû bloccu pi [[$1]] cu na scadenza di $2 $3",
-       "blocklogtext": "Chistu è l'alencu di l'azzioni di bloccu e sbloccu di l'utenti.\nLi nnirizzi IP bluccati autumaticamenti nun sunnu alincati.\nCunzurtari l'[[Special:BlockList|alencu dî blocchi]] pi vìdiri li furbanna e li blocchi chi sunnu n viguri pi com'ora.",
-       "unblocklogentry": "sbluccau a' \"$1\"",
+       "blocklogtext": "Chistu è l'elencu di l'azzioni di bloccu e sbloccu di l'utenti.\nLi nnirizzi IP bluccati autumaticamenti nun sunnu elincati.\nCunzurtari l'[[Special:BlockList|elencu dî blocchi]] pi vìdiri li furbanna e li blocchi chi sunnu n viguri pi com'ora.",
+       "unblocklogentry": "sbluccau a \"$1\"",
        "block-log-flags-anononly": "sulu utenti anònimi",
        "block-log-flags-nocreate": "criazzioni account bluccata",
        "block-log-flags-noautoblock": "bloccu automàticu disattivatu",
        "range_block_disabled": "La pussibbilitati di bluccari ntervalli di ndirizzi IP è disattiva a lu mumentu.",
        "ipb_expiry_invalid": "Durata o scadenza dû bloccu nun vàlida.",
        "ipb_expiry_temp": "Li blocchi dê nomi utenti ammucciati avìssiru èssiri nfiniti",
-       "ipb_hide_invalid": "Nun si po' supprìmiri stu cuntu: havi cchiu' ssai di {{PLURAL:$1|nu canciamentu|$1 canciamenti}}.",
+       "ipb_hide_invalid": "Nun si pò supprìmiri stu cuntu: havi cchiossai di {{PLURAL:$1|nu canciamentu|$1 canciamenti}}.",
        "ipb_already_blocked": "L'utenti \"$1\" è già bluccatu",
        "ipb-needreblock": "$1 è già bluccatu. Vòi caciari li mpustazzioni?",
-       "ipb-otherblocks-header": "{{PLURAL:$1|Autru bloccu|Autri blocchi}}",
-       "unblock-hideuser": "Nun poi sbluccari st'utenti, picchì u so nomu utenti fu' ammucciatu.",
+       "ipb-otherblocks-header": "{{PLURAL:$1|Àutru bloccu|Àutri blocchi}}",
+       "unblock-hideuser": "Nun poi sbluccari st'utenti, pirchì lu sò nomu utenti fu ammucciatu.",
        "ipb_cant_unblock": "Erruri: Mpussìbbili attruvari lu bloccu cu ID $1. Putissi aviri già statu sbluccatu.",
        "ipb_blocked_as_range": "Sbagghiu: Lu ndirizzu IP $1 nun è suggettu a bloccu ndividuali e non pò èssiri sbloccatu. Lu bloccu è attivu mmeci a liveddu dû ntirvallu $2, ca pò èssiri sbluccatu.",
        "ip_range_invalid": "Ntervallu di ndirizzi IP nun vàlidu.",
-       "ip_range_toolarge": "I blocchi di ntirvalli IP cchiu' granni di /$1 nun sunnu cunsintuti.",
+       "ip_range_toolarge": "Li blocchi di ntirvalli IP cchiù granni di /$1 nun sunnu cunzintuti.",
        "proxyblocker": "Blocca proxy",
        "proxyblockreason": "Lu tò ndirizzu IP hà statu bluccatu pirchì è un open proxy. Pi favuri cuntatta lu tò furnituri d'accessu a Internet o lu supportu tècnicu e nfòrmali di stu gravi prubbrema di sicurizza.",
        "sorbsreason": "Lu tò ndirizzu IP è alincatu comu proxy apertu ntâ lista DNSBL.",
        "sorbs_create_account_reason": "Lu tò ndirizzu IP è alincatu comu open proxy ntâ DNSBL. Nun poi criari un utenti.",
-       "xffblockreason": "Nu nnirizzu IP chi' si trova nta na ntistazzioni X-Forwarded-For, o a toi o dûn server proxy chi' stai adupirannu, fu' bluccatu. U mutivu dû bloccu origginali era: $1",
-       "cant-see-hidden-user": "L'utenti chi' stai pruvannu a' bluccari già fu' bluccatu e ammucciatu.\nComu chi' tu nun hai u drittu \"hideuser\", nun poi ne' vìdiri ne' canciari u bloccu di st'utenti.",
-       "ipbblocked": "Nun poi bluccari o sbluccari a' autri utenti picchì tu stissu si' bluccatu.",
-       "ipbnounblockself": "Nun hai u pirmissu di sbluccari a' tia stissu.",
+       "xffblockreason": "Nu nnirizzu IP chi s'attrova nta na ntistazzioni X-Forwarded-For, o la tò o dûn server proxy chi stai adupirannu, fu bluccatu. Lu mutivu dû bloccu origginali era: $1",
+       "cant-see-hidden-user": "L'utenti chi stai pruvannu a bluccari già fu bluccatu e ammucciatu.\nComu chi tu nun hai lu drittu \"hideuser\", nun poi nè vìdiri nè canciari lu bloccu di st'utenti.",
+       "ipbblocked": "Nun poi bluccari o sbluccari a àutri utenti pichì tu stissu sî bluccatu.",
+       "ipbnounblockself": "Nun hai lu pirmissu di sbluccari a tìa stissu.",
        "lockdb": "Blocca lu database",
        "unlockdb": "Sblocca lu database",
-       "lockdbtext": "Lu bloccu dû database cumporta la suspinsioni pi' tutti l'utenti dâ pussibbilitati di canciari li pàggini, mpustari li so prifirenzi, mudificari li so listi taliati, e 'n ginirali di cùmpiri tutti l'upirazzioni ca richièdinu canciamenti a lu database.\nPi' favuri cunfirma ca chistu è chiddu chi' hai ntinzioni di fari, e ca a lu tèrmini dâ manutinzzioni pruvidi a lu sbloccu dû database.",
-       "unlockdbtext": "Lu sbloccu dû database cunzenti di novu a tutti l'utenti di canciari li pàggini, mpustari li so prifirenzi, mudificari li so listi taliati, e 'n ginirali di cùmpiri tutti l'upirazzioni ca richièdinu canciamenti a lu database.\nPi' favuri cunfirma ca chistu è chiddu chi' hai ntinzioni di fari.",
+       "lockdbtext": "Lu bloccu dû database cumporta la suspinzioni pi tutti l'utenti dâ pussibbilitati di canciari li pàggini, mpustari li sò prifirenzi, canciari li sò listi taliati, e n ginirali di cùmpiri tutti l'opirazzioni c'addumànnanu canciamenti a lu database.\nPi favuri cunferma ca chistu è zocchi hai ntinzioni di fari, e ca a lu tèrmini dâ manutinzioni pruvidi a lu sbloccu dû database.",
+       "unlockdbtext": "Lu sbloccu dû database cunzenti di novu a tutti l'utenti di canciari li pàggini, mpustari li sò prifirenzi, canciari li sò listi taliati, e n ginirali di cùmpiri tutti l'opirazzioni c'addumànnanu canciamenti a lu database.\nPi favuri cunferma ca chistu è zocchi hai ntinzioni di fari.",
        "lockconfirm": "Sì, ntennu effittivamenti bluccari lu database.",
        "unlockconfirm": "Sì, effittivamenti ntennu, sutta la mè rispunzabbilitati, sbluccari lu database.",
        "lockbtn": "Blocca lu database",
        "unlockbtn": "Sblocca lu database",
-       "locknoconfirm": "Nun scigghîsti a casedda di cunfirma.",
+       "locknoconfirm": "Nun scigghisti la casedda di cunferma.",
        "lockdbsuccesssub": "Bloccu dû database esiquitu",
        "unlockdbsuccesssub": "Sbloccu dû database esiquitu",
        "lockdbsuccesstext": "Lu database hà statu bluccatu.\n<br />Arricorda di [[Special:UnlockDB|rimòviri lu bloccu]] doppu aviri accabbatu l'upirazzioni di manutinzioni.",
        "unlockdbsuccesstext": "Lu database hà statu sbluccatu.",
        "lockfilenotwritable": "Mpussìbbili scrìviri supra lu file di ''lock'' dû database. L'accessu n scrittura a tali file di parti dû server web è nicissariu pi bluccari e sbluccari lu database.",
        "databasenotlocked": "Lu database nun è bluccatu.",
-       "lockedbyandtime": "(di {{GENDER:$1|$1}} u $2 ê $3)",
+       "lockedbyandtime": "(di {{GENDER:$1|$1}} lu $2 ê $3)",
        "move-page": "Spustamentu di $1",
        "move-page-legend": "Sposta la pàggina",
-       "movepagetext": "Adupirannu lu mòdulu ccassutta si cancia lu nomu dâ pàggina, spustannu tutta la sò crunuluggìa nta la pàggina nova.\nLu tìtulu vecchiu addiventa nu rimannu versu lu tìtulu novu.\nSi pònnu aggiurnari autumaticamenti i rimanni chi' puntàvunu ô tìtulu origginali.\nMa si' scegghî di nun fàrilu, t'hai a' assicurari ca lu spustamentu nun crea [[Special:DoubleRedirects|rimanni duppî]] o puru [[Special:BrokenRedirects|rimanni rutti]].\nE' to rispunsabbilità ch'i liami cuntìnuunu a' puntari â pàggina bona.\n\nVidi chi' la pàggina <strong>nun veni spustata</strong> siddu cc'è già na pàggina chi havi lu tìtulu novu, tranni siddu la pàggina 'n quistioni è nu rimannu e nun havi crunuluggìa di canciamenti passati.\nChistu voli diri chi' si po' canciari n'autra vota u nomu di la pàggina a' chiddu ch'avìa prima siddu si fa' nu sbagghiu, e chi nun si po' suprascrìviri na pàggina chi già esisti.\n\n<strong>Accura!</strong>\nChistu po' èssiri nu canciamentu dràsticu pi na pàggina friquintata; aviti a' èssiri sicuri di capiri li cunziquenzi prima di cuntinuari.",
+       "movepagetext": "Adupirannu lu mòdulu ccassutta si cancia lu nomu dâ pàggina, spustannu tutta la sò crunuluggìa nta la pàggina nova.\nLu tìtulu vecchiu addiventa nu rimannu versu lu tìtulu novu.\nSi ponnu aggiurnari autumaticamenti li rimanni chi puntàvanu ô tìtulu origginali.\nMa si scegghi di nun fàrilu, t'hai a assicurari ca lu spustamentu nun crea [[Special:DoubleRedirects|rimanni duppî]] o puru [[Special:BrokenRedirects|rimanni rutti]].\nÈ tò rispunzabbilità chi li liami cuntìnuanu a puntari â pàggina bona.\n\nVidi chi la pàggina <strong>nun veni spustata</strong> siddu c'è già na pàggina chi havi lu tìtulu novu, tranni siddu la pàggina n quistioni è nu rimannu e nun havi crunuluggìa di canciamenti passati.\nChistu voli diri chi si pò canciari n'àutra vota lu nomu di la pàggina a chiddu c'avìa prima siddu si fa nu sbagghiu, e chi nun si pò suprascrìviri na pàggina chi già esisti.\n\n<strong>Accura!</strong>\nChistu pò èssiri nu canciamentu dràsticu pi na pàggina friquintata; aviti a èssiri sicuri di capiri li cunziquenzi prima di cuntinuari.",
        "movepagetext-noredirectfixer": "Usannu lu mòdulu ccà sutta vui canciati lu nomu dâ pàggina, e spustati tutta la sò storia versu la pàggina nova. Lu tìtulu vecchiu addiventa na pàggina di rinnirizzamentu versu lu tìtulu novu. \nAssicuràtivi ca lu spustamentu nun criau [[Special:DoubleRedirects|redirect duppi]] o [[Special:BrokenRedirects|redirect rumputi]]. Vui siti rispunzàbbili dî liami chi avìssiru a puntari â pàggina giusta.\n\nLa pàggina '''nun''' è spustata siddu cc'è già na pàggina cu lu tìtulu novu, tranni chi la pàggina 'n chistioni è vacanti o è na pàggina di ''redirect'' e nun havi n'archiviu di canciamenti.\nChistu signìfica chi vui putiti rinuminari la pàggina cu lu nomu vecchiu si aviti sbagghiatu, e chi nun putiti suprascrìviri nta na pàggina chi esisti già.\n\n'''Accura!'''\nChistu pò èssiri nu canciamentu dràsticu pi na pàggina pupulari; aviti a èssiri sicuri di capiri li cunziquenzi prima di cuntinuari.",
-       "movepagetalktext": "La pàggina di discussioni sarravi autumaticamenti spustata cud idda <strong>a' menu chi':</strong>\n*Na pàggina di discussioni nun vacanti già esisti cu lu nomu novu, o puru\n*Nun scegghî la casedda ccassutta.\n\nNta sti casi, si' voi, hâ' spustari o jùnciri la pàggina di discussioni a' manu.",
+       "movepagetalktext": "La pàggina di discussioni è autumaticamenti spustata cu idda <strong>a menu chi:</strong>\n*Na pàggina di discussioni nun vacanti già esisti cu lu nomu novu, o puru\n*Nun scegghi la casedda ccassutta.\n\nNta sti casi, si voi, hai a spustari o jùnciri la pàggina di discussioni a manu.",
        "movearticle": "Sposta la pàggina",
-       "moveuserpage-warning": "<strong>Accura:</strong> Stai spustannu a pàggina di n'utenti. Hâ' sapìri chi' sulu a pàggina sarravi spustata, l'utenti <em>nun sarravi</em> canciatu di nomu.",
-       "movecategorypage-warning": "<strong>Accura:</strong> Stai spustannu a pàggina di na catigurìa. Hâ' sapìri chi' sulu a pàggina sarravi spustata, i pàggini chi' si tròvunu ntâ catigurìa vecchia <em>nun sarrannu</em> catigurizzati nta chidda nova.",
+       "moveuserpage-warning": "<strong>Accura:</strong> Stai spustannu la pàggina di n'utenti. Hai a sapìri chi sulu la pàggina è spustata e lu nomu d'utenti <em>nun cancia</em>.",
+       "movecategorypage-warning": "<strong>Accura:</strong> Stai spustannu la pàggina di na catigurìa. Hai a sapìri chi sulu la pàggina è spustata, li pàggini chi s'attròvanu ntâ catigurìa vecchia <em>nun sunnu</em> catigurizzati nta chidda nova.",
        "movenologintext": "Lu spustamentu dî pàggini è cunzintitu sulu a l'utenti riggistrati c'hannu esiquitu l'[[Special:UserLogin|accessu]] a lu situ.",
        "movenotallowed": "Nun hai li pirmessi nicissari a lu spustamentu dê pàggini.",
        "movenotallowedfile": "Nun ci su' li pirmessi nicissàrii pi spustari file.",
        "cant-move-user-page": "Nun aviti lu pirmissu nicissàriu pi spustari li pàggini utenti.",
        "cant-move-to-user-page": "Nun aviti li pirmessi nicessàrii pô spustamentu dâ pàggina supra na pàggina utenti (cu eccizzioni di na suttapàggina utenti).",
-       "cant-move-category-page": "Nun hai u pirmissu di spustari i pàggini dî catigurìi.",
-       "cant-move-to-category-page": "Nun hai u pirmissu di spustari pàggini facènnuli divintari pàggini di catigurìi.",
+       "cant-move-category-page": "Nun hai lu pirmissu di spustari li pàggini dî catigurìi.",
+       "cant-move-to-category-page": "Nun hai lu pirmissu di spustari pàggini facènnuli addivintari pàggini di catigurìi.",
        "newtitle": "Cu lu tìtulu novu di",
        "move-watch": "Talìa sta pàggina",
        "movepagebtn": "Sposta la pàggina",
        "delete_and_move": "Cancella e sposta",
        "delete_and_move_text": "==Richiesta di cancillazzioni==\n\nLa pàggina di distinazzioni \"[[:$1]]\" asisti già. S'addisìa cancillàrila pi rènniri pussìbbili lu spustamentu?",
        "delete_and_move_confirm": "Sì, suvrascrivi la pàggina asistenti",
-       "delete_and_move_reason": "Cancillata pi' fari largu ô spustamentu di \"[[$1]]\"",
+       "delete_and_move_reason": "Cancillata pi fari largu ô spustamentu di \"[[$1]]\"",
        "selfmove": "Lu tìtulu di distinazzioni nziritu è agguali a chiddu di pruvinenza; mpossibbili spustari la pàggina su idda stissa.",
        "immobile-source-namespace": "Non pòi spustari li pàggini nto namespace \"$1\"",
        "immobile-target-namespace": "Nun pòi spustari li pàggini ntô namespace \"$1\"",
        "immobile-target-namespace-iw": "L'interwiki link nun è n'ubbiettivu bonu pi spustari la pòggina.",
        "immobile-source-page": "Sta pàggina nun pò èssiri spustata.",
        "immobile-target-page": "Nun pòi spustari nti stu tìtulu.",
-       "bad-target-model": "A distinazzioni vuluta adòpira nu mudellu di cuntinutu diffirenti. Nun si po' cunvèrtiri dû $1 ô $2.",
+       "bad-target-model": "La distinazzioni vuluta adòpira nu mudellu di cuntinutu diffirenti. Nun si pò cunvèrtiri dû $1 ô $2.",
        "imagenocrossnamespace": "Nun pòi spustari na mmàggini fora dû namespace Mmàggini.",
-       "nonfile-cannot-move-to-file": "Nun si po' spustari ntô namespace file chiddu chi' nun è nu file.",
+       "nonfile-cannot-move-to-file": "Nun si pò spustari ntô namespace file zocchi nun è nu file.",
        "imagetypemismatch": "La estensioni nova dû file cun currispunni â sò estensioni riali",
        "imageinvalidfilename": "Lu nomu dû file di distinazzioni nun è validu",
        "fix-double-redirects": "Aggiorna tutti li redirect chi puntanu ô titulu urigginali",
        "move-leave-redirect": "Lassa darreri nu redirect",
-       "protectedpagemovewarning": "<strong>Accura:</strong> Sta pàggina fu' prutiggiuta a' manera chi' sulu l'utenti cu' privileggi d'amministraturi la ponnu spustari.\nPi' rifirimentu, ccassutta è ripurtata l'ùltima vuci dû riggistru:",
-       "semiprotectedpagemovewarning": "<strong>Nota:</strong> Sta pàggina fu' prutiggiuta a' manera chi' sulu l'utenti riggistrati la ponnu spustari.\nPi' rifirimentu, ccassutta è ripurtata l'ultima vuci dû riggistru:",
-       "move-over-sharedrepo": "== U file già esisti ==\n[[:$1]] già esisti ntôn dipòsitu cunnivisu. Spustari nu file nta chistu titulu suprascriviravi u file cunnivisu.",
-       "file-exists-sharedrepo": "U nomu di file scigghiutu già è adupiratu ntôn dipòsitu cunnivisu.\nPi' favuri scegghî n'autru nomu.",
+       "protectedpagemovewarning": "<strong>Accura:</strong> Sta pàggina fu prutiggiuta di manera chi sulu l'utenti cu privileggi d'amministraturi la ponnu spustari.\nPi rifirimentu, ccassutta è arripurtata l'ùrtima vuci dû riggistru:",
+       "semiprotectedpagemovewarning": "<strong>Nota:</strong> Sta pàggina fu prutiggiuta di manera chi sulu l'utenti riggistrati la ponnu spustari.\nPi rifirimentu, ccassutta è arripurtata l'ùrtima vuci dû riggistru:",
+       "move-over-sharedrepo": "== Lu file già esisti ==\n[[:$1]] già esisti ntôn dipòsitu cunnivisu. Spustari nu file nta stu titulu suprascrivi lu file cunnivisu.",
+       "file-exists-sharedrepo": "Lu nomu di file scigghiutu già è adupiratu ntôn dipòsitu cunnivisu.\nPi favuri scegghi n'àutru nomu.",
        "export": "Esporta pàggini",
-       "exporttext": "È pussìbbili spurtari lu testu e la cronoluggìa dî canciamenti di na pàggina o d'un gruppu di pàggini n furmatu XML pi mpurtàrili n àutri siti ca utilìzzanu lu software MediaWiki, attraversu la pàggina [[Special:Import|di mportu]].\n\nPi spurtari li pàggini innicari li tìtuli ntâ casella di testu suttastanti, unu pi riga, e spicificari siddu s'addisìa ottèniri la virsioni currenti e tutti li virsioni pricidenti, cu li dati dâ cronuluggìa dâ pàggina, oppuru surtantu l'ùrtima virsioni e li dati currispunnenti a l'ùrtimu canciamentu.\n\nNta st'ùrtimu casu si pò macari utilizzari na lijami, p'asempiu [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] pi spurtari \"[[{{MediaWiki:Mainpage}}]]\".",
-       "exportall": "Esporta tutti i pàggini",
-       "exportcuronly": "Ncludi sulu la rivisioni attuali, nun la ntera cronoluggìa",
-       "exportnohistory": "---- '''Nota:''' l'espurtazzioni dâ ntera cronoluggìa dî pàggini attraversu sta nterfaccia hà stata disattivata pi mutivi ligati a li pristazzioni dû sistema.",
-       "exportlistauthors": "Includi n'elencu cumpletu dî cuntribbuturi p'ognin pàggina",
+       "exporttext": "È pussìbbili spurtari lu testu e la crunuluggìa dî canciamenti di na pàggina o d'un gruppu di pàggini n furmatu XML pi mpurtàrili n àutri siti ca utilìzzanu lu software MediaWiki, attraversu la pàggina [[Special:Import|di mportu]].\n\nPi spurtari li pàggini innicari li tìtuli ntâ casella di testu suttastanti, unu pi riga, e spicificari siddu s'addisìa ottèniri la virsioni currenti e tutti li virsioni pricidenti, cu li dati dâ crunuluggìa dâ pàggina, oppuru surtantu l'ùrtima virsioni e li dati currispunnenti a l'ùrtimu canciamentu.\n\nNta st'ùrtimu casu si pò macari utilizzari nu lijami, p'asempiu [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] pi spurtari \"[[{{MediaWiki:Mainpage}}]]\".",
+       "exportall": "Esporta tutti li pàggini",
+       "exportcuronly": "Ncludi sulu la rivisioni attuali, nun la crunuluggìa ntera",
+       "exportnohistory": "---- '''Nota:''' l'espurtazzioni dâ ntera crunuluggìa dî pàggini attraversu sta nterfaccia fu disattivata pi mutivi ligati a li pristazzioni dû sistema.",
+       "exportlistauthors": "Ncludi n'elencu cumpletu dî cuntribbuturi p'ogni pàggina",
        "export-submit": "Espurtazzioni",
        "export-addcattext": "Agghiunci pàggini dâ catigurìa:",
        "export-addcat": "Agghiunci",
        "thumbnail-more": "Ngrannisci",
        "filemissing": "File mancanti",
        "thumbnail_error": "Erruri ntâ criazzioni dâ miniatura: $1",
-       "thumbnail_error_remote": "Messaggiu d'erruri di $1:\n$2",
+       "thumbnail_error_remote": "Missaggiu d'erruri di $1:\n$2",
        "djvu_page_error": "Nùmmuru di pàggina DjVu erratu",
        "djvu_no_xml": "Mpussibbili òtteniri lu XML pô file DjVu",
-       "thumbnail-temp-create": "Nun fu' pussìbbili criari nu file timpuraniu pâ miniatura",
-       "thumbnail-dest-create": "Nun fu' pussìbbili sarvari a miniatura ntâ distinazzioni",
+       "thumbnail-temp-create": "Nun fu pussìbbili criari nu file timpuràniu pâ miniatura",
+       "thumbnail-dest-create": "Nun fu pussìbbili sarvari la miniatura ntâ distinazzioni",
        "thumbnail_invalid_params": "Parametri antiprima nun validi",
-       "thumbnail_toobigimagearea": "U file è cchiu' granni di $1",
+       "thumbnail_toobigimagearea": "Lu file è cchiù granni di $1",
        "thumbnail_dest_directory": "Mpussibbili criari la directory di distinazzioni",
        "thumbnail_image-type": "Tipu di mmàggini nun supputtatu",
        "thumbnail_gd-library": "Cunfigurazioni ncumpleta da libreria GD: funzioni $1 mancanti",
        "thumbnail_image-missing": "Pari èssiri mancanti lu file: $1",
-       "thumbnail_image-failure-limit": "Cc'hannu statu troppu tintativi ($1 o cchiu' ssai) di ginirari sta miniatura. Pi' favuri prova n'autra vota cchiu' tardu.",
+       "thumbnail_image-failure-limit": "Ci foru troppu tintativi ($1 o cchiossai) di ginirari sta miniatura. Pi favuri prova n'àutra vota cchiù tardu.",
        "import": "Mporta pàggini",
-       "importinterwiki": "Mpurtazzioni di n'autra wiki",
-       "import-interwiki-text": "Silizziunari na wiki e lu tìtulu di na pàggina a' mpurtari.\nLi dati dî virsioni e li nomi di l'autura sarannu mantinuti.\nTutti li mpurtazzioni di autri wiki vènunu riggistrati ntô [[Special:Log/import|riggistru dî mpurtazzioni]].",
+       "importinterwiki": "Mpurtazzioni di n'àutra wiki",
+       "import-interwiki-text": "Silizziunari na wiki e lu tìtulu di na pàggina a mpurtari.\nLi dati dî virsioni e li noma di l'autura sunnu mantinuti.\nTutti li mpurtazzioni d'àutri wiki vèninu riggistrati ntô [[Special:Log/import|riggistru dî mpurtazzioni]].",
        "import-interwiki-sourcewiki": "Wiki surgenti:",
        "import-interwiki-sourcepage": "Pàggina surgenti:",
-       "import-interwiki-history": "Copia la ntera cronoluggìa di sta pàggina",
+       "import-interwiki-history": "Copia la crunuluggìa ntera di sta pàggina",
        "import-interwiki-templates": "Includi tutti li template",
        "import-interwiki-submit": "Mporta",
-       "import-mapping-default": "Importa ntê distinazzioni pridifinuti",
-       "import-mapping-namespace": "Importa nta nu namespace:",
-       "import-mapping-subpage": "Importa comu suttapàggini di sta pàggina:",
+       "import-mapping-default": "Mporta ntê distinazzioni pridifinuti",
+       "import-mapping-namespace": "Mporta nta nu namespace:",
+       "import-mapping-subpage": "Mporta comu suttapàggini di sta pàggina:",
        "import-upload-filename": "Nomu file:",
        "import-comment": "Oggettu:",
-       "importtext": "Pi favuri, esporta lu file dâ wiki surgenti adupirannu [[Special:Export|a funziunalità d'espurtazzioni]].\nSàrvalu supra a' lu tò computer e carrìcalu ccà.",
+       "importtext": "Pi favuri, esporta lu file dâ wiki surgenti adupirannu [[Special:Export|la funziunalità d'espurtazzioni]].\nSàrvalu supra a lu tò computer e carrìcalu ccà.",
        "importstart": "Mpurtazzioni dî pàggini n cursu...",
        "import-revision-count": "{{PLURAL:$1|na rivisioni mpurtata|$1 rivisioni mpurtati}}",
        "importnopages": "Nudda pàggina a mpurtari.",
        "importcantopen": "Mpussìbbili grapiri lu file di mpurtazzioni",
        "importbadinterwiki": "Lijami inter-wiki erratu",
        "importsuccess": "Mpurtazzioni arrinisciuta.",
-       "importnosources": "Nun hâ statu difinuta nudda wiki d'unni mpurtari e li carricamenti diretti dâ cronuluggìa sunnu disattivati.",
+       "importnosources": "Nun fu difinuta nudda wiki d'unni mpurtari e li carricamenti diretti dâ crunuluggìa sunnu disattivati.",
        "importnofile": "Nun hà statu carrcatu nuddu file pi la mpurtazzioni.",
        "importuploaderrorsize": "Caricamentu dû file pi la mpurtazzioni non arrinisciutu. Lu file è cchiù granni di li diminzioni màssimi cunzentiti pi l'upload.",
        "importuploaderrorpartial": "Caricamentu dû file pi la mpurtazzioni non arrinisciutu. Sulamenti na parti dû file vinni caricatu.",
-       "importuploaderrortemp": "Caricamentu dû file pi la mpurtazzioni non arrinisciutu. Manca na cartedda timpurània.",
+       "importuploaderrortemp": "Carricamentu dû file pi la mpurtazzioni nun arrinisciutu. Ammanca na cartedda timpurània.",
        "import-parse-failure": "Sbagghiu d'anàlisi ntâ mpurtazzioni XML",
        "import-noarticle": "Nudda pàggina di mpurtari.",
-       "import-nonewrevisions": "Nudda virsioni fu' mpurtata (o già c'èrunu tutti, o furu sautati tutti picchì mmatteru erruri).",
+       "import-nonewrevisions": "Nudda virsioni fu mpurtata (o già c'èranu tutti, o foru sautati tutti pirchì ammatteru erruri).",
        "xml-error-string": "$1 a riga $2, culonna $3 (byte $4): $5",
        "import-upload": "Càrrica dati XML",
        "import-token-mismatch": "Si pèrsiru li dati rilativi a la sissioni. Pi piaciri, prova n'àutra vota.",
        "import-invalid-interwiki": "E' mpussìbbili mpurtari dû pruggettu wiki nnicatu.",
-       "import-error-edit": "A pàggina \"$1\" nun fu' mpurtata picchì nun hai u pirmissu di canciàrila.",
-       "import-error-create": "La pàggina \"$1\" nun fu' mpurtata picchì nun hai u pirmissu di criàrila.",
-       "import-error-interwiki": "La pàggina \"$1\" nun fu mpurtata picchì lu sò nomu è risirvatu pî lijami di fora (inter-wiki).",
-       "import-error-special": "A pàggina \"$1\" nun fu' mpurtata picchì apparteni a' nu namespace spiciali chi' nun cunsenti pàggini.",
-       "import-error-invalid": "A pàggina \"$1\" nun fu' mpurtata picchì u nomu unni sarrìa mpurtata nun è vàlidu supra a' sta wiki.",
-       "import-error-unserialize": "A virsioni $2 dâ pàggina \"$1\" nun si potti di-sirializzari. Era signatu chi' sta virsioni adupirava u mudellu di cuntinutu $3 sirializzatu comu $4.",
-       "import-error-bad-location": "A virsioni $2 chi' adòpira u mudellu di cuntinutu $3 nun si po' mimurizzari nta \"$1\" supra a' sta wiki, picchì ddu mudellu nun è suppurtatu nta dda pàggina.",
+       "import-error-edit": "La pàggina \"$1\" nun fu mpurtata pirchì nun hai lu pirmissu di canciàrila.",
+       "import-error-create": "La pàggina \"$1\" nun fu mpurtata pirchì nun hai lu pirmissu di criàrila.",
+       "import-error-interwiki": "La pàggina \"$1\" nun fu mpurtata pirchì lu sò nomu è risirvatu pî lijami di fora (inter-wiki).",
+       "import-error-special": "La pàggina \"$1\" nun fu mpurtata pirchì apparteni a nu namespace spiciali chi nun cunzenti pàggini.",
+       "import-error-invalid": "La pàggina \"$1\" nun fu mpurtata pirchì lu nomu unni fussi mpurtata nun è vàlidu supra a sta wiki.",
+       "import-error-unserialize": "La virsioni $2 dâ pàggina \"$1\" nun si potti di-sirializzari. Era signatu chi sta virsioni adupirava lu mudellu di cuntinutu $3 sirializzatu comu $4.",
+       "import-error-bad-location": "La virsioni $2 chi adòpira lu mudellu di cuntinutu $3 nun si pò mimurizzari nta \"$1\" supra a sta wiki, pirchì ddu mudellu nun è suppurtatu nta dda pàggina.",
        "import-options-wrong": "{{PLURAL:$2|Opzioni sbagghiata|Opzioni sbagghiati}}: <nowiki>$1</nowiki>",
-       "import-rootpage-invalid": "A pàggina ràdica spicificata nun è vàlida comu tìtulu.",
-       "import-rootpage-nosubpage": "U namespace \"$1\" dâ pàggina ràdica nun cunsenti suttapàggini.",
+       "import-rootpage-invalid": "La pàggina ràdica spicificata nun è vàlida comu tìtulu.",
+       "import-rootpage-nosubpage": "Lu namespace \"$1\" dâ pàggina ràdica nun cunzenti suttapàggini.",
        "importlogpage": "Riggistru dî mpurtazzioni",
-       "importlogpagetext": "Riggistru dî mpurtazzioni d'ufficiu di pàggini pruvinenti d'àutri wiki, cumpleti di cronoluggìa.",
+       "importlogpagetext": "Riggistru dî mpurtazzioni d'ufficiu di pàggini pruvinenti d'àutri wiki, cumpleti di crunuluggìa.",
        "import-logentry-upload-detail": "{{PLURAL:$1|na virsioni mpurtata|$1 virsioni mpurtati}}",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|na virsioni mpurtata|$1 virsioni mpurtati}} di $2",
        "javascripttest": "Virìfichi JavaScript",
-       "javascripttest-pagetext-noframework": "Sta pàggina è risirvata pi' l'esicuzzioni dî virìfichi JavaScript.",
+       "javascripttest-pagetext-noframework": "Sta pàggina è risirvata pi l'esicuzzioni dî virìfichi JavaScript.",
        "javascripttest-pagetext-unknownframework": "Framework di virìfica \"$1\" scanusciutu.",
        "javascripttest-pagetext-unknownaction": "Azzioni scanusciuta \"$1\".",
-       "javascripttest-pagetext-frameworks": "Pi' favuri scegghî unu dî siguenti framework di virìfica: $1",
-       "javascripttest-pagetext-skins": "Scegghî na peddi câ quali esiguìri i virìfichi:",
-       "javascripttest-qunit-intro": "Talìa [$1 a ducumintazzioni a' prupositu dî virìfichi] supra a' mediawiki.org.",
+       "javascripttest-pagetext-frameworks": "Pi favuri scegghi unu dî framework siguenti di virìfica: $1",
+       "javascripttest-pagetext-skins": "Scegghi na peddi câ quali esiguiri li virìfichi:",
+       "javascripttest-qunit-intro": "Talìa [$1 la ducumintazzioni a prupositu dî virìfichi] supra a mediawiki.org.",
        "tooltip-pt-userpage": "La tò pàggina utenti",
        "tooltip-pt-anonuserpage": "La pàggina utenti di stu ndirizzu IP",
        "tooltip-pt-mytalk": "La to' pàggina di discussioni",
        "tooltip-pt-anontalk": "Discussioni supra li canciamenti fatti di stu ndirizzu IP",
        "tooltip-pt-preferences": "Li mè prifirenzi",
        "tooltip-pt-watchlist": "La lista dî pàggini ca stai tinennu sutta ossirvazzioni",
-       "tooltip-pt-mycontris": "La lista dî to cuntribbuti",
+       "tooltip-pt-mycontris": "La lista dî tò cuntribbuti",
        "tooltip-pt-login": "La riggistrazzioni è cunzigghiata, puru siddu nun obbrigatoria.",
        "tooltip-pt-logout": "Nisciuta",
-       "tooltip-pt-createaccount": "Si' nvitatu a criari nu cuntu e tràsiri; però nun è obbligatoriu",
+       "tooltip-pt-createaccount": "Sî nvitatu a criari nu cuntu e tràsiri; pirò nun è obbligatoriu",
        "tooltip-ca-talk": "Vidi li discussioni rilativi a sta pàggina",
        "tooltip-ca-edit": "Cancia sta pàggina",
        "tooltip-ca-addsection": "Agghiunci un cummentu a sta discussioni.",
        "tooltip-ca-viewsource": "Sta pàggina è prutetta, ma poi vìdiri lu sò còdici surgenti.",
        "tooltip-ca-history": "Virsioni pricidenti di sta pàggina.",
        "tooltip-ca-protect": "Pruteggi sta pàggina",
-       "tooltip-ca-unprotect": "Cancia a prutizzioni di sta pàggina",
+       "tooltip-ca-unprotect": "Cancia la prutizzioni di sta pàggina",
        "tooltip-ca-delete": "Cancella sta pàggina",
        "tooltip-ca-undelete": "Riprìstina la pàggina com'era prima dâ cancillazzioni",
        "tooltip-ca-move": "Sposta sta pàggina (cancia tìtulu)",
-       "tooltip-ca-watch": "Agghiunci sta pàggina â to lista taliata",
-       "tooltip-ca-unwatch": "Leva sta pàggina dâ to lista taliata",
+       "tooltip-ca-watch": "Agghiunci sta pàggina â tò lista taliata",
+       "tooltip-ca-unwatch": "Leva sta pàggina dâ tò lista taliata",
        "tooltip-search": "Cerca 'n {{SITENAME}}",
        "tooltip-search-go": "Vai a na pàggina cu chistu nomu esattu siddu asisti",
        "tooltip-search-fulltext": "Attrova pàggini pi stu testu",
        "tooltip-n-portal": "Discrizzioni dû pruggettu, zoccu poi fari, unni attruvari li cosi",
        "tooltip-n-currentevents": "Nfurmazzioni supra l'avvinimenti d'attualitati",
        "tooltip-n-recentchanges": "Alencu di l'ùrtimi canciamenti dû situ.",
-       "tooltip-n-randompage": "Carrica na pàggina a' muzzu",
+       "tooltip-n-randompage": "Carrica na pàggina a muzzu",
        "tooltip-n-help": "Pàggini d'aiutu.",
        "tooltip-t-whatlinkshere": "Alencu di tutti li pàggini ca sunnu culligati a chista",
        "tooltip-t-recentchangeslinked": "Alencu di l'ùrtimi canciamenti a li pàggini culligati a chista",
        "tooltip-feed-rss": "Feed RSS pi sta pàggina",
        "tooltip-feed-atom": "Feed Atom pi sta pàggina",
-       "tooltip-t-contributions": "La lista dî cuntribbuti di stutenti",
+       "tooltip-t-contributions": "La lista dî cuntribbuti di st'utenti",
        "tooltip-t-emailuser": "Manna un missaggiu e-mail a stu utenti",
-       "tooltip-t-info": "Autri nfurmazzioni a' prupòsitu di sta pàggina",
+       "tooltip-t-info": "Àutri nfurmazzioni a prupòsitu di sta pàggina",
        "tooltip-t-upload": "Càrrica mmàggini o file multimidiali",
        "tooltip-t-specialpages": "Lista di tutti li pàggini spiciali",
        "tooltip-t-print": "Virsioni stampabbili di chista pàggina",
        "tooltip-preview": "Antiprima dî canciamenti, ùsala prima di sarvari!",
        "tooltip-diff": "Talìa (mudalitati diff) li canciamenti c'hai fattu.",
        "tooltip-compareselectedversions": "Talìa li diffirenzi tra li dui virsioni silizziunati di sta pàggina.",
-       "tooltip-watch": "Agghiunci sta pàggina â to lista taliata",
-       "tooltip-watchlistedit-normal-submit": "Leva i tìtuli",
+       "tooltip-watch": "Agghiunci sta pàggina â tò lista taliata",
+       "tooltip-watchlistedit-normal-submit": "Leva li tìtuli",
        "tooltip-watchlistedit-raw-submit": "Aggiorna la lista taliata",
        "tooltip-recreate": "Ricrea la pàggina puru siddu hà statu cancillata",
        "tooltip-upload": "Ncigna carricamentu",
        "siteusers": "$1, {{PLURAL:$2|utenti|utenti}} di {{SITENAME}}",
        "anonusers": "{{PLURAL:$2|utenti anònimu|utenti anònimi}} di {{SITENAME}} $1",
        "creditspage": "Autura dâ pàggina",
-       "nocredits": "Nun cc'è nudda nfurmazzioni supra a' l'autura di sta pàggina.",
+       "nocredits": "Nun c'è nudda nfurmazzioni supra a l'autura di sta pàggina.",
        "spamprotectiontitle": "Filtru anti-spam",
        "spamprotectiontext": "La pàggina ca vulevi sarvari hà statu bluccata dû filtru anti-spam. Chistu è prubbabbirmenti duvutu â prisenza di nu liami a nu situ sternu bluccatu.",
        "spamprotectionmatch": "Lu nostru filtru anti-spam hà ndividuatu lu testu siquenti: $1",
        "spam_blanking": "Pàggina svacantata, tutti li virsioni cuntinìanu lijami versu $1",
        "spam_deleting": "Pàggina cancillata, tutti li virsioni cuntinìanu lijami versu $1",
        "simpleantispam-label": "Cuntrollu anti-spam.\n<strong>NUN JÌNCHIRI</strong> stu campu!",
-       "pageinfo-title": "Nfurmazzioni supra a' \"$1\"",
-       "pageinfo-not-current": "Sfurtunatamenti, nun è pussìbbili furnìri sti nfurmazzioni pî virsioni vecchî.",
+       "pageinfo-title": "Nfurmazzioni supra a \"$1\"",
+       "pageinfo-not-current": "Sfurtunatamenti, nun è pussìbbili furniri sti nfurmazzioni pî virsioni vecchî.",
        "pageinfo-header-basic": "Nfurmazzioni essinziali",
        "pageinfo-header-edits": "Crunuluggìa dî canciamenti",
        "pageinfo-header-restrictions": "Prutizzioni dâ pàggina",
-       "pageinfo-header-properties": "Prupietà dâ pàggina",
+       "pageinfo-header-properties": "Prupità dâ pàggina",
        "pageinfo-display-title": "Tìtulu ammustratu",
        "pageinfo-default-sort": "Criteriu d'ordinamentu pridifinutu",
-       "pageinfo-length": "Lunghizza dâ pàggina (in byte)",
+       "pageinfo-length": "Lunghizza dâ pàggina (n byte)",
        "pageinfo-article-id": "ID dâ pàggina",
        "pageinfo-language": "Lingua dû cuntinutu dâ pàggina",
        "pageinfo-content-model": "Mudellu dû cuntinutu dâ pàggina",
-       "pageinfo-robot-policy": "Innicizzazzioni pi' menzu di robot",
-       "pageinfo-robot-index": "Cunsintuta",
+       "pageinfo-robot-policy": "Nnicizzazzioni pi menzu di robot",
+       "pageinfo-robot-index": "Cunzintuta",
        "pageinfo-robot-noindex": "Pruibbuta",
-       "pageinfo-watchers": "Quanti talìunu sta pàggina",
+       "pageinfo-watchers": "Quantu talìanu sta pàggina",
        "pageinfo-visiting-watchers": "Nùmmiru d'utenti ntirissati a sta pàggina ca hannu taliatu li canciamenti chiù ricenti",
-       "pageinfo-few-watchers": "Cchiu' picca di $1 {{PLURAL:$1|taliaturi|taliatura}}",
+       "pageinfo-few-watchers": "Cchiù picca di $1 {{PLURAL:$1|taliaturi|taliatura}}",
        "pageinfo-few-visiting-watchers": "Forsi c'è quarchi utenti ntirissatu ca talìa li canciamenti ricenti, forsi no",
-       "pageinfo-redirects-name": "Nùmmiru di rimanni a' sta pàggina",
+       "pageinfo-redirects-name": "Nùmmiru di rimanni a sta pàggina",
        "pageinfo-subpages-name": "Nùmmiru di suttapàggini di sta pàggina",
-       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|chi' è un rimannu|chi' su' rimanni}}; $3 {{PLURAL:$3|chi' nun è un rimannu|chi' nun su' rimanni}})",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|chi è un rimannu|chi sù rimanni}}; $3 {{PLURAL:$3|chi nun è un rimannu|chi nun sù rimanni}})",
        "pageinfo-firstuser": "Criaturi dâ pàggina",
        "pageinfo-firsttime": "Data dâ criazzioni dâ pàggina",
-       "pageinfo-lastuser": "Ùltimu cuntribbuturi",
-       "pageinfo-lasttime": "Data di l'ùltimu canciamentu",
+       "pageinfo-lastuser": "Ùrtimu cuntribbuturi",
+       "pageinfo-lasttime": "Data di l'ùrtimu canciamentu",
        "pageinfo-edits": "Nùmmiru tutali di canciamenti",
-       "pageinfo-authors": "Nùmmiru tutali dautura distinti",
-       "pageinfo-recent-edits": "Nùmmiru di canciamenti ricenti (nta l'ultimu pirìudu di $1)",
+       "pageinfo-authors": "Nùmmiru tutali d'autura distinti",
+       "pageinfo-recent-edits": "Nùmmiru di canciamenti ricenti (nta l'ùrtimu pirìudu di $1)",
        "pageinfo-recent-authors": "Nùmmiru di cuntribbutura ricenti distinti",
        "pageinfo-magic-words": "{{PLURAL:$1|Palora màggica|Palori màggichi}} ($1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Catigurìa ammucciata|Catigurìi ammucciati}} ($1)",
-       "pageinfo-templates": "{{PLURAL:$1|Template trasclusu|Template trasclusi}} ($1)",
-       "pageinfo-transclusions": "{{PLURAL:$1|Pàggina|Pàggini}} unni chista è trasclusa ($1)",
-       "pageinfo-toolboxlink": "Nfurmazzioni ncapu la pàggina",
-       "pageinfo-redirectsto": "Rimanna a'",
+       "pageinfo-templates": "{{PLURAL:$1|Template nclusu|Template nclusi}} ($1)",
+       "pageinfo-transclusions": "{{PLURAL:$1|Pàggina|Pàggini}} unni chista è nclusa ($1)",
+       "pageinfo-toolboxlink": "Nfurmazzioni supra la pàggina",
+       "pageinfo-redirectsto": "Rimanna a",
        "pageinfo-redirectsto-info": "nfurmazzioni",
        "pageinfo-contentpage": "Cuntata comu pàggina di cuntinutu",
        "pageinfo-contentpage-yes": "Sì",
-       "pageinfo-protect-cascading": "Di cca pàrtunu prutizzioni a' cascata",
+       "pageinfo-protect-cascading": "Di ccà pàrtinu prutizzioni a cascata",
        "pageinfo-protect-cascading-yes": "Sì",
-       "pageinfo-protect-cascading-from": "Pìgghia prutizzioni a' cascata di",
+       "pageinfo-protect-cascading-from": "Pigghia prutizzioni a cascata di",
        "pageinfo-category-info": "Nfurmazzioni supra â catigurìa",
        "pageinfo-category-total": "Nùmmiru tutali di membri",
        "pageinfo-category-pages": "Nùmmiru di pàggini",
        "pageinfo-category-subcats": "Nùmmiru di suttacatigurìi",
        "pageinfo-category-files": "Nùmmiru di file",
-       "markaspatrolleddiff": "Marca comu battugghiatu",
-       "markaspatrolledtext": "Marca sta pàggina comu battugghiata",
-       "markedaspatrolled": "Marcata comu battugghiata",
-       "markedaspatrolledtext": "La virsioni scigghiuta di [[:$1]] fu' marcata comu battugghiata.",
-       "rcpatroldisabled": "Lu battugghiamentu di l'ùrtimi canciamenti è disattivatu",
-       "rcpatroldisabledtext": "La funzioni di battugghiamentu di l'ùrtimi canciamenti com'ad ora è disattivata.",
-       "markedaspatrollederror": "Nun si po' marcari comu battugghiatu",
-       "markedaspatrollederrortext": "Hâ' spicificari na virsioni di marcari comu battugghiata.",
-       "markedaspatrollederror-noautopatrol": "Nun hai lu pirmissu di marcari li to canciamenti comu battugghiati.",
-       "markedaspatrollednotify": "Stu canciamentu a' $1 fu' marcatu comu battugghiatu.",
-       "markedaspatrollederrornotify": "La marcatura comu battugghiatu nun riniscìu.",
-       "patrol-log-page": "Riggìstru dî battugghî",
-       "patrol-log-header": "Chistu è nu riggìstru dî virsioni battugghiati.",
-       "log-show-hide-patrol": "$1 lu riggistru dî battugghî",
+       "markaspatrolleddiff": "Marca comu virificatu",
+       "markaspatrolledtext": "Marca sta pàggina comu virificata",
+       "markedaspatrolled": "Marcata comu virificata",
+       "markedaspatrolledtext": "La virsioni scigghiuta di [[:$1]] fu marcata comu virificata.",
+       "rcpatroldisabled": "La virìfica di l'ùrtimi canciamenti è disattivata",
+       "rcpatroldisabledtext": "La funzioni di virìfica di l'ùrtimi canciamenti com'a ora è disattivata.",
+       "markedaspatrollederror": "Nun si pò marcari comu virificatu",
+       "markedaspatrollederrortext": "Hai a spicificari na virsioni di marcari comu virificata.",
+       "markedaspatrollederror-noautopatrol": "Nun hai lu pirmissu di marcari li tò canciamenti comu virificati.",
+       "markedaspatrollednotify": "Stu canciamentu a $1 fu marcatu comu virificatu.",
+       "markedaspatrollederrornotify": "La marcatura comu virificatu nun arriniscìu.",
+       "patrol-log-page": "Riggistru dî canciamenti virificati",
+       "patrol-log-header": "Chistu è nu riggistru dî virsioni virificati.",
+       "log-show-hide-patrol": "$1 lu riggistru dî canciamenti virificati",
        "log-show-hide-tag": "$1 lu riggistru di l'etichetti",
        "deletedrevision": "Cancillata na virsioni vecchia di $1",
        "filedeleteerror-short": "Erruri ntâ cancillazzioni dû file: $1",
-       "filedeleteerror-long": "Mmatteru erruri ntô tintativu di cancillari lu file:\n\n$1",
-       "filedelete-missing": "Lu file \"$1\" nun si po' cancillari pirchì nun esisti.",
+       "filedeleteerror-long": "Ammatteru erruri ntô tintativu di cancillari lu file:\n\n$1",
+       "filedelete-missing": "Lu file \"$1\" nun si pò cancillari pirchì nun esisti.",
        "filedelete-old-unregistered": "La virsioni spicificata dû file, \"$1\", nun è cuntinuta ntâ basi di dati.",
        "filedelete-current-unregistered": "Lu file spicificatu, \"$1\", nun è cuntinutu ntâ basi di dati.",
        "filedelete-archive-read-only": "La cartella d'archiviu \"$1\" nun è scrivìbbili dû server web.",
        "previousdiff": "← Canciamentu avanti",
        "nextdiff": "Canciamentu appressu →",
-       "mediawarning": "<strong>Accura:</strong>Stu gèniri di file po' cuntèniri còdici malignu.\nEsiquènnulu, lu vostru sistema putissi vèniri cumprumissu.",
+       "mediawarning": "<strong>Accura: </strong>Stu gèniri di file pò cuntèniri còdici malignu.\nEsiquènnulu, lu vostru sistema putissi vèniri cumprumissu.",
        "imagemaxsize": "Diminzioni màssima dî mmàggini:<br />''(pi li pàggini di discrizzioni dô file)''",
        "thumbsize": "Grannizza dî miniaturi:",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|pàggina|pàggini}}",
        "file-info": "Grannizza: $1, tipu MIME: $2",
        "file-info-size": "$1 × $2 pixel, grannizza dû file: $3, tipu MIME: $4",
        "file-info-size-pages": "$1 × $2 pixel, grannizza dû file: $3, tipu MIME: $4, $5 {{PLURAL:$5|pàggina|pàggini}}",
-       "file-nohires": "Risuluzzioni cchiù auta nun nn'havi.",
-       "svg-long-desc": "File SVG, diminsioni nominali $1 × $2 pixel, grannizza dû file: $3",
-       "svg-long-desc-animated": "File SVG animatu, diminsioni numinali $1 × $2 pixel, grannizza dû file: $3",
+       "file-nohires": "Risuluzzioni cchiù àuta nun nn'havi.",
+       "svg-long-desc": "File SVG, diminzioni numinali $1 × $2 pixel, grannizza dû file: $3",
+       "svg-long-desc-animated": "File SVG animatu, diminzioni numinali $1 × $2 pixel, grannizza dû file: $3",
        "svg-long-error": "File SVG nun vàlidu: $1",
        "show-big-image": "File origginali",
-       "show-big-image-preview": "Diminsioni di st'antiprima: $1.",
-       "show-big-image-other": "{{PLURAL:$2|Autra risuluzzioni|Autri risuluzzioni}}: $1.",
+       "show-big-image-preview": "Diminzioni di st'antiprima: $1.",
+       "show-big-image-other": "{{PLURAL:$2|Àutra risuluzzioni|Àutri risuluzzioni}}: $1.",
        "show-big-image-size": "$1 × $2 pixel",
-       "file-info-gif-looped": "a' ripitizzioni",
+       "file-info-gif-looped": "a ripitizzioni",
        "file-info-gif-frames": "$1 {{PLURAL:$1|futugramma|futugrammi}}",
-       "file-info-png-looped": "a' ripitizzioni",
+       "file-info-png-looped": "a ripitizzioni",
        "file-info-png-repeat": "ripitutu {{PLURAL:$1|na vota|$1 voti}}",
        "file-info-png-frames": "$1 {{PLURAL:$1|futugramma|futugrammi}}",
-       "file-no-thumb-animation": "<strong>Nota: pi' causa di limitazzioni tècnichi, li miniaturi di stu file nun vènunu animati.</strong>",
-       "file-no-thumb-animation-gif": "<strong>Nota: pi' causa di limitazzioni tècnichi, li miniaturi di na mmàggini GIF a' risuluzzioni auta comu a' chista nun vènunu animati.</strong>",
+       "file-no-thumb-animation": "<strong>Nota: a càusa di limitazzioni tècnichi, li miniaturi di stu file nun vèninu animati.</strong>",
+       "file-no-thumb-animation-gif": "<strong>Nota: a càusa di limitazzioni tècnichi, li miniaturi di na mmàggini GIF a risuluzzioni àuta comu chista nun vèninu animati.</strong>",
        "newimages": "Gallarìa dî file novi",
-       "imagelisttext": "Ccassutta cc'è na lista di <strong>$1</strong> {{PLURAL:$1|file ordinatu|file ordinati}} $2.",
-       "newimages-summary": "Sta pàggina spiciali ammustra li file carricati di cchiu' picca tempu.",
+       "imagelisttext": "Ccassutta c'è na lista di <strong>$1</strong> {{PLURAL:$1|file ordinatu|file ordinati}} $2.",
+       "newimages-summary": "Sta pàggina spiciali ammustra li file carricati di cchiù picca tempu.",
        "newimages-legend": "Filtru",
-       "newimages-label": "Nomu dû file (o na so parti):",
+       "newimages-label": "Nomu dû file (o na sò parti):",
        "newimages-showbots": "Ammustra li carricamenti dî bot",
-       "noimages": "Nenti a' vìdiri.",
-       "ilsubmit": "Va cerca",
-       "bydate": "pi' data",
-       "sp-newimages-showfrom": "Ammustra li file cchiu' novi a' pàrtiri dî $2 dû $1",
+       "noimages": "Nenti a vìdiri.",
+       "ilsubmit": "Va arricerca",
+       "bydate": "pi data",
+       "sp-newimages-showfrom": "Ammustra li file cchiù novi a pàrtiri dî $2 dû $1",
        "seconds": "{{PLURAL:$1|un sicunnu|$1 sicunni}}",
        "minutes": "{{PLURAL:$1|un minutu|$1 minuti}}",
        "hours": "{{PLURAL:$1|un'ura|$1 uri}}",
        "weeks": "{{PLURAL:$1|na simana|$1 simani}}",
        "months": "{{PLURAL:$1|un misi|$1 misi}}",
        "years": "{{PLURAL:$1|un annu|$1 anni}}",
-       "ago": "$1 fa'",
+       "ago": "$1 fa",
        "just-now": "propia ora",
-       "hours-ago": "{{PLURAL:$1|un'ura|$1 uri}} fa'",
-       "minutes-ago": "{{PLURAL:$1|un minutu|$1 minuti}} fa'",
-       "seconds-ago": "{{PLURAL:$1|un sicunnu|$1 sicunni}} fa'",
-       "monday-at": "Lùniri ê $1",
-       "tuesday-at": "Màrtiri ê $1",
-       "wednesday-at": "Mèrcuri ê $1",
-       "thursday-at": "Jòviri ê $1",
-       "friday-at": "Vènniri ê $1",
-       "saturday-at": "Sàbbatu ê $1",
-       "sunday-at": "Dumìnica ê $1",
-       "yesterday-at": "Ajeri ê $1",
+       "hours-ago": "{{PLURAL:$1|un'ura|$1 uri}} fa",
+       "minutes-ago": "{{PLURAL:$1|un minutu|$1 minuti}} fa",
+       "seconds-ago": "{{PLURAL:$1|un sicunnu|$1 sicunni}} fa",
+       "monday-at": "Lunidìa ê $1",
+       "tuesday-at": "Martidìa ê $1",
+       "wednesday-at": "Mercuridìa ê $1",
+       "thursday-at": "Jovidìa ê $1",
+       "friday-at": "Venniridìa ê $1",
+       "saturday-at": "Sabbatudìa ê $1",
+       "sunday-at": "Duminicadìa ê $1",
+       "yesterday-at": "Aieri ê $1",
        "bad_image_list": "Lu furmatu è lu siguenti:\n\nSù pigghiati a cunziddirazzioni sulu li vuci d'elenchi puntati (li righi c'accumènzanu cû sìmmulu *).\nLa prima lijami nta ogni riga havi a puntari ôn file nun addisiatu.\nSi ci sù àutri lijami ntâ stissa riga, sù cunziddirati comu eccizzioni, vali a diri pàggini unni lu file pò èssiri ncurpuratu.",
        "metadata": "Metadati",
-       "metadata-help": "Stu file cunteni autri nfurmazzioni, prubbabbirmenti agghiunciuti dâ màchina futugràfica o dû scanner adupirati pi' criàrilu o diggitalizzàrilu.\nSiddu lu file hâ statu canciatu dâ so cunnizzioni origginali, certi dittagghî putìssiru nun currispùnniri ô statu novu dû file.",
+       "metadata-help": "Stu file cunteni àutri nfurmazzioni, prubbabbirmenti agghiunciuti dâ màchina futugràfica o dû scanner adupirati pi criàrilu o diggitalizzàrilu.\nSiddu lu file fu canciatu dâ sò cunnizzioni origginali, certi dittagghî putìssiru nun currispùnniri ô statu novu dû file.",
        "metadata-expand": "Ammustra li nfurmazzioni dittagghiati",
        "metadata-collapse": "Ammuccia li nfurmazzioni dittagghiati",
-       "metadata-fields": "Li campi dî metadati dâ mmàggini elincati nta stu missaggiu sarrannu ammustrati ntâ pàggina dâ mmàggini quannu la tavula dî metadati è strinciuta.\nL'àutri campi comu mpustazzioni pridifinuta sarrannu ammucciati.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "Li campi dî metadati dâ mmàggini elincati nta stu missaggiu sunnu ammustrati ntâ pàggina dâ mmàggini quannu la tàvula dî metadati è strinciuta.\nL'àutri campi comu mpustazzioni pridifinuta sunnu ammucciati.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Larghizza",
        "exif-imagelength": "Autizza",
-       "exif-bitspersample": "Bit pi' cumpunenti",
+       "exif-bitspersample": "Bit pi cumpunenti",
        "exif-compression": "Miccanismu di cumprissioni",
        "exif-photometricinterpretation": "Cumpusizzioni dû pixel",
        "exif-orientation": "Orientamentu",
        "exif-spectralsensitivity": "Sinzibbilitati spittrali",
        "exif-isospeedratings": "Sinzibbilitati ISO",
        "exif-shutterspeedvalue": "Tempu d'espusizzioni APEX",
-       "exif-aperturevalue": "Apirtura APEX",
-       "exif-brightnessvalue": "Luminusitati APEX",
+       "exif-aperturevalue": "Grapitura APEX",
+       "exif-brightnessvalue": "Luminusità APEX",
        "exif-exposurebiasvalue": "Currezzioni espusizzioni",
        "exif-maxaperturevalue": "Apirtura màssima",
        "exif-subjectdistance": "Distanza dû suggettu",
        "exif-gpsdifferential": "Currezzioni diffirinziali GPS",
        "exif-jpegfilecomment": "Cummentu dû file JPEG",
        "exif-keywords": "Palori chiavi",
-       "exif-worldregioncreated": "Parti dû munnu unni sta fotu fu' pigghiata",
-       "exif-countrycreated": "Paìsi dû munnu unni sta fotu fu' pigghiata",
-       "exif-countrycodecreated": "Còdici dû paìsi unni sta fotu fu' pigghiata",
-       "exif-provinceorstatecreated": "Riggioni o pruvincia unni sta fòtu fu' pigghiata",
-       "exif-citycreated": "Citati unni sta fotu fu' pigghiata",
-       "exif-sublocationcreated": "Parti dâ citati unni sta fotu fu' pigghiata",
+       "exif-worldregioncreated": "Parti dû munnu unni sta fotu fu pigghiata",
+       "exif-countrycreated": "Paisi dû munnu unni sta fotu fu pigghiata",
+       "exif-countrycodecreated": "Còdici dû paisi unni sta fotu fu pigghiata",
+       "exif-provinceorstatecreated": "Riggiuni o pruvincia unni sta fòtu fu pigghiata",
+       "exif-citycreated": "Cità unni sta fotu fu pigghiata",
+       "exif-sublocationcreated": "Parti dâ cità unni sta fotu fu pigghiata",
        "exif-worldregiondest": "Parti dû munnu raffigurata",
-       "exif-countrydest": "Paìsi dû munnu raffiguratu",
-       "exif-countrycodedest": "Còdici dû paìsi raffiguratu",
-       "exif-provinceorstatedest": "Riggioni o pruvincia raffigurata",
-       "exif-citydest": "Citati raffigurata",
-       "exif-sublocationdest": "Parti dâ citati raffigurata",
+       "exif-countrydest": "Paisi dû munnu raffiguratu",
+       "exif-countrycodedest": "Còdici dû paisi raffiguratu",
+       "exif-provinceorstatedest": "Riggiuni o pruvincia raffigurata",
+       "exif-citydest": "Cità raffigurata",
+       "exif-sublocationdest": "Parti dâ cità raffigurata",
        "exif-objectname": "Tìtulu curtu",
-       "exif-specialinstructions": "Istruzzioni spiciali",
+       "exif-specialinstructions": "Struzzioni spiciali",
        "exif-headline": "Tìtulu",
        "exif-credit": "Orìggini/Furnituri",
        "exif-source": "Fonti",
        "exif-languagecode": "Lingua",
        "exif-iimversion": "Virsioni di IIM",
        "exif-iimcategory": "Catigurìa",
-       "exif-iimsupplementalcategory": "Catigurìi aggiuntivi",
+       "exif-iimsupplementalcategory": "Catigurìi agghiuntivi",
        "exif-datetimeexpires": "Di nun adupiràri doppu",
        "exif-datetimereleased": "Data di rilassu",
        "exif-originaltransmissionref": "Còdici dû locu di trasmissioni origginali",
        "exif-identifier": "Idintificaturi",
        "exif-lens": "Lenti adupirata",
-       "exif-serialnumber": "Nummiru di serî dâ màchina futugràfica",
-       "exif-cameraownername": "Prupietariu dâ màchina futugràfica",
+       "exif-serialnumber": "Nùmmiru di serî dâ màchina futugràfica",
+       "exif-cameraownername": "Prupitariu dâ màchina futugràfica",
        "exif-label": "Etichetta",
-       "exif-datetimemetadata": "Data di l'ùltimu canciamentu dî metadati",
-       "exif-nickname": "Nomu infurmali dâ mmàggini",
-       "exif-rating": "Votu (supra a' 5)",
+       "exif-datetimemetadata": "Data di l'ùrtimu canciamentu dî metadati",
+       "exif-nickname": "Nomu nfurmali dâ mmàggini",
+       "exif-rating": "Votu (supra a 5)",
        "exif-rightscertificate": "Cirtificatu pâ gistioni dî dritti",
        "exif-copyrighted": "Cupertu di drittu d'auturi",
        "exif-copyrightowner": "Ditinturi dû drittu d'auturi",
        "exif-usageterms": "Tèrmini pi l'usu",
-       "exif-webstatement": "Dichiarazzioni di drittu d'auturi in linia",
+       "exif-webstatement": "Dichiarazzioni di drittu d'auturi n lìnia",
        "exif-originaldocumentid": "Idintificaturi unìvucu dû ducumentu origginali",
        "exif-licenseurl": "URL dâ licenza di drittu d'auturi",
-       "exif-morepermissionsurl": "Nfurmazzioni pâ cuncissioni di autri licenzi",
-       "exif-attributionurl": "Quannu si fa usu di st'òpira, si prega di mèttiri na lijami versu",
-       "exif-preferredattributionname": "Quannu si fa' usu di st'òpira, si prega di attribuìrinni a patirnità a'",
+       "exif-morepermissionsurl": "Nfurmazzioni pâ cuncissioni dutri licenzi",
+       "exif-attributionurl": "Quannu si fa usu di st'òpira, si prega di mèttiri nu lijami versu",
+       "exif-preferredattributionname": "Quannu si fa usu di st'òpira, si prega d'attribuìrinni la patirnità a",
        "exif-pngfilecomment": "Cummentu dû file PNG",
-       "exif-disclaimer": "Dichiarazzioni di esclusioni di rispunsabbilità",
-       "exif-contentwarning": "Avvirtimentu supra ô cuntinutu",
+       "exif-disclaimer": "Dichiarazzioni d'esclusioni di rispunzabbilità",
+       "exif-contentwarning": "Avvisu supra ô cuntinutu",
        "exif-giffilecomment": "Cummentu dû file GIF",
-       "exif-intellectualgenre": "Gèniri delimentu",
+       "exif-intellectualgenre": "Gèniri d'elimentu",
        "exif-subjectnewscode": "Còdici di l'oggettu",
        "exif-scenecode": "Còdici IPTC dâ nquatratura",
        "exif-event": "Eventu raffiguratu",
        "exif-originalimageheight": "Autizza dâ mmàggini avanti dû ritagghiu",
        "exif-originalimagewidth": "Larghizza dâ mmàggini avanti dû ritagghiu",
        "exif-compression-1": "Nuddu",
-       "exif-compression-2": "cudìfica unidiminsiunali run-length encoding mudificata di Huffman dû Gruppu 3 CCITT",
+       "exif-compression-2": "cudìfica unidiminziunali run-length encoding canciata di Huffman dû Gruppu 3 CCITT",
        "exif-compression-3": "cudìfica di fax dû Gruppu 3 CCITT",
        "exif-compression-4": "cudìfica di fax dû Gruppu 4 CCITT",
        "exif-copyrighted-true": "Prutettu di drittu d'auturi",
        "exif-orientation-3": "Rutatu di 180°",
        "exif-orientation-4": "Capuvortu virticarmenti",
        "exif-orientation-5": "Rotatu 90° 'n sensu antiurariu e capuvortu virticarmenti",
-       "exif-orientation-6": "Vutatu di 90° 'n senzu antiurariu",
+       "exif-orientation-6": "Vutatu di 90° n senzu antiurariu",
        "exif-orientation-7": "Rotatu 90° 'n sensu urariu e capuvortu virticarmenti",
-       "exif-orientation-8": "Vutatu di 90° 'n senzu urariu",
+       "exif-orientation-8": "Vutatu di 90° n senzu urariu",
        "exif-planarconfiguration-1": "a blocchi (chunky)",
        "exif-planarconfiguration-2": "liniari (planar)",
        "exif-xyresolution-i": "$1 punti pi puseri (dpi)",
        "exif-gpsdop-poor": "Pèssima ($1)",
        "exif-objectcycle-a": "Sulu pâ matina",
        "exif-objectcycle-p": "Sulu pâ sira",
-       "exif-objectcycle-b": "Pi' matina e sira",
+       "exif-objectcycle-b": "Pi matina e sira",
        "exif-gpsdirection-t": "Direzzioni riali",
        "exif-gpsdirection-m": "Direzzioni magnètica",
        "exif-ycbcrpositioning-1": "Cintrati",
        "exif-dc-source": "File surgenti",
        "exif-dc-type": "Sorta di file",
        "exif-rating-rejected": "Riggittatu",
-       "exif-isospeedratings-overflow": "Maggiuri di 65535",
-       "exif-iimcategory-ace": "Arti, cultura e' spittàculu",
+       "exif-isospeedratings-overflow": "Maiuri di 65535",
+       "exif-iimcategory-ace": "Arti, cultura e spittàculu",
        "exif-iimcategory-clj": "Crìmini e giustizzia",
-       "exif-iimcategory-dis": "Disastri e incidenti",
+       "exif-iimcategory-dis": "Disastri e ncidenti",
        "exif-iimcategory-fin": "Ecunumìa e affari",
-       "exif-iimcategory-edu": "Istruzzioni",
+       "exif-iimcategory-edu": "Struzzioni",
        "exif-iimcategory-evn": "Ammienti",
        "exif-iimcategory-hth": "Saluti",
        "exif-iimcategory-hum": "Casi umani",
        "exif-iimcategory-lab": "Travagghiu",
-       "exif-iimcategory-lif": "Stili di vita e' arricrìu",
+       "exif-iimcategory-lif": "Stili di vita e arricrìu",
        "exif-iimcategory-pol": "Pulìtica",
-       "exif-iimcategory-rel": "Riliggioni e fidi",
-       "exif-iimcategory-sci": "Scienza e ticnuluggìa",
-       "exif-iimcategory-soi": "Quistioni suciali",
+       "exif-iimcategory-rel": "Riliggiuni e fidi",
+       "exif-iimcategory-sci": "Scienza e ticnoluggìa",
+       "exif-iimcategory-soi": "Chistioni suciali",
        "exif-iimcategory-spo": "Sport",
        "exif-iimcategory-war": "Guerra, cunflitti e disòrdini",
        "exif-iimcategory-wea": "Tempu atmusfèricu",
        "exif-urgency-normal": "Nurmali ($1)",
-       "exif-urgency-low": "Auta ($1)",
-       "exif-urgency-high": "Bascia ($1)",
+       "exif-urgency-low": "Vascia ($1)",
+       "exif-urgency-high": "Àuta ($1)",
        "exif-urgency-other": "Difinuta di l'utenti ($1)",
        "namespacesall": "Tutti",
        "monthsall": "tutti",
-       "confirmemail": "Cunfirma dû nnirizzu di posta elittrònica",
+       "confirmemail": "Cunferma dû nnirizzu di posta elittrònica",
        "confirmemail_noemail": "Nun hà statu ndicatu un ndirizzu e-mail vàlidu ntê propi [[Special:Preferences|prifirenzi]].",
-       "confirmemail_text": "{{SITENAME}} addumanna la cunvàlida dû tò nnirizzu di posta elittrònica pi putìri adupirari li funziunalità assuciati.\nCarca lu buttuni ccassutta pi mannari nu missaggiu e-mail di cunferma a lu tò nnirizzu.\nNtô missaggiu c'è na lijami ca cunteni un còdici;\ncàrrica dda lijami cô tò browser pi cunfirmari ca lu tò nnirizzu di posta elittrònica è vàlidu.",
-       "confirmemail_pending": "Già nu còdici di cunfirma t'havi statu mannatu via posta elittrònica;\nsiddu hai criatu lu to cuntu di picca tempu, è mègghiu ch'aspètti l'arrivu dû còdici pi' quarchi minutu prima di pruvari a' addumannàrinni unu novu.",
-       "confirmemail_send": "Manna un còdici di cunfirma via e-mail",
-       "confirmemail_sent": "Missaggiu e-mail di cunfirma mannatu.",
-       "confirmemail_oncreate": "Un còdici di cunfirma fu' spidutu a lu to nnirizzu di posta elittrònica.\nLu còdici nun servi pi' tràsiri nta lu situ, ma ll'hâ' prisintari pi' putiri attivari tutti li funzioni dâ wiki ca fannu usu dâ posta elittrònica.",
-       "confirmemail_sendfailed": "{{SITENAME}} nun potti mannari lu to missaggiu e-mail di cunfirma.\nVirificari ca lu nnirizzu nun cunteni caràttiri nun vàlidi.\n\nMissaggiu d'erruri dû sirvizziu di posta: $1",
-       "confirmemail_invalid": "Còdici di cunfirma nun vàlidu.\nLu còdici putissi èssiri scadutu.",
-       "confirmemail_needlogin": "Pi' favuri $1 pi' cunvalidari lu to nnirizzu di posta elittrònica.",
+       "confirmemail_text": "{{SITENAME}} addumanna la cunvàlida dû tò nnirizzu di posta elittrònica pi putiri adupirari li funziunalità assuciati.\nCarca lu buttuni ccassutta pi mannari nu missaggiu e-mail di cunferma a lu tò nnirizzu.\nNtô missaggiu c'è un lijami ca cunteni un còdici;\ncàrrica ddu lijami cô tò browser pi cunfirmari ca lu tò nnirizzu di posta elittrònica è vàlidu.",
+       "confirmemail_pending": "Già nu còdici di cunferma ti fu mannatu via posta elittrònica;\nsiddu criasti lu tò cuntu di picca tempu, è megghiu c'aspetti l'arrivu dû còdici pi quarchi minutu prima di pruvari a addumannàrinni unu novu.",
+       "confirmemail_send": "Manna un còdici di cunferma via e-mail",
+       "confirmemail_sent": "Missaggiu e-mail di cunferma mannatu.",
+       "confirmemail_oncreate": "Un còdici di cunferma fu spidutu a lu tò nnirizzu di posta elittrònica.\nLu còdici nun servi pi tràsiri nta lu situ, ma l'hai a prisintari pi putiri attivari tutti li funzioni dâ wiki ca fannu usu dâ posta elittrònica.",
+       "confirmemail_sendfailed": "{{SITENAME}} nun potti mannari lu tò missaggiu e-mail di cunferma.\nVirificari ca lu nnirizzu nun cunteni caràttiri nun vàlidi.\n\nMissaggiu d'erruri dû sirvizziu di posta: $1",
+       "confirmemail_invalid": "Còdici di cunferma nun vàlidu.\nLu còdici putissi èssiri scadutu.",
+       "confirmemail_needlogin": "Pi favuri $1 pi cunvalidari lu tò nnirizzu di posta elittrònica.",
        "confirmemail_success": "Lu ndirizzu e-mail è cunfirmatu. Ora è pussìbbili esèquiri l'accessu e fari chinu usu dû situ.",
        "confirmemail_loggedin": "Lu tò nnirizzu email fu ora cunfirmatu.",
-       "confirmemail_subject": "Cunfirma dû nnirizzu di posta elittronica pi' {{SITENAME}}",
-       "confirmemail_body": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\nriggistrau un cuntu \"$2\" cu stu nnirizzu di posta elittrònica supra a {{SITENAME}}.\n\nPi cunfirmari ca stu cuntu apparteni pi daveru a tìa,\ne attivari li funziunalità di posta elittrònica supra a {{SITENAME}},\ngrapi sta lijami cû tò browser:\n\n$3\n\nSi mmeci stu cuntu *nun t'apparteni*, clicca sta lijami\npi nigari la cunferma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunferma scadi lu $4.",
-       "confirmemail_body_changed": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\ncanciau lu nnirizzu di posta elittrònica dû cuntu \"$2\" supra a {{SITENAME}} mpustànnulu a chistu.\n\nPi cunfirmari ca stu cuntu apparteni pi daveru a tìa,\ne attivari n'àutra vota li funziunalità di posta elittrònica supra a {{SITENAME}},\ngrapi sta lijami cû tò browser:\n\n$3\n\nSi mmeci stu cuntu *nun t'apparteni*, clicca sta lijami\npi nigari la cunferma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunferma scadi lu $4.",
-       "confirmemail_body_set": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\nmpustau stu nnirizzu di posta elittrònica pû cuntu \"$2\" supra a {{SITENAME}}.\n\nPi cunfirmari ca stu cuntu apparteni pi daveru a tìa,\ne attivari li funziunalità di posta elittrònica supra a {{SITENAME}},\ngrapi sta lijami cû tò browser:\n\n$3\n\nSi mmeci stu cuntu *nun t'apparteni*, clicca sta lijami\npi nigari la cunferma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunferma scadi lu $4.",
-       "confirmemail_invalidated": "Cunvàlida dû nnirizzu di posta elittronica nigata",
+       "confirmemail_subject": "Cunferma dû nnirizzu di posta elittronica pi {{SITENAME}}",
+       "confirmemail_body": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\nriggistrau un cuntu \"$2\" cu stu nnirizzu di posta elittrònica supra a {{SITENAME}}.\n\nPi cunfirmari ca stu cuntu apparteni pi daveru a tìa,\ne attivari li funziunalità di posta elittrònica supra a {{SITENAME}},\ngrapi stu lijami cû tò browser:\n\n$3\n\nSi mmeci stu cuntu *nun t'apparteni*, clicca stu lijami\npi nigari la cunferma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunferma scadi lu $4.",
+       "confirmemail_body_changed": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\ncanciau lu nnirizzu di posta elittrònica dû cuntu \"$2\" supra a {{SITENAME}} mpustànnulu a chistu.\n\nPi cunfirmari ca stu cuntu apparteni pi daveru a tìa,\ne attivari n'àutra vota li funziunalità di posta elittrònica supra a {{SITENAME}},\ngrapi stu lijami cû tò browser:\n\n$3\n\nSi mmeci stu cuntu *nun t'apparteni*, clicca stu lijami\npi nigari la cunferma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunferma scadi lu $4.",
+       "confirmemail_body_set": "Quarchidunu, prubbabbilmenti tu stissu, dû nnirizzu IP $1,\nmpustau stu nnirizzu di posta elittrònica pû cuntu \"$2\" supra a {{SITENAME}}.\n\nPi cunfirmari ca stu cuntu apparteni pi daveru a tìa,\ne attivari li funziunalità di posta elittrònica supra a {{SITENAME}},\ngrapi stu lijami cû tò browser:\n\n$3\n\nSi mmeci stu cuntu *nun t'apparteni*, clicca stu lijami\npi nigari la cunferma dû nnirizzu di posta elittrònica:\n\n$5\n\nStu còdici di cunferma scadi lu $4.",
+       "confirmemail_invalidated": "Cunvàlida dû nnirizzu di posta elittrònica nigata",
        "invalidateemail": "Nigazzioni dâ cunvàlida dâ posta elittrònica",
        "scarytranscludedisabled": "[La nchiusioni di pàggini tra siti wiki nun è attiva]",
        "scarytranscludefailed": "[Erruri: Mpussìbbili uttèniri lu template $1]",
-       "scarytranscludefailed-httpstatus": "[Carricamentu dû template nun rinisciutu di $1: HTTP $2]",
+       "scarytranscludefailed-httpstatus": "[Carricamentu dû template nun arrinisciutu di $1: HTTP $2]",
        "scarytranscludetoolong": "[URL troppu longu]",
        "deletedwhileediting": "'''Accura''': Sta pàggina vinni scancillata doppu c'hai accuminzatu a scanciàrila!",
-       "confirmrecreate": "L'utenti [[User:$1|$1]] ([[User talk:$1|discussioni]]) cancillau sta pàggina appressu chi' tu avìi accuminciatu a' canciàrila, dannu sta spiegazzioni:\n: <em>$2</em>\nPi' favuri cunfirma chi' voi criari n'autra vota sta pàggina pi' davera.",
-       "confirmrecreate-noreason": "L'utenti [[User:$1|$1]] ([[User talk:$1|discussioni]]) cancillau sta pàggina appressu chi' tu avìi accuminciatu a' canciàrila. Pi' favuri cunfirma chi' voi criari n'autra vota sta pàggina pi' davera.",
+       "confirmrecreate": "L'utenti [[User:$1|$1]] ([[User talk:$1|discussioni]]) cancillau sta pàggina appressu chi tu avivi accuminzatu a canciàrila, dannu sta spigazzioni:\n: <em>$2</em>\nPi favuri cunferma chi voi criari n'àutra vota sta pàggina pi daveru.",
+       "confirmrecreate-noreason": "L'utenti [[User:$1|$1]] ([[User talk:$1|discussioni]]) cancillau sta pàggina appressu chi tu avivi accuminzatu a canciàrila. Pi favuri cunferma chi voi criari n'àutra vota sta pàggina pi daveru.",
        "recreate": "Ricrìa",
        "unit-pixel": "px",
-       "confirm_purge_button": "Cunfirma",
+       "confirm_purge_button": "Cunferma",
        "confirm-purge-top": "S'addisìa puliri la cache di sta pàggina?",
        "confirm-purge-bottom": "Pulizziari la cache di na pàggina pirmetti d'ammustrari la sô virsioni cchiù nova.",
-       "confirm-watch-button": "Cunfirma",
-       "confirm-watch-top": "Agghiùnciri sta pàggina â to lista taliata?",
-       "confirm-unwatch-button": "Cunfirma",
-       "confirm-unwatch-top": "Livari sta pàggina dâ to lista taliata?",
+       "confirm-watch-button": "Cunferma",
+       "confirm-watch-top": "Agghiùnciri sta pàggina â tò lista taliata?",
+       "confirm-unwatch-button": "Cunferma",
+       "confirm-unwatch-top": "Livari sta pàggina dâ tò lista taliata?",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "← pàggina pricidenti",
        "imgmultipagenext": "pàggina siquenti →",
        "imgmultigo": "Va'",
        "imgmultigoto": "Vai a pàggina $1",
        "img-lang-default": "(lingua pridifinuta)",
-       "img-lang-info": "Gènira sta mmàggini in $1. $2",
+       "img-lang-info": "Gènira sta mmàggini n $1. $2",
        "img-lang-go": "Vai",
        "ascending_abbrev": "crisc",
        "descending_abbrev": "dicrisc",
        "table_pager_first": "Prima pàggina",
        "table_pager_last": "Ùrtima pàggina",
        "table_pager_limit": "Ammustra $1 file pi pàggina",
-       "table_pager_limit_label": "Elimenti pi' pàggina:",
+       "table_pager_limit_label": "Elimenti pi pàggina:",
        "table_pager_limit_submit": "Va'",
        "table_pager_empty": "Nuddu risurtatu",
        "autosumm-blank": "Pàggina svacantata",
        "lag-warn-high": "A càusa di nu ritardu eccissivu nta l'aggiurnamentu dô server di databbasi, li canciamenti appurtati {{PLURAL:$1|nta l'ùrtimu secundu|nta l'ùrtimi $1 secundi}} ponnu nun èssiri nta sta lista.",
        "watchlistedit-normal-title": "Cancia pàggini taliati",
        "watchlistedit-normal-legend": "Eliminazzioni di pàggini dâ lista dê pàggini taliati",
-       "watchlistedit-normal-explain": "Ccassutta cci sunnu li tìtuli dâ to lista taliata.\nPi' livàrinni unu, scegghî la casedda a' latu d'iddu, e clicca \"{{int:Watchlistedit-normal-submit}}\".\nPoi puru [[Special:EditWatchlist/raw|canciari la lista sutta forma di testu]].",
+       "watchlistedit-normal-explain": "Ccassutta ci sunnu li tìtuli dâ tò lista taliata.\nPi livàrinni unu, scegghi la casedda a latu d'iddu, e clicca \"{{int:Watchlistedit-normal-submit}}\".\nPoi puru [[Special:EditWatchlist/raw|canciari la lista sutta forma di testu]].",
        "watchlistedit-normal-submit": "Elìmina pàggini",
        "watchlistedit-normal-done": "Dâ lista dê pàggini taliati hà{{PLURAL:$1|&nbsp;stata eliminata na pàggina|nnu stati eliminati $1 pàggini}}:",
        "watchlistedit-raw-title": "Canciamentu dâ lista taliata sutta forma di testu",
        "watchlistedit-raw-legend": "Canciamentu dâ lista taliata sutta forma di testu",
-       "watchlistedit-raw-explain": "Ccassutta cci su' li tìtuli ntâ to lista taliata, chi' si po' canciari agghiuncennu e livannu tituli, unu pi' riga.\nQuannu hai finutu, clicca \"{{int:Watchlistedit-raw-submit}}\".\nPoi puru [[Special:EditWatchlist|canciari a lista dâ pàggina tradizziunali]].",
+       "watchlistedit-raw-explain": "Ccassutta ci sù li tìtuli ntâ tò lista taliata, chi si pò canciari agghiuncennu e livannu tìtuli, unu pi riga.\nQuannu finisci, clicca \"{{int:Watchlistedit-raw-submit}}\".\nPoi puru [[Special:EditWatchlist|canciari la lista dâ pàggina tradizziunali]].",
        "watchlistedit-raw-titles": "Pàggini:",
        "watchlistedit-raw-submit": "Aggiorna la lista taliata",
        "watchlistedit-raw-done": "La tò lista dê pàggini taliati vinni aggiurnata.",
        "watchlistedit-raw-removed": "{{PLURAL:$1|&nbsp;Vinni scancillata na pàggina|Foru scancillati $1 pàggini}}:",
        "watchlistedit-clear-title": "Lista taliata svacantata",
        "watchlistedit-clear-legend": "Svacanta la lista taliata",
-       "watchlistedit-clear-explain": "Tutti li tìtuli sarrannu livati da to lista taliata",
+       "watchlistedit-clear-explain": "Tutti li tìtuli sunnu livati dâ tò lista taliata",
        "watchlistedit-clear-titles": "Tìtuli:",
        "watchlistedit-clear-submit": "Svacanta la lista taliata (Sta cosa è difinitiva!)",
        "watchlistedit-clear-done": "La tò lista taliata fu svacantata.",
-       "watchlistedit-clear-removed": "{{PLURAL:$1|Un tìtulu fu'|$1 tìtuli furu}} livati:",
-       "watchlistedit-too-many": "Cci su' troppu pàggini p'ammustràrili cca.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|Un tìtulu fu|$1 tìtuli foru}} livati:",
+       "watchlistedit-too-many": "Ci sù troppu pàggini p'ammustràrili ccà.",
        "watchlisttools-clear": "Svacanta la lista taliata",
        "watchlisttools-view": "Talìa li canciamenti rilivanti",
        "watchlisttools-edit": "Talìa e cancia la lista taliata",
        "iranian-calendar-m3": "Khordad",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussioni]])",
        "duplicate-defaultsort": "Accura: la chiavi priddifinuta d'urdinamentu \"$2\" si sciarrìa cu chidda d'antura \"$1\".",
-       "duplicate-displaytitle": "<strong>Accura:</strong> U tìtulu a' ammustrari \"$2\" va' e rimpiazza u tìtulu a' ammustrari pricidenti \"$1\".",
-       "invalid-indicator-name": "<strong>Erruri:</strong> L'attribbutu <code>name</code> di l'innicaturi di statu dâ pàggina nun havi a' èssiri vacanti.",
+       "duplicate-displaytitle": "<strong>Accura:</strong> Lu tìtulu a ammustrari \"$2\" va e rimpiazza lu tìtulu a ammustrari pricidenti \"$1\".",
+       "invalid-indicator-name": "<strong>Erruri:</strong> L'attribbutu <code>name</code> dô nnicaturi di statu dâ pàggina nun havi a èssiri vacanti.",
        "version": "Virsioni",
        "version-extensions": "Estenzioni nstallati",
-       "version-skins": "Peddi installati",
+       "version-skins": "Peddi nstallati",
        "version-specialpages": "Pàggini spiciali",
        "version-parserhooks": "Hook dû parser",
        "version-variables": "Variabili",
        "version-no-ext-name": "[nuddu nomu]",
        "version-license": "Licenza di MediaWiki",
        "version-ext-license": "Licenza",
-       "version-ext-colheader-name": "Estinsioni",
+       "version-ext-colheader-name": "Estinzioni",
        "version-skin-colheader-name": "Peddi",
        "version-ext-colheader-version": "Virsioni",
        "version-ext-colheader-license": "Licenza",
        "version-ext-colheader-description": "Discrizzioni",
        "version-ext-colheader-credits": "Auturi",
        "version-license-title": "Licenza di $1",
-       "version-license-not-found": "Pi' st'estinsioni nun fu' truvata nudda nfurmazzioni a' prupòsitu dâ licenza.",
-       "version-credits-title": "Ricanuscimenti pi' $1",
-       "version-credits-not-found": "Pi' st'estinsioni nun fu' truvata nudda nfurmazzioni a' prupòsitu dî ricanuscimenti.",
-       "version-poweredby-credits": "Sta wiki funziona cu' <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copyright © 2001-$1 $2.",
-       "version-poweredby-others": "autri",
-       "version-poweredby-translators": "i tradutturi di translatewiki.net",
-       "version-credits-summary": "Vulemu ricanusciri u cuntribbutu di sti pirsuni a' [[Special:Version|MediaWiki]].",
-       "version-license-info": "MediaWiki è software lìbbiru; si po' ri-distribbuiri e/o mudificari sutta ê tèrmini dâ GNU General Public License comu pubblicata dâ Free Software Foundation; o la virsioni 2 dâ Licenza, o (a' propia scelta) na virsioni succissiva quali è jè.\n\nMediaWiki veni distribuùtu ntâ spiranza chi' sia ùtili, però SENZA NUDDA GARANZÌA; mancu chidda implìcita di NIGUZZIABBILITÀ o di APPLICABBILITÀ PI' NU SCOPU PARTICULARI. Si taliassi la GNU General Public License pi' maggiuri dittagghî.\n\nS'avissi a' avìri ricivutu [{{SERVER}}{{SCRIPTPATH}}/COPYING na copia dâ GNU General Public License] nsèmmula a' stu prugramma; si' no, si po' scrìviri â Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA o [//www.gnu.org/licenses/old-licenses/gpl-2.0.html la si po' lèggiri in linia].",
+       "version-license-not-found": "Pi sta stinzioni nun fu attruvata nudda nfurmazzioni a prupòsitu dâ licenza.",
+       "version-credits-title": "Arricanuscimenti pi $1",
+       "version-credits-not-found": "Pi sta stinzioni nun fu attruvata nudda nfurmazzioni a prupòsitu di l'arricanuscimenti.",
+       "version-poweredby-credits": "Sta wiki funziona cu <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copyright © 2001-$1 $2.",
+       "version-poweredby-others": "àutri",
+       "version-poweredby-translators": "li tradutturi di translatewiki.net",
+       "version-credits-summary": "Vulemu arricanùsciri lu cuntribbutu di sti pirsuni a [[Special:Version|MediaWiki]].",
+       "version-license-info": "MediaWiki è nu software lìbbiru; si pò ridistribbuiri e/o canciari sutta ê tèrmini dâ GNU General Public License comu pubblicata dâ Free Software Foundation; o la virsioni 2 dâ Licenza, o (a scigghiuta propia) na virsioni succissiva qualegghiè.\n\nMediaWiki veni distribuutu ntâ spiranza chi sia ùtili, pirò SENZA NUDDA GARANZÌA; mancu chidda mplìcita di NIGUZZIABBILITÀ o d'APPLICABBILITÀ PI NU SCOPU PARTICULARI. Si taliassi la GNU General Public License pi maiuri dittagghî.\n\nS'avissi a aviri arricivutu [{{SERVER}}{{SCRIPTPATH}}/COPYING na copia dâ GNU General Public License] nzèmmula a stu prugramma; si no, si pò scrìviri â Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA o [//www.gnu.org/licenses/old-licenses/gpl-2.0.html la si pò lèggiri n lìnia].",
        "version-software": "Software nstallatu",
        "version-software-product": "Prodottu",
        "version-software-version": "Virsioni",
        "version-entrypoints": "URL dî punti d'accessu",
        "version-entrypoints-header-entrypoint": "Puntu d'accessu",
        "version-entrypoints-header-url": "URL",
-       "version-libraries": "Libbrarìi installati",
+       "version-libraries": "Libbrarìi nstallati",
        "version-libraries-library": "Libbrarìa",
        "version-libraries-version": "Virsioni",
        "version-libraries-license": "Licenza",
        "version-libraries-description": "Discrizzioni",
        "version-libraries-authors": "Autura",
-       "redirect": "Rimannu pi' nomu di file o còdici di utenti, di pàggina o di virsioni",
-       "redirect-legend": "Rimannari a' nu file o na pàggina",
-       "redirect-summary": "Sta pàggina spiciali rimanna a' nu file (datu u nomu dû file), a' na pàggina (datu n'ID di virsioni o n'ID di pàggina), o puru â pàggina di n'utenti (datu n'ID nummèricu di utenti). Esempî di usu: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], o [[{{#Special:Redirect}}/user/101]].",
-       "redirect-submit": "Vacci",
-       "redirect-lookup": "Cerca pi':",
-       "redirect-value": "Cu' valuri:",
+       "redirect": "Rimannu pi nomu di file o còdici di utenti, di pàggina o di virsioni",
+       "redirect-legend": "Rimannari a nu file o na pàggina",
+       "redirect-summary": "Sta pàggina spiciali rimanna a nu file (datu lu nomu dû file), a na pàggina (datu n'ID di virsioni o n'ID di pàggina), o puru â pàggina di n'utenti (datu n'ID nummèricu d'utenti). Esempî d'usu: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], o [[{{#Special:Redirect}}/user/101]].",
+       "redirect-submit": "Vai",
+       "redirect-lookup": "Arricerca:",
+       "redirect-value": "Cu valuri:",
        "redirect-user": "ID d'utenti",
        "redirect-page": "ID di pàggina",
        "redirect-revision": "ID di virsioni di pàggina",
        "redirect-file": "Nomu di file",
-       "redirect-not-exists": "Valuri nun truvatu",
-       "fileduplicatesearch": "Circata dê file duppiuni",
+       "redirect-not-exists": "Valuri nun attruvatu",
+       "fileduplicatesearch": "Arricerca dê file duppiuni",
        "fileduplicatesearch-summary": "Circata di pussìbbili dupppiuni dû file 'n basi ô valuri di ''hash''.",
        "fileduplicatesearch-legend": "Circata di nu duppiuni",
        "fileduplicatesearch-filename": "Nomu dû file:",
        "fileduplicatesearch-info": "$1 × $2 pixel<br />Diminzioni: $3<br />Tipu MIME: $4",
        "fileduplicatesearch-result-1": "Non ci sunnu duppiuni li stissi dû file \"$1\".",
        "fileduplicatesearch-result-n": "{{PLURAL:$2|C'è ggià nu duppiuni lu stissu|Ci sunnu ggià $2 duppiuni li stissi}} dû file \"$1\".",
-       "fileduplicatesearch-noresults": "Nuddu file chiamatu \"$1\" fu truvatu.",
+       "fileduplicatesearch-noresults": "Nuddu file chiamatu \"$1\" fu attruvatu.",
        "specialpages": "Pàggini spiciali",
-       "specialpages-note-top": "Legenda",
+       "specialpages-note-top": "Liggenna",
        "specialpages-note": "* Pàggini spiciali nurmali.\n* <span class=\"mw-specialpagerestricted\">Pàggini spiciali risirvati.</strong>",
        "specialpages-group-maintenance": "Resocunti di manutinzioni",
-       "specialpages-group-other": "Autri pàggini spiciali",
+       "specialpages-group-other": "Àutri pàggini spiciali",
        "specialpages-group-login": "Trasuta / criazzioni di cunti",
-       "specialpages-group-changes": "Ùrtimi canciamenti e riggistra",
+       "specialpages-group-changes": "Ùrtimi canciamenti e riggistri",
        "specialpages-group-media": "File multimidiali - caricamentu e rennicunti",
        "specialpages-group-users": "Utenti e diritti",
        "specialpages-group-highuse": "Pàggini cchiù usati",
        "specialpages-group-pages": "Listi di pàggini",
        "specialpages-group-pagetools": "Strumenti ùtili pi li pàggini",
-       "specialpages-group-wiki": "Dati e strumenti",
-       "specialpages-group-redirects": "Pàggini spiciali chi' rimànnunu",
+       "specialpages-group-wiki": "Dati e strummenti",
+       "specialpages-group-redirects": "Pàggini spiciali chi rimànnanu",
        "specialpages-group-spam": "Strumenti contr'a lu spam",
        "specialpages-group-developer": "Stigghi dû sviluppaturi",
        "blankpage": "Pàggina vacanti",
        "intentionallyblankpage": "Sta pàggina è lassata vacanti apposta e è usata pi benchmark, ecc.",
        "external_image_whitelist": " #Lassari sta riga pi com'è ora, senza tuccàrila<pre>\n#Mèttiri li frammenti dî sprissioni rigulari (sulu la parti ca va ammenzu ê //) ccassutta\n#Sunnu cunfruntati cu l'URL dî mmàggini esterni (hotlinked)\n#Chiddi ca currispùnninu sunnu ammustrati comu mmàggini, pi l'àutri veni ammustrata sulu na lijami â mmàggini\n#Li righi ca accumènzanu cu # sunnu trattati comu cummenti\n#Nun c'è diffirenza tra maiùsculi e minùsculi\n\n#Mèttiri tutti li frammenti di sprissioni rigulari supra a sta riga. Lassari sta riga pi com'è ora, senza tuccàrila</pre>",
-       "tags": "Etichetti dî canciamenti validi",
-       "tag-filter": "Filtra pi' [[Special:Tags|etichetta]]",
+       "tags": "Etichetti dî canciamenti vàlidi",
+       "tag-filter": "Filtra pi [[Special:Tags|etichetta]]",
        "tag-filter-submit": "Filtra",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Etichetta|Etichetti}}]]: $2)",
        "tags-title": "Etichetti",
-       "tags-intro": "Sta pàggina elenca l'etichetti cu li quali lu software po' marcari nu canciamentu, e lu significatu ca hannu.",
+       "tags-intro": "Sta pàggina elenca l'etichetti cu li quali lu software pò marcari nu canciamentu, e lu significatu ca hannu.",
        "tags-tag": "Nomu di l'etichetta",
        "tags-display-header": "Aspettu nâ lista di canciamenti",
        "tags-description-header": "Discrizzioni cumpleta dô significatu",
        "tags-source-header": "Pruvinenza",
        "tags-active-header": "Attivu?",
-       "tags-hitcount-header": "Canciamenti cu' etichetti",
+       "tags-hitcount-header": "Canciamenti cu etichetti",
        "tags-actions-header": "Azzioni",
        "tags-active-yes": "Sì",
        "tags-active-no": "No",
-       "tags-source-extension": "Difinuta di n'estinsioni",
-       "tags-source-manual": "Appizzata a' manu di utenti e bot",
-       "tags-source-none": "Nun è cchiu' usata",
+       "tags-source-extension": "Difinuta di na stinzioni",
+       "tags-source-manual": "Appizzata a manu di utenti e bot",
+       "tags-source-none": "Nun è cchiù usata",
        "tags-edit": "cancia",
        "tags-delete": "cancella",
        "tags-activate": "attiva",
        "tags-deactivate": "disattiva",
        "tags-hitcount": "$1 {{PLURAL:$1|canciamentu|canciamenti}}",
        "tags-manage-no-permission": "Nun hai lu pirmissu di gistiri l'etichetti dî canciamenti.",
-       "tags-create-heading": "Crìa n'etichetta nova",
-       "tags-create-explanation": "Comu mpustazzioni pridifinuta, l'etichetti novi sunnu dispunìbbili a' èssiri adupirati di l'utenti e dî bot.",
+       "tags-create-heading": "Crea n'etichetta nova",
+       "tags-create-explanation": "Comu mpustazzioni pridifinuta, l'etichetti novi sunnu dispunìbbili a èssiri adupirati di l'utenti e dî bot.",
        "tags-create-tag-name": "Nomu di l'etichetta:",
        "tags-create-reason": "Mutivu:",
-       "tags-create-submit": "Crìa",
-       "tags-create-no-name": "Hai a' spicificari lu nomu di l'etichetta.",
-       "tags-create-invalid-chars": "Li nomi di l'etichetti nun pònnu cuntèniri vìrguli (<code>,</code>) o sbarri p'avanti (<code>/</code>).",
-       "tags-create-invalid-title-chars": "Li nomi di l'etichetti nun pònnu cuntèniri li caràttiri chi' nun si ponnu adupirari ntê tìtuli dî pàggini.",
+       "tags-create-submit": "Crea",
+       "tags-create-no-name": "Hai a spicificari lu nomu di l'etichetta.",
+       "tags-create-invalid-chars": "Li nomi di l'etichetti nun ponnu cuntèniri vìrguli (<code>,</code>) o sbarri p'avanti (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Li nomi di l'etichetti nun ponnu cuntèniri li caràttiri chi nun si ponnu adupirari ntê tìtuli dî pàggini.",
        "tags-create-already-exists": "L'etichetta \"$1\" già esisti.",
-       "tags-create-warnings-above": "{{PLURAL:$2|Mmattìu st'avvertimentu|Mmatteru st'avvertimenti}} ntô criari l'etichetta \"$1\":",
+       "tags-create-warnings-above": "{{PLURAL:$2|Ammattìu st'avvisu|Ammatteru st'avvisi}} ntô criari l'etichetta \"$1\":",
        "tags-create-warnings-below": "Voi cuntinuari e criari l'etichetta?",
        "tags-delete-title": "Cancillazzioni di n'etichetta",
        "tags-delete-explanation-initial": "Stai cancillannu l'etichetta \"$1\" dâ basi di dati.",
-       "tags-delete-explanation-in-use": "Sarravi livata di {{PLURAL:$2|$2 virsioni o vuci di riggistru|tutti li $2 virsioni o vuci di riggistru}} unni è appizzata com'ad ora.",
-       "tags-delete-explanation-warning": "St'opirazzioni è <strong>irrivirsìbbili</strong> e <strong>nuddu la po' annullari</strong>, mancu l'amministratura dâ basi di dati. Hai a' èssiri sicuru chi' è chista l'etichetta chi' voi cancillari.",
-       "tags-delete-explanation-active": "<strong>L'etichetta \"$1\" ancora è attiva, e cuntinuiravi a' èssiri appizzata.</strong> Pi' fari finiri stu fattu, vai ntê banni unni st'etichetta è mpustata pi' èssiri appizzata, e disattìvila di ddani.",
+       "tags-delete-explanation-in-use": "Veni livata di {{PLURAL:$2|$2 virsioni o vuci di riggistru|tutti li $2 virsioni o vuci di riggistru}} unni è appizzata com'a ora.",
+       "tags-delete-explanation-warning": "St'opirazzioni nun è <strong>rivirsìbbili</strong> e <strong>nuddu la pò annullari</strong>, mancu l'amministratura dâ basi di dati. Hai a èssiri sicuru chi è chista l'etichetta chi voi cancillari.",
+       "tags-delete-explanation-active": "<strong>L'etichetta \"$1\" è ancora attiva, e cuntìnua a èssiri appizzata.</strong> Pi fari finiri stu fattu, vai ntê banni unni st'etichetta è mpustata p'èssiri appizzata, e disattìvala di ddà.",
        "tags-delete-reason": "Mutivu:",
        "tags-delete-submit": "Cancella difinitivamenti st'etichetta",
-       "tags-delete-not-allowed": "L'etichetti difinuti di n'estinsioni nun si ponnu cancillari, eccettu quannu l'estinsioni lu cunsenti esprissamenti.",
+       "tags-delete-not-allowed": "L'etichetti difinuti di na stinzioni nun si ponnu cancillari, eccettu quannu li stinzioni lu cunzenti espressamenti.",
        "tags-delete-not-found": "L'etichetta \"$1\" nun esisti.",
-       "tags-delete-too-many-uses": "L'etichetta \"$1\" havi statu appizzata nta cchiu' ssai di $2 {{PLURAL:$2|virsioni}}, e pi' chistu mutivu nun si po' cancillari.",
-       "tags-delete-warnings-after-delete": "L'etichetta \"$1\" fu' cancillata bona, però {{PLURAL:$2|mmattìu st'avvirtimentu|mmatteru st'avvirtimenti}}:",
+       "tags-delete-too-many-uses": "L'etichetta \"$1\" fu appizzata nta cchiossai di $2 {{PLURAL:$2|virsioni}}, e pi stu mutivu nun si pò cancillari.",
+       "tags-delete-warnings-after-delete": "L'etichetta \"$1\" fu' cancillata bona, pirò {{PLURAL:$2|ammattìu st'avvisu|ammatteru st'avvisi}}:",
        "tags-activate-title": "Attivazzioni di n'etichetta",
        "tags-activate-question": "Stai attivannu l'etichetta \"$1\".",
        "tags-activate-reason": "Mutivu:",
-       "tags-activate-not-allowed": "Nun si po' attivari l'etichetta \"$1\".",
+       "tags-activate-not-allowed": "Nun si pò attivari l'etichetta \"$1\".",
        "tags-activate-not-found": "L'etichetta \"$1\" nun esisti.",
        "tags-activate-submit": "Attiva",
        "tags-deactivate-title": "Disattivazzioni di n'etichetta",
        "tags-deactivate-question": "Stai disattivannu l'etichetta \"$1\".",
        "tags-deactivate-reason": "Mutivu:",
-       "tags-deactivate-not-allowed": "Nun si po' disattivari l'etichetta \"$1\".",
+       "tags-deactivate-not-allowed": "Nun si pò disattivari l'etichetta \"$1\".",
        "tags-deactivate-submit": "Disattiva",
-       "tags-apply-no-permission": "Nun hai lu pirmissu di appizzari etichetti ntê to canciamenti.",
-       "tags-apply-not-allowed-one": "Nun è cunsintutu di appizzari l'etichetta \"$1\" a' manu.",
-       "tags-apply-not-allowed-multi": "Nun è cunsintutu di appizzari {{PLURAL:$2|st'etichetta|st'etichetti}} a' manu: $1",
+       "tags-apply-no-permission": "Nun hai lu pirmissu d'appizzari etichetti ntê tò canciamenti.",
+       "tags-apply-not-allowed-one": "Nun è cunzintutu di appizzari l'etichetta \"$1\" a manu.",
+       "tags-apply-not-allowed-multi": "Nun è cunzintutu d'appizzari {{PLURAL:$2|st'etichetta|st'etichetti}} a manu: $1",
        "tags-update-no-permission": "Nun hai lu pirmissu di agghiùnciri o livari l'etichetti di canciamentu dî sìnguli virsioni o vuci di riggistru.",
-       "tags-update-add-not-allowed-one": "Nun è cunsintutu di agghiùnciri l'etichetta \"$1\" a' manu.",
-       "tags-update-add-not-allowed-multi": "Nun è cunsintutu di agghiùnciri {{PLURAL:$2|st'etichetta|st'etichetti}} a' manu: $1",
-       "tags-update-remove-not-allowed-one": "Nun è cunsintutu di livari l'etichetta \"$1\".",
-       "tags-update-remove-not-allowed-multi": "Nun è cunsintutu di livari {{PLURAL:$2|st'etichetta|st'etichetti}} a' manu: $1",
+       "tags-update-add-not-allowed-one": "Nun è cunzintutu d'agghiùnciri l'etichetta \"$1\" a manu.",
+       "tags-update-add-not-allowed-multi": "Nun è cunzintutu d'agghiùnciri {{PLURAL:$2|st'etichetta|st'etichetti}} a manu: $1",
+       "tags-update-remove-not-allowed-one": "Nun è cunzintutu di livari l'etichetta \"$1\".",
+       "tags-update-remove-not-allowed-multi": "Nun è cunzintutu di livari {{PLURAL:$2|st'etichetta|st'etichetti}} a manu: $1",
        "tags-edit-title": "Canciamentu di l'etichetti",
        "tags-edit-manage-link": "Gistisci l'etichetti",
        "tags-edit-revision-selected": "{{PLURAL:$1|Virsioni scigghiuta|Virsioni scigghiuti}} di [[:$2]]:",
        "tags-edit-remove": "Leva st'etichetti:",
        "tags-edit-remove-all-tags": "(leva tutti l'etichetti)",
        "tags-edit-chosen-placeholder": "Scegghî quarchi etichetta",
-       "tags-edit-chosen-no-results": "Nun si truvàu nudda etichetta ca currispunni",
+       "tags-edit-chosen-no-results": "Nun si truvau nudda etichetta ca currispunni",
        "tags-edit-reason": "Mutivu:",
-       "tags-edit-revision-submit": "Àpplica li canciamenti a' {{PLURAL:$1|sta virsioni|$1 virsioni}}",
-       "tags-edit-logentry-submit": "Àpplica li canciamenti a' {{PLURAL:$1|sta vuci di riggistru|$1 vuci di riggistru}}",
-       "tags-edit-success": "Li canciamenti furu applicati boni.",
+       "tags-edit-revision-submit": "Àpplica li canciamenti a {{PLURAL:$1|sta virsioni|$1 virsioni}}",
+       "tags-edit-logentry-submit": "Àpplica li canciamenti a {{PLURAL:$1|sta vuci di riggistru|$1 vuci di riggistru}}",
+       "tags-edit-success": "Li canciamenti foru applicati boni.",
        "tags-edit-failure": "Nun si pòttiru applicari li canciamenti:\n$1",
        "tags-edit-nooldid-title": "Virsioni oggettu nun vàlida",
        "tags-edit-nooldid-text": "O nun spicificasti nudda virsioni comu oggettu di sta funzioni, o puru la virsioni spicificata nun esisti.",
-       "tags-edit-none-selected": "Pi' favuri scegghi ammenu una etichetta, di agghiùnciri o livari.",
+       "tags-edit-none-selected": "Pi favuri scegghi armenu n'etichetta, di agghiùnciri o livari.",
        "comparepages": "Cunfrunta pàggini",
        "compare-page1": "Pàggina 1",
        "compare-page2": "Pàggina 2",
        "compare-rev1": "Virsioni 1",
        "compare-rev2": "Virsioni 2",
        "compare-submit": "Cunfrunta",
-       "compare-invalid-title": "U tìtulu ca spicificasti nun è vàlidu.",
-       "compare-title-not-exists": "U tìtulu ca spicificasti nun esisti.",
-       "compare-revision-not-exists": "A virsioni ca spicificasti nun esisti.",
+       "compare-invalid-title": "Lu tìtulu ca spicificasti nun è vàlidu.",
+       "compare-title-not-exists": "Lu tìtulu ca spicificasti nun esisti.",
+       "compare-revision-not-exists": "La virsioni ca spicificasti nun esisti.",
        "dberr-problems": "Spiacenti! Stu situ sta havennu prublema tecnici.",
        "dberr-again": "Prova a aspittari na para di minuti e ricaricari.",
-       "dberr-info": "(Impussìbbili accèdiri â basi di dati: $1)",
-       "dberr-info-hidden": "(Impussìbbili accèdiri â basi di dati)",
+       "dberr-info": "(Mpussìbbili accèdiri â basi di dati: $1)",
+       "dberr-info-hidden": "(Mpussìbbili accèdiri â basi di dati)",
        "dberr-usegoogle": "Poi pruvari a circari supra Google ammentri.",
-       "dberr-outofdate": "Nota ca la so innicizzazioni dû nostru cuntinutu po' nun èssiri aggiurnata.",
+       "dberr-outofdate": "Nota ca la sò nnicizzazioni dû nostru cuntinutu pò nun èssiri aggiurnata.",
        "dberr-cachederror": "Chista ca segui è na copia cache da pàggina richiesta, e putissi essiri nun aggiurnata.",
        "htmlform-invalid-input": "Ci su prublema cu l'input nseritu",
        "htmlform-select-badoption": "Lu valori spicificatu nun è n'opzioni valida.",
        "htmlform-no": "No",
        "htmlform-yes": "Sì",
        "htmlform-chosen-placeholder": "Silizziona na opzioni",
-       "htmlform-cloner-create": "Agghiunci autru",
+       "htmlform-cloner-create": "Agghiunci àutru",
        "htmlform-cloner-delete": "Leva",
-       "htmlform-cloner-required": "Cci voli almenu nu valuri.",
+       "htmlform-cloner-required": "Ci voli armenu nu valuri.",
        "htmlform-title-badnamespace": "[[:$1]] nun sta ntô namespace «{{ns:$2}}».",
        "htmlform-title-not-creatable": "«$1» nun è lu tìtulu di na pàggina ca si pò criari",
        "htmlform-title-not-exists": "[[:$1]] nun esisti.",
        "htmlform-user-not-exists": "<strong>$1</strong> nun esisti.",
        "htmlform-user-not-valid": "<strong>$1</strong> nun è vàlidu comu nomu utenti.",
-       "sqlite-has-fts": "$1 cu' capacità di risciduta a' tuttu testu",
-       "sqlite-no-fts": "$1 senza capacità di risciduta a' tuttu testu",
+       "sqlite-has-fts": "$1 cu capacità d'arricerca a tuttu testu",
+       "sqlite-no-fts": "$1 senza capacità d'arricerca a tuttu testu",
        "logentry-delete-delete": "$1 {{GENDER:$2|cancillau}} la pàggina $3",
        "logentry-delete-restore": "$1 {{GENDER:$2|ripristinau}} la pàggina $3",
-       "logentry-delete-event": "$1 {{GENDER:$2|canciau}} a visibbilità di {{PLURAL:$5|n'eventu dû riggistru|$5 eventi dû riggistru}} di $3: $4",
-       "logentry-delete-revision": "$1 {{GENDER:$2|canciau}} a visibbilità di {{PLURAL:$5|na virsioni|$5 virsioni}} dâ pàggina $3: $4",
-       "logentry-delete-event-legacy": "$1 {{GENDER:$2|canciau}} a visibbilità di eventi dû riggistru di $3",
-       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|canciau}} a visibbilità di virsioni dâ pàggina $3",
-       "logentry-suppress-delete": "$1 {{GENDER:$2|supprimìu}} a pàggina $3",
-       "logentry-suppress-event": "$1 {{GENDER:$2|canciau}} a' mmucciuni a' visibbilità di {{PLURAL:$5|n'eventu dû riggistru|$5 eventi dû riggistru}} di $3: $4",
-       "logentry-suppress-revision": "$1 {{GENDER:$2|canciau}} a' mmucciuni a visibbilità di {{PLURAL:$5|na virsioni|$5 virsioni}} dâ pàggina $3: $4",
-       "logentry-suppress-event-legacy": "$1 {{GENDER:$2|canciau}} a' mmucciuni a visibbilità di eventi dû riggistru di $3",
-       "logentry-suppress-revision-legacy": "$1 {{GENDER:$2|canciau}} a' mmucciuni a visibbilità di virsioni dâ pàggina $3",
+       "logentry-delete-event": "$1 {{GENDER:$2|canciau}} la visibbilità di {{PLURAL:$5|n'eventu dû riggistru|$5 eventi dû riggistru}} di $3: $4",
+       "logentry-delete-revision": "$1 {{GENDER:$2|canciau}} la visibbilità di {{PLURAL:$5|na virsioni|$5 virsioni}} dâ pàggina $3: $4",
+       "logentry-delete-event-legacy": "$1 {{GENDER:$2|canciau}} la visibbilità d'eventi dû riggistru di $3",
+       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|canciau}} la visibbilità di virsioni dâ pàggina $3",
+       "logentry-suppress-delete": "$1 {{GENDER:$2|supprimìu}} la pàggina $3",
+       "logentry-suppress-event": "$1 {{GENDER:$2|canciau}} ammucciuni la visibbilità di {{PLURAL:$5|n'eventu dû riggistru|$5 eventi dû riggistru}} di $3: $4",
+       "logentry-suppress-revision": "$1 {{GENDER:$2|canciau}} ammucciuni la visibbilità di {{PLURAL:$5|na virsioni|$5 virsioni}} dâ pàggina $3: $4",
+       "logentry-suppress-event-legacy": "$1 {{GENDER:$2|canciau}} ammucciuni la visibbilità d'eventi dû riggistru di $3",
+       "logentry-suppress-revision-legacy": "$1 {{GENDER:$2|canciau}} ammucciuni la visibbilità di virsioni dâ pàggina $3",
        "revdelete-content-hid": "cuntinutu ammucciatu",
        "revdelete-summary-hid": "riassuntu dû canciamentu ammucciatu",
        "revdelete-uname-hid": "nomu utenti ammucciatu",
        "revdelete-content-unhid": "cuntinutu ammustratu",
        "revdelete-summary-unhid": "riassuntu dû canciamentu ammustratu",
        "revdelete-uname-unhid": "nomu utenti ammustratu",
-       "revdelete-restricted": "misi ristrizzioni pi' l'amministratura",
-       "revdelete-unrestricted": "livati ristrizzioni pi' l'amministratura",
-       "logentry-block-block": "$1 {{GENDER:$2|bluccàu}} a' {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
-       "logentry-block-unblock": "$1 {{GENDER:$2|sbluccàu}} a' {{GENDER:$4|$3}}",
-       "logentry-block-reblock": "$1 {{GENDER:$2|canciàu}} li mpustazzioni dû bloccu di {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
-       "logentry-suppress-block": "$1 {{GENDER:$2|bluccàu}} a' {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
-       "logentry-suppress-reblock": "$1 {{GENDER:$2|canciàu}} li mpustazzioni dû bloccu di {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
-       "logentry-import-upload": "$1 {{GENDER:$2|impurtàu}} $3 pi' menzu dûn carricamentu di file",
-       "logentry-import-interwiki": "$1 {{GENDER:$2|impurtàu}} $3 di n'autra wiki",
+       "revdelete-restricted": "misi ristrizzioni pi l'amministratura",
+       "revdelete-unrestricted": "livati ristrizzioni pi l'amministratura",
+       "logentry-block-block": "$1 {{GENDER:$2|bluccau}} a {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|sbluccau}} a {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|canciau}} li mpustazzioni dû bloccu di {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|bluccau}} a {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|canciau}} li mpustazzioni dû bloccu di {{GENDER:$4|$3}} cûn tempu di scadenza di $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|mpurtau}} $3 pi menzu dûn carricamentu di file",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|mpurtau}} $3 di n'àutra wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|juncìu}} $3 nta $4 (virsioni nfina ô $5)",
        "logentry-move-move": "$1 {{GENDER:$2|spustau}} la pàggina $3 nti $4",
-       "logentry-move-move-noredirect": "$1 {{GENDER:$2|spustau}} a pàggina $3 nta $4 senza lassari nu rimannu",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|spustau}} la pàggina $3 nta $4 senza lassari nu rimannu",
        "logentry-move-move_redir": "$1 {{GENDER:$2|spustau}} la pàggina $3 nti $4 cu nu rinnirizzamentu",
-       "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|spustau}} a pàggina $3 nta $4 ô postu dûn rimannu senza lassari nu rimannu",
-       "logentry-patrol-patrol": "$1 {{GENDER:$2|marcau}} a virsioni $4 dâ pàggina $3 comu battugghiata",
-       "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|marcau}} di manera autumàtica a virsioni $4 dâ pàggina $3 comu battugghiata",
-       "logentry-newusers-newusers": "U cuntu di l'utenti $1 fu {{GENDER:$2|criatu}}",
-       "logentry-newusers-create": "U cuntu di l'utenti $1 fu' {{GENDER:$2|criatu}}",
-       "logentry-newusers-create2": "U cuntu di l'utenti $3 fu' {{GENDER:$2|criatu}} di $1",
-       "logentry-newusers-byemail": "U cuntu di l'utenti $3 fu' {{GENDER:$2|criatu}} di $1 e a password fu' mannata via posta elittrònica",
-       "logentry-newusers-autocreate": "U cuntu di l'utenti $1 fu' {{GENDER:$2|criatu}} di manera autumàtica",
+       "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|spustau}} la pàggina $3 nta $4 ô postu dûn rimannu senza lassari nu rimannu",
+       "logentry-patrol-patrol": "$1 {{GENDER:$2|marcau}} la virsioni $4 dâ pàggina $3 comu virificata",
+       "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|marcau}} di manera autumàtica la virsioni $4 dâ pàggina $3 comu virificata",
+       "logentry-newusers-newusers": "Lu cuntu di l'utenti $1 fu {{GENDER:$2|criatu}}",
+       "logentry-newusers-create": "Lu cuntu di l'utenti $1 fu {{GENDER:$2|criatu}}",
+       "logentry-newusers-create2": "Lu cuntu di l'utenti $3 fu {{GENDER:$2|criatu}} di $1",
+       "logentry-newusers-byemail": "Lu cuntu di l'utenti $3 fu {{GENDER:$2|criatu}} di $1 e la password fu mannata via posta elittrònica",
+       "logentry-newusers-autocreate": "Lu cuntu di l'utenti $1 fu {{GENDER:$2|criatu}} di manera autumàtica",
        "logentry-protect-move_prot": "$1 {{GENDER:$2|spustau}} li mpustazzioni di prutizzioni di $4 a’ $3",
        "logentry-rights-rights": "$1 {{GENDER:$2|canciau}} l'appartinenza di $3 dû gruppu $4 ô gruppu $5",
-       "logentry-rights-rights-legacy": "$1 {{GENDER:$2|canciau}} l'appartinenza a' gruppi di $3",
-       "logentry-rights-autopromote": "$1 fu' {{GENDER:$2|prumuvutu|prumuvuta}} di manera autumatica di $4 a' $5",
+       "logentry-rights-rights-legacy": "$1 {{GENDER:$2|canciau}} l'appartinenza a gruppi di $3",
+       "logentry-rights-autopromote": "$1 fu {{GENDER:$2|prumuvutu|prumuvuta}} di manera autumàtica di $4 a $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|carricau}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|carricau}} na virsioni nova di $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|carricau}} $3",
        "log-name-managetags": "Riggistru dâ gistioni di l'etichetti",
-       "log-description-managetags": "Sta pàggina elenca l'opirazzioni amministrativi chi' riguàrdunu l'[[Special:Tags|etichetti]]. Lu riggìstru cunteni sulu l'azzioni chi' furu fatti a' manu di n'amministraturi; l'etichetti ponnu puru èssiri criati e cancillati dû software dâ wiki senza lassari vuci nta stu riggistru.",
-       "logentry-managetags-create": "$1 {{GENDER:$2|criàu}} l'etichetta «$4»",
-       "logentry-managetags-delete": "$1 {{GENDER:$2|cancillàu}} l'etichetta \"$4\" (livata di $5 {{PLURAL:$5|virsioni o vuci di riggistru}})",
-       "logentry-managetags-activate": "$1 {{GENDER:$2|attivàu}} l'etichetta «$4» pi' l'usu di utenti e bot",
-       "logentry-managetags-deactivate": "$1 {{GENDER:$2|disattivàu}} l'etichetta \"$4\" pi' l'usu di l'utenti e dî bot",
+       "log-description-managetags": "Sta pàggina elenca l'opirazzioni amministrativi c'arriguàrdanu l'[[Special:Tags|etichetti]]. Lu riggistru cunteni sulu l'azzioni chi foru fatti a manu di n'amministraturi; l'etichetti ponnu puru èssiri criati e cancillati dû software dâ wiki senza lassari vuci nta stu riggistru.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|criau}} l'etichetta «$4»",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|cancillau}} l'etichetta \"$4\" (livata di $5 {{PLURAL:$5|virsioni o vuci di riggistru}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|attivau}} l'etichetta «$4» pi l'usu di utenti e bot",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|disattivau}} l'etichetta \"$4\" pi l'usu di l'utenti e dî bot",
        "log-name-tag": "Riggistru di l'etichetti",
-       "log-description-tag": "Sta pàggina ammustra quannu l'utenti agghiunciunu o lèvunu [[Special:Tags|etichetti]] di sìnguli virsioni o vuci di riggistru. Stu riggistru nun rifirisci li variazzioni di l'etichetti chi' succèdunu ntô cuntestu di nu canciamentu, na cancillazzioni, o n'autra opirazzioni comu a' chisti.",
+       "log-description-tag": "Sta pàggina ammustra quannu l'utenti agghiùncinu o lèvanu [[Special:Tags|etichetti]] di sìnguli virsioni o vuci di riggistru. Stu riggistru nun arrifirisci li variazzioni di l'etichetti chi succèdinu ntô cuntestu di nu canciamentu, na cancillazzioni, o n'àutra opirazzioni comu a chisti.",
        "logentry-tag-update-add-revision": "$1 {{GENDER:$2|agghiuncìu}} l'{{PLURAL:$7|etichetta|etichetti}} $6 â virsioni $4 dâ pàggina $3",
        "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|agghiuncìu}} {{PLURAL:$7|l'etichetta|l'etichetti}} $6 â vuci di riggistru $5 dâ pàggina $3",
-       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|livàu}} {{PLURAL:$9|l'etichetta|l'etichetti}} $8 dâ virsioni $4 dâ pàggina $3",
-       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|livàu}} l'{{PLURAL:$9|etichetta|etichetti}} $8 dâ vuci di riggistru $5 dâ pàggina $3",
-       "logentry-tag-update-revision": "$1 {{GENDER:$2|canciàu}} l'etichetti dâ virsioni $4 dâ pàggina $3 ({{PLURAL:$7|nn'agghiuncìu}} $6; {{PLURAL:$9|nni livàu}} $8)",
-       "logentry-tag-update-logentry": "$1 {{GENDER:$2|aggiurnàu}} l'etichetti ntâ vuci di riggistru $5 dâ pàggina $3 ({{PLURAL:$7|nn'agghiuncìu}} $6; {{PLURAL:$9|nni livàu}} $8)",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|livau}} {{PLURAL:$9|l'etichetta|l'etichetti}} $8 dâ virsioni $4 dâ pàggina $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|livau}} l'{{PLURAL:$9|etichetta|etichetti}} $8 dâ vuci di riggistru $5 dâ pàggina $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|canciau}} l'etichetti dâ virsioni $4 dâ pàggina $3 ({{PLURAL:$7|nn'agghiuncìu}} $6; {{PLURAL:$9|nni livau}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|aggiurnau}} l'etichetti ntâ vuci di riggistru $5 dâ pàggina $3 ({{PLURAL:$7|nn'agghiuncìu}} $6; {{PLURAL:$9|nni livau}} $8)",
        "rightsnone": "(nuddu)",
        "revdelete-summary": "riassuntu dô canciamentu",
        "feedback-adding": "Agghiuncimentu dû cummentu â pàggina...",
-       "feedback-back": "Arreti",
-       "feedback-bugcheck": "Bonu! Sulu cuntrolla chi' nun è unu dî [$1 bug già canusciuti].",
-       "feedback-bugnew": "Cuntrullai. Signala nu bug novu",
-       "feedback-bugornote": "Si' si' bonu a' discrìviri un prubblema tècnicu di manera dittagghiata, pi' favuri [$1 signala nu bug].\nSi' no, poi adupirari u mòdulu facilitatu ccassutta. U to cummentu sarravi agghiunciutu â pàggina \"[$3 $2]\", nsemmula ô to nomu utenti.",
+       "feedback-back": "N'arreri",
+       "feedback-bugcheck": "Bonu! Sulu cuntrolla chi nun è unu dî [$1 bug già canusciuti].",
+       "feedback-bugnew": "Cuntrullai. Assignala nu bug novu",
+       "feedback-bugornote": "Si sî bonu a discrìviri un prubblema tècnicu di manera dittagghiata, pi favuri [$1 signala nu bug].\nSi no, poi adupirari lu mòdulu facilitatu ccassutta. Lu tò cummentu è agghiunciutu â pàggina \"[$3 $2]\", nzèmmula ô tò nomu utenti.",
        "feedback-cancel": "Annulla",
        "feedback-close": "Finutu",
        "feedback-external-bug-report-button": "Signala nu prubblema tècnicu",
        "feedback-dialog-title": "Lassa nu cummentu",
-       "feedback-dialog-intro": "Poi adupirari stu mòdulu facili ccassutta pi' lassari lu to cummentu. Stu cummentu sarravi agghiunciutu â pàggina «$1», nsemmula ô to nomu utenti.",
+       "feedback-dialog-intro": "Poi adupirari stu mòdulu facili ccassutta pi lassari lu tò cummentu. Stu cummentu è agghiunciutu â pàggina «$1», nzèmmula ô tò nomu utenti.",
        "feedback-error-title": "Erruri",
-       "feedback-error1": "Erruri: Risultatu di l'API nun ricanusciutu",
-       "feedback-error2": "Erruri: A mudìfica nun riniscìu",
-       "feedback-error3": "Erruri: Nudda risposta di l'API",
-       "feedback-error4": "Erruri: Nun fu' pussìbbili pubblicari ntô tìtulu dû cummentu spicificatu",
+       "feedback-error1": "Erruri: Risurtatu di l'API nun arricanusciutu",
+       "feedback-error2": "Erruri: Lu canciamentu nun arriniscìu",
+       "feedback-error3": "Erruri: Nudda arrispunnuta di l'API",
+       "feedback-error4": "Erruri: Nun fu pussìbbili pubblicari ntô tìtulu dû cummentu spicificatu",
        "feedback-message": "Missaggiu:",
        "feedback-subject": "Oggettu:",
        "feedback-submit": "Manna",
-       "feedback-terms": "Capisciu ca li nfurmazzioni dû me aggenti di l'utenti cuntènunu li virsioni pricisi dû me browser e dû me sistema opirativu, e ca sti nfurmazzioni sarrannu cunnivisi pubblicamenti a' latu dû me cummentu.",
-       "feedback-termsofuse": "Accunsentu a' lassari lu me cummentu in cuncurdanza cu' li Cunnizzioni d'Usu.",
-       "feedback-thanks": "Grazzî! U to cummentu fu' affissu ntâ pàggina \"[$2 $1]\".",
+       "feedback-terms": "Capisciu ca li nfurmazzioni dû mè aggenti di l'utenti cuntèninu li virsioni pricisi dû mè browser e dû mè sistema opirativu, e ca sti nfurmazzioni sunnu cunnivisi pubblicamenti a latu dû mè cummentu.",
+       "feedback-termsofuse": "Accunzentu a lassari lu mè cummentu n cuncurdanza cu li Cunnizzioni d'Usu.",
+       "feedback-thanks": "Grazzî! Lu tò cummentu fu affissu ntâ pàggina \"[$2 $1]\".",
        "feedback-thanks-title": "Ti ringrazziamu!",
        "feedback-useragent": "Aggenti di l'utenti:",
        "searchsuggest-search": "Arricerca",
-       "searchsuggest-containing": "chi' cunteni...",
-       "api-error-badaccess-groups": "Nun hai u pirmissu di carricari file nta sta wiki.",
+       "searchsuggest-containing": "chi cunteni...",
+       "api-error-badaccess-groups": "Nun hai lu pirmissu di carricari file nta sta wiki.",
        "api-error-badtoken": "Erruri nternu: Token sbagghiatu",
-       "api-error-copyuploaddisabled": "U carricamentu a' partiri di URL è disattivatu nta stu server.",
-       "api-error-duplicate": "Già {{PLURAL:$1|cc'è [$2 n'autru file]|cci sunnu [$2 autri file]}} supra ô situ chi' {{PLURAL:$1|havi|hannu}} u stissu cuntinutu.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Cc'era [$2 n'autru file]|Cc' èrunu [$2 autri file]}} supra ô situ ch'{{PLURAL:$1|avìa|avìunu}} u stissu cuntinutu, ma {{PLURAL:$1|fu' cancillatu|furu cancillati}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|File duppiuni|File duppiuni}} chi' già {{PLURAL:$1|havi statu cancillatu|hannu statu cancillati}}.",
-       "api-error-duplicate-popup-title": "File {{PLURAL:$1|duppiuni}}.",
-       "api-error-empty-file": "U file chi' mannasti era vacanti.",
-       "api-error-emptypage": "Criari pàggini novi e vacanti nun è cunsintutu.",
-       "api-error-fetchfileerror": "Erruri nternu: Quarchi' cosa nun funziunau mentri chi' si carricava u file.",
-       "api-error-fileexists-forbidden": "Nu file chi' si chiama \"$1\" già esisti, e nun si po' suprascrìviri.",
-       "api-error-fileexists-shared-forbidden": "Nu file chi' si chiama \"$1\" già esisti ntô dipòsitu cunnivisu, e nun si po' suprascrìviri.",
-       "api-error-file-too-large": "U file chi' mannasti era troppu rossu.",
-       "api-error-filename-tooshort": "U nomu dû file è troppu curtu.",
+       "api-error-copyuploaddisabled": "Lu carricamentu a pàrtiri d'URL è disattivatu nta stu server.",
+       "api-error-duplicate": "Già {{PLURAL:$1|c'è [$2 n'àutru file]|ci sunnu [$2 àutri file]}} supra ô situ chi {{PLURAL:$1|havi|hannu}} lu stissu cuntinutu.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|C'era n'àutru file|C'èranu àutri file}} supra ô situ c'{{PLURAL:$1|avìa|avìanu}} lu stissu cuntinutu, ma {{PLURAL:$1|fu cancillatu|foru cancillati}}.",
+       "api-error-empty-file": "Lu file chi mannasti era vacanti.",
+       "api-error-emptypage": "Criari pàggini novi e vacanti nun è cunzintutu.",
+       "api-error-fetchfileerror": "Erruri nternu: Quarchi cosa nun funziunau mentri chi si carricava lu file.",
+       "api-error-fileexists-forbidden": "Nu file chi si chiama \"$1\" già esisti, e nun si pò suprascrìviri.",
+       "api-error-fileexists-shared-forbidden": "Nu file chi si chiama \"$1\" già esisti ntô dipòsitu cunnivisu, e nun si pò suprascrìviri.",
+       "api-error-file-too-large": "Lu file chi mannasti era troppu grossu.",
+       "api-error-filename-tooshort": "Lu nomu dû file è troppu curtu.",
        "api-error-filetype-banned": "Stu tipu di file è sbannutu.",
-       "api-error-filetype-banned-type": "$1 {{PLURAL:$4|nun è un tipu di file cunsintutu|nun su' tipi di file cunsintuti}}. {{PLURAL:$3|U tipu di file cunsintutu è|I tipi di file cunsintuti sunnu}} $2.",
-       "api-error-filetype-missing": "Ô nomu dû file cci manca l'estinsioni.",
-       "api-error-hookaborted": "U canciamentu chi' stavi pruvannu a' fari fu' annullatu di n'estinsioni.",
-       "api-error-http": "Erruri nternu: Impussìbbili culligàrisi ô server.",
-       "api-error-illegal-filename": "U nomu dû file nun è cunsintutu.",
-       "api-error-internal-error": "Erruri nternu: Quarchi' cosa nun funziunau mentri chi' si stava travagghiannu u to carricamentu supra â wiki.",
-       "api-error-invalid-file-key": "Erruri nternu: U file nun fu' truvatu ntâ mimorizzazzioni timpurania.",
-       "api-error-missingparam": "Erruri nternu: Màncunu paràmitri ntâ richiesta.",
-       "api-error-missingresult": "Erruri nternu: Nun fu' pussìbbili capiri s'a copia riniscìu.",
-       "api-error-mustbeloggedin": "Hâ' jèssiri trasutu pi' carricari file.",
-       "api-error-mustbeposted": "Erruri nternu: A richiesta havi bisognu di POST HTTP.",
-       "api-error-noimageinfo": "U carricamentu riniscìu, però u server nun nni desi nudda nfurmazzioni a' prupòsitu dû file.",
+       "api-error-filetype-banned-type": "$1 {{PLURAL:$4|nun è un tipu di file cunzintutu|nun sù tipi di file cunzintuti}}. {{PLURAL:$3|Lu tipu di file cunzintutu è|Li tipi di file cunzintuti sunnu}} $2.",
+       "api-error-filetype-missing": "Ô nomu dû file ci ammanca l'estinzioni.",
+       "api-error-hookaborted": "Lu canciamentu chi stavi pruvannu a fari fu annullatu di n'estinzioni.",
+       "api-error-http": "Erruri nternu: Mpussìbbili culligàrisi ô server.",
+       "api-error-illegal-filename": "Lu nomu dû file nun è cunzintutu.",
+       "api-error-internal-error": "Erruri nternu: Quarchi cosa nun funziunau mentri chi si stava travagghiannu lu tò carricamentu supra â wiki.",
+       "api-error-invalid-file-key": "Erruri nternu: Lu file nun fu attruvatu ntâ mimurizzazzioni timpurània.",
+       "api-error-missingparam": "Erruri nternu: Ammàncanu paràmitri nta l'addumannata.",
+       "api-error-missingresult": "Erruri nternu: Nun fu pussìbbili capiri si la copia arriniscìu.",
+       "api-error-mustbeloggedin": "Hai a aviri trasutu pi carricari file.",
+       "api-error-mustbeposted": "Erruri nternu: L'addumannata havi bisognu di POST HTTP.",
+       "api-error-noimageinfo": "Lu carricamentu arriniscìu, pirò lu server nun ni desi nudda nfurmazzioni a prupòsitu dû file.",
        "api-error-nomodule": "Erruri nternu: nun fu mpustatu lu mòdulu di carricamentu",
        "api-error-ok-but-empty": "Erruri ntenru: nudda risposta dû server",
        "api-error-overwrite": "Suprascriviri nu file ca nun esisti nun è cunsitutu",
        "api-error-stashfailed": "Erruri nternu: lu server nun arrinisciu a mimurizzari lu ducumentu timpuraniu",
-       "api-error-publishfailed": "Erruri nternu: U server nun riniscìu a' pubblicari u file timpuraniu.",
-       "api-error-stasherror": "Cci fu' n'erruri ntô carricari u file nta l'ammucciagghia.",
-       "api-error-stashedfilenotfound": "U file nun fu' truvatu nta l'ammucciagghia duranti u tintativu di carricamentu a' partiri di l'ammucciagghia.",
-       "api-error-stashpathinvalid": "U caminu unni avissi avutu a' jèssiri u file nta l'ammucciagghia nun era vàlidu.",
-       "api-error-stashfilestorage": "Cci fu' n'erruri ntô mimurizzari u file nta l'ammucciagghia.",
-       "api-error-stashzerolength": "U server nun potti mèttiri u file nta l'ammucciagghia, picchì avìa lunghizza zeru.",
-       "api-error-stashnotloggedin": "Hâ' èssiri trasutu pi' sarvari file nta l'ammucciagghia.",
-       "api-error-stashwrongowner": "U file nta l'ammucciagghia chi' pruvasti a' pigghiari nun t'apparteni.",
-       "api-error-stashnosuchfilekey": "U file nta l'ammucciagghia chi' pruvasti a' pigghiari nun esisti.",
+       "api-error-publishfailed": "Erruri nternu: Lu server nun arriniscìu a pubblicari lu file timpuràniu.",
+       "api-error-stasherror": "Ci fu n'erruri ntô carricari lu file nta l'ammucciagghia.",
+       "api-error-stashedfilenotfound": "Lu file nun fu attruvatu nta l'ammucciagghia duranti lu tintativu di carricamentu a pàrtiri di l'ammucciagghia.",
+       "api-error-stashpathinvalid": "Lu caminu unni avissi avutu a èssiri lu file nta l'ammucciagghia nun era vàlidu.",
+       "api-error-stashfilestorage": "Ci fu n'erruri ntô mimurizzari lu file nta l'ammucciagghia.",
+       "api-error-stashzerolength": "Lu server nun potti mèttiri lu file nta l'ammucciagghia, pirchì avìa lunghizza zeru.",
+       "api-error-stashnotloggedin": "Hai a aviri trasutu pi sarvari file nta l'ammucciagghia.",
+       "api-error-stashwrongowner": "Lu file nta l'ammucciagghia chi pruvasti a pigghiari nun t'apparteni.",
+       "api-error-stashnosuchfilekey": "Lu file nta l'ammucciagghia chi pruvasti a pigghiari nun esisti.",
        "api-error-timeout": "Lu server nun arrispunniu ntô tempu privistu",
        "api-error-unclassified": "S'avvirificau n'erruri scanusciutu",
        "api-error-unknown-code": "Erruri scanusciuti: \"$1$\".",
-       "api-error-unknown-error": "Erruri nternu: Quarchi' cosa nun funziunau ntô tintativu di carricari u to file.",
-       "api-error-unknown-warning": "Avvirtimentu scanusciutu: \"$1\".",
+       "api-error-unknown-error": "Erruri nternu: Quarchi cosa nun funziunau ntô tintativu di carricari lu tò file.",
+       "api-error-unknown-warning": "Avvisu scanusciutu: \"$1\".",
        "api-error-unknownerror": "Erruri scanusciutu: \"$1\".",
-       "api-error-uploaddisabled": "U carricamentu è disattivatu nta sta wiki.",
-       "api-error-verification-error": "Lu file purrìa èssiri ruinatu, o puru aviri l'estinsioni sbagghiata.",
+       "api-error-uploaddisabled": "Lu carricamentu è disattivatu nta sta wiki.",
+       "api-error-verification-error": "Lu file purrìa èssiri ruinatu, o puru aviri la stinzioni sbagghiata.",
        "duration-seconds": "$1 {{PLURAL:$1|sicunnu|sicunni}}",
        "duration-minutes": "$1 {{PLURAL:$1|minutu|minuti}}",
        "duration-hours": "$1 {{PLURAL:$1|ura|uri}}",
        "duration-weeks": "$1 {{PLURAL:$1|simana|simani}}",
        "duration-years": "$1 {{PLURAL:$1|annu|anni}}",
        "duration-decades": "$1 {{PLURAL:$1|dicenniu|dicennî}}",
-       "duration-centuries": "$1 {{PLURAL:$1|sèculu|sècula}}",
+       "duration-centuries": "$1 {{PLURAL:$1|sèculu|sèculi}}",
        "duration-millennia": "$1 {{PLURAL:$1|millenniu|millennî}}",
-       "rotate-comment": "Mmàggini vutata di $1 {{PLURAL:$1|gradu|gradi}} ntô sensu urariu",
-       "limitreport-title": "Dati di prufilazzioni di l'analizzaturi sintatticu:",
+       "rotate-comment": "Mmàggini vutata di $1 {{PLURAL:$1|gradu|gradi}} ntô senzu urariu",
+       "limitreport-title": "Dati di prufilazzioni di l'analizzaturi sintàtticu:",
        "limitreport-cputime": "Usu di tempu dâ CPU",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|sicunnu|sicunni}}",
-       "limitreport-walltime": "Usu di tempu riàli",
+       "limitreport-walltime": "Tempu d'usu riali",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|sicunnu|sicunni}}",
        "limitreport-ppvisitednodes": "Cuntiggiu dî gruppi visitati dû priprucissuri",
        "limitreport-ppgeneratednodes": "Cuntiggiu dî gruppi ginirati dû priprucissuri",
-       "limitreport-postexpandincludesize": "Grannizza di nclusioni appressu a' l'espansioni",
+       "limitreport-postexpandincludesize": "Grannizza di nclusioni appressu a l'espanzioni",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|byte}}",
        "limitreport-templateargumentsize": "Grannizza di l'argumenti di template",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|byte}}",
-       "limitreport-expansiondepth": "Màssimu funnu d'espansioni",
-       "limitreport-expensivefunctioncount": "Cuntìggiu dî funzioni di l'analizzaturi sintatticu spisusi",
-       "expandtemplates": "Espansioni dî template",
-       "expand_templates_intro": "Sta pàggina spiciali pigghia un testu e espanni tutti i template chi' cunteni, di manera ricursiva.\nEspanni macari i funzioni di l'analizzaturi sintatticu chi' su suppurtati, comu <code><nowiki>{{</nowiki>#language:…}}</code>, e i variàbbili, comu <code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nIn pratica, espanni cchiu' o menu tuttu chiddu chi' si trova mmenzu a' duppî parèntisi graffi.",
-       "expand_templates_title": "Tìtulu dû cuntestu, pi' {{FULLPAGENAME}} etc.:",
-       "expand_templates_input": "Testu a' espànniri:",
-       "expand_templates_output": "Risultatu",
+       "limitreport-expansiondepth": "Funnu d'espanzioni màssimu",
+       "limitreport-expensivefunctioncount": "Cuntiggiu dî funzioni di l'analizzaturi sintàtticu spisusi",
+       "expandtemplates": "Espanzioni dî template",
+       "expand_templates_intro": "Sta pàggina spiciali pigghia un testu e espanni tutti li template chi cunteni, di manera ricursiva.\nEspanni macari li funzioni di l'analizzaturi sintàtticu chi sù suppurtati, comu <code><nowiki>{{</nowiki>#language:…}}</code>, e li variàbbili, comu <code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nN pràttica, espanni cchiù o menu tuttu zocchi s'attrova ammenzu a duppî parèntisi graffi.",
+       "expand_templates_title": "Tìtulu dû cuntestu, pi {{FULLPAGENAME}} ecc.:",
+       "expand_templates_input": "Testu a espànniri:",
+       "expand_templates_output": "Risurtatu",
        "expand_templates_xml_output": "Output XML",
        "expand_templates_html_output": "Output HTML grezzu",
        "expand_templates_ok": "Espanni",
-       "expand_templates_remove_comments": "Leva i cummenti",
-       "expand_templates_remove_nowiki": "Leva l'etichetti <nowiki> dû risultatu",
+       "expand_templates_remove_comments": "Leva li cummenti",
+       "expand_templates_remove_nowiki": "Leva l'etichetti <nowiki> dû risurtatu",
        "expand_templates_generate_xml": "Ammustra l'àrvulu di l'anàlisi sintàttica XML",
        "expand_templates_generate_rawhtml": "Ammustra l'HTML grezzu",
        "expand_templates_preview": "Antiprima",
-       "expand_templates_preview_fail_html": "<em>Comu chi' {{SITENAME}} havi l'HTML grezzu attivatu, e cci fu' na pèrdita dî dati di sissioni, l'antiprima vinni ammucciata, pi' pricauzzioni contra di l'attacchi JavaScript.</em>\n\n<strong>Si' chistu è nu tintativu onestu d'aviri n'antiprima, pi' favuri prova n'autra vota.</strong>\nS'ancora nun funziona, prova a' [[Special:UserLogout|nèsciri]] e tràsiri n'autra vota.",
-       "expand_templates_preview_fail_html_anon": "<em>Comu chi' {{SITENAME}} havi l'HTML grezzu attivatu, e tu nun si' trasutu, l'antiprima vinni ammucciata, pi' pricauzzioni contra di l'attacchi JavaScript.</em>\n\n<strong>Si' chistu è nu tintativu onestu d'aviri n'antiprima, pi' favuri [[Special:UserLogin|trasi]] e prova n'autra vota.",
-       "pagelanguage": "Scelta dâ lingua dâ pàggina",
+       "expand_templates_preview_fail_html": "<em>Comu chi {{SITENAME}} havi l'HTML grezzu attivatu, e ci fu na pèrdita dî dati di sissioni, l'antiprima vinni ammucciata, pi pricauzzioni contra di l'attacchi JavaScript.</em>\n\n<strong>Si chistu è nu tintativu nurmali d'aviri n'antiprima, pi favuri prova n'àutra vota.</strong>\nSi ancora nun funziona, prova a [[Special:UserLogout|nèsciri]] e tràsiri n'àutra vota.",
+       "expand_templates_preview_fail_html_anon": "<em>Comu chi {{SITENAME}} havi l'HTML grezzu attivatu, e tu nun trasisti, l'antiprima vinni ammucciata, pi pricauzzioni contra di l'attacchi JavaScript.</em>\n\n<strong>Si chistu è nu tintativu nurmali d'aviri n'antiprima, pi favuri [[Special:UserLogin|trasi]] e prova n'àutra vota.",
+       "pagelanguage": "Scigghiuta dâ lingua dâ pàggina",
        "pagelang-name": "Pàggina",
        "pagelang-language": "Lingua",
-       "pagelang-use-default": "Usa a lingua pridifinuta",
-       "pagelang-select-lang": "Scegghî na lingua",
-       "right-pagelang": "Canciari a lingua dî pàggini",
-       "action-pagelang": "canciari a lingua dî pàggini",
+       "pagelang-use-default": "Usa la lingua pridifinuta",
+       "pagelang-select-lang": "Scegghi na lingua",
+       "right-pagelang": "Canciari la lingua dî pàggini",
+       "action-pagelang": "canciari la lingua dî pàggini",
        "log-name-pagelang": "Riggistru dî canci di lingua",
        "log-description-pagelang": "Chistu è nu riggistru dî canciamenti â lingua dî pàggini.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|canciau}} a lingua dâ pàggina $3 di $4 a' $5.",
-       "default-skin-not-found": "Whoops! La peddi pridifinuta dâ to wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nA' quantu pari la to istallazzioni ncludi {{PLURAL:$4|la peddi|li peddi}} ccasutta. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuali: Cunfigurazzioni dî peddi] p'istruzzioni supra a' comu {{PLURAL:$4|s'attìva|s'attìvunu e comu si scegghî chidda pridifinuta}}.\n\n$2\n\n; Si' hai istallatu MediaWiki ora ora:\n: E' prubbàbbili ca l'istallasti dû git, o direttamenti dû còdici surgenti nta quarchi' n'autra manera. Allura sta cosa è privista. Prova e istalla quarchi' peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archìviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download lu prugramma d'istallazzioni in furmatu tar], ca cunteni tanti peddi ed estinsioni. Poi cupiari e ncuddari la cartella <code>skins/</code> di ddadintra.\n:* Scàrrica a' una a' una quarchi' peddi ntô furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Adòpira Git pi' scarricari peddi].\n: Lu fari accussi' nun avissi a' ntirfirìri cû to dipòsitu git si' si' nu sviluppaturi di MediaWiki.\n\n; Si' hai aggiurnatu MediaWiki ora ora:\n: MediaWiki virsioni 1.24 e succissivi nun attìvunu cchiu' di manera autumàtica li peddi istallati (talìa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manüali: Scuperta autumatica dî peddi]). Poi cupiari e ncuddari {{PLURAL:$5|sta riga|sti righi}} nta <code>LocalSettings.php</code> p'attivari {{PLURAL:$5|la peddi ca è istallata pi' com'ora|tutti li peddi ca sunnu istallati pi' com'ora}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si' hai mudificatu <code>LocalSettings.php</code> ora ora:\n: Cuntrolla ca nun sbagghiasti a' scrìviri li nomi dî peddi.",
-       "default-skin-not-found-no-skins": "Whoops! La peddi pridifinuta dâ to wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nNun hai nudda peddi installata.\n\n; Si' hai installatu o puru aggiurnatu MediaWiki ora ora:\n: E' prubbàbbili chi' l'installasti dû git, o direttamenti dû còdici surgenti nta quarchi' autra manera. Allura sta cosa è privista. MediaWiki virsioni 1.24 e succissivi nun cuntènunu nudda peddi ntô dipòsitu principali. Prova e installa quarchi' peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archìviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download u prugramma d'installazzioni in furmatu tar], chi' cunteni tanti peddi ed estinsioni. Poi cupiari e ncuddari a cartella <code>skins/</code> di ddadintra.\n:* Scàrrica a' una a' una quarchi' peddi in furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Adòpira Git pi' scarricari peddi].\n: Fari accussì' nun avissi a' ntirfirìri cû to dipòsitu git si' si' nu sviluppaturi di MediaWiki. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manüali: Cunfigurazzioni dî peddi] p'istruzzioni supra a' comu s'attìvunu i peddi e comu si scegghî chidda pridifinuta.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|canciau}} la lingua dâ pàggina $3 di $4 a $5.",
+       "default-skin-not-found": "Whoops! La peddi pridifinuta dâ tò wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nA quantu pari la tò stallazzioni ncludi {{PLURAL:$4|la peddi|li peddi}} ccassutta. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuali: Cunfigurazzioni dî peddi] pi struzzioni supra a comu {{PLURAL:$4|s'attiva|s'attìvanu e comu si scegghî chidda pridifinuta}}.\n\n$2\n\n; Si stallasti MediaWiki ora ora:\n: E' prubbàbbili ca la stallasti dû git, o direttamenti dû còdici surgenti nta quarchi n'àutra manera. Allura sta cosa è privista. Prova e stalla quarchi peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archiviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download lu prugramma di stallazzioni n furmatu tar], ca cunteni tanti peddi e stinzioni. Poi cupiari e ncuddari la cartella <code>skins/</code> di ddà dintra.\n:* Scàrrica a una a una quarchi peddi ntô furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Adòpira Git pi scarricari peddi].\n: Lu fari accussì nun avissi a ntirfiriri cû tò dipòsitu git si sî nu sviluppaturi di MediaWiki.\n\n; Si aggiurnasti MediaWiki ora ora:\n: MediaWiki virsioni 1.24 e succissivi nun attìvanu cchiù di manera autumàtica li peddi stallati (talìa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuali: Scuperta autumàtica dî peddi]). Poi cupiari e ncuddari {{PLURAL:$5|sta riga|sti righi}} nta <code>LocalSettings.php</code> p'attivari {{PLURAL:$5|la peddi ch'è stallata pi com'ora|tutti li peddi ca sunnu stallati pi com'ora}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si canciasti <code>LocalSettings.php</code> ora ora:\n: Cuntrolla ca nun sbagghiasti a scrìviri li noma dî peddi.",
+       "default-skin-not-found-no-skins": "Whoops! La peddi pridifinuta dâ tò wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nNun hai nudda peddi nstallata.\n\n; Si nstallasti o puru aggiurnasti MediaWiki ora ora:\n: È prubbàbbili chi lu nstallasti dû git, o direttamenti dû còdici surgenti nta quarchi àutra manera. Allura sta cosa è privista. MediaWiki virsioni 1.24 e succissivi nun cuntèninu nudda peddi ntô dipòsitu principali. Prova e nstalla quarchi peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archiviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download lu prugramma di nstallazzioni n furmatu tar], chi cunteni tanti peddi e stinzioni. Poi cupiari e ncuddari la cartella <code>skins/</code> di ddà dintra.\n:* Scàrrica a una a una quarchi peddi n furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Adòpira Git pi scarricari peddi].\n: Fari accussì nun avissi a ntirfiriri cû tò dipòsitu git si sî nu sviluppaturi di MediaWiki. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuali: Cunfigurazzioni dî peddi] pi struzzioni supra a comu s'attìvanu li peddi e comu si scegghî chidda pridifinuta.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (attivata)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disattivata''')",
        "mediastatistics": "Statìstichi supra ê file multimidiali",
-       "mediastatistics-summary": "Statìstichi supra ê tipi di file carricati. Si cùntunu sulu i virsioni cchiu' novi dî file. I virsioni vecchî o cancillati vènunu escluduti.",
+       "mediastatistics-summary": "Statìstichi supra ê tipi di file carricati. Si cùntanu sulu li virsioni cchiù novi dî file. Li virsioni vecchî o cancillati vèninu escluduti.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte}} ($2; $3%)",
        "mediastatistics-table-mimetype": "Tipu MIME",
-       "mediastatistics-table-extensions": "Estinsioni pussìbbili",
+       "mediastatistics-table-extensions": "Estinzioni pussìbbili",
        "mediastatistics-table-count": "Nùmmiru di file",
-       "mediastatistics-table-totalbytes": "Rannizza cumplissiva",
+       "mediastatistics-table-totalbytes": "Diminzioni cumminata",
        "mediastatistics-header-unknown": "Scanusciuti",
        "mediastatistics-header-bitmap": "Mmàggini bitmap",
        "mediastatistics-header-drawing": "Disigni (mmàggini vitturiali)",
-       "mediastatistics-header-audio": "Audiu",
-       "mediastatistics-header-video": "Vidiu",
+       "mediastatistics-header-audio": "Àudiu",
+       "mediastatistics-header-video": "Vìdiu",
        "mediastatistics-header-multimedia": "File multimidiali cumplessi",
        "mediastatistics-header-office": "Ufficiu",
        "mediastatistics-header-text": "Tistuali",
        "mediastatistics-header-executable": "Esiguìbbili",
        "mediastatistics-header-archive": "Furmati cumpressi",
-       "json-warn-trailing-comma": "$1 {{PLURAL:$1|vìrgula finali fu' livata|vìrguli finali furu livati}} dû JSON",
-       "json-error-unknown": "Mmattìu un prubblema cû JSON. Erruri: $1",
-       "json-error-depth": "Fu passatu lu massimu funnu dû stack",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|vìrgula finali fu livata|vìrguli finali foru livati}} dû JSON",
+       "json-error-unknown": "Ammattìu un prubblema cû JSON. Erruri: $1",
+       "json-error-depth": "Fu passatu lu funnu màssimu dû stack",
        "json-error-state-mismatch": "JSON nun vàlidu o malfurmatu",
        "json-error-ctrl-char": "Caràttiri di cuntrollu nun privistu, forsi cudificatu mali",
        "json-error-syntax": "Erruri di sintassi",
        "json-error-utf8": "Caràttiri UTF-8 nun vàlidi, forsi cudificati mali",
-       "json-error-recursion": "U valuri di cudificari havi unu o cchiu' ssai rifirimenti ricursivi",
-       "json-error-inf-or-nan": "U valuri di cudificari havi unu o cchiu' ssai valuri NAN o INF",
-       "json-error-unsupported-type": "Fu' passatu nu valuri dûn tipu chi' nun si po' cudificari",
+       "json-error-recursion": "Lu valuri di cudificari havi unu o cchiossai rifirimenti ricursivi",
+       "json-error-inf-or-nan": "Lu valuri di cudificari havi unu o cchiossai valuri NAN o INF",
+       "json-error-unsupported-type": "Fu passatu nu valuri dûn tipu chi nun si pò cudificari",
        "headline-anchor-title": "Ligami versu sta sizzioni",
        "special-characters-group-latin": "Latinu",
        "special-characters-group-latinextended": "Latinu estinnutu",
        "special-characters-group-greek": "Grecu",
        "special-characters-group-cyrillic": "Cirillicu",
        "special-characters-group-arabic": "Àrabbu",
-       "special-characters-group-arabicextended": "Àrabbu estinnutu",
+       "special-characters-group-arabicextended": "Àrabbu stinnutu",
        "special-characters-group-persian": "Persianu",
        "special-characters-group-hebrew": "Ebbreu",
        "special-characters-group-bangla": "Bengalisi",
index 76ea3ff..7140361 100644 (file)
        "passwordreset-emailtitle": "Accoont details oan {{SITENAME}}",
        "passwordreset-emailtext-ip": "Somebodie (likely ye, fae IP address $1) requested ae reset o yer passwaird fer {{SITENAME}} ($4). The follaein uiser {{PLURAL:$3|accoont is|accoonts ar}}\nassociated wi this wab-mail address:\n\n$2\n\n{{PLURAL:$3|This temperie passwaird|Thir temperie passwairds}} will expire in {{PLURAL:$5|yin day|$5 days}}.\nYe shid log in n chuise ae new passwaird nou. Gif some ither bodie makit this request, or gif ye'v mynded yer oreeginal passwaird, n ye nae longer\nwish tae chynge it, ye can ignore this message n continue uisin yer auld passwaird.",
        "passwordreset-emailtext-user": "Uiser $1 oan {{SITENAME}} requested ae reset o yer passwaird fer {{SITENAME}}\n($4). The follaein uiser {{PLURAL:$3|accoont is|accoonts ar}} associated wi this wab-mail address:\n\n$2\n\n{{PLURAL:$3|This temperie passwaird|Thir temperie passwairds}} will expire in {{PLURAL:$5|yin day|$5 days}}.\nYe shid log in n chuise ae new password nou. Gif some ither bodie haes makit this request, or gif ye'v mynded yer oreeginal passwaird, n ye nae langer wish tae chynge it, ye can ignore this message n continue uisin yer auld passwaird.",
-       "passwordreset-emailelement": "Uisername: $1\nTemperie passwaird: $2",
+       "passwordreset-emailelement": "Uisername: \n$1\n\nTemperie passwaird: \n$2",
        "passwordreset-emailsent": "Ae passwaird reset wab-mail haes been sent.",
        "passwordreset-emailsent-capture": "Ae passwaird reset wab-mail haas been sent, this is shawn ablow.",
        "passwordreset-emailerror-capture": "Ae passwaird reset wab-mail wis generated, (this is shawn ablow), but sendin it til the {{GENDER:$2|uiser}} failed: $1",
        "api-error-badtoken": "Inby mistak: Bad token.",
        "api-error-copyuploaddisabled": "Uplaidin bi URL is disabled oan this server.",
        "api-error-duplicate": "Thaur {{PLURAL:$1|is [$2 anither file]|ar [$2 some ither files]}} awreadie oan the site wi the same content.",
-       "api-error-duplicate-archive": "Thaur {{PLURAL:$1|wis [$2 anither file]|were [$2 some ither files]}} awreadie oan the site wi the same content, but {{PLURAL:$1|it wis|thay were}} delytit.",
-       "api-error-duplicate-archive-popup-title": "Dupleecate {{PLURAL:$1|file that haes|files that hae}} awreadie been delytit.",
-       "api-error-duplicate-popup-title": "Dupleecate {{PLURAL:$1|file|files}}.",
+       "api-error-duplicate-archive": "Thaur {{PLURAL:$1|wis anither file|were some ither files}} awreadie oan the site wi the same content, but {{PLURAL:$1|it wis|thay were}} delytit.",
        "api-error-empty-file": "The file that ye haunnit in wis tuim.",
        "api-error-emptypage": "Cræftin new, tuim pages isna permittit.",
        "api-error-fetchfileerror": "Internal mistak: Sommit went wrang while fetchin the file.",
index e4a0b4e..4ffc8e5 100644 (file)
        "passwordreset-emailtitle": "Kontu šilbawey {{SITENAME}} ga",
        "passwordreset-emailtext-ip": "Boro foo (sanda war da, nda IP aderesu $1) ceeci ka war\n šenniufaloo barmay {{SITENAME}} ($4) se. Goykaa woo {{PLURAL:$3|kontoo ti}\n kaŋ ga hanga bataga aderesoo woo:\n\n $2\n\n{{PLURAL:$3|Šiiyan šennikufaloo woo|Šiiyan šennikufaley wey}}  ga buu {{PLURAL:$5|zaari foo|zaari}} ra.\nWar ga hima ka huru nda šennifulal taaga dam sohõ. Nda boro waani ka ceeci ka woo tee\n nda war honga war šennikufal žeenaa, nda war ši boona koyne\n ka šennikufal barmay,\n war ga hin ka šaawaroo woo murayy nda soobay ka goy nda war\n šennikufal žeenaa. \\",
        "passwordreset-emailtext-user": "Goykaw $1 {{SITENAME}} wiri ka war sennikufaloo yeeti {{SITENAME}} se\n($4). Goykaa woo {{PLURAL:$3|kontoo ga|kontey ga}} marga nda nda bataga aderesoo woo:\n\n$2\n\n {{PLURAL:$3|Šiiyan šennikufaloo woo|Šiiyan šennikufaley wey}} ga buu {{PLURAL:$5|jirbi foo|jirbi $5}} ra.\nWar ga hima ka huru  nda šennikufal taaga suuba sohõ. Nda boro waani ka ceeci\n ka woo tee wala war ga honga wara šennikufal žeenaa nda war ši boona koyne\n k'a barma, war ga hin ka šaawaroo woo muray nda gaabandi ka goy nda war\n šennikufal žeenaa.",
-       "passwordreset-emailelement": "Goykaw maa: $1\nŠiiyan šennikufal: $2",
+       "passwordreset-emailelement": "Goykaw maa: \n$1\n\nŠiiyan šennikufal: \n$2",
        "passwordreset-emailsent": "Šennikufal yeetiyan bataga n' ka sanbandi war se.",
        "passwordreset-emailsent-capture": "Šennikulal yeetiyan bataga n' ka sanbandi war se, kaŋ ga cebandi ne ganda.",
        "passwordreset-emailerror-capture": "Šennikufal yeetiyan bataga n' ka teendi, kaŋ ga cebandi ne ganda, amm'a mana hin ka sanbandi {{GENDER:$2|goykaw}} do: $1",
        "emailuser": "Hantum goykaa woo se",
        "emailuser-title-target": "Hantum {GENDER:$1|user}} woo se",
        "emailuser-title-notarget": "Bataga goykaw",
-       "emailpage": "Bataga goykaw",
        "emailpagetext": "War ga hin ka ganda takaddaa zaa ka bataga sanba {{GENDER:$1|goykaw}} se.\nBataga aderesoo kaŋ war n'a dam [[Special:Preferences|your user preferences]] ra mma bangay sanda \"From\" bataga aderesu, adiši duukaa ga hin ka war zaabi nga boŋ se.",
        "defemailsubject": "{{SITENAME}} bataga kan hun \"$1\" do",
        "usermaildisabled": "Goykaw bataga ši koy",
        "api-error-badtoken": "Kunahere firka: Tokore laala.",
        "api-error-copyuploaddisabled": "URL zijandiyan n' ka kay feršikaa woo ga.",
        "api-error-duplicate": "{{PLURAL:$1|ti [ti tuku tana $2]}} kaŋ ga bara interneti nungoo ga ka ben nda gundakuna follokaa da.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|ti [ti tuku tana $2]}} kaŋ ga bara interneti nungoo ga ka ben nda gundakuna follokaa da, amma {{PLURAL:$1|an' ka|in' ka}} tuusandi.",
-       "api-error-duplicate-archive-popup-title": "Fillayan {{PLURAL:$1|tukoo kaŋ n' ka|tukey kaŋ n' ka}} tuusandi ka ben.",
-       "api-error-duplicate-popup-title": "Fillayan {{PLURAL:$1|tukoo|tukey}}.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|ti ti tuku tana}} kaŋ ga bara interneti nungoo ga ka ben nda gundakuna follokaa da, amma {{PLURAL:$1|an' ka|in' ka}} tuusandi.",
        "api-error-empty-file": "Tukoo kaŋ war n'a sanba mma koonu.",
        "api-error-emptypage": "Boro ši hin ka moo taaga, koonuyaŋ tee.",
        "api-error-fetchfileerror": "Kunahere firka: Haya foo mana boori tuku zaayan waate.",
index 3ee09eb..2a6eea4 100644 (file)
        "passwordreset-emailtitle": "Detalji računa na {{SITENAME}}",
        "passwordreset-emailtext-ip": "Netko (vjerovatno Vi, s IP adrese $1) je zatražio resetiranje vaše lozinke/zaporke {{SITENAME}} ($4). Sljedeći {{PLURAL:$3|račun korisnika je|računi korisnika su}}\npovezani s ovom e-mail adresom:\n\n$2\n\n{{PLURAL:$3|Ova privremena lozinka|Ove privremene lozinke}} će isteći za {{PLURAL:$5|jedan dan|$5 dana}}.\nTrebate se prijaviti i odabrati novu lozinku. Ako je neko drugi napravio ovaj\nzahtjev, ili ako ste se sjetili Vaše početne lozinke, a ne želite je promijeniti, \nmožete zanemariti ovu poruku i nastaviti koristiti staru lozinku.",
        "passwordreset-emailtext-user": "Korisnik $1 na {{SITENAME}} je zatražio resetiranje vaše lozinke/zaporke za {{SITENAME}}\n($4). Sljedeći {{PLURAL:$3|korisnički račun je|korisnički računi su}} povezani s ovom e-mail adresom:\n\n$2\n\n{{PLURAL:$3|Ova privremena lozinka|Ove privremene lozinke}} će isteći za {{PLURAL:$5|jedan dan|$5 dana}}.\nTrebate se prijaviti i odabrati novu lozinku. Ako je neko drugi napravio ovaj\nzahtjev, ili ako ste se sjetili Vaše originalne lozinke, a ne želite je više promijeniti, \nmožete zanemariti ovu poruku i nastaviti koristiti staru lozinku.",
-       "passwordreset-emailelement": "Korisničko ime: $1\nPrivremena šifra: $2",
+       "passwordreset-emailelement": "Korisničko ime: \n$1\n\nPrivremena šifra: \n$2",
        "passwordreset-emailsent": "E-mail za resetiranje lozinke/zaporke je poslan.",
        "passwordreset-emailsent-capture": "E-mail za resetiranje lozinke/zaporke je poslan (prikazan dolje).",
        "passwordreset-emailerror-capture": "E-mail za resetiranje lozinke/zaporke, prikazan dolje, je poslan, ali slanje {{GENDER:$2|korisniku|korisnici|korisniku}} nije uspjelo: $1",
        "emailuser": "Pošalji E-mail ovom korisniku",
        "emailuser-title-target": "Slanje e-maila {{GENDER:$1|korisniku|korisnici|korisniku}}",
        "emailuser-title-notarget": "Slanje e-maila korisniku",
-       "emailpage": "Pošalji e-mail ovom korisniku",
        "emailpagetext": "Možete da koristite donji obrazac da pošaljete e-mail {{GENDER:$1|ovom korisniku|ovoj korisnici|ovom korisniku|}}.\nE-mail koju ste uneli u vašim [[Special:Preferences|postavkama]] će se prikazati u polju \"Od:\", tako da će primalac moći da vam odgovori direktno.",
        "defemailsubject": "{{SITENAME}} e-mail od korisnika \"$1\"",
        "usermaildisabled": "Korisnički e-mail onemogućen",
        "api-error-badtoken": "Unutrašnja greška: token nije ispravan.",
        "api-error-copyuploaddisabled": "Postavljanja putem URL-a su onemogućena na ovom serveru.",
        "api-error-duplicate": "Već postoji {{PLURAL:$1|[$2 druga datoteka]|[$2 druge datoteke]}} na ovoj stranici sa istim sadržajem",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Postojala je [$2 druga datoteka]|Postojale su [$2 neke druge datoteke]}} na sajtu sa istim sadržajem, ali {{PLURAL:$1|je obrisana|su obrisane}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Dupla datoteka|Duple datoteke}} koje su već obrisane",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Dvojna datoteka|Dvojne datoteke}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Postojala je druga datoteka|Postojale su neke druge datoteke}} na sajtu sa istim sadržajem, ali {{PLURAL:$1|je obrisana|su obrisane}}.",
        "api-error-empty-file": "Datoteka koju ste poslali je bila prazna.",
        "api-error-emptypage": "Stvaranje novih praznih stranica nije dozvoljeno.",
        "api-error-fetchfileerror": "Unutrašnja greška: pojavio se neki problem pri dobijanju podataka o datoteci.",
index 549d49e..851be56 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}}යෙහි ගිණුම් තොරතුරු",
        "passwordreset-emailtext-ip": "කවුරුන්හෝ (බොහෝවිට ඔබ, $1 අන්තර්ජාල ලිපිනය භාවිතයෙන්) {{SITENAME}} ($4) සඳහා ඔබගේ ගිණුම් විස්තර සිහිකැඳවීමක් ඉල්ලා ඇත.  පහත පරිශීලක {{PLURAL:$3|ගිණුම|ගිණුම්}}\nමෙම විද්‍යුත් තැපැල් ලිපිනය හා සමගින් ආශ්‍රය වෙයි.\n\n$2\n\n{{PLURAL:$3|මෙම තාවකාලික මුරපදය|මෙම තාවකාලික මුරපද}} {{PLURAL:$5|එක් දිනයක්|දින $5 ක්}} ගෙවුනු විට ඉකුත් වනු ඇත.\nඔබ දැන් ප්‍රවිෂ්ට වී නව මුරපදයක් තෝරාගත යුතුයි. වෙන යම් අයෙක් මෙම ඉල්ලීම කර ඇත්නම් හෝ, ඔබගේ මුල් මුරපදය ඔබගේ මතකයට පැමිණ ඇති නම් හා, එය වෙනස් කිරීමට ඔබ හට තවදුරටත් අවශ්‍ය නොවේ නම්, ඔබ විසින් මෙම පණිවුඩය නොසලකා හැර පැරණි මුරපදය තවදුරටත් පාවිච්චි කළ හැක.",
        "passwordreset-emailtext-user": "{{SITENAME}} හි පරිශීලක $1,{{SITENAME}}($4)සඳහා මුරපදය යලි පිහිටුවීමට ඉල්ලා ඇත.\n\n$2\n\n{{PLURAL:$3|මෙම මුරපදය|මෙම මුරපද}}{{PLURAL:$5|එක් දිනකින්|දවස්$5කින්}}කල් ඉකුත් වනු ඇත.\nඔබ දැන් ඇතුළු වී නව මුරපදයක් තේරිය යුතුය.මෙම ඉල්ලීම වෙන කෙනෙකු විසින් හෝ ඔබට ඔබගේ මුල් මුරපදය මතක නම් හෝ ඔබ තව දුරටත් එය වෙනස් කිරීමට අදහස් නොකරයි නම් හෝ ඔබ මෙම පනිවිඩය නොසලකාහැර ඔබගේ පැරණි මුරපදය භාවිතා කරන්න.",
-       "passwordreset-emailelement": "පරිශීලක නාමය: $1\nතාවකාලික මුරපදය: $2",
+       "passwordreset-emailelement": "පරිශීලක නාමය: \n$1\n\nතාවකාලික මුරපදය: \n$2",
        "passwordreset-emailsent": "මුර-පදය නැවත සකස් කිරීම පිළිබඳව විද්‍යුත් තැපෑලක් යවන ලදී.",
        "passwordreset-emailsent-capture": "මුර-පදය වෙනස් කිරීම පිළිබඳව විද්‍යුත් තැපෑලක් යවන ලදී, එය පහත දැක්වේ.",
        "passwordreset-emailerror-capture": "සිහිකැඳවුම් ඊ-තැපෑල ජනිත කරනු ලැබූ අතර, එය පහත දැක්වේ, නමුත් එය {{GENDER:$2|}}පරිශීලකයාට යැවීම අසාර්ථක වුනි: $1",
        "api-error-badtoken": "අභ්‍යන්තර දෝෂය: නොසුදුසු ටෝකනය.",
        "api-error-copyuploaddisabled": "URL මඟින් උඩුගතකිරීම මෙම සර්වරයේදී අක්‍රීය කොට තිබේ.",
        "api-error-duplicate": "එකම අන්තර්ගතය සමඟ මෙවැනිම {{PLURAL:$1|[වෙනත් ගොනු $2 ක්]|[වෙනත් ගොනු $2 ක්]}} අඩවිය තුල දැනටමත් පවතියි.",
-       "api-error-duplicate-archive": "එකම අන්තර්ගතය සමඟ මෙවැනිම {{PLURAL:$1|[වෙනත් ගොනු $2 ක්]|[වෙනත් ගොනු $2 ක්]}} අඩවිය තුල දැනටමත් තිබුනා, නමුත්  {{PLURAL:$1|ඒක|ඒවා}} මකා දමා ඇත.",
-       "api-error-duplicate-archive-popup-title": "දැනටමත් මකා දමා ඇති එක වගේ {{PLURAL:$1|ගොනුවක්|ගොනු}}",
-       "api-error-duplicate-popup-title": "අනුපිටපත් {{PLURAL:$1|ගොනු|ගොනුව}}",
+       "api-error-duplicate-archive": "එකම අන්තර්ගතය සමඟ මෙවැනිම {{PLURAL:$1|වෙනත් ගොනු ක්|වෙනත් ගොනු ක්}} අඩවිය තුල දැනටමත් තිබුනා, නමුත්  {{PLURAL:$1|ඒක|ඒවා}} මකා දමා ඇත.",
        "api-error-empty-file": "ඔබ ඉදිරිපත්කල ගොනුව හිස් එකකි.",
        "api-error-emptypage": "නවතම එකක් තනමින්, හිස් පිටුවලට ඉඩ නොදේ.",
        "api-error-fetchfileerror": "අභ්‍යන්තර දෝෂය: ගොනුව පැමිණවීම අතරතුරදී කුමක්දෝ වැරදුණා.",
index 5a4c688..ef8c1e6 100644 (file)
        "passwordreset-emailtitle": "Podrobnosti o účte na {{GRAMMAR:lokál|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "Niekto (pravdepodobne vy z IP adresy $1) požiadal o obnovenie vášho hesla na {{GRAMMAR:genitív|{{SITENAME}}}} ($4). {{PLURAL:$3|Nasledujúci používateľský účet je spojený|Nasledujúce používateľské účty sú spojené}}\ns touto emailovou adresou:\n\n$2\n\n{{PLURAL:$3|Platnosť tohto dočasného hesla vyprší|Platnosť týchto dočasných hesiel vyprší}} o {{PLURAL:$5|jeden deň|$5 dni|$5 dní}}.\nMali by ste sa prihlásiť teraz a zvoliť nové heslo. Ak túto žiadosť podal niekto iný alebo\nak ste si spomenuli svoje pôvodné heslo a už ho chcete zmeniť, môžete túto správu\nignorovať a ďalej používať vaše staré heslo.",
        "passwordreset-emailtext-user": "Používateľ $1 na {{GRAMMAR:genitív|{{SITENAME}}}} požiadal o obnovenie vášho hesla na na {{GRAMMAR:genitív|{{SITENAME}}}} ($4). {{PLURAL:$3|Nasledujúci používateľský účet je spojený|Nasledujúce používateľské účty sú spojené}}\ns touto emailovou adresou:\n\n$2\n\n{{PLURAL:$3|Platnosť tohto dočasného hesla vyprší|Platnosť týchto dočasných hesiel vyprší}} o {{PLURAL:$5|jeden deň|$5 dni|$5 dní}}.\nMali by ste sa prihlásiť teraz a zvoliť nové heslo. Ak túto žiadosť podal niekto iný alebo\nak ste si spomenuli svoje pôvodné heslo a už ho chcete zmeniť, môžete túto správu\nignorovať a ďalej používať vaše staré heslo.",
-       "passwordreset-emailelement": "Používateľské meno: $1\nDočasné heslo:$2",
+       "passwordreset-emailelement": "Používateľské meno: \n$1\n\nDočasné heslo:\n$2",
        "passwordreset-emailsent": "Email s novým heslom bol odoslaný.",
        "passwordreset-emailsent-capture": "Bol odoslaný email s novým heslom, ktorý je zobrazený nižšie.",
        "passwordreset-emailerror-capture": "Bol odoslaný email s novým heslom, ktorý je zobrazený nižšie, ale nepodarilo sa ho odoslať {{GENDER:$2|používateľovi}}: $1",
        "emailuser": "E-mail tomuto používateľovi",
        "emailuser-title-target": "E-mail {{GENDER:$1|tomuto používateľovi|tejto používateľke}}",
        "emailuser-title-notarget": "E-mail používateľovi",
-       "emailpage": "E-mail používateľovi",
        "emailpagetext": "Pomocou nasledovného formulára môžete {{GENDER:$1|tomuto používateľovi|tejto používateľke}} poslať e-mailovú správu.\nMailová adresa, ktorú ste zadali vo svojich [[Special:Preferences|nastaveniach]] sa zobrazí ako adresa odosielateľa mailu, aby vám mohol príjemca priamo odpovedať.",
        "defemailsubject": "email {{GRAMMAR:genitív|{{SITENAME}}}} od používateľa „$1“",
        "usermaildisabled": "Používateľ má vypnuté používanie emailu",
        "api-error-badtoken": "Vnútorná chyba: Zlý token.",
        "api-error-copyuploaddisabled": "Nahrávanie z URL je na tomto serveri zakázané.",
        "api-error-duplicate": "{{PLURAL:$1|[$2 ďalší súbor]|[$2 ďalšie súbory]}} s rovnakým obsahom už na tejto wiki existujú",
-       "api-error-duplicate-archive": "{{PLURAL:$1|[$2 ďalší súbor]|[$2 ďalšie súbory]}} s rovnakým obsahom už na tejto wiki existoval, ale {{PLURAL:$1|bol zmazaný|boli zmazané}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Duplicitný súbor, ktorý už bol zmazaný|Duplicitné súbory, ktoré už boli zmazané}}",
-       "api-error-duplicate-popup-title": "Duplikovať {{PLURAL:$1|súbor|súbory}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|ďalší súbor|ďalšie súbory}} s rovnakým obsahom už na tejto wiki existoval, ale {{PLURAL:$1|bol zmazaný|boli zmazané}}.",
        "api-error-empty-file": "Súbor, ktorý ste poslali bol prázdny.",
        "api-error-emptypage": "Vytváranie nových, prázdnych stránok nie je dovolené.",
        "api-error-fetchfileerror": "Vnútorná chyba: Niečo pokazilo počas sťahovania súboru.",
index 37b4b30..be35f72 100644 (file)
        "nstab-template": "Predloga",
        "nstab-help": "Pomoč",
        "nstab-category": "Kategorija",
+       "mainpage-nstab": "Glavna stran",
        "nosuchaction": "Tako dejanje ne obstaja",
        "nosuchactiontext": "Dejanje, ki ga označuje spletni naslov, je napačno.\nMorda ste se pri naslovu zatipkali ali pa ste sledili napačni povezavi.\nMorda ste odkrili hrošča v programski opremi {{GRAMMAR:genitive|{{SITENAME}}}}.",
        "nosuchspecialpage": "Zahtevana posebna stran ne obstaja",
        "passwordreset-emailtitle": "Podrobnosti računa na {{SITENAME}}",
        "passwordreset-emailtext-ip": "Nekdo (verjetno vi, z IP-naslova $1) je zahteval ponastavitev vašega\ngesla na {{SITENAME}} ($4). S tem e-poštnim naslovom\n{{PLURAL:$3|je povezan naslednji uporabniški račun|sta povezana naslednja uporabniška računa|so povezani naslednji uporabniški računi}}:\n\n$2\n\n{{PLURAL:$3|Začasno geslo bo poteklo|Začasni gesli bosta potekli|Začasna gesla bodo potekla}} v {{PLURAL:$5|enem dnevu|$5 dneh}}.\nPrijavite se in izberite novo geslo. Če je zahtevo podal\nnekdo drug ali pa ste se spomnili svojega prvotnega gesla in ga več\nne želite spremeniti, lahko to sporočilo prezrete in nadaljujete z uporabo\nsvojega starega gesla.",
        "passwordreset-emailtext-user": "Uporabnik $1 na strani {{SITENAME}} je zahteval ponastavitev vašega gesla na {{SITENAME}}\n($4). S tem e-poštnim naslovom {{PLURAL:$3|je povezan naslednji uporabniški račun|sta povezana naslednja uporabniška računa|so povezani naslednji uporabniški računi}}:\n\n$2\n\n{{PLURAL:$3|Začasno geslo bo poteklo|Začasni gesli bosta potekli|Začasna gesla bodo potekla}} v {{PLURAL:$5|enem dnevu|$5 dneh}}.\nPrijavite se in izberite novo geslo sedaj. Če je zahtevo podal\nnekdo drug ali pa ste se spomnili svojega prvotnega gesla in ga več\nne želite spremeniti, lahko to sporočilo prezrete in nadaljujete z uporabo\nsvojega starega gesla.",
-       "passwordreset-emailelement": "Uporabniško ime: $1\nZačasno geslo: $2",
+       "passwordreset-emailelement": "Uporabniško ime: \n$1\n\nZačasno geslo: \n$2",
        "passwordreset-emailsent": "Poslali smo e-pošto za postavitev gesla.",
        "passwordreset-emailsent-capture": "Poslali smo e-pošto za ponastavitev gesla, ki je prikazana spodaj.",
        "passwordreset-emailerror-capture": "Ustvarili smo e-pošto za ponastavitev gesla, ki je prikazana spodaj, vendar pa pošiljanje {{GENDER:$2|uporabniku|uporabnici}} ni uspelo: $1",
        "changeemail-password": "Vaše geslo za {{GRAMMAR:tožilnik|{{SITENAME}}}}:",
        "changeemail-submit": "Spremeni e-naslov",
        "changeemail-throttled": "Izvedli ste preveč poskusov prijave.\nProsimo, počakajte $1, preden poskusite znova.",
+       "changeemail-nochange": "Prosimo, vnesite drugačen nov e-poštni naslov.",
        "resettokens": "Ponastavitev žetonov",
        "resettokens-text": "Žetone lahko ponastavite, kar omogoča dostop do nekaterih zasebnih podatkov, povezanih z vašim računom.\n\nTo storite, če ste po nesreči žetone z nekom delili, ali če je bil vaš račun ogrožen.",
        "resettokens-no-tokens": "Ni nobenih žetonov za ponastavitev.",
        "permissionserrorstext-withaction": "Za $2 zaradi {{PLURAL:$1|naslednjega razloga|naslednjih razlogov}} nimate dovoljenja:",
        "recreate-moveddeleted-warn": "'''Opozorilo: Pišete stran, ki je bila nekoč že izbrisana.'''\n\nPremislite preden nadaljujete s pisanjem, morda bo stran zaradi istih razlogov ponovno odstranjena.\nSpodaj je prikazan dnevnik brisanja in prestavljanja:",
        "moveddeleted-notice": "Stran je bila izbrisana.\nSpodaj sta za sklicevanje na razpolago dnevnik brisanja in dnevnik prestavljanja strani.",
+       "moveddeleted-notice-recent": "Oprostite, stran je bila nedavno izbrisana (v zadnjih 24 urah).\nDnevnik brisanja in prestavljanj strani je naveden spodaj.",
        "log-fulllog": "Ogled celotnih dnevniških zapiskov",
        "edit-hook-aborted": "Urejanje je bilo brez obrazložitve prekinjeno zaradi neznane napake.",
        "edit-gone-missing": "Strani ni mogoče posodobiti.\nIzgleda, da je bila izbrisana.",
        "api-error-badaccess-groups": "Nalaganje datotek na ta wiki vam ni dovoljeno.",
        "api-error-badtoken": "Notranja napaka: slab žeton.",
        "api-error-copyuploaddisabled": "Nalaganje preko URL je na tem strežniku onemogočeno.",
-       "api-error-duplicate": "Na strani že {{PLURAL:$1|obstaja [$2 druga datoteka]|obstajata [$2 drugi datoteki]|obstajajo [$2 druge datoteke]|obstaja [$2 drugih datotek]}} z enako vsebino",
-       "api-error-duplicate-archive": "Na strani {{PLURAL:$1|je že bila [$2 druga datoteka]|sta že bili [$2 drugi datoteki]|so že bile [$2 nekatere druge datoteke]}} z enako vsebino, vendar {{PLURAL:$1|je bila izbrisana|sta bili izbrisani|so bile izbrisane}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Podvojena datoteka, ki je že bila izbrisana|Podvojeni datoteki, ki sta že bili izbrisani|Podvojene datoteke, ki so že bile izbrisane}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Podvojena datoteka|Podvojeni datoteki|Podvojene datoteke}}",
+       "api-error-duplicate": "Na strani že {{PLURAL:$1|obstaja druga datoteka|obstajata drugi datoteki|obstajajo druge datoteke}} z enako vsebino.",
+       "api-error-duplicate-archive": "Na strani {{PLURAL:$1|je že bila druga datoteka|sta že bili drugi datoteki|so že bile nekatere druge datoteke}} z enako vsebino, vendar {{PLURAL:$1|je bila izbrisana|sta bili izbrisani|so bile izbrisane}}.",
        "api-error-empty-file": "Poslana datoteka je prazna.",
        "api-error-emptypage": "Ustvarjanje novih, praznih strani ni dovoljeno.",
        "api-error-fetchfileerror": "Notranja napaka: pri pridobivanju datoteke je nekaj šlo narobe.",
index 97f3641..1e4efde 100644 (file)
        "resetpass-temp-password": "Ereysir ku meel gaar ah:",
        "passwordreset": "Bedel ereysirka",
        "passwordreset-text-many": "{{PLURAL:$1|Gali mid ka mid ah macluumaadkaada asaasiga ah si erey sirtaada usoo ceshato.}}",
-       "passwordreset-legend": "Bedel ereysirka",
        "passwordreset-username": "Magaca gudagalka",
        "passwordreset-email": "Ciwaanka e-mailka",
        "passwordreset-emailtext-ip": "(Qof laga yaabo in ee tahay adi, oo ka socdo ciwaanka IP'ka $1)  ayaa  codsaday xasuus faah faahin akoonkaada {{SITENAME}}\n($4). Isticmaaladaan soo socota {{PLURAL:$3|akoonkooda waxee|akoonkooda waxee}} la xiriiraan ciwaankaan e-mailka ah:\n\n$2\n\n{{PLURAL:$3|eraysirkaan kumeel gaarka ah|Eraysiryadaan kumeel gaarka ah}} waxay dhacaayaan {{PLURAL:$5|hal maalin|$5 maalmood}}.\nWaa in aad gudaha gashaa oo e-mail cusub doorataa hadda. Hadii ee qof kale codsigaan sameysay, ama hadii aad soo xasuusatay eraysirkaagii hore, oo aadna u baahneen in aad badashid, iska ilaaw fariintaan siina isticmaal eraysirkaagii duqi ahaa.",
        "passwordreset-emailtext-user": "Isticmaale $1 ee {{SITENAME}} wuxuu codsaday xasuus faah faahin akoonkaada {{SITENAME}}\n($4). Isticmaaladaan soo socota {{PLURAL:$3|akoonkooda waxee|akoonkooda waxee}} la xiriiraan ciwaankaan e-mailka ah:\n\n$2\n\n{{PLURAL:$3|eraysirkaan kumeel gaarka ah|Eraysiryadaan kumeel gaarka ah}} waxay dhacaayaan {{PLURAL:$5|hal maalin|$5 maalmood}}.\nWaa in aad gudaha gashaa oo e-mail cusub doorataa hadda. Hadii ee qof kale codsigaan sameysay, ama hadii aad soo xasuusatay eraysirkaagii hore, oo aadna u baahneen in aad badashid, iska ilaaw fariintaan siina isticmaal eraysirkaagii duqi ahaa.",
-       "passwordreset-emailelement": "Magaca gudagalka: $1\nEreysirka kumeelgaarka ah: $2",
+       "passwordreset-emailelement": "Magaca gudagalka: \n$1\n\nEreysirka kumeelgaarka ah: \n$2",
        "passwordreset-emailerror-capture": "E-mail xasuus ah ayaa la sameeyay, oo ka arki kartid hoosta,laakiin wuxuu ku guul dareestay in isticmaalaha loo diro: $1",
        "changeemail": "Bedel ciwaanka E-mailka",
        "changeemail-oldemail": "Ciwaanka e-mailka hadda jiro:",
        "mailnologin": "Ma'jiro cinwaan wax lagu diro",
        "mailnologintext": "Waa in aad [[Special:UserLogin|gudaha ku jirtaa]]\nkuna haysatid E-boosto sax ah [[Special:Preferences|dooqyadaada]],\nsi aad ugu dirto E-boosto isticmaalayaasha kale.",
        "emailuser": "E-mail u dir isticmaalahaan",
-       "emailpage": "Isticmaalaha e-mailka",
        "noemailtitle": "Malahan cinwaan E-mail",
        "emailfrom": "Ka socoto:",
        "emailto": "Ku:",
index 5813cfe..30acb93 100644 (file)
                        "Kosovastar"
                ]
        },
-       "tog-underline": "Nënvizizimi i lidhjes:",
-       "tog-hideminor": "Fsheh redaktimet e vogla nga ndryshimet e fundit",
-       "tog-hidepatrolled": "Fshih redaktimet e vrojtuara në ndryshimet e fundit",
-       "tog-newpageshidepatrolled": "Fshih faqet e vrojtuara nga lista e faqeve të reja",
+       "tog-underline": "Nënvizimi i lidhjes:",
+       "tog-hideminor": "Fshih redaktimet e vogla nga ndryshimet e fundit",
+       "tog-hidepatrolled": "Fshih redaktimet e paturlluara nga ndryshimet e fundit",
+       "tog-newpageshidepatrolled": "Fshih faqet e patrulluara nga lista e faqeve të reja",
        "tog-extendwatchlist": "Zgjero listën e faqeve të vëzhguara që t'i tregojë të gjitha ndryshimet, jo vetëm më të fundit.",
        "tog-usenewrc": "Grupo ndryshimet sipas faqeve në ndryshime së fundmi dhe listën mbikqyrëse (kërkon JavaScript)",
        "tog-numberheadings": "Numëro automatikish titujt",
-       "tog-showtoolbar": "Trego mjetet e redaktimit (kërkon JavaScript)",
-       "tog-editondblclick": "Redakto faqet me dopio-klik (kërkon JavaScript)",
-       "tog-editsectiononrightclick": "Lejo redaktimin e seksioneve duke klikuar me të djathtën mbi titullin e seksionit (kërkon JavaScript)",
+       "tog-showtoolbar": "Shfaq shiritin e veglave të redaktorit",
+       "tog-editondblclick": "Redakto faqe në klikim të dyfishtë",
+       "tog-editsectiononrightclick": "Aktivizo redaktimin e seksioneve duke klikuar me të djathtën mbi titullin e seksionit",
        "tog-watchcreations": "Shtoi faqet e krijuara dhe skedat e ngarkuara prej meje tek lista e faqeve nën mbikqyrje",
        "tog-watchdefault": "Shto faqet dhe skedat e redaktuara prej meje tek lista e faqeve nën mbikqyrje",
        "tog-watchmoves": "Shto faqet dhe skedat e zhvendosura prej meje tek lista e faqeve nën mbikqyrje",
        "november-gen": "nëntor",
        "december-gen": "dhjetor",
        "jan": "Jan",
-       "feb": "Shku",
+       "feb": "Shk",
        "mar": "Mar",
        "apr": "Pri",
        "may": "Maj",
        "jun": "Qer",
        "jul": "Korr",
        "aug": "Gush",
-       "sep": "Shta",
+       "sep": "Sht",
        "oct": "Tet",
        "nov": "Nën",
        "dec": "Dhje",
        "november-date": "$1 nëntor",
        "december-date": "$1 dhjetor",
        "pagecategories": "{{PLURAL:$1|Kategoria|Kategoritë}}",
-       "category_header": "Artikuj në kategorinë \"$1\"",
-       "subcategories": "Nën-kategori",
-       "category-media-header": "Skeda në kategorinë \"$1\"",
-       "category-empty": "''Kjo kategori aktualisht nuk përmban asnjë faqe apo media.''",
+       "category_header": "Faqet në kategorinë \"$1\"",
+       "subcategories": "Nënkategoritë",
+       "category-media-header": "Media në kategorinë \"$1\"",
+       "category-empty": "<em>Kjo kategori aktualisht nuk përmban asnjë faqe apo media.</em>",
        "hidden-categories": "{{PLURAL:$1|Kategori e fshehur|Kategori të fshehura}}",
        "hidden-category-category": "Kategori të fshehura",
        "category-subcat-count": "{{PLURAL:$2|Kjo kategori ka vetëm këtë nën-kategori.|Kjo kategori ka {{PLURAL:$1|këtë nën-kategori|$1 këto nën-kategori}}, nga $2 gjithësej.}}",
        "noindex-category": "Faqe jo të indeksuara",
        "broken-file-category": "Faqet me lidhjet file thyer",
        "about": "Rreth",
-       "article": "Artikulli",
+       "article": "Faqja e përmbajtjes",
        "newwindow": "(hapet në një dritare të re)",
        "cancel": "Anulo",
        "moredotdotdot": "Më shumë...",
        "morenotlisted": "Kjo listë nuk është e plotë.",
        "mypage": "Faqja",
-       "mytalk": "Diskutimet",
+       "mytalk": "Diskuto",
        "anontalk": "Diskutimet për këtë IP",
-       "navigation": "Shfleto",
+       "navigation": "Navigimi",
        "and": "&#32;dhe",
        "qbfind": "Gjeni",
        "qbbrowse": "Shfletoni",
-       "qbedit": "Redaktoni",
+       "qbedit": "Redakto",
        "qbpageoptions": "Kjo faqe",
        "qbmyoptions": "Faqet e mia",
-       "faq": "Pyetje që bëhen shpesh",
-       "faqpage": "Projekt: Pyetje që bëhen shpesh",
+       "faq": "Pyetje të shpeshta",
+       "faqpage": "Project: Pyetje të shpeshta",
        "actions": "Veprimet",
        "namespaces": "Hapsirat e emrit",
-       "variants": "Variante",
-       "navigation-heading": "Menuja e navigimit",
+       "variants": "Variantat",
+       "navigation-heading": "Menyja e navigimit",
        "errorpagetitle": "Gabim",
        "returnto": "Kthehuni tek $1",
        "tagline": "Nga {{SITENAME}}",
        "history": "Historiku i faqes",
        "history_short": "Historiku",
        "updatedmarker": "përditësuar që nga vizita ime e fundit",
-       "printableversion": "Version për printer",
+       "printableversion": "Versioni i printueshëm",
        "permalink": "Lidhje e përhershme",
        "print": "Printo",
        "view": "Shiko",
        "view-foreign": "Pamja <span class=\"notranslate\" translate=\"asnjë\">$1</span>",
        "edit": "Redakto",
-       "edit-local": "Modifiko burimin lokalt të përshkrimit",
+       "edit-local": "Redakto përshkrimin lokal",
        "create": "Krijo",
        "create-local": "Shtonipërshkrimin lokal",
        "editthispage": "Redakto këtë faqe",
-       "create-this-page": "Krijoje këtë faqe",
-       "delete": "Grise",
+       "create-this-page": "Krijo këtë faqe",
+       "delete": "Fshi",
        "deletethispage": "Grise këtë faqe",
        "undeletethispage": "Rikthe faqen",
        "undelete_short": "Anullo fshirjen {{PLURAL:$1|një redaktim|$1 redaktime}}",
        "viewtalkpage": "Shiko diskutimet",
        "otherlanguages": "Në gjuhë të tjera",
        "redirectedfrom": "(Përcjellë nga $1)",
-       "redirectpagesub": "Faqe përcjellëse",
-       "redirectto": "Përcjellim për tek:",
+       "redirectpagesub": "Ridrejto faqen",
+       "redirectto": "Ridrejto tek:",
        "lastmodifiedat": "Kjo faqe është ndryshuar për herë te fundit më $1, në orën $2.",
        "viewcount": "Kjo faqe është shikuar {{PLURAL:$1|një|$1 herë}} .",
        "protectedpage": "Faqe e mbrojtur",
        "nstab-template": "Stampa",
        "nstab-help": "Ndihmë",
        "nstab-category": "Kategoria",
+       "mainpage-nstab": "Faqja kryesore",
        "nosuchaction": "Nuk ekziston ky veprim",
        "nosuchactiontext": "Veprimi i specifikuar nga URL është i pavlefshëm.\nJu mund të keni bërë një gabim në shkrimin e URL-së, ose keni ndjekur një lidhje të pasaktë.\nKjo mund të vijë edhe si rezultat i një gabimi në programin e përdorur nga {{SITENAME}}.",
        "nosuchspecialpage": "Nuk ekziston kjo faqe speciale",
        "badtitle": "Titull i pasaktë",
        "badtitletext": "Titulli i faqes që kërkuat nuk ishte i saktë, ishte bosh, ose ishte një titull ndër-gjuhësor/inter-wiki me lidhje të pasaktë.\nMund të përmbajë një ose më shumë germa, të cilat nuk mund të përdoren në tituj.",
        "title-invalid-empty": "Titulli i faqes së kërkuar është bosh ose përmban vetëm emrin e një hapësire.",
-       "title-invalid-interwiki": "Titulli përmban një lidhje ndërwiki",
+       "title-invalid-utf8": "Titulli i faqes së kërkuar përmban një varg të pavlefshëm UTF-8.",
+       "title-invalid-interwiki": "Titulli i faqes së kërkuar përmban një lidhje interwiki që nuk mund të përdoret në tituj.",
        "title-invalid-talk-namespace": "Titulli i faqes së kërkuar i referohet një faqeje diskutimi që nuk mund të ekzistojë.",
        "title-invalid-characters": "Titulli i faqes së kërkuar përmban karaktere të pavlefshme: \"$1\".",
+       "title-invalid-relative": "Titulli ka shteg relativ. Titujt relativ të faqes (./, ../) janë të pavlefshëm, për shkak se ata shpesh do të jenë të pakapshëm kur trajtohen nga shfletuesi i përdoruesit.",
+       "title-invalid-magic-tilde": "Titulli i faqes përmban tildë të pavlefshme magjike (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Titulli i faqes së kërkuar është shumë i gjatë. Duhet të jetë jo më shumë se $1 {{PLURAL:$1|byte|byte}} në kodimin UTF-8.",
+       "title-invalid-leading-colon": "Titulli i faqes së kërkuar përmban dy pika (:) të pavlefshme në fillim.",
        "perfcached": "nformacioni i mëposhtëm është kopje e ruajtur dhe mund të mos jetë i përditësuar. E shumta  {{PLURAL:$1|një rezultat është|$1 rezultate janë}} ruajtur në kopje.",
        "perfcachedts": "Informacioni i mëposhtëm është një kopje e rifreskuar më $1. E shumta  {{PLURAL:$4|një rezultat është|$4 rezultate janë}} ruajtur në kopje.",
        "querypage-no-updates": "Përditësimet për këtë faqe për momentin janë të ç'aktivizuara.\nKëtu informacioni nuk do të jetë i përditësuar.",
        "actionthrottled": "Veprim u ndalua",
        "actionthrottledtext": "Si masë sigurie anti-spam, është e ndaluar kryerja e shpeshtë e një veprimi brenda një hapësire kohore shumë të shkurtër. Ju kryet shumë herë të njëjtin veprim brenda një kohe shumë të shkurtër.\nJu lutemi, provojeni përsëri pas disa minutash.",
        "protectedpagetext": "Kjo faqe është e mbrojtur për të parandaluar redaktimi apo veprime të tjera.",
-       "viewsourcetext": "Ju mund të shikoni dhe kopjoni tekstin e kësaj faqeje:",
-       "viewyourtext": "Ju mund të shikoni dhe të kopjoni tekstin e '''ndryshimeve tuaja''' tek kjo faqe:",
+       "viewsourcetext": "Ju mund të shikoni dhe kopjoni tekstin burimor të kësaj faqe.",
+       "viewyourtext": "Ju mund të shikoni dhe kopjoni tekstin burimor të <strong>redaktimeve tuaja</strong> në këtë faqe.",
        "protectedinterface": "Kjo faqe përmban tekstin e dritares së programit, për këtë arsye mbrohet për të shmangur abuzimet.",
        "editinginterface": "'''Kujdes:''' Po redaktoni një faqe që përdoret për tekstin dritares së programit. \nNdryshimet në këtë faqe do të ndikojnë pamjen e dritares për përdoruesit e tjerë.\nPër përkthime, ju lutem konsideroni përdorimin e [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], projektin e lokalizimit MediaWiki.",
        "translateinterface": "Të shtoni ose të ndryshojë përkthime për të gjitha wikis, ju lutem përdorimin e [//translatewiki.net/ translatewiki.net], MediaWiki lokalizimin e projektit.",
        "nologinlink": "Hapeni",
        "createaccount": "Hap një llogari",
        "gotaccount": "Keni një llogari? '''$1'''.",
-       "gotaccountlink": "Hyni",
+       "gotaccountlink": "Identifikohuni",
        "userlogin-resetlink": "Keni harruar të dhënat tuaja të identifikimit?",
-       "userlogin-resetpassword-link": "Harruat fjalëkalimin",
-       "userlogin-helplink2": "Ndihmoni me hyrjen në",
+       "userlogin-resetpassword-link": "Keni harruar fjalëkalimin?",
+       "userlogin-helplink2": "Ndihmë rreth identifikimit",
        "userlogin-loggedin": "Ju tashmë janë të regjistruar si <span class=\"notranslate\" translate=\"asnjë\">{{GJINIA:$1|</span><span class=\"notranslate\" translate=\"asnjë\">$1</span>}}.\nPërdorim formularin më poshtë që të hyni në si një përdorues tjetër.",
        "userlogin-createanother": "Krijo një llogari tjeter",
        "createacct-emailrequired": "Posta elektronike",
        "createacct-benefit-heading": "{{SITENAME}} është bërë nga njerëz si ju.",
        "createacct-benefit-body1": "{{PLURAL:$1|redaktim|redaktime}}",
        "createacct-benefit-body2": "{{PLURAL:$1|faqe|faqe}}",
-       "createacct-benefit-body3": "{{PLURAL:$1|kontribues}} kohët e fundit",
+       "createacct-benefit-body3": "{{PLURAL:$1|kontribuesi i|kontribuesit e}} fundit",
        "badretype": "Fjalëkalimet nuk janë njësoj.",
        "userexists": "Emri i përdoruesit që kërkuat është në përdorim. \nZgjidhni një emër tjetër.",
        "loginerror": "Gabim gjatë identifikimit",
        "passwordreset-emailtitle": "Detajet e llogarisë në {{SITENAME}}",
        "passwordreset-emailtext-ip": "Dikush (ndoshta ju, nga IP adresa $1) kërkoi një kujtesë për \ndetajet e llogarisë suaj {{SITENAME}} ($4).Përdoruesi në vijim {{PLURAL:$3|llogari është|llogaritë janë}} të lidhur me këtë postë elektronike:\n\n$2\n\n{{PLURAL:$3|Ky fjalëkalim i përkohshëm|Këto fjalëkalime të përkohshme}} do të përfundojë për {{PLURAL:$5|një ditë|$5 ditë}}.\n\nJu duhet të kyçeni dhe të zgjidhni një fjalëkalim të ri tani. Nëse dikush tjetër e ka bërë këtë kërkesës, ose në qoftë se ju mbani mend fjalëkalimin tuaj origjinal, dhe ju nuk dëshirojni të ndryshoni atë, ju mund të injoroni këtë mesazh dhe do të vazhdoni përdorimin e fjalëkalimit tuaj të vjetër.",
        "passwordreset-emailtext-user": "Përdoruesi  $1 në {{SITENAME }} ka kërkuar një kujtesë për të dhënat e llogarisë suaj për {{SITENAME }} ($4). Përdoruesi në vijim {{PLURAL:$3 | llogaria është | llogaritë janë}} të lidhur me këtë postë elektronike: \n\n$2\n\n{{PLURAL:$3 | Ky fjalëkalim i përkohshëm | Këto fjalëkalime të përkohshme}} do të përfundojë në {{PLURAL:$5 | një ditë | $5 ditë}}.\nJu duhet të kyçeni dhe të zgjidhni një fjalëkalim të ri tani. Nëse dikush tjetër e ka bërë këtë kërkesës, ose në qoftë se ju mbani mend fjalëkalimin tuaj origjinal, dhe ju nuk dëshirojni të ndryshoni atë, ju mund të injoroni këtë mesazh dhe do të vazhdoni përdorimin e fjalëkalimit tuaj të vjetër.",
-       "passwordreset-emailelement": "Nofka: $1\nFjalëkalimi i përkohshëm: $2",
+       "passwordreset-emailelement": "Emri i përdoruesit: \n$1\n\nFjalëkalimi i përkohshëm: \n$2",
        "passwordreset-emailsent": "Një email për rivendosjen e fjalëkalimit është dërguar.",
        "passwordreset-emailsent-capture": "Një email për rivendosjen e fjalëkalimit është dërguar, i cili tregohet më poshtë.",
        "passwordreset-emailerror-capture": "U dërgua një e-mail kujtesë, i cili tregohet më poshtë, por dërgesa për tek përdoruesi qe e pamundur: $1",
        "right-override-export-depth": "Eksoprto faqet duke përfshirë e lidhura deri në një thellësi prej 5",
        "right-sendemail": "Dërgo e-mail tek përdoruesit e tjerë",
        "right-passwordreset": "Shiko e-mail-et e rivendosjes së fjalëkalimit",
+       "right-managechangetags": "Krijoni dhe fshini [[Special:Tags|tags]] nga baza e të dhënave",
+       "right-applychangetags": "Aplikoni [[Special:Tags|tags]] së bashku me ndryshimet",
+       "right-changetags": "Shtoni dhe të largoni në mënyrë arbitrare [[Special:Tags|tags]] në rishikimet individuale dhe regjistrimet e historikut",
        "newuserlogpage": "Regjistri i llogarive",
        "newuserlogpagetext": "Ky është një regjistër i llogarive të fundit që janë hapur",
        "rightslog": "Regjistri i privilegjeve të përdoruesit",
        "action-createpage": "krijo faqe",
        "action-createtalk": "krijo faqe diskutimi",
        "action-createaccount": "krijo këtë llogari përdoruesi",
+       "action-history": "shiko historinë e kësaj faqeje",
        "action-minoredit": "shëno këtë redaktim si të vogël",
        "action-move": "zhvendos këtë faqe",
        "action-move-subpages": "zhvendos këtë faqe dhe nënfaqet e saj",
        "action-move-rootuserpages": "lëviz rrënjët e faqeve të përdoruesve",
+       "action-move-categorypages": "lëviz faqet kategori",
        "action-movefile": "lëviz këtë skedë",
        "action-upload": "ngarko këtë skedë",
        "action-reupload": "rishkruaj këtë skedë ekzistuese",
        "action-block": "blloko përdoruesin",
        "action-protect": "ndrysho nivelin e mbrojtjes për këtë faqe",
        "action-rollback": "ritkthen shpejt redaktimet e përdoruesit të fundit që redaktoi një faqe të veçantë",
-       "action-import": "importo këtë faqe nga një wiki tjetër",
-       "action-importupload": "importo këtë faqe nga një ngarkim i një skedari",
+       "action-import": "importo faqe nga një wiki tjetër",
+       "action-importupload": "Importo faqe nga një ngarkim skede",
        "action-patrol": "shëno redaktimin e tjerëve si të patrulluar",
        "action-autopatrol": "shëno redaktimet tua si të patrulluara",
        "action-unwatchedpages": "shiko listën e faqeve të pa vrojtuara",
        "action-userrights-interwiki": "ndrysho të drejtat e përdoruesve në wiki-t tjera",
        "action-siteadmin": "mbyll ose hap bazën e të dhënave",
        "action-sendemail": "dërgo e-maile",
+       "action-editmywatchlist": "redaktoni listën tuaj mbikqyrëse",
+       "action-viewmywatchlist": "shikoni listën tuaj mbikqyrëse",
        "nchanges": "$1 {{PLURAL:$1|ndryshim|ndryshime}}",
+       "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|që nga vizita e fundit}}",
        "enhancedrc-history": "historia",
        "recentchanges": "Ndryshimet e fundit",
        "recentchanges-legend": "Zgjedhjet e ndryshimeve momentale",
        "recentchanges-label-plusminus": "Madhësia e faqes ndryshoi me këtë numër bajtësh",
        "recentchanges-legend-heading": "'''Legjenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (shiko gjithashtu [[Special:NewPages|listën e faqeve të reja]])",
-       "rcnotefrom": "Më poshtë janë ndryshime së fundmi nga <b>$2</b> (treguar deri në <b>$1</b>).",
+       "rcnotefrom": "Më poshtë {{PLURAL:$5|është shfaqur ndryshimi|janë shfaqur ndryshimet}} që nga <strong>$3, $4</strong> (deri në <strong>$1</strong>).",
        "rclistfrom": "Tregon ndryshime së fundmi duke filluar nga $3 $2",
        "rcshowhideminor": "$1 redaktimet e vogla",
        "rcshowhideminor-show": "Shfaq",
        "rcshowhidebots-show": "Shfaq",
        "rcshowhidebots-hide": "Fshih",
        "rcshowhideliu": "$1 përdorues të regjistruar",
+       "rcshowhideliu-show": "Shfaq",
        "rcshowhideliu-hide": "Fshih",
        "rcshowhideanons": "$1 përdoruesit anonim",
        "rcshowhideanons-show": "Shfaq",
        "rcshowhideanons-hide": "Fshih",
        "rcshowhidepatr": "$1 redaktime të patrulluara",
+       "rcshowhidepatr-show": "Shfaq",
+       "rcshowhidepatr-hide": "Fshih",
        "rcshowhidemine": "$1 redaktimet e mia",
        "rcshowhidemine-show": "Shfaq",
        "rcshowhidemine-hide": "Fshih",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[$1 duke u mbikqyrur nga {{PLURAL:$1|përdorues|përdorues}}]",
        "rc_categories": "Kufizimi i kategorive (të ndara me \"|\")",
-       "rc_categories_any": "Të gjitha",
+       "rc_categories_any": "Ndonjë nga të zgjedhurat",
        "rc-change-size-new": "$1 {{PLURAL:$1|bajt|bajtë}} pas ndryshimit",
        "newsectionsummary": "/* $1 */ seksion i ri",
        "rc-enhanced-expand": "Trego detajet",
        "reuploaddesc": "Kthehu tek formulari i dhënies.",
        "upload-tryagain": "Dërgo përshkrimin e modifikuar të skedarit",
        "uploadnologin": "Nuk keni hyrë brënda",
-       "uploadnologintext": "Duhet të keni [[Special:UserLogin|hyrë brenda]] për të dhënë skeda.",
+       "uploadnologintext": "Ju lutem $1 ngarkoni skedat.",
        "upload_directory_missing": "Direktoriumi ($1) i ngarkimit po mungon dhe nuk është arritur që të krijohet nga webserveri.",
        "upload_directory_read_only": "Skedari i ngarkimit ($1) nuk mund të shkruhet nga shërbyesi.",
        "uploaderror": "Gabim dhënie",
        "sqlite-no-fts": "$1 pa mbështetje të kërkimit me teskt të plotë",
        "logentry-delete-delete": "$1 {{GENDER:$2|grisi}} faqen $3",
        "logentry-delete-restore": "$1 {{GENDER:$2|riktheu}} faqen $3",
-       "logentry-delete-event": "$1 {{GENDER:$2|ndryshoi}} dukshmërinë e {{PLURAL:$5|e një ngjarjeje regjistri|$5 ngjarjeve regjitri}} në $3: $4",
+       "logentry-delete-event": "$1 {{GENDER:$2|ndryshoi}} dukshmërinë e {{PLURAL:$5|e një ngjarjeje regjistri|$5 ngjarjeve regjistri}} në $3: $4",
        "logentry-delete-revision": "$1 {{GENDER:$2|ndryshoi}} dukshmërinë e {{PLURAL:$5|një rishikimi|$5 rishikimeve}} në faqen $3: $4",
        "logentry-delete-event-legacy": "$1 {{GENDER:$2|ndryshoi}} dukshmërinë e ngjarjeve të regjistit në $3",
-       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|ndryshpi}} dukshmërinë e rishikimeve në faqen $3",
+       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|ndryshoi}} dukshmërinë e rishikimeve në faqen $3",
        "logentry-suppress-delete": "$1 {{GENDER:$2|shtypi}} faqen $3",
        "logentry-suppress-event": "$1 në mënyrë sekrete ndryshoi dukshmërinë e {{PLURAL:$5|një ngjarje regjistri|$5 ngjarjeve regjistri}} në $3: $4",
        "logentry-suppress-revision": "$1 në mënyrë sekrete ndryshoi dukshmërinë e {{PLURAL:$5|një versioni|$5 versioneve}} në $3: $4",
        "api-error-badtoken": "Gabim i brendshëm: Shenjë e keqe.",
        "api-error-copyuploaddisabled": "Ngarkimi nga URL-ja është çaktivizuar në këtë server.",
        "api-error-duplicate": "{{PLURAL:$1|Ekziston [$2 një skedë tjetër]|Ekzistojnë [$2 disa skeda të tjera]}} me të njëjtën përmbajtje.",
-       "api-error-duplicate-archive": "{{Ekzistonte [$2 një skedë tjetër]|Ekzistonin [$2 disa skeda të tjera]}} me të njëjtën përmbajtje, por {{PLURAL:$1|u gris|u grisën}}.",
-       "api-error-duplicate-archive-popup-title": "Dublo {{PLURAL:$1|skedë|skeda}} që janë grisur tashmë",
-       "api-error-duplicate-popup-title": "Dublo {{PLURAL:$1|skedë|skeda}}",
+       "api-error-duplicate-archive": "{{Ekzistonte një skedë tjetër|Ekzistonin disa skeda të tjera}} me të njëjtën përmbajtje, por {{PLURAL:$1|u gris|u grisën}}.",
        "api-error-empty-file": "Skeda që paraqitët ishte bosh.",
        "api-error-emptypage": "Nuk lejohet krijimi i faqeve të reja bosh.",
        "api-error-fetchfileerror": "Gabim i brendshëm: Diçka shkoi keq gjatë marrjes së skedës.",
index b49c0bd..9f9ebe9 100644 (file)
@@ -27,7 +27,8 @@
                        "아라",
                        "Nemo bis",
                        "Aktron",
-                       "Srdjan m"
+                       "Srdjan m",
+                       "Macofe"
                ]
        },
        "tog-underline": "Подвлачење веза:",
        "passwordreset-emailtitle": "Детаљи налога на викију {{SITENAME}}",
        "passwordreset-emailtext-ip": "Неко, вероватно Ви, са ИП адресе $1 је затражио нову лозинку на викију {{SITENAME}} ($4).\nСледећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом е-адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку и наставите користити стару лозинку.",
        "passwordreset-emailtext-user": "{{GENDER:$1|Корисник је затражио|Корисница је затражила}} подсетник о подацима за пријаву на викију {{SITENAME}} ($4).\nСледећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом е-адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку.",
-       "passwordreset-emailelement": "Корисничко име: $1\nПривремена лозинка: $2",
+       "passwordreset-emailelement": "Корисничко име: \n$1\n\nПривремена лозинка: \n$2",
        "passwordreset-emailsent": "Подсетник о лозинци је послат на вашу адресу.",
        "passwordreset-emailsent-capture": "Послат је подсетник преко е-поште (приказан доле).",
        "passwordreset-emailerror-capture": "Е-порука за ресетовање лозинке, приказана испод је послата, али слање {{GENDER:$2|кориснику|корисници}} није успело: $1",
        "columns": "Колона",
        "searchresultshead": "Претрага",
        "stub-threshold": "Праг за обликовање везе као клице ($1):",
+       "stub-threshold-sample-link": "пример",
        "stub-threshold-disabled": "Онемогућено",
        "recentchangesdays": "Број дана у скорашњим изменама:",
        "recentchangesdays-max": "Највише $1 {{PLURAL:$1|дан|дана}}",
        "saveusergroups": "Сачувај корисничке групе",
        "userrights-groupsmember": "Члан:",
        "userrights-groupsmember-auto": "Подразумевано члан и:",
-       "userrights-groups-help": "Можете променити групе којима овај корисник припада.\n* Означена кућица означава да се корисник налази у тој групи.\n* Неозначена кућица означава да се корисник не налази у тој групи.\n* Звездица означава да не можете уклонити групу ако је додате и обратно.",
+       "userrights-groups-help": "Можете променити групе којима овај корисник припада.\n* Означен квадратић означава да се корисник налази у тој групи.\n* Неозначен квадратић означава да се корисник не налази у тој групи.\n* Звездица означава да не можете уклонити групу ако је додате и обратно.",
        "userrights-reason": "Разлог:",
        "userrights-no-interwiki": "Немате овлашћења да мењате корисничка права на другим викијима.",
        "userrights-nodatabase": "База података $1 не постоји или није локална.",
        "markedaspatrollederrortext": "Морате изабрати измену да бисте је означили као патролирану.",
        "markedaspatrollederror-noautopatrol": "Не можете да означите своје измене као патролиране.",
        "markedaspatrollednotify": "Ова измена на страници „$1“ је означена као патролирана.",
-       "markedaspatrollederrornotify": "Означавање ове странице патролираном није успело.",
+       "markedaspatrollederrornotify": "Означавање ове измене патролираном није успело.",
        "patrol-log-page": "Дневник патролирања",
        "patrol-log-header": "Ово је дневник патролираних измена.",
        "log-show-hide-patrol": "$1 дневник патролирања",
        "watchlistedit-raw-done": "Ваш списак надгледања је ажуриран.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1=Додат је један наслов|Додата су $1 наслова|Додато је $1 наслова}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 наслов је уклоњен|Уклоњена су $1 наслова|Уклоњено је $1 наслова}}:",
-       "watchlistedit-clear-title": "Ð\9fÑ\80ажÑ\9aеÑ\9aе Ñ\81пиÑ\81ак надгледања",
+       "watchlistedit-clear-title": "Ð\9fÑ\80ажÑ\9aеÑ\9aе Ñ\81пиÑ\81ка надгледања",
        "watchlistedit-clear-legend": "Испразни списак надгледања",
        "watchlistedit-clear-explain": "Сви наслови ће бити уклоњени из вашег списка надгледања.",
        "watchlistedit-clear-titles": "Наслови:",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|разговор]])",
        "timezone-utc": "UTC",
        "duplicate-defaultsort": "'''Упозорење:''' подразумевани кључ сврставања „$2“ мења некадашњи кључ „$1“.",
+       "duplicate-displaytitle": "<strong>Упозорење:</strong> наслов за приказ „$2“ замениће постојећи „$1“.",
        "version": "Верзија",
        "version-extensions": "Инсталирана проширења",
        "version-skins": "Инсталиране теме",
        "api-error-badtoken": "Унутрашња грешка: неисправан жетон.",
        "api-error-copyuploaddisabled": "Отпремање путем адресе је онемогућено на овом серверу.",
        "api-error-duplicate": "Већ {{PLURAL:$1|постоји [$2 друга датотека]|постоје [$2 друге датотеке]}} с истим садржајем.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Постојала је [$2 друга датотека]|Постојале су [$2 друге датотеке]}} с истим садржајем, али {{PLURAL:$1|је обрисана|су обрисане}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Дуплирана датотека која је већ обрисана|Дуплиране датотеке које су већ обрисане}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Дуплирана датотека|Дуплиране датотеке}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Постојала је друга датотека|Постојале су друге датотеке}} с истим садржајем, али {{PLURAL:$1|је обрисана|су обрисане}}.",
        "api-error-empty-file": "Послата датотека је празна.",
        "api-error-emptypage": "Стварање нових празних страница није дозвољено.",
        "api-error-fetchfileerror": "Унутрашња грешка: дошло је до грешке при добављању датотеке.",
index 3a9c5e9..4d58a29 100644 (file)
@@ -18,7 +18,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Nemo bis",
-                       "Srdjan m"
+                       "Srdjan m",
+                       "Macofe"
                ]
        },
        "tog-underline": "Podvlačenje veza:",
        "passwordreset-emailtitle": "Detalji naloga na vikiju {{SITENAME}}",
        "passwordreset-emailtext-ip": "Neko, verovatno Vi, sa IP adrese $1 je zatražio novu lozinku na vikiju {{SITENAME}} ($4).\nSledeći {{PLURAL:$3|korisnički nalog je povezan|korisnički nalozi su povezani}} s ovom e-adresom:\n\n$2\n\n{{PLURAL:$3|Privremena lozinka ističe|Privremene lozinke ističu}} za {{PLURAL:$5|jedan dan|$5 dana}}.\nPrijavite se i izaberite novu lozinku. Ako je neko drugi zahtevao ovu radnju ili ste se setili lozinke i ne želite da je menjate, zanemarite ovu poruku i nastavite koristiti staru lozinku.",
        "passwordreset-emailtext-user": "{{GENDER:$1|Korisnik je zatražio|Korisnica je zatražila}} podsetnik o podacima za prijavu na vikiju {{SITENAME}} ($4).\nSledeći {{PLURAL:$3|korisnički nalog je povezan|korisnički nalozi su povezani}} s ovom e-adresom:\n\n$2\n\n{{PLURAL:$3|Privremena lozinka ističe|Privremene lozinke ističu}} za {{PLURAL:$5|jedan dan|$5 dana}}.\nPrijavite se i izaberite novu lozinku. Ako je neko drugi zahtevao ovu radnju ili ste se setili lozinke i ne želite da je menjate, zanemarite ovu poruku.",
-       "passwordreset-emailelement": "Korisničko ime: $1\nPrivremena lozinka: $2",
+       "passwordreset-emailelement": "Korisničko ime: \n$1\n\nPrivremena lozinka: \n$2",
        "passwordreset-emailsent": "Podsetnik o lozinci je poslat na vašu adresu.",
        "passwordreset-emailsent-capture": "Poslat je podsetnik preko e-pošte (prikazan dole).",
        "passwordreset-emailerror-capture": "E-poruka za resetovanje lozinke, prikazana ispod je poslata, ali slanje {{GENDER:$2|korisniku|korisnici}} nije uspelo: $1",
        "saveusergroups": "Sačuvaj korisničke grupe",
        "userrights-groupsmember": "Član:",
        "userrights-groupsmember-auto": "Podrazumevano član i:",
-       "userrights-groups-help": "Možete promeniti grupe kojima ovaj korisnik pripada.\n* Označena kućica označava da se korisnik nalazi u toj grupi.\n* Neoznačena kućica označava da se korisnik ne nalazi u toj grupi.\n* Zvezdica označava da ne možete ukloniti grupu ako je dodate i obratno.",
+       "userrights-groups-help": "Možete promeniti grupe kojima ovaj korisnik pripada.\n* Označen kvadratić označava da se korisnik nalazi u toj grupi.\n* Neoznačen kvadratić označava da se korisnik ne nalazi u toj grupi.\n* Zvezdica označava da ne možete ukloniti grupu ako je dodate i obratno.",
        "userrights-reason": "Razlog:",
        "userrights-no-interwiki": "Nemate ovlašćenja da menjate korisnička prava na drugim vikijima.",
        "userrights-nodatabase": "Baza podataka $1 ne postoji ili nije lokalna.",
        "markedaspatrollederrortext": "Morate izabrati izmenu da biste je označili kao patroliranu.",
        "markedaspatrollederror-noautopatrol": "Ne možete da označite svoje izmene kao patrolirane.",
        "markedaspatrollednotify": "Ova izmena na stranici „$1“ je označena kao patrolirana.",
-       "markedaspatrollederrornotify": "Označavanje ove stranice patroliranom nije uspelo.",
+       "markedaspatrollederrornotify": "Označavanje ove izmene patroliranom nije uspelo.",
        "patrol-log-page": "Dnevnik patroliranja",
        "patrol-log-header": "Ovo je dnevnik patroliranih izmena.",
        "log-show-hide-patrol": "$1 dnevnik patroliranja",
        "watchlistedit-raw-done": "Vaš spisak nadgledanja je ažuriran.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1=Dodat je jedan naslov|Dodata su $1 naslova|Dodato je $1 naslova}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 naslov je uklonjen|Uklonjena su $1 naslova|Uklonjeno je $1 naslova}}:",
-       "watchlistedit-clear-title": "Pražnjenje spisak nadgledanja",
+       "watchlistedit-clear-title": "Pražnjenje spiska nadgledanja",
        "watchlistedit-clear-legend": "Isprazni spisak nadgledanja",
        "watchlistedit-clear-explain": "Svi naslovi će biti uklonjeni iz vašeg spiska nadgledanja.",
        "watchlistedit-clear-titles": "Naslovi:",
        "api-error-badtoken": "Unutrašnja greška: neispravan žeton.",
        "api-error-copyuploaddisabled": "Otpremanje putem adrese je onemogućeno na ovom serveru.",
        "api-error-duplicate": "Već {{PLURAL:$1|postoji [$2 druga datoteka]|postoje [$2 druge datoteke]}} s istim sadržajem.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Postojala je [$2 druga datoteka]|Postojale su [$2 druge datoteke]}} s istim sadržajem, ali {{PLURAL:$1|je obrisana|su obrisane}}.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Duplirana datoteka koja je već obrisana|Duplirane datoteke koje su već obrisane}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Duplirana datoteka|Duplirane datoteke}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Postojala je druga datoteka|Postojale su druge datoteke}} s istim sadržajem, ali {{PLURAL:$1|je obrisana|su obrisane}}.",
        "api-error-empty-file": "Poslata datoteka je prazna.",
        "api-error-emptypage": "Stvaranje novih praznih stranica nije dozvoljeno.",
        "api-error-fetchfileerror": "Unutrašnja greška: došlo je do greške pri dobavljanju datoteke.",
index 7935127..b47950d 100644 (file)
        "passwordreset-capture-help": "Wan du disse Kaste ankjuusest, wäd ju E-Mail-Ättergjucht mäd dät temporäre Paaswoud, die wiesed, as uk dän Benutser tousoand.",
        "passwordreset-email": "E-Mail-Adresse:",
        "passwordreset-emailtitle": "Benutserkontoinformatione ap {{SITENAME}}",
-       "passwordreset-emailelement": "↓Benutsernoome: $1\nTemporär Paaswoud: $2",
+       "passwordreset-emailelement": "↓Benutsernoome: \n$1\n\nTemporär Paaswoud: \n$2",
        "passwordreset-emailsent": "↓Ne Ärinnerenge wuud uur E-Mail fersoand.",
        "bold_sample": "Fatten Text",
        "bold_tip": "Fatten Text",
        "mailnologin": "Du bäst nit anmälded.",
        "mailnologintext": "Du moast [[Special:UserLogin|anmälded weese]] un sälwen ne [[Special:Preferences|gultige E-Mail-Adrässe]] anroat hääbe, uum uur Benutsere ne E-Mail tou seenden.",
        "emailuser": "Seende E-Mail an dissen Benutser",
-       "emailpage": "E-mail an Benutser",
        "emailpagetext": "Du koast dän Benutser mäd dän unner stoundene Formular ne E-Mail seende.\nAs Ouseender wäd ju E-Mail-Adresse uut dien [[Special:Preferences|Ienstaalengen]] iendrain, deermäd die Benutser die oantwoudje kon.",
        "defemailsubject": "{{SITENAME}}-E-Mail",
        "usermaildisabled": "E-Mail-Ämfangst deaktivierd",
index 94d56da..e862faa 100644 (file)
        "passwordreset-emailtitle": "Wincikan akun di {{SITENAME}}",
        "passwordreset-emailtext-ip": "Aya (sigana anjeun, ti alamat IP $1) ménta nyetél ulang kecap sandi pikeun {{SITENAME}} ($4). {{PLURAL:$3|Akun}} di handap tumali jeung alamat ieu surélék:\n\n$2\n\n{{PLURAL:$3|Ieu sandi saheulaanan}} bakal kadaluwarsa dina témpo {{PLURAL:$5|sapoé|$5 poé}}.\nAnjeun kudu asup sarta milih sandi anyar ayeuna. Lamun teu rumasa nyieun ieu paménta, atawa lamun geus inget sandi aslina sarta moal dirobah, ieu surat teu kudu diwaro.",
        "passwordreset-emailtext-user": "Pamaké $1 di {{SITENAME}} ménta nyetél ulang sandi anjeun di {{SITENAME}} ($4). {{PLURAL:$3|Akun}} di handap tumali jeung alamat surélék ieu:\n\n$2\n\n{{PLURAL:$3|Ieu sandi saheulaanan}} bakal kadaluwarsa dina témpo {{PLURAL:$5|sapoé|$5 poé}}.\nAnjeun kudu asup sarta milih sandi anyar ayeuna. Lamun henteu rumasa nyieun ieu pamundut atawa lamun geus inget sandi asli sarta moal ngarobah deui, ieu talatah teu kudu dipaliré.",
-       "passwordreset-emailelement": "Sandiasma: $1\nSandi saheulaanan: $2",
+       "passwordreset-emailelement": "Sandiasma: \n$1\n\nSandi saheulaanan: \n$2",
        "passwordreset-emailsent": "Surélék pikeun nyetél ulang kecap sandi geus dikirim.",
        "passwordreset-emailsent-capture": "Surélék pikeun nyetél ulang kecap sandi geus dikirim, sakumaha ditémbongkeun di handap.",
        "passwordreset-emailerror-capture": "Surélék pikeun nyetél ulang kecap sandi geus dijieun, sakumaha ditémbongkeun di handap, tapi gagal ngirim ka {{GENDER:$2|pamaké}}: $1",
        "mailnologin": "Euweuh alamat ngirim",
        "mailnologintext": "Anjeun kudu '''[[Special:UserLogin|asup log]]''' sarta boga alamat surélék nu sah na [[Special:Preferences|préferénsi]] anjeun sangkan bisa nyurélékan pamaké séjén.",
        "emailuser": "Surélékan pamaké ieu",
-       "emailpage": "Surélékan pamaké",
        "emailpagetext": "Anjeun bisa maké formulir di handap pikeun ngirim surélék ka ieu pamaké.\nAlamat surélék nu diasupkeun kana [[Special:Preferences|préferénsi pamaké anjeun]] bakal katémbong salaku alamat \"Ti\" dina surélékna, sahingga nu dituju bisa males langsung.",
        "defemailsubject": "Surélék {{SITENAME}} ti pamaké \"$1\"",
        "usermaildisabled": "Surélék kontributor ditumpurkeun",
index 7146c65..a045c12 100644 (file)
        "passwordreset-emailtitle": "Kontouppgifter på {{SITENAME}}",
        "passwordreset-emailtext-ip": "Någon (förmodligen du, från IP-adressen $1) begärde en återställning av ditt lösenord för {{SITENAME}} ($4). Följande användar{{PLURAL:$3|konto är förknippad|konton är förknippade}} med denna e-postadress:\n\n$2\n\n{{PLURAL:$3|Detta|Dessa}} tillfälliga lösenord kommer att gå ut om {{PLURAL:$5|en dag|$5 dagar}}.\nDu bör logga in och välja ett nytt lösenord nu. Om någon annan gjorde denna begäran, eller om du kommer ihåg ditt ursprungliga lösenord, och inte längre önskar ändra det, kan du ignorera detta meddelande och fortsätta använda ditt gamla lösenord.",
        "passwordreset-emailtext-user": "Användaren $1 på {{SITENAME}} begärde en återställning av ditt lösenord för {{SITENAME}} ($4). Följande användar{{PLURAL:$3|konto är förknippad|konton är förknippade}} med denna e-postadress:\n\n$2\n\n{{PLURAL:$3|Detta|Dessa}} tillfälliga lösenord kommer att gå ut om {{PLURAL:$5|en dag|$5 dagar}}.\nDu bör logga in och välja ett nytt lösenord nu. Om någon annan gjorde denna begäran, eller om du kommer ihåg ditt ursprungliga lösenord, och inte längre önskar ändra det, kan du ignorera detta meddelande och fortsätta använda ditt gamla lösenord.",
-       "passwordreset-emailelement": "Användarnamn: $1\nTillfälligt lösenord: $2",
+       "passwordreset-emailelement": "Användarnamn: \n$1\n\nTillfälligt lösenord: \n$2",
        "passwordreset-emailsent": "En lösenordsåterställning via e-post har skickats.",
        "passwordreset-emailsent-capture": "En lösenordsåterställning via e-post har skickats, som visas nedan.",
        "passwordreset-emailerror-capture": "En lösenordsåterställning via e-post har skapats, som visas nedan, men det gick inte att skicka den till {{GENDER:$2|användaren}}: $1",
        "changeemail-password": "Ditt lösenord till {{SITENAME}}:",
        "changeemail-submit": "Ändra e-post",
        "changeemail-throttled": "Du har gjort för många inloggningsförsök.\nVänta $1 innan du försöker igen.",
+       "changeemail-nochange": "Ange en annan ny e-postadress.",
        "resettokens": "Återställ nycklar",
        "resettokens-text": "Du kan återställa nycklar som tillåter åtkomst till vissa privata uppgifter som är associerade till ditt konto här.\n\nDu bör återställa om du av misstag delade dem med någon eller om ditt konto har äventyrats.",
        "resettokens-no-tokens": "Det finns inga nycklar att återställa.",
        "columns": "Kolumner:",
        "searchresultshead": "Sökning",
        "stub-threshold": "Gräns för formatering av stubblänk ($1):",
+       "stub-threshold-sample-link": "exempel",
        "stub-threshold-disabled": "Avaktiverat",
        "recentchangesdays": "Antal dygn som skall visas i \"senaste ändringarna\":",
        "recentchangesdays-max": "Maximalt $1 {{PLURAL:$1|dygn}}",
        "booksources-text": "Nedan följer en lista över länkar till webbplatser som säljer nya och begagnade böcker, och som kanske har ytterligare information om de böcker du söker.",
        "booksources-invalid-isbn": "Det angivna ISBN-numret verkar inte vara giltigt. Kontrollera källan för eventuella fel.",
        "specialloguserlabel": "Utförare:",
-       "speciallogtitlelabel": "Mål (titel eller användare):",
+       "speciallogtitlelabel": "Mål (titel eller {{ns:user}}:användarnamn för användare):",
        "log": "Loggar",
        "all-logs-page": "Alla publika loggar",
        "alllogstext": "Kombinerad visning av alla tillgängliga loggar för {{SITENAME}}.\nDu kan avgränsa sökningen och få färre träffar genom att ange typ av logg, användarnamn (skiftlägeskänsligt), eller berörd sida (också skiftlägeskänsligt).",
        "tooltip-ca-nstab-main": "Visa innehållssidan",
        "tooltip-ca-nstab-user": "Visa användarsidan",
        "tooltip-ca-nstab-media": "Visa mediesidan",
-       "tooltip-ca-nstab-special": "Detta är en specialsida; du kan inte redigera själva sidan",
+       "tooltip-ca-nstab-special": "Detta är en specialsida och kan inte redigeras",
        "tooltip-ca-nstab-project": "Visa projektsidan",
        "tooltip-ca-nstab-image": "Visa filsidan",
        "tooltip-ca-nstab-mediawiki": "Visa systemmeddelandet",
        "api-error-badtoken": "Internt fel: felaktig nyckel.",
        "api-error-copyuploaddisabled": "Uppladdning via URL är inaktiverad på den här servern.",
        "api-error-duplicate": "Det finns redan {{PLURAL:$1|[$2 en annan fil]|[$2 andra filer]}} på webbplatsen med samma innehåll.",
-       "api-error-duplicate-archive": "Det fanns redan {{PLURAL:$1|[$2 en annan fil]|[$2 några andra filer]}} på webbplatsen med samma innehåll, men {{PLURAL:$1|den har|de har}} raderats.",
-       "api-error-duplicate-archive-popup-title": "Dubblett av {{PLURAL:$1|fil|filer}} som redan har tagits bort",
-       "api-error-duplicate-popup-title": "Dubblett{{PLURAL:$1|fil|filer}}",
+       "api-error-duplicate-archive": "Det fanns redan {{PLURAL:$1|en annan fil|några andra filer}} på webbplatsen med samma innehåll, men {{PLURAL:$1|den har|de har}} raderats.",
        "api-error-empty-file": "Filen du skickade var tom.",
        "api-error-emptypage": "Det är inte tillåtet att skapa nya, tomma sidor.",
        "api-error-fetchfileerror": "Internt fel: något gick fel vid hämtningen av filen.",
index b565ada..4174493 100644 (file)
        "passwordreset-emailtitle": "Maelezo ya akaunti kwenye {{SITENAME}}",
        "passwordreset-emailtext-ip": "Kuna mtu (huenda ikawa ni wewe, kutoka anwani ya IP $1) aliyeomba neno la siri la akaunti yako liwekwe upya katika {{SITENAME}} ($4). {{PLURAL:$3|Akaunti inayofuata imeunganishwa|Akaunti zinazofuata zimeunganishwa}} na anwani ya barua pepe hii:\n\n$2\n\n{{PLURAL:$3|Neno la siri hili litakwisha|Maneno ya siri haya yatakwisha}} baada ya siku {{PLURAL:$5|$5}}.\nUnafaa kuingia sasa na uchague neno jipya la siri. Kama mtu mwingine ameomba hili, au ikiwa umekumbuka neno lako la siri na hutaki kulibadilisha tena, basi usijali ujumbe huu, na uendelee kutumia neno la siri lako la zamani.",
        "passwordreset-emailtext-user": "Mtumiaji $1 kwenye {{SITENAME}} ameomba neno la siri la akaunti yako liwekwe upya katika {{SITENAME}} ($4). {{PLURAL:$3|Akaunti inayofuata imeunganishwa|Akaunti zinazofuata zimeunganishwa}} na anwani ya barua pepe hii:\n\n$2\n\n{{PLURAL:$3|Neno la siri hili litakwisha|Maneno ya siri haya yatakwisha}} baada ya siku {{PLURAL:$5|one day|$5 siku}}.\nTafadhali ingia sasa na uchague neno jipya la siri. Kama mtu mwingine ameomba hili, au ikiwa umekumbuka neno lako la siri na hutaki kulibadilisha tena, basi usijali ujumbe huu, na uendelee kutumia neno la siri lako la zamani.",
-       "passwordreset-emailelement": "Jina la mtumiaji: $1\nNeno la siri la muda: $2",
+       "passwordreset-emailelement": "Jina la mtumiaji: \n$1\n\nNeno la siri la muda: \n$2",
        "passwordreset-emailsent": "Barua pepe ya ukumbusho wa neno la siri imetumwa.",
        "passwordreset-emailsent-capture": "Barua pepe ya ukukumbusho wa neno la siri imetumwa, ambayo inaonekana hapo chini.",
        "passwordreset-emailerror-capture": "Barua pepe ya ukukumbusho wa neno la siri imetengenezwa, ambayo inaonekana hapo chini, lakini kuituma kwa mtumiaji {{GENDER:$2|user}} kumeshindikana: $1",
        "emailuser": "Mtumie mtumiaji huyu barua pepe",
        "emailuser-title-target": "Tumia barua pepe {{GENDER:$1|user}}",
        "emailuser-title-notarget": "Kumtumia mtumiaji barua pepe",
-       "emailpage": "Kumtumia mtumiaji barua pepe",
        "emailpagetext": "Utumie fomu iliopo chini ili kutuma barua pepe kwa mtumiaji huyu.\nAnwani yako ya barua pepe ulioitaja katika [[Special:Preferences|mapendekezo yako]] itaandikwa kwenye sanduku la anwani \"Kutoka kwa\" katika barua pepe, ili mtu atakayeipokea aweze kukujibu moja kwa moja.",
        "defemailsubject": "Barua pepe ya {{SITENAME}} iliyotumwa na mtumiaji \"$1\"",
        "usermaildisabled": "Uwezo wa kutuma barua pepe kwa mtumiaji umesitishwa",
index 0cffa90..1abc1c5 100644 (file)
        "passwordreset-email": "E-brif:",
        "passwordreset-emailtitle": "Kůnto na {{GRAMMAR:MS.lp|{{SITENAME}}}}",
        "passwordreset-emailtext-ip": "Ftoś (cheba Ty, s IP $1)\npado, aże chce informacyji lo konta do {{GRAMMAR:MS.lp{{SITENAME}}}} ($4).\nZe tym ausdrukym sům powjůnzane kůnta:\n$2\n\n{{PLURAL:$3|Tymczasowygo hasła|Tymczasowych hasył}} możno użyć we {{PLURAL:$5|jedyn dźyń|$5 dńi}}.\n\nJak chćołżeś gynał to zrobjyć, to zaloguj śe terozki a podej swoje hasło.\n\nJak ftoś inkszy chćoł nowe hasło abo jak Ci śe przipůmńoło stare a ńy chcysz nowygo, to zignoruj to a używej starygo hasła.",
-       "passwordreset-emailelement": "Mjano sprowjorza: $1\nTymczasowe hasło: $2",
+       "passwordreset-emailelement": "Mjano sprowjorza: \n$1\n\nTymczasowe hasło: \n$2",
        "passwordreset-emailsent": "E-brif posłany.",
        "passwordreset-emailsent-capture": "E-brif posłony, kerego widać niżej.",
        "passwordreset-emailerror-capture": "Ńy udoło śe posłać wjadomości lo {{GENDER:$2|używocza|używoczki}}: $1",
        "mailnologin": "Brak adresu",
        "mailnologintext": "Muśyš śe [[Special:UserLogin|zalůgować]] i mjeć wpisany aktualny adres e-brif w swojich [[Special:Preferences|preferyncyjach]], coby můc wysuać e-brif do inkšygo užytkowńika.",
        "emailuser": "Poślij tymu używoczowi e-brif",
-       "emailpage": "Wyślij e-brif do užytkowńika",
        "emailpagetext": "Możesz użyć půńiższygo formularza, coby wysłać wjadůmość e-brif do tygo użytkowńika.\nAdres e-brifa, kery zostoł bez Ćebje wkludzůny we [[Special:Preferences|Twojich sztalowańach]], pojawi śe we polu „Uod”, bez cůż uodbjorca bydźe můg Ći uodpedźeć.",
        "defemailsubject": "{{SITENAME}} - e-brif uod używacza \"$1\"",
        "usermaildisabled": "E-brif używacza ńy załůnczony",
index be1612f..ffba35c 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}} ல் கணக்கு விவரங்கள்",
        "passwordreset-emailtext-ip": "யாராவது (அநேகமாக நீங்கள், IP முகவரி   $1 ல் இருந்து ), நினைவுபடுத்தி கோரிய உங்கள் கணக்கு\n விவரங்கள் நினைவுபடுத்தி {{SITENAME}} ( $4 ).பின்வரும் பயனர்  {{PLURAL:$3|account is|accounts are}}\n இந்த மின்னஞ்சல் முகவரியுடன் இணைக்கப்பட்டுள்ளது.\n$2\n{{PLURAL:$3|This temporary password|These temporary passwords}} காலாவதி ஆக உள்ள நாட்கள் {{PLURAL:$5|one day|$5 days}}.\nநீங்கள் புதிய கடவுச்சொல்லை இப்போதே தேர்வு செய்து வேண்டும், அல்லது வேறு யாராவது இந்த கோரிக்கையை அனுப்பியிருந்தாலோ\nஅல்லது உங்கள் மூல கடவுச்சொல் நினைவில் இருந்தாலோ இதை மாற்ற வேண்டிய அவசியம் இல்லை,நீங்கள் இந்த தகவலை புறக்கணித்துவிட்டுஉங்கள் பழைய கடவுச்சொல்லையே பயன்படுத்திக்கொள்ளலாம்.",
        "passwordreset-emailtext-user": "பயனர் $1 {{SITENAME}} லிருந்து கடவுச்சொல் மீட்டமையினை {{SITENAME}}\n($4) க்கு கோரியுள்ளார்.பின்வரும் பயனர்  {{PLURAL:$3|account is|accounts are}}\n இந்த மின்னஞ்சல் முகவரியுடன் இணைக்கப்பட்டுள்ளது.\n$2\n{{PLURAL:$3|This temporary password|These temporary passwords}} காலாவதி ஆக உள்ள நாட்கள் {{PLURAL:$5|one day|$5 days}}.\nநீங்கள் புதிய கடவுச்சொல்லை இப்போதே தேர்வு செய்ய வேண்டும், அல்லது வேறு யாராவது இந்த கோரிக்கையை அனுப்பியிருந்தாலோ\nஅல்லது உங்கள் மூல கடவுச்சொல் நினைவில் இருந்தாலோ இதை மாற்ற வேண்டிய அவசியம் இல்லை,நீங்கள் இந்த தகவலை புறக்கணித்துவிட்டுஉங்கள் பழைய கடவுச்சொல்லையே பயன்படுத்திக்கொள்ளலாம்.",
-       "passwordreset-emailelement": "பயனர் பெயர்:  $1\nதற்காலிகக் கடவுச்சொல்: $2",
+       "passwordreset-emailelement": "பயனர் பெயர்:  \n$1\n\nதற்காலிகக் கடவுச்சொல்: \n$2",
        "passwordreset-emailsent": "கடவுச்சொல் மீட்டமைக்கும் மின்னஞ்சல் அனுப்பப்பட்டது.",
        "passwordreset-emailsent-capture": "கீழே காண்பிக்கப்பட்டுள்ளது போல் கடவுச்சொல் மீட்டமைக்கும் மின்னஞ்சல் அனுப்பப்பட்டது.",
        "passwordreset-emailerror-capture": "கடவுச்சொல் மீட்டமைக்கும் மின்னஞ்சல்  உருவாக்கப்பட்டுவிட்டது, அது கீழே காட்டப்பட்டுள்ளது, ஆனால் {{GENDER:$2|user}} அனுப்புவது தோல்வியடைந்தது:$1",
        "api-error-badtoken": "உள்ளகப் பிழை: தவறான அடையாளம்.",
        "api-error-copyuploaddisabled": "உரலி மூலம் பதிவேற்றுவது இந்த வழங்கியில் செயலிழக்கச் செய்யப்பட்டுள்ளது.",
        "api-error-duplicate": "There {{PLURAL:$1|is [$2 another file]|are [$2 some other files]}} already on the site with the same content.",
-       "api-error-duplicate-archive": "ஏற்கனவே இத்தளத்தில் இதே உள்ளடக்கத்தைக் கொண்ட {{PLURAL:$1|கோப்பு [$2 இருந்தது]|[$2 கோப்புகள் இருந்தன]}}, ஆனால் {{PLURAL:$1|அது நீக்கப்பட்டுவிட்டது|அவை நீக்கப்பட்டுவிட்டன.}}",
-       "api-error-duplicate-archive-popup-title": "Duplicate {{PLURAL:$1|file|files}} that have already been deleted",
-       "api-error-duplicate-popup-title": "போலி {{PLURAL:$1|கோப்பு|கோப்புகள்}}",
+       "api-error-duplicate-archive": "ஏற்கனவே இத்தளத்தில் இதே உள்ளடக்கத்தைக் கொண்ட {{PLURAL:$1|கோப்பு இருந்தது|கோப்புகள் இருந்தன}}, ஆனால் {{PLURAL:$1|அது நீக்கப்பட்டுவிட்டது|அவை நீக்கப்பட்டுவிட்டன.}}",
        "api-error-empty-file": "நீங்கள் அளித்த கோப்பு காலியாக உள்ளது.",
        "api-error-emptypage": "புதிய, காலி பக்கங்கள் உருவாக்கல் அனுமதிக்கப்படவில்லை.",
        "api-error-fetchfileerror": "உள்ளகப் பிழை: கோப்பைப் பெறுகையில் ஏதோ தவறு நேர்ந்துவிட்டது.",
index eedd87b..560978b 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}}లో ఖాతా వివరాలు",
        "passwordreset-emailtext-ip": "ఎవరో (బహుశా మీరే, ఐపీ అడ్రసు $1 నుంచి)  {{SITENAME}} ($4) లో మీ సంకేతపదాన్ని మార్చమంటూ అడిగారు. కింది వాడుకరి {{PLURAL:$3|ఖాతా|ఖాతాలు}}\nఈ ఈమెయిలు చిరునామాతో అనుసంధింపబడి ఉన్నాయి:\n\n$2\n\n{{PLURAL:$3|ఈ సంకేతపదానికి|ఈ సంకేతపదాలకు}} {{PLURAL:$5|ఒక్కరోజులో|$5 రోజుల్లో}} కాలం చెల్లుతుంది.\nఇప్పుడు మీరు లాగినై కొత్త సంకేతపదాన్ని ఎంచుకోవాల్సి ఉంటుంది. ఈ అభ్యర్ధన చేసింది మరెవరైనా అయినా, లేక మీ అసలు సంకేతపదం మీకు గుర్తొచ్చి దాన్ని మార్చాల్సిన అవసరం లేదని అనుకున్నా, మీరీ సందేశాన్ని పట్టించుకోనక్కర్లేదు. పాత సంకేతపదాన్నే వాడుకోవచ్చు.",
        "passwordreset-emailtext-user": "{{SITENAME}} లోని వాడుకరి $1, {{SITENAME}} ($4) లోని మీ సంకేతపదాన్ని మార్చమంటూ అడిగారు. కింది వాడుకరి {{PLURAL:$3|ఖాతా|ఖాతాలు}}\nఈ ఈమెయిలు అడ్రసుతో అనుసంధింపబడి ఉన్నాయి:\n\n$2\n\n{{PLURAL:$3|ఈ తాత్కాలిక సంకేతపదానికి|ఈ తాత్కాలిక సంకేతపదాలకు}} {{PLURAL:$5|ఒక్క రోజులో|$5 రోజుల్లో}} కాలం చెల్లుతుంది.\nఇప్పుడు మీరు లాగినై కొత్త సంకేతపదాన్ని ఎంచుకోవాల్సి ఉంటుంది. ఈ అభ్యర్ధన చేసింది మరెవరైనా అయినా, లేక మీ అసలు సంకేతపదం మీకు గుర్తొచ్చి దాన్ని మార్చాల్సిన అవసరం లేదని అనుకున్నా, మీరీ సందేశాన్ని పట్టించుకోనక్కర్లేదు. పాత సంకేతపదాన్నే వాడుకోవచ్చు.",
-       "passwordreset-emailelement": "వాడుకరిపేరు: $1\nతాత్కాలిక సంకేతపదం: $2",
+       "passwordreset-emailelement": "వాడుకరిపేరు: \n$1\n\nతాత్కాలిక సంకేతపదం: \n$2",
        "passwordreset-emailsent": "సంకేతపదం మార్పు ఈమెయిలును పంపించాం.",
        "passwordreset-emailsent-capture": "క్రింద చూపిన సంకేతపదం మార్పు ఈమెయిలును పంపించాం.",
        "passwordreset-emailerror-capture": "కింద చూపిన సంకేతపదం మార్పు ఈమెయిలును తయారుచేసాం. కానీ దాన్ని {{GENDER:$2|వాడుకరికి}} పంపడం విఫలమైంది: $1",
        "emailuser": "ఈ వాడుకరికి ఈ-మెయిలుని పంపించండి",
        "emailuser-title-target": "ఈ {{GENDER:$1|వాడుకరికి}} ఈమెయిలు పంపించండి",
        "emailuser-title-notarget": "వాడుకరికి ఈమెయిలు పంపించండి",
-       "emailpage": "వాడుకరికి ఈ-మెయిలుని పంపించు",
        "emailpagetext": "ఈ {{GENDER:$1|వాడుకరికి}} ఈమెయిలు సందేశము పంపించుటకు క్రింది ఫారంను ఉపయోగించవచ్చు. [[Special:Preferences|మీ వాడుకరి అభిరుచుల]]లో మీరిచ్చిన ఈ-మెయిలు చిరునామా \"నుండి\" ఆ సందేశం వచ్చినట్లుగా ఉంటుంది, కనుక వేగుని అందుకునేవారు నేరుగా మీకు జవాబివ్వగలుగుతారు.",
        "defemailsubject": "వాడుకరి \"$1\" నుండి {{SITENAME}} ఈ-మెయిలు",
        "usermaildisabled": "వాడుకరి ఈమెయిలు అచేతనం చెయ్యబడింది",
        "api-error-badtoken": "అంతర్గత లోపం: చెడు టోకెన్.",
        "api-error-copyuploaddisabled": "URL ద్వారా ఎక్కించడం ఈ సర్వరులో అశక్తం చెయ్యబడింది.",
        "api-error-duplicate": "ఇదే విషయ పాఠ్యంతో ఈ సైటులో ఈసరికే {{PLURAL:$1|[$2 మరో ఫైలు] ఉంది|[$2 ఇతర ఫైళ్ళు] ఉన్నాయి}}.",
-       "api-error-duplicate-archive": "ఇదే విషయ పాఠ్యంతో ఈ సైటులో ఈసరికే {{PLURAL:$1|[$2 మరో ఫైలు] ఉండేది|[$2 ఇతర ఫైళ్ళు] ఉండేవి}}. అయితే {{PLURAL:$1|అది తొలగించబడింది|అవి తొలగించబడ్డాయి}}.",
-       "api-error-duplicate-archive-popup-title": "నకిలీ {{PLURAL:$1|దస్త్రాన్ని|దస్త్రాలను}} ఇప్పటికే తొలగించారు.",
-       "api-error-duplicate-popup-title": "నకిలీ {{PLURAL:$1|దస్త్రం|దస్త్రాలు}}.",
+       "api-error-duplicate-archive": "ఇదే విషయ పాఠ్యంతో ఈ సైటులో ఈసరికే {{PLURAL:$1|మరో ఫైలు ఉండేది|ఇతర ఫైళ్ళు ఉండేవి}}. అయితే {{PLURAL:$1|అది తొలగించబడింది|అవి తొలగించబడ్డాయి}}.",
        "api-error-empty-file": "మీరు దాఖలుచేసిన ఫైల్ ఖాళీది.",
        "api-error-emptypage": "కొత్త మరియు ఖాళీ పేజీలను సృష్టించడానికి అనుమతి లేదు.",
        "api-error-fetchfileerror": "అంతర్గత లోపం: ఈ ఫైలును తేవడంలో ఏదో తప్పు జరిగింది.",
index fc2bdc3..5fa4535 100644 (file)
        "passwordreset-domain": "Домана:",
        "passwordreset-email": "Нишонаи почтаи электронӣ:",
        "passwordreset-emailtitle": "Мушаххасоти ҳисоб дар {{SITENAME}}",
-       "passwordreset-emailelement": "Номи корбарӣ: $1\nГузарвожаи муваққатӣ: $2",
+       "passwordreset-emailelement": "Номи корбарӣ: \n$1\n\nГузарвожаи муваққатӣ: \n$2",
        "changeemail": "Тағийри нишонаи email",
        "changeemail-oldemail": "Нишонаи почтаи кунунӣ:",
        "changeemail-newemail": "Нишонаи почтаи нав:",
        "mailnologintext": "Барои фиристодани почтаи электронӣ барои корбарони дигар бояд [[Special:UserLogin|ба систем ворид шавед]] ва нишонаи почтаи электронии мӯътабар дар [[Special:Preferences|тарҷиҳоти]] худ дошта бошед.",
        "emailuser": "Фиристодани email ба ин корбар",
        "emailuser-title-notarget": "Фиристодани пайём ба корбар",
-       "emailpage": "Почтаи электронӣ ба корбар",
        "emailpagetext": "Агар ин корбар нишонаи почтаи электронии мӯътабаре дар тарҷиҳоти ворид карда бошад, форми зерин як пайғоме мефиристад.\nНишонаи почтаи электроние, ки шумо дар тарҷиҳоти корбариатон ворид кардаед, дар нишони фиристандаи нома \"From\" хоҳад омад, то ки гиранда тавонад ба шумо посух диҳад.",
        "defemailsubject": "Пайёми {{SITENAME}} аз корбар \"$1\"",
        "noemailtitle": "Нишонаи почтаи электронӣ мавҷуд нест",
index 5d91ea2..b0ce154 100644 (file)
        "passwordreset-emailtitle": "รายละเอียดบัญชีบน {{SITENAME}}",
        "passwordreset-emailtext-ip": "บางคน (ซึ่งอาจเป็นคุณ จากเลขที่อยู่ไอพี $1) ขอตั้งรหัสผ่านของคุณใหม่บน{{SITENAME}} ($4) บัญชีผู้ใช้ดังกล่าวเกี่ยวข้องกับที่อยู่อีเมลนี้:\n\n$2\n\n{{PLURAL:$3|รหัสผ่านชั่วคราวนี้|รหัสผ่านชั่วคราวเหล่านี้}}จะหมดอายุใน $5 วัน\nตอนนี้คุณควรล็อกอินและเลือกรหัสผ่านใหม่ หากบุคคลอื่นขอตั้งรหัสผ่านใหม่นี้ หรือคุณจำรหัสผ่านเดิมของคุณได้แล้ว และคุณไม่ต้องการเปลี่ยนรหัสผ่านอีก คุณอาจละเลยข้อความนี้และใช้รหัสผ่านเดิมของคุณต่อไป",
        "passwordreset-emailtext-user": "ผู้ใช้ $1 บน {{SITENAME}} ขอตั้งรหัสผ่านของคุณใหม่สำหรับ {{SITENAME}} ($4) {{PLURAL:$3||}}บัญชีผู้ใช้ดังกล่าวเกี่ยวข้องกับที่อยู่อีเมลนี้:\n\n$2\n\n{{PLURAL:$3|รหัสผ่านชั่วคราวนี้|รหัสผ่านชั่วคราวเหล่านี้}}จะหมดอายุใน $5 วัน\nตอนนี้คุณควรล็อกอินและเลือกรหัสผ่านใหม่ หากบุคคลอื่นขอตั้งรหัสผ่านใหม่นี้ หรือคุณจำรหัสผ่านเดิมของคุณได้แล้ว และคุณไม่ต้องการเปลี่ยนรหัสผ่านอีก คุณอาจละเลยข้อความนี้และใช้รหัสผ่านเดิมของคุณต่อไป",
-       "passwordreset-emailelement": "ชื่อผู้ใช้: $1\nรหัสผ่านชั่วคราว: $2",
+       "passwordreset-emailelement": "ชื่อผู้ใช้: \n$1\n\nรหัสผ่านชั่วคราว: \n$2",
        "passwordreset-emailsent": "อีเมลตั้งรหัสผ่านใหม่ถูกส่งไปแล้ว",
        "passwordreset-emailsent-capture": "อีเมลตั้งรหัสผ่านใหม่ถูกส่งไปแล้ว ซึ่งแสดงด้านล่าง",
        "passwordreset-emailerror-capture": "อีเมลตั้งรหัสผ่านใหม่ถูกสร้างขึ้นแล้ว ซึ่งแสดงด้านล่าง แต่ไม่สามารถส่งไปยัง{{GENDER:$2|ผู้ใช้}}: $1",
index 9e88060..305e972 100644 (file)
        "passwordreset": "Paroly nol et",
        "passwordreset-username": "Ulanyjy ady:",
        "passwordreset-domain": "Domen:",
-       "passwordreset-emailelement": "Ulanyjy ady: $1\nWagtlaýyn parol: $2",
+       "passwordreset-emailelement": "Ulanyjy ady: \n$1\n\nWagtlaýyn parol: \n$2",
        "changeemail": "E-poçta adresini üýtget",
        "changeemail-oldemail": "Häzirki e-poçta adresi:",
        "changeemail-newemail": "Täze e-poçta adresi:",
        "mailnologin": "Iberer ýaly adres ýok",
        "mailnologintext": "Başga ulanyjylara e-poçta ibermek üçin [[Special:UserLogin|sessiýaňyz açyk bolmaly]] hem-de [[Special:Preferences|ileri tutmalarda]] dogry bir e-poçta adresiňiz bolmalydyr.",
        "emailuser": "Bu ulanyja e-poçta iber",
-       "emailpage": "Ulanyja e-poçta iber",
        "emailpagetext": "Bu ulanyja e-poçta habarlaşygy ibermek üçin aşakdaky formdan peýdalanyp bilersiňiz.\n[[Special:Preferences|Ulanyjy ileri tutmalaryňyzda]] görkezen e-poçta adresiňiz e-poçtanyň \"Kimden\" adresinde peýda bolar, şeýlelikde kabul ediji size gönüden-göni jogap berip biler.",
        "defemailsubject": "{{SITENAME}} e-poçtasy",
        "usermaildisabled": "Ulanyjy e-poçtasy ýapyk",
index 5ae0a43..857fa04 100644 (file)
@@ -14,7 +14,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Ianlopez1115",
-                       "Leeheonjin"
+                       "Leeheonjin",
+                       "Macofe"
                ]
        },
        "tog-underline": "Pagsasalungguhit ng link:",
        "passwordreset-emailtitle": "Mga detalye ng account sa {{SITENAME}}",
        "passwordreset-emailtext-ip": "Isang tao (marahil ay ikaw, mula sa IP address na $1) ang humiling ng isang paalala sa iyong mga detalye ng account para sa {{SITENAME}} ($4). Ang sumusunod na {{PLURAL:$3|account ng tagagamit ay|mga account ng tagagamit ay}} may kaugnayan sa email address na ito:\n\n$2\n\n{{PLURAL:$3|Ang pansamantalang password na ito|Ang mga pansamantalang password na ito}} ay mawawalan ng bisa sa loob ng {{PLURAL:$5|isang araw|$5 araw}}.\nDapat kang mag-login at pumili ng isang bagong password ngayon. Kung ibang tao ang gumawa ng kahilingang ito, o kung naalala mo na ang orihinal mong password, at hindi mo na nais palitan ito, maaari mong huwag nang pansinin ang mensaheng ito at magpatuloy sa paggamit ng luma mong password.",
        "passwordreset-emailtext-user": "Ang tagagamit na si $1 sa {{SITENAME}} ay humiling ng isang paalala ng iyong mga akawnt ng detalye para sa {{SITENAME}}\n($4). Ang sumusunod na pangtagagamit na {{PLURAL:$3|akawnt ay|mga akawnt ay}} may kaugnayan sa tirahang ito ng e-liham:\n\n$2\n\n{{PLURAL:$3|Ang pansamantalang hudyat na ito|Ang pansamantalang mga hudyat na ito}} mawawalan ng bias sa loob ng {{PLURAL:$5|isang araw|$5 mga araw}}.\nDapat kang lumagda at pumili ng isang hudyat ngayon. Kung ibang tao ang gumawa ng kahilingang ito, o kung naalala mo na ang iyong orihinal na hudyat, at hindi mo na nais palitan pa ito, maaari mong huwag nang pansinin ang mensaheng ito at magpatuloy sa paggamit ng iyong lumang hudyat.",
-       "passwordreset-emailelement": "Pangalan ng tagagamit: $1\nPansamantalang password: $2",
+       "passwordreset-emailelement": "Pangalan ng tagagamit: \n$1\n\nPansamantalang password: \n$2",
        "passwordreset-emailsent": "Naipadala na ang isang e-liham na pampaalala.",
        "passwordreset-emailsent-capture": "Naipadala na ang isang e-liham na paalala, na ipinapakita sa ibaba.",
        "passwordreset-emailerror-capture": "Nalikha na ang isang e-liham na paalala, na ipinapakita sa ibaba, subalit nabigo ang pagpapadala sa tagagamit: $1",
        "emailuser": "Padalhan ng e-liham ang tagagamit",
        "emailuser-title-target": "Padalhan ng elektronikong liham ang {{GENDER:$1|tagagamit}} na ito",
        "emailuser-title-notarget": "Padalhan ng e-liham ang tagagamit",
-       "emailpage": "Magpadala ng e-liham sa tagagamit",
        "emailpagetext": "Magagamit mo ang pormularyo sa ibaba para makapagpadala ng mensahe sa pamamagitan ng isang e-liham para sa tagagamit na ito.\nAng ipinasok mong direksiyong e-liham sa [[Special:Preferences|iyong mga kagustuhan ng tagagamit]] ay lilitaw bilang adres na \"Mula kay\" ng e-liham, para tuwirang makatugon sa iyo ang nakatanggap.",
        "defemailsubject": "E-liham ng {{SITENAME}} mula sa tagagamit na si \"$1\"",
        "usermaildisabled": "Hindi pinagana ang e-liham ng tagagamit",
        "api-error-badtoken": "Panloob na kamalian: masamang kahalip.",
        "api-error-copyuploaddisabled": "Ang pagkakarga ng URL ay hindi pinagagana sa tagapaghaing ito.",
        "api-error-duplicate": "May {{PLURAL:$1|[$2 ibang talaksan]g|[$2 ibang ilang mga talaksan]g}} nasa wiki na na may katulad na nilalaman",
-       "api-error-duplicate-archive": "Nagkaroon {{PLURAL:$1|dati ng [$2 iba pang talaksan]|dati ng mga [$2 ilang iba pang mga talaksan]}} na umiiral na sa sityo na may katulad na nilalaman, ngunit {{PLURAL:$1|ito ay|ito ay mga}} nabura na.",
-       "api-error-duplicate-archive-popup-title": "Nabura nang kakambal na {{PLURAL:$1|talaksan|mga talaksan}}",
-       "api-error-duplicate-popup-title": "Kagayang {{PLURAL:$1|talaksan|mga talaksan}}",
+       "api-error-duplicate-archive": "Nagkaroon {{PLURAL:$1|dati ng iba pang talaksan|dati ng mga ilang iba pang mga talaksan}} na umiiral na sa sityo na may katulad na nilalaman, ngunit {{PLURAL:$1|ito ay|ito ay mga}} nabura na.",
        "api-error-empty-file": "Walang laman ang ipinasa mong talaksan.",
        "api-error-emptypage": "Lumilikha ng bago, hindi pinapayagan ang mga pahinang walang laman.",
        "api-error-fetchfileerror": "Panloob na kamalian: may naganap na pagkakamali habang kinukuha ang talaksan.",
index b52f41a..a92a1b0 100644 (file)
        "print": "Yazdır",
        "view": "Görüntüle",
        "view-foreign": "$1 üzerinde gör",
-       "edit": "Düzenle",
+       "edit": "Değiştir",
        "edit-local": "Yerel açıklamayı düzenle",
        "create": "Oluştur",
        "create-local": "Yerel açıklama ekle",
        "actionthrottled": "Eylem kısılmıştır",
        "actionthrottledtext": "Spam'e karşı alınan önlemler dahilinde belirli bir süre aralığında bu eylemin gerçekleştirilmesine izin verilen miktarı aştınız.\nLütfen birkaç dakika sonra yeniden deneyin.",
        "protectedpagetext": "Bu sayfa değişiklik ya da diğer eylemlerin yapılmasını engellemek için koruma altına alınmıştır.",
-       "viewsourcetext": "Bu sayfanın kaynağını görebilir ve kopyalayabilirsiniz:",
-       "viewyourtext": "Bu sayfada <strong>yaptığınız değişikliklerin</strong> kaynağını görünteleyip kopyalayabilirsiniz:",
+       "viewsourcetext": "Bu sayfanın kaynağını görebilir ve kopyalayabilirsiniz.",
+       "viewyourtext": "Bu sayfada <strong>yaptığınız değişikliklerin</strong> kaynağını görünteleyip kopyalayabilirsiniz.",
        "protectedinterface": "Bu sayfa yazılım için arayüz metni sağlamaktadır ve kötüye kullanımı önlemek için korumaya alınmıştır.\nBütün vikilere dair çeviri eklemek veya bunları değiştirmek için lütfen MediaWiki yerelleştirme projesi [//translatewiki.net/ translatewiki.net]'i kullanın.",
        "editinginterface": "<strong>Uyarı:</strong> Yazılım için arayüz metni sağlayan bir sayfayı değiştiriyorsunuz.\nBu sayfada yapılacak değişiklikler diğer kullanıcıların vikilerindeki kullanıcı arayüzlerinin görünümünü de etkileyecektir.",
        "translateinterface": "Tüm vikilerde çeviri eklemek veya çevirileri değiştirmek için lütfen MediaWiki yerelleştirme projesini [//translatewiki.net/] kullanın.",
        "passwordreset-emailtitle": "{{SITENAME}} hesap detayları",
        "passwordreset-emailtext-ip": "Birisi, (muhtemelen siz, $1 IP adresinden) {{SITENAME}} ($4) için hesap bilgilerinizin \nhatırlatılmasını istedi. Aşağıdaki kullanıcı {{PLURAL:$3|hesabı|hesapları}} bu e-posta adresiyle ilişkili:\n\n$2\n\n{{PLURAL:$3|Bu geçici şifre|Bu geçici şifreler}} {{PLURAL:$5|bir gün|$5  gün}} geçerlidir.\nBu geçici parola ile giriş yapın ve yeni bir şifre seçin. Şifre değişimini siz istemediyseniz veya şifrenizi hatırladıysanız ve artık şifrenizi değiştirmek istemiyorsanız; bu iletiyi önemsemeyerek eski şifrenizi kullanmaya devam edebilirsiniz.",
        "passwordreset-emailtext-user": "$1 adlı kullanıcı, {{SITENAME}} ($4) için hesap bilgilerinizin hatırlatılmasını istedi. Aşağıdaki kullanıcı {{PLURAL:$3|hesabı|hesapları}} bu e-posta adresiyle ilişkili:\n\n$2\n\n{{PLURAL:$3|Bu geçici şifre|Bu geçici şifreler}} {{PLURAL:$5|bir gün|$5  gün}} geçerlidir.\nBu geçici parola ile giriş yapın ve yeni bir şifre seçin. Bu talep bir başkasına aitse veya şifrenizi hatırladıysanız ve artık şifrenizi değiştirmek istemiyorsanız; bu iletiyi önemsemeyerek eski şifrenizi kullanmaya devam edebilirsiniz.",
-       "passwordreset-emailelement": "Kullanıcı adı: $1\nGeçici şifre: $2",
+       "passwordreset-emailelement": "Kullanıcı adı: \n$1\n\nGeçici şifre: \n$2",
        "passwordreset-emailsent": "Parola sıfırlama e-postası gönderildi.",
        "passwordreset-emailsent-capture": "Aşağıda gözüktüğü gibi bir parola sıfırlama e-postası gönderildi.",
        "passwordreset-emailerror-capture": "Aşağıda gözüktüğü gibi bir parola sıfırlama e-postası oluşturuldu ancak {{GENDER:$2|kullanıcıya}} gönderme işlemi başarısız oldu: $1",
        "tooltip-pt-preferences": "Tercihleriniz (ayarlarınız)",
        "tooltip-pt-watchlist": "Değişiklikler için izlemeye aldığınız sayfaların listesi",
        "tooltip-pt-mycontris": "Katkılarınızın listesi",
-       "tooltip-pt-login": "Oturum açmanızı tavsiye ederiz; ancak zorunda değilsiniz",
+       "tooltip-pt-login": "Oturum açmanız tavsiye edilmektedir; ancak bu zorunda değildir",
        "tooltip-pt-logout": "Sistemden çık",
        "tooltip-pt-createaccount": "Bir hesap oluşturup oturum açmanız tavsiye edilmektedir ancak bu zorunlu değildir",
        "tooltip-ca-talk": "İçerik ile ilgili tartışma",
        "api-error-badtoken": "İç hata: Bozuk anahtar.",
        "api-error-copyuploaddisabled": "URL ile yükleme bu sunucuda devre dışı bırakılmıştır.",
        "api-error-duplicate": "Sitede zaten aynı içerikte başka {{PLURAL:$1|bir [$2 dosya]|[$2 dosyalar]}} var.",
-       "api-error-duplicate-archive": "Sitede zaten aynı içerikte başka {{PLURAL:$1|bir [$2 dosya]|[$2 dosyalar]}} vardı, ama {{PLURAL:$1|silindi|silindiler}}.",
-       "api-error-duplicate-archive-popup-title": "Zaten silinmiş çift {{PLURAL:$1|sayfa|sayfalar}}.",
-       "api-error-duplicate-popup-title": "Çift {{PLURAL:$1|dosya|dosya}}",
+       "api-error-duplicate-archive": "Sitede zaten aynı içerikte başka {{PLURAL:$1|bir dosya|dosyalar}} vardı, ama {{PLURAL:$1|silindi|silindiler}}.",
        "api-error-empty-file": "Gönderdiğiniz dosya boş.",
        "api-error-emptypage": "Yeni, boş bir sayfa oluşturmaya izin verilmez.",
        "api-error-fetchfileerror": "İç hata: Dosya alınırken bir hata oluştu.",
index fe9ec13..4b04f77 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}} хисап язмасы турында мәгълүматлар",
        "passwordreset-emailtext-ip": "Кемдер (бәлки, сездер, $1 IP-адресыннан) {{SITENAME}} ($4) проектында сезнең серсүзне искә төшерүне сорады.\n{{PLURAL:$3|1=Түбәндәге хисап язмасы|Түбәндәге хисап язмалары}} бу электрон әрҗә адресы белән бәйле:\n\n$2\n\n{{PLURAL:$3|1=Бу вакытлы серсүз|Бу вакытлы серсүзләр}} {{PLURAL:$5|$5 көн}} дәвамында эшлиячәкләр.\nСез системага керергә һәм яңа серсүз сайларга тиешсез.\nӘгәр сез серсүз сорамаган булсагыз яки элеккеге серсүзегезне искә төшерсәгез \nһәм аны үзгәртергә теләмәсәгез, бу хатка җавап бирмәгез\nһәм элеккеге серсүзегезне кулланыгыз.",
        "passwordreset-emailtext-user": "{{SITENAME}} проектыннан $1 кулланучысы {{SITENAME}} ($4) проектында сезнең серсүзне искә төшерүне сорады.\n{{PLURAL:$3|1=Түбәндәге хисап язмасы|Түбәндәге хисап язмалары}} бу электрон әрҗә адресы белән бәйле:\n\n$2\n\n{{PLURAL:$3|1=Бу вакытлы серсүз|Бу вакытлы серсүзләр}} {{PLURAL:$5|$5 көн}} дәвамында эшлиячәкләр.\nСез системага керергә һәм яңа серсүз сайларга тиешсез.\nӘгәр сез серсүз сорамаган булсагыз яки элеккеге серсүзегезне искә төшерсәгез \nһәм аны үзгәртергә теләмәсәгез, бу хатка җавап бирмәгез\nһәм элеккеге серсүзегезне кулланыгыз.",
-       "passwordreset-emailelement": "Кулланучы исеме: $1\nВакытлыча серсүз: $2",
+       "passwordreset-emailelement": "Кулланучы исеме: \n$1\n\nВакытлыча серсүз: \n$2",
        "passwordreset-emailsent": "Электрон әрҗәгә искәртү җибәрелгән иде",
        "passwordreset-emailsent-capture": "Җибәрелгән хат-искәртү түбәндә китерелә",
        "passwordreset-emailerror-capture": "Түбәндә язылган хат-искәртү китерелгән, аны җибәрмәүнең сәбәбе:$1",
        "enotif_impersonal_salutation": "{{SITENAME}} кулланучы",
        "enotif_lastvisited": "Соңгы керүегездән соң булган барлык үзгәртүләрне күрер өчен, бу сылтама аша узыгыз: $1",
        "enotif_body": "Хөрмәтле $WATCHINGUSERNAME,\n\n«{{SITENAME}}» проектының «$PAGETITLE» бите  $PAGEEDITOR  тарафыннан  $PAGEEDITDATE  көнне  $CHANGEDORCREATED. Битне карар өчен $PAGETITLE_URL  буенча узыгыз.\n\n$NEWPAGE\n\nҮзгәртүнең кыска эчтәлеге: $PAGESUMMARY $PAGEMINOREDIT\n\nҮзгәртүчегә язу:\nэл. почта $PAGEEDITOR_EMAIL\nвики $PAGEEDITOR_WIKI\n\nБу биткә кермәсәгез, аның башка үзгәртүләре турында хат җибәрелмәячәк. Шулай ук сез күзәтү исемлегегездә булган битләр өчен хәбәр бирү флагын алып куя аласыз.\n\n             {{grammar:genitive|{{SITENAME}}}} хәбәр бирү системасы\n\n--\nХәбәр итүләр көйләүләрен үзгәртү:\n{{canonicalurl:{{#special:Preferences}}}}\n\nКүзәтү исемлеге көйләүләрен үзгәртү:\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nБитне сезнең күзәтү исемлегездән бетерү:\n$UNWATCHURL\n\nЭлемтә һәм ярдәм:\n$HELPPAGE",
-       "created": "төзергән",
+       "created": "төзелгән",
        "changed": "үзгәртелде",
        "deletepage": "Битне бетерү",
        "confirm": "Раслау",
        "tooltip-ca-nstab-main": "Мәкаләнең эчтәлеге",
        "tooltip-ca-nstab-user": "Кулланучының шәхси бите",
        "tooltip-ca-nstab-media": "Медиа-файл",
-       "tooltip-ca-nstab-special": "Бу махсус бит, сез аны үзгәртү алмыйсыз",
+       "tooltip-ca-nstab-special": "Бу махсус бит, аны үзгәртү мөмкин түгел",
        "tooltip-ca-nstab-project": "Проектның бите",
        "tooltip-ca-nstab-image": "Сүрәтнең бите",
        "tooltip-ca-nstab-mediawiki": "MediaWiki - хат бите",
        "api-error-badtoken": "Эчке хата: дөрес булмаган токен.",
        "api-error-copyuploaddisabled": "URL-адрес буенча йөкләү бу серверда сүндерелгән.",
        "api-error-duplicate": "Мондый эчтәлекле {{PLURAL:$1|[$2 башка файл]}} да бар.",
-       "api-error-duplicate-archive": "Элек сайтта мондый эчтәлекле {{PLURAL:$1|[$2 башка файл]}} бар иде инде, ләкин {{PLURAL:$1|1=аны бетерделәр|аларны бетерделәр}}.",
-       "api-error-duplicate-archive-popup-title": "Кайчандыр бетерелгән {{PLURAL:$1|1=файлның|файлларның}} дубликатлары.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|файлның}} дубликаты",
+       "api-error-duplicate-archive": "Элек сайтта мондый эчтәлекле {{PLURAL:$1|башка файл}} бар иде инде, ләкин {{PLURAL:$1|1=аны бетерделәр|аларны бетерделәр}}.",
        "api-error-empty-file": "Сезнең тарафтан җибәрелгән файл буш.",
        "api-error-emptypage": "Яңа буш сәхифәләр төзү рөхсәт ителми",
        "api-error-unknown-code": "Билгесез хата: \"$1\"",
index 9c7671b..4f12c93 100644 (file)
        "resetpass-submit-cancel": "Соксаары",
        "resetpass-temp-password": "Түр чажыт сөс:",
        "passwordreset": "Чажыт сөстү дүжүрү",
-       "passwordreset-legend": "Чажыт атты дүжүр",
        "passwordreset-username": "Aжыглакчының ады:",
        "passwordreset-domain": "Домен:",
        "passwordreset-email": "Э-чагааның адреси:",
-       "passwordreset-emailelement": "Ажыглакчы ады: $1\nТүр чажыт сөс: $2",
+       "passwordreset-emailelement": "Ажыглакчы ады: \n$1\n\nТүр чажыт сөс: \n$2",
        "changeemail": "Э-чагааның адресин өскертири",
        "changeemail-oldemail": "Амгы э-чагааның адреси:",
        "changeemail-newemail": "Чаа э-чагааның адреси:",
        "nlinks": "$1 {{PLURAL:$1|холбаа}}",
        "nmembers": "$1 {{PLURAL:$1|кежигүн}}",
        "nrevisions": "$1 {{PLURAL:$1|үндүрери}}",
-       "nviews": "$1 {{PLURAL:$1|көрүш}}",
        "specialpage-empty": "Бо илеткелдиң түңнели чок.",
        "lonelypages": "Чааскаан арыннар",
        "uncategorizedpages": "Бөлүк эвес арыннар",
index a24fa92..fee0f7c 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}} دىكى ھېسابات تەپسىلاتى",
        "passwordreset-emailtext-ip": "باشقىلار (بەلكىم سىز، IP ئادرېسى $1) {{SITENAME}} ($4) دىكى پارولنى قايتا بېكىتىشنى ئىلتىماس قىلدى. تۆۋەندىكى ئىشلەتكۈچىنىڭ {{PLURAL:$3|ھېسابات|ھېسابات}}ى مۇشۇ ئېلخەتكە باغلانغان:\n\n$2\n\n{{PLURAL:$3|بۇ ۋاقىتلىق پارول|بۇ ۋاقىتلىق پارول}} {{PLURAL:$5|بىر كۈن|$5 كۈن}}دە ۋاقتى ئۆتىدۇ. ئەگەر بۇ مەشغۇلاتنى سىز ئىلتىماس قىلغان بولسىڭىز، دەرھال تىزىمغا كىرىپ يېڭى پارولدىن بىرنى تاللاڭ.\nسىز بەلگىلىگەن يېڭى پارول  {{PLURAL:$5|كۈن|$5 كۈن}}دە ۋاقتى توشىدۇ. ئەگەر باشقىلار ئىلتىماس قىلغان بولسا ياكى ئۆزىڭىز بەلگىلىگەن پارول ئېسىڭىزگە كېلىپ ئۇنى ئۆزگەرتمىسىڭىز، \nبۇ ئۇچۇرغا پەرۋا قىلماي ئۆزىڭىزنىڭ كونا پارولىنى ئىشلىتىۋېرىڭ.",
        "passwordreset-emailtext-user": "{{SITENAME}} دىكى ئىشلەتكۈچى $1 بېكەت {{SITENAME}} ($4) دىكى پارولىڭىزنى قايتا بېكىتىشنى ئىلتىماس قىلدى .\nتۆۋەندىكى ئىشلەتكۈچىنىڭ {{PLURAL:$3|ھېسابات|ھېسابات}}($4)ى مۇشۇ ئېلخەتكە باغلانغان:\n\n$2\n\n{{PLURAL:$3|بۇ ۋاقىتلىق پارول|بۇ ۋاقىتلىق پارول}} {{PLURAL:$5|بىر كۈن|$5 كۈن}}دە ۋاقتى ئۆتىدۇ. ئەگەر بۇ مەشغۇلاتنى سىز ئىلتىماس قىلغان بولسىڭىز، دەرھال تىزىمغا كىرىپ يېڭى پارولدىن بىرنى تاللاڭ.\nسىز بەلگىلىگەن يېڭى پارول {{PLURAL:$5|كۈن|$5 كۈن}}دە ۋاقتى توشىدۇ. ئەگەر باشقىلار ئىلتىماس قىلغان بولسا ياكى ئۆزىڭىز بەلگىلىگەن پارول ئېسىڭىزگە كېلىپ ئۇنى ئۆزگەرتمىسىڭىز، \nبۇ ئۇچۇرغا پەرۋا قىلماي ئۆزىڭىزنىڭ كونا پارولىنى ئىشلىتىۋېرىڭ.",
-       "passwordreset-emailelement": "ئىشلەتكۈچى نامى: $1\nۋاقىتلىق پارول: $2",
+       "passwordreset-emailelement": "ئىشلەتكۈچى نامى: \n$1\n\nۋاقىتلىق پارول: \n$2",
        "passwordreset-emailsent": "پارولنى قايتا بېكىتىش ئېلخېتى يوللاندى.",
        "passwordreset-emailsent-capture": "پارولنى قايتا بېكىتىش ئېلخېتى يوللاندى، تۆۋەندە كۆرسىتىلىدۇ.",
        "passwordreset-emailerror-capture": "ھاسىل قىلىنغان پارولنى قايتا بېكىتىش ئېلخېتى تۆۋەندە كۆرسىتىلگەندەك ئەمما ئۇنى {{GENDER:$2|ئىشلەتكۈچى}}گە يوللىيالمىدى: $1",
        "emailuser": "بۇ ئىشلەتكۈچىگە ئېلخەت يوللا",
        "emailuser-title-target": "بۇ {{ئىشلەتكۈچى|GENDER:$1}} گە ئېلخەت يوللا",
        "emailuser-title-notarget": "ئېلخەت ئىشلەتكۈچى",
-       "emailpage": "بۇ ئىشلەتكۈچىگە ئېلخەت يوللا",
        "emailpagetext": "سىز تۆۋەندىكى جەدۋەلنى ئىشلىتىپ، بۇ {{GENDER:$1|ئىشلەتكۈچى}} گە ئېلخەت يوللىيالايسىز.\n [[Special:Preferences|ئىشلەتكۈچى مايىللىقىڭىز]]دىكى ئېلخەت ئادرېسى  \"يوللىغۇچى\" ستونىدا كۆرۈنىدۇ، مۇشۇنداق بولغاندا شۇ ئىشلەتكۈچى سىزگە بىۋاسىتە جاۋاب قايتۇرالايدۇ.",
        "defemailsubject": "{{SITENAME}}بېكەتتىكى \"$1\" ئىشلەتكۈچىنىڭ ئېلخەت",
        "usermaildisabled": "ئىشلەتكۈچى ئېلخەت چەكلەنگەن",
        "api-error-copyuploaddisabled": "URL ئارقىلىق يوللايدىغان ئىقتىدارنى بۇ مۇلازىمېتىر چەكلىگەن.",
        "api-error-duplicate": "تورتۇرادا ئوخشاش مەزمۇندىكى {{PLURAL:$1|is [$2 باشقا ھۆججەت]|[$2 بەزى باشقا ھۆججەتلەر]}} مەۋجۇت.",
        "api-error-duplicate-archive": "تورتۇرادا ئىلگىرى ئوخشاش مەزمۇن بار {{PLURAL:$1|was [$2 باشقا بىر ھۆججەت]|were [$2 باشقا ھۆججەتلەر]}} مەۋجۇت ئەمما ئۆچۈرۈلگەن.",
-       "api-error-duplicate-archive-popup-title": "تەكرار {{PLURAL:$1|ھۆججەت}} ئۆچۈرۈلدى.",
-       "api-error-duplicate-popup-title": "تەكرار {{PLURAL:$1|ھۆججەت}}.",
        "api-error-empty-file": "يوللىغان ھۆججىتىڭىز بوش.",
        "api-error-emptypage": "يېڭىدىن قۇرۇش، قۇرۇق بەت يول قۇيۇلمايدۇ.",
        "api-error-fetchfileerror": "ئىچكى خاتالىق: ھۆججەتكە ئېرىشىۋاتقاندا خاتالىق كۆرۈلدى.",
index 8c86f8f..c2b7e8b 100644 (file)
        "passwordreset-emailtitle": "Деталі облікового запису на {{SITENAME}}",
        "passwordreset-emailtext-ip": "Хтось (імовірно ви, з IP-адреси $1) попросив нагадати деталі вашого облікового запису для {{SITENAME}} ($4). З вашою електронною скринькою пов'язан{{PLURAL:$3|1=ий такий запис|і такі записи}}:\n\n$2\n\n{{PLURAL:$3|1=Цей тимчасовий пароль стане недійсним|Ці тимчасові паролі стануть недійсними}} через $5 {{PLURAL:$5|день|дні|днів}}.\nВи маєте ввійти в систему і вибрати новий пароль. Якщо ж цей запит зробив хтось інший або ви згадали свій старий пароль і не бажаєте його змінювати, можете ігнорувати це повідомлення та продовжувати використовувати старий пароль.",
        "passwordreset-emailtext-user": "Користувач $1 з {{SITENAME}} попросив нагадати деталі вашого облікового запису для {{SITENAME}} ($4). З вашою електронною скринькою пов'язан{{PLURAL:$3|1=ий такий запис|і такі записи}}:\n\n$2\n\n{{PLURAL:$3|1=Цей тимчасовий пароль|Ці тимчасові паролі}} стануть нечинні через {{PLURAL:$5|день|$5 дні|$5 днів}}.\nВи маєте ввійти в систему і вибрати новий пароль. Якщо ж цей запит зробив хтось інший, або ви згадали свій старий пароль і не бажаєте його змінювати, можете просто ігнорувати це повідомлення та продовжувати використовувати старий пароль.",
-       "passwordreset-emailelement": "Ім'я користувача: $1\nТимчасовий пароль: $2",
+       "passwordreset-emailelement": "Ім'я користувача: \n$1\n\nТимчасовий пароль: \n$2",
        "passwordreset-emailsent": "Електронний лист для відновлення пароля надісланий.",
        "passwordreset-emailsent-capture": "Електронний лист скидання пароля було надіслано, як показано нижче.",
        "passwordreset-emailerror-capture": "Електронний лист для відновлення пароля мав бути надісланий, як показано нижче, але його надсилання {{GENDER:$2|користувачеві|користувачці}} $1 не вдалося.",
        "api-error-badtoken": "Внутрішня помилка: некоректний токен.",
        "api-error-copyuploaddisabled": "На цьому сервері вимкнене завантаження за URL-адресою.",
        "api-error-duplicate": "Вже {{PLURAL:$1|1=існує  [$2 інший файл]|існують [$2 інші файли]}} з таким самим вмістом.",
-       "api-error-duplicate-archive": "Раніше на сайті вже {{PLURAL:$1|1=був [$2 файл]|були [$2 файли]}} з ідентичним вмістом, але {{PLURAL:$1|1=його|їх}} вилучили.",
-       "api-error-duplicate-archive-popup-title": "Дублікати {{PLURAL:$1|1=файла|файлів}}, які вже були вилучені",
-       "api-error-duplicate-popup-title": "Дублікат {{PLURAL:$1|1=файлу|файлів}}",
+       "api-error-duplicate-archive": "Раніше на сайті вже {{PLURAL:$1|1=був файл|були файли}} з ідентичним вмістом, але {{PLURAL:$1|1=його|їх}} вилучили.",
        "api-error-empty-file": "Файл, який ви надіслали, порожній.",
        "api-error-emptypage": "Створення нової порожньої сторінки неприпустиме.",
        "api-error-fetchfileerror": "Внутрішня помилка: щось пішло не так під час отримання файлу.",
index c295163..e835306 100644 (file)
        "passwordreset-domain": "Domen:",
        "passwordreset-capture": "Xatni koʻrmoqchimisiz?",
        "passwordreset-email": "Elektron pochta manzilingiz:",
-       "passwordreset-emailelement": "Foydalanuvchi ismi: $1\nVaqtinchalik maxfiy so'z: $2",
+       "passwordreset-emailelement": "Foydalanuvchi ismi: \n$1\n\nVaqtinchalik maxfiy so'z: \n$2",
        "changeemail": "Elektron pochta manzilini oʻzgartirish",
        "changeemail-oldemail": "Joriy elektron pochta manzili",
        "changeemail-newemail": "Elektron pochtaning yangi manzili",
index 74014ed..32c714a 100644 (file)
        "nstab-template": "Modèl",
        "nstab-help": "Ajuto",
        "nstab-category": "Categoria",
+       "mainpage-nstab": "Pagina prinsipale",
        "nosuchaction": "Operasion no riconossua",
        "nosuchactiontext": "L'asion spesifegà ne l'URL no a xè vałida.\nXè posibiłe che l'URL sia sta dizità en modo erato o che sia sta seguio on cołegamento no vałido.\nCiò podaria anca indicare on bug en {{SITENAME}}.",
        "nosuchspecialpage": "Pajina prinsipałe no disponibiłe",
        "passwordreset-emailtitle": "Detaji de l'account so {{SITENAME}}",
        "passwordreset-emailtext-ip": "Cualcheduni (probabilmente ti, co indiriso IP $1) ga richiesto l'invio de na nova password par l'aceso a {{SITENAME}} ($4). {{PLURAL:$3|L'utente asocià|I utenti asociadi}} a sto indiriso de posta ełetronega łi xe:\n\n$2\n\n{{PLURAL:$3|Sta password tenporanea ła scadarà|Ste password tenporanee łe scadarà}} dopo {{PLURAL:$5|un dì|$5 dì}}.\n\nSarìa mejo acedare e deçidare na nova password sùito. Se no te si stà ti a fare ła richiesta, o se te te ghe ricordà ła password originałe e no te vołi pi canbiarla, te połi ignorare sto mesajo e continuar doparare ła to password vecia.",
        "passwordreset-emailtext-user": "El utente $1 da {{SITENAME}} (probabilmente ti steso) ga richiesto l'invio de na password nova par {{SITENAME}} ($4). {{PLURAL:$3|El profiło utente asocià|I profiłi utenti asociadi}} a sto indiriso de posta ełetronega łi xe:\n\n$2\n\n{{PLURAL:$3|Sta password tenporanea ła scadarà|Ste password tenporanee łe scadarà}} dopo {{PLURAL:$5|un dì|$5 dì}}.\n\nSarìa mejo acedare e deçidare na nova password sùito. Se no te si stà ti a fare ła richiesta, o se te te ghe ricordà ła password originałe e no te vołi pi canbiarla, te połi ignorare sto mesajo e continuar doparare ła to password vecia.",
-       "passwordreset-emailelement": "Nome utente: $1\nPassword tenporanea: $2",
+       "passwordreset-emailelement": "Nome utente: \n$1\n\nPassword tenporanea: \n$2",
        "passwordreset-emailsent": "Xe stà invià na mail de reset password.",
        "passwordreset-emailsent-capture": "Xe stà invià na mail de reset password: el contegù xe riportà cuà de seguito.",
        "passwordreset-emailerror-capture": "Xe stà generà na mail de reset password, riportà cuà de seguito. L'invio a {{GENDER:$2|l'utente}} no xe riusido: $1",
        "api-error-badtoken": "Eror interno: token fałà.",
        "api-error-copyuploaddisabled": "El cargamento tramite URL el xe dixabiłità so sto server.",
        "api-error-duplicate": "So'l sito {{PLURAL:$1|ghe xe xà [$2 'n altro documento]|ghe xe xà [$2 altri documenti]}} có 'l steso contegnuo.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Ghe xera [$2 'n altro file]|Ghe xera [$2 altri file]}} xà inte'l sito có 'l steso contegnuo, ma {{PLURAL:$1|el xe sta scansełà|i xe stai scansełai}}.",
-       "api-error-duplicate-archive-popup-title": "File duplic{{PLURAL:$1|à che xe xà sta scansełà|ai che i xe xà stai scansełai}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|documento duplicà|documenti duplicai}}",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Ghe xera 'n altro file|Ghe xera altri file}} xà inte'l sito có 'l steso contegnuo, ma {{PLURAL:$1|el xe sta scansełà|i xe stai scansełai}}.",
        "api-error-empty-file": "El file sełesionà el gera vodo.",
        "api-error-emptypage": "Ła creasion de nove pàjine vode nó ła xe consentia.",
        "api-error-fetchfileerror": "Eror interno: ghe xe sta un problema durante el recupero del documento.",
index bc4dbc5..687433a 100644 (file)
        "resetpass-wrong-oldpass": "Vär pordaigaine vai nügüdläine peitsana.\nVoib olda, tö olet jo toižetanuded peitsanan vai pakinuded uden peitsanan.",
        "resetpass-temp-password": "Pordaigaline peitsana:",
        "passwordreset": "Peitsanan alustuz",
-       "passwordreset-legend": "Peitsanan alustuz",
        "passwordreset-username": "Kävutajan nimi:",
        "passwordreset-domain": "Domen",
        "passwordreset-capture": "Ozutada-k loptud kirjeine?",
        "passwordreset-email": "E-počtan adres:",
-       "passwordreset-emailelement": "Kävutajannimi: $1\nAigaline peitsana: $2",
+       "passwordreset-emailelement": "Kävutajannimi: \n$1\n\nAigaline peitsana: \n$2",
        "passwordreset-emailsent": "Muštatai kirjeine uden peitsananke oigetihe e-počtadme.",
        "changeemail": "Toižetada e-počtan adres",
        "changeemail-no-info": "Miše kirjutada necil lehtpolel, teile pidab kirjutadas sistemha.",
        "nlinks": "$1 {{PLURAL:$1|kosketuz|kosketust}}",
        "nmembers": "$1 {{PLURAL:$1|ühtnii|ühtnijad}}",
        "nrevisions": "$1 {{PLURAL:$1|versii|versijad}}",
-       "nviews": "$1 {{PLURAL:$1|kacund|kacundad}}",
        "specialpage-empty": "Ecind ei ole andnu rezul'tatad.",
        "lonelypages": "Üksjäižed lehtpoled",
        "lonelypagestext": "Ozutadud lehtpolid ei kosketagoi toižed necen saitan lehtpoled; ozutadud lehtpoled mugažo ei olgoi mülütadud toižihe lehtpolihe.",
        "listgrouprights-removegroup-self-all": "Sab heitta poiš kaik gruppad ičeze sistemkirjutandaspäi",
        "mailnologin": "Ei ole adresan oigendamižen täht",
        "emailuser": "Oigeta e-kirjeine necile kävutajale",
-       "emailpage": "Kirjeine kävutajale",
        "defemailsubject": "$1-kävutajan počt {{SITENAME}}-saitalpäi",
        "usermaildisabled": "Kävutajan e-počt ei ole kävutamižes",
        "noemailtitle": "Ei ole e-počtan adresad",
index 0d1f70f..6fff828 100644 (file)
        "passwordreset-emailtitle": "Thông tin tài khoản tại {{SITENAME}}",
        "passwordreset-emailtext-ip": "Ai đó (có thể là bạn, từ địa chỉ IP $1) đã yêu cầu tái tạo mật khẩu của bạn \ntại {{SITENAME}} ($4). {{PLURAL:$3|Tài khoản|Các tài khoản}} dưới đây gắn liền \nvới địa chỉ thư điện tử này:\n\n$2\n\n{{PLURAL:$3|Mật khẩu|Các mật khẩu}} tạm này sẽ hết hạn trong vòng {{PLURAL:$5|một ngày|$5 ngày}}. Bạn nên đăng nhập\nngay bây giờ để chọn mật khẩu mới. Nếu bạn không phải là người yêu cầu\nhoặc đã nhớ lại mật khẩu hiện hành, và bạn không còn\nmuốn thay đổi nó, xin vui lòng bỏ qua thông điệp này và tiếp tục sử dụng\nmật khẩu cũ.",
        "passwordreset-emailtext-user": "Thành viên $1 tại {{SITENAME}} đã yêu cầu tái tạo mật khẩu tại {{SITENAME}} \n($4). {{PLURAL:$3|Tài khoản|Các tài khoản}} dưới đây gắn liền với địa chỉ thư điện tử này:\n\n$2\n\n{{PLURAL:$3|Mật khẩu|Các mật khẩu}} tạm này sẽ hết hạn trong vòng {{PLURAL:$5|một ngày|$5 ngày}}. Bạn nên đăng nhập\nngay bây giờ để chọn mật khẩu mới. Nếu bạn không phải là người yêu cầu hoặc đã nhớ lại mật khẩu hiện hành, và bạn không còn\nmuốn thay đổi nó, xin vui lòng bỏ qua thông điệp này và tiếp tục sử dụng\nmật khẩu cũ.",
-       "passwordreset-emailelement": "Tên người dùng: $1\nMật khẩu tạm: $2",
+       "passwordreset-emailelement": "Tên người dùng: \n$1\n\nMật khẩu tạm: \n$2",
        "passwordreset-emailsent": "Đã gửi thư điện tử để tái tạo mật khẩu.",
        "passwordreset-emailsent-capture": "Thư điện tử để tái tạo mật khẩu đã được gửi, nội dung như sau.",
        "passwordreset-emailerror-capture": "Chúng tôi đã tạo thư tái tạo mật khẩu dưới đây, nhưng không thể gửi đến {{GENDER:$2}}người dùng: $1",
        "api-error-badtoken": "Lỗi nội bộ: Dấu hiệu bị hỏng.",
        "api-error-copyuploaddisabled": "Chức năng tải lên từ URL đã bị tắt trên máy chủ này.",
        "api-error-duplicate": "Wiki này đã có [$2 {{PLURAL:$1|tập tin|$1 tập tin}} cùng nội dung] có tên khác",
-       "api-error-duplicate-archive": "{{PLURAL:$1|Một|Các}} [$2 tập tin khác] cùng nội dung đã tồn tại trên website, nhưng {{PLURAL:$1|nó|chúng}} đã bị xóa.",
-       "api-error-duplicate-archive-popup-title": "Mang lại {{PLURAL:$1|tập tin|các tập tin}} đã bị xóa",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Tập tin|Các tập tin}} cùng nội dung",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Một|Các}} tập tin khác cùng nội dung đã tồn tại trên website, nhưng {{PLURAL:$1|nó|chúng}} đã bị xóa.",
        "api-error-empty-file": "Bạn đã gửi tập tin rỗng.",
        "api-error-emptypage": "Không cho phép tạo mới các trang rỗng.",
        "api-error-fetchfileerror": "Lỗi nội bộ: Việc tải tập tin bị thất bại.",
index 5acfa3e..414db38 100644 (file)
        "mailnologin": "Nole adresse d' evoyeu",
        "mailnologintext": "Po-z evoyî èn emile a èn ôte uzeu i vs fåt esse [[Special:UserLogin|elodjî]] eyet aveur ene adresse emile d' evoyeu ki soeye valide dins vos [[Special:Preferences|preferinces]].",
        "emailuser": "Emiler a l' uzeu",
-       "emailpage": "Emilaedje a èn uzeu",
        "emailpagetext": "Vos ploz eployî l' formulrece chal pa dzo po-z evoyî èn emile a l' uzeu.\nL' adresse emile k' i gn a dins [[Special:Preferences|vos preferinces]] serè-st eployeye\ncome adresse di l' evoyeu (adresse «From:» di l' emile),\npo ki l' riçuveu poye risponde.",
        "defemailsubject": "Emile da l' uzeu «$1» so {{SITENAME}}",
        "noemailtitle": "Pont d' adresse emile",
        "api-error-badaccess-groups": "Vos n' avoz nén l' droet d' eberweter des fitchîs so ç' wiki cial",
        "api-error-copyuploaddisabled": "Les eberwetaedjes pa URL ni vont nén so ç' sierveu cial.",
        "api-error-duplicate": "N a ddja {{PLURAL:$1|[$2 èn ôte fitchî]|[$2 des ôtes fitchîs]}} avou l' minme contnou so nosse waibe",
-       "api-error-duplicate-archive": "N aveut ddja {{PLURAL:$1|[$2 èn ôte fitchî]|[$2 des ôtes fitchîs]}} avou l' minme contnou so nosse waibe, mins {{PLURAL:$1|il a stî rsaetchî|il ont stî rsaetchîs}}.",
-       "api-error-duplicate-archive-popup-title": "Ricopyî {{PLURAL:$1|l' fitchî|les fitchîs}} k' {{PLURAL:$1|a stî rsaetchî|k' ont stî rsaetchîs}}",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|fitchî|fitchîs}} a dobe",
+       "api-error-duplicate-archive": "N aveut ddja {{PLURAL:$1|èn ôte fitchî|des ôtes fitchîs}} avou l' minme contnou so nosse waibe, mins {{PLURAL:$1|il a stî rsaetchî|il ont stî rsaetchîs}}.",
        "api-error-empty-file": "Vosse fitchî est vude.",
        "api-error-emptypage": "C' est nén permetou d' ahiver ene novele pådje et l' leyî vude.",
        "api-error-fetchfileerror": "Aroke divintrinne : ene sacwè a fwait berwete cwand on-z a volou rawè vosse fitchî",
index ca1295a..ed375ff 100644 (file)
        "passwordreset-email": "E-mail adres:",
        "passwordreset-emailtitle": "Mga detalye han akawnt ha {{SITENAME}}",
        "passwordreset-emailtext-ip": "Mayda gumaramit (bangin hi ikaw, tikang han IP adres nga $1) nga naghangyo hin reset han imo tigaman-pansulod han {{SITENAME}} ($4). An nasunod nga gumaramit {{PLURAL:$3|nga akawnt|nga mga akawnt}} nahanungod hini nga email nga adres: \n\n$2\n\n{{PLURAL:$3|Iní nga temporaryo nga tigaman-pansulod|Iní nga mga temporaryo nga tigaman-pansulod}} ma-waray bali hin {{PLURAL:$5|usa ka adlaw|$5 nga mga adlaw}}.\nAngay ka sumakob ngan pumílì hin bag-o nga tigaman-pansulod ha yanâ.  Kun mayda lain nga naghatag hini nga hangyo, o kun nahinumdoman mo an imo orihinal nga tigaman-pansulod, ngan nadírì ka na pagbalyo hiní, puyde mo pasagdan ini nga sumat ngan magpadayon hin paggamit han imo daan nga tigaman-pansulod.",
-       "passwordreset-emailelement": "Agnay han gumaramit: $1\nTemporaryo nga tigaman han pagsakob: $2",
+       "passwordreset-emailelement": "Agnay han gumaramit: \n$1\n\nTemporaryo nga tigaman han pagsakob: \n$2",
        "passwordreset-emailsent": "Ginpadangat an password reset email.",
        "passwordreset-emailsent-capture": "Ginpadangat an password reset email, nga ginpakita ha ubos.",
        "passwordreset-emailerror-capture": "Ginhimo an password reset email, kun diin nakikita ha ubos, pero pakyas an pagpadara ha  {{GENDER:$2|gumaramit}}: $1",
        "filehist-deleteall": "Paraa ngatanan",
        "filehist-deleteone": "paraa",
        "filehist-revert": "igbalik",
-       "filehist-current": "yana",
+       "filehist-current": "pagkayana",
        "filehist-datetime": "Pitsa/Oras",
        "filehist-thumb": "Thumbnail",
        "filehist-thumbtext": "Bersyon han thumbnail han $1",
        "contributions-title": "Mga amot han gumaramit para ha $1",
        "mycontris": "Mga ámot nakon",
        "contribsub2": "Para {{HENERO:$3|$1}} ($2)",
-       "uctop": "(yana)",
+       "uctop": "(pagkayana)",
        "month": "Tikang ha bulan (ngan uruunhan):",
        "year": "Tikang ha tuig (ngan uruunhan):",
        "sp-contributions-newbies": "Igpakita an mga amot hin mga bag-o nga akawnt la",
        "api-error-badaccess-groups": "Diri ka gintutugotan pagkarga paigbaw ha dinhi nga wiki.",
        "api-error-badtoken": "Sayop ha sulod: Maraot nga token.",
        "api-error-copyuploaddisabled": "Pagkarga paigbaw pinaagi han URL in diri mahihimo ha dinhi nga serbidor.",
-       "api-error-duplicate-archive-popup-title": "An nagdodoble {{PLURAL:$1|nga paypay|nga mga paypay}} in napara na.",
-       "api-error-duplicate-popup-title": "Nadoble {{PLURAL:$1|nga paypay|nga mga paypay}}.",
        "api-error-empty-file": "An paypay nga isinumite nimo in waray sulod.",
        "api-error-emptypage": "Naghihimo hin bag-o, diri gintutugotan an waray sulod nga mga pakli.",
        "api-error-filename-tooshort": "An ngaran han paypay in halipot hin duro.",
index 67134bc..b200503 100644 (file)
        "cancel": "Neenal",
        "moredotdotdot": "Ak yeneen...",
        "mypage": "Samaw xët",
-       "mytalk": "Xëtu waxtaanuwaay",
+       "mytalk": "Waxtaan",
        "anontalk": "Waxtaan ak bii IP",
        "navigation": "Joowiin",
        "and": "&#32;ak",
        "permalink": "Lëkkalekaay yu sax",
        "print": "Móol",
        "view": "Xool",
+       "view-foreign": "Xoolee ko ci $1",
        "edit": "Soppi",
        "create": "Sos",
+       "create-local": "Yokk faramfàcceb barab bii",
        "editthispage": "Soppi xët wii",
        "create-this-page": "Sos wii xët",
        "delete": "Far",
        "otherlanguages": "Yeneeni làkk",
        "redirectedfrom": "(Yoonalaat gu jóge $1)",
        "redirectpagesub": "Xëtu yoonalaat",
+       "redirectto": "Jëmalewaat:",
        "lastmodifiedat": "Coppite bu mujj bu xët wii $1 ci $2.<br />",
        "viewcount": "Xët wii nemmeeku nañ ko {{PLURAL:$1|$1 yoon|$1 yoon}}.",
        "protectedpage": "Xët wees aar",
        "policy-url": "Project:àtte",
        "portal": "Buntub askan",
        "portal-url": "Project:Xët wu njëkk",
-       "privacy": "Politigu mbóot",
-       "privacypage": "Project:Xibaar ci say mbóot",
+       "privacy": "Politigu sutura",
+       "privacypage": "Project:Xibaari sutura",
        "badaccess": "Njuumte ci ndigël gi",
        "badaccess-group0": "Amoo ay sañ-sañ yu doy ngir man a def li nga bëgg a def.",
        "badaccess-groups": "Jëf ji ngay jéem a def dañu koo jagleel jëfandikukat yi bokk ci {{PLURAL:$2|mbooloo mu|benn ci mbooloo yi toftal}}: $1.",
        "virus-scanfailed": "Saytu gi dog na (code $1)",
        "logouttext": "Fi mu nekk nii génn nga.'''\n\nMan ngaa wéy di jëfandikoo {{SITENAME}} ci anam buñ la dul xamme walla nga  <span class='plainlinks'>[$1 duggewaat]</span> ak wenn tur wi walla ak weneen.",
        "yourname": "Sa turu jëfandikukat",
+       "userlogin-yourname": "Turu jëfandikukat",
+       "userlogin-yourname-ph": "Duggalal sa turu jëfandikukat",
        "yourpassword": "Sa baatujàll",
+       "userlogin-yourpassword": "Baatujàll",
+       "userlogin-yourpassword-ph": "Duggalal sa baatujàll",
+       "createacct-yourpassword-ph": "Duggalal ab baatujàll",
        "yourpasswordagain": "Bindaatal sa baatujàll",
+       "createacct-yourpasswordagain": "Dëggalal baatujàll bi",
+       "createacct-yourpasswordagain-ph": "Duggalaatal baatujàll bi",
        "remembermypassword": "Denc sama yëgley dukkukaay ci bii joowukaay (lu ëpp nag $1 {{PLURAL:$1|day|days}})",
+       "userlogin-remembermypassword": "Wéyal dima jàppe gu dugg",
        "yourdomainname": "Sa barab",
        "externaldberror": "Njuumte judd na ci dàttub njoxe bi, walla day ni rekk amuloo sañ-sañu yeesal sa sàqum biti.",
        "login": "xammeeku",
        "logout": "Génnu",
        "userlogout": "Génnu",
        "notloggedin": "Duggoo de",
+       "userlogin-noaccount": "Amagoo am sàq?",
+       "userlogin-joinproject": "Bindu ci {{SITENAME}}",
        "nologin": "Sosagoo am sàq ? '''$1'''.",
        "nologinlink": "Sos ko leegi",
        "createaccount": "Sos am sàq",
        "gotaccount": "Sos nga am sàq? '''$1'''.",
        "gotaccountlink": "Dugg",
+       "userlogin-resetpassword-link": "Danga fàtte sa baatujàll?",
+       "userlogin-helplink2": "Ndimbal ñeel dugg gi",
+       "createacct-emailoptional": "Màkkaanu m-bataaxal (mu-neex-la)",
+       "createacct-email-ph": "Duggalal sa màkkaanu m-bataaxal",
        "createaccountmail": "Jaare ko ci m-bataaxal",
+       "createacct-captcha": "Caytug kaaraange",
+       "createacct-imgcaptcha-ph": "Duggalal mbind  miy toftal mi ngay gis",
+       "createacct-submit": "Sos sa sàq",
+       "createacct-benefit-heading": "{{SITENAME}} ñu mel ni yaw a koy toppatoo.",
+       "createacct-benefit-body1": "{{PLURAL:$1|Coppite}}",
+       "createacct-benefit-body2": "$1 {{PLURAL:$1|xët}}",
+       "createacct-benefit-body3": "recent {{PLURAL:$1|aji-cëru bi mujj|aji-cëru yi mujj}}",
        "badretype": "Baatujàll yi nga bind yemuñu.",
        "userexists": "Turu jëfandikukat bi nga bind am na boroom ba noppi. Tànnal weneen.",
        "loginerror": "Njuumte ci dugg gi",
        "login-throttled": "Jéem ngaa dugg ay yoon te jàllul.\n\nNgalla néggandikul ab diir door a jéemaat.",
        "loginlanguagelabel": "Làkk : $1",
        "pt-login": "Dugg",
+       "pt-login-button": "Dugg",
        "pt-createaccount": "Sos am sàq",
+       "pt-userlogout": "Génn",
        "changepassword": "Coppiteg baatujàll bi",
        "resetpass_announce": "Danga dugg ak ab baatujàll bu saxul-dakk, buñ la yónne cib bataaxal. Ngir matal mbindu mi, faaw nga roof ab baatujàll bu bees fii:",
        "resetpass_text": "<!-- Bindal fii -->",
        "resetpass-submit-loggedin": "Soppi baatujàll bi",
        "resetpass-wrong-oldpass": "Baatujall bu diiru walla bi teew baaxul.\nXèj-na baatujàll bi soppi nga ko ba noppi, walla xéj-na it dangaa laaj beneen baatujàll bu diiru.",
        "resetpass-temp-password": "Baatujàll bu diiru :",
+       "passwordreset": "Neenal baatujàll bi",
        "bold_sample": "Duufal mbind mi",
        "bold_tip": "Duufal mbind mi",
        "italic_sample": "Wengal mbind mi",
        "preview": "Wonendi",
        "showpreview": "Wonendi",
        "showdiff": "Wone samay soppi",
-       "anoneditwarning": "'''Moytul :''' Duggoo. Sa màkkaanub IP di nañu ko dugal ci jaar-jaaru xët wii.",
+       "anoneditwarning": "<strong>Moytul :</strong> Duggoo. Bépp coppite boo def sa màkkaanub IP lañu koy xaatimee ci jaar-jaaru xët wi, ñépp di ko gis. Waaye soo <strong>[$1 duggee]</strong> walla nga <strong>[$2 sos am sàq]</strong>, say coppite sa tur lañuy àndal ak yeneeni njariñ.",
        "missingsummary": "'''Fattali :''' Defoo ab tënk ci coppite yi nga amal. Soo cuqaate ci «Denc xët wi», say coppite di nañ dugg te duñ am tënk, maanaam duñ xam loo soppi.",
        "missingcommenttext": "Di la sakku nga dugal ab tënk ci suuf, jërëjëf.",
        "missingcommentheader": "'''Fattali :''' Joxoo ab koj say coppite. Soo cuqaate ci «Denc xët wi», di nañ leen dugal te duñ am koj.",
        "newarticletext": "Da ngaa topp ab lëkkalekaay buy jëme ci aw xët wu amagul. ngir sos xët wi léegi, duggalal sa mbind ci boyot bii ci suuf (man ngaa yër [$1 xëtu ndimbal wi] ngir yeneeni xamle). Su fekkee njuumtee la fi indi cuqal ci '''dellu''' bu sa joowukaay.",
        "anontalkpagetext": "---- ''Yaa ngi ci xëtu waxtaanuwaayu ab jëfandikukatu alaxam, bu bindoogul ba fim ne mbaa jëfandikoowul am sàqam.\nKon ngir xàmmee ko fàw nga jëfandikoo màkkaanub IP wam. Te màkkaanub IP jëfandikukat yu bari man nañ koo bokk.\nSu fekkee jëfandikukatu alaxam nga, te nga gis ne dees laa féetale ay kàddu yoo moomul, ngalla [[Special:UserLogin|bindu]] walla [[Special:UserLogin|dugg]] ngir benn jaxase bañatee am ëllëg .''",
        "noarticletext": "Fi mu ne ni amul menn mbind ci xët wii; man ngaa [[Special:Search/{{PAGENAME}}|seet koju xët wi]] ci yeneen xët, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} seet ci xëtu jagleel wi ],\nwalla [{{fullurl:{{FULLPAGENAME}}|action=edit}} soppi xët wii]</span>.",
-       "noarticletext-nopermission": "Nii-nii amul menn mbind ci wii xët.\nMan nga [[Special:Search/{{PAGENAME}}|seet bii koj]] ci yeneen xët,\nwalla <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} nga seet ci yéenekaay yees ko féetaleel]</span>.",
+       "noarticletext-nopermission": "Nii-nii amul menn mbind ci wii xët.\nMan ngaa [[Special:Search/{{PAGENAME}}|seet bii koj]] ci yeneen xët walla <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} nga seet ciy yéenekaayam]</span>. Numu man a deme, amoo sañ-sañu sos wii xët.",
        "userpage-userdoesnotexist": "Mii sàqum jëfandikukat « <nowiki>$1</nowiki> » du bu ku-bindu. Seetal bu baax ndax da ngaa namma sos walla soppi wii xët.",
        "clearyourcache": "'''Karmat :''' Soo dence xët wi ba noppi, faaw nga far nëmbiitu sa joowukaay ngir man a gis say coppite, te nga, su dee '''Mozilla / Firefox / Safari :''' cuq ci ''yeesal'' te bësaale ''shift'', walla nga bës ''Shift-R'' walla ''Ctrl-F5'' (Command-R ci Mac ), su dee '''Konqueror''': cuq ''yeesal'' walla nga bës ''F5''; su dee '''Opera''' faral nëbiit li (''Jumtukaay → Tànneef'') su dee '''Internet Explorer:''' cuq ci ''yeesal te bësaale ''Ctrl''  walla nga bës ''Ctrl-F5''.",
        "usercssyoucanpreview": "'''Xelal :''' di la digël nga cuq ci «Wonendi» ngir gis say xobi CSS walla JavaScript yu bees laata nga leen di denc.",
        "session_fail_preview_html": "'''Jéegalu ! manu noo denc say coppite ngir ñakkug ay njoxe ñeel sag dugg.'''\n\n''Segam ci bii dal dañ fee doxal HTML bu ñumm, ngir ay ngirtey kaaraange, wonendi gi du gisu.''\n\n'''Su tolof-tolof bi wéyee, man nga jéem a génn te duggaat .'''",
        "token_suffix_mismatch": "'''Votre modification n’a pas été acceptée car votre navigateur a mal codé les caractères de ponctuation dans l’identifiant de modification.'''\nCe rejet est nécessaire pour empêcher la corruption du texte de la page.\nCe problème se produit parfois lorsque vous utilisez un serveur mandataire anonyme problématique basé sur le web.",
        "editing": "Coppiteg $1",
+       "creating": "Moo ngi sos $1",
        "editingsection": "Coppiteg $1 (xaaj)",
        "editingcomment": "Coppiteg $1 (xaaj bu bees)",
        "editconflict": "jàppanteb coppite ci: $1",
        "revertmerge": "Neenal boole yi",
        "mergelogpagetext": "Lii ci suuf ab lim la ci boole yu mujj yu jaar-jaaru aw xët ak weneen .",
        "history-title": "Jaar-jaaru sumbi « $1 »",
+       "difference-title": "$1 wuute gi ci sumb yi",
        "lineno": "Rëdd $1 :",
        "compareselectedversions": "Méngale sumb yi nga fal",
        "editundo": "neenal",
+       "diff-multi-sameuser": "({{PLURAL:$1|Genn coppite gi ci diggante bi bu|$1 coppite yi ci diggante bi yu}} jëfandikukat bi ci-boppam {{PLURAL:$1|wonewuñu ko|wonewuñu leen}} )",
        "searchresults": "Ngértey ceet gi",
        "searchresults-title": "Ngértey ceet gu \"$1\"",
        "titlematches": "Koju xët yi ñoo yam",
        "shown-title": "Wone $1 {{PLURAL:$1|ngérte|ngérte}} ciw xët",
        "viewprevnext": "Xool ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''wenn xët wu tudd « [[:$1]] » moo am ci bii wiki'''",
-       "searchmenu-new": "'''Sosal xët wii di « [[:$1|$1]] » ci bii wiki !'''",
+       "searchmenu-new": "<strong>Sosal xët wii di « [[:$1|$1]] » ci bii wiki !</strong>\n{{PLURAL:$2|0=|Xoolal itam xët wees gis ak sa ceet gi.|Xoolal itam ngértey ceet gi.}}",
        "searchprofile-articles": "Xëti ëmbiit",
        "searchprofile-images": "Barixibaarukaay",
        "searchprofile-everything": "Lépp",
        "searchrelated": "yeneeni ngérte",
        "searchall": "yépp",
        "showingresults": "Woneg <b>$1</b> {{PLURAL:$1|ngérte|ciy ngérte}} doore ko ci #<b>$2</b>.",
+       "search-showingresults": "{{PLURAL:$4|Ngérte <strong>$1</strong> ci <strong>$3</strong>|Ngérte <strong>$1 - $2</strong> ci <strong>$3</strong>}}",
        "search-nonefound": "Ceet gi jurul dara.",
        "powersearch-legend": "Ceet gu xóot",
        "powersearch-ns": "Seet ci barabi tur yi :",
        "search-external": "Ceet gu biti",
        "searchdisabled": "Ceet gi ci {{SITENAME}} doxul. Ci négandiku doxal gi, man nga seet ci Google. Jàppal ne, xéj-na ëmbiti {{SITENAME}} gi ci bii seetukaay yeesaluñ leen.",
        "preferences": "Tànneef",
-       "mypreferences": "Samay tànneef",
+       "mypreferences": "Tànnéef",
        "prefs-edits": "Limu coppite yi:",
        "prefs-skin": "Melokaan",
        "skin-preview": "Wonendil",
        "action-userrights-interwiki": "soppi aqi jëfandikukat yu jëfandikukat yu beneen wiki",
        "action-siteadmin": "caabi walla caabeedi dàttub njoxe bi",
        "nchanges": "$1 {{PLURAL:$1|coppite|ciy coppite}}",
+       "enhancedrc-history": "jaar-jaar",
        "recentchanges": "Coppite yu mujj",
        "recentchanges-legend": "tànneefi coppite yu mujj",
        "recentchanges-summary": "Toppal ci wii xët coppite yu mujj ci {{SITENAME}}.",
        "rcnotefrom": "Yii ñooy coppite yi dalee '''$2''' (ba '''$1''').",
        "rclistfrom": "Wone coppite yi mujj yi dooree $3 $2",
        "rcshowhideminor": "$1 Coppite yu néewal",
+       "rcshowhideminor-hide": "Nëbb",
        "rcshowhidebots": "$1 bot yi",
+       "rcshowhidebots-show": "Wone",
        "rcshowhideliu": "$1 jëfandikukat yi bindu",
+       "rcshowhideliu-hide": "Nëbb",
        "rcshowhideanons": "$1 jëfandikukat yu binduwul",
+       "rcshowhideanons-show": "Wone",
+       "rcshowhideanons-hide": "Nëbb",
        "rcshowhidepatr": "$1 coppite bees fuglu",
        "rcshowhidemine": "$1 samay cëru",
+       "rcshowhidemine-hide": "Nëbb",
        "rclinks": "Wone $1 coppite yi mujj ci $2  fan yi mujj <br />$3.",
        "diff": "wuute",
        "hist": "Jaar",
        "filewasdeleted": "Dencukaay bu tudd nii yeboon nañ ko fi ba noppi, faraat ko. Saytul $1 laataa nga koy yebaat.",
        "filename-bad-prefix": "Turu dencukaay bi ngay yeb moo ngi tambalee '''\"$1\"''', te muy tur wu nosukaay bi di joxal boppam nataalukaay yi.\nDila ñaan nga tànn tur wuy faramfacce dencukaay bi.",
        "upload-success-subj": "Yeb gi jàll na",
+       "license-header": "Anami Jëfandikoo gi",
        "imgfile": "Dencukaay",
        "listfiles": "Limu dencukaay",
        "listfiles_date": "Taariix",
        "uploadnewversion-linktext": "Yeb sumb bu bees bu bii dencukaay",
        "shared-repo-from": "$1",
        "shared-repo": "ab dencu bees bokk",
+       "upload-disallowed-here": "Manoo bindaat ci kaw bii dencukaay.",
        "filerevert": "Loppanti $1",
        "filerevert-legend": "Delloowaat dencukaay bi",
        "filerevert-intro": "Yaa ngi waaj a delloowaat dencukaay bii di '''[[Media:$1|$1]]''' ci  [$4 sumb bu $2 ci $3].",
        "booksources": "Téereb delluwaay",
        "booksources-search-legend": "Seet ab téereb delluwaay",
        "booksources-isbn": "ISBN :",
+       "booksources-search": "Seet",
        "booksources-text": "Lii ab lima ay lëkkalekaay la yu jëme ciy dal yu biti yuy jaayi téere yu yees ak yu magget, man nga faa ami xibaar ñeel téere yi ngay seet:",
        "booksources-invalid-isbn": "ISBN bi nga joxe mel na ni baaxul; xoolal bu baax ndax defoo ag njuumte ci bi nga koy duppi ca gongikuwaayam.",
        "specialloguserlabel": "Jëfandikukat :",
        "namespace": "Barabu tur :",
        "invert": "Jallarbi fal gi",
        "tooltip-invert": "Falal bii néeg ngir nëbb coppitey xët yi ci barabu tur bi nga tànn (ak yi mu lonkool su fekkee tànnaale nga leen)",
+       "namespace_association": "Barabu turam",
+       "tooltip-namespace_association": "Falal bii néeg ngir boolewaale ci xëtu waxtaanuwaay walla koju barabu tur bi nga fal",
        "blanknamespace": "(njëkk)",
-       "contributions": "Cëruy bii jëfandikukat",
+       "contributions": "Cëruy bii {{GENDER:$1|jëfandikukat}}",
        "contributions-title": "Cëru yu jëfandikukat bii di $1",
-       "mycontris": "Samay cëru",
+       "mycontris": "Cëru",
        "contribsub2": "Ngir $1 ($2)",
        "nocontribs": "Amul benn coppite bu melokaanoo nii bu ñu gis.",
        "uctop": "(bi mujj)",
        "nolinkshere-ns": "Amul wenn xët wu lëkkalook wii '''[[:$1]]''' ci barabu tur bi nga tànn.",
        "isredirect": "Xëtu jubluwaat",
        "istemplate": "mboole",
-       "isimage": "lëkkalekaayu nataal bi",
+       "isimage": "lëkkalekaayu dencukaay bi",
        "whatlinkshere-prev": "{{PLURAL:$1|wi jiitu|$1 yi jiitu}}",
        "whatlinkshere-next": "{{PLURAL:$1|wi toftal|$1 yi toftal}}",
        "whatlinkshere-links": "← lëkkalekaay",
        "tooltip-upload": "Door yeb gi",
        "tooltip-rollback": "\"Delloowaat\" dafay neenal coppitey cërukat bi mujj ci xët wii ci benn cuq.",
        "tooltip-undo": "\"Neenal\" dafay far coppite yi te ubbi palanteeru coppite bi ci anamug wonendi.\nDafay tax nga man a bind ngirte li ci boyotu tënk bi.",
+       "tooltip-summary": "Def ci ab tënk",
        "common.css": "/* CSS yiñ def fii dañuy am ay njeexit ci col yépp  */",
        "common.js": "/* Bépp JavaScript buñ fi duggal, xët yéppa koy yeb ak jëfandikukat bumu manti doon. */",
        "anonymous": "Benn walla ay jëfandikukat yu binduwul yu {{SITENAME}}",
        "spamprotectiontitle": "Seggukaay lank-spam",
        "spam_reverting": "Loppantib sumb mu mujj mu amul lëkkalekaay buy jëme $1",
        "spam_blanking": "Setal nañ wecc sumb yi amoon lëkkalekaay buy jëme $1",
+       "simpleantispam-label": "Caytu lànk-spam.\n<strong>Bu</strong> fi yokk lenn!",
        "pageinfo-toolboxlink": "Xibaar ci xëtu wi",
        "previousdiff": "← Coppite yi gën a yàgg",
        "nextdiff": "Coppite yi mujj →",
        "metadata-fields": "Tooli jégginjoxe yu nataal yi ñu lim ci bii bataaxal dañ leen di wone ci xëtu faramfàcce wu nataal bi su fekkee dañoo lem àlliwab jégginjoxe bi.\nYeneen tool yi dañ leen di nëbb.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Yaatuwaay",
        "exif-imagelength": "Kawewaay",
+       "exif-orientation": "Jubluwaay",
+       "exif-xresolution": "Ñawaay gu tëdd",
+       "exif-yresolution": "Ñawaay gu taxaw",
+       "exif-datetime": "Taariix ak waxtu coppiteg dencukaay bi",
+       "exif-make": "Defarkatu nataalukaay bi",
+       "exif-software": "Jëfekaay bees jëfandikoo",
+       "exif-exifversion": "Sumb bu Exif",
+       "exif-colorspace": "Barabu melo",
        "exif-usercomment": "Kadduy jëfëndikookat bi",
+       "exif-datetimeoriginal": "Taariix ak waxtub njurug njoxe yi",
+       "exif-orientation-1": "Jaadu",
        "exif-componentsconfiguration-0": "Amul",
        "namespacesall": "Yépp",
        "monthsall": "Yépp",
        "watchlisttools-view": "Limu toppte",
        "watchlisttools-edit": "Xool te soppi limu toppte gi",
        "watchlisttools-raw": "Soppi lim gi",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|waxtaan]])",
        "specialpages": "Xëti jagleel",
        "tag-filter": "Seggee ak [[Special:Tags|Tafaan]]:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tag}}]]: $2)",
+       "logentry-delete-delete": "$1 {{GENDER:$2|moo far}} xët wi $3",
        "revdelete-restricted": "doxalub digal ngir yorkat yi",
        "revdelete-unrestricted": "digal ngir yorkat yi deñ na",
+       "logentry-move-move": "$1 {{GENDER:$2|moo toppale}} xët wii di $3 jëmale ko ci $4",
        "logentry-newusers-create": "Sàqum jëfandikukat $1 sos nañu ko",
        "rightsnone": "(menn)",
        "revdelete-summary": "soppi tënk gi",
index 6050760..0a79897 100644 (file)
        "passwordreset-emailtitle": "ანგარიშის მონაცემები {{SITENAME}}-თვის",
        "passwordreset-emailtext-ip": "ვიღაცამ (შესაძლოა თქვენ, ამ IP-მისამართიდან $1) მოითხოვა თქვენი \nპაროლის თავიდან დაყენება საიტისათვის {{SITENAME}} ($4).\n{{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:\n\n$2\n\n{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.\nთქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.\nთუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი\nდა აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას\nდა გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.",
        "passwordreset-emailtext-user": "მომხმარებელმა $1 პროექტიდან {{SITENAME}} მოითხოვა თქვენი \nპაროლის თავიდან დაყენება საიტისათვის {{SITENAME}} ($4).\n{{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:\n\n$2\n\n{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.\nთქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.\nთუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი\nდა აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას\nდა გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.",
-       "passwordreset-emailelement": "მომხმარებლის სახელი: $1\nდროებითი პაროლი: $2",
+       "passwordreset-emailelement": "მომხმარებლის სახელი: \n$1\n\nდროებითი პაროლი: \n$2",
        "passwordreset-emailsent": "პაროლის თავიდან დასაყენებელი ელ.ფოსტა გაიგზავნა.",
        "passwordreset-emailsent-capture": "ქვემოთ ნაჩვენები პაროლის თავიდან დასაყენებელი წერილი გაიგზავნა.",
        "passwordreset-emailerror-capture": "ქვემოთ მოცემულია შექმნილი პაროლის დასაყენებელი წერილი, რომლის გაგზავნაც {{GENDER:$2|მომხმარებელთან}} ვერ მოხერხდა: $1 გამო",
index d0a661b..064e619 100644 (file)
        "passwordreset-emailtitle": "קאנטע פרטים אין {{SITENAME}}",
        "passwordreset-emailtext-ip": "עמעצער (מסתמא איר, פון IP אדרעס $1) האט געבעטן צוריקצושטעלן אייער פאסווארט פאר {{SITENAME}} ($4). די פאלגנדע באניצער {{PLURAL:$3|קאנטע איז|קאנטעס זענען}}\nפארבונדן מיט דעם ע־פאסט אדרעס:\n\n$2\n\n{{PLURAL:$3|דאס פראוויזארישע פאסווארט|די פראוויזארישע פאסווערטער}} וועלן אויסגיין נאך {{PLURAL:$5|איין טאג|$5 טעג}}.\nאיר זאלט אריינלאגירן און קלויבן א נייע פאסווארט אצינד. טאמער א צווייטער האט געשיקט די בקשה,\nאדער ווען איר געדענקט יא אייער פריעריקע פאסווארט, און וויל עס נישט ענדערן,\n קענט איר איגנארירן דעם אנזאג און ניצן ווייטער דאס אלטע פאסווארט.",
        "passwordreset-emailtext-user": "באניצער $1 אויף  {{SITENAME}} האט געבעטן צוריקצושטעלן אייער פאסווארט פאר {{SITENAME}} ($4).\nדי פאלגנדע באניצער {{PLURAL:$3|קאנטע איז|קאנטעס זענען}} פארבונדן מיט דעם ע־פאסט אדרעס:\n\n$2\n\n{{PLURAL:$3|דאס פראוויזארישע פאסווארט|די פראוויזארישע פאסווערטער}} וועלן אויסגיין נאך {{PLURAL:$5|איין טאג|$5 טעג}}.\nאיר זאלט אריינלאגירן און קלויבן א נייע פאסווארט אצינד. טאמער א צווייטער האט געשיקט די בקשה,\nאדער ווען איר געדענקט יא אייער פריעריקע פאסווארט, און וויל עס נישט ענדערן,\n קענט איר איגנארירן דעם אנזאג און ניצן ווייטער דאס אלטע פאסווארט.",
-       "passwordreset-emailelement": "באַניצער נאָמען: $1\nפראוויזארישער פּאַראָל: $2",
+       "passwordreset-emailelement": "באַניצער נאָמען: \n$1\n\nפראוויזארישער פּאַראָל: \n$2",
        "passwordreset-emailsent": "מ'האט געשיקט א פאסווארט צוריקשטעלן ע-פּאָסט.",
        "passwordreset-emailsent-capture": "מען האט געשיקט א פאסווארט צוריקשטעלן בליצבריוו, וואס ווערט געוויזן אונטן.",
        "passwordreset-emailerror-capture": "מען האט געשאפן א פאסווארט צוריקשטעלן בליצבריוו, וואס ווערט געוויזן אונטן, אבער שיקן צום {{GENDER:$2|באניצער}}איז דורכגעפאלן: $1",
        "api-error-copyuploaddisabled": "אַרויפֿלאָדן דורך URL איז אומאַקטיווירט אויף דעם סערווירער.",
        "api-error-duplicate": "שוין דאָ אין דער וויקי {{PLURAL:$1|[$2 ָאַן אַנדער טעקע]|[$2 אַנדערע טעקעס]}} מיטן זעלבן תוכן.",
        "api-error-duplicate-archive": "ס'איז שוין געווען {{PLURAL:$1| [$2 אַן אַנדער טעקע] | [$1 עטלעכע אַנדערע טעקעס]}} אויף דעם פּלאַץ מיט דעם זעלביקן תוכן, אָבער {{PLURAL:$1| עס איז | זיי זענען}}  געווארן אויסגעמעקט.",
-       "api-error-duplicate-archive-popup-title": "פֿאַרטאפלטע {{PLURAL:$1| טעקע וואָס איז| טעקעס וואָס זענען}}  שוין געווארן אויסגעמעקט",
-       "api-error-duplicate-popup-title": "פֿאַרטאפלטע {{PLURAL:$1| טעקע | טעקעס}}",
        "api-error-empty-file": "די טעקע וואָס איר האט אײַנגעגעבן איז ליידיג.",
        "api-error-emptypage": "שאפן נייע ליידיקע בלעטער איז נישט ערלויבט.",
        "api-error-fetchfileerror": "אינערלעכער גרײַז: עפעס איז קאַליע געווארן בײַם ברענגען די טעקע.",
index 4f05a3c..dd1bb51 100644 (file)
        "passwordreset-emailtitle": "Àwọn ẹ̀kúnrẹ́rẹ́ àpamọ́ lórí {{SITENAME}}",
        "passwordreset-emailtext-ip": "Ẹnìkan (bóyá ẹ̀yin ni, láti àdírẹ̀sì IP $1) tọrọ àtúntò ọ̀rọ̀ìpamọ́ yín fún {{SITENAME}} ($4). {{PLURAL:$3|Àkópamọ́|Àwọn àkópamọ́}} oníṣe ìsàlẹ̀ yìí ní ìbáṣe pọ̀ mọ́ àdírẹ̀sì e-mail yìí:\n\n$2\n\n{{PLURAL:$3|Ọ̀rọ̀ìpamọ́ onígbàdíẹ̀ yìí|Àwọn ọ̀rọ̀ìpamọ́ onígbàdíẹ̀ wọ̀nyí}} yíò dópin lẹ́yìn {{PLURAL:$5|ọjọ́ kan|ọjọ́ $5}}.\nẸ gbọ́dọ̀ lọ yan ọ̀rọ̀ìpamọ́ tuntun báyìí. Tóbá jẹ́ pé ẹ̀lòmíràn ló ṣe ìtọrọ yìí, tàbí tọ́bá jẹ́ pé ẹ ti rántí ọ̀rọ̀ìpamọ́ àtètèkọ́ṣe yín, tí ẹ kọ̀ sí fẹ́ yíipadà mọ́, ẹ lé ṣàìkàsí ìránṣẹ́ yìí, kí ẹ sì tẹ̀síwájú ní lo ọ̀rọ̀ìpamọ́ àtijọ́ yín.",
        "passwordreset-emailtext-user": "Oníṣe $1 lórí {{SITENAME}} tọrọ àtúntò ọ̀rọ̀ìpamọ́ yín fùn {{SITENAME}} ($4). {{PLURAL:$3|Àkópamọ́|Àwọn àkópamọ́}} oníṣe ìsàlẹ̀ yìí ní ìbáṣe pọ̀ mọ́ àdírẹ̀sì e-mail yìí:\n\n$2\n\n{{PLURAL:$3|Ọ̀rọ̀ìpamọ́ onígbàdíẹ̀ yìí|Àwọn ọ̀rọ̀ìpamọ́ onígbàdíẹ̀ wọ̀nyí}} yíò dópin lẹ́yìn {{PLURAL:$5|ọjọ́ kan|ọjọ́ $5}}.\nẸ gbọ́dọ̀ lọ yan ọ̀rọ̀ìpamọ́ tuntun báyìí. Tóbá jẹ́ pé ẹ̀lòmíràn ló ṣe ìtọrọ yìí, tàbí tọ́bá jẹ́ pé ẹ ti rántí ọ̀rọ̀ìpamọ́ àtètèkọ́ṣe yín, tí ẹ kọ̀ sí fẹ́ yíipadà mọ́, ẹ lé ṣàìkàsí ìránṣẹ́ yìí, kí ẹ sì tẹ̀síwájú ní lo ọ̀rọ̀ìpamọ́ àtijọ́ yín.",
-       "passwordreset-emailelement": "Orúkọ oníṣe: $1\nỌ̀rọ̀ìpamọ́ ìgbàdíẹ̀: $2",
+       "passwordreset-emailelement": "Orúkọ oníṣe: \n$1\n\nỌ̀rọ̀ìpamọ́ ìgbàdíẹ̀: \n$2",
        "passwordreset-emailsent": "E-mail àtúntò ọ̀rọ̀ìpamọ́ ti jẹ́ fífiránṣẹ́.",
        "passwordreset-emailsent-capture": "E-mail àtúntò ọ̀rọ̀ìpamọ́ kan ti jẹ́ fífiránṣẹ́. Òhun nìyí nísàlẹ̀.",
        "passwordreset-emailerror-capture": "E-mail ìyípadà ọ̀rọ̀ìpamọ́ jẹ́ dídá, òhun lóhàn nísàlẹ̀ yìí, sùgbọ́n ìfiránṣẹ́ rẹ̀ sí {{GENDER:$2|oníṣe}} náà kùnà: $1",
        "emailuser": "Ẹ fi e-mail ránṣẹ́ sí oníṣe yìí",
        "emailuser-title-target": "E-mail sí {{GENDER:$1|oníṣe}} yìí",
        "emailuser-title-notarget": "E-mail sí oníṣe",
-       "emailpage": "E-mail sí oníṣe",
        "emailpagetext": "Ẹ le lo fọ́ọ̀mù ìsàlẹ̀ yìí láti fi e-mail ránṣẹ́ sí {{GENDER:$1|oníṣe}} yìí.\nÀdírẹ́ẹ̀sì e-mail tí ẹ tìbọ sínú [[Special:Preferences|àwọn ìfẹ́ràn oníṣe yín]] yíò hàn bíi \"Láti\" àdírẹ́ẹ̀sì e-mail náà, kí agbaìránṣẹ́ ó le baà fi ìdáhùn ránṣẹ́ tààrà sí yín.",
        "defemailsubject": "E-mail {{SITENAME}} látọwọ́ oníṣe \"$1\"",
        "usermaildisabled": "Àdálẹ́kun e-mail oníṣe",
        "api-error-badtoken": "Àsìṣe inú: Ìdáramọ̀ búburú.",
        "api-error-copyuploaddisabled": "Ìrùsókè pẹ̀lú URL jẹ́ dídálẹ́kun lórí ẹ̀rọ-ìpèsè yìí.",
        "api-error-duplicate": "{{PLURAL:$1|[$2 Fáìlì míràn]|[$2 Àwọn fáìlì míràn]}} kan tilẹ̀ wà lórí ibiìtàkùn pẹ̀lú àkóónú kannáà.",
-       "api-error-duplicate-archive": "{{PLURAL:$1|[$2 Fáìlì míràn]|[$2 Àwọn fáìlì míràn]}} kan tilẹ̀ wà lórí ibiìtàkùn pẹ̀lú àkóónú kannáà, sùgbọ́n {{PLURAL:$1|ó|wọ́n}} ti jẹ́ píparẹ́.",
-       "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|Fáìlì àdáwòkọ tó ti|Àwọn fáìlì àdáwòkọ tí wọ́n ti}} jẹ́ píparẹ́.",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|Fáìlì|Àwọn fáìlì}} àdáwòkọ.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Fáìlì míràn|Àwọn fáìlì míràn}} kan tilẹ̀ wà lórí ibiìtàkùn pẹ̀lú àkóónú kannáà, sùgbọ́n {{PLURAL:$1|ó|wọ́n}} ti jẹ́ píparẹ́.",
        "api-error-empty-file": "Fáílì tí ẹ fisílẹ̀ jẹ́ òfo.",
        "api-error-emptypage": "Ẹ kò ní àyè láti dá ojúewé tuntun tó jẹ́ òfo.",
        "api-error-fetchfileerror": "Àsìṣe inú: Kò le mú fáìlì ná jáde nítorí àsìṣe.",
index 2a0fac2..d5dc7ad 100644 (file)
        "passwordreset-emailtitle": "{{SITENAME}}嘅戶口資料",
        "passwordreset-emailtext-ip": "有人(可能係閣下自己,來自IP地址$1)請求更改閣下喺{{SITENAME}}($4)嘅密碼。同爾個電子郵件有關聯嘅用戶包括:\n\n$2\n\n{{PLURAL:$3|爾個|爾啲}}臨時密碼會喺{{$5}}日之後失效。\n\n如果係閣下自己請求改密碼嘅,請馬上登錄{{SITENAME}}並且更改密碼。如果閣下諗返起自己個密碼,或者根本無申請過改密碼嘅話,請忽略爾條訊息,繼續用返舊密碼。",
        "passwordreset-emailtext-user": "{{SITENAME}}用戶$1請求更改閣下喺{{SITENAME}}道嘅密碼$4。同爾個電子郵件有關聯嘅用戶包括:\n\n$2\n\n{{PLURAL:$3|爾個|爾啲}}臨時密碼會喺{{$5}}日之後失效。\n\n如果係閣下自己請求改密碼嘅,請馬上登錄{{SITENAME}}並且更改密碼。如果閣下諗返起自己個密碼,或者根本無申請過改密碼嘅話,請忽略爾條訊息,繼續用返舊密碼。",
-       "passwordreset-emailelement": "用戶名:$1\n臨時密碼:$2",
+       "passwordreset-emailelement": "用戶名:\n$1\n\n臨時密碼:\n$2",
        "passwordreset-emailsent": "密碼重設電郵經已送出。",
        "passwordreset-emailsent-capture": "密碼重設電郵經已送出,下面有顯示。",
        "passwordreset-emailerror-capture": "密碼重設電郵經已送出,下面有顯示,但送畀{{GENDER:$2|user}}時失敗: $1",
index 7113f38..1113d86 100644 (file)
        "nstab-special": "特殊页面",
        "nstab-project": "项目页面",
        "nstab-image": "文件",
-       "nstab-mediawiki": "息",
+       "nstab-mediawiki": "息",
        "nstab-template": "模板",
        "nstab-help": "帮助页面",
        "nstab-category": "分类",
+       "mainpage-nstab": "首页",
        "nosuchaction": "无此操作",
        "nosuchactiontext": "URL指定的操作无效。您可能输入了错误的URL地址,或是点击了错误的链接。这也可能表明{{SITENAME}}使用的软件存在漏洞。",
        "nosuchspecialpage": "此特殊页面不存在",
        "passwordreset-emailtitle": "在 {{SITENAME}} 的帐户详细信息",
        "passwordreset-emailtext-ip": "有人(可能是您,来自IP地址$1)请求重设{{SITENAME}}($4)上相关账户的密码。以下$3个账户与该电子邮件地址关联:\n\n$2\n\n这个临时密码将会在{{PLURAL:$5|一天|$5天}}后过期。请立即登录并设置新的密码。如果请求是其他人发出的,或者您已回忆起您的旧密码并不再需要更改,您可以忽略本条消息并继续使用原密码。",
        "passwordreset-emailtext-user": "用户$1请求重设{{SITENAME}}($4)上您的账户的密码。{{PLURAL:$3|以下账户|此账户}}与该电子邮件地址关联:\n\n$2\n\n这个临时密码将会在{{PLURAL:$5|一天|$5天}}后过期。请立即登录并设置新的密码。如果请求是其他人发出的,或者您已回忆起您的旧密码并不再需要更改,您可以忽略本条消息并继续使用原密码。",
-       "passwordreset-emailelement": "用户名:$1\n临时密码:$2",
+       "passwordreset-emailelement": "用户名:\n$1\n\n临时密码:\n$2",
        "passwordreset-emailsent": "密码重置邮件已发送。",
        "passwordreset-emailsent-capture": "密码重设电子邮件已发送,并在下面显示。",
        "passwordreset-emailerror-capture": "重置密码邮件已生成,但是无法向{{GENDER:$2|下列用户}} 发送:$1",
        "changeemail-password": "你的{{SITENAME}}密码:",
        "changeemail-submit": "更改电子邮件地址",
        "changeemail-throttled": "您最近尝试了太多次登录。请等待$1后再试。",
+       "changeemail-nochange": "请输入一个不同的新的电子邮件地址。",
        "resettokens": "重置密钥",
        "resettokens-text": "你可以在这里重置允许访问与你的账户有关的特定私人数据的密钥。\n\n如果你意外将它们分享给他人,或是你的账户已经被入侵,你应该重置它们。",
        "resettokens-no-tokens": "没有可以重置的密钥。",
        "userjspreview": "'''请记住你现在只是在测试/预览你的用户JavaScript。它尚未保存!'''",
        "sitecsspreview": "'''请记住你现在只是在预览该CSS。它尚未保存!'''",
        "sitejspreview": "'''请记住你现在只是在预览该JavaScript代码。它尚未保存!'''",
-       "userinvalidcssjstitle": "'''警告:''' 不存在皮肤\"$1\"。注意自定义的 .css 和 .js 页要使用小写标题,例如,{{ns:user}}:Foo/vector.css 不同于 {{ns:user}}:Foo/Vector.css。",
+       "userinvalidcssjstitle": "<strong>警告:</strong>不存在皮肤“$1”。注意自定义的 .css 和 .js 页要使用小写标题,例如,{{ns:user}}:Foo/vector.css 不同于 {{ns:user}}:Foo/Vector.css。",
        "updated": "(已更新)",
        "note": "'''注意:'''",
        "previewnote": "'''请记住这只是预览。'''你的更改还没有保存!",
        "permissionserrorstext-withaction": "因为以下{{PLURAL:$1|原因}},你没有权限$2:",
        "recreate-moveddeleted-warn": "'''警告:你正在重新创建曾经被删除的页面。'''\n\n你应该考虑继续编辑本页是否合适。这里提供本页的删除和移动日志以供参考:",
        "moveddeleted-notice": "本页面已被删除。下面提供本页的删除和移动日志以供参考。",
+       "moveddeleted-notice-recent": "抱歉,此页面刚刚被删除(在最近24小时内)。\n页面的删除和移动日志在下方提供以供参考。",
        "log-fulllog": "查看完整日志",
        "edit-hook-aborted": "编辑被hook指令取消。\n无解释。",
        "edit-gone-missing": "不能更新页面。\n它可能刚刚被删除。",
        "common.css": "/* 放置于这里的CSS将应用于所有皮肤 */",
        "print.css": "/* 放置于这里的CSS将影响打印输出 */",
        "noscript.css": "/* 放置于这里的CSS将影响停用JavaScript的用户 */",
-       "group-autoconfirmed.css": "/* 放置于这里的CSS将只影响自动确认用户 */",
-       "group-user.css": "/* 放置于此的CSS将只影响注册用户 */",
-       "group-bot.css": "/* 放置于这里的CSS将只影响机器人 */",
-       "group-sysop.css": "/* 放置于这里的CSS将只影响管理员 */",
-       "group-bureaucrat.css": "/* 放置于这里的CSS将只影响行政员 */",
+       "group-autoconfirmed.css": "/* 这里放置的CSS将只影响自动确认用户 */",
+       "group-user.css": "/* 这里放置的CSS将只影响注册用户 */",
+       "group-bot.css": "/* 这里放置的CSS将只影响机器人 */",
+       "group-sysop.css": "/* 这里放置的CSS将只影响管理员 */",
+       "group-bureaucrat.css": "/* 这里放置的CSS将只影响行政员 */",
        "common.js": "/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */",
        "group-autoconfirmed.js": "/* 这里的任何JavaScript将只为自动确认用户加载 */",
        "group-user.js": "/* 放置于此的JavaScript将只为注册用户加载 */",
        "api-error-badaccess-groups": "您没有将文件上传到此 wiki 的权限。",
        "api-error-badtoken": "内部错误:会话无效。",
        "api-error-copyuploaddisabled": "通过URL上传的功能已被此服务器禁用。",
-       "api-error-duplicate": "在网站上已经具有相同内容的{{PLURAL:$1|[$2 另一个文件]|[$2 另一些文件]}}。",
-       "api-error-duplicate-archive": "在网站上曾经具有相同内容的{{PLURAL:$1|[$2 另一个文件]|[$2 另一些文件]}},但已被删除。",
-       "api-error-duplicate-archive-popup-title": "已被删的除重复{{PLURAL:$1|文件}}。",
-       "api-error-duplicate-popup-title": "重复的 {{PLURAL:$1|文件}}。",
+       "api-error-duplicate": "在网站上已经具有相同内容的{{PLURAL:$1|另一个文件|另一些文件}}。",
+       "api-error-duplicate-archive": "在网站上曾经具有相同内容的{{PLURAL:$1|另一个文件|另一些文件}},但已被删除。",
        "api-error-empty-file": "您提交的文件是空的。",
        "api-error-emptypage": "不能创建没有内容的新页面。",
        "api-error-fetchfileerror": "内部错误:获取文件时发生错误。",
index a56e266..f2ef8fd 100644 (file)
@@ -61,7 +61,8 @@
                        "EagerLin",
                        "Cbliu",
                        "Citizen01",
-                       "Zhxy 519"
+                       "Zhxy 519",
+                       "Macofe"
                ]
        },
        "tog-underline": "底線標示連結:",
@@ -86,7 +87,7 @@
        "tog-enotifusertalkpages": "當我的對話頁面有變更時,傳送電子郵件通知我",
        "tog-enotifminoredits": "當頁面與檔案有小修訂時,傳送電子郵件通知我",
        "tog-enotifrevealaddr": "在通知郵件中顯示我的電子郵件地址",
-       "tog-shownumberswatching": "顯示正在監視的使用者數",
+       "tog-shownumberswatching": "顯示監視使用者數量",
        "tog-oldsig": "現有簽名:",
        "tog-fancysig": "將簽名視為 Wikitext 語言 (不自動產生連結)",
        "tog-uselivepreview": "使用即時預覽",
@@ -97,7 +98,7 @@
        "tog-watchlisthideliu": "隱藏監視清單中已登入使用者的編輯",
        "tog-watchlisthideanons": "隱藏監視清單中匿名使用者的編輯",
        "tog-watchlisthidepatrolled": "隱藏監視清單中已巡查的編輯",
-       "tog-ccmeonemails": "傳送郵件給他人時,也送一份副本到我的電子郵件信箱",
+       "tog-ccmeonemails": "我給他人寄出郵件時,也寄出一份副本到我的電子郵件信箱",
        "tog-diffonly": "比對差異時下方不顯示頁面內容",
        "tog-showhiddencats": "顯示隱藏分類",
        "tog-norollbackdiff": "執行還原後略過差異比對",
        "editfont-monospace": "等距字型",
        "editfont-sansserif": "無襯線字型",
        "editfont-serif": "襯線字型",
-       "sunday": "星期日",
-       "monday": "星期一",
-       "tuesday": "星期二",
-       "wednesday": "星期三",
-       "thursday": "星期四",
-       "friday": "星期五",
-       "saturday": "星期六",
+       "sunday": "日",
+       "monday": "一",
+       "tuesday": "二",
+       "wednesday": "三",
+       "thursday": "四",
+       "friday": "五",
+       "saturday": "六",
        "sun": "日",
        "mon": "一",
        "tue": "二",
        "permalink": "靜態連結",
        "print": "列印",
        "view": "檢視",
-       "view-foreign": "ç\94¨ $1 æª¢è¦\96",
+       "view-foreign": "å\9c¨ $1 æª¢è¦\96",
        "edit": "編輯",
        "edit-local": "編輯本地說明",
        "create": "建立",
        "redirectedfrom": "(已重新導向自 $1)",
        "redirectpagesub": "重新導向頁面",
        "redirectto": "重新導向至:",
-       "lastmodifiedat": "此頁面最後修於 $1 $2。",
+       "lastmodifiedat": "此頁面最後修於 $1 $2。",
        "viewcount": "此頁面已被檢視過 $1 次。",
        "protectedpage": "受保護頁面",
        "jumpto": "前往:",
        "mainpage-description": "首頁",
        "policy-url": "Project:Policy",
        "portal": "社群入口",
-       "portal-url": "Project:Community portal",
+       "portal-url": "Project:社群入口",
        "privacy": "隱私政策",
        "privacypage": "Project:隱私政策",
        "badaccess": "權限錯誤",
        "feedlinks": "訂閱:",
        "feed-invalid": "無效的訂閱 Feed 類型。",
        "feed-unavailable": "目前未提供 RSS 或 Atom",
-       "site-rss-feed": "$1 的 RSS feed",
-       "site-atom-feed": "$1 的 Atom feed",
-       "page-rss-feed": "訂閱 \"$1\" 的 RSS feed",
-       "page-atom-feed": "訂閱 \"$1\" 的 Atom feed",
+       "site-rss-feed": "$1 的 RSS 摘要",
+       "site-atom-feed": "$1 的 Atom 摘要",
+       "page-rss-feed": "\"$1\" 的 RSS 摘要",
+       "page-atom-feed": "\"$1\" 的 Atom 摘要",
        "red-link-title": "$1 (頁面不存在)",
        "sort-descending": "降冪排序",
        "sort-ascending": "昇冪排序",
        "userlogin-yourname": "使用者名稱",
        "userlogin-yourname-ph": "輸入您的使用者名稱",
        "createacct-another-username-ph": "輸入使用者名稱",
-       "yourpassword": "您的密碼:",
+       "yourpassword": "密碼:",
        "userlogin-yourpassword": "密碼",
        "userlogin-yourpassword-ph": "輸入您的密碼",
        "createacct-yourpassword-ph": "輸入密碼",
        "passwordreset-emailtitle": "於 {{SITENAME}} 的帳號詳細資訊",
        "passwordreset-emailtext-ip": "不明人士 (可能是您自己,來自 IP 位址 $1) 要求重設在 {{SITENAME}} ($4) 的密碼,下列是與此電子郵件地址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略本訊息並且繼續使用您原本的密碼。",
        "passwordreset-emailtext-user": "使用者 $1 要求重設在 {{SITENAME}} ($4) 的密碼,下列是與此電子郵件位址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略此訊息並且繼續使用您原本的密碼。",
-       "passwordreset-emailelement": "使用者名稱:$1\n臨時密碼:$2",
+       "passwordreset-emailelement": "使用者名稱:\n$1\n\n臨時密碼:\n$2",
        "passwordreset-emailsent": "已寄出重設密碼的電子郵件。",
        "passwordreset-emailsent-capture": "已寄出重設密碼的電子郵件,並於下方顯示。",
        "passwordreset-emailerror-capture": "下列為重設密碼的電子郵件內容,傳送給{{GENDER:$2|使用者}}失敗:$1",
        "action-deletedhistory": "檢視此頁面的刪除歷史",
        "action-browsearchive": "搜尋已刪除頁面",
        "action-undelete": "取消刪除此頁面",
-       "action-suppressrevision": "複查與還原此隱藏修訂",
+       "action-suppressrevision": "檢閱與還原此隱藏修訂",
        "action-suppressionlog": "檢視此非公開日誌",
        "action-block": "封鎖此使用者的編輯權限",
        "action-protect": "變更此頁面的保護層級",
        "mailnologin": "沒有傳送位址",
        "mailnologintext": "您必須先 [[Special:UserLogin|登入]]\n並在 [[Special:Preferences|偏好設定]]\n中設定一個有效的電子郵件地址才可以傳送郵件給其他使用者。",
        "emailuser": "Email 聯絡此使用者",
-       "emailuser-title-target": "E-mail 聯絡此{{GENDER:$1|使用者}}",
-       "emailuser-title-notarget": "E-mail 聯絡使用者",
+       "emailuser-title-target": "Email 聯絡此{{GENDER:$1|使用者}}",
+       "emailuser-title-notarget": "Email 聯絡使用者",
        "emailpagetext": "您可以使用以下表格傳送電子郵件給這位 {{Gender:$1|使用者}}。\n您在 [[Special:Preferences|偏好設定]] 中所輸入的電子郵件地址將會作為郵件的 \"寄件人\",因此該使用者可直接回覆您。",
        "defemailsubject": "{{SITENAME}} 使用者 \"$1\" 寄來的電子郵件",
        "usermaildisabled": "使用者電子郵件已停用",
        "file-info-png-frames": "$1 畫格",
        "file-no-thumb-animation": "<strong>注意:由於技術限制,此檔案縮圖無動畫效果。</strong>",
        "file-no-thumb-animation-gif": "<strong>注意:由於技術限制,此類型高解析度 GIF 圖片無動畫效果。</strong>",
-       "newimages": "æ\9c\80æ\96°æª\94æ¡\88圖庫",
+       "newimages": "æ\96°æª\94圖庫",
        "imagelisttext": "以下為 <strong>$1</strong> 清單,$2 排序。",
        "newimages-summary": "此特殊頁面中顯示最新上傳的檔案。",
        "newimages-legend": "搜尋",
        "hours-ago": "$1 小時前",
        "minutes-ago": "$1 分鐘前",
        "seconds-ago": "$1 秒鐘前",
-       "monday-at": "星期一於 $1",
-       "tuesday-at": "星期二於 $1",
-       "wednesday-at": "星期三於 $1",
-       "thursday-at": "星期四於 $1",
-       "friday-at": "星期五於 $1",
-       "saturday-at": "星期六於 $1",
-       "sunday-at": "星期日於 $1",
+       "monday-at": "週一在 $1",
+       "tuesday-at": "週二在 $1",
+       "wednesday-at": "週三在 $1",
+       "thursday-at": "週四在 $1",
+       "friday-at": "週五在 $1",
+       "saturday-at": "週六在 $1",
+       "sunday-at": "週日在 $1",
        "yesterday-at": "昨天於 $1",
        "bad_image_list": "請依照下列格式:\n\n僅清單項目有效 (以 * 開頭)。\n每一行的第一個連結必須是不良檔案的連結。\n同一行除第一個以外的連結會被作為例外清單,例如:檔案所在的頁面。",
-       "variantname-zh-hans": "‪中文(简体)",
+       "variantname-zh-hans": "‪简体中文",
        "variantname-zh-hant": "‪繁體中文",
        "variantname-zh-cn": "大陸簡體",
        "variantname-zh-tw": "台灣正體",
        "namespacesall": "全部",
        "monthsall": "全部",
        "confirmemail": "確認電子郵件地址",
-       "confirmemail_noemail": "您尚未在 [[Special:Preferences|偏好設定]] 中輸入一個有效的電子郵件地址。",
+       "confirmemail_noemail": "您尚未在您的[[Special:Preferences|偏好設定]]裡設定一個有效的電子郵件地址。",
        "confirmemail_text": "{{SITENAME}} 要求您在使用郵件功能之前驗證您的電子郵件地址。\n點選以下按鈕可向您的電子郵件傳送一封確認郵件。該郵件包含有一行代碼連結;\n請在您的瀏覽器中載入此連結以確認您的電子郵件地址是有效的。",
        "confirmemail_pending": "確認碼已透過電子郵件傳送給您,\n若您才剛建立好您的帳號,可能需要稍後幾分鐘才能收到。\n若沒有收到,請再重新申請一次確認碼。",
        "confirmemail_send": "電子郵件確認碼",
        "confirmemail_sent": "確認郵件已寄出。",
        "confirmemail_oncreate": "確認碼已傳送至您的電子郵件地址。\n登入動作不需要使用此代碼,但開啟在 Wiki 中任何以電子郵件為基礎的功能會需要先提供此代碼。",
-       "confirmemail_sendfailed": "{{SITENAME}}無法傳送確認郵件,請檢查電子郵件地址是否包含非法字元。\n\n郵件傳送員回應: $1",
+       "confirmemail_sendfailed": "{{SITENAME}} 無法傳送您的確認郵件,請檢查電子郵件地址是否含有無效字元。\n\n寄件者傳回: $1",
        "confirmemail_invalid": "無效的確認碼,該代碼可能已經過期。",
        "confirmemail_needlogin": "請 $1 以確認您的電子郵件地址。",
-       "confirmemail_success": "您的電子郵件已經被確認。您現在可以 [[Special:UserLogin|登入]] 並使用此網站了。",
+       "confirmemail_success": "您的電子郵件已經被確認。您現在可以[[Special:UserLogin|登入]]並且享受此網站了。",
        "confirmemail_loggedin": "已確認您的電子郵件地址。",
        "confirmemail_subject": "{{SITENAME}} 電子郵件地址確認",
        "confirmemail_body": "不明人士 (可能是您自己,來自 IP 位址 $1) 已在 {{SITENAME}} 註冊了一個帳號 \"$2\" 並使用了此電子郵件地址。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以開啟在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
        "version-extensions": "已安裝的擴充套件",
        "version-skins": "已安裝的外觀",
        "version-specialpages": "特殊頁面",
-       "version-parserhooks": "解析器連結 (Hook)",
+       "version-parserhooks": "剖析器鉤",
        "version-variables": "變數",
        "version-antispam": "垃圾訊息防止",
        "version-other": "其他",
        "version-mediahandlers": "媒體處理器",
-       "version-hooks": "é\80£çµ\90 (Hooks)",
+       "version-hooks": "é\89¤",
        "version-parser-extensiontags": "解析器擴充標籤",
-       "version-parser-function-hooks": "語法函數連結",
+       "version-parser-function-hooks": "剖析器函數鉤",
        "version-hook-name": "鉤名",
        "version-hook-subscribedby": "署名",
        "version-version": "($1)",
        "api-error-badtoken": "內部錯誤:密鑰錯誤。",
        "api-error-copyuploaddisabled": "此伺服器已停用使用 URL 上傳檔案的功能。",
        "api-error-duplicate": "在網站上已有相同內容的{{PLURAL:$1|[$2 其他檔案]|[$2 其他檔案]}}。",
-       "api-error-duplicate-archive": "在網站上曾有相同內容的{{PLURAL:$1|[$2 其他檔案]|[$2 其他檔案]}},但已被刪除。",
-       "api-error-duplicate-archive-popup-title": "重複的{{PLURAL:$1|檔案}}已經被刪除。",
-       "api-error-duplicate-popup-title": "重複的{{PLURAL:$1|檔案}}。",
+       "api-error-duplicate-archive": "在網站上曾有相同內容的{{PLURAL:$1|其他檔案|其他檔案}},但已被刪除。",
        "api-error-empty-file": "您送出的檔案是空的。",
        "api-error-emptypage": "不允許建立空白的頁面。",
        "api-error-fetchfileerror": "內部錯誤:取得檔案時發生錯誤。",
index 8e5704e..bb5e9ab 100644 (file)
     "prefs-personal": "使用者資料",
     "prefs-rc": "近期變動",
     "prefs-watchlist-days": "監視列表中顯示記錄的最長天數:",
-    "saveprefs": "保存偏好設定",
     "resetprefs": "重設參數",
     "searchresultshead": "搜尋結果設定",
     "recentchangesdays": "近期變動中的顯示日數:",
index 8b706d7..699e904 100644 (file)
@@ -34,6 +34,8 @@ $namespaceNames = array(
 );
 
 $namespaceAliases = array(
+       'پوروجە' => NS_PROJECT,
+       'چأک_چئنە_پوروجە' => NS_PROJECT_TALK,
        'أسگ' => NS_FILE,
        'چأک_چئنە_أسگ' => NS_FILE_TALK,
 );
index f19c64f..8e4e531 100644 (file)
@@ -3001,9 +3001,6 @@ outreachwiki
 over
 overridable
 override
-oversight
-oversighted
-oversighter
 overwrite
 overwroteimage
 own
@@ -4244,8 +4241,6 @@ unmakesafe
 unmark
 unmerge
 unmodified
-unoversight
-unoversighted
 unpadded
 unpatrolled
 unpatrolledletter
index 2c42364..5434735 100644 (file)
@@ -34,6 +34,9 @@
                };
        </script>
        <script>
+               // Emulate startup.js
+               var mwPerformance = { mark: function () {} };
+
                function startUp() {
                        mw.config = new mw.Map();
                }
        <script src="modules/src/mediawiki/mediawiki.js"></script>
        <script src="modules/src/mediawiki/mediawiki.errorLogger.js"></script>
        <script src="modules/src/mediawiki/mediawiki.startUp.js"></script>
+       <script src="modules/lib/oojs/oojs.jquery.js"></script>
+       <script src="modules/lib/oojs-ui/oojs-ui.js"></script>
+       <script src="modules/lib/oojs-ui/oojs-ui-mediawiki.js"></script>
        <style>
+               body {
+                       font-size: 0.8em;
+                       font-family: sans-serif;
+               }
+
                .mw-jsduck-log {
                        position: relative;
                        min-height: 3em;
@@ -74,6 +85,8 @@
                        background: #fff;
                }
        </style>
+       <link rel="stylesheet" href="modules/lib/oojs-ui/oojs-ui-local.css">
+       <link rel="stylesheet" href="modules/lib/oojs-ui/oojs-ui-mediawiki-noimages.css">
 </head>
 <body>
 <script>
                mw.log = log;
        }
 
-       window.onerror = function ( error, filePath, linerNr ) {
-               log( filePath + ':' + linerNr  );
-       };
-
        /**
         * Method called by jsduck to execute the example code.
         */
index 14a1502..63d5e9f 100644 (file)
@@ -159,6 +159,7 @@ class SyncFileBackend extends Maintenance {
                        $this->error( "Error: given starting ID greater than ending ID.", 1 );
                }
 
+               $next = null;
                do {
                        $limit = min( $this->mBatchSize, $end - $start + 1 ); // don't go pass ending ID
                        $this->output( "Doing id $start to " . ( $start + $limit - 1 ) . "...\n" );
diff --git a/mw-config/images/help-question-hover.gif b/mw-config/images/help-question-hover.gif
new file mode 100644 (file)
index 0000000..515138d
Binary files /dev/null and b/mw-config/images/help-question-hover.gif differ
diff --git a/mw-config/images/help-question.gif b/mw-config/images/help-question.gif
new file mode 100644 (file)
index 0000000..b4fc9c5
Binary files /dev/null and b/mw-config/images/help-question.gif differ
index 7b70048..c00dbed 100644 (file)
@@ -9,7 +9,7 @@
   "devDependencies": {
     "grunt": "0.4.5",
     "grunt-cli": "0.1.13",
-    "grunt-banana-checker": "0.2.2",
+    "grunt-banana-checker": "0.3.0",
     "grunt-contrib-copy": "0.8.0",
     "grunt-contrib-jshint": "0.11.3",
     "grunt-contrib-watch": "0.6.1",
index 8fc9bdd..fc0bed1 100644 (file)
@@ -1151,19 +1151,31 @@ return array(
                ),
        ),
        'mediawiki.Upload.Dialog' => array(
-               'scripts' => 'resources/src/mediawiki/mediawiki.Upload.Dialog.js',
+               'scripts' => array(
+                       'resources/src/mediawiki/mediawiki.Upload.Dialog.js',
+               ),
                'dependencies' => array(
-                       'oojs-ui',
-                       'mediawiki.Upload',
+                       'mediawiki.Upload.BookletLayout',
                ),
                'messages' => array(
                        'upload-dialog-title',
-                       'upload-dialog-error',
-                       'upload-dialog-warning',
                        'upload-dialog-button-cancel',
                        'upload-dialog-button-done',
                        'upload-dialog-button-save',
                        'upload-dialog-button-upload',
+               ),
+       ),
+       'mediawiki.Upload.BookletLayout' => array(
+               'scripts' => array(
+                       'resources/src/mediawiki/mediawiki.Upload.BookletLayout.js',
+               ),
+               'dependencies' => array(
+                       'oojs-ui',
+                       'mediawiki.Upload',
+               ),
+               'messages' => array(
+                       'upload-dialog-error',
+                       'upload-dialog-warning',
                        'upload-dialog-label-select-file',
                        'upload-dialog-label-infoform-title',
                        'upload-dialog-label-infoform-name',
@@ -1602,7 +1614,14 @@ return array(
        ),
        'mediawiki.special.movePage' => array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.movePage.js',
-               'dependencies' => 'jquery.byteLimit',
+               'dependencies' => array(
+                       'jquery.byteLimit',
+                       'mediawiki.widgets',
+               ),
+       ),
+       'mediawiki.special.movePage.styles' => array(
+               'styles' => 'resources/src/mediawiki.special/mediawiki.special.movePage.css',
+               'position' => 'top',
        ),
        'mediawiki.special.pageLanguage' => array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.pageLanguage.js',
@@ -1875,6 +1894,7 @@ return array(
                        'resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js',
                        'resources/src/mediawiki.widgets/mw.widgets.ComplexNamespaceInputWidget.js',
                        'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js',
+                       'resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js',
                        'resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js',
                        'resources/src/mediawiki.widgets/mw.widgets.UserInputWidget.js',
                        'resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js',
@@ -1916,6 +1936,7 @@ return array(
                'skinStyles' => array(
                        'default' => array(
                                'resources/src/mediawiki.widgets/mw.widgets.ComplexNamespaceInputWidget.base.css',
+                               'resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.base.css',
                        ),
                ),
                'position' => 'top',
index ad905c6..caf6dab 100644 (file)
@@ -62,6 +62,10 @@ return call_user_func( function () {
                        'ooui-outline-control-move-down',
                        'ooui-outline-control-move-up',
                        'ooui-outline-control-remove',
+                       'ooui-selectfile-button-select',
+                       'ooui-selectfile-dragdrop-placeholder',
+                       'ooui-selectfile-not-supported',
+                       'ooui-selectfile-placeholder',
                        'ooui-toolbar-more',
                        'ooui-toolgroup-collapse',
                        'ooui-toolgroup-expand',
index 33b0ce0..3077b60 100644 (file)
@@ -12,7 +12,8 @@
                        "Edustus",
                        "Davidpar",
                        "Maceleiro",
-                       "Kippelboy"
+                       "Kippelboy",
+                       "Macofe"
                ]
        },
        "ooui-outline-control-move-down": "Baixa l'element",
@@ -27,6 +28,7 @@
        "ooui-dialog-process-dismiss": "Descarta",
        "ooui-dialog-process-retry": "Torneu-ho a provar",
        "ooui-dialog-process-continue": "Continua",
+       "ooui-selectfile-button-select": "Seleccioneu un fitxer",
        "ooui-selectfile-not-supported": "El tipus de fitxer no és compatible",
        "ooui-selectfile-placeholder": "No s'ha seleccionat cap fitxer",
        "ooui-selectfile-dragdrop-placeholder": "Deixeu-hi anar el fitxer (o feu clic a navega)"
index b3c4845..8538417 100644 (file)
@@ -26,5 +26,5 @@
        "ooui-dialog-process-continue": "Συνέχεια",
        "ooui-selectfile-not-supported": "Επιλογή αρχείου δεν υποστηρίζεται",
        "ooui-selectfile-placeholder": "Κανένα αρχείο δεν είναι επιλεγμένο",
-       "ooui-selectfile-dragdrop-placeholder": "Σύρετε ένα αρχείο εδώ (ή κάντε κλικ για αναζήτηση)"
+       "ooui-selectfile-dragdrop-placeholder": "Σύρετε το αρχείο εδώ"
 }
index 218ece2..1a8e31b 100644 (file)
@@ -18,6 +18,5 @@
        "ooui-dialog-process-continue": "Continue",
        "ooui-selectfile-not-supported": "File(s) not supported",
        "ooui-selectfile-placeholder": "No file selected",
-       "ooui-selectfile-dragdrop-placeholder": "Drop file here (or click to browse your computer)",
-       "ooui-semicolon-separator": ";"
+       "ooui-selectfile-dragdrop-placeholder": "Drop file here (or click to browse your computer)"
 }
index 7cf2eb1..be00832 100644 (file)
@@ -31,6 +31,5 @@
        "ooui-selectfile-button-select": "Select a file",
        "ooui-selectfile-not-supported": "File selection is not supported",
        "ooui-selectfile-placeholder": "No file is selected",
-       "ooui-selectfile-dragdrop-placeholder": "Drop file here",
-       "ooui-semicolon-separator": "; "
+       "ooui-selectfile-dragdrop-placeholder": "Drop file here"
 }
index 11bd4b8..0375c8e 100644 (file)
@@ -29,7 +29,8 @@
        "ooui-dialog-process-dismiss": "رد",
        "ooui-dialog-process-retry": "دوباره امتحان کنید",
        "ooui-dialog-process-continue": "ادامه",
+       "ooui-selectfile-button-select": "یک فایل انتخاب کنید",
        "ooui-selectfile-not-supported": "انتخاب پرونده پشتیبانی نمی‌شود",
        "ooui-selectfile-placeholder": "هیچ پرونده‌ای انتخاب نشده است",
-       "ooui-selectfile-dragdrop-placeholder": "رها کردن فایل در اینجا (و یا کلیک کنید به فهرست)"
+       "ooui-selectfile-dragdrop-placeholder": "فایل را اینجا رها کنید"
 }
index 387d736..68a25b5 100644 (file)
                        "Raoli",
                        "Una giornata uggiosa '94",
                        "Ontsed",
-                       "Alexmar983"
+                       "Alexmar983",
+                       "Nemo bis",
+                       "Jdforrester"
                ]
        },
        "ooui-outline-control-move-down": "Sposta in basso",
        "ooui-outline-control-move-up": "Sposta in alto",
        "ooui-outline-control-remove": "Rimuovi elemento",
        "ooui-toolbar-more": "Altro",
-       "ooui-toolgroup-expand": "Più",
+       "ooui-toolgroup-expand": "Altro",
        "ooui-toolgroup-collapse": "Meno",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Annulla",
@@ -28,6 +30,8 @@
        "ooui-dialog-process-dismiss": "Nascondi",
        "ooui-dialog-process-retry": "Riprova",
        "ooui-dialog-process-continue": "Continua",
+       "ooui-selectfile-button-select": "Seleziona un file",
        "ooui-selectfile-not-supported": "La selezione del file non è supportata",
-       "ooui-selectfile-placeholder": "Nessun file è selezionato"
+       "ooui-selectfile-placeholder": "Nessun file è selezionato",
+       "ooui-selectfile-dragdrop-placeholder": "Posiziona i files qui"
 }
index efacb63..f1a1a47 100644 (file)
@@ -24,6 +24,5 @@
        "ooui-dialog-process-retry": "კიდევ სცადეთ",
        "ooui-dialog-process-continue": "გაგრძელება",
        "ooui-selectfile-not-supported": "ფაილის არჩევა არ არის მხარდაჭერილი",
-       "ooui-selectfile-placeholder": "ფაილი არ არის არჩეული",
-       "ooui-semicolon-separator": ";"
+       "ooui-selectfile-placeholder": "ფაილი არ არის არჩეული"
 }
index bc3cf0b..d4068c8 100644 (file)
@@ -17,6 +17,5 @@
        "ooui-dialog-process-retry": "Энтда сынаб кёр",
        "ooui-dialog-process-continue": "Бардыр",
        "ooui-selectfile-not-supported": "Файл сайлау тутулмайды",
-       "ooui-selectfile-placeholder": "Бир файл да сайланмагъанды",
-       "ooui-semicolon-separator": ";"
+       "ooui-selectfile-placeholder": "Бир файл да сайланмагъанды"
 }
diff --git a/resources/lib/oojs-ui/i18n/krl.json b/resources/lib/oojs-ui/i18n/krl.json
new file mode 100644 (file)
index 0000000..6ff25eb
--- /dev/null
@@ -0,0 +1,10 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Mashoi7"
+               ]
+       },
+       "ooui-toolbar-more": "Enämpi",
+       "ooui-toolgroup-expand": "Enämpi",
+       "ooui-toolgroup-collapse": "Vähempi"
+}
diff --git a/resources/lib/oojs-ui/i18n/olo.json b/resources/lib/oojs-ui/i18n/olo.json
new file mode 100644 (file)
index 0000000..855b0ea
--- /dev/null
@@ -0,0 +1,13 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Mashoi7"
+               ]
+       },
+       "ooui-toolbar-more": "Enämbi",
+       "ooui-toolgroup-expand": "Enämbi",
+       "ooui-toolgroup-collapse": "Vähembi",
+       "ooui-dialog-process-retry": "Opi vie",
+       "ooui-dialog-process-continue": "Jatka",
+       "ooui-selectfile-button-select": "Valliče failu"
+}
index 8379cac..8d9071a 100644 (file)
@@ -10,7 +10,8 @@
                        "Jdforrester",
                        "Luckas",
                        "Vitorvicentevalente",
-                       "SandroHc"
+                       "SandroHc",
+                       "Jkb8"
                ]
        },
        "ooui-outline-control-move-down": "Mover item para baixo",
@@ -27,5 +28,5 @@
        "ooui-dialog-process-continue": "Continuar",
        "ooui-selectfile-not-supported": "A seleção de ficheiros não é suportada",
        "ooui-selectfile-placeholder": "Nenhum ficheiro selecionado",
-       "ooui-selectfile-dragdrop-placeholder": "Soltar ficheiro aqui (ou clicar para navegar)"
+       "ooui-selectfile-dragdrop-placeholder": "Soltar ficheiro aqui"
 }
index cd9c0c2..1a096ef 100644 (file)
@@ -35,6 +35,5 @@
        "ooui-selectfile-button-select": "Label for the file selection widget's select file button",
        "ooui-selectfile-not-supported": "Label for the file selection widget if file selection is not supported",
        "ooui-selectfile-placeholder": "Label for the file selection widget when no file is currently selected",
-       "ooui-selectfile-dragdrop-placeholder": "Label for the file selection widget's drop target",
-       "ooui-semicolon-separator": "{{optional}} Semicolon used as a separator"
+       "ooui-selectfile-dragdrop-placeholder": "Label for the file selection widget's drop target"
 }
index 1ccc67b..ddd27c5 100644 (file)
@@ -9,9 +9,14 @@
        "ooui-outline-control-move-down": "Sposta in baso",
        "ooui-outline-control-move-up": "Sposta in sima",
        "ooui-toolbar-more": "Altro",
+       "ooui-toolgroup-expand": "Piassè",
+       "ooui-toolgroup-collapse": "Manco",
        "ooui-dialog-message-accept": "Va ben",
+       "ooui-dialog-message-reject": "Fa gnente",
        "ooui-dialog-process-error": "Xe 'ndà storto calcossa",
        "ooui-dialog-process-dismiss": "Scondi",
        "ooui-dialog-process-retry": "Proa da novo",
-       "ooui-dialog-process-continue": "Và vanti"
+       "ooui-dialog-process-continue": "Và vanti",
+       "ooui-selectfile-button-select": "Siegli un file",
+       "ooui-selectfile-dragdrop-placeholder": "Mola zo el file chì rento"
 }
index ff14801..27cef23 100644 (file)
@@ -22,5 +22,5 @@
        "ooui-dialog-process-continue": "Tiếp tục",
        "ooui-selectfile-not-supported": "Không hỗ trợ việc chọn tập tin",
        "ooui-selectfile-placeholder": "Không có tập tin nào được chọn",
-       "ooui-selectfile-dragdrop-placeholder": "Thả tập tin vào đây (hoặc nhấn chuột để duyệt)"
+       "ooui-selectfile-dragdrop-placeholder": "Thả tập tin vào đây"
 }
index ede6ea9..2db4bdb 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.12.8
+ * OOjs UI v0.12.9
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-09-08T20:56:08Z
+ * Date: 2015-09-22T20:09:59Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
        right: 18em;
        bottom: 18em;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-menu {
        width: 0 !important;
        height: 0 !important;
        overflow: hidden;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-content {
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-menu {
        width: auto !important;
        left: 0;
        top: 0;
        right: 0;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-content {
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-menu {
        height: auto !important;
        top: 0;
        right: 0;
        bottom: 0;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-content {
        bottom: 0 !important;
        left: 0 !important;
        top: 0 !important;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-menu {
        width: auto !important;
        right: 0;
        bottom: 0;
        left: 0;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-content {
        left: 0 !important;
        top: 0 !important;
        right: 0 !important;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-menu {
        height: auto !important;
        bottom: 0;
        left: 0;
        top: 0;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-content {
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        display: inline;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link {
+       outline: 0;
        cursor: default;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool {
 .oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
        border-left-color: rgba(0, 0, 0, 0.1);
 }
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link:focus {
+       outline: 0;
+}
 .oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link .oo-ui-tool-title {
        color: #cccccc;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled:hover > .oo-ui-tool-link .oo-ui-iconElement-icon {
        opacity: 1;
 }
+.oo-ui-barToolGroup.oo-ui-widget-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool:focus {
+       outline: 0;
+}
+.oo-ui-barToolGroup.oo-ui-widget-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link:focus {
+       outline: 0;
+}
 .oo-ui-barToolGroup.oo-ui-widget-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-tool-title {
        color: #cccccc;
 }
        position: absolute;
 }
 .oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
+       outline: 0;
        cursor: default;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
        border-color: #dddddd;
        background-color: #f3f3f3;
 }
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle:focus {
+       outline: 0;
+}
 .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
        opacity: 0.2;
 }
        right: 0;
        text-overflow: ellipsis;
 }
+.oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-label > .oo-ui-selectFileWidget-fileType {
+       float: right;
+}
 .oo-ui-selectFileWidget-info > .oo-ui-indicatorElement-indicator,
 .oo-ui-selectFileWidget-info > .oo-ui-iconElement-icon,
 .oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-clearButton {
 .oo-ui-selectFileWidget-info > .oo-ui-iconElement-icon {
        left: 0.25em;
 }
-.oo-ui-selectFileWidget-info .oo-ui-selectFileWidget-label {
+.oo-ui-selectFileWidget-info .oo-ui-selectFileWidget-label {
        line-height: 2.3em;
        margin: 0;
        overflow: hidden;
        left: 0.5em;
        right: 0.5em;
 }
-.oo-ui-selectFileWidget-info .oo-ui-selectFileWidget-clearButton {
+.oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-label > .oo-ui-selectFileWidget-fileType {
+       color: #888888;
+}
+.oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-clearButton {
        top: 0;
        width: 1.875em;
        height: 1.875em;
index 83452d0..5909cd1 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.12.8
+ * OOjs UI v0.12.9
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-09-08T20:55:55Z
+ * Date: 2015-09-22T20:09:51Z
  */
 /**
  * @class
index 87ae9a5..f1f1831 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.12.8
+ * OOjs UI v0.12.9
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-09-08T20:56:08Z
+ * Date: 2015-09-22T20:09:59Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
        font-weight: bold;
+       text-decoration: none;
 }
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
        margin-left: 0;
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
        width: 0.9375em;
        height: 0.9375em;
-       margin: 0.46875em;
 }
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
        margin-left: 0.46875em;
 .oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
        color: #cccccc;
 }
+.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button:focus {
+       box-shadow: none;
+}
 .oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
 .oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
        opacity: 0.2;
 }
+.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button {
+       padding-left: 2.4em;
+}
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
        margin: 0.1em 0;
-       padding: 0.2em 0.8em;
+       padding: 0.5em 1em;
+       min-height: 1.2em;
+       min-width: 1em;
        border-radius: 2px;
+       position: relative;
        -webkit-transition: background 100ms ease, color 100ms ease, box-shadow 100ms ease;
           -moz-transition: background 100ms ease, color 100ms ease, box-shadow 100ms ease;
            -ms-transition: background 100ms ease, color 100ms ease, box-shadow 100ms ease;
 }
 .oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       line-height: 1.875em;
+       line-height: 1.2em;
+       display: inline-block;
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       margin-left: -0.5em;
-       margin-right: -0.5em;
+       position: absolute;
+       top: 0.2em;
+       left: 0.5625em;
 }
-.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       margin-right: 0.3em;
+.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       margin-left: 0.3em;
 }
 .oo-ui-buttonElement-framed.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       /* -0.5 - 0.475 */
-       margin-left: -0.005em;
-       margin-right: -0.005em;
+       display: inline-block;
 }
 .oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-iconElement:not( .oo-ui-labelElement ) > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
        margin-left: 0.46875em;
        margin-right: -0.275em;
 }
+.oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       position: relative;
+       left: 0.2em;
+}
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
        color: #ffffff;
        background: #dddddd;
 .oo-ui-indexLayout-stackLayout > .oo-ui-panelLayout {
        padding: 1.5em;
 }
+.oo-ui-indexLayout > .oo-ui-menuLayout-menu {
+       height: 2.75em;
+}
+.oo-ui-indexLayout > .oo-ui-menuLayout-content {
+       top: 2.75em;
+}
 .oo-ui-fieldLayout {
        display: block;
        margin-bottom: 1em;
        right: 18em;
        bottom: 18em;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-menu {
        width: 0 !important;
        height: 0 !important;
        overflow: hidden;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-content {
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-menu {
        width: auto !important;
        left: 0;
        top: 0;
        right: 0;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-content {
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-menu {
        height: auto !important;
        top: 0;
        right: 0;
        bottom: 0;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-content {
        bottom: 0 !important;
        left: 0 !important;
        top: 0 !important;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-menu {
        width: auto !important;
        right: 0;
        bottom: 0;
        left: 0;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-content {
        left: 0 !important;
        top: 0 !important;
        right: 0 !important;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-menu {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-menu {
        height: auto !important;
        bottom: 0;
        left: 0;
        top: 0;
 }
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-content {
+.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-content {
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        display: inline;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link {
+       outline: 0;
        cursor: default;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
        position: absolute;
 }
 .oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
+       outline: 0;
        cursor: default;
 }
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
        display: inline-block;
        vertical-align: middle;
 }
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-       height: 1.875em;
-}
 .oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
        margin-top: 0;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
        background: #dddddd;
        border-color: #dddddd;
+       outline: 0;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled .oo-ui-toggleSwitchWidget-grip {
        background: #ffffff;
        border: 1px solid #aaaaaa;
        border-radius: 0.2em;
        background-color: #ffffff;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
+       box-shadow: 0 0.15em 0 0 rgba(204, 204, 204, 0.5);
 }
 .oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
        margin-top: 9px;
        margin-top: -1px;
        border: 1px solid #aaaaaa;
        border-radius: 0 0 0.2em 0.2em;
-       padding-bottom: 0.25em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
+       box-shadow: 0 0.15em 0 0 rgba(204, 204, 204, 0.5);
 }
 .oo-ui-menuSelectWidget input {
        position: absolute;
        border-color: #dddddd;
        background-color: #f3f3f3;
 }
+.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle:focus {
+       outline: 0;
+}
 .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
        opacity: 0.2;
 }
        right: 0;
        text-overflow: ellipsis;
 }
+.oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-label > .oo-ui-selectFileWidget-fileType {
+       float: right;
+}
 .oo-ui-selectFileWidget-info > .oo-ui-indicatorElement-indicator,
 .oo-ui-selectFileWidget-info > .oo-ui-iconElement-icon,
 .oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-clearButton {
 .oo-ui-selectFileWidget-info > .oo-ui-iconElement-icon {
        left: 0.25em;
 }
-.oo-ui-selectFileWidget-info .oo-ui-selectFileWidget-label {
+.oo-ui-selectFileWidget-info .oo-ui-selectFileWidget-label {
        line-height: 2.3em;
        margin: 0;
        overflow: hidden;
        left: 1em;
        right: 1em;
 }
-.oo-ui-selectFileWidget-info .oo-ui-selectFileWidget-clearButton {
+.oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-label > .oo-ui-selectFileWidget-fileType {
+       color: #888888;
+}
+.oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-clearButton {
        top: 0;
        width: 1.875em;
        height: 1.875em;
        font-weight: bold;
        line-height: 1.875em;
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-       min-width: 1.875em;
-       min-height: 1.875em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-       line-height: 1.875em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-       margin-top: -0.125em;
-}
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-       margin: 0.75em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-       padding: 0 1em;
-       vertical-align: middle;
-       /* Adjust for border so text aligns with title */
-       margin: -1px;
+       margin: 0.5em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless,
        padding: 0.75em 1em;
        vertical-align: middle;
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless .oo-ui-labelElement-label,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless .oo-ui-labelElement-label,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-frameless .oo-ui-labelElement-label {
+       line-height: 1.875em;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless:hover {
        background-color: rgba(0, 0, 0, 0.05);
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless:active {
        background-color: rgba(0, 0, 0, 0.1);
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover {
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive:hover {
        background-color: rgba(8, 126, 204, 0.05);
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:active {
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive:active {
        background-color: rgba(8, 126, 204, 0.1);
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label {
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label {
        font-weight: bold;
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-constructive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-constructive:hover {
        background-color: rgba(118, 171, 54, 0.05);
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-constructive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-constructive:active {
        background-color: rgba(118, 171, 54, 0.1);
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive:hover {
        background-color: rgba(212, 83, 83, 0.05);
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive:active {
        background-color: rgba(212, 83, 83, 0.1);
 }
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement {
index a291570..c2f6dc5 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.12.8
+ * OOjs UI v0.12.9
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-09-08T20:55:55Z
+ * Date: 2015-09-22T20:09:51Z
  */
 /**
  * @class
index 81677ed..42bf821 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.12.8
+ * OOjs UI v0.12.9
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-09-08T20:55:55Z
+ * Date: 2015-09-22T20:09:51Z
  */
 ( function ( OO ) {
 
@@ -67,30 +67,79 @@ OO.ui.generateElementId = function () {
  * @return {boolean}
  */
 OO.ui.isFocusableElement = function ( $element ) {
-       var node = $element[ 0 ],
-               nodeName = node.nodeName.toLowerCase(),
-               // Check if the element have tabindex set
-               isInElementGroup = /^(input|select|textarea|button|object)$/.test( nodeName ),
-               // Check if the element is a link with href or if it has tabindex
-               isOtherElement = (
-                       ( nodeName === 'a' && node.href ) ||
-                       !isNaN( $element.attr( 'tabindex' ) )
-               ),
-               // Check if the element is visible
-               isVisible = (
-                       // This is quicker than calling $element.is( ':visible' )
-                       $.expr.filters.visible( node ) &&
-                       // Check that all parents are visible
-                       !$element.parents().addBack().filter( function () {
-                               return $.css( this, 'visibility' ) === 'hidden';
-                       } ).length
-               ),
-               isTabOk = isNaN( $element.attr( 'tabindex' ) ) || +$element.attr( 'tabindex' ) >= 0;
+       var nodeName,
+               element = $element[ 0 ];
 
-       return (
-               ( isInElementGroup ? !node.disabled : isOtherElement ) &&
-               isVisible && isTabOk
-       );
+       // Anything disabled is not focusable
+       if ( element.disabled ) {
+               return false;
+       }
+
+       // Check if the element is visible
+       if ( !(
+               // This is quicker than calling $element.is( ':visible' )
+               $.expr.filters.visible( element ) &&
+               // Check that all parents are visible
+               !$element.parents().addBack().filter( function () {
+                       return $.css( this, 'visibility' ) === 'hidden';
+               } ).length
+       ) ) {
+               return false;
+       }
+
+       // Check if the element is ContentEditable, which is the string 'true'
+       if ( element.contentEditable === 'true' ) {
+               return true;
+       }
+
+       // Anything with a non-negative numeric tabIndex is focusable.
+       // Use .prop to avoid browser bugs
+       if ( $element.prop( 'tabIndex' ) >= 0 ) {
+               return true;
+       }
+
+       // Some element types are naturally focusable
+       // (indexOf is much faster than regex in Chrome and about the
+       // same in FF: https://jsperf.com/regex-vs-indexof-array2)
+       nodeName = element.nodeName.toLowerCase();
+       if ( [ 'input', 'select', 'textarea', 'button', 'object' ].indexOf( nodeName ) !== -1 ) {
+               return true;
+       }
+
+       // Links and areas are focusable if they have an href
+       if ( ( nodeName === 'a' || nodeName === 'area' ) && $element.attr( 'href' ) !== undefined ) {
+               return true;
+       }
+
+       return false;
+};
+
+/**
+ * Find a focusable child
+ *
+ * @param {jQuery} $container Container to search in
+ * @param {boolean} [backwards] Search backwards
+ * @return {jQuery} Focusable child, an empty jQuery object if none found
+ */
+OO.ui.findFocusable = function ( $container, backwards ) {
+       var $focusable = $( [] ),
+               // $focusableCandidates is a superset of things that
+               // could get matched by isFocusableElement
+               $focusableCandidates = $container
+                       .find( 'input, select, textarea, button, object, a, area, [contenteditable], [tabindex]' );
+
+       if ( backwards ) {
+               $focusableCandidates = Array.prototype.reverse.call( $focusableCandidates );
+       }
+
+       $focusableCandidates.each( function () {
+               var $this = $( this );
+               if ( OO.ui.isFocusableElement( $this ) ) {
+                       $focusable = $this;
+                       return false;
+               }
+       } );
+       return $focusable;
 };
 
 /**
@@ -286,9 +335,7 @@ OO.ui.infuse = function ( idOrNode ) {
                // Label for the file selection widget when no file is currently selected
                'ooui-selectfile-placeholder': 'No file is selected',
                // Label for the file selection widget's drop target
-               'ooui-selectfile-dragdrop-placeholder': 'Drop file here',
-               // Semicolon separator
-               'ooui-semicolon-separator': '; '
+               'ooui-selectfile-dragdrop-placeholder': 'Drop file here'
        };
 
        /**
@@ -1960,7 +2007,8 @@ OO.ui.Widget.static.supportsSimpleLabel = false;
 /**
  * @event disable
  *
- * A 'disable' event is emitted when a widget is disabled.
+ * A 'disable' event is emitted when the disabled state of the widget changes
+ * (i.e. on disable **and** enable).
  *
  * @param {boolean} disabled Widget is disabled
  */
@@ -2081,6 +2129,10 @@ OO.ui.Window = function OoUiWindow( config ) {
        this.$overlay = $( '<div>' );
        this.$content = $( '<div>' );
 
+       this.$focusTrapBefore = $( '<div>' ).prop( 'tabIndex', 0 );
+       this.$focusTrapAfter = $( '<div>' ).prop( 'tabIndex', 0 );
+       this.$focusTraps = this.$focusTrapBefore.add( this.$focusTrapAfter );
+
        // Initialization
        this.$overlay.addClass( 'oo-ui-window-overlay' );
        this.$content
@@ -2088,7 +2140,7 @@ OO.ui.Window = function OoUiWindow( config ) {
                .attr( 'tabindex', 0 );
        this.$frame
                .addClass( 'oo-ui-window-frame' )
-               .append( this.$content );
+               .append( this.$focusTrapBefore, this.$content, this.$focusTrapAfter );
 
        this.$element
                .addClass( 'oo-ui-window' )
@@ -2521,6 +2573,21 @@ OO.ui.Window.prototype.initialize = function () {
        return this;
 };
 
+/**
+ * Called when someone tries to focus the hidden element at the end of the dialog.
+ * Sends focus back to the start of the dialog.
+ *
+ * @param {jQuery.Event} event Focus event
+ */
+OO.ui.Window.prototype.onFocusTrapFocused = function ( event ) {
+       if ( this.$focusTrapBefore.is( event.target ) ) {
+               OO.ui.findFocusable( this.$content, true ).focus();
+       } else {
+               // this.$content is the part of the focus cycle, and is the first focusable element
+               this.$content.focus();
+       }
+};
+
 /**
  * Open the window.
  *
@@ -2581,6 +2648,9 @@ OO.ui.Window.prototype.setup = function ( data ) {
 
        this.toggle( true );
 
+       this.focusTrapHandler = OO.ui.bind( this.onFocusTrapFocused, this );
+       this.$focusTraps.on( 'focus', this.focusTrapHandler );
+
        this.getSetupProcess( data ).execute().done( function () {
                // Force redraw by asking the browser to measure the elements' widths
                win.$element.addClass( 'oo-ui-window-active oo-ui-window-setup' ).width();
@@ -2663,6 +2733,7 @@ OO.ui.Window.prototype.teardown = function ( data ) {
                        // Force redraw by asking the browser to measure the elements' widths
                        win.$element.removeClass( 'oo-ui-window-active oo-ui-window-setup' ).width();
                        win.$content.removeClass( 'oo-ui-window-content-setup' ).width();
+                       win.$focusTraps.off( 'focus', win.focusTrapHandler );
                        win.toggle( false );
                } );
 };
@@ -6754,6 +6825,161 @@ OO.ui.mixin.ClippableElement.prototype.clip = function () {
        return this;
 };
 
+/**
+ * Element that will stick under a specified container, even when it is inserted elsewhere in the
+ * document (for example, in a OO.ui.Window's $overlay).
+ *
+ * The elements's position is automatically calculated and maintained when window is resized or the
+ * page is scrolled. If you reposition the container manually, you have to call #position to make
+ * sure the element is still placed correctly.
+ *
+ * As positioning is only possible when both the element and the container are attached to the DOM
+ * and visible, it's only done after you call #togglePositioning. You might want to do this inside
+ * the #toggle method to display a floating popup, for example.
+ *
+ * @abstract
+ * @class
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {jQuery} [$floatable] Node to position, assigned to #$floatable, omit to use #$element
+ * @cfg {jQuery} [$floatableContainer] Node to position below
+ */
+OO.ui.mixin.FloatableElement = function OoUiMixinFloatableElement( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Properties
+       this.$floatable = null;
+       this.$floatableContainer = null;
+       this.$floatableWindow = null;
+       this.$floatableClosestScrollable = null;
+       this.onFloatableScrollHandler = this.position.bind( this );
+       this.onFloatableWindowResizeHandler = this.position.bind( this );
+
+       // Initialization
+       this.setFloatableContainer( config.$floatableContainer );
+       this.setFloatableElement( config.$floatable || this.$element );
+};
+
+/* Methods */
+
+/**
+ * Set floatable element.
+ *
+ * If an element is already set, it will be cleaned up before setting up the new element.
+ *
+ * @param {jQuery} $floatable Element to make floatable
+ */
+OO.ui.mixin.FloatableElement.prototype.setFloatableElement = function ( $floatable ) {
+       if ( this.$floatable ) {
+               this.$floatable.removeClass( 'oo-ui-floatableElement-floatable' );
+               this.$floatable.css( { left: '', top: '' } );
+       }
+
+       this.$floatable = $floatable.addClass( 'oo-ui-floatableElement-floatable' );
+       this.position();
+};
+
+/**
+ * Set floatable container.
+ *
+ * The element will be always positioned under the specified container.
+ *
+ * @param {jQuery|null} $floatableContainer Container to keep visible, or null to unset
+ */
+OO.ui.mixin.FloatableElement.prototype.setFloatableContainer = function ( $floatableContainer ) {
+       this.$floatableContainer = $floatableContainer;
+       if ( this.$floatable ) {
+               this.position();
+       }
+};
+
+/**
+ * Toggle positioning.
+ *
+ * Do not turn positioning on until after the element is attached to the DOM and visible.
+ *
+ * @param {boolean} [positioning] Enable positioning, omit to toggle
+ * @chainable
+ */
+OO.ui.mixin.FloatableElement.prototype.togglePositioning = function ( positioning ) {
+       var closestScrollableOfContainer, closestScrollableOfFloatable;
+
+       positioning = positioning === undefined ? !this.positioning : !!positioning;
+
+       if ( this.positioning !== positioning ) {
+               this.positioning = positioning;
+
+               closestScrollableOfContainer = OO.ui.Element.static.getClosestScrollableContainer( this.$floatableContainer[ 0 ] );
+               closestScrollableOfFloatable = OO.ui.Element.static.getClosestScrollableContainer( this.$floatable[ 0 ] );
+               if ( closestScrollableOfContainer !== closestScrollableOfFloatable ) {
+                       // If the scrollable is the root, we have to listen to scroll events
+                       // on the window because of browser inconsistencies (or do we? someone should verify this)
+                       if ( $( closestScrollableOfContainer ).is( 'html, body' ) ) {
+                               closestScrollableOfContainer = OO.ui.Element.static.getWindow( closestScrollableOfContainer );
+                       }
+               }
+
+               if ( positioning ) {
+                       this.$floatableWindow = $( this.getElementWindow() );
+                       this.$floatableWindow.on( 'resize', this.onFloatableWindowResizeHandler );
+
+                       if ( closestScrollableOfContainer !== closestScrollableOfFloatable ) {
+                               this.$floatableClosestScrollable = $( closestScrollableOfContainer );
+                               this.$floatableClosestScrollable.on( 'scroll', this.onFloatableScrollHandler );
+                       }
+
+                       // Initial position after visible
+                       this.position();
+               } else {
+                       this.$floatableWindow.off( 'resize', this.onFloatableWindowResizeHandler );
+                       this.$floatableWindow = null;
+
+                       if ( this.$floatableClosestScrollable ) {
+                               this.$floatableClosestScrollable.off( 'scroll', this.onFloatableScrollHandler );
+                               this.$floatableClosestScrollable = null;
+                       }
+
+                       this.$floatable.css( { left: '', top: '' } );
+               }
+       }
+
+       return this;
+};
+
+/**
+ * Position the floatable below its container.
+ *
+ * This should only be done when both of them are attached to the DOM and visible.
+ *
+ * @chainable
+ */
+OO.ui.mixin.FloatableElement.prototype.position = function () {
+       var pos;
+
+       if ( !this.positioning ) {
+               return this;
+       }
+
+       pos = OO.ui.Element.static.getRelativePosition( this.$floatableContainer, this.$floatable.offsetParent() );
+
+       // Position under container
+       pos.top += this.$floatableContainer.height();
+       this.$floatable.css( pos );
+
+       // We updated the position, so re-evaluate the clipping state.
+       // (ClippableElement does not listen to 'scroll' events on $floatableContainer's parent, and so
+       // will not notice the need to update itself.)
+       // TODO: This is terrible, we shouldn't need to know about ClippableElement at all here. Why does
+       // it not listen to the right events in the right places?
+       if ( this.clip ) {
+               this.clip();
+       }
+
+       return this;
+};
+
 /**
  * AccessKeyedElement is mixed into other classes to provide an `accesskey` attribute.
  * Accesskeys allow an user to go to a specific element by using
@@ -8182,7 +8408,6 @@ OO.ui.MessageDialog.prototype.onResize = function () {
 /**
  * Toggle action layout between vertical and horizontal.
  *
- *
  * @private
  * @param {boolean} [value] Layout actions vertically, omit to toggle
  * @chainable
@@ -8998,7 +9223,6 @@ OO.ui.FieldLayout.prototype.setAlignment = function ( value ) {
  *
  *     $( 'body' ).append( actionFieldLayout.$element );
  *
- *
  * @class
  * @extends OO.ui.FieldLayout
  *
@@ -9589,7 +9813,7 @@ OO.ui.BookletLayout.prototype.onStackLayoutSet = function ( page ) {
  * @param {number} [itemIndex] A specific item to focus on
  */
 OO.ui.BookletLayout.prototype.focus = function ( itemIndex ) {
-       var $input, page,
+       var page,
                items = this.stackLayout.getItems();
 
        if ( itemIndex !== undefined && items[ itemIndex ] ) {
@@ -9607,10 +9831,7 @@ OO.ui.BookletLayout.prototype.focus = function ( itemIndex ) {
        }
        // Only change the focus if is not already in the current page
        if ( !page.$element.find( ':focus' ).length ) {
-               $input = page.$element.find( ':input:first' );
-               if ( $input.length ) {
-                       $input[ 0 ].focus();
-               }
+               OO.ui.findFocusable( page.$element ).focus();
        }
 };
 
@@ -9619,28 +9840,7 @@ OO.ui.BookletLayout.prototype.focus = function ( itemIndex ) {
  * on it.
  */
 OO.ui.BookletLayout.prototype.focusFirstFocusable = function () {
-       var i, len,
-               found = false,
-               items = this.stackLayout.getItems(),
-               checkAndFocus = function () {
-                       if ( OO.ui.isFocusableElement( $( this ) ) ) {
-                               $( this ).focus();
-                               found = true;
-                               return false;
-                       }
-               };
-
-       for ( i = 0, len = items.length; i < len; i++ ) {
-               if ( found ) {
-                       break;
-               }
-               // Find all potentially focusable elements in the item
-               // and check if they are focusable
-               items[ i ].$element
-                       .find( 'input, select, textarea, button, object' )
-                       /* jshint loopfunc:true */
-                       .each( checkAndFocus );
-       }
+       OO.ui.findFocusable( this.stackLayout.$element ).focus();
 };
 
 /**
@@ -9908,7 +10108,8 @@ OO.ui.BookletLayout.prototype.clearPages = function () {
 OO.ui.BookletLayout.prototype.setPage = function ( name ) {
        var selectedItem,
                $focused,
-               page = this.pages[ name ];
+               page = this.pages[ name ],
+               previousPage = this.currentPageName && this.pages[ this.currentPageName ];
 
        if ( name !== this.currentPageName ) {
                if ( this.outlined ) {
@@ -9918,21 +10119,34 @@ OO.ui.BookletLayout.prototype.setPage = function ( name ) {
                        }
                }
                if ( page ) {
-                       if ( this.currentPageName && this.pages[ this.currentPageName ] ) {
-                               this.pages[ this.currentPageName ].setActive( false );
-                               // Blur anything focused if the next page doesn't have anything focusable - this
-                               // is not needed if the next page has something focusable because once it is focused
-                               // this blur happens automatically
-                               if ( this.autoFocus && !page.$element.find( ':input' ).length ) {
-                                       $focused = this.pages[ this.currentPageName ].$element.find( ':focus' );
+                       if ( previousPage ) {
+                               previousPage.setActive( false );
+                               // Blur anything focused if the next page doesn't have anything focusable.
+                               // This is not needed if the next page has something focusable (because once it is focused
+                               // this blur happens automatically). If the layout is non-continuous, this check is
+                               // meaningless because the next page is not visible yet and thus can't hold focus.
+                               if (
+                                       this.autoFocus &&
+                                       this.stackLayout.continuous &&
+                                       OO.ui.findFocusable( page.$element ).length !== 0
+                               ) {
+                                       $focused = previousPage.$element.find( ':focus' );
                                        if ( $focused.length ) {
                                                $focused[ 0 ].blur();
                                        }
                                }
                        }
                        this.currentPageName = name;
-                       this.stackLayout.setItem( page );
                        page.setActive( true );
+                       this.stackLayout.setItem( page );
+                       if ( !this.stackLayout.continuous && previousPage ) {
+                               // This should not be necessary, since any inputs on the previous page should have been
+                               // blurred when it was hidden, but browsers are not very consistent about this.
+                               $focused = previousPage.$element.find( ':focus' );
+                               if ( $focused.length ) {
+                                       $focused[ 0 ].blur();
+                               }
+                       }
                        this.emit( 'set', page );
                }
        }
@@ -9969,20 +10183,13 @@ OO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {
  *     }
  *     OO.inheritClass( CardOneLayout, OO.ui.CardLayout );
  *     CardOneLayout.prototype.setupTabItem = function () {
- *         this.tabItem.setLabel( 'Card One' );
- *     };
- *
- *     function CardTwoLayout( name, config ) {
- *         CardTwoLayout.parent.call( this, name, config );
- *         this.$element.append( '<p>Second card</p>' );
- *     }
- *     OO.inheritClass( CardTwoLayout, OO.ui.CardLayout );
- *     CardTwoLayout.prototype.setupTabItem = function () {
- *         this.tabItem.setLabel( 'Card Two' );
+ *         this.tabItem.setLabel( 'Card one' );
  *     };
  *
  *     var card1 = new CardOneLayout( 'one' ),
- *         card2 = new CardTwoLayout( 'two' );
+ *         card2 = new CardLayout( 'two', { label: 'Card two' } );
+ *
+ *     card2.$element.append( '<p>Second card</p>' );
  *
  *     var index = new OO.ui.IndexLayout();
  *
@@ -9995,6 +10202,7 @@ OO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {boolean} [continuous=false] Show all cards, one after another
+ * @cfg {boolean} [expanded=true] Expand the content panel to fill the entire parent element.
  * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when a new card is displayed.
  */
 OO.ui.IndexLayout = function OoUiIndexLayout( config ) {
@@ -10008,7 +10216,10 @@ OO.ui.IndexLayout = function OoUiIndexLayout( config ) {
        this.currentCardName = null;
        this.cards = {};
        this.ignoreFocus = false;
-       this.stackLayout = new OO.ui.StackLayout( { continuous: !!config.continuous } );
+       this.stackLayout = new OO.ui.StackLayout( {
+               continuous: !!config.continuous,
+               expanded: config.expanded
+       } );
        this.$content.append( this.stackLayout.$element );
        this.autoFocus = config.autoFocus === undefined || !!config.autoFocus;
 
@@ -10109,7 +10320,7 @@ OO.ui.IndexLayout.prototype.onStackLayoutSet = function ( card ) {
  * @param {number} [itemIndex] A specific item to focus on
  */
 OO.ui.IndexLayout.prototype.focus = function ( itemIndex ) {
-       var $input, card,
+       var card,
                items = this.stackLayout.getItems();
 
        if ( itemIndex !== undefined && items[ itemIndex ] ) {
@@ -10127,10 +10338,7 @@ OO.ui.IndexLayout.prototype.focus = function ( itemIndex ) {
        }
        // Only change the focus if is not already in the current card
        if ( !card.$element.find( ':focus' ).length ) {
-               $input = card.$element.find( ':input:first' );
-               if ( $input.length ) {
-                       $input[ 0 ].focus();
-               }
+               OO.ui.findFocusable( card.$element ).focus();
        }
 };
 
@@ -10139,27 +10347,7 @@ OO.ui.IndexLayout.prototype.focus = function ( itemIndex ) {
  * on it.
  */
 OO.ui.IndexLayout.prototype.focusFirstFocusable = function () {
-       var i, len,
-               found = false,
-               items = this.stackLayout.getItems(),
-               checkAndFocus = function () {
-                       if ( OO.ui.isFocusableElement( $( this ) ) ) {
-                               $( this ).focus();
-                               found = true;
-                               return false;
-                       }
-               };
-
-       for ( i = 0, len = items.length; i < len; i++ ) {
-               if ( found ) {
-                       break;
-               }
-               // Find all potentially focusable elements in the item
-               // and check if they are focusable
-               items[ i ].$element
-                       .find( 'input, select, textarea, button, object' )
-                       .each( checkAndFocus );
-       }
+       OO.ui.findFocusable( this.stackLayout.$element ).focus();
 };
 
 /**
@@ -10363,7 +10551,8 @@ OO.ui.IndexLayout.prototype.clearCards = function () {
 OO.ui.IndexLayout.prototype.setCard = function ( name ) {
        var selectedItem,
                $focused,
-               card = this.cards[ name ];
+               card = this.cards[ name ],
+               previousCard = this.currentCardName && this.cards[ this.currentCardName ];
 
        if ( name !== this.currentCardName ) {
                selectedItem = this.tabSelectWidget.getSelectedItem();
@@ -10371,21 +10560,34 @@ OO.ui.IndexLayout.prototype.setCard = function ( name ) {
                        this.tabSelectWidget.selectItemByData( name );
                }
                if ( card ) {
-                       if ( this.currentCardName && this.cards[ this.currentCardName ] ) {
-                               this.cards[ this.currentCardName ].setActive( false );
-                               // Blur anything focused if the next card doesn't have anything focusable - this
-                               // is not needed if the next card has something focusable because once it is focused
-                               // this blur happens automatically
-                               if ( this.autoFocus && !card.$element.find( ':input' ).length ) {
-                                       $focused = this.cards[ this.currentCardName ].$element.find( ':focus' );
+                       if ( previousCard ) {
+                               previousCard.setActive( false );
+                               // Blur anything focused if the next card doesn't have anything focusable.
+                               // This is not needed if the next card has something focusable (because once it is focused
+                               // this blur happens automatically). If the layout is non-continuous, this check is
+                               // meaningless because the next card is not visible yet and thus can't hold focus.
+                               if (
+                                       this.autoFocus &&
+                                       this.stackLayout.continuous &&
+                                       OO.ui.findFocusable( card.$element ).length !== 0
+                               ) {
+                                       $focused = previousCard.$element.find( ':focus' );
                                        if ( $focused.length ) {
                                                $focused[ 0 ].blur();
                                        }
                                }
                        }
                        this.currentCardName = name;
-                       this.stackLayout.setItem( card );
                        card.setActive( true );
+                       this.stackLayout.setItem( card );
+                       if ( !this.stackLayout.continuous && previousCard ) {
+                               // This should not be necessary, since any inputs on the previous card should have been
+                               // blurred when it was hidden, but browsers are not very consistent about this.
+                               $focused = previousCard.$element.find( ':focus' );
+                               if ( $focused.length ) {
+                                       $focused[ 0 ].blur();
+                               }
+                       }
                        this.emit( 'set', card );
                }
        }
@@ -10475,6 +10677,7 @@ OO.inheritClass( OO.ui.PanelLayout, OO.ui.Layout );
  * @constructor
  * @param {string} name Unique symbolic name of card
  * @param {Object} [config] Configuration options
+ * @cfg {jQuery|string|Function|OO.ui.HtmlSnippet} [label] Label for card's tab
  */
 OO.ui.CardLayout = function OoUiCardLayout( name, config ) {
        // Allow passing positional parameters inside the config object
@@ -10491,6 +10694,7 @@ OO.ui.CardLayout = function OoUiCardLayout( name, config ) {
 
        // Properties
        this.name = name;
+       this.label = config.label;
        this.tabItem = null;
        this.active = false;
 
@@ -10576,6 +10780,9 @@ OO.ui.CardLayout.prototype.setTabItem = function ( tabItem ) {
  * @chainable
  */
 OO.ui.CardLayout.prototype.setupTabItem = function () {
+       if ( this.label ) {
+               this.tabItem.setLabel( this.label );
+       }
        return this;
 };
 
@@ -11310,8 +11517,8 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
                        }
                        if ( this.isClippedHorizontally() ) {
                                // Anchoring to the right also caused the popup to clip, so just make it fill the container
-                               containerWidth = this.$clippableContainer.width();
-                               containerLeft = this.$clippableContainer.offset().left;
+                               containerWidth = this.$clippableScrollableContainer.width();
+                               containerLeft = this.$clippableScrollableContainer.offset().left;
 
                                this.toggleClipping( false );
                                this.$element.removeClass( 'oo-ui-popupToolGroup-right' );
@@ -12119,7 +12326,6 @@ OO.ui.OutlineControlsWidget.prototype.setAbilities = function ( abilities ) {
 };
 
 /**
- *
  * @private
  * Handle outline change events.
  */
@@ -13031,6 +13237,18 @@ OO.mixinClass( OO.ui.CapsuleMultiSelectWidget, OO.ui.mixin.IconElement );
 
 /* Methods */
 
+/**
+ * Construct a OO.ui.CapsuleItemWidget (or a subclass thereof) from given label and data.
+ *
+ * @protected
+ * @param {Mixed} data Custom data of any type.
+ * @param {string} label The label text.
+ * @return {OO.ui.CapsuleItemWidget}
+ */
+OO.ui.CapsuleMultiSelectWidget.prototype.createItemWidget = function ( data, label ) {
+       return new OO.ui.CapsuleItemWidget( { data: data, label: label } );
+};
+
 /**
  * Get the data of the items in the capsule
  * @return {Mixed[]}
@@ -13071,7 +13289,7 @@ OO.ui.CapsuleMultiSelectWidget.prototype.setItemsFromData = function ( datas ) {
                        }
                }
                if ( !item ) {
-                       item = new OO.ui.CapsuleItemWidget( { data: data, label: label } );
+                       item = widget.createItemWidget( data, label );
                }
                widget.addItems( [ item ], i );
        } );
@@ -13100,9 +13318,9 @@ OO.ui.CapsuleMultiSelectWidget.prototype.addItemsFromData = function ( datas ) {
                if ( !widget.getItemFromData( data ) ) {
                        item = menu.getItemFromData( data );
                        if ( item ) {
-                               items.push( new OO.ui.CapsuleItemWidget( { data: data, label: item.label } ) );
+                               items.push( widget.createItemWidget( data, item.label ) );
                        } else if ( widget.allowArbitrary ) {
-                               items.push( new OO.ui.CapsuleItemWidget( { data: data, label: String( data ) } ) );
+                               items.push( widget.createItemWidget( data, String( data ) ) );
                        }
                }
        } );
@@ -13549,6 +13767,10 @@ OO.ui.CapsuleItemWidget.prototype.onCloseKeyDown = function ( e ) {
  *
  *     $( 'body' ).append( dropDown.$element );
  *
+ *     dropDown.getMenu().selectItemByData( 'b' );
+ *
+ *     dropDown.getMenu().getSelectedItem().getData(); // returns 'b'
+ *
  * For more information, please see the [OOjs UI documentation on MediaWiki] [1].
  *
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options#Menu_selects_and_options
@@ -13870,6 +14092,7 @@ OO.ui.SelectFileWidget.prototype.setValue = function ( file ) {
  * @protected
  */
 OO.ui.SelectFileWidget.prototype.updateUI = function () {
+       var $label;
        if ( !this.isSupported ) {
                this.$element.addClass( 'oo-ui-selectFileWidget-notsupported' );
                this.$element.removeClass( 'oo-ui-selectFileWidget-empty' );
@@ -13878,9 +14101,12 @@ OO.ui.SelectFileWidget.prototype.updateUI = function () {
                this.$element.addClass( 'oo-ui-selectFileWidget-supported' );
                if ( this.currentFile ) {
                        this.$element.removeClass( 'oo-ui-selectFileWidget-empty' );
-                       this.setLabel( this.currentFile.name +
-                               ( this.currentFile.type !== '' ? OO.ui.msg( 'ooui-semicolon-separator' ) + this.currentFile.type : '' )
-                       );
+                       $label = $( [] );
+                       if ( this.currentFile.type !== '' ) {
+                               $label = $label.add( $( '<span>' ).addClass( 'oo-ui-selectFileWidget-fileType' ).text( this.currentFile.type ) );
+                       }
+                       $label = $label.add( $( '<span>' ).text( this.currentFile.name ) );
+                       this.setLabel( $label );
                } else {
                        this.$element.addClass( 'oo-ui-selectFileWidget-empty' );
                        this.setLabel( this.placeholder );
@@ -16026,7 +16252,6 @@ OO.ui.ComboBoxWidget.prototype.onInputChange = function ( value ) {
 /**
  * Handle mouse click events.
  *
- *
  * @private
  * @param {jQuery.Event} e Mouse click event
  */
@@ -16041,7 +16266,6 @@ OO.ui.ComboBoxWidget.prototype.onClick = function ( e ) {
 /**
  * Handle key press events.
  *
- *
  * @private
  * @param {jQuery.Event} e Key press event
  */
@@ -16134,7 +16358,6 @@ OO.ui.ComboBoxWidget.prototype.setDisabled = function ( disabled ) {
  *     ] );
  *     $( 'body' ).append( fieldset.$element );
  *
- *
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.mixin.LabelElement
@@ -16644,7 +16867,6 @@ OO.ui.MenuOptionWidget.static.scrollIntoViewOnSelect = true;
  *     } );
  *     $( 'body' ).append( myDropdown.$element );
  *
- *
  * @class
  * @extends OO.ui.DecoratedOptionWidget
  *
@@ -16854,6 +17076,7 @@ OO.ui.TabOptionWidget.static.highlightable = false;
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.ClippableElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -18748,6 +18971,7 @@ OO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {
  *
  * @class
  * @extends OO.ui.MenuSelectWidget
+ * @mixins OO.ui.mixin.FloatableElement
  *
  * @constructor
  * @param {OO.ui.Widget} [inputWidget] Widget to provide the menu for.
@@ -18768,10 +18992,12 @@ OO.ui.FloatingMenuSelectWidget = function OoUiFloatingMenuSelectWidget( inputWid
        // Parent constructor
        OO.ui.FloatingMenuSelectWidget.parent.call( this, config );
 
-       // Properties
+       // Properties (must be set before mixin constructors)
        this.inputWidget = inputWidget; // For backwards compatibility
        this.$container = config.$container || this.inputWidget.$element;
-       this.onWindowResizeHandler = this.onWindowResize.bind( this );
+
+       // Mixins constructors
+       OO.ui.mixin.FloatableElement.call( this, $.extend( {}, config, { $floatableContainer: this.$container } ) );
 
        // Initialization
        this.$element.addClass( 'oo-ui-floatingMenuSelectWidget' );
@@ -18782,75 +19008,37 @@ OO.ui.FloatingMenuSelectWidget = function OoUiFloatingMenuSelectWidget( inputWid
 /* Setup */
 
 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 */
 
-/**
- * Handle window resize event.
- *
- * @private
- * @param {jQuery.Event} e Window resize event
- */
-OO.ui.FloatingMenuSelectWidget.prototype.onWindowResize = function () {
-       this.position();
-};
-
 /**
  * @inheritdoc
  */
 OO.ui.FloatingMenuSelectWidget.prototype.toggle = function ( visible ) {
        var change;
        visible = visible === undefined ? !this.isVisible() : !!visible;
-
        change = visible !== this.isVisible();
 
        if ( change && visible ) {
                // Make sure the width is set before the parent method runs.
-               // After this we have to call this.position(); again to actually
-               // position ourselves correctly.
-               this.position();
+               this.setIdealSize( this.$container.width() );
        }
 
        // Parent method
+       // This will call this.clip(), which is nonsensical since we're not positioned yet...
        OO.ui.FloatingMenuSelectWidget.parent.prototype.toggle.call( this, visible );
 
        if ( change ) {
-               if ( this.isVisible() ) {
-                       this.position();
-                       $( this.getElementWindow() ).on( 'resize', this.onWindowResizeHandler );
-               } else {
-                       $( this.getElementWindow() ).off( 'resize', this.onWindowResizeHandler );
-               }
+               this.togglePositioning( this.isVisible() );
        }
 
        return this;
 };
 
-/**
- * Position the menu.
- *
- * @private
- * @chainable
- */
-OO.ui.FloatingMenuSelectWidget.prototype.position = function () {
-       var $container = this.$container,
-               pos = OO.ui.Element.static.getRelativePosition( $container, this.$element.offsetParent() );
-
-       // Position under input
-       pos.top += $container.height();
-       this.$element.css( pos );
-
-       // Set width
-       this.setIdealSize( $container.width() );
-       // We updated the position, so re-evaluate the clipping state
-       this.clip();
-
-       return this;
-};
-
 /**
  * OutlineSelectWidget is a structured list that contains {@link OO.ui.OutlineOptionWidget outline options}
  * A set of controls can be provided with an {@link OO.ui.OutlineControlsWidget outline controls} widget.
@@ -19235,7 +19423,6 @@ OO.ui.NumberInputWidget.prototype.onWheel = function ( event ) {
 /**
  * Handle key down events.
  *
- *
  * @private
  * @param {jQuery.Event} e Key down event
  */
index 2043424..d680396 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/picture.png and b/resources/lib/oojs-ui/themes/apex/images/icons/picture.png differ
index 24d7315..246e130 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="picture">
-        <path id="frame" d="M18 4H6c-2-.007-3 .993-3 2.993L3.014 16C3 18 4 18.988 6 19h12c2-.012 2.994-1 3-3.006v-9c-.006-2-1-3-3-2.994zm1 13H5V6h14v11z"/>
-        <path id="mountains" d="M6 13.5L9.5 10l2.328 2.312-1.312 1.094.875 1.032L15.5 11l2.5 2v3H6z"/>
-        <path id="sky" d="M6 12l3.516-4.156 3.046 3.172L15.5 9l2.5 2V7H6z"/>
+        <path id="frame" d="M4 5v13h16v-13zm15 12h-14v-11h14z"/>
+        <path id="mountains" d="M9.5 10l2.328 2.312-1.312 1.094.875 1.032 4.109-3.438 2.5 2v3h-12v-2.5z"/>
+        <path id="sky" d="M9.516 7.844l3.046 3.172 2.938-2.016 2.5 2v-4h-12v5z"/>
     </g>
 </svg>
index fb6b985..2eedd1e 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/table.png and b/resources/lib/oojs-ui/themes/apex/images/icons/table.png differ
index 3c901f7..b5733fb 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="table-insert">
-        <path id="table" d="M4 5v13h16V5zm2 2h5v4H6zm7 0h5v4h-5zm-7 5h5v4H6zm7 0h5v4h-5z"/>
+        <path id="table" d="M4 6v11h15V6zm1 3h6v3H5zm7 0h6v3h-6zm-7 4h6v3H5zm7 0h6v3h-6z"/>
     </g>
 </svg>
index d6dc62c..f63756b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png differ
index be2c66d..a969967 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="picture">
-        <path id="frame" d="M18 4H6c-2-.007-3 .993-3 2.993L3.014 16C3 18 4 18.988 6 19h12c2-.012 2.994-1 3-3.006v-9c-.006-2-1-3-3-2.994zm1 13H5V6h14v11z"/>
-        <path id="mountains" d="M6 13.5L9.5 10l2.328 2.312-1.312 1.094.875 1.032L15.5 11l2.5 2v3H6z"/>
-        <path id="sky" d="M6 12l3.516-4.156 3.046 3.172L15.5 9l2.5 2V7H6z"/>
+        <path id="frame" d="M4 5v13h16v-13zm15 12h-14v-11h14z"/>
+        <path id="mountains" d="M9.5 10l2.328 2.312-1.312 1.094.875 1.032 4.109-3.438 2.5 2v3h-12v-2.5z"/>
+        <path id="sky" d="M9.516 7.844l3.046 3.172 2.938-2.016 2.5 2v-4h-12v5z"/>
     </g>
 </svg>
index 2043424..d680396 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png differ
index 24d7315..246e130 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="picture">
-        <path id="frame" d="M18 4H6c-2-.007-3 .993-3 2.993L3.014 16C3 18 4 18.988 6 19h12c2-.012 2.994-1 3-3.006v-9c-.006-2-1-3-3-2.994zm1 13H5V6h14v11z"/>
-        <path id="mountains" d="M6 13.5L9.5 10l2.328 2.312-1.312 1.094.875 1.032L15.5 11l2.5 2v3H6z"/>
-        <path id="sky" d="M6 12l3.516-4.156 3.046 3.172L15.5 9l2.5 2V7H6z"/>
+        <path id="frame" d="M4 5v13h16v-13zm15 12h-14v-11h14z"/>
+        <path id="mountains" d="M9.5 10l2.328 2.312-1.312 1.094.875 1.032 4.109-3.438 2.5 2v3h-12v-2.5z"/>
+        <path id="sky" d="M9.516 7.844l3.046 3.172 2.938-2.016 2.5 2v-4h-12v5z"/>
     </g>
 </svg>
index 9cc620a..ee9885f 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table-invert.png differ
index 246be85..808d8d8 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="table-insert">
-        <path id="table" d="M4 5v13h16V5zm2 2h5v4H6zm7 0h5v4h-5zm-7 5h5v4H6zm7 0h5v4h-5z"/>
+        <path id="table" d="M4 6v11h15V6zm1 3h6v3H5zm7 0h6v3h-6zm-7 4h6v3H5zm7 0h6v3h-6z"/>
     </g>
 </svg>
index fb6b985..2eedd1e 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table.png differ
index 3c901f7..b5733fb 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="table-insert">
-        <path id="table" d="M4 5v13h16V5zm2 2h5v4H6zm7 0h5v4h-5zm-7 5h5v4H6zm7 0h5v4h-5z"/>
+        <path id="table" d="M4 6v11h15V6zm1 3h6v3H5zm7 0h6v3h-6zm-7 4h6v3H5zm7 0h6v3h-6z"/>
     </g>
 </svg>
index 6203239..dd71a2b 100644 (file)
                        }
                }
 
-               newVal = inpParts.join( '' );
-
                return {
-                       newVal: newVal,
-                       trimmed: true
+                       newVal: inpParts.join( '' ),
+                       // For pathological fn() that always returns a value longer than the limit, we might have
+                       // ended up not trimming - check for this case to avoid infinite loops
+                       trimmed: newVal !== inpParts.join( '' )
                };
        };
 
                                // This is a side-effect of limiting after the fact.
                                if ( res.trimmed === true ) {
                                        this.value = res.newVal;
+                                       // Trigger a 'change' event to let other scripts attached to this node know that the value
+                                       // was changed. This will also call ourselves again, but that's okay, it'll be a no-op.
+                                       $el.trigger( 'change' );
                                }
                                // Always adjust prevSafeVal to reflect the input value. Not doing this could cause
                                // trimByteLength to compare the new value to an empty string instead of the
index dc1c779..4d53546 100644 (file)
  *
  * @class jQuery.plugin.suggestions
  */
+
 /**
  * @method suggestions
- * @return {jQuery}
  * @chainable
+ * @return {jQuery}
  *
  * @param {Object} options
  *
@@ -92,6 +93,7 @@
  * @param {boolean} [options.highlightInput=false] Whether to highlight matched portions of the
  *  input or not.
  */
+
 ( function ( $ ) {
 
 var hasOwn = Object.hasOwnProperty;
index b0f86e6..66161ed 100644 (file)
@@ -256,14 +256,6 @@ div.htmlform-tip {
        color: #666;
 }
 
-fieldset.prefsection {
-       margin-top: 1em;
-}
-
-fieldset.operaprefsection {
-       margin-left: 15em;
-}
-
 /* emulate center */
 .center {
        width: 100%;
index f55d2a8..961c02b 100644 (file)
@@ -206,18 +206,6 @@ td.mw-label {
        vertical-align: middle;
 }
 
-.prefsection td.mw-label {
-       width: 20%;
-}
-
-.prefsection table {
-       width: 100%;
-}
-
-.prefsection table.mw-htmlform-matrix {
-       width: auto;
-}
-
 td.mw-submit {
        white-space: nowrap;
 }
@@ -394,21 +382,6 @@ a.new {
        color: #BA0000;
 }
 
-/* feed links */
-/* To be removed before 1.26 release, moved to mediawiki.feedlink module */
-a.feedlink {
-       /* SVG support using a transparent gradient to guarantee cross-browser
-        * compatibility (browsers able to understand gradient syntax support also SVG).
-        * http://pauginer.tumblr.com/post/36614680636/invisible-gradient-technique */
-       background-image: url(../mediawiki/images/feed-icon.png);
-       background-image: -webkit-linear-gradient(transparent, transparent), url(../mediawiki/images/feed-icon.svg);
-       background-image: linear-gradient(transparent, transparent), url(../mediawiki/images/feed-icon.svg);
-       background-position: center left;
-       background-repeat: no-repeat;
-       background-size: 12px 12px;
-       padding-left: 16px;
-}
-
 /* Plainlinks - this can be used to switch
  * off special external link styling */
 .plainlinks a.external {
index 91366ff..113fb00 100644 (file)
@@ -16,6 +16,7 @@
        /**
         * Post a message (with subject and body) to a talk page.
         *
+        * @abstract
         * @param {string} subject Subject/topic title; plaintext only (no wikitext or HTML)
         * @param {string} body Body, as wikitext.  Signature code will automatically be added
         *   by MessagePosters that require one, unless the message already contains the string
index d245726..a13ec3c 100644 (file)
@@ -84,13 +84,10 @@ td#mw-prefixindex-nav-form {
        font-weight: bold;
 }
 
-.mw-specialpages-table {
-       margin-top: -1em;
-       margin-bottom: 1em;
-}
-
-.mw-specialpages-table td {
-       vertical-align: top;
+.mw-specialpages-list {
+       -webkit-columns: 16em 2;
+       -moz-columns: 16em 2;
+       columns: 16em 2;
 }
 
 /* Special:Statistics */
diff --git a/resources/src/mediawiki.special/mediawiki.special.movePage.css b/resources/src/mediawiki.special/mediawiki.special.movePage.css
new file mode 100644 (file)
index 0000000..dd1c2aa
--- /dev/null
@@ -0,0 +1,8 @@
+/*!
+ * Styles for Special:MovePage
+ */
+
+.movepage-wrapper {
+       width: 50em;
+       margin: 1em 0;
+}
index 7e56050..6d88c51 100644 (file)
@@ -1,6 +1,7 @@
 /*!
  * JavaScript for Special:MovePage
  */
-jQuery( function ( $ ) {
-       $( '#wpReason, #wpNewTitleMain' ).byteLimit();
+jQuery( function () {
+       OO.ui.infuse( 'wpNewTitle' );
+       OO.ui.infuse( 'wpReason' ).$input.byteLimit();
 } );
index 8fb9a47..9e5efd3 100644 (file)
 .mw-preferences-messagebox {
        display: none;
 }
+
+.prefsection td.mw-label {
+       width: 20%;
+}
+
+.prefsection table {
+       width: 100%;
+}
+
+.prefsection table.mw-htmlform-matrix {
+       width: auto;
+}
index 8f845df..b869314 100644 (file)
@@ -27,6 +27,7 @@ div.searchresult {
 }
 .mw-search-results {
        margin-left: 0.4em;
+       float: left;
 }
 .mw-search-results li {
        padding-bottom: 1.2em;
index d519c0d..9535481 100644 (file)
         * Update the calendar.
         *
         * @private
-        * @param {string|null} [fade=null] Direction in which to fade out current calendar contents, 'previous',
-        *     'next' or 'up'
-        * @returns {string} Format
+        * @param {string|null} [fade=null] Direction in which to fade out current calendar contents,
+        *     'previous', 'next', 'up' or 'down'; or 'auto', which has the same result as 'previous' or
+        *     'next' depending on whether the current date is later or earlier than the previous.
         */
        mw.widgets.CalendarWidget.prototype.updateUI = function ( fade ) {
                var items, today, selected, currentMonth, currentYear, currentDay, i, needsFade,
                        return;
                }
 
+               if ( fade === 'auto' ) {
+                       if ( !this.previousMoment ) {
+                               fade = null;
+                       } else if ( this.previousMoment.isBefore( this.moment, this.precision === 'month' ? 'month' : 'day' ) ) {
+                               fade = 'next';
+                       } else if ( this.previousMoment.isAfter( this.moment, this.precision === 'month' ? 'month' : 'day' ) ) {
+                               fade = 'previous';
+                       } else {
+                               fade = null;
+                       }
+               }
+
                items = [];
                if ( this.$oldBody ) {
                        this.$oldBody.remove();
         */
        mw.widgets.CalendarWidget.prototype.onBodyClick = function ( e ) {
                var
-                       previousMoment = moment( this.moment ),
                        $target = $( e.target ),
                        layers = this.getDisplayLayers(),
                        currentLayer = layers.indexOf( this.displayLayer );
                }
                if ( currentLayer === 0 ) {
                        this.setDateFromMoment();
-                       this.updateUI(
-                               this.precision === 'day' && this.moment.isBefore( previousMoment, 'month' ) ? 'previous' :
-                                       this.precision === 'day' && this.moment.isAfter( previousMoment, 'month' ) ? 'next' : null
-                       );
+                       this.updateUI( 'auto' );
                } else {
                        // One layer down
                        this.displayLayer = layers[ currentLayer - 1 ];
         * Reset the user interface of this widget to reflect selected date.
         */
        mw.widgets.CalendarWidget.prototype.resetUI = function () {
-               this.moment = moment( this.getDate(), this.getDateFormat() );
+               this.moment = this.getDate() !== null ? moment( this.getDate(), this.getDateFormat() ) : moment();
                this.displayLayer = this.getDisplayLayers()[ 0 ];
                this.updateUI();
        };
                        /*jshint +W024*/
                        nextDirectionKey = dir === 'ltr' ? OO.ui.Keys.RIGHT : OO.ui.Keys.LEFT,
                        prevDirectionKey = dir === 'ltr' ? OO.ui.Keys.LEFT : OO.ui.Keys.RIGHT,
-                       updateInDirection = null;
+                       changed = true;
 
                if ( !this.isDisabled() ) {
                        switch ( e.which ) {
                        case prevDirectionKey:
                                this.moment.subtract( 1, this.precision === 'month' ? 'month' : 'day' );
-                               updateInDirection = 'previous';
                                break;
                        case nextDirectionKey:
                                this.moment.add( 1, this.precision === 'month' ? 'month' : 'day' );
-                               updateInDirection = 'next';
                                break;
                        case OO.ui.Keys.UP:
                                this.moment.subtract( 1, this.precision === 'month' ? 'month' : 'week' );
-                               updateInDirection = 'previous';
                                break;
                        case OO.ui.Keys.DOWN:
                                this.moment.add( 1, this.precision === 'month' ? 'month' : 'week' );
-                               updateInDirection = 'next';
                                break;
                        case OO.ui.Keys.PAGEUP:
                                this.moment.subtract( 1, this.precision === 'month' ? 'year' : 'month' );
-                               updateInDirection = 'previous';
                                break;
                        case OO.ui.Keys.PAGEDOWN:
                                this.moment.add( 1, this.precision === 'month' ? 'year' : 'month' );
-                               updateInDirection = 'next';
+                               break;
+                       default:
+                               changed = false;
                                break;
                        }
 
-                       if ( updateInDirection ) {
+                       if ( changed ) {
                                this.displayLayer = this.getDisplayLayers()[ 0 ];
                                this.setDateFromMoment();
-                               this.updateUI( updateInDirection );
+                               this.updateUI( 'auto' );
                                return false;
                        }
                }
index 8d6452c..995561e 100644 (file)
@@ -5,34 +5,67 @@
  * @license The MIT License (MIT); see LICENSE.txt
  */
 ( function ( $, mw ) {
+       var CSP;
 
        /**
         * Category selector widget. Displays an OO.ui.CapsuleMultiSelectWidget
         * and autocompletes with available categories.
         *
-        * @class
+        *     var selector = new mw.widgets.CategorySelector( {
+        *       searchTypes: [
+        *         mw.widgets.CategorySelector.SearchType.OpenSearch,
+        *         mw.widgets.CategorySelector.SearchType.InternalSearch
+        *       ]
+        *     } );
+        *
+        *     $( '#content' ).append( selector.$element );
+        *
+        *     selector.setSearchType( [ mw.widgets.CategorySelector.SearchType.SubCategories ] );
+        *
+        *
+        * @class mw.widgets.CategorySelector
         * @uses mw.Api
         * @extends OO.ui.CapsuleMultiSelectWidget
         *
         * @constructor
         * @param {Object} [config] Configuration options
         * @cfg {number} [limit=10] Maximum number of results to load
+        * @cfg {mw.widgets.CategorySelector.SearchType[]} [searchTypes=[mw.widgets.CategorySelector.SearchType.OpenSearch]]
+        *   Default search API to use when searching.
         */
-       mw.widgets.CategorySelector = function ( config ) {
+       function CategorySelector( config ) {
                // Config initialization
-               config = $.extend( { limit: 10 }, config );
+               config = $.extend( {
+                       limit: 10,
+                       searchTypes: [ CategorySelector.SearchType.OpenSearch ]
+               }, config );
                this.limit = config.limit;
+               this.searchTypes = config.searchTypes;
+               this.validateSearchTypes();
 
                // Parent constructor
-               mw.widgets.CategorySelector.parent.call( this, config );
+               mw.widgets.CategorySelector.parent.call( this, $.extend( true, {}, config, {
+                       menu: {
+                               filterFromInput: false
+                       },
+                       // This allows the user to both select non-existent categories, and prevents the selector from
+                       // being wiped from #onMenuItemsChange when we change the available options in the dropdown
+                       allowArbitrary: true
+               } ) );
 
                // Event handler to call the autocomplete methods
                this.$input.on( 'change input cut paste', OO.ui.debounce( this.updateMenuItems.bind( this ), 100 ) );
-       };
+
+               // Initialize
+               this.catNsId = mw.config.get( 'wgNamespaceIds' ).category;
+               this.api = new mw.Api();
+
+       }
 
        /* Setup */
 
-       OO.inheritClass( mw.widgets.CategorySelector, OO.ui.CapsuleMultiSelectWidget );
+       OO.inheritClass( CategorySelector, OO.ui.CapsuleMultiSelectWidget );
+       CSP = CategorySelector.prototype;
 
        /* Methods */
 
@@ -44,7 +77,8 @@
         * @private
         * @method
         */
-       mw.widgets.CategorySelector.prototype.updateMenuItems = function () {
+       CSP.updateMenuItems = function () {
+               this.getMenu().clearItems();
                this.getNewMenuItems( this.$input.val() ).then( function ( items ) {
                        var existingItems, filteredItems,
                                menu = this.getMenu();
                                } );
                        } );
 
-                       menu.addItems( filteredItems ).updateItemVisibility();
+                       menu.addItems( filteredItems ).toggle( true );
                }.bind( this ) );
        };
 
         * @param {string} input The input used to prefix search categories
         * @return {jQuery.Promise} Resolves with an array of categories
         */
-       mw.widgets.CategorySelector.prototype.getNewMenuItems = function ( input ) {
-               var deferred = new $.Deferred(),
-                       catNsId = mw.config.get( 'wgNamespaceIds' ).category,
-                       api = new mw.Api();
-
-               api.get( {
-                       action: 'opensearch',
-                       namespace: catNsId,
-                       limit: this.limit,
-                       search: input
-               } ).done( function ( res ) {
-                       var categoryNames = res[ 1 ].map( function ( name ) {
-                               return mw.Title.newFromText( name, catNsId ).getMainText();
+       CSP.getNewMenuItems = function ( input ) {
+               var i,
+                       promises = [],
+                       deferred = new $.Deferred();
+
+               for ( i = 0; i < this.searchTypes.length; i++ ) {
+                       promises.push( this.searchCategories( input, this.searchTypes[ i ] ) );
+               }
+
+               $.when.apply( $, promises ).done( function () {
+                       var categories, categoryNames,
+                               allData = [],
+                               dataSets = Array.prototype.slice.apply( arguments );
+
+                       // Collect values from all results
+                       allData = allData.concat.apply( allData, dataSets );
+
+                       // Remove duplicates
+                       categories = allData.filter( function ( value, index, self ) {
+                               return self.indexOf( value ) === index;
+                       } );
+
+                       // Get titles
+                       categoryNames = categories.map( function ( name ) {
+                               return mw.Title.newFromText( name, this.catNsId ).getMainText();
                        } );
 
                        deferred.resolve( categoryNames );
+
                } );
 
                return deferred.promise();
        };
+
+       /**
+        * Validates the values in `this.searchType`.
+        *
+        * @private
+        * @return {boolean}
+        */
+       CSP.validateSearchTypes = function () {
+               var validSearchTypes = false,
+                       searchTypeEnumCount = Object.keys( CategorySelector.SearchType ).length;
+
+               // Check if all values are in the SearchType enum
+               validSearchTypes = this.searchTypes.every( function ( searchType ) {
+                       return searchType > -1 && searchType < searchTypeEnumCount;
+               } );
+
+               if ( validSearchTypes === false ) {
+                       throw new Error( 'Unknown searchType in searchTypes' );
+               }
+
+               // If the searchTypes has CategorySelector.SearchType.SubCategories
+               // it can be the only search type.
+               if ( this.searchTypes.indexOf( CategorySelector.SearchType.SubCategories ) > -1 &&
+                       this.searchTypes.length > 1
+               ) {
+                       throw new Error( 'Can\'t have additional search types with CategorySelector.SearchType.SubCategories' );
+               }
+
+               // If the searchTypes has CategorySelector.SearchType.ParentCategories
+               // it can be the only search type.
+               if ( this.searchTypes.indexOf( CategorySelector.SearchType.ParentCategories ) > -1 &&
+                       this.searchTypes.length > 1
+               ) {
+                       throw new Error( 'Can\'t have additional search types with CategorySelector.SearchType.ParentCategories' );
+               }
+
+               return true;
+       };
+
+       /**
+        * Sets and validates the value of `this.searchType`.
+        *
+        * @param {mw.widgets.CategorySelector.SearchType[]} searchTypes
+        */
+       CSP.setSearchTypes = function ( searchTypes ) {
+               this.searchTypes = searchTypes;
+               this.validateSearchTypes();
+       };
+
+       /**
+        * Searches categories based on input and searchType.
+        *
+        * @private
+        * @method
+        * @param {string} input The input used to prefix search categories
+        * @param {mw.widgets.CategorySelector.SearchType} searchType
+        * @return {jQuery.Promise} Resolves with an array of categories
+        */
+       CSP.searchCategories = function ( input, searchType ) {
+               var deferred = new $.Deferred();
+
+               switch ( searchType ) {
+                       case CategorySelector.SearchType.OpenSearch:
+                               this.api.get( {
+                                       action: 'opensearch',
+                                       namespace: this.catNsId,
+                                       limit: this.limit,
+                                       search: input
+                               } ).done( function ( res ) {
+                                       var categories = res[ 1 ];
+                                       deferred.resolve( categories );
+                               } );
+                               break;
+
+                       case CategorySelector.SearchType.InternalSearch:
+                               this.api.get( {
+                                       action: 'query',
+                                       list: 'allpages',
+                                       apnamespace: this.catNsId,
+                                       aplimit: this.limit,
+                                       apfrom: input,
+                                       apprefix: input
+                               } ).done( function ( res ) {
+                                       var categories = res.query.allpages.map( function ( page ) {
+                                               return page.title;
+                                       } );
+                                       deferred.resolve( categories );
+                               } );
+                               break;
+
+                       case CategorySelector.SearchType.Exists:
+                               if ( input.indexOf( '|' ) > -1 ) {
+                                       deferred.resolve( [] );
+                                       break;
+                               }
+
+                               this.api.get( {
+                                       action: 'query',
+                                       prop: 'info',
+                                       titles: 'Category:' + input
+                               } ).done( function ( res ) {
+                                       var page,
+                                               categories = [];
+
+                                       for ( page in res.query.pages ) {
+                                               if ( parseInt( page, 10 ) > -1 ) {
+                                                       categories.push( res.query.pages[ page ].title );
+                                               }
+                                       }
+
+                                       deferred.resolve( categories );
+                               } );
+                               break;
+
+                       case CategorySelector.SearchType.SubCategories:
+                               if ( input.indexOf( '|' ) > -1 ) {
+                                       deferred.resolve( [] );
+                                       break;
+                               }
+
+                               this.api.get( {
+                                       action: 'query',
+                                       list: 'categorymembers',
+                                       cmtype: 'subcat',
+                                       cmlimit: this.limit,
+                                       cmtitle: 'Category:' + input
+                               } ).done( function ( res ) {
+                                       var categories = res.query.categorymembers.map( function ( category ) {
+                                               return category.title;
+                                       } );
+                                       deferred.resolve( categories );
+                               } );
+                               break;
+
+                       case CategorySelector.SearchType.ParentCategories:
+                               if ( input.indexOf( '|' ) > -1 ) {
+                                       deferred.resolve( [] );
+                                       break;
+                               }
+
+                               this.api.get( {
+                                       action: 'query',
+                                       prop: 'categories',
+                                       cllimit: this.limit,
+                                       titles: 'Category:' + input
+                               } ).done( function ( res )  {
+                                       var page,
+                                               categories = [];
+
+                                       for ( page in res.query.pages ) {
+                                               if ( parseInt( page, 10 ) > -1 ) {
+                                                       if ( $.isArray( res.query.pages[ page ].categories ) ) {
+                                                               categories.push.apply( categories, res.query.pages[ page ].categories.map( function ( category ) {
+                                                                       return category.title;
+                                                               } ) );
+                                                       }
+                                               }
+                                       }
+
+                                       deferred.resolve( categories );
+                               } );
+                               break;
+
+                       default:
+                               throw new Error( 'Unknown searchType' );
+               }
+
+               return deferred.promise();
+       };
+
+       /**
+        * @enum mw.widgets.CategorySelector.SearchType
+        * Types of search available.
+        */
+       CategorySelector.SearchType = {
+               /** Search using action=opensearch */
+               OpenSearch: 0,
+
+               /** Search using action=query */
+               InternalSearch: 1,
+
+               /** Search for existing categories with the exact title */
+               Exists: 2,
+
+               /** Search only subcategories  */
+               SubCategories: 3,
+
+               /** Search only parent categories */
+               ParentCategories: 4
+       };
+
+       mw.widgets.CategorySelector = CategorySelector;
 }( jQuery, mediaWiki ) );
diff --git a/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.base.css b/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.base.css
new file mode 100644 (file)
index 0000000..73a50d8
--- /dev/null
@@ -0,0 +1,20 @@
+/*!
+ * MediaWiki Widgets - base ComplexTitleInputWidget styles.
+ *
+ * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+.mw-widget-complexTitleInputWidget .mw-widget-namespaceInputWidget,
+.mw-widget-complexTitleInputWidget .mw-widget-titleInputWidget {
+       display: inline-block;
+}
+
+.mw-widget-complexTitleInputWidget .mw-widget-namespaceInputWidget {
+       max-width: 20em;
+       margin-right: 0.5em;
+}
+
+.mw-widget-complexTitleInputWidget .mw-widget-titleInputWidget {
+       max-width: 29.5em;
+}
diff --git a/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js b/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js
new file mode 100644 (file)
index 0000000..0c6c15e
--- /dev/null
@@ -0,0 +1,63 @@
+/*!
+ * MediaWiki Widgets - ComplexTitleInputWidget class.
+ *
+ * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+( function ( $, mw ) {
+
+       /**
+        * Like TitleInputWidget, but the namespace has to be input through a separate dropdown field.
+        *
+        * @class
+        * @extends OO.ui.Widget
+        *
+        * @constructor
+        * @param {Object} [config] Configuration options
+        * @cfg {Object} namespace Configuration for the NamespaceInputWidget dropdown with list of
+        *     namespaces
+        * @cfg {Object} title Configuration for the TitleInputWidget text field
+        */
+       mw.widgets.ComplexTitleInputWidget = function MwWidgetsComplexTitleInputWidget( config ) {
+               // Parent constructor
+               mw.widgets.ComplexTitleInputWidget.parent.call( this, config );
+
+               // Properties
+               this.namespace = new mw.widgets.NamespaceInputWidget( config.namespace );
+               this.title = new mw.widgets.TitleInputWidget( $.extend(
+                       {},
+                       config.title,
+                       {
+                               relative: true,
+                               namespace: config.namespace.value || null
+                       }
+               ) );
+
+               // Events
+               this.namespace.connect( this, { change: 'updateTitleNamespace' } );
+
+               // Initialization
+               this.$element
+                       .addClass( 'mw-widget-complexTitleInputWidget' )
+                       .append(
+                               this.namespace.$element,
+                               this.title.$element
+                       );
+               this.updateTitleNamespace();
+       };
+
+       /* Setup */
+
+       OO.inheritClass( mw.widgets.ComplexTitleInputWidget, OO.ui.Widget );
+
+       /* Methods */
+
+       /**
+        * Update the namespace to use for search suggestions of the title when the value of namespace
+        * dropdown changes.
+        */
+       mw.widgets.ComplexTitleInputWidget.prototype.updateTitleNamespace = function () {
+               this.title.setNamespace( Number( this.namespace.getValue() ) );
+       };
+
+}( jQuery, mediaWiki ) );
index b478c4a..657d9c5 100644 (file)
         * @private
         */
        mw.widgets.DateInputWidget.prototype.activate = function () {
+               this.calendar.resetUI();
                this.$element.addClass( 'mw-widget-dateInputWidget-active' );
                this.handle.toggle( false );
                this.textInput.toggle( true );
index ef42dc1..4f1b874 100644 (file)
@@ -14,7 +14,8 @@
         *
         * @constructor
         * @param {Object} [config] Configuration options
-        * @cfg {string|null} includeAllValue Value for "all namespaces" option, if any
+        * @cfg {string|null} [includeAllValue] Value for "all namespaces" option, if any
+        * @cfg {number[]} [exclude] List of namespace numbers to exclude from the selector
         */
        mw.widgets.NamespaceInputWidget = function MwWidgetsNamespaceInputWidget( config ) {
                // Configuration initialization
         */
        mw.widgets.NamespaceInputWidget.prototype.getNamespaceDropdownOptions = function ( config ) {
                var options,
+                       exclude = config.exclude || [],
                        NS_MAIN = 0;
 
                options = $.map( mw.config.get( 'wgFormattedNamespaces' ), function ( name, ns ) {
-                       if ( ns < NS_MAIN ) {
+                       if ( ns < NS_MAIN || exclude.indexOf( Number( ns ) ) !== -1 ) {
                                return null; // skip
                        }
                        ns = String( ns );
index ee9583d..d5a7abc 100644 (file)
 
        /* Methods */
 
+       /**
+        * Get the namespace to prepend to titles in suggestions, if any.
+        *
+        * @return {number|null} Namespace number
+        */
+       mw.widgets.TitleInputWidget.prototype.getNamespace = function () {
+               return this.namespace;
+       };
+
+       /**
+        * Set the namespace to prepend to titles in suggestions, if any.
+        *
+        * @param {number|null} namespace Namespace number
+        */
+       mw.widgets.TitleInputWidget.prototype.setNamespace = function ( namespace ) {
+               this.namespace = namespace;
+               this.lookupCache = {};
+               this.closeLookupMenu();
+       };
+
        /**
         * @inheritdoc
         */
index fe8520b..3a70a66 100644 (file)
@@ -11,8 +11,8 @@
         * See <https://commons.wikimedia.org/wiki/Commons:Structured_data> for
         * a more detailed description of how that system works.
         *
-        * TODO this currently only supports uploads under CC-BY-SA 4.0,
-        *     and should really have support for more licenses.
+        * **TODO: This currently only supports uploads under CC-BY-SA 4.0,
+        * and should really have support for more licenses.**
         *
         * @inheritdoc
         */
index 14297b1..910a78f 100644 (file)
         * @param {number} [defaultNamespace=NS_MAIN]
         *  If given, will used as default namespace for the given title.
         * @param {Object} [options] additional options
-        * @param {string} [options.fileExtension='']
-        *  If the title is about to be created for the Media or File namespace,
-        *  ensures the resulting Title has the correct extension. Useful, for example
-        *  on systems that predict the type by content-sniffing, not by file extension.
-        *  If different from empty string, `forUploading` is assumed.
         * @param {boolean} [options.forUploading=true]
         *  Makes sure that a file is uploadable under the title returned.
         *  There are pages in the file namespace under which file upload is impossible.
 
                // merge options into defaults
                options = $.extend( {
-                       fileExtension: '',
                        forUploading: true
                }, options );
 
                }
 
                if ( namespace === NS_MEDIA
-                       || ( ( options.forUploading || options.fileExtension ) && ( namespace === NS_FILE ) )
+                       || ( options.forUploading && ( namespace === NS_FILE ) )
                ) {
 
                        title = sanitize( title, [ 'generalRule', 'fileRule' ] );
                                // Get the last part, which is supposed to be the file extension
                                ext = parts.pop();
 
-                               if ( options.fileExtension ) {
-                                       // Does the supplied file name carry the desired file extension?
-                                       if ( Title.normalizeExtension( ext ) !== Title.normalizeExtension( options.fileExtension ) ) {
-                                               // No, push back, whatever there was after the dot
-                                               parts.push( ext );
-                                       }
-
-                                       // Always canonicalize to the desired file extension (e.g. 'jpeg' to 'jpg')
-                                       ext = options.fileExtension;
-                               }
-
                                // Remove whitespace of the name part (that W/O extension)
                                title = $.trim( parts.join( '.' ) );
 
                                // Missing file extension
                                title = $.trim( parts.join( '.' ) );
 
-                               if ( options.fileExtension ) {
-
-                                       // Cut, if too long and append the desired file extension
-                                       title = trimFileNameToByteLength( title, options.fileExtension );
-
-                               } else {
-
-                                       // Name has no file extension and a fallback wasn't provided either
-                                       return null;
-                               }
+                               // Name has no file extension and a fallback wasn't provided either
+                               return null;
                        }
                } else {
 
         * @static
         * @param {string} uncleanName The unclean file name including file extension but
         *   without namespace
-        * @param {string} [fileExtension] the desired file extension
         * @return {mw.Title|null} A valid Title object or null if the title is invalid
         */
-       Title.newFromFileName = function ( uncleanName, fileExtension ) {
+       Title.newFromFileName = function ( uncleanName ) {
 
                return Title.newFromUserInput( 'File:' + uncleanName, {
-                       fileExtension: fileExtension,
                        forUploading: true
                } );
        };
diff --git a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
new file mode 100644 (file)
index 0000000..0f85154
--- /dev/null
@@ -0,0 +1,414 @@
+( function ( $, mw ) {
+
+       /**
+        * mw.Upload.BookletLayout encapsulates the process of uploading a file
+        * to MediaWiki using the {@link mw.Upload upload model}.
+        * The booklet emits events that can be used to get the stashed
+        * upload and the final file. It can be extended to accept
+        * additional fields from the user for specific scenarios like
+        * for Commons, or campaigns.
+        *
+        * ## Structure
+        *
+        * The {@link OO.ui.BookletLayout booklet layout} has three steps:
+        *
+        *  - **Upload**: Has a {@link OO.ui.SelectFileWidget field} to get the file object.
+        *
+        * - **Information**: Has a {@link OO.ui.FormLayout form} to collect metadata. This can be
+        *   extended.
+        *
+        * - **Insert**: Has details on how to use the file that was uploaded.
+        *
+        * Each step has a form associated with it defined in
+        * {@link #renderUploadForm renderUploadForm},
+        * {@link #renderInfoForm renderInfoForm}, and
+        * {@link #renderInsertForm renderInfoForm}. The
+        * {@link #getFile getFile},
+        * {@link #getFilename getFilename}, and
+        * {@link #getText getText} methods are used to get
+        * the information filled in these forms, required to call
+        * {@link mw.Upload mw.Upload}.
+        *
+        * ## Usage
+        *
+        * See the {@link mw.Upload.Dialog upload dialog}.
+        *
+        * The {@link #event-fileUploaded fileUploaded},
+        * and {@link #event-fileSaved fileSaved} events can
+        * be used to get details of the upload.
+        *
+        * ## Extending
+        *
+        * To extend using {@link mw.Upload mw.Upload}, override
+        * {@link #renderInfoForm renderInfoForm} to render
+        * the form required for the specific use-case. Update the
+        * {@link #getFilename getFilename}, and
+        * {@link #getText getText} methods to return data
+        * from your newly created form. If you added new fields you'll also have
+        * to update the {@link #clear} method.
+        *
+        * If you plan to use a different upload model, apart from what is mentioned
+        * above, you'll also have to override the
+        * {@link #createUpload createUpload} method to
+        * return the new model. The {@link #saveFile saveFile}, and
+        * the {@link #uploadFile uploadFile} methods need to be
+        * overriden to use the new model and data returned from the forms.
+        *
+        * @class
+        * @extends OO.ui.BookletLayout
+        *
+        * @constructor
+        * @param {Object} config Configuration options
+        */
+       mw.Upload.BookletLayout = function ( config ) {
+               // Parent constructor
+               mw.Upload.BookletLayout.parent.call( this, config );
+
+               this.renderUploadForm();
+               this.renderInfoForm();
+               this.renderInsertForm();
+
+               this.addPages( [
+                       new OO.ui.PageLayout( 'upload', {
+                               scrollable: true,
+                               padded: true,
+                               content: [ this.uploadForm ]
+                       } ),
+                       new OO.ui.PageLayout( 'info', {
+                               scrollable: true,
+                               padded: true,
+                               content: [ this.infoForm ]
+                       } ),
+                       new OO.ui.PageLayout( 'insert', {
+                               scrollable: true,
+                               padded: true,
+                               content: [ this.insertForm ]
+                       } )
+               ] );
+       };
+
+       /* Setup */
+
+       OO.inheritClass( mw.Upload.BookletLayout, OO.ui.BookletLayout );
+
+       /* Events */
+
+       /**
+        * The file has finished uploading
+        *
+        * @event fileUploaded
+        */
+
+       /**
+        * The file has been saved to the database
+        *
+        * @event fileSaved
+        */
+
+       /**
+        * The upload form has changed
+        *
+        * @event uploadValid
+        * @param {boolean} isValid The form is valid
+        */
+
+       /**
+        * The info form has changed
+        *
+        * @event infoValid
+        * @param {boolean} isValid The form is valid
+        */
+
+       /* Properties */
+
+       /**
+        * @property {OO.ui.FormLayout} uploadForm
+        * The form rendered in the first step to get the file object.
+        * Rendered in {@link #renderUploadForm renderUploadForm}.
+        */
+
+       /**
+        * @property {OO.ui.FormLayout} infoForm
+        * The form rendered in the second step to get metadata.
+        * Rendered in {@link #renderInfoForm renderInfoForm}
+        */
+
+       /**
+        * @property {OO.ui.FormLayout} insertForm
+        * The form rendered in the third step to show usage
+        * Rendered in {@link #renderInsertForm renderInsertForm}
+        */
+
+       /* Methods */
+
+       /**
+        * Initialize for a new upload
+        */
+       mw.Upload.BookletLayout.prototype.initialize = function () {
+               this.clear();
+               this.upload = this.createUpload();
+               this.setPage( 'upload' );
+       };
+
+       /**
+        * Create a new upload model
+        *
+        * @protected
+        * @return {mw.Upload} Upload model
+        */
+       mw.Upload.BookletLayout.prototype.createUpload = function () {
+               return new mw.Upload();
+       };
+
+       /* Uploading */
+
+       /**
+        * Uploads the file that was added in the upload form. Uses
+        * {@link #getFile getFile} to get the HTML5
+        * file object.
+        *
+        * @protected
+        * @fires fileUploaded
+        * @return {jQuery.Promise}
+        */
+       mw.Upload.BookletLayout.prototype.uploadFile = function () {
+               var file = this.getFile();
+
+               this.filenameWidget.setValue( file.name );
+               this.setPage( 'info' );
+
+               this.upload.setFile( file );
+               this.uploadPromise = this.upload.uploadToStash();
+               this.uploadPromise.then( this.emit.bind( this, 'fileUploaded' ) );
+
+               return this.uploadPromise;
+       };
+
+       /**
+        * Saves the stash finalizes upload. Uses
+        * {@link #getFilename getFilename}, and
+        * {@link #getText getText} to get details from
+        * the form.
+        *
+        * @protected
+        * @fires fileSaved
+        * @returns {jQuery.Promise} Rejects the promise with an
+        * {@link OO.ui.Error error}, or resolves if the upload was successful.
+        */
+       mw.Upload.BookletLayout.prototype.saveFile = function () {
+               var layout = this,
+                       deferred = $.Deferred();
+
+               this.upload.setFilename( this.getFilename() );
+               this.upload.setText( this.getText() );
+
+               this.uploadPromise.always( function () {
+
+                       if ( layout.upload.getState() === mw.Upload.State.ERROR ) {
+                               deferred.reject( new OO.ui.Error( mw.msg( 'upload-dialog-error' )  ) );
+                               return false;
+                       }
+
+                       if ( layout.upload.getState() === mw.Upload.State.WARNING ) {
+                               deferred.reject( new OO.ui.Error( mw.msg( 'upload-dialog-error' )  ) );
+                               return false;
+                       }
+
+                       layout.upload.finishStashUpload().always( function () {
+                               var name;
+
+                               if ( layout.upload.getState() === mw.Upload.State.ERROR ) {
+                                       deferred.reject( new OO.ui.Error( mw.msg( 'upload-dialog-error' ) ) );
+                                       return false;
+                               }
+
+                               if ( layout.upload.getState() === mw.Upload.State.WARNING ) {
+                                       deferred.reject( new OO.ui.Error( mw.msg( 'upload-dialog-warning' ) ) );
+                                       return false;
+                               }
+
+                               // Normalize page name and localise the 'File:' prefix
+                               name = new mw.Title( 'File:' + layout.upload.getFilename() ).toString();
+                               layout.filenameUsageWidget.setValue( '[[' + name + ']]' );
+                               layout.setPage( 'insert' );
+
+                               deferred.resolve();
+                               layout.emit( 'fileSaved' );
+                       } );
+               } );
+
+               return deferred.promise();
+       };
+
+       /* Form renderers */
+
+       /**
+        * Renders and returns the upload form and sets the
+        * {@link #uploadForm uploadForm} property.
+        *
+        * @protected
+        * @fires selectFile
+        * @returns {OO.ui.FormLayout}
+        */
+       mw.Upload.BookletLayout.prototype.renderUploadForm = function () {
+               var fieldset;
+
+               this.selectFileWidget = new OO.ui.SelectFileWidget();
+               fieldset = new OO.ui.FieldsetLayout( { label: mw.msg( 'upload-dialog-label-select-file' ) } );
+               fieldset.addItems( [ this.selectFileWidget ] );
+               this.uploadForm = new OO.ui.FormLayout( { items: [ fieldset ] } );
+
+               // Validation
+               this.selectFileWidget.on( 'change', this.onUploadFormChange.bind( this ) );
+
+               return this.uploadForm;
+       };
+
+       /**
+        * Handle change events to the upload form
+        *
+        * @protected
+        * @fires uploadValid
+        */
+       mw.Upload.BookletLayout.prototype.onUploadFormChange = function () {
+               this.emit( 'uploadValid', !!this.selectFileWidget.getValue() );
+       };
+
+       /**
+        * Renders and returns the information form for collecting
+        * metadata and sets the {@link #infoForm infoForm}
+        * property.
+        *
+        * @protected
+        * @returns {OO.ui.FormLayout}
+        */
+       mw.Upload.BookletLayout.prototype.renderInfoForm = function () {
+               var fieldset;
+
+               this.filenameWidget = new OO.ui.TextInputWidget( {
+                       indicator: 'required',
+                       required: true,
+                       validate: /.+/
+               } );
+               this.descriptionWidget = new OO.ui.TextInputWidget( {
+                       indicator: 'required',
+                       required: true,
+                       validate: /.+/,
+                       multiline: true,
+                       autosize: true
+               } );
+
+               fieldset = new OO.ui.FieldsetLayout( {
+                       label: mw.msg( 'upload-dialog-label-infoform-title' )
+               } );
+               fieldset.addItems( [
+                       new OO.ui.FieldLayout( this.filenameWidget, {
+                               label: mw.msg( 'upload-dialog-label-infoform-name' ),
+                               align: 'top'
+                       } ),
+                       new OO.ui.FieldLayout( this.descriptionWidget, {
+                               label: mw.msg( 'upload-dialog-label-infoform-description' ),
+                               align: 'top'
+                       } )
+               ] );
+               this.infoForm = new OO.ui.FormLayout( { items: [ fieldset ] } );
+
+               this.filenameWidget.on( 'change', this.onInfoFormChange.bind( this ) );
+               this.descriptionWidget.on( 'change', this.onInfoFormChange.bind( this ) );
+
+               return this.infoForm;
+       };
+
+       /**
+        * Handle change events to the info form
+        *
+        * @protected
+        * @fires infoValid
+        */
+       mw.Upload.BookletLayout.prototype.onInfoFormChange = function () {
+               var layout = this;
+               $.when(
+                       this.filenameWidget.getValidity(),
+                       this.descriptionWidget.getValidity()
+               ).done( function () {
+                       layout.emit( 'infoValid', true );
+               } ).fail( function () {
+                       layout.emit( 'infoValid', false );
+               } );
+       };
+
+       /**
+        * Renders and returns the insert form to show file usage and
+        * sets the {@link #insertForm insertForm} property.
+        *
+        * @protected
+        * @returns {OO.ui.FormLayout}
+        */
+       mw.Upload.BookletLayout.prototype.renderInsertForm = function () {
+               var fieldset;
+
+               this.filenameUsageWidget = new OO.ui.TextInputWidget();
+               fieldset = new OO.ui.FieldsetLayout( {
+                       label: mw.msg( 'upload-dialog-label-usage-title' )
+               } );
+               fieldset.addItems( [
+                       new OO.ui.FieldLayout( this.filenameUsageWidget, {
+                               label: mw.msg( 'upload-dialog-label-usage-filename' ),
+                               align: 'top'
+                       } )
+               ] );
+               this.insertForm = new OO.ui.FormLayout( { items: [ fieldset ] } );
+
+               return this.insertForm;
+       };
+
+       /* Getters */
+
+       /**
+        * Gets the file object from the
+        * {@link #uploadForm upload form}.
+        *
+        * @protected
+        * @returns {File|null}
+        */
+       mw.Upload.BookletLayout.prototype.getFile = function () {
+               return this.selectFileWidget.getValue();
+       };
+
+       /**
+        * Gets the file name from the
+        * {@link #infoForm information form}.
+        *
+        * @protected
+        * @returns {string}
+        */
+       mw.Upload.BookletLayout.prototype.getFilename = function () {
+               return this.filenameWidget.getValue();
+       };
+
+       /**
+        * Gets the page text from the
+        * {@link #infoForm information form}.
+        *
+        * @protected
+        * @returns {string}
+        */
+       mw.Upload.BookletLayout.prototype.getText = function () {
+               return this.descriptionWidget.getValue();
+       };
+
+       /* Setters */
+
+       /**
+        * Clear the values of all fields
+        *
+        * @protected
+        */
+       mw.Upload.BookletLayout.prototype.clear = function () {
+               this.selectFileWidget.setValue( null );
+               this.filenameWidget.setValue( null ).setValidityFlag( true );
+               this.descriptionWidget.setValue( null ).setValidityFlag( true );
+               this.filenameUsageWidget.setValue( null );
+       };
+
+}( jQuery, mediaWiki ) );
index 596e777..de005f8 100644 (file)
@@ -1,66 +1,20 @@
 ( function ( $, mw ) {
 
        /**
-        * mw.Upload.Dialog encapsulates the process of uploading a file
-        * to MediaWiki using the {@link mw.Upload mw.Upload} model.
-        * The dialog emits events that can be used to get the stashed
-        * upload and the final file. It can be extended to accept
-        * additional fields from the user for specific scenarios like
-        * for Commons, or campaigns.
-        *
-        * ## Structure
-        *
-        * The {@link OO.ui.ProcessDialog dialog} has three steps:
-        *
-        *  - **Upload**: Has a {@link OO.ui.SelectFileWidget field} to get the file object.
-        *
-        * - **Information**: Has a {@link OO.ui.FormLayout form} to collect metadata. This can be
-        *   extended.
-        *
-        * - **Insert**: Has details on how to use the file that was uploaded.
-        *
-        * Each step has a form associated with it defined in
-        * {@link mw.Upload.Dialog#renderUploadForm renderUploadForm},
-        * {@link mw.Upload.Dialog#renderInfoForm renderInfoForm}, and
-        * {@link mw.Upload.Dialog#renderInsertForm renderInfoForm}. The
-        * {@link mw.Upload.Dialog#getFile getFile},
-        * {@link mw.Upload.Dialog#getFilename getFilename}, and
-        * {@link mw.Upload.Dialog#getText getText} methods are used to get
-        * the information filled in these forms, required to call
-        * {@link mw.Upload mw.Upload}.
+        * mw.Upload.Dialog controls a {@link mw.Upload.BookletLayout BookletLayout}.
         *
         * ## Usage
         *
         * To use, setup a {@link OO.ui.WindowManager window manager} like for normal
         * dialogs:
         *
-        *     var uploadDialog = new mw.Upload.Dialog( { size: 'small' } );
+        *     var uploadDialog = new mw.Upload.Dialog();
         *     var windowManager = new OO.ui.WindowManager();
         *     $( 'body' ).append( windowManager.$element );
         *     windowManager.addWindows( [ uploadDialog ] );
         *     windowManager.openWindow( uploadDialog );
         *
-        * The dialog's closing promise,
-        * {@link mw.Upload.Dialog#event-fileUploaded fileUploaded},
-        * and {@link mw.Upload.Dialog#event-fileSaved fileSaved} events can
-        * be used to get details of the upload.
-        *
-        * ## Extending
-        *
-        * To extend using {@link mw.Upload mw.Upload}, override
-        * {@link mw.Upload.Dialog#renderInfoForm renderInfoForm} to render
-        * the form required for the specific use-case. Update the
-        * {@link mw.Upload.Dialog#getFilename getFilename}, and
-        * {@link mw.Upload.Dialog#getText getText} methods to return data
-        * from your newly created form. If you added new fields you'll also have
-        * to update the {@link #getTeardownProcess} method.
-        *
-        * If you plan to use a different upload model, apart from what is mentioned
-        * above, you'll also have to override the
-        * {@link mw.Upload.Dialog#getUploadObject getUploadObject} method to
-        * return the new model. The {@link mw.Upload.Dialog#saveFile saveFile}, and
-        * the {@link mw.Upload.Dialog#uploadFile uploadFile} methods need to be
-        * overriden to use the new model and data returned from the forms.
+        * The dialog's closing promise can be used to get details of the upload.
         *
         * @class mw.Upload.Dialog
         * @uses mw.Upload
@@ -93,7 +47,7 @@
                        flags: 'safe',
                        action: 'cancel',
                        label: mw.msg( 'upload-dialog-button-cancel' ),
-                       modes: [ 'upload', 'insert', 'save' ]
+                       modes: [ 'upload', 'insert', 'info' ]
                },
                {
                        flags: [ 'primary', 'progressive' ],
                        flags: [ 'primary', 'constructive' ],
                        label: mw.msg( 'upload-dialog-button-save' ),
                        action: 'save',
-                       modes: 'save'
+                       modes: 'info'
                },
                {
                        flags: [ 'primary', 'progressive' ],
                        modes: 'upload'
                }
        ];
-       /*jshint +W024*/
 
-       /* Properties */
+       /*jshint +W024*/
 
-       /**
-        * @property {OO.ui.FormLayout} uploadForm
-        * The form rendered in the first step to get the file object.
-        * Rendered in {@link mw.Upload.Dialog#renderUploadForm renderUploadForm}.
-        */
+       /* Methods */
 
        /**
-        * @property {OO.ui.FormLayout} infoForm
-        * The form rendered in the second step to get metadata.
-        * Rendered in {@link mw.Upload.Dialog#renderInfoForm renderInfoForm}
+        * @inheritdoc
         */
+       mw.Upload.Dialog.prototype.initialize = function () {
+               // Parent method
+               mw.Upload.Dialog.parent.prototype.initialize.call( this );
 
-       /**
-        * @property {OO.ui.FormLayout} insertForm
-        * The form rendered in the third step to show usage
-        * Rendered in {@link mw.Upload.Dialog#renderInsertForm renderInsertForm}
-        */
+               this.uploadBooklet = this.createUploadBooklet();
+               this.uploadBooklet.connect( this, {
+                       set: 'onUploadBookletSet',
+                       uploadValid: 'onUploadValid',
+                       infoValid: 'onInfoValid'
+               } );
 
-       /* Events */
+               this.$body.append( this.uploadBooklet.$element );
+       };
 
        /**
-        * A `fileUploaded` event is emitted from the
-        * {@link mw.Upload.Dialog#uploadFile uploadFile} method.
+        * Create an upload booklet
         *
-        * @event fileUploaded
+        * @protected
+        * @return {mw.Upload.BookletLayout} An upload booklet
         */
+       mw.Upload.Dialog.prototype.createUploadBooklet = function () {
+               return new mw.Upload.BookletLayout();
+       };
 
        /**
-        * A `fileSaved` event is emitted from the
-        * {@link mw.Upload.Dialog#saveFile saveFile} method.
-        *
-        * @event fileSaved
+        * @inheritdoc
         */
-
-       /* Methods */
+       mw.Upload.Dialog.prototype.getBodyHeight = function () {
+               return 300;
+       };
 
        /**
-        * @inheritdoc
+        * Handle panelNameSet events from the upload booklet
+        *
+        * @protected
+        * @param {OO.ui.PageLayout} page Current page
         */
-       mw.Upload.Dialog.prototype.initialize = function () {
-               mw.Upload.Dialog.parent.prototype.initialize.call( this );
-
-               this.renderUploadForm();
-               this.renderInfoForm();
-               this.renderInsertForm();
-
-               this.uploadFormPanel = new OO.ui.PanelLayout( {
-                       scrollable: true,
-                       padded: true,
-                       content: [ this.uploadForm ]
-               } );
-               this.infoFormPanel = new OO.ui.PanelLayout( {
-                       scrollable: true,
-                       padded: true,
-                       content: [ this.infoForm ]
-               } );
-               this.insertFormPanel = new OO.ui.PanelLayout( {
-                       scrollable: true,
-                       padded: true,
-                       content: [ this.insertForm ]
-               } );
-
-               this.panels = new OO.ui.StackLayout();
-               this.panels.addItems( [
-                       this.uploadFormPanel,
-                       this.infoFormPanel,
-                       this.insertFormPanel
-               ] );
-
-               this.$body.append( this.panels.$element );
+       mw.Upload.Dialog.prototype.onUploadBookletSet = function ( page ) {
+               this.actions.setMode( page.getName() );
+               this.actions.setAbilities( { upload: false, save: false } );
        };
 
        /**
-        * @inheritdoc
+        * Handle uploadValid events
+        *
+        * {@link OO.ui.ActionSet#setAbilities Sets abilities}
+        * for the dialog accordingly.
+        *
+        * @protected
+        * @param {boolean} isValid The panel is complete and valid
         */
-       mw.Upload.Dialog.prototype.getBodyHeight = function () {
-               return 300;
+       mw.Upload.Dialog.prototype.onUploadValid = function ( isValid ) {
+               this.actions.setAbilities( { upload: isValid } );
        };
 
        /**
-        * Switch between the panels.
+        * Handle infoValid events
         *
-        * @param {string} panel Panel name: 'upload', 'info', 'insert'
+        * {@link OO.ui.ActionSet#setAbilities Sets abilities}
+        * for the dialog accordingly.
+        *
+        * @protected
+        * @param {boolean} isValid The panel is complete and valid
         */
-       mw.Upload.Dialog.prototype.switchPanels = function ( panel ) {
-               switch ( panel ) {
-               case 'upload':
-                       this.panels.setItem( this.uploadFormPanel );
-                       this.actions.setMode( 'upload' );
-                       break;
-               case 'info':
-                       this.panels.setItem( this.infoFormPanel );
-                       this.actions.setMode( 'save' );
-                       break;
-               case 'insert':
-                       this.panels.setItem( this.insertFormPanel );
-                       this.actions.setMode( 'insert' );
-                       break;
-               }
+       mw.Upload.Dialog.prototype.onInfoValid = function ( isValid ) {
+               this.actions.setAbilities( { save: isValid } );
        };
 
        /**
        mw.Upload.Dialog.prototype.getSetupProcess = function ( data ) {
                return mw.Upload.Dialog.parent.prototype.getSetupProcess.call( this, data )
                        .next( function () {
-                               this.upload = this.getUploadObject();
-                               this.switchPanels( 'upload' );
-                               this.actions.setAbilities( { upload: false } );
+                               this.uploadBooklet.initialize();
                        }, this );
        };
 
                var dialog = this;
 
                if ( action === 'upload' ) {
-                       return new OO.ui.Process( function () {
-                               dialog.filenameWidget.setValue( dialog.getFile().name );
-                               dialog.switchPanels( 'info' );
-                               dialog.actions.setAbilities( { save: false } );
-                               return dialog.uploadFile();
-                       } );
+                       return new OO.ui.Process( this.uploadBooklet.uploadFile() );
                }
                if ( action === 'save' ) {
-                       return new OO.ui.Process( dialog.saveFile() );
+                       return new OO.ui.Process( this.uploadBooklet.saveFile() );
                }
                if ( action === 'insert' ) {
                        return new OO.ui.Process( function () {
                        } );
                }
                if ( action === 'cancel' ) {
-                       return new OO.ui.Process( dialog.close() );
+                       return new OO.ui.Process( this.close() );
                }
 
                return mw.Upload.Dialog.parent.prototype.getActionProcess.call( this, action );
        mw.Upload.Dialog.prototype.getTeardownProcess = function ( data ) {
                return mw.Upload.Dialog.parent.prototype.getTeardownProcess.call( this, data )
                        .next( function () {
-                               // Clear the values of all fields
-                               this.selectFileWidget.setValue( null );
-                               this.filenameWidget.setValue( null ).setValidityFlag( true );
-                               this.descriptionWidget.setValue( null ).setValidityFlag( true );
-                               this.filenameUsageWidget.setValue( null );
+                               this.uploadBooklet.clear();
                        }, this );
        };
 
-       /* Uploading */
-
-       /**
-        * Get the upload model object required for this dialog. Can be
-        * extended to different models.
-        *
-        * @return {mw.Upload}
-        */
-       mw.Upload.Dialog.prototype.getUploadObject = function () {
-               return new mw.Upload();
-       };
-
-       /**
-        * Uploads the file that was added in the upload form. Uses
-        * {@link mw.Upload.Dialog#getFile getFile} to get the HTML5
-        * file object.
-        *
-        * @protected
-        * @fires fileUploaded
-        * @return {jQuery.Promise}
-        */
-       mw.Upload.Dialog.prototype.uploadFile = function () {
-               var dialog = this,
-                       file = this.getFile();
-               this.upload.setFile( file );
-               this.uploadPromise = this.upload.uploadToStash();
-               this.uploadPromise.then( function () {
-                       dialog.emit( 'fileUploaded' );
-               } );
-
-               return this.uploadPromise;
-       };
-
-       /**
-        * Saves the stash finalizes upload. Uses
-        * {@link mw.Upload.Dialog#getFilename getFilename}, and
-        * {@link mw.Upload.Dialog#getText getText} to get details from
-        * the form.
-        *
-        * @protected
-        * @fires fileSaved
-        * @returns {jQuery.Promise} Rejects the promise with an
-        * {@link OO.ui.Error error}, or resolves if the upload was successful.
-        */
-       mw.Upload.Dialog.prototype.saveFile = function () {
-               var dialog = this,
-                       promise = $.Deferred();
-
-               this.upload.setFilename( this.getFilename() );
-               this.upload.setText( this.getText() );
-
-               this.uploadPromise.always( function () {
-
-                       if ( dialog.upload.getState() === mw.Upload.State.ERROR ) {
-                               promise.reject( new OO.ui.Error( mw.msg( 'upload-dialog-error' )  ) );
-                               return false;
-                       }
-
-                       if ( dialog.upload.getState() === mw.Upload.State.WARNING ) {
-                               promise.reject( new OO.ui.Error( mw.msg( 'upload-dialog-error' )  ) );
-                               return false;
-                       }
-
-                       dialog.upload.finishStashUpload().always( function () {
-                               var name;
-
-                               if ( dialog.upload.getState() === mw.Upload.State.ERROR ) {
-                                       promise.reject( new OO.ui.Error( mw.msg( 'upload-dialog-error' ) ) );
-                                       return false;
-                               }
-
-                               if ( dialog.upload.getState() === mw.Upload.State.WARNING ) {
-                                       promise.reject( new OO.ui.Error( mw.msg( 'upload-dialog-warning' ) ) );
-                                       return false;
-                               }
-
-                               // Normalize page name and localise the 'File:' prefix
-                               name = new mw.Title( 'File:' + dialog.upload.getFilename() ).toString();
-                               dialog.filenameUsageWidget.setValue( '[[' + name + ']]' );
-                               dialog.switchPanels( 'insert' );
-
-                               promise.resolve();
-                               dialog.emit( 'fileSaved' );
-                       } );
-               } );
-
-               return promise.promise();
-       };
-
-       /* Form renderers */
-
-       /**
-        * Renders and returns the upload form and sets the
-        * {@link mw.Upload.Dialog#uploadForm uploadForm} property.
-        * Validates the form and
-        * {@link OO.ui.ActionSet#setAbilities sets abilities}
-        * for the dialog accordingly.
-        *
-        * @protected
-        * @returns {OO.ui.FormLayout}
-        */
-       mw.Upload.Dialog.prototype.renderUploadForm = function () {
-               var fieldset,
-                       dialog = this;
-
-               this.selectFileWidget = new OO.ui.SelectFileWidget();
-               fieldset = new OO.ui.FieldsetLayout( { label: mw.msg( 'upload-dialog-label-select-file' ) } );
-               fieldset.addItems( [ this.selectFileWidget ] );
-               this.uploadForm = new OO.ui.FormLayout( { items: [ fieldset ] } );
-
-               // Validation
-               this.selectFileWidget.on( 'change', function ( value ) {
-                       dialog.actions.setAbilities( { upload: !!value } );
-               } );
-
-               return this.uploadForm;
-       };
-
-       /**
-        * Renders and returns the information form for collecting
-        * metadata and sets the {@link mw.Upload.Dialog#infoForm infoForm}
-        * property.
-        * Validates the form and
-        * {@link OO.ui.ActionSet#setAbilities sets abilities}
-        * for the dialog accordingly.
-        *
-        * @protected
-        * @returns {OO.ui.FormLayout}
-        */
-       mw.Upload.Dialog.prototype.renderInfoForm = function () {
-               var fieldset,
-                       dialog = this;
-
-               this.filenameWidget = new OO.ui.TextInputWidget( {
-                       indicator: 'required',
-                       required: true,
-                       validate: /.+/
-               } );
-               this.descriptionWidget = new OO.ui.TextInputWidget( {
-                       indicator: 'required',
-                       required: true,
-                       validate: /.+/,
-                       multiline: true,
-                       autosize: true
-               } );
-
-               fieldset = new OO.ui.FieldsetLayout( {
-                       label: mw.msg( 'upload-dialog-label-infoform-title' )
-               } );
-               fieldset.addItems( [
-                       new OO.ui.FieldLayout( this.filenameWidget, {
-                               label: mw.msg( 'upload-dialog-label-infoform-name' ),
-                               align: 'top'
-                       } ),
-                       new OO.ui.FieldLayout( this.descriptionWidget, {
-                               label: mw.msg( 'upload-dialog-label-infoform-description' ),
-                               align: 'top'
-                       } )
-               ] );
-               this.infoForm = new OO.ui.FormLayout( { items: [ fieldset ] } );
-
-               // Validation
-               function checkValidity() {
-                       $.when(
-                               dialog.filenameWidget.getValidity(),
-                               dialog.descriptionWidget.getValidity()
-                       ).done( function () {
-                               dialog.actions.setAbilities( { save: true } );
-                       } ).fail( function () {
-                               dialog.actions.setAbilities( { save: false } );
-                       } );
-               }
-               this.filenameWidget.on( 'change', checkValidity );
-               this.descriptionWidget.on( 'change', checkValidity );
-
-               return this.infoForm;
-       };
-
-       /**
-        * Renders and returns the insert form to show file usage and
-        * sets the {@link mw.Upload.Dialog#insertForm insertForm} property.
-        *
-        * @protected
-        * @returns {OO.ui.FormLayout}
-        */
-       mw.Upload.Dialog.prototype.renderInsertForm = function () {
-               var fieldset;
-
-               this.filenameUsageWidget = new OO.ui.TextInputWidget();
-               fieldset = new OO.ui.FieldsetLayout( {
-                       label: mw.msg( 'upload-dialog-label-usage-title' )
-               } );
-               fieldset.addItems( [
-                       new OO.ui.FieldLayout( this.filenameUsageWidget, {
-                               label: mw.msg( 'upload-dialog-label-usage-filename' ),
-                               align: 'top'
-                       } )
-               ] );
-               this.insertForm = new OO.ui.FormLayout( { items: [ fieldset ] } );
-
-               return this.insertForm;
-       };
-
-       /* Getters */
-
-       /**
-        * Gets the file object from the
-        * {@link mw.Upload.Dialog#uploadForm upload form}.
-        *
-        * @protected
-        * @returns {File|null}
-        */
-       mw.Upload.Dialog.prototype.getFile = function () {
-               return this.selectFileWidget.getValue();
-       };
-
-       /**
-        * Gets the file name from the
-        * {@link mw.Upload.Dialog#infoForm information form}.
-        *
-        * @protected
-        * @returns {string}
-        */
-       mw.Upload.Dialog.prototype.getFilename = function () {
-               return this.filenameWidget.getValue();
-       };
-
-       /**
-        * Gets the page text from the
-        * {@link mw.Upload.Dialog#infoForm information form}.
-        *
-        * @protected
-        * @returns {string}
-        */
-       mw.Upload.Dialog.prototype.getText = function () {
-               return this.descriptionWidget.getValue();
-       };
 }( jQuery, mediaWiki ) );
index 79628de..aafc37a 100644 (file)
                                comment: upload.getComment(),
                                filename: upload.getFilename(),
                                text: upload.getText()
-                       } ).then( function () {
+                       } ).then( function ( result ) {
                                upload.state = Upload.State.UPLOADED;
+                               upload.imageinfo = result.upload.imageinfo;
+                               return result;
                        }, function () {
                                upload.state = Upload.State.ERROR;
                        } );
index 1dda2ac..a07a403 100644 (file)
@@ -1,8 +1,6 @@
 /* Styles for links to RSS/Atom feeds in sidebar */
 
-/* Until the copy of this code in mediawiki.legacy.shared is removed, which no longer @embeds the
- * background image, the selector below must be kept more specific. */
-#feedlinks a.feedlink {
+a.feedlink {
        /* SVG support using a transparent gradient to guarantee cross-browser
         * compatibility (browsers able to understand gradient syntax support also SVG).
         * http://pauginer.tumblr.com/post/36614680636/invisible-gradient-technique */
@@ -11,4 +9,8 @@
        background-image: -webkit-linear-gradient(transparent, transparent), url(images/feed-icon.svg);
        /* @embed */
        background-image: linear-gradient(transparent, transparent), url(images/feed-icon.svg);
+       background-position: center left;
+       background-repeat: no-repeat;
+       background-size: 12px 12px;
+       padding-left: 16px;
 }
index 58ca445..f4af4ba 100644 (file)
@@ -1,4 +1,4 @@
-@import "mediawiki.ui/variables"
+@import "mediawiki.ui/variables";
 
 .mediawiki-filewarning {
        visibility: hidden;
index 8c6f3ab..c323e8d 100644 (file)
         * @param {Function} callback
         * @param {boolean|jQuery.Event} callback.immediate True when the event is called immediately,
         *  an event object when triggered from an event.
-        * @return {jQuery}
         * @chainable
+        * @return {jQuery}
         */
        mw.log.deprecate( $.fn, 'liveAndTestAtStart', function ( callback ) {
-               this
+               return this
                        // Can't really migrate to .on() generically, needs knowledge of
                        // calling code to know the correct selector. Fix callers and
                        // get rid of this .liveAndTestAtStart() hack.
index 6bebf4d..4859953 100644 (file)
                        rules = sheet.cssRules || sheet.rules;
                        $.each( rules, function ( index, rule ) {
                                selectors.total++;
-                               if ( document.querySelector( rule.selectorText ) !== null ) {
-                                       selectors.matched++;
-                               }
+                               // document.querySelector() on prefixed pseudo-elements can throw exceptions
+                               // in Firefox and Safari. Ignore these exceptions.
+                               // https://bugs.webkit.org/show_bug.cgi?id=149160
+                               // https://bugzilla.mozilla.org/show_bug.cgi?id=1204880
+                               try {
+                                       if ( document.querySelector( rule.selectorText ) !== null ) {
+                                               selectors.matched++;
+                                       }
+                               } catch ( e ) {}
                        } );
                        document.body.removeChild( style );
                        return selectors;
index c6e41c4..5dd2acb 100644 (file)
                                // Add ready and error callbacks if they were given
                                if ( ready !== undefined || error !== undefined ) {
                                        jobs.push( {
+                                               // Narrow down the list to modules that are worth waiting for
                                                dependencies: $.grep( dependencies, function ( module ) {
                                                        var state = mw.loader.getState( module );
-                                                       return state === 'registered' || state === 'loaded' || state === 'loading';
+                                                       return state === 'registered' || state === 'loaded' || state === 'loading' || state === 'executing';
                                                } ),
                                                ready: ready,
                                                error: error
                                        if ( typeof modules !== 'object' && typeof modules !== 'string' ) {
                                                throw new Error( 'modules must be a string or an array, not a ' + typeof modules );
                                        }
-                                       // Allow calling with an external url or single dependency as a string
+                                       // Allow calling with a url or single dependency as a string
                                        if ( typeof modules === 'string' ) {
-                                               if ( /^(https?:)?\/\//.test( modules ) ) {
+                                               // "https://example.org/x.js", "http://example.org/x.js", "//example.org/x.js", "/x.js"
+                                               if ( /^(https?:)?\/?\//.test( modules ) ) {
                                                        if ( type === 'text/css' ) {
                                                                // Support: IE 7-8
                                                                // Use properties instead of attributes as IE throws security
                        } );
                } );
                $.when.apply( $, loading ).then( function () {
-                       performance.mark( 'mwLoadEnd' );
+                       mwPerformance.mark( 'mwLoadEnd' );
                        mw.hook( 'resourceloader.loadEnd' ).fire();
                } );
        } );
index e10b561..3958392 100644 (file)
@@ -1,69 +1,58 @@
 ( function ( mw ) {
        'use strict';
-       var storage;
 
        /**
         * Library for storing device specific information. It should be used for storing simple
         * strings and is not suitable for storing large chunks of data.
+        *
         * @class mw.storage
         * @singleton
         */
-       storage = {
-               isLocalStorageSupported: false,
+       mw.storage = {
+
+               localStorage: window.localStorage,
+
                /**
                 * Retrieve value from device storage.
                 *
-                * @param {String} key of item to retrieve
-                * @returns {String|Boolean} false when localStorage not available, otherwise string
+                * @param {string} key Key of item to retrieve
+                * @return {string|boolean} False when localStorage not available, otherwise string
                 */
                get: function ( key ) {
-                       if ( this.isLocalStorageSupported ) {
-                               return localStorage.getItem( key );
-                       } else {
-                               return false;
-                       }
+                       try {
+                               return mw.storage.localStorage.getItem( key );
+                       } catch ( e ) {}
+                       return false;
                },
 
                /**
-                * Set a value in device storage.
-                *
-                * @param {String} key key name to store under.
-                * @param {String} value to be stored.
-                * @returns {Boolean} whether the save succeeded or not.
-                */
+                 * Set a value in device storage.
+                 *
+                 * @param {string} key Key name to store under
+                 * @param {string} value Value to be stored
+                 * @returns {boolean} Whether the save succeeded or not
+                 */
                set: function ( key, value ) {
                        try {
-                               localStorage.setItem( key, value );
+                               mw.storage.localStorage.setItem( key, value );
                                return true;
-                       } catch ( e ) {
-                               return false;
-                       }
+                       } catch ( e ) {}
+                       return false;
                },
 
                /**
-                * Remove a value from device storage.
-                *
-                * @param {String} key of item to remove.
-                * @returns {Boolean} whether the save succeeded or not.
-                */
+                 * Remove a value from device storage.
+                 *
+                 * @param {string} key Key of item to remove
+                 * @returns {boolean} Whether the save succeeded or not
+                 */
                remove: function ( key ) {
-                       if ( this.isLocalStorageSupported ) {
-                               localStorage.removeItem( key );
+                       try {
+                               mw.storage.localStorage.removeItem( key );
                                return true;
-                       } else {
-                               return false;
-                       }
+                       } catch ( e ) {}
+                       return false;
                }
        };
 
-       mw.storage = storage;
-       // See if local storage is supported
-       try {
-               localStorage.setItem( 'localStorageTest', 'localStorageTest' );
-               localStorage.removeItem( 'localStorageTest' );
-               storage.isLocalStorageSupported = true;
-       } catch ( e ) {
-               // Already set. No body needed.
-       }
-
 }( mediaWiki ) );
index 97b4fce..1a10f83 100644 (file)
@@ -3,16 +3,16 @@
  * continue loading jQuery and the MediaWiki modules. This code should work on
  * even the most ancient of browsers, so be very careful when editing.
  */
+/*jshint unused: false, evil: true */
+/*globals mw, RLQ: true, $VARS, $CODE, performance */
 
-var mediaWikiLoadStart = ( new Date() ).getTime();
+var mediaWikiLoadStart = ( new Date() ).getTime(),
 
-if ( !window.performance ) {
-       window.performance = {};
-}
-if ( !performance.mark ) {
-       performance.mark = function () {};
-}
-performance.mark( 'mwLoadStart' );
+       mwPerformance = ( window.performance && performance.mark ) ? performance : {
+               mark: function () {}
+       };
+
+mwPerformance.mark( 'mwLoadStart' );
 
 /**
  * Returns false for Grade C supported browsers.
@@ -24,9 +24,6 @@ performance.mark( 'mwLoadStart' );
  * - https://www.mediawiki.org/wiki/Compatibility#Browsers
  * - https://jquery.com/browser-support/
  */
-
-/*jshint unused: false, evil: true */
-/*globals mw, RLQ: true, $VARS, $CODE */
 function isCompatible( ua ) {
        if ( ua === undefined ) {
                ua = navigator.userAgent;
index 6d76b01..3092ab5 100644 (file)
@@ -3,16 +3,16 @@ class MainPage
 
   page_url ''
 
-  a(:edit_link, href: /action=edit/)
+  a(:edit_link, css: '#ca-edit a')
   li(:help_link, id: 'n-help')
   div(:page_content, id: 'content')
   li(:page_information_link, id: 't-info')
   li(:permanent_link_link, id: 't-permalink')
-  a(:printable_version_link, href: /printable=yes/)
+  a(:printable_version_link, css: '#t-print a')
   li(:random_page_link, id: 'n-randompage')
   li(:recent_changes_link, id: 'n-recentchanges')
   li(:related_changes_link, id: 't-recentchangeslinked')
   li(:special_pages_link, id: 't-specialpages')
-  a(:view_history_link, href: /action=history/)
+  a(:view_history_link, css: '#ca-history a')
   li(:what_links_here_link, id: 't-whatlinkshere')
 end
index 83c3952..1e5ffaa 100644 (file)
@@ -27,7 +27,7 @@ class PreferencesAppearancePage
   radio_button(:monobook, id: 'mw-input-wpskin-monobook')
   radio_button(:no_preference_radio, id: 'mw-input-wpdate-default')
   text_field(:other_offset, id: 'mw-input-wptimecorrection-other')
-  a(:restore_default_link, href: /reset/)
+  a(:restore_default_link, id: 'mw-prefs-restoreprefs')
   select_list(:size_select, id: 'mw-input-wpimagesize')
   select_list(:threshold_select, id: 'mw-input-wpstubthreshold')
   select_list(:time_offset_select, id: 'mw-input-wptimecorrection')
index bb9c586..ee4d757 100644 (file)
@@ -1,6 +1,6 @@
 class ViewHistoryPage
   include PageObject
 
-  a(:view_history_link, href: /action=history/)
-  a(:old_version_link, href: /oldid=/)
+  a(:view_history_link, css: '#ca-history a')
+  a(:old_version_link, css: '#pagehistory a.mw-changeslist-date')
 end
index c8c63f3..4c6c9a5 100644 (file)
@@ -4646,6 +4646,9 @@ http://example.com?
 http://example.com)
 http://example.com/url_with_(brackets)
 (http://example.com/url_without_brackets)
+http://example.com/url_with_entity&amp;
+http://example.com/url_with_entity&#x26;
+http://example.com/url_with_entity&#038;
 http://example.com/url_with_entity&nbsp;
 http://example.com/url_with_entity&#xA0;
 http://example.com/url_with_entity&#160;
@@ -4663,12 +4666,15 @@ http://example.com/url_with_entity&#60;
 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
 <a rel="nofollow" class="external free" href="http://example.com/url_with_(brackets)">http://example.com/url_with_(brackets)</a>
 (<a rel="nofollow" class="external free" href="http://example.com/url_without_brackets">http://example.com/url_without_brackets</a>)
-<a rel="nofollow" class="external free" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
-<a rel="nofollow" class="external free" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
-<a rel="nofollow" class="external free" href="http://example.com/url_with_entity ">http://example.com/url_with_entity </a>
+<a rel="nofollow" class="external free" href="http://example.com/url_with_entity&amp;">http://example.com/url_with_entity&amp;</a>
+<a rel="nofollow" class="external free" href="http://example.com/url_with_entity&amp;">http://example.com/url_with_entity&amp;</a>
+<a rel="nofollow" class="external free" href="http://example.com/url_with_entity&amp;">http://example.com/url_with_entity&amp;</a>
+<a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a>&#160;
+<a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a>&#xa0;
+<a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a>&#160;
 <a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a>&lt;
-<a rel="nofollow" class="external free" href="http://example.com/url_with_entity%3C">http://example.com/url_with_entity%3C</a>
-<a rel="nofollow" class="external free" href="http://example.com/url_with_entity%3C">http://example.com/url_with_entity%3C</a>
+<a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a>&#x3c;
+<a rel="nofollow" class="external free" href="http://example.com/url_with_entity">http://example.com/url_with_entity</a>&#60;
 </p>
 !! html/parsoid
 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a>,
index 73fa0b5..eec02ed 100644 (file)
@@ -45,7 +45,7 @@ class LessFileCompilationTest extends ResourceLoaderTestCase {
                $method->setAccessible( true );
                $compiler = $method->invoke( $this->module, $rlContext );
 
-               $this->assertNotNull( $compiler->compileFile( $this->file ) );
+               $this->assertNotNull( $compiler->parseFile( $this->file )->getCss() );
        }
 
        public function toString() {
index 0a32ba1..f555812 100644 (file)
@@ -14,16 +14,13 @@ TO RETAIN YOUR DATA.
 
 == Installation ==
 
-If PHPUnit is not installed, follow the installation instructions in the
-PHPUnit Manual at:
-
-  http://www.phpunit.de/manual/current/en/installation.html
+If you used composer to install MediaWiki's dependencies PHPUnit will already be available, unless
+you explicitly specified the --no-dev flag during the install. In this case just run "composer update".
 
-- or -
-
-On Unix-like operating systems, run:
+Otherwise follow the installation instructions in the
+PHPUnit Manual at:
 
-  make install
+  https://phpunit.de/manual/current/en/installation.html
 
 
 == Running tests ==
@@ -47,7 +44,7 @@ On Windows-family operating systems, run the 'run-tests.bat' batch file.
 
 === Writing tests ===
 
-A guide to writing unit tests for MediaWiki can be found at:
+A guide to writing PHP unit tests for MediaWiki can be found at:
 
-       http://mediawiki.org/wiki/Unit_Testing
+       https://www.mediawiki.org/wiki/Manual:PHP_unit_testing
 
diff --git a/tests/phpunit/data/css/comments.css b/tests/phpunit/data/css/comments.css
new file mode 100644 (file)
index 0000000..744a14c
--- /dev/null
@@ -0,0 +1,7 @@
+/* url expressions in comments should be ignored */
+
+.selector { /*@noflip*/ background-image: /*@embed*/ url(not-commented.gif); }
+
+/*
+.selector { background-image: url(commented-out.gif); }
+*/
index e8099d1..bac695b 100644 (file)
@@ -1,5 +1,5 @@
 /* @noflip */
 .unit-tests {
-  color: green;
+  color: #008000;
   border: 2px solid #eeeeee;
 }
diff --git a/tests/phpunit/includes/ConsecutiveParametersMatcher.php b/tests/phpunit/includes/ConsecutiveParametersMatcher.php
new file mode 100644 (file)
index 0000000..adf74bb
--- /dev/null
@@ -0,0 +1,123 @@
+<?php
+/*
+ * This file is part of the PHPUnit_MockObject package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Invocation matcher which looks for sets of specific parameters in the invocations.
+ *
+ * Checks the parameters of the incoming invocations, the parameter list is
+ * checked against the defined constraints in $parameters. If the constraint
+ * is met it will return true in matches().
+ *
+ * It takes a list of match groups and and increases a call index after each invocation.
+ * So the first invocation uses the first group of constraints, the second the next and so on.
+ */
+class PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters extends PHPUnit_Framework_MockObject_Matcher_StatelessInvocation
+{
+    /**
+     * @var array
+     */
+    private $_parameterGroups = array();
+
+    /**
+     * @var array
+     */
+    private $_invocations = array();
+
+    /**
+     * @param array $parameterGroups
+     */
+    public function __construct(array $parameterGroups)
+    {
+        foreach ($parameterGroups as $index => $parameters) {
+            foreach ($parameters as $parameter) {
+                if (!($parameter instanceof \PHPUnit_Framework_Constraint)) {
+                    $parameter = new \PHPUnit_Framework_Constraint_IsEqual($parameter);
+                }
+                $this->_parameterGroups[$index][] = $parameter;
+            }
+        }
+    }
+
+    /**
+     * @return string
+     */
+    public function toString()
+    {
+        $text = 'with consecutive parameters';
+
+        return $text;
+    }
+
+    /**
+     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
+     * @return bool
+     */
+    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
+    {
+        $this->_invocations[] = $invocation;
+        $callIndex            = count($this->_invocations) - 1;
+        $this->verifyInvocation($invocation, $callIndex);
+
+        return false;
+    }
+
+    public function verify()
+    {
+        foreach ($this->_invocations as $callIndex => $invocation) {
+            $this->verifyInvocation($invocation, $callIndex);
+        }
+    }
+
+    /**
+     * Verify a single invocation
+     *
+     * @param  PHPUnit_Framework_MockObject_Invocation      $invocation
+     * @param  int                                          $callIndex
+     * @throws PHPUnit_Framework_ExpectationFailedException
+     */
+    private function verifyInvocation(PHPUnit_Framework_MockObject_Invocation $invocation, $callIndex)
+    {
+
+        if (isset($this->_parameterGroups[$callIndex])) {
+            $parameters = $this->_parameterGroups[$callIndex];
+        } else {
+          // no parameter assertion for this call index
+            return;
+        }
+
+        if ($invocation === null) {
+            throw new PHPUnit_Framework_ExpectationFailedException(
+                'Mocked method does not exist.'
+            );
+        }
+
+        if (count($invocation->parameters) < count($parameters)) {
+            throw new PHPUnit_Framework_ExpectationFailedException(
+                sprintf(
+                    'Parameter count for invocation %s is too low.',
+                    $invocation->toString()
+                )
+            );
+        }
+
+        foreach ($parameters as $i => $parameter) {
+            $parameter->evaluate(
+                $invocation->parameters[$i],
+                sprintf(
+                    'Parameter %s for invocation #%d %s does not match expected ' .
+                    'value.',
+                    $i,
+                    $callIndex,
+                    $invocation->toString()
+                )
+            );
+        }
+    }
+}
index eca5b39..07214b2 100644 (file)
@@ -20,4 +20,32 @@ class FauxRequestTest extends MediaWikiTestCase {
                        array( 'text/plain', 'text/html' )
                );
        }
+
+       /**
+        * @covers FauxRequest::getAllHeaders
+        */
+       public function testGetAllHeaders() {
+               $_SERVER['HTTP_TEST'] = 'Example';
+
+               $request = new FauxRequest();
+
+               $this->assertEquals(
+                       array(),
+                       $request->getAllHeaders()
+               );
+       }
+
+       /**
+        * @covers FauxRequest::getHeader
+        */
+       public function testGetHeader() {
+               $_SERVER['HTTP_TEST'] = 'Example';
+
+               $request = new FauxRequest();
+
+               $this->assertEquals(
+                       false,
+                       $request->getHeader( 'test' )
+               );
+       }
 }
index 823c933..a3efbb8 100644 (file)
@@ -93,12 +93,26 @@ class LinkerTest extends MediaWikiLangTestCase {
         * @covers Linker::formatAutocomments
         * @covers Linker::formatLinksInComment
         */
-       public function testFormatComment( $expected, $comment, $title = false, $local = false ) {
+       public function testFormatComment( $expected, $comment, $title = false, $local = false, $wikiId = null ) {
+               $conf = new SiteConfiguration();
+               $conf->settings = array(
+                       'wgServer' => array(
+                               'enwiki' => '//en.example.org',
+                               'dewiki' => '//de.example.org',
+                       ),
+                       'wgArticlePath' => array(
+                               'enwiki' => '/w/$1',
+                               'dewiki' => '/w/$1',
+                       ),
+               );
+               $conf->suffixes = array( 'wiki' );
+
                $this->setMwGlobals( array(
                        'wgScript' => '/wiki/index.php',
                        'wgArticlePath' => '/wiki/$1',
                        'wgWellFormedXml' => true,
                        'wgCapitalLinks' => true,
+                       'wgConf' => $conf,
                ) );
 
                if ( $title === false ) {
@@ -108,11 +122,13 @@ class LinkerTest extends MediaWikiLangTestCase {
 
                $this->assertEquals(
                        $expected,
-                       Linker::formatComment( $comment, $title, $local )
+                       Linker::formatComment( $comment, $title, $local, $wikiId )
                );
        }
 
-       public static function provideCasesForFormatComment() {
+       public function provideCasesForFormatComment() {
+               $wikiId = 'enwiki'; // $wgConf has a fake entry for this
+
                return array(
                        // Linker::formatComment
                        array(
@@ -127,6 +143,10 @@ class LinkerTest extends MediaWikiLangTestCase {
                                "&#039;&#039;&#039;not bolded&#039;&#039;&#039;",
                                "'''not bolded'''",
                        ),
+                       array(
+                               "try &lt;script&gt;evil&lt;/scipt&gt; things",
+                               "try <script>evil</scipt> things",
+                       ),
                        // Linker::formatAutocomments
                        array(
                                '<a href="/wiki/Special:BlankPage#autocomment" title="Special:BlankPage">→</a>‎<span dir="auto"><span class="autocomment">autocomment</span></span>',
@@ -156,6 +176,14 @@ class LinkerTest extends MediaWikiLangTestCase {
                                '<a href="/wiki/Special:BlankPage#autocomment_containing_.2F.2A" title="Special:BlankPage">→</a>‎<span dir="auto"><span class="autocomment">autocomment containing /*: </span> T70361</span>',
                                "/* autocomment containing /* */ T70361"
                        ),
+                       array(
+                               '<a href="/wiki/Special:BlankPage#autocomment_containing_.22quotes.22" title="Special:BlankPage">→</a>‎<span dir="auto"><span class="autocomment">autocomment containing &quot;quotes&quot;</span></span>',
+                               "/* autocomment containing \"quotes\" */"
+                       ),
+                       array(
+                               '<a href="/wiki/Special:BlankPage#autocomment_containing_.3Cscript.3Etags.3C.2Fscript.3E" title="Special:BlankPage">→</a>‎<span dir="auto"><span class="autocomment">autocomment containing &lt;script&gt;tags&lt;/script&gt;</span></span>',
+                               "/* autocomment containing <script>tags</script> */"
+                       ),
                        array(
                                '<a href="#autocomment">→</a>‎<span dir="auto"><span class="autocomment">autocomment</span></span>',
                                "/* autocomment */",
@@ -166,6 +194,16 @@ class LinkerTest extends MediaWikiLangTestCase {
                                "/* autocomment */",
                                null
                        ),
+                       array(
+                               '<a href="/wiki/Special:BlankPage#autocomment" title="Special:BlankPage">→</a>‎<span dir="auto"><span class="autocomment">autocomment</span></span>',
+                               "/* autocomment */",
+                               false, false
+                       ),
+                       array(
+                               '<a class="external" rel="nofollow" href="//en.example.org/w/Special:BlankPage#autocomment">→</a>‎<span dir="auto"><span class="autocomment">autocomment</span></span>',
+                               "/* autocomment */",
+                               false, false, $wikiId
+                       ),
                        // Linker::formatLinksInComment
                        array(
                                'abc <a href="/wiki/index.php?title=Link&amp;action=edit&amp;redlink=1" class="new" title="Link (page does not exist)">link</a> def',
@@ -191,6 +229,28 @@ class LinkerTest extends MediaWikiLangTestCase {
                                'abc <a href="/wiki/index.php?title=/subpage&amp;action=edit&amp;redlink=1" class="new" title="/subpage (page does not exist)">/subpage</a> def',
                                "abc [[/subpage]] def",
                        ),
+                       array(
+                               'abc <a href="/wiki/index.php?title=%22evil!%22&amp;action=edit&amp;redlink=1" class="new" title="&quot;evil!&quot; (page does not exist)">&quot;evil!&quot;</a> def',
+                               "abc [[\"evil!\"]] def",
+                       ),
+                       array(
+                               'abc [[&lt;script&gt;very evil&lt;/script&gt;]] def',
+                               "abc [[<script>very evil</script>]] def",
+                       ),
+                       array(
+                               'abc [[|]] def',
+                               "abc [[|]] def",
+                       ),
+                       array(
+                               'abc <a href="/wiki/index.php?title=Link&amp;action=edit&amp;redlink=1" class="new" title="Link (page does not exist)">link</a> def',
+                               "abc [[link]] def",
+                               false, false
+                       ),
+                       array(
+                               'abc <a class="external" rel="nofollow" href="//en.example.org/w/Link">link</a> def',
+                               "abc [[link]] def",
+                               false, false, $wikiId
+                       )
                );
        }
 
diff --git a/tests/phpunit/includes/WikiMapTest.php b/tests/phpunit/includes/WikiMapTest.php
new file mode 100644 (file)
index 0000000..9233416
--- /dev/null
@@ -0,0 +1,108 @@
+<?php
+
+/**
+ * @covers WikiMap
+ */
+
+class WikiMapTest extends MediaWikiLangTestCase {
+
+       public function setUp() {
+               parent::setUp();
+
+               $conf = new SiteConfiguration();
+               $conf->settings = array(
+                       'wgServer' => array(
+                               'enwiki' => 'http://en.example.org',
+                               'ruwiki' => '//ru.example.org',
+                       ),
+                       'wgArticlePath' => array(
+                               'enwiki' => '/w/$1',
+                               'ruwiki' => '/wiki/$1',
+                       ),
+               );
+               $conf->suffixes = array( 'wiki' );
+               $this->setMwGlobals( array(
+                       'wgConf' => $conf,
+               ) );
+       }
+
+       public function provideGetWiki() {
+               $enwiki = new WikiReference( 'wiki', 'en', 'http://en.example.org', '/w/$1' );
+               $ruwiki = new WikiReference( 'wiki', 'ru', '//ru.example.org', '/wiki/$1' );
+
+               return array(
+                       'unknown' => array( false, 'xyzzy' ),
+                       'enwiki' => array( $enwiki, 'enwiki' ),
+                       'ruwiki' => array( $ruwiki, 'ruwiki' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideGetWiki
+        */
+       public function testGetWiki( $expected, $wikiId ) {
+               $this->assertEquals( $expected, WikiMap::getWiki( $wikiId ) );
+       }
+
+       public function provideGetWikiName() {
+               return array(
+                       'unknown' => array( 'xyzzy', 'xyzzy' ),
+                       'enwiki' => array( 'en.example.org', 'enwiki' ),
+                       'ruwiki' => array( 'ru.example.org', 'ruwiki' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideGetWikiName
+        */
+       public function testGetWikiName( $expected, $wikiId ) {
+               $this->assertEquals( $expected, WikiMap::getWikiName( $wikiId ) );
+       }
+
+       public function provideMakeForeignLink() {
+               return array(
+                       'unknown' => array( false, 'xyzzy', 'Foo' ),
+                       'enwiki' => array( '<a class="external" rel="nofollow" href="http://en.example.org/w/Foo">Foo</a>', 'enwiki', 'Foo',  ),
+                       'ruwiki' => array( '<a class="external" rel="nofollow" href="//ru.example.org/wiki/%D0%A4%D1%83">вар</a>', 'ruwiki', 'Фу', 'вар' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideMakeForeignLink
+        */
+       public function testMakeForeignLink( $expected, $wikiId, $page, $text = null ) {
+               $this->assertEquals( $expected, WikiMap::makeForeignLink( $wikiId, $page, $text ) );
+       }
+
+       public function provideForeignUserLink() {
+               return array(
+                       'unknown' => array( false, 'xyzzy', 'Foo' ),
+                       'enwiki' => array( '<a class="external" rel="nofollow" href="http://en.example.org/w/User:Foo">User:Foo</a>', 'enwiki', 'Foo',  ),
+                       'ruwiki' => array( '<a class="external" rel="nofollow" href="//ru.example.org/wiki/User:%D0%A4%D1%83">вар</a>', 'ruwiki', 'Фу', 'вар' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideForeignUserLink
+        */
+       public function testForeignUserLink( $expected, $wikiId, $user, $text = null ) {
+               $this->assertEquals( $expected, WikiMap::foreignUserLink( $wikiId, $user, $text ) );
+       }
+
+       public function provideGetForeignURL() {
+               return array(
+                       'unknown' => array( false, 'xyzzy', 'Foo' ),
+                       'enwiki' => array( 'http://en.example.org/w/Foo', 'enwiki', 'Foo',  ),
+                       'ruwiki with fragement' => array( '//ru.example.org/wiki/%D0%A4%D1%83#%D0%B2%D0%B0%D1%80', 'ruwiki', 'Фу', 'вар' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideGetForeignURL
+        */
+       public function testGetForeignURL( $expected, $wikiId, $page, $fragment = null ) {
+               $this->assertEquals( $expected, WikiMap::getForeignURL( $wikiId, $page, $fragment ) );
+       }
+
+}
+
diff --git a/tests/phpunit/includes/WikiReferenceTest.php b/tests/phpunit/includes/WikiReferenceTest.php
new file mode 100644 (file)
index 0000000..4fe2e85
--- /dev/null
@@ -0,0 +1,80 @@
+<?php
+
+/**
+ * @covers WikiReference
+ */
+
+class WikiReferenceTest extends PHPUnit_Framework_TestCase {
+
+       public function provideGetDisplayName() {
+               return array(
+                       'http' => array( 'foo.bar', 'http://foo.bar' ),
+                       'https' => array( 'foo.bar', 'http://foo.bar' ),
+
+                       // apparently, this is the expected behavior
+                       'invalid' => array( 'purple kittens', 'purple kittens' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideGetDisplayName
+        */
+       public function testGetDisplayName( $expected, $canonicalServer ) {
+               $reference = new WikiReference( 'wiki', 'xx', $canonicalServer, '/wiki/$1' );
+               $this->assertEquals( $expected, $reference->getDisplayName() );
+       }
+
+       public function testGetCanonicalServer() {
+               $reference = new WikiReference( 'wiki', 'xx', 'https://acme.com', '/wiki/$1', '//acme.com' );
+               $this->assertEquals( 'https://acme.com', $reference->getCanonicalServer() );
+       }
+
+       public function provideGetCanonicalUrl() {
+               return array(
+                       'no fragement' => array( 'https://acme.com/wiki/Foo', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo', null ),
+                       'empty fragement' => array( 'https://acme.com/wiki/Foo', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo', '' ),
+                       'fragment' => array( 'https://acme.com/wiki/Foo#Bar', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo', 'Bar' ),
+                       'double fragment' => array( 'https://acme.com/wiki/Foo#Bar%23Xus', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo', 'Bar#Xus' ),
+                       'escaped fragement' => array( 'https://acme.com/wiki/Foo%23Bar', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo#Bar', null ),
+                       'empty path' => array( 'https://acme.com/Foo', 'https://acme.com', '//acme.com', '/$1', 'Foo', null ),
+               );
+       }
+
+       /**
+        * @dataProvider provideGetCanonicalUrl
+        */
+       public function testGetCanonicalUrl( $expected, $canonicalServer, $server, $path, $page, $fragmentId ) {
+               $reference = new WikiReference( 'wiki', 'xx', $canonicalServer, $path, $server );
+               $this->assertEquals( $expected, $reference->getCanonicalUrl( $page, $fragmentId ) );
+       }
+
+       /**
+        * @dataProvider provideGetCanonicalUrl
+        * @note getUrl is an alias for getCanonicalUrl
+        */
+       public function testGetUrl( $expected, $canonicalServer, $server, $path, $page, $fragmentId ) {
+               $reference = new WikiReference( 'wiki', 'xx', $canonicalServer, $path, $server );
+               $this->assertEquals( $expected, $reference->getUrl( $page, $fragmentId ) );
+       }
+
+       public function provideGetFullUrl() {
+               return array(
+                       'no fragement' => array( '//acme.com/wiki/Foo', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo', null ),
+                       'empty fragement' => array( '//acme.com/wiki/Foo', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo', '' ),
+                       'fragment' => array( '//acme.com/wiki/Foo#Bar', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo', 'Bar' ),
+                       'double fragment' => array( '//acme.com/wiki/Foo#Bar%23Xus', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo', 'Bar#Xus' ),
+                       'escaped fragement' => array( '//acme.com/wiki/Foo%23Bar', 'https://acme.com', '//acme.com', '/wiki/$1', 'Foo#Bar', null ),
+                       'empty path' => array( '//acme.com/Foo', 'https://acme.com', '//acme.com', '/$1', 'Foo', null ),
+               );
+       }
+
+       /**
+        * @dataProvider provideGetFullUrl
+        */
+       public function testGetFullUrl( $expected, $canonicalServer, $server, $path, $page, $fragmentId ) {
+               $reference = new WikiReference( 'wiki', 'xx', $canonicalServer, $path, $server );
+               $this->assertEquals( $expected, $reference->getFullUrl( $page, $fragmentId ) );
+       }
+
+}
+
index cff2328..2f31677 100644 (file)
@@ -1321,17 +1321,6 @@ class ApiResultTest extends MediaWikiTestCase {
                        ),
                        '*' => 'content',
                ), $result->getData() );
-               $result->setRawMode();
-               $this->assertSame( array(
-                       'foo' => array(
-                               'bar' => array(
-                                       '*' => 'content',
-                               ),
-                       ),
-                       '*' => 'content',
-                       '_element' => 'itn',
-                       '_subelements' => array( 'sub' ),
-               ), $result->getData() );
 
                $arr = array();
                ApiResult::setContent( $arr, 'value' );
index 60235b8..4d1a936 100644 (file)
@@ -10,8 +10,8 @@ class RecentChangeTest extends MediaWikiTestCase {
        protected $user_comment;
        protected $context;
 
-       public function __construct() {
-               parent::__construct();
+       public function setUp() {
+               parent::setUp();
 
                $this->title = Title::newFromText( 'SomeTitle' );
                $this->target = Title::newFromText( 'TestTarget' );
@@ -21,6 +21,26 @@ class RecentChangeTest extends MediaWikiTestCase {
                $this->context = RequestContext::newExtraneousContext( $this->title );
        }
 
+       /**
+        * @covers RecentChange::newFromRow
+        * @covers RecentChange::loadFromRow
+        */
+       public function testNewFromRow() {
+               $row = new stdClass();
+               $row->rc_foo = 'AAA';
+               $row->rc_timestamp = '20150921134808';
+               $row->rc_deleted = 'bar';
+
+               $rc = RecentChange::newFromRow( $row );
+
+               $expected = array(
+                       'rc_foo' => 'AAA',
+                       'rc_timestamp' => '20150921134808',
+                       'rc_deleted' => 'bar',
+               );
+               $this->assertEquals( $expected, $rc->getAttributes() );
+       }
+
        /**
         * The testIrcMsgForAction* tests are supposed to cover the hacky
         * LogFormatter::getIRCActionText / bug 34508
@@ -59,291 +79,6 @@ class RecentChangeTest extends MediaWikiTestCase {
         * - undo
         */
 
-       /**
-        * @covers LogFormatter::getIRCActionText
-        */
-       public function testIrcMsgForLogTypeBlock() {
-               $sep = $this->context->msg( 'colon-separator' )->text();
-
-               # block/block
-               $this->assertIRCComment(
-                       $this->context->msg( 'blocklogentry', 'SomeTitle', 'duration', '(flags)' )->plain()
-                               . $sep . $this->user_comment,
-                       'block', 'block',
-                       array(
-                               '5::duration' => 'duration',
-                               '6::flags' => 'flags',
-                       ),
-                       $this->user_comment
-               );
-               # block/block - legacy
-               $this->assertIRCComment(
-                       $this->context->msg( 'blocklogentry', 'SomeTitle', 'duration', '(flags)' )->plain()
-                               . $sep . $this->user_comment,
-                       'block', 'block',
-                       array(
-                               'duration',
-                               'flags',
-                       ),
-                       $this->user_comment,
-                       '',
-                       true
-               );
-               # block/unblock
-               $this->assertIRCComment(
-                       $this->context->msg( 'unblocklogentry', 'SomeTitle' )->plain() . $sep . $this->user_comment,
-                       'block', 'unblock',
-                       array(),
-                       $this->user_comment
-               );
-               # block/reblock
-               $this->assertIRCComment(
-                       $this->context->msg( 'reblock-logentry', 'SomeTitle', 'duration', '(flags)' )->plain()
-                               . $sep . $this->user_comment,
-                       'block', 'reblock',
-                       array(
-                               '5::duration' => 'duration',
-                               '6::flags' => 'flags',
-                       ),
-                       $this->user_comment
-               );
-       }
-
-       /**
-        * @covers LogFormatter::getIRCActionText
-        */
-       public function testIrcMsgForLogTypeDelete() {
-               $sep = $this->context->msg( 'colon-separator' )->text();
-
-               # delete/delete
-               $this->assertIRCComment(
-                       $this->context->msg( 'deletedarticle', 'SomeTitle' )->plain() . $sep . $this->user_comment,
-                       'delete', 'delete',
-                       array(),
-                       $this->user_comment
-               );
-
-               # delete/restore
-               $this->assertIRCComment(
-                       $this->context->msg( 'undeletedarticle', 'SomeTitle' )->plain() . $sep . $this->user_comment,
-                       'delete', 'restore',
-                       array(),
-                       $this->user_comment
-               );
-       }
-
-       /**
-        * @covers LogFormatter::getIRCActionText
-        */
-       public function testIrcMsgForLogTypeNewusers() {
-               $this->assertIRCComment(
-                       'New user account',
-                       'newusers', 'newusers',
-                       array()
-               );
-               $this->assertIRCComment(
-                       'New user account',
-                       'newusers', 'create',
-                       array()
-               );
-               $this->assertIRCComment(
-                       'created new account SomeTitle',
-                       'newusers', 'create2',
-                       array()
-               );
-               $this->assertIRCComment(
-                       'Account created automatically',
-                       'newusers', 'autocreate',
-                       array()
-               );
-       }
-
-       /**
-        * @covers LogFormatter::getIRCActionText
-        */
-       public function testIrcMsgForLogTypeMove() {
-               $move_params = array(
-                       '4::target' => $this->target->getPrefixedText(),
-                       '5::noredir' => 0,
-               );
-               $sep = $this->context->msg( 'colon-separator' )->text();
-
-               # move/move
-               $this->assertIRCComment(
-                       $this->context->msg( '1movedto2', 'SomeTitle', 'TestTarget' )
-                               ->plain() . $sep . $this->user_comment,
-                       'move', 'move',
-                       $move_params,
-                       $this->user_comment
-               );
-
-               # move/move_redir
-               $this->assertIRCComment(
-                       $this->context->msg( '1movedto2_redir', 'SomeTitle', 'TestTarget' )
-                               ->plain() . $sep . $this->user_comment,
-                       'move', 'move_redir',
-                       $move_params,
-                       $this->user_comment
-               );
-       }
-
-       /**
-        * @covers LogFormatter::getIRCActionText
-        */
-       public function testIrcMsgForLogTypePatrol() {
-               # patrol/patrol
-               $this->assertIRCComment(
-                       $this->context->msg( 'patrol-log-line', 'revision 777', '[[SomeTitle]]', '' )->plain(),
-                       'patrol', 'patrol',
-                       array(
-                               '4::curid' => '777',
-                               '5::previd' => '666',
-                               '6::auto' => 0,
-                       )
-               );
-       }
-
-       /**
-        * @covers LogFormatter::getIRCActionText
-        */
-       public function testIrcMsgForLogTypeProtect() {
-               $protectParams = array(
-                       '[edit=sysop] (indefinite) ‎[move=sysop] (indefinite)'
-               );
-               $sep = $this->context->msg( 'colon-separator' )->text();
-
-               # protect/protect
-               $this->assertIRCComment(
-                       $this->context->msg( 'protectedarticle', 'SomeTitle ' . $protectParams[0] )
-                               ->plain() . $sep . $this->user_comment,
-                       'protect', 'protect',
-                       $protectParams,
-                       $this->user_comment
-               );
-
-               # protect/unprotect
-               $this->assertIRCComment(
-                       $this->context->msg( 'unprotectedarticle', 'SomeTitle' )->plain() . $sep . $this->user_comment,
-                       'protect', 'unprotect',
-                       array(),
-                       $this->user_comment
-               );
-
-               # protect/modify
-               $this->assertIRCComment(
-                       $this->context->msg( 'modifiedarticleprotection', 'SomeTitle ' . $protectParams[0] )
-                               ->plain() . $sep . $this->user_comment,
-                       'protect', 'modify',
-                       $protectParams,
-                       $this->user_comment
-               );
-
-               # protect/move_prot
-               $this->assertIRCComment(
-                       $this->context->msg( 'movedarticleprotection', 'SomeTitle', 'OldTitle' )
-                               ->plain() . $sep . $this->user_comment,
-                       'protect', 'move_prot',
-                       array(
-                               '4::oldtitle' => 'OldTitle'
-                       ),
-                       $this->user_comment
-               );
-       }
-
-       /**
-        * @covers LogFormatter::getIRCActionText
-        */
-       public function testIrcMsgForLogTypeUpload() {
-               $sep = $this->context->msg( 'colon-separator' )->text();
-
-               # upload/upload
-               $this->assertIRCComment(
-                       $this->context->msg( 'uploadedimage', 'SomeTitle' )->plain() . $sep . $this->user_comment,
-                       'upload', 'upload',
-                       array(),
-                       $this->user_comment
-               );
-
-               # upload/overwrite
-               $this->assertIRCComment(
-                       $this->context->msg( 'overwroteimage', 'SomeTitle' )->plain() . $sep . $this->user_comment,
-                       'upload', 'overwrite',
-                       array(),
-                       $this->user_comment
-               );
-       }
-
-       /**
-        * @covers LogFormatter::getIRCActionText
-        */
-       public function testIrcMsgForLogTypeMerge() {
-               $sep = $this->context->msg( 'colon-separator' )->text();
-
-               # merge/merge
-               $this->assertIRCComment(
-                       $this->context->msg( 'pagemerge-logentry', 'SomeTitle', 'Dest', 'timestamp' )->plain()
-                               . $sep . $this->user_comment,
-                       'merge', 'merge',
-                       array(
-                               '4::dest' => 'Dest',
-                               '5::mergepoint' => 'timestamp',
-                       ),
-                       $this->user_comment
-               );
-       }
-
-       /**
-        * @covers LogFormatter::getIRCActionText
-        */
-       public function testIrcMsgForLogTypeImport() {
-               $sep = $this->context->msg( 'colon-separator' )->text();
-
-               # import/upload
-               $msg = $this->context->msg( 'import-logentry-upload', 'SomeTitle' )->plain() .
-                       $sep .
-                       $this->user_comment;
-               $this->assertIRCComment(
-                       $msg,
-                       'import', 'upload',
-                       array(),
-                       $this->user_comment
-               );
-
-               # import/interwiki
-               $msg = $this->context->msg( 'import-logentry-interwiki', 'SomeTitle' )->plain() .
-                       $sep .
-                       $this->user_comment;
-               $this->assertIRCComment(
-                       $msg,
-                       'import', 'interwiki',
-                       array(),
-                       $this->user_comment
-               );
-       }
-
-       /**
-        * @todo Emulate these edits somehow and extract
-        * raw edit summary from RecentChange object
-        * --
-        */
-       /*
-       public function testIrcMsgForBlankingAES() {
-               // $this->context->msg( 'autosumm-blank', .. );
-       }
-
-       public function testIrcMsgForReplaceAES() {
-               // $this->context->msg( 'autosumm-replace', .. );
-       }
-
-       public function testIrcMsgForRollbackAES() {
-               // $this->context->msg( 'revertpage', .. );
-       }
-
-       public function testIrcMsgForUndoAES() {
-               // $this->context->msg( 'undo-summary', .. );
-       }
-       */
-
        /**
         * @covers RecentChange::parseParams
         */
@@ -390,35 +125,50 @@ class RecentChangeTest extends MediaWikiTestCase {
        }
 
        /**
-        * @param string $expected Expected IRC text without colors codes
-        * @param string $type Log type (move, delete, suppress, patrol ...)
-        * @param string $action A log type action
-        * @param array $params
-        * @param string $comment (optional) A comment for the log action
-        * @param string $msg (optional) A message for PHPUnit :-)
+        * 50 mins and 100 mins are used here as the tests never take that long!
+        * @return array
         */
-       protected function assertIRCComment( $expected, $type, $action, $params,
-               $comment = null, $msg = '', $legacy = false
-       ) {
-               $logEntry = new ManualLogEntry( $type, $action );
-               $logEntry->setPerformer( $this->user );
-               $logEntry->setTarget( $this->title );
-               if ( $comment !== null ) {
-                       $logEntry->setComment( $comment );
-               }
-               $logEntry->setParameters( $params );
-               $logEntry->setLegacy( $legacy );
-
-               $formatter = LogFormatter::newFromEntry( $logEntry );
-               $formatter->setContext( $this->context );
+       public function provideIsInRCLifespan() {
+               return array(
+                       array( 6000, time() - 3000, 0, true ),
+                       array( 3000, time() - 6000, 0, false ),
+                       array( 6000, time() - 3000, 6000, true ),
+                       array( 3000, time() - 6000, 6000, true ),
+               );
+       }
 
-               // Apply the same transformation as done in IRCColourfulRCFeedFormatter::getLine for rc_comment
-               $ircRcComment = IRCColourfulRCFeedFormatter::cleanupForIRC( $formatter->getIRCActionComment() );
+       /**
+        * @covers RecentChange::isInRCLifespan
+        * @dataProvider provideIsInRCLifespan
+        */
+       public function testIsInRCLifespan( $maxAge, $timestamp, $tolerance, $expected ) {
+               $this->setMwGlobals( 'wgRCMaxAge', $maxAge );
+               $this->assertEquals( $expected, RecentChange::isInRCLifespan( $timestamp, $tolerance ) );
+       }
 
-               $this->assertEquals(
-                       $expected,
-                       $ircRcComment,
-                       $msg
+       public function provideRCTypes() {
+               return array(
+                       array( RC_EDIT, 'edit' ),
+                       array( RC_NEW, 'new' ),
+                       array( RC_LOG, 'log' ),
+                       array( RC_EXTERNAL, 'external' ),
                );
        }
+
+       /**
+        * @dataProvider provideRCTypes
+        * @covers RecentChange::parseFromRCType
+        */
+       public function testParseFromRCType( $rcType, $type ) {
+               $this->assertEquals( $type, RecentChange::parseFromRCType( $rcType ) );
+       }
+
+       /**
+        * @dataProvider provideRCTypes
+        * @covers RecentChange::parseToRCType
+        */
+       public function testParseToRCType( $rcType, $type ) {
+               $this->assertEquals( $rcType, RecentChange::parseToRCType( $type ) );
+       }
+
 }
diff --git a/tests/phpunit/includes/debug/logger/monolog/AvroFormatterTest.php b/tests/phpunit/includes/debug/logger/monolog/AvroFormatterTest.php
new file mode 100644 (file)
index 0000000..44242ed
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+namespace MediaWiki\Logger\Monolog;
+
+use MediaWikiTestCase;
+use PHPUnit_Framework_Error_Notice;
+
+class AvroFormatterTest extends MediaWikiTestCase {
+
+       protected function setUp() {
+               if ( !class_exists( 'AvroStringIO' ) ) {
+                       $this->markTestSkipped( 'Avro is required for the AvroFormatterTest' );
+               }
+               parent::setUp();
+       }
+
+       public function testSchemaNotAvailable() {
+               $formatter = new AvroFormatter( array() );
+               $this->setExpectedException( 'PHPUnit_Framework_Error_Notice', "The schema for channel 'marty' is not available" );
+               $formatter->format( array( 'channel' => 'marty' ) );
+       }
+
+       public function testSchemaNotAvailableReturnValue() {
+               $formatter = new AvroFormatter( array() );
+               $noticeEnabled = PHPUnit_Framework_Error_Notice::$enabled;
+               // disable conversion of notices
+               PHPUnit_Framework_Error_Notice::$enabled = false;
+               // have to keep the user notice from being output
+               wfSuppressWarnings();
+               $res = $formatter->format( array( 'channel' => 'marty' ) );
+               wfRestoreWarnings();
+               PHPUnit_Framework_Error_Notice::$enabled = $noticeEnabled;
+               $this->assertNull( $res );
+       }
+
+       public function testDoesSomethingWhenSchemaAvailable() {
+               $formatter = new AvroFormatter( array( 'string' => array( 'type' => 'string' ) ) );
+               $res = $formatter->format( array(
+                       'channel' => 'string',
+                       'context' => 'better to be',
+               ) );
+               $this->assertNotNull( $res );
+               // basically just tell us if avro changes its string encoding
+               $this->assertEquals( base64_decode( 'GGJldHRlciB0byBiZQ==' ), $res );
+       }
+}
diff --git a/tests/phpunit/includes/debug/logger/monolog/KafkaHandlerTest.php b/tests/phpunit/includes/debug/logger/monolog/KafkaHandlerTest.php
new file mode 100644 (file)
index 0000000..090f439
--- /dev/null
@@ -0,0 +1,207 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+namespace MediaWiki\Logger\Monolog;
+
+use MediaWikiTestCase;
+use Monolog\Logger;
+
+// not available in the version of phpunit mw uses, so copied into repo
+require_once __DIR__ . '/../../../ConsecutiveParametersMatcher.php';
+
+class KafkaHandlerTest extends MediaWikiTestCase {
+
+       protected function setUp() {
+               if ( !class_exists( 'Monolog\Handler\AbstractProcessingHandler' )
+                       || !class_exists( 'Kafka\Produce' )
+               ) {
+                       $this->markTestSkipped( 'Monolog and Kafka are required for the KafkaHandlerTest' );
+               }
+
+               parent::setUp();
+       }
+
+       public function topicNamingProvider() {
+               return array(
+                       array( array(), 'monolog_foo' ),
+                       array( array( 'alias' => array( 'foo' => 'bar' ) ), 'bar' )
+               );
+       }
+
+       /**
+        * @dataProvider topicNamingProvider
+        */
+       public function testTopicNaming( $options, $expect ) {
+               $produce = $this->getMockBuilder( 'Kafka\Produce' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $produce->expects($this->any())
+                       ->method('getAvailablePartitions')
+                       ->will($this->returnValue( array( 'A' ) ) );
+               $produce->expects($this->once())
+                       ->method( 'setMessages' )
+                       ->with( $expect, $this->anything(), $this->anything() );
+
+               $handler = new KafkaHandler( $produce, $options );
+               $handler->handle( array(
+                       'channel' => 'foo',
+                       'level' => Logger::EMERGENCY,
+                       'extra' => array(),
+               ) );
+       }
+
+       public function swallowsExceptionsWhenRequested() {
+               return array(
+                       // defaults to false
+                       array( array(), true ),
+                       // also try false explicitly
+                       array( array( 'swallowExceptions' => false ), true ),
+                       // turn it on
+                       array( array( 'swallowExceptions' => true ), false ),
+               );
+       }
+
+       /**
+        * @dataProvider swallowsExceptionsWhenRequested
+        */
+       public function testGetAvailablePartitionsException( $options, $expectException ) {
+               $produce = $this->getMockBuilder( 'Kafka\Produce' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $produce->expects( $this->any() )
+                       ->method( 'getAvailablePartitions' )
+                       ->will( $this->throwException( new \Kafka\Exception ) );
+
+               if ( $expectException ) {
+                       $this->setExpectedException( 'Kafka\Exception' );
+               }
+
+               $handler = new KafkaHandler( $produce, $options );
+               $handler->handle( array(
+                       'channel' => 'foo',
+                       'level' => Logger::EMERGENCY,
+                       'extra' => array(),
+               ) );
+
+               if ( !$expectException ) {
+                       $this->assertTrue( true, 'no exception was thrown' );
+               }
+       }
+
+       /**
+        * @dataProvider swallowsExceptionsWhenRequested
+        */
+       public function testSendException( $options, $expectException ) {
+               $produce = $this->getMockBuilder( 'Kafka\Produce' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $produce->expects( $this->any() )
+                       ->method( 'getAvailablePartitions' )
+                       ->will( $this->returnValue( array( 'A' ) ) );
+               $produce->expects( $this->any() )
+                       ->method( 'send' )
+                       ->will( $this->throwException( new \Kafka\Exception ) );
+
+               if ( $expectException ) {
+                       $this->setExpectedException( 'Kafka\Exception' );
+               }
+
+               $handler = new KafkaHandler( $produce, $options );
+               $handler->handle( array(
+                       'channel' => 'foo',
+                       'level' => Logger::EMERGENCY,
+                       'extra' => array(),
+               ) );
+
+               if ( !$expectException ) {
+                       $this->assertTrue( true, 'no exception was thrown' );
+               }
+       }
+
+       public function testHandlesNullFormatterResult() {
+               $produce = $this->getMockBuilder( 'Kafka\Produce' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $produce->expects( $this->any() )
+                       ->method( 'getAvailablePartitions' )
+                       ->will( $this->returnValue( array( 'A' ) ) );
+               $mockMethod = $produce->expects( $this->exactly( 2 ) )
+                       ->method( 'setMessages' );
+               // evil hax
+               \TestingAccessWrapper::newFromObject( $mockMethod )->matcher->parametersMatcher =
+                       new \PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters( array(
+                               array( $this->anything(), $this->anything(), array( 'words' ) ),
+                               array( $this->anything(), $this->anything(), array( 'lines' ) )
+                       ) );
+
+               $formatter = $this->getMock( 'Monolog\Formatter\FormatterInterface' );
+               $formatter->expects( $this->any() )
+                       ->method( 'format' )
+                       ->will( $this->onConsecutiveCalls( 'words', null, 'lines' ) );
+
+               $handler = new KafkaHandler( $produce, array() );
+               $handler->setFormatter( $formatter );
+               for ( $i = 0; $i < 3; ++$i ) {
+                       $handler->handle( array(
+                               'channel' => 'foo',
+                               'level' => Logger::EMERGENCY,
+                               'extra' => array(),
+                       ) );
+               }
+       }
+
+
+       public function testBatchHandlesNullFormatterResult() {
+               $produce = $this->getMockBuilder( 'Kafka\Produce' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $produce->expects( $this->any() )
+                       ->method( 'getAvailablePartitions' )
+                       ->will( $this->returnValue( array( 'A' ) ) );
+               $produce->expects( $this->once() )
+                       ->method( 'setMessages' )
+                       ->with( $this->anything(), $this->anything(), array( 'words', 'lines' ) );
+
+               $formatter = $this->getMock( 'Monolog\Formatter\FormatterInterface' );
+               $formatter->expects( $this->any() )
+                       ->method( 'format' )
+                       ->will( $this->onConsecutiveCalls( 'words', null, 'lines' ) );
+
+               $handler = new KafkaHandler( $produce, array() );
+               $handler->setFormatter( $formatter );
+               $handler->handleBatch( array(
+                       array(
+                               'channel' => 'foo',
+                               'level' => Logger::EMERGENCY,
+                               'extra' => array(),
+                       ),
+                       array(
+                               'channel' => 'foo',
+                               'level' => Logger::EMERGENCY,
+                               'extra' => array(),
+                       ),
+                       array(
+                               'channel' => 'foo',
+                               'level' => Logger::EMERGENCY,
+                               'extra' => array(),
+                       ),
+               ) );
+       }
+}
index 6ee54d3..be23c4a 100644 (file)
@@ -28,7 +28,7 @@ use TestingAccessWrapper;
 
 class LineFormatterTest extends MediaWikiTestCase {
 
-       public function setUp() {
+       protected function setUp() {
                if ( !class_exists( 'Monolog\Formatter\LineFormatter' ) ) {
                        $this->markTestSkipped( 'This test requires monolog to be installed' );
                }
index aaa93ef..2e4942f 100644 (file)
@@ -2392,6 +2392,56 @@ class FileBackendTest extends MediaWikiTestCase {
                        "Scoped unlocking of files succeeded with OK status ($backendName)." );
        }
 
+       public function testReadAffinity() {
+               $be = TestingAccessWrapper::newFromObject(
+                       new FileBackendMultiWrite( array(
+                               'name' => 'localtesting',
+                               'wikiId' => wfWikiId() . mt_rand(),
+                               'backends' => array(
+                                       array( // backend 0
+                                               'name' => 'multitesting0',
+                                               'class' => 'MemoryFileBackend',
+                                               'isMultiMaster' => false,
+                                               'readAffinity' => true
+                                       ),
+                                       array( // backend 1
+                                               'name' => 'multitesting1',
+                                               'class' => 'MemoryFileBackend',
+                                               'isMultiMaster' => true
+                                       )
+                               )
+                       ) )
+               );
+
+               $this->assertEquals(
+                       1,
+                       $be->getReadIndexFromParams( array( 'latest' => 1 ) ),
+                       'Reads with "latest" flag use backend 1'
+               );
+               $this->assertEquals(
+                       0,
+                       $be->getReadIndexFromParams( array( 'latest' => 0 ) ),
+                       'Reads without "latest" flag use backend 0'
+               );
+
+               $p = 'container/test-cont/file.txt';
+               $be->backends[0]->quickCreate( array(
+                       'dst' => "mwstore://multitesting0/$p", 'content' => 'cattitude' ) );
+               $be->backends[1]->quickCreate( array(
+                       'dst' => "mwstore://multitesting1/$p", 'content' => 'princess of power' ) );
+
+               $this->assertEquals(
+                       'cattitude',
+                       $be->getFileContents( array( 'src' => "mwstore://localtesting/$p" ) ),
+                       "Non-latest read came from backend 0"
+               );
+               $this->assertEquals(
+                       'princess of power',
+                       $be->getFileContents( array( 'src' => "mwstore://localtesting/$p", 'latest' => 1 ) ),
+                       "Latest read came from backend1"
+               );
+       }
+
        // helper function
        private function listToArray( $iter ) {
                return is_array( $iter ) ? $iter : iterator_to_array( $iter );
index 515990e..844c9af 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * @group Database
  */
@@ -19,6 +20,16 @@ class LogFormatterTest extends MediaWikiLangTestCase {
         */
        protected $context;
 
+       /**
+        * @var Title
+        */
+       protected $target;
+
+       /**
+        * @var string
+        */
+       protected $user_comment;
+
        protected function setUp() {
                parent::setUp();
 
@@ -35,12 +46,15 @@ class LogFormatterTest extends MediaWikiLangTestCase {
                Language::getLocalisationCache()->recache( $wgLang->getCode() );
 
                $this->user = User::newFromName( 'Testuser' );
-               $this->title = Title::newMainPage();
+               $this->title = Title::newFromText( 'SomeTitle' );
+               $this->target = Title::newFromText( 'TestTarget' );
 
                $this->context = new RequestContext();
                $this->context->setUser( $this->user );
                $this->context->setTitle( $this->title );
                $this->context->setLanguage( $wgLang );
+
+               $this->user_comment = '<User comment about action>';
        }
 
        protected function tearDown() {
@@ -292,4 +306,309 @@ class LogFormatterTest extends MediaWikiLangTestCase {
                        array( '4:user-link:key', 'foo', array( 'key' => 'Foo' ) ),
                );
        }
+
+       /**
+        * @covers LogFormatter::getIRCActionComment
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeBlock() {
+               $sep = $this->context->msg( 'colon-separator' )->text();
+
+               # block/block
+               $this->assertIRCComment(
+                       $this->context->msg( 'blocklogentry', 'SomeTitle', 'duration', '(flags)' )->plain()
+                       . $sep . $this->user_comment,
+                       'block', 'block',
+                       array(
+                               '5::duration' => 'duration',
+                               '6::flags' => 'flags',
+                       ),
+                       $this->user_comment
+               );
+               # block/block - legacy
+               $this->assertIRCComment(
+                       $this->context->msg( 'blocklogentry', 'SomeTitle', 'duration', '(flags)' )->plain()
+                       . $sep . $this->user_comment,
+                       'block', 'block',
+                       array(
+                               'duration',
+                               'flags',
+                       ),
+                       $this->user_comment,
+                       '',
+                       true
+               );
+               # block/unblock
+               $this->assertIRCComment(
+                       $this->context->msg( 'unblocklogentry', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       'block', 'unblock',
+                       array(),
+                       $this->user_comment
+               );
+               # block/reblock
+               $this->assertIRCComment(
+                       $this->context->msg( 'reblock-logentry', 'SomeTitle', 'duration', '(flags)' )->plain()
+                       . $sep . $this->user_comment,
+                       'block', 'reblock',
+                       array(
+                               '5::duration' => 'duration',
+                               '6::flags' => 'flags',
+                       ),
+                       $this->user_comment
+               );
+       }
+
+       /**
+        * @covers LogFormatter::getIRCActionComment
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeDelete() {
+               $sep = $this->context->msg( 'colon-separator' )->text();
+
+               # delete/delete
+               $this->assertIRCComment(
+                       $this->context->msg( 'deletedarticle', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       'delete', 'delete',
+                       array(),
+                       $this->user_comment
+               );
+
+               # delete/restore
+               $this->assertIRCComment(
+                       $this->context->msg( 'undeletedarticle', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       'delete', 'restore',
+                       array(),
+                       $this->user_comment
+               );
+       }
+
+       /**
+        * @covers LogFormatter::getIRCActionComment
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeNewusers() {
+               $this->assertIRCComment(
+                       'New user account',
+                       'newusers', 'newusers',
+                       array()
+               );
+               $this->assertIRCComment(
+                       'New user account',
+                       'newusers', 'create',
+                       array()
+               );
+               $this->assertIRCComment(
+                       'created new account SomeTitle',
+                       'newusers', 'create2',
+                       array()
+               );
+               $this->assertIRCComment(
+                       'Account created automatically',
+                       'newusers', 'autocreate',
+                       array()
+               );
+       }
+
+       /**
+        * @covers LogFormatter::getIRCActionComment
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeMove() {
+               $move_params = array(
+                       '4::target' => $this->target->getPrefixedText(),
+                       '5::noredir' => 0,
+               );
+               $sep = $this->context->msg( 'colon-separator' )->text();
+
+               # move/move
+               $this->assertIRCComment(
+                       $this->context->msg( '1movedto2', 'SomeTitle', 'TestTarget' )
+                               ->plain() . $sep . $this->user_comment,
+                       'move', 'move',
+                       $move_params,
+                       $this->user_comment
+               );
+
+               # move/move_redir
+               $this->assertIRCComment(
+                       $this->context->msg( '1movedto2_redir', 'SomeTitle', 'TestTarget' )
+                               ->plain() . $sep . $this->user_comment,
+                       'move', 'move_redir',
+                       $move_params,
+                       $this->user_comment
+               );
+       }
+
+       /**
+        * @covers LogFormatter::getIRCActionComment
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypePatrol() {
+               # patrol/patrol
+               $this->assertIRCComment(
+                       $this->context->msg( 'patrol-log-line', 'revision 777', '[[SomeTitle]]', '' )->plain(),
+                       'patrol', 'patrol',
+                       array(
+                               '4::curid' => '777',
+                               '5::previd' => '666',
+                               '6::auto' => 0,
+                       )
+               );
+       }
+
+       /**
+        * @covers LogFormatter::getIRCActionComment
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeProtect() {
+               $protectParams = array(
+                       '[edit=sysop] (indefinite) ‎[move=sysop] (indefinite)'
+               );
+               $sep = $this->context->msg( 'colon-separator' )->text();
+
+               # protect/protect
+               $this->assertIRCComment(
+                       $this->context->msg( 'protectedarticle', 'SomeTitle ' . $protectParams[0] )
+                               ->plain() . $sep . $this->user_comment,
+                       'protect', 'protect',
+                       $protectParams,
+                       $this->user_comment
+               );
+
+               # protect/unprotect
+               $this->assertIRCComment(
+                       $this->context->msg( 'unprotectedarticle', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       'protect', 'unprotect',
+                       array(),
+                       $this->user_comment
+               );
+
+               # protect/modify
+               $this->assertIRCComment(
+                       $this->context->msg( 'modifiedarticleprotection', 'SomeTitle ' . $protectParams[0] )
+                               ->plain() . $sep . $this->user_comment,
+                       'protect', 'modify',
+                       $protectParams,
+                       $this->user_comment
+               );
+
+               # protect/move_prot
+               $this->assertIRCComment(
+                       $this->context->msg( 'movedarticleprotection', 'SomeTitle', 'OldTitle' )
+                               ->plain() . $sep . $this->user_comment,
+                       'protect', 'move_prot',
+                       array(
+                               '4::oldtitle' => 'OldTitle'
+                       ),
+                       $this->user_comment
+               );
+       }
+
+       /**
+        * @covers LogFormatter::getIRCActionComment
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeUpload() {
+               $sep = $this->context->msg( 'colon-separator' )->text();
+
+               # upload/upload
+               $this->assertIRCComment(
+                       $this->context->msg( 'uploadedimage', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       'upload', 'upload',
+                       array(),
+                       $this->user_comment
+               );
+
+               # upload/overwrite
+               $this->assertIRCComment(
+                       $this->context->msg( 'overwroteimage', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       'upload', 'overwrite',
+                       array(),
+                       $this->user_comment
+               );
+       }
+
+       /**
+        * @covers LogFormatter::getIRCActionComment
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeMerge() {
+               $sep = $this->context->msg( 'colon-separator' )->text();
+
+               # merge/merge
+               $this->assertIRCComment(
+                       $this->context->msg( 'pagemerge-logentry', 'SomeTitle', 'Dest', 'timestamp' )->plain()
+                       . $sep . $this->user_comment,
+                       'merge', 'merge',
+                       array(
+                               '4::dest' => 'Dest',
+                               '5::mergepoint' => 'timestamp',
+                       ),
+                       $this->user_comment
+               );
+       }
+
+       /**
+        * @covers LogFormatter::getIRCActionComment
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeImport() {
+               $sep = $this->context->msg( 'colon-separator' )->text();
+
+               # import/upload
+               $msg = $this->context->msg( 'import-logentry-upload', 'SomeTitle' )->plain() .
+                       $sep .
+                       $this->user_comment;
+               $this->assertIRCComment(
+                       $msg,
+                       'import', 'upload',
+                       array(),
+                       $this->user_comment
+               );
+
+               # import/interwiki
+               $msg = $this->context->msg( 'import-logentry-interwiki', 'SomeTitle' )->plain() .
+                       $sep .
+                       $this->user_comment;
+               $this->assertIRCComment(
+                       $msg,
+                       'import', 'interwiki',
+                       array(),
+                       $this->user_comment
+               );
+       }
+
+       /**
+        * @param string $expected Expected IRC text without colors codes
+        * @param string $type Log type (move, delete, suppress, patrol ...)
+        * @param string $action A log type action
+        * @param array $params
+        * @param string $comment (optional) A comment for the log action
+        * @param string $msg (optional) A message for PHPUnit :-)
+        */
+       protected function assertIRCComment( $expected, $type, $action, $params,
+               $comment = null, $msg = '', $legacy = false
+       ) {
+               $logEntry = new ManualLogEntry( $type, $action );
+               $logEntry->setPerformer( $this->user );
+               $logEntry->setTarget( $this->title );
+               if ( $comment !== null ) {
+                       $logEntry->setComment( $comment );
+               }
+               $logEntry->setParameters( $params );
+               $logEntry->setLegacy( $legacy );
+
+               $formatter = LogFormatter::newFromEntry( $logEntry );
+               $formatter->setContext( $this->context );
+
+               // Apply the same transformation as done in IRCColourfulRCFeedFormatter::getLine for rc_comment
+               $ircRcComment = IRCColourfulRCFeedFormatter::cleanupForIRC( $formatter->getIRCActionComment() );
+
+               $this->assertEquals(
+                       $expected,
+                       $ircRcComment,
+                       $msg
+               );
+       }
+
 }
index 87ffd99..de1e153 100644 (file)
@@ -139,4 +139,24 @@ class GIFHandlerTest extends MediaWikiMediaTestCase {
                        ),
                );
        }
+
+       /**
+        * @param $filename string
+        * @param $expectedLength float
+        * @dataProvider provideGetLength
+        */
+       public function testGetLength( $filename, $expectedLength ) {
+               $file = $this->dataFile( $filename, 'image/gif' );
+               $actualLength = $file->getLength();
+               $this->assertEquals( $expectedLength, $actualLength, '', 0.00001 );
+       }
+
+       public function provideGetLength() {
+               return array(
+                       array( 'animated.gif', 2.4 ),
+                       array( 'animated-xmp.gif', 2.4 ),
+                       array( 'nonanimated', 0.0 ),
+                       array( 'Bishzilla_blink.gif', 1.4 ),
+               );
+       }
 }
index 36872a7..96ede90 100644 (file)
@@ -128,4 +128,24 @@ class PNGHandlerTest extends MediaWikiMediaTestCase {
                        ),
                );
        }
+
+       /**
+        * @param $filename string
+        * @param $expectedLength float
+        * @dataProvider provideGetLength
+        */
+       public function testGetLength( $filename, $expectedLength ) {
+               $file = $this->dataFile( $filename, 'image/png' );
+               $actualLength = $file->getLength();
+               $this->assertEquals( $expectedLength, $actualLength, '', 0.00001 );
+       }
+
+       public function provideGetLength() {
+               return array(
+                       array( 'Animated_PNG_example_bouncing_beach_ball.png', 1.5 ),
+                       array( 'Png-native-test.png', 0.0 ),
+                       array( 'greyscale-png.png', 0.0 ),
+                       array( '1bit-png.png', 0.0 ),
+               );
+       }
 }
diff --git a/tests/phpunit/includes/objectcache/MultiWriteBagOStuffTest.php b/tests/phpunit/includes/objectcache/MultiWriteBagOStuffTest.php
new file mode 100644 (file)
index 0000000..2b66181
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * @group Database
+ */
+class MultiWriteBagOStuffTest extends MediaWikiTestCase {
+       /** @var HashBagOStuff */
+       private $cache1;
+       /** @var HashBagOStuff */
+       private $cache2;
+       /** @var MultiWriteBagOStuff */
+       private $cache;
+
+       protected function setUp() {
+               parent::setUp();
+
+               $this->cache1 = new HashBagOStuff();
+               $this->cache2 = new HashBagOStuff();
+               $this->cache = new MultiWriteBagOStuff( array(
+                       'caches' => array( $this->cache1, $this->cache2 ),
+                       'replication' => 'async'
+               ) );
+       }
+
+       public function testSetImmediate() {
+               $key = wfRandomString();
+               $value = wfRandomString();
+               $this->cache->set( $key, $value );
+
+               // Set in tier 1
+               $this->assertEquals( $value, $this->cache1->get( $key ), 'Written to tier 1' );
+               // Set in tier 2
+               $this->assertEquals( $value, $this->cache2->get( $key ), 'Written to tier 2' );
+       }
+
+       public function testSetDelayed() {
+               $key = wfRandomString();
+               $value = wfRandomString();
+
+               // XXX: DeferredUpdates bound to transactions in CLI mode
+               $dbw = wfGetDB( DB_MASTER );
+               $dbw->begin();
+               $this->cache->set( $key, $value );
+
+               // Set in tier 1
+               $this->assertEquals( $value, $this->cache1->get( $key ), 'Written to tier 1' );
+               // Not yet set in tier 2
+               $this->assertEquals( false, $this->cache2->get( $key ), 'Not written to tier 2' );
+
+               $dbw->commit();
+
+               // Set in tier 2
+               $this->assertEquals( $value, $this->cache2->get( $key ), 'Written to tier 2' );
+       }
+}
index 0d2129b..df7da98 100644 (file)
@@ -106,7 +106,6 @@ class NewParserTest extends MediaWikiTestCase {
                $tmpGlobals['wgAdaptiveMessageCache'] = true;
                $tmpGlobals['wgUseDatabaseMessages'] = true;
                $tmpGlobals['wgLocaltimezone'] = 'UTC';
-               $tmpGlobals['wgDeferredUpdateList'] = array();
                $tmpGlobals['wgGroupPermissions'] = array(
                        '*' => array(
                                'createaccount' => true,
diff --git a/tests/phpunit/includes/registration/CoreVersionCheckerTest.php b/tests/phpunit/includes/registration/CoreVersionCheckerTest.php
new file mode 100644 (file)
index 0000000..bc154b3
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * @covers CoreVersionChecker
+ */
+class CoreVersionCheckerTest extends PHPUnit_Framework_TestCase {
+       /**
+        * @dataProvider provideCheck
+        */
+       public function testCheck( $coreVersion, $constraint, $expected ) {
+               $checker = new CoreVersionChecker( $coreVersion );
+               $this->assertEquals( $expected, $checker->check( $constraint ) );
+       }
+
+       public static function provideCheck() {
+               return array(
+                       // array( $wgVersion, constraint, expected )
+                       array( '1.25alpha', '>= 1.26', false ),
+                       array( '1.25.0', '>= 1.26', false ),
+                       array( '1.26alpha', '>= 1.26', true ),
+                       array( '1.26alpha', '>= 1.26.0', true ),
+                       array( '1.26alpha', '>= 1.26.0-stable', false ),
+                       array( '1.26.0', '>= 1.26.0-stable', true ),
+                       array( '1.26.1', '>= 1.26.0-stable', true ),
+                       array( '1.27.1', '>= 1.26.0-stable', true ),
+                       array( '1.26alpha', '>= 1.26.1', false ),
+                       array( '1.26alpha', '>= 1.26alpha', true ),
+                       array( '1.26alpha', '>= 1.25', true ),
+                       array( '1.26.0-alpha.14', '>= 1.26.0-alpha.15', false ),
+                       array( '1.26.0-alpha.14', '>= 1.26.0-alpha.10', true ),
+                       array( '1.26.1', '>= 1.26.2, <=1.26.0', false ),
+                       array( '1.26.1', '^1.26.2', false ),
+                       // Accept anything for un-parsable version strings
+                       array( '1.26mwf14', '== 1.25alpha', true ),
+                       array( 'totallyinvalid', '== 1.0', true ),
+               );
+       }
+}
index b8b1b06..201cbfc 100644 (file)
@@ -123,7 +123,7 @@ class ExtensionRegistryTest extends MediaWikiTestCase {
                                )
                        ),
                        array(
-                               'Global already set, 2d array with integer keys',
+                               'Global already set, array with integer keys',
                                array(
                                        'mwNamespacesFoo' => array(
                                                100 => true,
@@ -139,7 +139,7 @@ class ExtensionRegistryTest extends MediaWikiTestCase {
                                ),
                                array(
                                        'mwNamespacesFoo' => array(
-                                               100 => false,
+                                               100 => true,
                                                102 => false,
                                                500 => true,
                                        ),
index 7e60fdd..13c2838 100644 (file)
@@ -145,34 +145,25 @@ class SpecialSearchTest extends MediaWikiTestCase {
        public function provideRewriteQueryWithSuggestion() {
                return array(
                        array(
-                               'With results and a suggestion does not run suggested query',
+                               'With suggestion and no rewritten query shows did you mean',
                                '/Did you mean: <a[^>]+>first suggestion/',
-                               array(
-                                       new SpecialSearchTestMockResultSet( 'first suggestion', array(
-                                               SearchResult::newFromTitle( Title::newMainPage() ),
-                                       ) ),
-                                       new SpecialSearchTestMockResultSet( 'was never run', array() ),
-                               ),
+                               new SpecialSearchTestMockResultSet( 'first suggestion', null, array(
+                                       SearchResult::newFromTitle( Title::newMainPage() ),
+                               ) ),
                        ),
 
                        array(
-                               'With no results and a suggestion responds with suggested query results',
+                               'With rewritten query informs user of change',
                                '/Showing results for <a[^>]+>first suggestion/',
-                               array(
-                                       new SpecialSearchTestMockResultSet( 'first suggestion', array() ),
-                                       new SpecialSearchTestMockResultSet( 'second suggestion', array(
-                                               SearchResult::newFromTitle( Title::newMainPage() ),
-                                       ) ),
-                               ),
+                               new SpecialSearchTestMockResultSet( 'asdf', 'first suggestion', array(
+                                       SearchResult::newFromTitle( Title::newMainPage() ),
+                               ) ),
                        ),
 
                        array(
                                'When both queries have no results user gets no results',
                                '/There were no results matching the query/',
-                               array(
-                                       new SpecialSearchTestMockResultSet( 'first suggestion', array() ),
-                                       new SpecialSearchTestMockResultSet( 'second suggestion', array() ),
-                               ),
+                               new SpecialSearchTestMockResultSet( 'first suggestion', 'first suggestion', array() ),
                        ),
                );
        }
@@ -180,8 +171,8 @@ class SpecialSearchTest extends MediaWikiTestCase {
        /**
         * @dataProvider provideRewriteQueryWithSuggestion
         */
-       public function testRewriteQueryWithSuggestion( $message, $expectRegex, $fromResults ) {
-               $mockSearchEngine = $this->mockSearchEngine( $fromResults );
+       public function testRewriteQueryWithSuggestion( $message, $expectRegex, $results ) {
+               $mockSearchEngine = $this->mockSearchEngine( $results );
                $search = $this->getMockBuilder( 'SpecialSearch' )
                        ->setMethods( array( 'getSearchEngine' ) )
                        ->getMock();
@@ -199,17 +190,14 @@ class SpecialSearchTest extends MediaWikiTestCase {
                }
        }
 
-       protected function mockSearchEngine( array $returnValues ) {
+       protected function mockSearchEngine( $results ) {
                $mock = $this->getMockBuilder( 'SearchEngine' )
-                       ->setMethods( array( 'searchText' ) )
+                       ->setMethods( array( 'searchText', 'searchTitle' ) )
                        ->getMock();
 
                $mock->expects( $this->any() )
                        ->method( 'searchText' )
-                       ->will( call_user_func_array(
-                               array( $this, 'onConsecutiveCalls' ),
-                               array_map( array( $this, 'returnValue' ), $returnValues )
-                       ) );
+                       ->will( $this->returnValue( $results ) );
 
                return $mock;
        }
@@ -219,9 +207,10 @@ class SpecialSearchTestMockResultSet extends SearchResultSet {
        protected $results;
        protected $suggestion;
 
-       public function __construct( $suggestion = null, array $results = array(), $containedSyntax = false) {
-               $this->results = $results;
+       public function __construct( $suggestion = null, $rewrittenQuery = null, array $results = array(), $containedSyntax = false) {
                $this->suggestion = $suggestion;
+               $this->rewrittenQuery = $rewrittenQuery;
+               $this->results = $results;
                $this->containedSyntax = $containedSyntax;
        }
 
@@ -244,4 +233,16 @@ class SpecialSearchTestMockResultSet extends SearchResultSet {
        public function getSuggestionSnippet() {
                return $this->suggestion;
        }
+
+       public function hasRewrittenQuery() {
+               return $this->rewrittenQuery !== null;
+       }
+
+       public function getQueryAfterRewrite() {
+               return $this->rewrittenQuery;
+       }
+
+       public function getQueryAfterRewriteSnippet() {
+               return htmlspecialchars( $this->rewrittenQuery );
+       }
 }
diff --git a/tests/phpunit/includes/utils/AvroValidatorTest.php b/tests/phpunit/includes/utils/AvroValidatorTest.php
new file mode 100644 (file)
index 0000000..52c242c
--- /dev/null
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Tests for IP validity functions.
+ *
+ * Ported from /t/inc/IP.t by avar.
+ *
+ * @group IP
+ * @todo Test methods in this call should be split into a method and a
+ * dataprovider.
+ */
+
+class AvroValidatorTest extends PHPUnit_Framework_TestCase {
+       public function setUp() {
+               if ( !class_exists( 'AvroSchema' ) ) {
+                       $this->markTestSkipped( 'Avro is required to run the AvroValidatorTest' );
+               }
+               parent::setUp();
+       }
+
+       public function getErrorsProvider() {
+               $stringSchema = AvroSchema::parse( json_encode( array( 'type' => 'string' ) ) );
+               $recordSchema = AvroSchema::parse( json_encode( array(
+                       'type' => 'record',
+                       'name' => 'ut',
+                       'fields' => array(
+                               array( 'name' => 'id', 'type' => 'int', 'required' => true ),
+                       ),
+               ) ) );
+               $enumSchema = AvroSchema::parse( json_encode( array(
+                       'type' => 'record',
+                       'name' => 'ut',
+                       'fields' => array(
+                               array( 'name' => 'count', 'type' => array( 'int', 'null' ) ),
+                       ),
+               ) ) );
+
+               return array(
+                       array(
+                               'No errors with a simple string serialization',
+                               $stringSchema, 'foobar', array(),
+                       ),
+
+                       array(
+                               'Cannot serialize integer into string',
+                               $stringSchema, 5, 'Expected string, but recieved integer',
+                       ),
+
+                       array(
+                               'Cannot serialize array into string',
+                               $stringSchema, array(), 'Expected string, but recieved array',
+                       ),
+
+                       array(
+                               'allows and ignores extra fields',
+                               $recordSchema, array( 'id' => 4, 'foo' => 'bar' ), array(),
+                       ),
+
+                       array(
+                               'detects missing fields',
+                               $recordSchema, array(), array( 'id' => 'Missing expected field' ),
+                       ),
+
+                       array(
+                               'handles first element in enum',
+                               $enumSchema, array( 'count' => 4 ), array(),
+                       ),
+
+                       array(
+                               'handles second element in enum',
+                               $enumSchema, array( 'count' => null ), array(),
+                       ),
+
+                       array(
+                               'rejects element not in union',
+                               $enumSchema, array( 'count' => 'invalid' ), array( 'count' => array(
+                                       'Expected any one of these to be true',
+                                       array(
+                                               'Expected integer, but recieved string',
+                                               'Expected null, but recieved string',
+                                       )
+                               ) )
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider getErrorsProvider
+        */
+       public function testGetErrors( $message, $schema, $datum, $expected ) {
+               $this->assertEquals(
+                       $expected,
+                       AvroValidator::getErrors( $schema, $datum ),
+                       $message
+               );
+       }
+}
index 2c92e30..eefc926 100644 (file)
@@ -118,6 +118,22 @@ class ResourcesTest extends MediaWikiTestCase {
                }
        }
 
+       /**
+        * CSSMin::getAllLocalFileReferences should ignore url(...) expressions
+        * that have been commented out.
+        */
+       public function testCommentedLocalFileReferences() {
+               $basepath = __DIR__ . '/../data/css/';
+               $css = file_get_contents( $basepath . 'comments.css' );
+               $files = CSSMin::getAllLocalFileReferences( $css, $basepath );
+               $expected = array( $basepath . 'not-commented.gif' );
+               $this->assertArrayEquals(
+                       $expected,
+                       $files,
+                       'Url(...) expression in comment should be omitted.'
+               );
+       }
+
        /**
         * Get all registered modules from ResouceLoader.
         * @return array
@@ -276,6 +292,25 @@ class ResourcesTest extends MediaWikiTestCase {
                                        ( $file instanceof ResourceLoaderFilePath ? $file->getPath() : $file ),
                                );
                        }
+
+                       // To populate missingLocalFileRefs. Not sure how sane this is inside this test...
+                       $module->readStyleFiles(
+                               $module->getStyleFiles( $data['context'] ),
+                               $module->getFlip( $data['context'] ),
+                               $data['context']
+                       );
+
+                       $property = $reflectedModule->getProperty( 'missingLocalFileRefs' );
+                       $property->setAccessible( true );
+                       $missingLocalFileRefs = $property->getValue( $module );
+
+                       foreach ( $missingLocalFileRefs as $file ) {
+                               $cases[] = array(
+                                       $file,
+                                       $moduleName,
+                                       $file,
+                               );
+                       }
                }
 
                return $cases;
index af055be..641a5a5 100644 (file)
                        cases = [
                                {
                                        title: 'DCS0001557854455.JPG',
-                                       options: {
-                                               fileExtension: 'PNG'
-                                       },
                                        expected: 'DCS0001557854455.JPG',
                                        description: 'Title in normal namespace without anything invalid but with "file extension"'
                                },
                                },
                                {
                                        title: 'File:Foo.JPEG',
-                                       options: {
-                                               fileExtension: 'jpg'
-                                       },
-                                       expected: 'File:Foo.jpg',
+                                       expected: 'File:Foo.JPEG',
                                        description: 'Page in File-namespace with non-canonical extension'
                                },
                                {
                                        title: 'File:Foo.JPEG  ',
-                                       options: {
-                                               fileExtension: 'jpg'
-                                       },
-                                       expected: 'File:Foo.jpg',
+                                       expected: 'File:Foo.JPEG',
                                        description: 'Page in File-namespace with trailing whitespace'
                                }
                        ];
                }
        } );
 
-       QUnit.test( 'newFromFileName', 66, function ( assert ) {
+       QUnit.test( 'newFromFileName', 54, function ( assert ) {
                var title, i, thisCase, prefix,
                        cases = [
                                {
                                        fileName: 'DCS0001557854455.JPG',
                                        typeOfName: 'Standard camera output',
                                        nameText: 'DCS0001557854455',
-                                       prefixedText: 'File:DCS0001557854455.jpg',
-                                       extensionDesired: 'jpg'
+                                       prefixedText: 'File:DCS0001557854455.JPG'
                                },
                                {
                                        fileName: 'File:Sample.png',
                                        fileName: 'Treppe 2222 Test upload.jpg',
                                        typeOfName: 'File name with spaces in it and lower case file extension',
                                        nameText: 'Treppe 2222 Test upload',
-                                       prefixedText: 'File:Treppe 2222 Test upload.JPG',
-                                       extensionDesired: 'JPG'
+                                       prefixedText: 'File:Treppe 2222 Test upload.jpg'
                                },
                                {
                                        fileName: 'I contain a \ttab.jpg',
                                        nameText: 'Dot. dot',
                                        prefixedText: 'File:Dot. dot. dot'
                                },
-                               {
-                                       fileName: 'dot. dot ._dot',
-                                       typeOfName: 'File name with different file extension desired',
-                                       nameText: 'Dot. dot . dot',
-                                       prefixedText: 'File:Dot. dot . dot.png',
-                                       extensionDesired: 'png'
-                               },
-                               {
-                                       fileName: 'fileWOExt',
-                                       typeOfName: 'File W/O extension with extension desired',
-                                       nameText: 'FileWOExt',
-                                       prefixedText: 'File:FileWOExt.png',
-                                       extensionDesired: 'png'
-                               },
                                {
                                        fileName: '𠜎𠜱𠝹𠱓𠱸𠲖𠳏𠳕𠴕𠵼𠵿𠸎𠸏𠹷𠺝𠺢𠻗𠻹𠻺𠼭𠼮𠽌𠾴𠾼𠿪𡁜𡁯𡁵𡁶𡁻𡃁𡃉𡇙𢃇𢞵𢫕𢭃𢯊𢱑𢱕𢳂𠻹𠻺𠼭𠼮𠽌𠾴𠾼𠿪𡁜𡁯𡁵𡁶𡁻𡃁𡃉𡇙𢃇𢞵𢫕𢭃𢯊𢱑𢱕𢳂.png',
                                        typeOfName: 'File name longer than 240 bytes',
 
                for ( i = 0; i < cases.length; i++ ) {
                        thisCase = cases[ i ];
-                       title = mw.Title.newFromFileName( thisCase.fileName, thisCase.extensionDesired );
+                       title = mw.Title.newFromFileName( thisCase.fileName );
 
                        if ( thisCase.nameText !== undefined ) {
                                prefix = '[' + thisCase.typeOfName + '] ';
                                assert.notStrictEqual( title, null, prefix + 'Parses successfully' );
                                assert.equal( title.getNameText(), thisCase.nameText, prefix + 'Filename matches original' );
                                assert.equal( title.getPrefixedText(), thisCase.prefixedText, prefix + 'File page title matches original' );
-                               if ( thisCase.extensionDesired !== undefined ) {
-                                       assert.equal( title.getExtension(), thisCase.extensionDesired, prefix + 'Extension matches desired' );
-                               }
                                assert.equal( title.getNamespaceId(), 6, prefix + 'Namespace ID matches File namespace' );
                        } else {
                                assert.strictEqual( title, null, thisCase.typeOfName + ', should not produce an mw.Title object' );
index c25641d..6cef4a7 100644 (file)
@@ -1,53 +1,36 @@
 ( function ( mw ) {
-       QUnit.module( 'mediawiki.storage: normal case.', {
-               setup: function () {
-                       this.sandbox.stub( mw.storage, 'isLocalStorageSupported', true );
-                       this.spy = this.sandbox.spy( localStorage, 'setItem' );
-                       this.sandbox.stub( localStorage, 'getItem' )
-                               .withArgs( 'foo' ).returns( 'test' )
-                               .withArgs( 'bar' ).returns( null );
-               }
-       } );
+       QUnit.module( 'mediawiki.storage' );
+
+       QUnit.test( 'set/get with localStorage', 3, function ( assert ) {
+               this.sandbox.stub( mw.storage, 'localStorage', {
+                       setItem: this.sandbox.spy(),
+                       getItem: this.sandbox.stub()
+               } );
 
-       QUnit.test( 'set/get with localStorage', 4, function ( assert ) {
                mw.storage.set( 'foo', 'test' );
-               assert.strictEqual( this.spy.calledOnce, true, 'Check localStorage called.' );
-               assert.strictEqual( this.spy.calledWith( 'foo', 'test' ), true,
-                       'Check prefixed.' );
+               assert.ok( mw.storage.localStorage.setItem.calledOnce );
+
+               mw.storage.localStorage.getItem.withArgs( 'foo' ).returns( 'test' );
+               mw.storage.localStorage.getItem.returns( null );
                assert.strictEqual( mw.storage.get( 'foo' ), 'test', 'Check value gets stored.' );
                assert.strictEqual( mw.storage.get( 'bar' ), null, 'Unset values are null.' );
        } );
 
-       QUnit.module( 'mediawiki.storage: localStorage does not exist', {
-               setup: function () {
-                       this.sandbox.stub( mw.storage, 'isLocalStorageSupported', false );
-                       this.sandbox.stub( localStorage, 'setItem' ).throws();
-               }
-       } );
-
        QUnit.test( 'set/get without localStorage', 3, function ( assert ) {
-               assert.strictEqual( mw.storage.set( 'foo', 'test' ), false,
-                       'When localStorage not available save fails.' );
-
-               assert.strictEqual( mw.storage.remove( 'foo', 'test' ), false,
-                       'When localStorage not available remove fails.' );
+               this.sandbox.stub( mw.storage, 'localStorage', {
+                       getItem: this.sandbox.stub(),
+                       removeItem: this.sandbox.stub(),
+                       setItem: this.sandbox.stub()
+               } );
 
-               assert.strictEqual( mw.storage.get( 'foo' ), false,
-                               'Inability to retrieve values return false to differentiate from null (not set).' );
-       } );
+               mw.storage.localStorage.getItem.throws();
+               assert.strictEqual( mw.storage.get( 'foo' ), false );
 
-       QUnit.module( 'mediawiki.storage: localStorage exhausted', {
-               setup: function () {
-                       this.sandbox.stub( mw.storage, 'isLocalStorageSupported', true );
-                       this.sandbox.stub( localStorage, 'setItem' ).throws();
-                       this.sandbox.stub( localStorage, 'getItem' ).returns( null );
-               }
-       } );
+               mw.storage.localStorage.setItem.throws();
+               assert.strictEqual( mw.storage.set( 'foo', 'test' ), false );
 
-       QUnit.test( 'set/get without localStorage', 2, function ( assert ) {
-               assert.strictEqual( mw.storage.set( 'foo', 'test' ), false,
-                       'When localStorage not available inform user with false.' );
-               assert.strictEqual( mw.storage.get( 'foo' ), null, 'No value registered.' );
+               mw.storage.localStorage.removeItem.throws();
+               assert.strictEqual( mw.storage.remove( 'foo', 'test' ), false );
        } );
 
 }( mediaWiki ) );
index 86c2eb8..111d85b 100644 (file)
                // This bug was actually already fixed in 1.18 and later when discovered in 1.17.
                // Test is for regressions!
 
-               // Forge an URL to the test callback script
+               // Forge a URL to the test callback script
                var target = QUnit.fixurl(
                        mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/qunitOkCall.js'
                );
                mw.loader.load( target );
        } );
 
+       QUnit.asyncTest( 'mw.loader( "/absolute-path" )', 2, function ( assert ) {
+               // Forge a URL to the test callback script
+               var target = QUnit.fixurl(
+                       mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/qunitOkCall.js'
+               );
+
+               // Confirm that mw.loader.load() works with absolute-paths (relative to current hostname)
+               assert.equal( target.slice( 0, 1 ), '/', 'URL is relative to document root' );
+
+               // Async!
+               // The target calls QUnit.start
+               mw.loader.load( target );
+       } );
+
+       QUnit.asyncTest( 'mw.loader() executing race (T112232)', 2, function ( assert ) {
+               var done = false;
+
+               // The red herring schedules its CSS buffer first. In T112232, a bug in the
+               // state machine would cause the job for testRaceLoadMe to run with an earlier job.
+               mw.loader.implement(
+                       'testRaceRedHerring',
+                       function () {},
+                       { css: [ '.mw-testRaceRedHerring {}' ] }
+               );
+               mw.loader.implement(
+                       'testRaceLoadMe',
+                       function () {
+                               done = true;
+                       },
+                       { css: [ '.mw-testRaceLoadMe { float: left; }' ] }
+               );
+
+               mw.loader.load( [ 'testRaceRedHerring', 'testRaceLoadMe' ] );
+               mw.loader.using( 'testRaceLoadMe', function () {
+                       assert.strictEqual( done, true, 'script ran' );
+                       assert.strictEqual( mw.loader.getState( 'testRaceLoadMe' ), 'ready', 'state' );
+               } ).always( QUnit.start );
+       } );
+
        QUnit.test( 'mw.html', 13, function ( assert ) {
                assert.throws( function () {
                        mw.html.escape();